import type { CommandDefinition } from "../claude-code-command-loader" import type { BuiltinCommandName, BuiltinCommands } from "./types" import { INIT_DEEP_TEMPLATE } from "./templates/init-deep" import { RALPH_LOOP_TEMPLATE, CANCEL_RALPH_TEMPLATE } from "./templates/ralph-loop" import { REFACTOR_TEMPLATE } from "./templates/refactor" const BUILTIN_COMMAND_DEFINITIONS: Record> = { "init-deep": { description: "(builtin) Initialize hierarchical AGENTS.md knowledge base", template: ` ${INIT_DEEP_TEMPLATE} $ARGUMENTS `, argumentHint: "[--create-new] [--max-depth=N]", }, "ralph-loop": { description: "(builtin) Start self-referential development loop until completion", template: ` ${RALPH_LOOP_TEMPLATE} $ARGUMENTS `, argumentHint: '"task description" [--completion-promise=TEXT] [--max-iterations=N]', }, "cancel-ralph": { description: "(builtin) Cancel active Ralph Loop", template: ` ${CANCEL_RALPH_TEMPLATE} `, }, refactor: { description: "(builtin) Intelligent refactoring command with LSP, AST-grep, architecture analysis, codemap, and TDD verification.", template: ` ${REFACTOR_TEMPLATE} `, argumentHint: " [--scope=] [--strategy=]", }, } export function loadBuiltinCommands( disabledCommands?: BuiltinCommandName[] ): BuiltinCommands { const disabled = new Set(disabledCommands ?? []) const commands: BuiltinCommands = {} for (const [name, definition] of Object.entries(BUILTIN_COMMAND_DEFINITIONS)) { if (!disabled.has(name as BuiltinCommandName)) { const { argumentHint: _argumentHint, ...openCodeCompatible } = definition commands[name] = openCodeCompatible as CommandDefinition } } return commands }