/** * claudeCodeDialect — the Claude Code adapter's `HarnessDialect` (format axis). * The concrete dialect is DEFINED here, in the adapter, symmetric with the other * four ports (`claudeCodeLayout`/`Runtime`/`HookProtocol`/`ModelMock`): the core * holds only the `HarnessDialect` interface and never a harness's vocabulary. The * rule-enforcer/validator receive this by injection (`compileAgent(spec, { dialect })`, * the CLI/composition root supplies it). A second harness defines its own dialect * in its adapter (e.g. `src/adapters/codex/dialect.ts` exporting `codexDialect`). */ import type { HarnessDialect } from "../../core/dialect.js"; /** * The Claude Code built-in subagent tool catalog as a `const` tuple, so a typed * authoring surface can derive a LITERAL union (`ClaudeCodeBuiltinTool`) from it. * * DERIVED, not authored: it is exactly the vocabulary's declarable terms — the * ones the platform provides outright plus the ones it withholds only under a * condition. Both halves are legitimate to write in a `tools:` line, which is * why `Agent` belongs here and used to sit in `neverAvailableTools` instead. * Because this is a projection rather than a second hand-kept list, the two can * no longer disagree; `vocabularyProjectionProblems` asserts it in the * conformance kit rather than leaving it to care. */ export declare const claudeCodeBuiltinAgentTools: readonly ["Read", "Grep", "Glob", "Bash", "PowerShell", "Edit", "Write", "NotebookEdit", "WebFetch", "WebSearch", "TodoWrite", "Skill", "ToolSearch", "EnterWorktree", "ExitWorktree", "Monitor", "TaskStop", "SendMessage", "Artifact", "Agent", "Task", "ExitPlanMode", "ListAgents", "LSP", "ShareOnboardingGuide", "CronCreate", "CronDelete", "CronList", "TaskCreate", "TaskGet", "TaskList", "TaskUpdate"]; /** * The Claude Code side-effecting tools (the complement of read-only within * `builtinAgentTools`). Authored in `vocabulary.ts` beside the catalog it * partitions, because a name added to the catalog without a decision here would * silently be classified read-only. */ export declare const claudeCodeSideEffectingTools: readonly ["Bash", "PowerShell", "Edit", "Write", "NotebookEdit", "WebFetch", "WebSearch", "Skill", "TodoWrite", "Monitor", "SendMessage", "Artifact", "EnterWorktree", "ExitWorktree", "TaskStop", "Agent", "Task", "TaskCreate", "TaskUpdate", "CronCreate", "CronDelete", "ShareOnboardingGuide"]; export declare const claudeCodeDialect: HarnessDialect; /** Every Claude Code built-in subagent tool (literal union). */ export type ClaudeCodeBuiltinTool = (typeof claudeCodeBuiltinAgentTools)[number]; /** The side-effecting subset (literal union). */ export type ClaudeCodeSideEffectingTool = (typeof claudeCodeSideEffectingTools)[number]; /** * Read-only built-in tools — the complement of the side-effecting set within * the built-in catalog. The tools a `pure` CC unit may declare. */ export type ClaudeCodeReadOnlyTool = Exclude; /** * Tools a `bounded` CC unit may declare: read-only ∪ the decidable * side-effecting tools (Write/Edit/NotebookEdit) ∪ `Bash`/`PowerShell` (whose * command is decided at RUNTIME by the gate). Bars MCP / unknown / wildcard — * those are simply not in the built-in union, so listing one is a `tsc` error. * * `MultiEdit` was listed here until 2026-08-17. It is not a Claude Code tool — * it appears zero times across the vendor's documentation — so it is gone along * with `BashOutput`, `KillBash` and `LS`. */ export type ClaudeCodeBoundedTool = ClaudeCodeReadOnlyTool | "Write" | "Edit" | "NotebookEdit" | "Bash" | "PowerShell"; export type { HarnessDialect } from "../../core/dialect.js"; //# sourceMappingURL=dialect.d.ts.map