Closes the gap to Claude Code across four upgrade rounds (all verified green: typecheck, 388 tests, build 313 KB). Sub-agent orchestration: - Resumable sub-agents (send_message) + MaxIterations "continue" path - Configurable multi-depth sub-agent nesting - Parallel fan-out for pure agent/agent__* batches, each writable delegation in its own throwaway git worktree (no file collisions) - Named specialist fleet: explore, code-reviewer, planner, debugger, test-writer (read-only types skip worktree isolation) - Named teammates: agent tool `name` arg + list_teammates + send_message by name (synchronous, addressable handle — not true async background) Plan mode: - True in-turn pause/resume on approval (no synthetic proceed turn) - exit_plan_mode tool + side-by-side diff rendering (/diff) Persistent memory: - Typed file-per-fact memory under config dir, index folded into the system prompt (bounded), memory + memory_write tools, /memory command Toolset + UI: - multi_edit, notebook_edit, web_search/web_fetch, workflow orchestration primitive (agent/parallel/pipeline/phase/log + worktree isolation + best-effort structured output with recursive schema validation) - Structured task system (task_create/list/get/update with dependency graph + ownership) replacing flat todo_write - Cron/scheduled tasks (cron_create/list/delete, schedule_wakeup) with durable persistence and idle-gated ticking - Interactive worktree session (enter_worktree/exit_worktree) with a live-cwd UI switch that survives /model changes - AskUserQuestion tool + QuestionPrompt UI - Permission rule granularity + user/project settings merge - Color diffs, sub-agent activity panel, /undo, dashboard refinements Co-Authored-By: Claude <noreply@anthropic.com>
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
import { agentTool } from "./agentTool.js";
|
|
import { askQuestionTool } from "./askQuestion.js";
|
|
import { bashTool } from "./bash.js";
|
|
import { bashKillTool } from "./bashKill.js";
|
|
import { bashOutputTool } from "./bashOutput.js";
|
|
import { cronCreateTool, cronDeleteTool, cronListTool, scheduleWakeupTool } from "./cron.js";
|
|
import { editFileTool } from "./editFile.js";
|
|
import { exitPlanModeTool } from "./exitPlanMode.js";
|
|
import { gitCommitTool, gitStatusTool } from "./git.js";
|
|
import { grepTool } from "./grep.js";
|
|
import { listFilesTool } from "./listFiles.js";
|
|
import { memoryTool, memoryWriteTool } from "./memory.js";
|
|
import { multiEditTool } from "./multiEdit.js";
|
|
import { notebookEditTool } from "./notebookEdit.js";
|
|
import { readFileTool } from "./readFile.js";
|
|
import { sendMessageTool } from "./sendMessage.js";
|
|
import { listTeammatesTool } from "./teammates.js";
|
|
import { taskCreateTool, taskGetTool, taskListTool, taskUpdateTool } from "./task.js";
|
|
import { webFetchTool } from "./webFetch.js";
|
|
import { workflowTool } from "./workflow.js";
|
|
import { webSearchTool } from "./webSearch.js";
|
|
import { enterWorktreeTool, exitWorktreeTool } from "./worktreeSession.js";
|
|
import { writeFileTool } from "./writeFile.js";
|
|
import type { ToolDef } from "./types.js";
|
|
|
|
export const TOOLS: ToolDef[] = [
|
|
readFileTool,
|
|
listFilesTool,
|
|
grepTool,
|
|
webSearchTool,
|
|
webFetchTool,
|
|
gitStatusTool,
|
|
writeFileTool,
|
|
editFileTool,
|
|
multiEditTool,
|
|
notebookEditTool,
|
|
bashTool,
|
|
bashOutputTool,
|
|
bashKillTool,
|
|
gitCommitTool,
|
|
taskCreateTool,
|
|
taskListTool,
|
|
taskGetTool,
|
|
taskUpdateTool,
|
|
memoryTool,
|
|
memoryWriteTool,
|
|
agentTool,
|
|
sendMessageTool,
|
|
listTeammatesTool,
|
|
workflowTool,
|
|
exitPlanModeTool,
|
|
askQuestionTool,
|
|
cronCreateTool,
|
|
cronListTool,
|
|
cronDeleteTool,
|
|
scheduleWakeupTool,
|
|
enterWorktreeTool,
|
|
exitWorktreeTool,
|
|
];
|
|
|
|
export const TOOL_REGISTRY: Map<string, ToolDef> = new Map(TOOLS.map((t) => [t.name, t]));
|