@cjhyy/code-shell-core 0.5.0-rc.2 → 0.6.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -10
- package/dist/agent/agent-definition-registry.d.ts +3 -0
- package/dist/agent/agent-definition-registry.js +3 -1
- package/dist/agent/agent-definition.d.ts +15 -0
- package/dist/agent/agent-definition.js +27 -3
- package/dist/arena/context/context-tools.js +47 -4
- package/dist/arena/ledger.js +9 -1
- package/dist/arena/strategies/utils.d.ts +1 -4
- package/dist/arena/strategies/utils.js +7 -84
- package/dist/automation/cron-expr.d.ts +10 -0
- package/dist/automation/cron-expr.js +23 -5
- package/dist/automation/runner.d.ts +21 -4
- package/dist/automation/runner.js +48 -12
- package/dist/automation/scheduler.d.ts +38 -0
- package/dist/automation/scheduler.js +89 -12
- package/dist/automation/store.js +5 -2
- package/dist/capability-control/disabled-lists.d.ts +25 -0
- package/dist/capability-control/disabled-lists.js +57 -0
- package/dist/capability-control/overlay.d.ts +15 -0
- package/dist/capability-control/overlay.js +27 -0
- package/dist/cc-orchestrator/agent-adapter.d.ts +50 -0
- package/dist/cc-orchestrator/agent-adapter.js +133 -0
- package/dist/cc-orchestrator/cc-capability.d.ts +19 -0
- package/dist/cc-orchestrator/cc-capability.js +53 -0
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +24 -0
- package/dist/cc-orchestrator/codex-session-discovery.js +191 -0
- package/dist/cc-orchestrator/codex-session-history.d.ts +25 -0
- package/dist/cc-orchestrator/codex-session-history.js +187 -0
- package/dist/cc-orchestrator/external-agent-changes.d.ts +19 -0
- package/dist/cc-orchestrator/external-agent-changes.js +214 -0
- package/dist/cc-orchestrator/external-agent-driver.d.ts +18 -0
- package/dist/cc-orchestrator/external-agent-driver.js +69 -0
- package/dist/cc-orchestrator/index.d.ts +8 -0
- package/dist/cc-orchestrator/index.js +8 -0
- package/dist/cc-orchestrator/relevance-judge.d.ts +15 -0
- package/dist/cc-orchestrator/relevance-judge.js +29 -0
- package/dist/cc-orchestrator/session-discovery.d.ts +46 -0
- package/dist/cc-orchestrator/session-discovery.js +125 -0
- package/dist/cc-orchestrator/session-history.d.ts +19 -0
- package/dist/cc-orchestrator/session-history.js +67 -0
- package/dist/cli/agent-server-stdio.d.ts +15 -1
- package/dist/cli/agent-server-stdio.js +115 -17
- package/dist/cli/agent-server-tcp.js +40 -26
- package/dist/context/compaction.d.ts +86 -0
- package/dist/context/compaction.js +279 -0
- package/dist/context/manager.d.ts +18 -0
- package/dist/context/manager.js +181 -48
- package/dist/context/token-counter.js +13 -0
- package/dist/cost-tracker.js +5 -61
- package/dist/credentials/cipher.d.ts +49 -0
- package/dist/credentials/cipher.js +45 -0
- package/dist/credentials/cookie-jar.d.ts +24 -0
- package/dist/credentials/cookie-jar.js +40 -0
- package/dist/credentials/index.d.ts +7 -0
- package/dist/credentials/index.js +5 -0
- package/dist/credentials/inject-credential-tool.d.ts +20 -0
- package/dist/credentials/inject-credential-tool.js +130 -0
- package/dist/credentials/store.d.ts +72 -0
- package/dist/credentials/store.js +184 -0
- package/dist/credentials/types.d.ts +56 -0
- package/dist/credentials/use-credential-tool.d.ts +29 -0
- package/dist/credentials/use-credential-tool.js +205 -0
- package/dist/credentials/use-gate.d.ts +56 -0
- package/dist/credentials/use-gate.js +52 -0
- package/dist/data/model-metadata.d.ts +77 -0
- package/dist/data/model-metadata.js +56 -0
- package/dist/data/model-metadata.json +216 -0
- package/dist/data/openrouter-models.d.ts +18 -7
- package/dist/data/openrouter-models.js +35 -8
- package/dist/engine/aux-key.d.ts +10 -0
- package/dist/engine/aux-key.js +11 -0
- package/dist/engine/dynamic-tool-defs.d.ts +19 -0
- package/dist/engine/dynamic-tool-defs.js +36 -0
- package/dist/engine/engine.d.ts +280 -141
- package/dist/engine/engine.js +1193 -245
- package/dist/engine/friendly-error.d.ts +18 -0
- package/dist/engine/friendly-error.js +63 -0
- package/dist/engine/goal.d.ts +145 -0
- package/dist/engine/goal.js +144 -0
- package/dist/engine/image-policy.d.ts +13 -0
- package/dist/engine/image-policy.js +24 -0
- package/dist/engine/model-connections-pool.d.ts +17 -0
- package/dist/engine/model-connections-pool.js +67 -0
- package/dist/engine/model-facade.d.ts +10 -0
- package/dist/engine/model-facade.js +15 -0
- package/dist/engine/patch-orphaned-tools.js +3 -0
- package/dist/engine/query.js +2 -0
- package/dist/engine/resolve-llm-config.d.ts +16 -0
- package/dist/engine/resolve-llm-config.js +44 -0
- package/dist/engine/runtime.d.ts +2 -0
- package/dist/engine/runtime.js +27 -1
- package/dist/engine/sandbox-cache-key.d.ts +10 -0
- package/dist/engine/sandbox-cache-key.js +9 -0
- package/dist/engine/sandbox-config.d.ts +31 -0
- package/dist/engine/sandbox-config.js +38 -0
- package/dist/engine/session-usage.d.ts +31 -0
- package/dist/engine/session-usage.js +81 -0
- package/dist/engine/steer-queue.d.ts +33 -0
- package/dist/engine/steer-queue.js +26 -0
- package/dist/engine/streaming-tool-queue.d.ts +12 -0
- package/dist/engine/streaming-tool-queue.js +50 -10
- package/dist/engine/turn-loop.d.ts +94 -4
- package/dist/engine/turn-loop.js +432 -54
- package/dist/engine/types.d.ts +175 -0
- package/dist/engine/types.js +13 -0
- package/dist/external-agents/config.d.ts +2 -0
- package/dist/external-agents/config.js +15 -0
- package/dist/external-agents/types.d.ts +31 -0
- package/dist/external-agents/types.js +1 -0
- package/dist/git/utils.d.ts +12 -0
- package/dist/git/utils.js +38 -6
- package/dist/git/worktree.d.ts +48 -0
- package/dist/git/worktree.js +86 -10
- package/dist/hooks/goal-stop-hook.d.ts +28 -0
- package/dist/hooks/goal-stop-hook.js +186 -9
- package/dist/hooks/registry.d.ts +8 -0
- package/dist/hooks/registry.js +19 -0
- package/dist/hooks/shell-runner.js +10 -21
- package/dist/index.d.ts +51 -7
- package/dist/index.js +62 -5
- package/dist/llm/capabilities/param-specs.d.ts +14 -0
- package/dist/llm/capabilities/param-specs.js +62 -0
- package/dist/llm/capabilities/rules.js +5 -1
- package/dist/llm/capabilities/types.d.ts +10 -0
- package/dist/llm/client-base.d.ts +28 -1
- package/dist/llm/client-base.js +119 -13
- package/dist/llm/model-cache.js +4 -2
- package/dist/llm/model-pool.d.ts +21 -0
- package/dist/llm/model-pool.js +21 -1
- package/dist/llm/provider-auth.d.ts +41 -0
- package/dist/llm/provider-auth.js +76 -0
- package/dist/llm/provider-catalog.d.ts +4 -0
- package/dist/llm/providers/anthropic.js +64 -14
- package/dist/llm/providers/openai.d.ts +36 -0
- package/dist/llm/providers/openai.js +257 -51
- package/dist/llm/reasoning-setting.d.ts +3 -3
- package/dist/llm/reasoning-setting.js +9 -1
- package/dist/llm/stream-watchdog.js +5 -1
- package/dist/llm/token-counter.js +9 -2
- package/dist/llm/types.d.ts +4 -0
- package/dist/logging/sanitize-messages.js +22 -0
- package/dist/lsp/manager.d.ts +1 -1
- package/dist/lsp/manager.js +40 -10
- package/dist/model-catalog/builtin.d.ts +12 -0
- package/dist/model-catalog/builtin.js +412 -0
- package/dist/model-catalog/gen-connections.d.ts +20 -0
- package/dist/model-catalog/gen-connections.js +28 -0
- package/dist/model-catalog/index.d.ts +41 -0
- package/dist/model-catalog/index.js +90 -0
- package/dist/model-catalog/params.d.ts +20 -0
- package/dist/model-catalog/params.js +45 -0
- package/dist/model-catalog/resolve.d.ts +48 -0
- package/dist/model-catalog/resolve.js +33 -0
- package/dist/model-catalog/save-entry.d.ts +32 -0
- package/dist/model-catalog/save-entry.js +104 -0
- package/dist/model-catalog/types.d.ts +561 -0
- package/dist/model-catalog/types.js +93 -0
- package/dist/model-catalog/upsert.d.ts +9 -0
- package/dist/model-catalog/upsert.js +8 -0
- package/dist/onboarding.d.ts +12 -82
- package/dist/onboarding.js +61 -326
- package/dist/plugins/gitOps.d.ts +19 -0
- package/dist/plugins/gitOps.js +73 -4
- package/dist/plugins/installer/checkUpdate.d.ts +16 -0
- package/dist/plugins/installer/checkUpdate.js +32 -0
- package/dist/plugins/installer/codex/convertCommands.d.ts +19 -0
- package/dist/plugins/installer/codex/convertCommands.js +46 -0
- package/dist/plugins/installer/codex/convertMcp.d.ts +5 -2
- package/dist/plugins/installer/codex/convertMcp.js +45 -5
- package/dist/plugins/installer/install.js +25 -1
- package/dist/plugins/installer/installFromArchive.d.ts +43 -0
- package/dist/plugins/installer/installFromArchive.js +134 -0
- package/dist/plugins/installer/installFromSource.js +8 -2
- package/dist/plugins/installer/loadPluginAgents.js +6 -2
- package/dist/plugins/installer/loadPluginMcp.d.ts +9 -2
- package/dist/plugins/installer/loadPluginMcp.js +35 -2
- package/dist/plugins/installer/pruneDisabled.d.ts +24 -0
- package/dist/plugins/installer/pruneDisabled.js +73 -0
- package/dist/plugins/installer/types.d.ts +5 -2
- package/dist/plugins/installer/types.js +1 -0
- package/dist/plugins/installer/uninstall.js +4 -0
- package/dist/plugins/installer/unzip.d.ts +14 -0
- package/dist/plugins/installer/unzip.js +82 -0
- package/dist/plugins/installer/update.d.ts +14 -0
- package/dist/plugins/installer/update.js +53 -21
- package/dist/plugins/loadPluginHooks.d.ts +47 -1
- package/dist/plugins/loadPluginHooks.js +73 -1
- package/dist/plugins/marketplaceManager.d.ts +7 -0
- package/dist/plugins/marketplaceManager.js +20 -0
- package/dist/plugins/pluginCommandHook.js +4 -18
- package/dist/plugins/pluginContent.d.ts +30 -0
- package/dist/plugins/pluginContent.js +83 -0
- package/dist/plugins/pluginInstaller.d.ts +13 -0
- package/dist/plugins/pluginInstaller.js +42 -8
- package/dist/plugins/schemas.js +1 -0
- package/dist/plugins/types.d.ts +6 -0
- package/dist/preset/index.d.ts +11 -1
- package/dist/preset/index.js +115 -6
- package/dist/product/types.d.ts +1 -1
- package/dist/prompt/composer.d.ts +32 -0
- package/dist/prompt/composer.js +75 -21
- package/dist/prompt/instruction-scanner.js +5 -3
- package/dist/prompt/section-loader.js +1 -0
- package/dist/prompt/sections/base.md +2 -0
- package/dist/prompt/sections/browser.md +10 -0
- package/dist/prompt/sections/coding.md +4 -0
- package/dist/protocol/chat-session-manager.d.ts +9 -2
- package/dist/protocol/chat-session-manager.js +38 -0
- package/dist/protocol/chat-session.d.ts +69 -1
- package/dist/protocol/chat-session.js +102 -4
- package/dist/protocol/client.d.ts +31 -0
- package/dist/protocol/client.js +44 -0
- package/dist/protocol/server.d.ts +120 -7
- package/dist/protocol/server.js +753 -51
- package/dist/protocol/transport.js +3 -2
- package/dist/protocol/types.d.ts +60 -0
- package/dist/protocol/types.js +16 -0
- package/dist/quota/credentials.d.ts +3 -0
- package/dist/quota/credentials.js +80 -0
- package/dist/quota/index.d.ts +36 -0
- package/dist/quota/index.js +155 -0
- package/dist/quota/types.d.ts +48 -0
- package/dist/quota/types.js +13 -0
- package/dist/review/review-prompt.d.ts +28 -0
- package/dist/review/review-prompt.js +81 -0
- package/dist/run/FileRunStore.js +8 -3
- package/dist/run/RunApprovalBackend.js +25 -5
- package/dist/run/RunManager.d.ts +12 -0
- package/dist/run/RunManager.js +35 -0
- package/dist/run/factory.d.ts +1 -1
- package/dist/runtime/background-shell.d.ts +139 -0
- package/dist/runtime/background-shell.js +509 -0
- package/dist/runtime/output-clean.d.ts +24 -0
- package/dist/runtime/output-clean.js +41 -0
- package/dist/runtime/ring-file.d.ts +64 -0
- package/dist/runtime/ring-file.js +174 -0
- package/dist/runtime/safe-spawn.js +98 -39
- package/dist/runtime/spawn-common.d.ts +159 -0
- package/dist/runtime/spawn-common.js +404 -0
- package/dist/runtime/truncate-output.d.ts +22 -0
- package/dist/runtime/truncate-output.js +49 -0
- package/dist/runtime/utf8-cut.d.ts +11 -0
- package/dist/runtime/utf8-cut.js +23 -0
- package/dist/services/auto-dream.d.ts +4 -0
- package/dist/services/auto-dream.js +26 -26
- package/dist/services/diagnostics.d.ts +1 -2
- package/dist/services/diagnostics.js +12 -7
- package/dist/services/extract-memories.d.ts +14 -1
- package/dist/services/extract-memories.js +45 -6
- package/dist/services/memory-orchestrator.d.ts +21 -0
- package/dist/services/memory-orchestrator.js +125 -50
- package/dist/services/session-memory.js +24 -12
- package/dist/session/file-history.d.ts +124 -1
- package/dist/session/file-history.js +222 -6
- package/dist/session/memory.d.ts +116 -2
- package/dist/session/memory.js +250 -28
- package/dist/session/session-manager.d.ts +40 -0
- package/dist/session/session-manager.js +119 -3
- package/dist/session/simple-diff.d.ts +23 -0
- package/dist/session/simple-diff.js +84 -0
- package/dist/session/transcript.d.ts +29 -1
- package/dist/session/transcript.js +56 -2
- package/dist/session/undo-target.d.ts +67 -0
- package/dist/session/undo-target.js +144 -0
- package/dist/settings/disk-defaults.d.ts +9 -2
- package/dist/settings/disk-defaults.js +11 -2
- package/dist/settings/feature-flags.d.ts +64 -0
- package/dist/settings/feature-flags.js +61 -0
- package/dist/settings/manager.d.ts +68 -1
- package/dist/settings/manager.js +266 -29
- package/dist/settings/migrate-config.d.ts +45 -0
- package/dist/settings/migrate-config.js +125 -0
- package/dist/settings/schema-export.d.ts +25 -0
- package/dist/settings/schema-export.js +38 -0
- package/dist/settings/schema.d.ts +1186 -771
- package/dist/settings/schema.js +268 -97
- package/dist/skills/scanner.d.ts +9 -0
- package/dist/skills/scanner.js +30 -2
- package/dist/stt/resolve-transcribe.d.ts +31 -0
- package/dist/stt/resolve-transcribe.js +108 -0
- package/dist/stt/transcribe.d.ts +51 -0
- package/dist/stt/transcribe.js +65 -0
- package/dist/tool-system/browser-bridge.d.ts +226 -0
- package/dist/tool-system/browser-bridge.js +163 -0
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +49 -0
- package/dist/tool-system/builtin/agent-heartbeat.js +89 -0
- package/dist/tool-system/builtin/agent-notifications.d.ts +12 -3
- package/dist/tool-system/builtin/agent-notifications.js +9 -3
- package/dist/tool-system/builtin/agent-output-file.d.ts +38 -0
- package/dist/tool-system/builtin/agent-output-file.js +72 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +12 -0
- package/dist/tool-system/builtin/agent-registry.js +8 -0
- package/dist/tool-system/builtin/agent.d.ts +21 -1
- package/dist/tool-system/builtin/agent.js +489 -42
- package/dist/tool-system/builtin/apply-patch/applier.js +66 -8
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +10 -0
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +30 -0
- package/dist/tool-system/builtin/apply-patch/index.js +0 -15
- package/dist/tool-system/builtin/background-jobs.d.ts +76 -0
- package/dist/tool-system/builtin/background-jobs.js +124 -0
- package/dist/tool-system/builtin/background-shell-tools.d.ts +20 -0
- package/dist/tool-system/builtin/background-shell-tools.js +108 -0
- package/dist/tool-system/builtin/background-work.d.ts +67 -0
- package/dist/tool-system/builtin/background-work.js +86 -0
- package/dist/tool-system/builtin/bash-output-style.d.ts +32 -0
- package/dist/tool-system/builtin/bash-output-style.js +40 -0
- package/dist/tool-system/builtin/bash.d.ts +5 -2
- package/dist/tool-system/builtin/bash.js +101 -64
- package/dist/tool-system/builtin/browser-tools.d.ts +33 -0
- package/dist/tool-system/builtin/browser-tools.js +312 -0
- package/dist/tool-system/builtin/cancel-goal.d.ts +31 -0
- package/dist/tool-system/builtin/cancel-goal.js +64 -0
- package/dist/tool-system/builtin/check-quota.d.ts +15 -0
- package/dist/tool-system/builtin/check-quota.js +34 -0
- package/dist/tool-system/builtin/config.js +7 -0
- package/dist/tool-system/builtin/cron.d.ts +7 -0
- package/dist/tool-system/builtin/cron.js +64 -4
- package/dist/tool-system/builtin/drive-claude-code.d.ts +30 -0
- package/dist/tool-system/builtin/drive-claude-code.js +157 -0
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +3 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +104 -0
- package/dist/tool-system/builtin/edit.js +20 -16
- package/dist/tool-system/builtin/eol.d.ts +29 -0
- package/dist/tool-system/builtin/eol.js +37 -0
- package/dist/tool-system/builtin/file-cache.d.ts +6 -0
- package/dist/tool-system/builtin/file-cache.js +8 -0
- package/dist/tool-system/builtin/generate-image.d.ts +35 -0
- package/dist/tool-system/builtin/generate-image.js +278 -50
- package/dist/tool-system/builtin/generate-video.d.ts +55 -0
- package/dist/tool-system/builtin/generate-video.js +364 -0
- package/dist/tool-system/builtin/glob.js +0 -7
- package/dist/tool-system/builtin/grep.d.ts +9 -0
- package/dist/tool-system/builtin/grep.js +106 -11
- package/dist/tool-system/builtin/image-providers.d.ts +86 -0
- package/dist/tool-system/builtin/image-providers.js +190 -0
- package/dist/tool-system/builtin/image-uploader.d.ts +33 -0
- package/dist/tool-system/builtin/image-uploader.js +74 -0
- package/dist/tool-system/builtin/index.d.ts +10 -2
- package/dist/tool-system/builtin/index.js +251 -27
- package/dist/tool-system/builtin/mcp-tools.js +23 -3
- package/dist/tool-system/builtin/memory.js +45 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -7
- package/dist/tool-system/builtin/powershell.js +8 -2
- package/dist/tool-system/builtin/read.js +10 -10
- package/dist/tool-system/builtin/repl.js +4 -1
- package/dist/tool-system/builtin/skill.js +9 -0
- package/dist/tool-system/builtin/sleep.js +8 -2
- package/dist/tool-system/builtin/tool-search.js +25 -7
- package/dist/tool-system/builtin/video-providers.d.ts +154 -0
- package/dist/tool-system/builtin/video-providers.js +235 -0
- package/dist/tool-system/builtin/web-fetch.js +12 -2
- package/dist/tool-system/builtin/web-search.js +21 -7
- package/dist/tool-system/builtin/worktree.d.ts +2 -1
- package/dist/tool-system/builtin/worktree.js +31 -4
- package/dist/tool-system/builtin/write.js +0 -6
- package/dist/tool-system/context.d.ts +164 -6
- package/dist/tool-system/executor.d.ts +3 -1
- package/dist/tool-system/executor.js +197 -90
- package/dist/tool-system/investigation-guard.js +1 -1
- package/dist/tool-system/mcp-manager.d.ts +42 -4
- package/dist/tool-system/mcp-manager.js +203 -20
- package/dist/tool-system/mcp-stdio-diagnostics.d.ts +9 -0
- package/dist/tool-system/mcp-stdio-diagnostics.js +93 -0
- package/dist/tool-system/path-policy.d.ts +5 -0
- package/dist/tool-system/path-policy.js +307 -8
- package/dist/tool-system/permission.d.ts +39 -2
- package/dist/tool-system/permission.js +283 -70
- package/dist/tool-system/plan-mode-allowlist.d.ts +13 -2
- package/dist/tool-system/plan-mode-allowlist.js +24 -2
- package/dist/tool-system/registry.d.ts +1 -0
- package/dist/tool-system/registry.js +16 -2
- package/dist/tool-system/sandbox/index.d.ts +8 -0
- package/dist/tool-system/sandbox/index.js +7 -2
- package/dist/tool-system/sandbox/off.js +7 -1
- package/dist/tool-system/validate-tool-metadata.d.ts +36 -0
- package/dist/tool-system/validate-tool-metadata.js +63 -0
- package/dist/types.d.ts +252 -7
- package/dist/updater.js +20 -9
- package/dist/utils/envUtils.d.ts +0 -9
- package/dist/utils/envUtils.js +3 -28
- package/dist/utils/exec.d.ts +48 -0
- package/dist/utils/exec.js +154 -0
- package/dist/utils/json.d.ts +12 -0
- package/dist/utils/json.js +92 -0
- package/dist/utils/theme.d.ts +1 -1
- package/dist/utils/theme.js +1 -1
- package/dist/utils/toolDisplay.js +0 -1
- package/package.json +13 -7
- package/dist/agent/coordinator.d.ts +0 -49
- package/dist/agent/coordinator.js +0 -77
- package/dist/settings/manager.test.js +0 -73
- package/dist/tool-system/builtin/remote-trigger.d.ts +0 -6
- package/dist/tool-system/builtin/remote-trigger.js +0 -54
- package/dist/tool-system/builtin/send-message.d.ts +0 -6
- package/dist/tool-system/builtin/send-message.js +0 -47
- /package/dist/{settings/manager.test.d.ts → credentials/types.js} +0 -0
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* EnterWorktree / ExitWorktree tools — create and manage isolated git worktrees.
|
|
3
3
|
*/
|
|
4
4
|
import type { ToolDefinition } from "../../types.js";
|
|
5
|
+
import type { ToolContext } from "../context.js";
|
|
5
6
|
import { type WorktreeSession } from "../../git/worktree.js";
|
|
6
7
|
export declare function getActiveWorktree(): WorktreeSession | undefined;
|
|
7
8
|
export declare const enterWorktreeToolDef: ToolDefinition;
|
|
8
|
-
export declare function enterWorktreeTool(args: Record<string, unknown
|
|
9
|
+
export declare function enterWorktreeTool(args: Record<string, unknown>, ctx?: ToolContext): Promise<string>;
|
|
9
10
|
export declare const exitWorktreeToolDef: ToolDefinition;
|
|
10
11
|
export declare function exitWorktreeTool(args: Record<string, unknown>): Promise<string>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EnterWorktree / ExitWorktree tools — create and manage isolated git worktrees.
|
|
3
3
|
*/
|
|
4
|
-
import { createWorktree, removeWorktree, validateWorktreeSlug, } from "../../git/worktree.js";
|
|
4
|
+
import { createWorktree, removeWorktree, validateWorktreeSlug, selectPlatformScript, runWorktreeSetup, } from "../../git/worktree.js";
|
|
5
5
|
// Global worktree state
|
|
6
6
|
let _activeWorktree;
|
|
7
7
|
export function getActiveWorktree() {
|
|
@@ -25,7 +25,7 @@ export const enterWorktreeToolDef = {
|
|
|
25
25
|
required: ["slug"],
|
|
26
26
|
},
|
|
27
27
|
};
|
|
28
|
-
export async function enterWorktreeTool(args) {
|
|
28
|
+
export async function enterWorktreeTool(args, ctx) {
|
|
29
29
|
const slug = args.slug;
|
|
30
30
|
if (!slug)
|
|
31
31
|
return "Error: slug is required";
|
|
@@ -41,18 +41,45 @@ export async function enterWorktreeTool(args) {
|
|
|
41
41
|
try {
|
|
42
42
|
// Use a placeholder session ID (the agent should set this properly)
|
|
43
43
|
const sessionId = args.__sessionId ?? `wt-${Date.now()}`;
|
|
44
|
-
const cwd = args.__cwd ?? process.cwd();
|
|
44
|
+
const cwd = args.__cwd ?? ctx?.cwd ?? process.cwd();
|
|
45
45
|
_activeWorktree = createWorktree(cwd, slug, sessionId);
|
|
46
|
+
// Run the project's localEnvironment.setupScripts once in the new
|
|
47
|
+
// worktree root (Beta decision 2026-06-08: setup belongs to the worktree
|
|
48
|
+
// lifecycle, not the conversation). Failure warns-but-continues — a broken
|
|
49
|
+
// setup script must not strand the agent outside a worktree it just made.
|
|
50
|
+
let setupNote = "";
|
|
51
|
+
const setupScripts = ctx?.engine?.readWorktreeSetupScripts(cwd);
|
|
52
|
+
const script = selectPlatformScript(setupScripts);
|
|
53
|
+
if (script) {
|
|
54
|
+
const setup = await runWorktreeSetup(_activeWorktree.worktreePath, script, {
|
|
55
|
+
sandbox: ctx?.sandbox,
|
|
56
|
+
shellEnv: ctx?.shellEnv,
|
|
57
|
+
signal: ctx?.signal,
|
|
58
|
+
});
|
|
59
|
+
if (setup.ok) {
|
|
60
|
+
setupNote = `\n\nRan setup script (exit 0).${setup.output ? `\n${truncate(setup.output)}` : ""}`;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
setupNote =
|
|
64
|
+
`\n\n⚠️ Setup script failed (exit ${setup.exitCode ?? "?"}) — continuing anyway. ` +
|
|
65
|
+
`You may need to run setup manually.${setup.output ? `\n${truncate(setup.output)}` : ""}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
46
68
|
return (`Worktree created:\n` +
|
|
47
69
|
` Path: ${_activeWorktree.worktreePath}\n` +
|
|
48
70
|
` Branch: ${_activeWorktree.worktreeBranch}\n` +
|
|
49
71
|
` From: ${_activeWorktree.originalBranch ?? "HEAD"}\n\n` +
|
|
50
|
-
`You are now working in an isolated copy. Changes here won't affect the main repo.`
|
|
72
|
+
`You are now working in an isolated copy. Changes here won't affect the main repo.` +
|
|
73
|
+
setupNote);
|
|
51
74
|
}
|
|
52
75
|
catch (err) {
|
|
53
76
|
return `Error creating worktree: ${err.message}`;
|
|
54
77
|
}
|
|
55
78
|
}
|
|
79
|
+
/** Keep setup output from bloating the tool result — head+tail-ish trim. */
|
|
80
|
+
function truncate(s, max = 2000) {
|
|
81
|
+
return s.length <= max ? s : `${s.slice(0, max)}\n…(${s.length - max} more chars)`;
|
|
82
|
+
}
|
|
56
83
|
export const exitWorktreeToolDef = {
|
|
57
84
|
name: "ExitWorktree",
|
|
58
85
|
description: "Exit the current worktree and return to the main working directory. " +
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { writeFile, mkdir } from "node:fs/promises";
|
|
5
5
|
import { dirname } from "node:path";
|
|
6
6
|
import { fileCache } from "./file-cache.js";
|
|
7
|
-
import { enforcePathPolicy } from "../path-policy.js";
|
|
8
7
|
export const writeToolDef = {
|
|
9
8
|
name: "Write",
|
|
10
9
|
description: "Write content to a file. Creates the file if it doesn't exist, " +
|
|
@@ -25,11 +24,6 @@ export async function writeTool(args, ctx) {
|
|
|
25
24
|
return "Error: file_path is required";
|
|
26
25
|
if (content === undefined)
|
|
27
26
|
return "Error: content is required";
|
|
28
|
-
// Path policy gate: deny writes to sensitive paths, refuse writes outside
|
|
29
|
-
// workspace until approved. See tool-system/path-policy.ts.
|
|
30
|
-
const blocked = enforcePathPolicy(filePath, "write", ctx?.cwd);
|
|
31
|
-
if (blocked)
|
|
32
|
-
return blocked;
|
|
33
27
|
try {
|
|
34
28
|
await mkdir(dirname(filePath), { recursive: true });
|
|
35
29
|
await writeFile(filePath, content, "utf-8");
|
|
@@ -18,11 +18,39 @@ import type { ToolRegistry } from "./registry.js";
|
|
|
18
18
|
import type { AgentPresetName } from "../preset/index.js";
|
|
19
19
|
import type { SandboxBackend } from "./sandbox/index.js";
|
|
20
20
|
import type { HookRegistry } from "../hooks/registry.js";
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Narrow view of the owning Engine that tools are allowed to call back into.
|
|
23
|
+
* Defined here (in the low-level tool-system) rather than importing the
|
|
24
|
+
* concrete `Engine` type so tool-system does NOT depend on the top-level
|
|
25
|
+
* engine module — that import created a tool-system ↔ engine cycle. The Engine
|
|
26
|
+
* class satisfies this structurally (no `implements` needed); this interface
|
|
27
|
+
* lists exactly the members tools use today (see plan.ts / worktree.ts).
|
|
28
|
+
*/
|
|
29
|
+
export interface ToolRuntimeHost {
|
|
30
|
+
/** Whether the owning Engine is currently in plan mode. */
|
|
31
|
+
readonly planMode: boolean;
|
|
32
|
+
/** Toggle plan mode (EnterPlanMode / ExitPlanMode tools). */
|
|
33
|
+
setPlanMode(value: boolean): void;
|
|
34
|
+
/** Per-worktree setup scripts, or undefined for sub-agents / no cwd. */
|
|
35
|
+
readWorktreeSetupScripts(cwd?: string): {
|
|
36
|
+
default?: string;
|
|
37
|
+
macos?: string;
|
|
38
|
+
linux?: string;
|
|
39
|
+
windows?: string;
|
|
40
|
+
} | undefined;
|
|
41
|
+
}
|
|
22
42
|
/** One choice in a multiple-choice AskUserQuestion. */
|
|
23
43
|
export interface AskUserChoice {
|
|
24
44
|
label: string;
|
|
25
45
|
description: string;
|
|
46
|
+
/**
|
|
47
|
+
* Optional semantic hint for how the UI colors this choice and its resolved
|
|
48
|
+
* echo — `ok` (affirmative / allow → green ✓), `danger` (negative / deny →
|
|
49
|
+
* red ✕), `neutral` (no coloring). Only set by trusted first-party callers
|
|
50
|
+
* with fixed option sets (e.g. the credential-use gate); the LLM-facing
|
|
51
|
+
* AskUserQuestion tool strips it so model-authored prompts stay neutral.
|
|
52
|
+
*/
|
|
53
|
+
tone?: "ok" | "danger" | "neutral";
|
|
26
54
|
}
|
|
27
55
|
/**
|
|
28
56
|
* Optional rendering hints / multiple-choice options carried alongside the
|
|
@@ -35,6 +63,14 @@ export interface AskUserOptions {
|
|
|
35
63
|
options?: AskUserChoice[];
|
|
36
64
|
/** Allow the user to pick more than one option. Defaults to false. */
|
|
37
65
|
multiSelect?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* When true, the UI must offer ONLY the given `options` — no "其它…"
|
|
68
|
+
* free-text escape hatch. Used by closed-set decisions (e.g. a path-permission
|
|
69
|
+
* 允许本次/拒绝 prompt) where the answer is interpreted by an exact label
|
|
70
|
+
* match, so a free-typed answer like "允许" would never match and silently
|
|
71
|
+
* deny. Ignored unless `options` is non-empty.
|
|
72
|
+
*/
|
|
73
|
+
optionsOnly?: boolean;
|
|
38
74
|
}
|
|
39
75
|
/**
|
|
40
76
|
* Function the host UI / server uses to ask the user a question.
|
|
@@ -76,6 +112,12 @@ export interface SubAgentSpawnRequest {
|
|
|
76
112
|
* Undefined → child inherits the parent's full tool set (current behavior).
|
|
77
113
|
*/
|
|
78
114
|
toolAllowlist?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* Optional skill-name allowlist for the child (hard isolation). When set,
|
|
117
|
+
* the child only sees/invokes these skills in its system prompt and Skill
|
|
118
|
+
* tool. Undefined → child inherits the parent's full skill pool.
|
|
119
|
+
*/
|
|
120
|
+
skillAllowlist?: string[];
|
|
79
121
|
/**
|
|
80
122
|
* Optional per-call system prompt appended to the child Engine's prompt
|
|
81
123
|
* (the role definition's Markdown body). Undefined → child inherits only
|
|
@@ -84,10 +126,34 @@ export interface SubAgentSpawnRequest {
|
|
|
84
126
|
appendSystemPrompt?: string;
|
|
85
127
|
/** True for read-only reviewer/researcher children; tunes investigation guard reminders. */
|
|
86
128
|
readOnlySession?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Resume an existing child session instead of cold-starting a new one.
|
|
131
|
+
* When set, the child Engine runs with `sessionId: resumeSessionId`, which
|
|
132
|
+
* loads that session's full transcript (all prior tool calls + results) and
|
|
133
|
+
* appends this turn's prompt — i.e. transcript replay, the CC model. When
|
|
134
|
+
* omitted, the child cold-starts under its own `agentId` as the session id
|
|
135
|
+
* (so `agentId === childSid`, enabling later resume with no extra mapping).
|
|
136
|
+
* See AgentSendInput in builtin/agent.ts.
|
|
137
|
+
*/
|
|
138
|
+
resumeSessionId?: string;
|
|
87
139
|
}
|
|
88
140
|
export interface SubAgentSpawner {
|
|
89
|
-
/**
|
|
90
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Run a sub-agent synchronously. Returns its text output and the child's
|
|
143
|
+
* session id. The session id equals the request's `agentId` on a cold start
|
|
144
|
+
* (or `resumeSessionId` when resuming), so the parent can address follow-up
|
|
145
|
+
* input at the same session via AgentSendInput (transcript replay).
|
|
146
|
+
*/
|
|
147
|
+
spawn(req: SubAgentSpawnRequest): Promise<{
|
|
148
|
+
text: string;
|
|
149
|
+
sessionId: string;
|
|
150
|
+
}>;
|
|
151
|
+
/**
|
|
152
|
+
* Whether a child session id exists on disk. Lets AgentSendInput resume an
|
|
153
|
+
* agent across a process restart (when the in-memory registry is empty but
|
|
154
|
+
* the session transcript is still persisted). Optional for legacy callers.
|
|
155
|
+
*/
|
|
156
|
+
sessionExists?(sessionId: string): boolean;
|
|
91
157
|
/** Stream callback to forward sub-agent events back to the parent UI. */
|
|
92
158
|
parentStream?: StreamCallback;
|
|
93
159
|
/** Static config used to describe what the spawned engine looks like. */
|
|
@@ -103,6 +169,10 @@ export interface SubAgentSpawner {
|
|
|
103
169
|
* Optional fields are filled in by Engine.run(); some headless paths may
|
|
104
170
|
* leave them undefined (e.g. running without UI → no askUser).
|
|
105
171
|
*/
|
|
172
|
+
export interface ToolVisibilityContext {
|
|
173
|
+
cwd: string;
|
|
174
|
+
hasGoal: boolean;
|
|
175
|
+
}
|
|
106
176
|
export interface ToolContext {
|
|
107
177
|
/** Active working directory for this Engine. */
|
|
108
178
|
cwd: string;
|
|
@@ -156,9 +226,18 @@ export interface ToolContext {
|
|
|
156
226
|
/** Whether the owning Engine is currently in plan mode. Replaces the
|
|
157
227
|
* removed module-level `isInPlanMode()` singleton. */
|
|
158
228
|
planMode: boolean;
|
|
159
|
-
/**
|
|
160
|
-
*
|
|
161
|
-
|
|
229
|
+
/**
|
|
230
|
+
* The owning Engine's permission mode. Path policy reads this so that
|
|
231
|
+
* `bypassPermissions` (the user's "完全访问") skips the path-approval prompt
|
|
232
|
+
* entirely — matching the tool-permission backend and CC, where bypass
|
|
233
|
+
* skips ALL checks including path validation. Undefined → treat as
|
|
234
|
+
* "default" (always enforce). */
|
|
235
|
+
permissionMode?: string;
|
|
236
|
+
/** The Engine that built this context, as the narrow {@link ToolRuntimeHost}
|
|
237
|
+
* view. Lets tools call back into the engine (e.g. ctx.engine.setPlanMode)
|
|
238
|
+
* without a module-level singleton — and without tool-system depending on
|
|
239
|
+
* the concrete Engine type (which would re-introduce the import cycle). */
|
|
240
|
+
engine: ToolRuntimeHost;
|
|
162
241
|
/**
|
|
163
242
|
* sessionId of the Engine.run() turn this context was built for. Tools
|
|
164
243
|
* that emit session-scoped side effects (today: background-agent
|
|
@@ -183,6 +262,28 @@ export interface ToolContext {
|
|
|
183
262
|
* `settings.disabledPlugins` by Engine.run().
|
|
184
263
|
*/
|
|
185
264
|
disabledPlugins?: string[];
|
|
265
|
+
/**
|
|
266
|
+
* Sub-agent skill allowlist (hard isolation). When set, this sub-agent may
|
|
267
|
+
* only see/invoke skills in this list — applied on top of the disabled
|
|
268
|
+
* lists. Undefined → inherit the parent's full pool (current behavior).
|
|
269
|
+
* Comes from the agent role definition's `skills:` frontmatter, threaded
|
|
270
|
+
* through SubAgentSpawnRequest.skillAllowlist into the child Engine.
|
|
271
|
+
*/
|
|
272
|
+
skillAllowlist?: string[];
|
|
273
|
+
/**
|
|
274
|
+
* Background-shell manager (Bash run_in_background + BashOutput / KillShell
|
|
275
|
+
* / ListShells). Undefined → the tools fall back to the process-local
|
|
276
|
+
* `backgroundShellManager` singleton. Threaded explicitly so tests (and
|
|
277
|
+
* any future per-engine isolation) can inject their own instance.
|
|
278
|
+
*/
|
|
279
|
+
backgroundShells?: import("../runtime/background-shell.js").BackgroundShellManager;
|
|
280
|
+
/**
|
|
281
|
+
* False in unattended automation/cron runs — `Bash(run_in_background=true)`
|
|
282
|
+
* is rejected and the three background-shell tools are stripped (design
|
|
283
|
+
* §5.5): no one is watching to reap a long-lived dev server. Defaults to
|
|
284
|
+
* true (interactive sessions allow it).
|
|
285
|
+
*/
|
|
286
|
+
allowBackgroundShells?: boolean;
|
|
186
287
|
/**
|
|
187
288
|
* Builtin tool names the project's capabilityOverrides marked `off` for
|
|
188
289
|
* this cwd. Engine.run() already HIDES these from the LLM-visible tool
|
|
@@ -193,7 +294,64 @@ export interface ToolContext {
|
|
|
193
294
|
* sub-agents and no-cwd contexts (same as readBuiltinOverride).
|
|
194
295
|
*/
|
|
195
296
|
disabledBuiltins?: Set<string>;
|
|
297
|
+
/**
|
|
298
|
+
* Per-turn context used by builtin availability guards. Engine.run() uses the
|
|
299
|
+
* same object to hide tools from the model; ToolExecutor reuses it to reject
|
|
300
|
+
* direct calls to tools that are not available in the current runtime state.
|
|
301
|
+
*/
|
|
302
|
+
toolVisibility?: ToolVisibilityContext;
|
|
303
|
+
/**
|
|
304
|
+
* MCP servers THIS session's merged config enables (keys of
|
|
305
|
+
* config.mcpServers, enabled!==false). The pool + registry are
|
|
306
|
+
* worker-shared (B1), so tools registered by another project's session live
|
|
307
|
+
* in the same registry — the engine hides them from this session's tool
|
|
308
|
+
* list and the executor rejects calls to them via this set. Undefined =
|
|
309
|
+
* no gating (sub-agents / tests whose registries carry no MCP tools).
|
|
310
|
+
*/
|
|
311
|
+
allowedMcpServers?: Set<string>;
|
|
312
|
+
/**
|
|
313
|
+
* The engine's settings scope, so tools that read disk config directly (e.g.
|
|
314
|
+
* the credential tools) can honor host-isolation instead of always merging
|
|
315
|
+
* the host user's ~/.code-shell. "full" = host app (user + project); "project"
|
|
316
|
+
* / "isolated" = must not surface host user credentials or autoApprove.
|
|
317
|
+
* Undefined = legacy/no-cwd → treated as "full" by consumers for compat.
|
|
318
|
+
*/
|
|
319
|
+
settingsScope?: import("../settings/manager.js").SettingsScope;
|
|
320
|
+
/**
|
|
321
|
+
* Project-scoped extra environment variables (the user's
|
|
322
|
+
* `localEnvironment.env` KEY=VALUE pairs for this cwd). Layered on top of
|
|
323
|
+
* the shell env that the Bash tool and background shells build, so a project
|
|
324
|
+
* can inject e.g. `DATABASE_URL` / `NODE_ENV` into every command it runs.
|
|
325
|
+
* Unlike the sandbox allowlist, these bypass the deny regex — the user put
|
|
326
|
+
* them in project settings deliberately. Undefined for sub-agents and
|
|
327
|
+
* no-cwd contexts (populated from settings by Engine.buildToolContext()).
|
|
328
|
+
*/
|
|
329
|
+
shellEnv?: Record<string, string>;
|
|
330
|
+
/**
|
|
331
|
+
* Browser automation bridge (browser_snapshot / click / type / navigate /
|
|
332
|
+
* scroll). The renderer implements it on top of the webview's CDP
|
|
333
|
+
* (Accessibility.getFullAXTree + Input.dispatchMouseEvent). Undefined →
|
|
334
|
+
* headless / no browser panel → the browser tools degrade with a clear error.
|
|
335
|
+
* See tool-system/browser-bridge.ts and the MVP spec
|
|
336
|
+
* docs/superpowers/specs/2026-06-16-browser-automation-mvp.md.
|
|
337
|
+
*/
|
|
338
|
+
browser?: import("./browser-bridge.js").BrowserBridge;
|
|
339
|
+
/**
|
|
340
|
+
* Inject a stored cookie credential into the built-in browser (restore its
|
|
341
|
+
* login state so the AI can drive the page as that account). The host
|
|
342
|
+
* (desktop main) implements it on top of `restoreCookiesToBrowser`. Undefined
|
|
343
|
+
* → headless / no browser → the InjectCredential tool degrades with a clear
|
|
344
|
+
* error. Mirrors the askUser cross-process callback shape. The credentialId
|
|
345
|
+
* names a `type:"cookie"` credential; result counts cookies written.
|
|
346
|
+
*/
|
|
347
|
+
injectCredentialToBrowser?: InjectCredentialFn;
|
|
196
348
|
}
|
|
349
|
+
/** Inject a cookie credential into the built-in browser (host-implemented). */
|
|
350
|
+
export type InjectCredentialFn = (credentialId: string) => Promise<{
|
|
351
|
+
ok: boolean;
|
|
352
|
+
count?: number;
|
|
353
|
+
error?: string;
|
|
354
|
+
}>;
|
|
197
355
|
/**
|
|
198
356
|
* Per-Engine container that produces a fresh ToolContext on demand.
|
|
199
357
|
* Engine creates one of these in run() and passes it to ToolExecutor.
|
|
@@ -39,7 +39,9 @@ export declare class ToolExecutor {
|
|
|
39
39
|
/** Check if a tool is safe for concurrent execution (read-only). */
|
|
40
40
|
isConcurrencySafe(toolName: string): boolean;
|
|
41
41
|
executeSingle(callIn: ToolCall): Promise<ToolResult>;
|
|
42
|
-
private
|
|
42
|
+
private resolvePolicyOperation;
|
|
43
|
+
private enforceDeclaredPathPolicy;
|
|
44
|
+
private resolvePathPolicyTargets;
|
|
43
45
|
/**
|
|
44
46
|
* Convert tool results into Message entries for the transcript.
|
|
45
47
|
*/
|