Files
locode/src/tools/index.ts
T
kimandClaude f347c150a4 v0.6.0: sub-agent orchestration, plan mode, memory, and the Claude-Code feature gap
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>
2026-08-16 11:35:05 +09:00

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]));