import type { AdapterConfigFieldsProps } from "../types"; import { Field, ToggleField, DraftInput, help, } from "../../components/agent-config-primitives"; import { ChoosePathButton } from "../../components/PathInstructionsModal"; import { LocalWorkspaceRuntimeFields } from "../local-workspace-runtime-fields"; import { CODEX_LOCAL_FAST_MODE_SUPPORTED_MODELS, isCodexLocalFastModeSupported, } from "@paperclipai/adapter-codex-local"; const inputClass = "w-full rounded-md border border-border px-2.5 py-1.5 bg-transparent outline-none text-sm font-mono placeholder:text-muted-foreground/40"; const instructionsFileHint = "Absolute path to a markdown file (e.g. AGENTS.md) that defines this agent's behavior. Injected into the system prompt at runtime. Note: Codex may still auto-apply repo-scoped AGENTS.md files from the workspace."; export function CodexLocalConfigFields({ mode, isCreate, adapterType, values, set, config, eff, mark, models, hideInstructionsFile, }: AdapterConfigFieldsProps) { const bypassEnabled = config.dangerouslyBypassApprovalsAndSandbox === true || config.dangerouslyBypassSandbox === true; const fastModeEnabled = isCreate ? Boolean(values!.fastMode) : eff("adapterConfig", "fastMode", Boolean(config.fastMode)); const currentModel = isCreate ? String(values!.model ?? "") : eff("adapterConfig", "model", String(config.model ?? "")); const fastModeSupported = isCodexLocalFastModeSupported(currentModel); const supportedModelsLabel = CODEX_LOCAL_FAST_MODE_SUPPORTED_MODELS.join(", "); return ( <> {!hideInstructionsFile && (
isCreate ? set!({ instructionsFilePath: v }) : mark("adapterConfig", "instructionsFilePath", v || undefined) } immediate className={inputClass} placeholder="/absolute/path/to/AGENTS.md" />
)} isCreate ? set!({ dangerouslyBypassSandbox: v }) : mark("adapterConfig", "dangerouslyBypassApprovalsAndSandbox", v) } /> isCreate ? set!({ search: v }) : mark("adapterConfig", "search", v) } /> isCreate ? set!({ fastMode: v }) : mark("adapterConfig", "fastMode", v) } /> {fastModeEnabled && (
{fastModeSupported ? "Fast mode consumes credits/tokens much faster than standard Codex runs." : `Fast mode currently only works on ${supportedModelsLabel}. Paperclip will ignore this toggle until the model is switched.`}
)} ); }