@cjhyy/code-shell-core 0.7.0 → 0.8.0
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 +36 -23
- package/dist/agent/agent-definition-registry.d.ts +2 -2
- package/dist/agent/agent-definition-registry.js +47 -10
- package/dist/agent/agent-definition.d.ts +5 -0
- package/dist/agent/agent-definition.js +14 -0
- package/dist/automation/index.d.ts +7 -4
- package/dist/automation/index.js +4 -2
- package/dist/automation/runner.js +3 -1
- package/dist/automation/scheduler.d.ts +57 -1
- package/dist/automation/scheduler.js +123 -23
- package/dist/automation/store.d.ts +6 -2
- package/dist/automation/store.js +7 -3
- package/dist/capabilities/index.d.ts +109 -0
- package/dist/capabilities/index.js +80 -0
- package/dist/capability-control/disabled-lists.d.ts +2 -1
- package/dist/capability-control/disabled-lists.js +3 -5
- package/dist/capability-control/overlay.d.ts +14 -1
- package/dist/capability-control/overlay.js +40 -0
- package/dist/capability-control/service.js +6 -4
- package/dist/cli/agent-server-stdio.d.ts +1 -1
- package/dist/cli/agent-server-stdio.js +66 -6
- package/dist/cli/agent-server-tcp.js +20 -5
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +20 -4
- package/dist/context/manager.js +42 -7
- package/dist/context/token-counter.js +5 -3
- package/dist/context/tool-result-storage.d.ts +6 -0
- package/dist/context/tool-result-storage.js +25 -4
- package/dist/credentials/access.d.ts +13 -2
- package/dist/credentials/access.js +99 -4
- package/dist/credentials/index.d.ts +3 -2
- package/dist/credentials/index.js +2 -1
- package/dist/credentials/oauth.d.ts +9 -1
- package/dist/credentials/oauth.js +80 -1
- package/dist/credentials/store.d.ts +16 -2
- package/dist/credentials/store.js +33 -11
- package/dist/credentials/types.d.ts +62 -1
- package/dist/credentials/types.js +16 -1
- package/dist/credentials/use-credential-tool.js +15 -1
- package/dist/engine/auxiliary-pipeline.d.ts +40 -0
- package/dist/engine/auxiliary-pipeline.js +181 -0
- package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
- package/dist/{settings → engine}/disk-defaults.js +5 -2
- package/dist/engine/dynamic-tool-defs.d.ts +4 -0
- package/dist/engine/dynamic-tool-defs.js +4 -0
- package/dist/engine/engine.d.ts +272 -184
- package/dist/engine/engine.js +1869 -1864
- package/dist/engine/file-history-hook.d.ts +11 -0
- package/dist/engine/file-history-hook.js +31 -0
- package/dist/engine/goal-judge-context.d.ts +9 -0
- package/dist/engine/goal-judge-context.js +234 -0
- package/dist/engine/injected-context-cache.d.ts +6 -0
- package/dist/engine/injected-context-cache.js +13 -0
- package/dist/engine/input-attachments.d.ts +1 -1
- package/dist/engine/model-facade.d.ts +3 -3
- package/dist/engine/model-facade.js +15 -14
- package/dist/engine/permission-controller.d.ts +55 -0
- package/dist/engine/permission-controller.js +148 -0
- package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
- package/dist/engine/prompt-cache-diagnostics.js +178 -0
- package/dist/engine/run-accounting.d.ts +41 -0
- package/dist/engine/run-accounting.js +126 -0
- package/dist/engine/run-context.d.ts +44 -0
- package/dist/engine/run-context.js +88 -0
- package/dist/engine/run-environment.d.ts +30 -0
- package/dist/engine/run-environment.js +77 -0
- package/dist/engine/run-finalize.d.ts +58 -0
- package/dist/engine/run-finalize.js +245 -0
- package/dist/engine/run-goal.d.ts +58 -0
- package/dist/engine/run-goal.js +188 -0
- package/dist/engine/run-image-input.d.ts +1 -1
- package/dist/engine/run-image-input.js +5 -3
- package/dist/engine/run-session-open.d.ts +41 -0
- package/dist/engine/run-session-open.js +186 -0
- package/dist/engine/run-setup.d.ts +42 -0
- package/dist/engine/run-setup.js +58 -0
- package/dist/engine/run-tooling.d.ts +125 -0
- package/dist/engine/run-tooling.js +283 -0
- package/dist/engine/run-types.d.ts +139 -0
- package/dist/engine/run-types.js +12 -0
- package/dist/engine/run-workspace.d.ts +50 -0
- package/dist/engine/run-workspace.js +114 -0
- package/dist/engine/session-title.d.ts +2 -1
- package/dist/engine/session-title.js +4 -1
- package/dist/engine/steer-queue.d.ts +1 -1
- package/dist/engine/subagent-spawner.d.ts +32 -0
- package/dist/engine/subagent-spawner.js +287 -0
- package/dist/engine/tool-summary.d.ts +2 -2
- package/dist/engine/tool-summary.js +2 -2
- package/dist/engine/turn-loop.d.ts +67 -10
- package/dist/engine/turn-loop.js +538 -97
- package/dist/engine/types.d.ts +35 -4
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +26 -9
- package/dist/hooks/events.js +0 -3
- package/dist/hooks/goal-stop-hook.d.ts +28 -29
- package/dist/hooks/goal-stop-hook.js +344 -144
- package/dist/hooks/registry.js +4 -1
- package/dist/hooks/shell-runner.d.ts +12 -1
- package/dist/hooks/shell-runner.js +160 -9
- package/dist/index.d.ts +51 -110
- package/dist/index.extension.d.ts +51 -0
- package/dist/index.extension.js +39 -0
- package/dist/index.internal.d.ts +86 -0
- package/dist/index.internal.js +92 -0
- package/dist/index.js +37 -125
- package/dist/links/cli.d.ts +48 -0
- package/dist/links/cli.js +617 -0
- package/dist/links/http.d.ts +40 -0
- package/dist/links/http.js +166 -0
- package/dist/links/index.d.ts +4 -0
- package/dist/links/index.js +3 -0
- package/dist/links/link-action-tool.d.ts +5 -0
- package/dist/links/link-action-tool.js +241 -0
- package/dist/links/providers.d.ts +8 -0
- package/dist/links/providers.js +665 -0
- package/dist/links/types.d.ts +44 -0
- package/dist/llm/client-base.d.ts +7 -0
- package/dist/llm/client-base.js +72 -10
- package/dist/llm/model-pool.d.ts +1 -1
- package/dist/llm/model-pool.js +1 -1
- package/dist/llm/providers/anthropic.d.ts +1 -0
- package/dist/llm/providers/anthropic.js +9 -0
- package/dist/llm/providers/openai.d.ts +1 -0
- package/dist/llm/providers/openai.js +17 -0
- package/dist/llm/types.d.ts +12 -5
- package/dist/model-catalog/index.js +15 -2
- package/dist/model-catalog/resolve.d.ts +13 -1
- package/dist/model-catalog/resolve.js +37 -2
- package/dist/model-catalog/types.d.ts +74 -48
- package/dist/model-catalog/types.js +16 -5
- package/dist/model-catalog/upsert.d.ts +3 -1
- package/dist/model-catalog/upsert.js +9 -0
- package/dist/onboarding.d.ts +0 -1
- package/dist/onboarding.js +1 -22
- package/dist/panel-apps/bindings.d.ts +24 -0
- package/dist/panel-apps/bindings.js +69 -0
- package/dist/panel-apps/github-archive.d.ts +21 -0
- package/dist/panel-apps/github-archive.js +98 -0
- package/dist/panel-apps/index.d.ts +4 -0
- package/dist/panel-apps/index.js +4 -0
- package/dist/panel-apps/installer.d.ts +68 -0
- package/dist/panel-apps/installer.js +622 -0
- package/dist/panel-apps/manifest.d.ts +364 -0
- package/dist/panel-apps/manifest.js +189 -0
- package/dist/panel-apps/paths.d.ts +13 -0
- package/dist/panel-apps/paths.js +38 -0
- package/dist/panel-apps/registry.d.ts +51 -0
- package/dist/panel-apps/registry.js +99 -0
- package/dist/panel-apps/runtime.d.ts +80 -0
- package/dist/panel-apps/runtime.js +154 -0
- package/dist/plugins/gitOps.js +8 -1
- package/dist/plugins/installedPlugins.d.ts +2 -1
- package/dist/plugins/installedPlugins.js +146 -8
- package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
- package/dist/plugins/installer/codex/convertAgents.js +62 -8
- package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
- package/dist/plugins/installer/codex/convertCommands.js +35 -12
- package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
- package/dist/plugins/installer/codex/convertHooks.js +82 -0
- package/dist/plugins/installer/codex/convertSkills.js +41 -6
- package/dist/plugins/installer/install.d.ts +7 -1
- package/dist/plugins/installer/install.js +21 -87
- package/dist/plugins/installer/installFromArchive.d.ts +26 -4
- package/dist/plugins/installer/installFromArchive.js +44 -27
- package/dist/plugins/installer/installFromNpm.d.ts +31 -0
- package/dist/plugins/installer/installFromNpm.js +273 -0
- package/dist/plugins/installer/loadPluginAgents.js +17 -4
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +245 -35
- package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
- package/dist/plugins/installer/normalizeManifest.js +306 -0
- package/dist/plugins/installer/npmTar.d.ts +13 -0
- package/dist/plugins/installer/npmTar.js +321 -0
- package/dist/plugins/installer/parseSource.d.ts +11 -0
- package/dist/plugins/installer/parseSource.js +48 -0
- package/dist/plugins/installer/preview.d.ts +101 -0
- package/dist/plugins/installer/preview.js +336 -0
- package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
- package/dist/plugins/installer/projectPluginSource.js +140 -0
- package/dist/plugins/installer/types.d.ts +775 -0
- package/dist/plugins/installer/types.js +100 -0
- package/dist/plugins/installer/unzip.d.ts +11 -0
- package/dist/plugins/installer/unzip.js +123 -9
- package/dist/plugins/installer/update.d.ts +2 -2
- package/dist/plugins/installer/update.js +43 -4
- package/dist/plugins/loadPluginHooks.d.ts +19 -2
- package/dist/plugins/loadPluginHooks.js +97 -86
- package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
- package/dist/plugins/pluginAutomationTemplates.js +50 -0
- package/dist/plugins/pluginCatalog.d.ts +45 -0
- package/dist/plugins/pluginCatalog.js +87 -0
- package/dist/plugins/pluginCommandHook.d.ts +10 -4
- package/dist/plugins/pluginCommandHook.js +133 -18
- package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
- package/dist/plugins/pluginCommandsLoader.js +181 -7
- package/dist/plugins/pluginContent.d.ts +10 -1
- package/dist/plugins/pluginContent.js +87 -30
- package/dist/plugins/pluginHookApproval.d.ts +30 -0
- package/dist/plugins/pluginHookApproval.js +160 -0
- package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
- package/dist/plugins/pluginHookIntegrity.js +361 -0
- package/dist/plugins/pluginInstaller.js +71 -12
- package/dist/plugins/pluginMcpApproval.d.ts +19 -0
- package/dist/plugins/pluginMcpApproval.js +110 -0
- package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
- package/dist/plugins/pluginMcpIntegrity.js +74 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/varRewrite.d.ts +9 -5
- package/dist/plugins/varRewrite.js +26 -17
- package/dist/preset/index.d.ts +11 -8
- package/dist/preset/index.js +62 -203
- package/dist/product/define.js +9 -3
- package/dist/product/types.d.ts +0 -2
- package/dist/profile/activation.d.ts +36 -0
- package/dist/profile/activation.js +57 -0
- package/dist/profile/catalog-store.d.ts +77 -0
- package/dist/profile/catalog-store.js +346 -0
- package/dist/profile/catalog.d.ts +54 -0
- package/dist/profile/catalog.js +152 -0
- package/dist/profile/index.d.ts +7 -0
- package/dist/profile/index.js +7 -0
- package/dist/profile/requirements.d.ts +76 -0
- package/dist/profile/requirements.js +117 -0
- package/dist/profile/resolve.d.ts +11 -0
- package/dist/profile/resolve.js +41 -0
- package/dist/profile/store.d.ts +17 -0
- package/dist/profile/store.js +167 -0
- package/dist/profile/types.d.ts +321 -0
- package/dist/profile/types.js +104 -0
- package/dist/prompt/composer.d.ts +46 -7
- package/dist/prompt/composer.js +78 -48
- package/dist/prompt/instruction-scanner.d.ts +6 -5
- package/dist/prompt/instruction-scanner.js +8 -23
- package/dist/prompt/section-loader.d.ts +2 -2
- package/dist/prompt/section-loader.js +7 -4
- package/dist/prompt/sections/browser.md +10 -9
- package/dist/prompt/sections/harness-base.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +77 -3
- package/dist/protocol/chat-session-manager.js +194 -18
- package/dist/protocol/chat-session.d.ts +72 -9
- package/dist/protocol/chat-session.js +151 -16
- package/dist/protocol/client.d.ts +37 -4
- package/dist/protocol/client.js +118 -6
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +2 -2
- package/dist/protocol/mobile-remote-types.d.ts +406 -0
- package/dist/protocol/mobile-remote-types.js +1 -0
- package/dist/protocol/server.d.ts +152 -14
- package/dist/protocol/server.js +1574 -229
- package/dist/protocol/types.d.ts +182 -32
- package/dist/protocol/types.js +18 -0
- package/dist/run/ArtifactTracker.d.ts +6 -1
- package/dist/run/ArtifactTracker.js +29 -21
- package/dist/run/EngineRunner.d.ts +2 -0
- package/dist/run/EngineRunner.js +1 -0
- package/dist/run/RunManager.d.ts +26 -0
- package/dist/run/RunManager.js +82 -11
- package/dist/run/factory.d.ts +3 -0
- package/dist/run/factory.js +2 -0
- package/dist/runtime/safe-spawn.d.ts +6 -0
- package/dist/runtime/safe-spawn.js +8 -13
- package/dist/services/auto-dream.d.ts +13 -1
- package/dist/services/auto-dream.js +56 -8
- package/dist/services/dream-consolidation.d.ts +3 -0
- package/dist/services/dream-consolidation.js +14 -2
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.d.ts +34 -10
- package/dist/services/oauth.js +236 -98
- package/dist/services/session-memory.d.ts +4 -4
- package/dist/services/session-memory.js +13 -10
- package/dist/session/memory.d.ts +26 -7
- package/dist/session/memory.js +79 -21
- package/dist/session/session-manager.d.ts +208 -25
- package/dist/session/session-manager.js +1232 -116
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +76 -6
- package/dist/session/transcript.js +278 -7
- package/dist/settings/feature-flags.d.ts +40 -0
- package/dist/settings/feature-flags.js +40 -0
- package/dist/settings/manager.d.ts +39 -1
- package/dist/settings/manager.js +102 -41
- package/dist/settings/migrate-config.js +4 -2
- package/dist/settings/schema.d.ts +511 -177
- package/dist/settings/schema.js +98 -25
- package/dist/skills/scanner.d.ts +6 -2
- package/dist/skills/scanner.js +160 -9
- package/dist/sources/adapter.d.ts +14 -0
- package/dist/sources/adapter.js +7 -0
- package/dist/sources/adapters/local-files.d.ts +10 -0
- package/dist/sources/adapters/local-files.js +127 -0
- package/dist/sources/adapters/mcp-resource.d.ts +17 -0
- package/dist/sources/adapters/mcp-resource.js +41 -0
- package/dist/sources/adapters/mock.d.ts +3 -0
- package/dist/sources/adapters/mock.js +29 -0
- package/dist/sources/binding.d.ts +6 -0
- package/dist/sources/binding.js +24 -0
- package/dist/sources/catalog.d.ts +6 -0
- package/dist/sources/catalog.js +64 -0
- package/dist/sources/context-summary.d.ts +8 -0
- package/dist/sources/context-summary.js +13 -0
- package/dist/sources/credential-status.d.ts +2 -0
- package/dist/sources/credential-status.js +13 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/resolve.d.ts +28 -0
- package/dist/sources/resolve.js +47 -0
- package/dist/sources/truncate-utf8.d.ts +7 -0
- package/dist/sources/truncate-utf8.js +18 -0
- package/dist/sources/types.d.ts +71 -0
- package/dist/sources/types.js +26 -0
- package/dist/testing/fetch-stub.d.ts +32 -0
- package/dist/testing/fetch-stub.js +24 -0
- package/dist/themes/image.d.ts +18 -0
- package/dist/themes/image.js +117 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.js +4 -0
- package/dist/themes/installer.d.ts +50 -0
- package/dist/themes/installer.js +290 -0
- package/dist/themes/manifest.d.ts +102 -0
- package/dist/themes/manifest.js +86 -0
- package/dist/themes/paths.d.ts +14 -0
- package/dist/themes/paths.js +33 -0
- package/dist/tool-system/browser-bridge.d.ts +53 -11
- package/dist/tool-system/browser-bridge.js +8 -9
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
- package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
- package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
- package/dist/tool-system/builtin/agent-notifications.js +291 -101
- package/dist/tool-system/builtin/agent-output-file.js +1 -3
- package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
- package/dist/tool-system/builtin/agent-progress.js +83 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
- package/dist/tool-system/builtin/agent-registry.js +178 -9
- package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
- package/dist/tool-system/builtin/agent.d.ts +2 -0
- package/dist/tool-system/builtin/agent.js +279 -34
- package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
- package/dist/tool-system/builtin/background-jobs.js +111 -15
- package/dist/tool-system/builtin/background-work.d.ts +12 -1
- package/dist/tool-system/builtin/background-work.js +12 -1
- package/dist/tool-system/builtin/bash.d.ts +3 -5
- package/dist/tool-system/builtin/bash.js +14 -6
- package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
- package/dist/tool-system/builtin/browser-tools.js +89 -23
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
- package/dist/tool-system/builtin/edit.d.ts +2 -1
- package/dist/tool-system/builtin/edit.js +14 -10
- package/dist/tool-system/builtin/file-cache.d.ts +2 -0
- package/dist/tool-system/builtin/file-cache.js +4 -0
- package/dist/tool-system/builtin/generate-image.js +17 -10
- package/dist/tool-system/builtin/generate-video.d.ts +4 -0
- package/dist/tool-system/builtin/generate-video.js +164 -28
- package/dist/tool-system/builtin/glob.d.ts +2 -1
- package/dist/tool-system/builtin/glob.js +28 -3
- package/dist/tool-system/builtin/grep.d.ts +1 -0
- package/dist/tool-system/builtin/grep.js +82 -17
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +57 -18
- package/dist/tool-system/builtin/index.js +280 -167
- package/dist/tool-system/builtin/memory.d.ts +6 -0
- package/dist/tool-system/builtin/memory.js +36 -15
- package/dist/tool-system/builtin/panel.d.ts +9 -0
- package/dist/tool-system/builtin/panel.js +314 -0
- package/dist/tool-system/builtin/read.js +5 -1
- package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
- package/dist/tool-system/builtin/send-message-to-session.js +67 -0
- package/dist/tool-system/builtin/sources.d.ts +8 -0
- package/dist/tool-system/builtin/sources.js +137 -0
- package/dist/tool-system/builtin/tool-search.js +7 -2
- package/dist/tool-system/builtin/update-automation-memory.js +2 -0
- package/dist/tool-system/builtin/video-providers.d.ts +12 -15
- package/dist/tool-system/builtin/video-providers.js +1 -0
- package/dist/tool-system/builtin/view-image.d.ts +2 -2
- package/dist/tool-system/builtin/web-fetch.js +60 -15
- package/dist/tool-system/builtin/web-search.js +1 -3
- package/dist/tool-system/builtin/write.d.ts +2 -1
- package/dist/tool-system/builtin/write.js +14 -4
- package/dist/tool-system/capability-module.d.ts +93 -0
- package/dist/tool-system/capability-module.js +53 -0
- package/dist/tool-system/context.d.ts +94 -24
- package/dist/tool-system/executor.js +99 -58
- package/dist/tool-system/external-tool-exposure.d.ts +60 -0
- package/dist/tool-system/external-tool-exposure.js +304 -0
- package/dist/tool-system/mcp-manager.d.ts +17 -1
- package/dist/tool-system/mcp-manager.js +72 -7
- package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
- package/dist/tool-system/mcp-tool-policy.js +34 -0
- package/dist/tool-system/panel-bridge.d.ts +53 -0
- package/dist/tool-system/panel-bridge.js +1 -0
- package/dist/tool-system/path-policy.d.ts +19 -0
- package/dist/tool-system/path-policy.js +62 -1
- package/dist/tool-system/permission.d.ts +69 -3
- package/dist/tool-system/permission.js +429 -30
- package/dist/tool-system/registry.d.ts +15 -3
- package/dist/tool-system/registry.js +82 -40
- package/dist/tool-system/sandbox/index.js +3 -8
- package/dist/tool-system/sandbox/seatbelt.js +2 -6
- package/dist/tool-system/session-tool-host.d.ts +139 -0
- package/dist/tool-system/session-tool-host.js +167 -0
- package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
- package/dist/tool-system/testing/tool-registry-harness.js +51 -0
- package/dist/tool-system/validation.d.ts +14 -7
- package/dist/tool-system/validation.js +701 -7
- package/dist/types.d.ts +201 -20
- package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
- package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
- package/dist/utils/file-mutex.d.ts +65 -0
- package/dist/utils/file-mutex.js +145 -0
- package/dist/utils/json.d.ts +2 -4
- package/dist/utils/json.js +2 -4
- package/dist/utils/lockfile.d.ts +30 -1
- package/dist/utils/lockfile.js +2 -2
- package/dist/utils/secret-scrubber.d.ts +8 -0
- package/dist/utils/secret-scrubber.js +227 -0
- package/dist/utils/toolDisplay.js +1 -1
- package/package.json +20 -5
- package/THIRD_PARTY_NOTICES.md +0 -206
- package/dist/arena/arena.d.ts +0 -43
- package/dist/arena/arena.js +0 -333
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/context/context-tools.js +0 -272
- package/dist/arena/context/within-root.d.ts +0 -7
- package/dist/arena/context/within-root.js +0 -15
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/detect-mode.js +0 -78
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/digest-builder.js +0 -120
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -29
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/convergence.js +0 -103
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/formats/index.js +0 -283
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/index.js +0 -9
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/iterative-arena.js +0 -237
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/parse.js +0 -123
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/argue.js +0 -165
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/revise.js +0 -62
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/phases/tournament.js +0 -113
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/tools/web-tools.js +0 -54
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/iterate/types.js +0 -8
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/ledger.js +0 -159
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/architecture.js +0 -22
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/engineering.js +0 -22
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/general.js +0 -20
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/index.js +0 -47
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/lenses/product.js +0 -22
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/model-presets.js +0 -44
- package/dist/arena/phases/adjudication.d.ts +0 -24
- package/dist/arena/phases/adjudication.js +0 -141
- package/dist/arena/phases/build-consensus.d.ts +0 -29
- package/dist/arena/phases/build-consensus.js +0 -83
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/claim-registry.js +0 -60
- package/dist/arena/phases/cross-review.d.ts +0 -45
- package/dist/arena/phases/cross-review.js +0 -218
- package/dist/arena/phases/debate-rounds.d.ts +0 -27
- package/dist/arena/phases/debate-rounds.js +0 -159
- package/dist/arena/phases/participant-research.d.ts +0 -38
- package/dist/arena/phases/participant-research.js +0 -314
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
- package/dist/arena/phases/planning-detail-expansion.js +0 -119
- package/dist/arena/planner.d.ts +0 -27
- package/dist/arena/planner.js +0 -311
- package/dist/arena/providers/docs.d.ts +0 -7
- package/dist/arena/providers/docs.js +0 -111
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/git.js +0 -174
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/index.js +0 -132
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/none.js +0 -11
- package/dist/arena/providers/repo.d.ts +0 -7
- package/dist/arena/providers/repo.js +0 -258
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/session.js +0 -190
- package/dist/arena/render/terminal.d.ts +0 -34
- package/dist/arena/render/terminal.js +0 -286
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/discussion.js +0 -143
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/index.js +0 -28
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/language-wrapper.js +0 -102
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/lens-wrapper.js +0 -236
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/planning.js +0 -225
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/review.js +0 -168
- package/dist/arena/strategies/utils.d.ts +0 -36
- package/dist/arena/strategies/utils.js +0 -603
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/tools/selector.js +0 -61
- package/dist/arena/transitions.d.ts +0 -53
- package/dist/arena/transitions.js +0 -97
- package/dist/arena/types.d.ts +0 -514
- package/dist/arena/types.js +0 -27
- package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
- package/dist/cc-orchestrator/agent-adapter.js +0 -143
- package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
- package/dist/cc-orchestrator/cc-capability.js +0 -53
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
- package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
- package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
- package/dist/cc-orchestrator/codex-session-history.js +0 -247
- package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
- package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
- package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-changes.js +0 -231
- package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-driver.js +0 -284
- package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
- package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
- package/dist/cc-orchestrator/index.d.ts +0 -8
- package/dist/cc-orchestrator/index.js +0 -8
- package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
- package/dist/cc-orchestrator/relevance-judge.js +0 -29
- package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
- package/dist/cc-orchestrator/session-discovery.js +0 -125
- package/dist/cc-orchestrator/session-history.d.ts +0 -54
- package/dist/cc-orchestrator/session-history.js +0 -150
- package/dist/cron/cron-runtime.d.ts +0 -2
- package/dist/cron/cron-runtime.js +0 -2
- package/dist/cron/cron-store.d.ts +0 -2
- package/dist/cron/cron-store.js +0 -2
- package/dist/cron/scheduler.d.ts +0 -7
- package/dist/cron/scheduler.js +0 -7
- package/dist/engine/goal.js +0 -206
- package/dist/external-agents/config.d.ts +0 -2
- package/dist/external-agents/config.js +0 -15
- package/dist/external-agents/types.d.ts +0 -31
- package/dist/git/parse-log.d.ts +0 -13
- package/dist/git/parse-log.js +0 -21
- package/dist/git/utils.d.ts +0 -49
- package/dist/git/utils.js +0 -161
- package/dist/git/worktree/crud.d.ts +0 -69
- package/dist/git/worktree/crud.js +0 -206
- package/dist/git/worktree/diff.d.ts +0 -14
- package/dist/git/worktree/diff.js +0 -82
- package/dist/git/worktree/git-exec.d.ts +0 -7
- package/dist/git/worktree/git-exec.js +0 -51
- package/dist/git/worktree/index.d.ts +0 -5
- package/dist/git/worktree/index.js +0 -5
- package/dist/git/worktree/query.d.ts +0 -42
- package/dist/git/worktree/query.js +0 -121
- package/dist/git/worktree/slug.d.ts +0 -11
- package/dist/git/worktree/slug.js +0 -58
- package/dist/git/worktree.d.ts +0 -1
- package/dist/git/worktree.js +0 -5
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/client.js +0 -186
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/manager.js +0 -155
- package/dist/lsp/root-path.d.ts +0 -9
- package/dist/lsp/root-path.js +0 -12
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/lsp/servers.js +0 -60
- package/dist/prompt/sections/coding.md +0 -35
- package/dist/quota/credentials.d.ts +0 -3
- package/dist/quota/credentials.js +0 -80
- package/dist/quota/index.d.ts +0 -36
- package/dist/quota/index.js +0 -155
- package/dist/quota/types.d.ts +0 -48
- package/dist/quota/types.js +0 -13
- package/dist/review/review-prompt.d.ts +0 -28
- package/dist/review/review-prompt.js +0 -81
- package/dist/state.d.ts +0 -160
- package/dist/state.js +0 -267
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
- package/dist/tool-system/builtin/apply-patch/index.js +0 -105
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/apply-patch/types.js +0 -13
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/arena.js +0 -415
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/brief.js +0 -41
- package/dist/tool-system/builtin/check-quota.d.ts +0 -15
- package/dist/tool-system/builtin/check-quota.js +0 -34
- package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
- package/dist/tool-system/builtin/drive-claude-code.js +0 -698
- package/dist/tool-system/builtin/lsp.d.ts +0 -7
- package/dist/tool-system/builtin/lsp.js +0 -144
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -127
- package/dist/tool-system/builtin/worktree.d.ts +0 -11
- package/dist/tool-system/builtin/worktree.js +0 -345
- /package/dist/{external-agents → links}/types.js +0 -0
- /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
- /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
|
@@ -8,7 +8,6 @@ import { editModelCatalogToolDef, editModelCatalogTool } from "./edit-model-cata
|
|
|
8
8
|
import { generateVideoToolDef, generateVideoTool, isGenerateVideoAvailable, } from "./generate-video.js";
|
|
9
9
|
import { viewImageToolDef, viewImageTool } from "./view-image.js";
|
|
10
10
|
import { editToolDef, editTool } from "./edit.js";
|
|
11
|
-
import { applyPatchToolDef, applyPatchTool } from "./apply-patch/index.js";
|
|
12
11
|
import { globToolDef, globTool } from "./glob.js";
|
|
13
12
|
import { grepToolDef, grepTool } from "./grep.js";
|
|
14
13
|
import { bashToolDef, bashTool } from "./bash.js";
|
|
@@ -19,32 +18,75 @@ import { agentToolDef, agentTool, agentStatusToolDef, agentStatusTool, agentCanc
|
|
|
19
18
|
import { enterPlanModeToolDef, enterPlanModeTool, exitPlanModeToolDef, exitPlanModeTool, } from "./plan.js";
|
|
20
19
|
import { toolSearchToolDef, toolSearchTool } from "./tool-search.js";
|
|
21
20
|
import { todoWriteToolDef, todoWriteTool } from "./task.js";
|
|
22
|
-
import { enterWorktreeToolDef, enterWorktreeTool, exitWorktreeToolDef, exitWorktreeTool, switchSessionWorkspaceToolDef, switchSessionWorkspaceTool, } from "./worktree.js";
|
|
23
21
|
import { sleepToolDef } from "./sleep.definition.js";
|
|
24
22
|
import { sleepTool } from "./sleep.js";
|
|
25
23
|
import { configToolDef, configTool } from "./config.js";
|
|
26
|
-
import { notebookEditToolDef, notebookEditTool } from "./notebook-edit.js";
|
|
27
|
-
import { lspToolDef, lspTool } from "./lsp.js";
|
|
28
24
|
import { cronCreateToolDef, cronCreateTool, cronDeleteToolDef, cronDeleteTool, cronListTool, } from "./cron.js";
|
|
29
25
|
import { cronListToolDef } from "./cron-list.definition.js";
|
|
30
|
-
import { driveClaudeCodeToolDef, driveClaudeCodeTool, driveAgentToolDef, driveAgentTool, driveAgentJobsToolDef, driveAgentJobsTool, DRIVE_AGENT_TOOL_TIMEOUT_MS, } from "./drive-claude-code.js";
|
|
31
|
-
import { checkQuotaToolDef, checkQuotaTool } from "./check-quota.js";
|
|
32
26
|
import { skillToolDef, skillTool } from "./skill.js";
|
|
33
27
|
import { mcpToolDef, mcpToolExecute, listMcpResourcesToolDef, listMcpResourcesTool, readMcpResourceToolDef, readMcpResourceTool, } from "./mcp-tools.js";
|
|
28
|
+
import { listSourcesToolDef, listSourcesTool, readSourceToolDef, readSourceTool, } from "./sources.js";
|
|
34
29
|
import { replToolDef, replTool } from "./repl.js";
|
|
35
|
-
import { briefToolDef, briefTool } from "./brief.js";
|
|
36
30
|
import { powershellToolDef, powershellTool } from "./powershell.js";
|
|
37
|
-
import { arenaToolDef, arenaTool } from "./arena.js";
|
|
38
31
|
import { memoryListToolDef, memoryListTool, memoryReadToolDef, memoryReadTool, memorySaveToolDef, memorySaveTool, memoryDeleteToolDef, memoryDeleteTool, } from "./memory.js";
|
|
39
32
|
import { completeGoalToolDef, completeGoalTool } from "./complete-goal.js";
|
|
40
33
|
import { cancelGoalToolDef, cancelGoalTool } from "./cancel-goal.js";
|
|
41
34
|
import { addMarketplaceToolDef, addMarketplaceTool } from "./add-marketplace.js";
|
|
42
35
|
import { bashOutputToolDef, bashOutputTool, killShellToolDef, killShellTool, listShellsToolDef, listShellsTool, } from "./background-shell-tools.js";
|
|
43
36
|
import { browserObserveToolDef, browserObserveTool, browserActToolDef, browserActTool, browserNavigateToolDef, browserNavigateTool, } from "./browser-tools.js";
|
|
37
|
+
import { panelToolDef, panelTool } from "./panel.js";
|
|
38
|
+
import { sendMessageToSessionToolDef, sendMessageToSessionTool, rewriteSendMessageToSessionToolDefinition, } from "./send-message-to-session.js";
|
|
44
39
|
import { useCredentialToolDef, useCredentialBuiltinTool, } from "../../credentials/use-credential-tool.js";
|
|
45
40
|
import { injectCredentialToolDef, injectCredentialTool, isInjectCredentialAvailable, } from "../../credentials/inject-credential-tool.js";
|
|
46
41
|
import { credentialAccessScope, getCredentialAccess } from "../../credentials/access.js";
|
|
47
|
-
|
|
42
|
+
import { linkActionToolDef, linkActionTool, isLinkActionAvailable, } from "../../links/link-action-tool.js";
|
|
43
|
+
const FAILURE_TEXT = /^(?:error\b|failed\b|failure\b|skill\b.*(?:not found\b|disabled\b|not available\b|allowlist\b|denied\b)|(?:[a-z][\w-]*\s+){1,3}(?:error\b|failed\b|failure\b|aborted\b|timed out\b))/i;
|
|
44
|
+
function failureMessage(result) {
|
|
45
|
+
if (typeof result.error === "string" && result.error)
|
|
46
|
+
return result.error;
|
|
47
|
+
if (typeof result.result === "string" && result.result)
|
|
48
|
+
return result.result;
|
|
49
|
+
return "Tool execution failed";
|
|
50
|
+
}
|
|
51
|
+
/** Convert every builtin implementation into the closed discriminated protocol. */
|
|
52
|
+
export function toToolExecutionResult(value) {
|
|
53
|
+
if (typeof value === "string") {
|
|
54
|
+
return FAILURE_TEXT.test(value) ? { ok: false, error: value } : { ok: true, result: value };
|
|
55
|
+
}
|
|
56
|
+
if (!value || typeof value !== "object") {
|
|
57
|
+
return { ok: false, error: `Invalid tool result: ${String(value)}` };
|
|
58
|
+
}
|
|
59
|
+
const result = value;
|
|
60
|
+
if (result.ok === false || result.isError === true || "error" in result) {
|
|
61
|
+
return {
|
|
62
|
+
...result,
|
|
63
|
+
ok: false,
|
|
64
|
+
error: failureMessage(result),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (result.ok === true)
|
|
68
|
+
return result;
|
|
69
|
+
const text = typeof result.result === "string" ? result.result : undefined;
|
|
70
|
+
if (text && FAILURE_TEXT.test(text)) {
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
error: text,
|
|
74
|
+
...(result.sandbox ? { sandbox: result.sandbox } : {}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return { ok: true, ...result };
|
|
78
|
+
}
|
|
79
|
+
const GENERAL_TAGS = ["general"];
|
|
80
|
+
const HARNESS_TAGS = ["harness-min", "general"];
|
|
81
|
+
const EXPLICIT_ONLY = [];
|
|
82
|
+
function expose(presetTags, options = {}) {
|
|
83
|
+
return { presetTags, ...options };
|
|
84
|
+
}
|
|
85
|
+
function allow(tool) {
|
|
86
|
+
return [{ tool, decision: "allow" }];
|
|
87
|
+
}
|
|
88
|
+
/** One authoritative contribution record per builtin: schema, handler and product exposure. */
|
|
89
|
+
const BUILTIN_CONTRIBUTIONS = [
|
|
48
90
|
{
|
|
49
91
|
definition: {
|
|
50
92
|
...readToolDef,
|
|
@@ -55,6 +97,7 @@ export const BUILTIN_TOOLS = [
|
|
|
55
97
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "read" }],
|
|
56
98
|
},
|
|
57
99
|
execute: readTool,
|
|
100
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(readToolDef.name) }),
|
|
58
101
|
},
|
|
59
102
|
{
|
|
60
103
|
definition: {
|
|
@@ -66,6 +109,7 @@ export const BUILTIN_TOOLS = [
|
|
|
66
109
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "write" }],
|
|
67
110
|
},
|
|
68
111
|
execute: writeTool,
|
|
112
|
+
exposure: expose(HARNESS_TAGS),
|
|
69
113
|
},
|
|
70
114
|
{
|
|
71
115
|
definition: {
|
|
@@ -76,6 +120,7 @@ export const BUILTIN_TOOLS = [
|
|
|
76
120
|
isConcurrencySafe: false, // serializes writes to the single catalog file
|
|
77
121
|
},
|
|
78
122
|
execute: editModelCatalogTool,
|
|
123
|
+
exposure: expose(GENERAL_TAGS),
|
|
79
124
|
},
|
|
80
125
|
{
|
|
81
126
|
definition: {
|
|
@@ -96,6 +141,9 @@ export const BUILTIN_TOOLS = [
|
|
|
96
141
|
pathPolicy: [{ kind: "arg", arg: "referenceImages", operation: "read" }],
|
|
97
142
|
},
|
|
98
143
|
execute: generateImageTool,
|
|
144
|
+
exposure: expose(GENERAL_TAGS, {
|
|
145
|
+
availability: (ctx) => isGenerateImageAvailable(ctx.cwd),
|
|
146
|
+
}),
|
|
99
147
|
},
|
|
100
148
|
{
|
|
101
149
|
definition: {
|
|
@@ -114,6 +162,9 @@ export const BUILTIN_TOOLS = [
|
|
|
114
162
|
],
|
|
115
163
|
},
|
|
116
164
|
execute: generateVideoTool,
|
|
165
|
+
exposure: expose(GENERAL_TAGS, {
|
|
166
|
+
availability: (ctx) => isGenerateVideoAvailable(ctx.cwd),
|
|
167
|
+
}),
|
|
117
168
|
},
|
|
118
169
|
{
|
|
119
170
|
definition: {
|
|
@@ -125,6 +176,7 @@ export const BUILTIN_TOOLS = [
|
|
|
125
176
|
pathPolicy: [{ kind: "arg", arg: "path", operation: "read" }],
|
|
126
177
|
},
|
|
127
178
|
execute: viewImageTool,
|
|
179
|
+
exposure: expose(GENERAL_TAGS),
|
|
128
180
|
},
|
|
129
181
|
{
|
|
130
182
|
definition: {
|
|
@@ -136,17 +188,7 @@ export const BUILTIN_TOOLS = [
|
|
|
136
188
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "write" }],
|
|
137
189
|
},
|
|
138
190
|
execute: editTool,
|
|
139
|
-
|
|
140
|
-
{
|
|
141
|
-
definition: {
|
|
142
|
-
...applyPatchToolDef,
|
|
143
|
-
source: "builtin",
|
|
144
|
-
permissionDefault: "ask",
|
|
145
|
-
isReadOnly: false,
|
|
146
|
-
isConcurrencySafe: false,
|
|
147
|
-
pathPolicy: [{ kind: "apply_patch", arg: "patch", operation: "write" }],
|
|
148
|
-
},
|
|
149
|
-
execute: applyPatchTool,
|
|
191
|
+
exposure: expose(HARNESS_TAGS),
|
|
150
192
|
},
|
|
151
193
|
{
|
|
152
194
|
definition: {
|
|
@@ -155,9 +197,13 @@ export const BUILTIN_TOOLS = [
|
|
|
155
197
|
permissionDefault: "allow",
|
|
156
198
|
isReadOnly: true,
|
|
157
199
|
isConcurrencySafe: true,
|
|
158
|
-
pathPolicy: [
|
|
200
|
+
pathPolicy: [
|
|
201
|
+
{ kind: "arg", arg: "path", operation: "read", defaultToCwd: true },
|
|
202
|
+
{ kind: "arg", arg: "pattern", operation: "read" },
|
|
203
|
+
],
|
|
159
204
|
},
|
|
160
205
|
execute: globTool,
|
|
206
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(globToolDef.name) }),
|
|
161
207
|
},
|
|
162
208
|
{
|
|
163
209
|
definition: {
|
|
@@ -169,6 +215,7 @@ export const BUILTIN_TOOLS = [
|
|
|
169
215
|
pathPolicy: [{ kind: "arg", arg: "path", operation: "read", defaultToCwd: true }],
|
|
170
216
|
},
|
|
171
217
|
execute: grepTool,
|
|
218
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(grepToolDef.name) }),
|
|
172
219
|
},
|
|
173
220
|
{
|
|
174
221
|
definition: {
|
|
@@ -180,6 +227,7 @@ export const BUILTIN_TOOLS = [
|
|
|
180
227
|
timeoutMs: 3_600_000, // 1h — supports long-running shell loops (e.g. `until` polling)
|
|
181
228
|
},
|
|
182
229
|
execute: bashTool,
|
|
230
|
+
exposure: expose(HARNESS_TAGS, { requires: ["BashOutput", "KillShell", "ListShells"] }),
|
|
183
231
|
},
|
|
184
232
|
// ─── Background shells (Bash run_in_background companions) ──────
|
|
185
233
|
{
|
|
@@ -191,6 +239,7 @@ export const BUILTIN_TOOLS = [
|
|
|
191
239
|
isConcurrencySafe: true,
|
|
192
240
|
},
|
|
193
241
|
execute: bashOutputTool,
|
|
242
|
+
exposure: expose(HARNESS_TAGS),
|
|
194
243
|
},
|
|
195
244
|
{
|
|
196
245
|
definition: {
|
|
@@ -201,6 +250,7 @@ export const BUILTIN_TOOLS = [
|
|
|
201
250
|
isConcurrencySafe: false,
|
|
202
251
|
},
|
|
203
252
|
execute: killShellTool,
|
|
253
|
+
exposure: expose(HARNESS_TAGS),
|
|
204
254
|
},
|
|
205
255
|
{
|
|
206
256
|
definition: {
|
|
@@ -211,6 +261,7 @@ export const BUILTIN_TOOLS = [
|
|
|
211
261
|
isConcurrencySafe: true,
|
|
212
262
|
},
|
|
213
263
|
execute: listShellsTool,
|
|
264
|
+
exposure: expose(HARNESS_TAGS),
|
|
214
265
|
},
|
|
215
266
|
{
|
|
216
267
|
definition: {
|
|
@@ -221,6 +272,10 @@ export const BUILTIN_TOOLS = [
|
|
|
221
272
|
isConcurrencySafe: true,
|
|
222
273
|
},
|
|
223
274
|
execute: webSearchTool,
|
|
275
|
+
exposure: expose(GENERAL_TAGS, {
|
|
276
|
+
defaultPermissionRules: allow(webSearchToolDef.name),
|
|
277
|
+
availability: (ctx) => isWebSearchAvailable(ctx.cwd),
|
|
278
|
+
}),
|
|
224
279
|
},
|
|
225
280
|
{
|
|
226
281
|
definition: {
|
|
@@ -231,6 +286,7 @@ export const BUILTIN_TOOLS = [
|
|
|
231
286
|
isConcurrencySafe: true,
|
|
232
287
|
},
|
|
233
288
|
execute: webFetchTool,
|
|
289
|
+
exposure: expose(GENERAL_TAGS, { defaultPermissionRules: allow(webFetchToolDef.name) }),
|
|
234
290
|
},
|
|
235
291
|
{
|
|
236
292
|
definition: {
|
|
@@ -242,6 +298,7 @@ export const BUILTIN_TOOLS = [
|
|
|
242
298
|
timeoutMs: 0, // 纯等待用户操作 — 不设超时,由用户 Esc/取消
|
|
243
299
|
},
|
|
244
300
|
execute: askUserTool,
|
|
301
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(askUserToolDef.name) }),
|
|
245
302
|
},
|
|
246
303
|
{
|
|
247
304
|
definition: {
|
|
@@ -253,6 +310,7 @@ export const BUILTIN_TOOLS = [
|
|
|
253
310
|
timeoutMs: 1_800_000, // 30min — sub-agent runs may execute many tool calls
|
|
254
311
|
},
|
|
255
312
|
execute: agentTool,
|
|
313
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(agentToolDef.name) }),
|
|
256
314
|
},
|
|
257
315
|
{
|
|
258
316
|
definition: {
|
|
@@ -263,6 +321,7 @@ export const BUILTIN_TOOLS = [
|
|
|
263
321
|
isConcurrencySafe: true,
|
|
264
322
|
},
|
|
265
323
|
execute: agentStatusTool,
|
|
324
|
+
exposure: expose(EXPLICIT_ONLY),
|
|
266
325
|
},
|
|
267
326
|
{
|
|
268
327
|
definition: {
|
|
@@ -273,6 +332,7 @@ export const BUILTIN_TOOLS = [
|
|
|
273
332
|
isConcurrencySafe: false,
|
|
274
333
|
},
|
|
275
334
|
execute: agentCancelTool,
|
|
335
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(agentCancelToolDef.name) }),
|
|
276
336
|
},
|
|
277
337
|
{
|
|
278
338
|
definition: {
|
|
@@ -284,6 +344,7 @@ export const BUILTIN_TOOLS = [
|
|
|
284
344
|
timeoutMs: 1_800_000, // 30min — a continuation may execute many tool calls, like Agent
|
|
285
345
|
},
|
|
286
346
|
execute: agentSendInputTool,
|
|
347
|
+
exposure: expose(EXPLICIT_ONLY),
|
|
287
348
|
},
|
|
288
349
|
{
|
|
289
350
|
definition: {
|
|
@@ -294,6 +355,9 @@ export const BUILTIN_TOOLS = [
|
|
|
294
355
|
isConcurrencySafe: false,
|
|
295
356
|
},
|
|
296
357
|
execute: enterPlanModeTool,
|
|
358
|
+
exposure: expose(GENERAL_TAGS, {
|
|
359
|
+
defaultPermissionRules: allow(enterPlanModeToolDef.name),
|
|
360
|
+
}),
|
|
297
361
|
},
|
|
298
362
|
{
|
|
299
363
|
definition: {
|
|
@@ -304,6 +368,9 @@ export const BUILTIN_TOOLS = [
|
|
|
304
368
|
isConcurrencySafe: false,
|
|
305
369
|
},
|
|
306
370
|
execute: exitPlanModeTool,
|
|
371
|
+
exposure: expose(GENERAL_TAGS, {
|
|
372
|
+
defaultPermissionRules: allow(exitPlanModeToolDef.name),
|
|
373
|
+
}),
|
|
307
374
|
},
|
|
308
375
|
{
|
|
309
376
|
definition: {
|
|
@@ -314,6 +381,7 @@ export const BUILTIN_TOOLS = [
|
|
|
314
381
|
isConcurrencySafe: true,
|
|
315
382
|
},
|
|
316
383
|
execute: toolSearchTool,
|
|
384
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(toolSearchToolDef.name) }),
|
|
317
385
|
},
|
|
318
386
|
{
|
|
319
387
|
definition: {
|
|
@@ -324,38 +392,9 @@ export const BUILTIN_TOOLS = [
|
|
|
324
392
|
isConcurrencySafe: false,
|
|
325
393
|
},
|
|
326
394
|
execute: todoWriteTool,
|
|
395
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(todoWriteToolDef.name) }),
|
|
327
396
|
},
|
|
328
397
|
// ─── Phase 4: Multi-Agent + Worktree ───────────────────────────
|
|
329
|
-
{
|
|
330
|
-
definition: {
|
|
331
|
-
...enterWorktreeToolDef,
|
|
332
|
-
source: "builtin",
|
|
333
|
-
permissionDefault: "ask",
|
|
334
|
-
isReadOnly: false,
|
|
335
|
-
isConcurrencySafe: false,
|
|
336
|
-
},
|
|
337
|
-
execute: enterWorktreeTool,
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
definition: {
|
|
341
|
-
...exitWorktreeToolDef,
|
|
342
|
-
source: "builtin",
|
|
343
|
-
permissionDefault: "ask",
|
|
344
|
-
isReadOnly: false,
|
|
345
|
-
isConcurrencySafe: false,
|
|
346
|
-
},
|
|
347
|
-
execute: exitWorktreeTool,
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
definition: {
|
|
351
|
-
...switchSessionWorkspaceToolDef,
|
|
352
|
-
source: "builtin",
|
|
353
|
-
permissionDefault: "ask",
|
|
354
|
-
isReadOnly: false,
|
|
355
|
-
isConcurrencySafe: false,
|
|
356
|
-
},
|
|
357
|
-
execute: switchSessionWorkspaceTool,
|
|
358
|
-
},
|
|
359
398
|
// ─── Phase 5: Utility Tools ────────────────────────────────────
|
|
360
399
|
{
|
|
361
400
|
definition: {
|
|
@@ -366,6 +405,7 @@ export const BUILTIN_TOOLS = [
|
|
|
366
405
|
isConcurrencySafe: true,
|
|
367
406
|
},
|
|
368
407
|
execute: sleepTool,
|
|
408
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(sleepToolDef.name) }),
|
|
369
409
|
},
|
|
370
410
|
{
|
|
371
411
|
definition: {
|
|
@@ -376,35 +416,7 @@ export const BUILTIN_TOOLS = [
|
|
|
376
416
|
isConcurrencySafe: false,
|
|
377
417
|
},
|
|
378
418
|
execute: configTool,
|
|
379
|
-
|
|
380
|
-
{
|
|
381
|
-
definition: {
|
|
382
|
-
...notebookEditToolDef,
|
|
383
|
-
source: "builtin",
|
|
384
|
-
permissionDefault: "ask",
|
|
385
|
-
isReadOnly: false,
|
|
386
|
-
isConcurrencySafe: false,
|
|
387
|
-
pathPolicy: [
|
|
388
|
-
{
|
|
389
|
-
kind: "arg",
|
|
390
|
-
arg: "file_path",
|
|
391
|
-
operation: { fromArg: "action", readValues: ["read"], default: "write" },
|
|
392
|
-
},
|
|
393
|
-
],
|
|
394
|
-
},
|
|
395
|
-
execute: notebookEditTool,
|
|
396
|
-
},
|
|
397
|
-
// ─── Phase 6: LSP ─────────────────────────────────────────────
|
|
398
|
-
{
|
|
399
|
-
definition: {
|
|
400
|
-
...lspToolDef,
|
|
401
|
-
source: "builtin",
|
|
402
|
-
permissionDefault: "allow",
|
|
403
|
-
isReadOnly: true,
|
|
404
|
-
isConcurrencySafe: true,
|
|
405
|
-
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "read" }],
|
|
406
|
-
},
|
|
407
|
-
execute: lspTool,
|
|
419
|
+
exposure: expose(HARNESS_TAGS),
|
|
408
420
|
},
|
|
409
421
|
// ─── Cron Tools ────────────────────────────────────────────────
|
|
410
422
|
{
|
|
@@ -416,6 +428,7 @@ export const BUILTIN_TOOLS = [
|
|
|
416
428
|
isConcurrencySafe: false,
|
|
417
429
|
},
|
|
418
430
|
execute: cronCreateTool,
|
|
431
|
+
exposure: expose(GENERAL_TAGS),
|
|
419
432
|
},
|
|
420
433
|
{
|
|
421
434
|
definition: {
|
|
@@ -426,6 +439,7 @@ export const BUILTIN_TOOLS = [
|
|
|
426
439
|
isConcurrencySafe: false,
|
|
427
440
|
},
|
|
428
441
|
execute: cronDeleteTool,
|
|
442
|
+
exposure: expose(GENERAL_TAGS),
|
|
429
443
|
},
|
|
430
444
|
{
|
|
431
445
|
definition: {
|
|
@@ -436,57 +450,7 @@ export const BUILTIN_TOOLS = [
|
|
|
436
450
|
isConcurrencySafe: true,
|
|
437
451
|
},
|
|
438
452
|
execute: cronListTool,
|
|
439
|
-
|
|
440
|
-
// ─── Drive external coding-agent CLI (claude / codex) ──────────
|
|
441
|
-
{
|
|
442
|
-
definition: {
|
|
443
|
-
...driveAgentToolDef,
|
|
444
|
-
source: "builtin",
|
|
445
|
-
permissionDefault: "ask",
|
|
446
|
-
isReadOnly: false,
|
|
447
|
-
isConcurrencySafe: false,
|
|
448
|
-
timeoutMs: DRIVE_AGENT_TOOL_TIMEOUT_MS,
|
|
449
|
-
pathPolicy: [{ kind: "arg", arg: "attachmentPaths", operation: "read" }],
|
|
450
|
-
},
|
|
451
|
-
execute: driveAgentTool,
|
|
452
|
-
},
|
|
453
|
-
{
|
|
454
|
-
definition: {
|
|
455
|
-
...driveAgentJobsToolDef,
|
|
456
|
-
source: "builtin",
|
|
457
|
-
permissionDefault: "allow",
|
|
458
|
-
isReadOnly: false,
|
|
459
|
-
isConcurrencySafe: false,
|
|
460
|
-
},
|
|
461
|
-
execute: driveAgentJobsTool,
|
|
462
|
-
},
|
|
463
|
-
// Back-compat alias: DriveClaudeCode = DriveAgent pinned to cli:claude. Kept
|
|
464
|
-
// registered so old prompts/memories that name DriveClaudeCode still resolve.
|
|
465
|
-
{
|
|
466
|
-
definition: {
|
|
467
|
-
...driveClaudeCodeToolDef,
|
|
468
|
-
source: "builtin",
|
|
469
|
-
permissionDefault: "ask",
|
|
470
|
-
isReadOnly: false,
|
|
471
|
-
isConcurrencySafe: false,
|
|
472
|
-
timeoutMs: DRIVE_AGENT_TOOL_TIMEOUT_MS,
|
|
473
|
-
pathPolicy: [{ kind: "arg", arg: "attachmentPaths", operation: "read" }],
|
|
474
|
-
},
|
|
475
|
-
execute: driveClaudeCodeTool,
|
|
476
|
-
},
|
|
477
|
-
// ─── Check remaining CC/Codex subscription quota ──────────────
|
|
478
|
-
{
|
|
479
|
-
definition: {
|
|
480
|
-
...checkQuotaToolDef,
|
|
481
|
-
source: "builtin",
|
|
482
|
-
// Read-only intent (reports quota, mutates nothing). Note: the "claude"
|
|
483
|
-
// path sends a 1-token probe (Anthropic exposes quota only via response
|
|
484
|
-
// headers) — that tiny cost is documented in the tool description.
|
|
485
|
-
permissionDefault: "allow",
|
|
486
|
-
isReadOnly: true,
|
|
487
|
-
isConcurrencySafe: true,
|
|
488
|
-
},
|
|
489
|
-
execute: checkQuotaTool,
|
|
453
|
+
exposure: expose(GENERAL_TAGS, { defaultPermissionRules: allow(cronListToolDef.name) }),
|
|
490
454
|
},
|
|
491
455
|
// ─── Phase 7: Missing tools from restored-src ─────────────────
|
|
492
456
|
{
|
|
@@ -498,6 +462,7 @@ export const BUILTIN_TOOLS = [
|
|
|
498
462
|
isConcurrencySafe: true,
|
|
499
463
|
},
|
|
500
464
|
execute: skillTool,
|
|
465
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(skillToolDef.name) }),
|
|
501
466
|
},
|
|
502
467
|
{
|
|
503
468
|
definition: {
|
|
@@ -508,6 +473,7 @@ export const BUILTIN_TOOLS = [
|
|
|
508
473
|
isConcurrencySafe: true,
|
|
509
474
|
},
|
|
510
475
|
execute: mcpToolExecute,
|
|
476
|
+
exposure: expose(HARNESS_TAGS),
|
|
511
477
|
},
|
|
512
478
|
{
|
|
513
479
|
definition: {
|
|
@@ -518,6 +484,9 @@ export const BUILTIN_TOOLS = [
|
|
|
518
484
|
isConcurrencySafe: true,
|
|
519
485
|
},
|
|
520
486
|
execute: listMcpResourcesTool,
|
|
487
|
+
exposure: expose(HARNESS_TAGS, {
|
|
488
|
+
defaultPermissionRules: allow(listMcpResourcesToolDef.name),
|
|
489
|
+
}),
|
|
521
490
|
},
|
|
522
491
|
{
|
|
523
492
|
definition: {
|
|
@@ -533,48 +502,56 @@ export const BUILTIN_TOOLS = [
|
|
|
533
502
|
isConcurrencySafe: true,
|
|
534
503
|
},
|
|
535
504
|
execute: readMcpResourceTool,
|
|
505
|
+
exposure: expose(HARNESS_TAGS),
|
|
536
506
|
},
|
|
537
507
|
{
|
|
538
508
|
definition: {
|
|
539
|
-
...
|
|
509
|
+
...listSourcesToolDef,
|
|
540
510
|
source: "builtin",
|
|
541
|
-
permissionDefault: "
|
|
542
|
-
isReadOnly:
|
|
543
|
-
isConcurrencySafe:
|
|
511
|
+
permissionDefault: "allow",
|
|
512
|
+
isReadOnly: true,
|
|
513
|
+
isConcurrencySafe: true,
|
|
544
514
|
},
|
|
545
|
-
execute:
|
|
515
|
+
execute: listSourcesTool,
|
|
516
|
+
exposure: expose(HARNESS_TAGS, {
|
|
517
|
+
defaultPermissionRules: allow(listSourcesToolDef.name),
|
|
518
|
+
}),
|
|
546
519
|
},
|
|
547
520
|
{
|
|
548
521
|
definition: {
|
|
549
|
-
...
|
|
522
|
+
...readSourceToolDef,
|
|
550
523
|
source: "builtin",
|
|
551
|
-
|
|
524
|
+
// Source content is untrusted and may contain sensitive workspace data.
|
|
525
|
+
// Match ReadMcpResource: every read requires explicit approval, while
|
|
526
|
+
// the executor performs a second source/scope/resource authorization.
|
|
527
|
+
permissionDefault: "ask",
|
|
552
528
|
isReadOnly: true,
|
|
553
529
|
isConcurrencySafe: true,
|
|
554
530
|
},
|
|
555
|
-
execute:
|
|
531
|
+
execute: readSourceTool,
|
|
532
|
+
exposure: expose(HARNESS_TAGS),
|
|
556
533
|
},
|
|
557
534
|
{
|
|
558
535
|
definition: {
|
|
559
|
-
...
|
|
536
|
+
...replToolDef,
|
|
560
537
|
source: "builtin",
|
|
561
538
|
permissionDefault: "ask",
|
|
562
539
|
isReadOnly: false,
|
|
563
540
|
isConcurrencySafe: false,
|
|
564
541
|
},
|
|
565
|
-
execute:
|
|
542
|
+
execute: replTool,
|
|
543
|
+
exposure: expose(GENERAL_TAGS),
|
|
566
544
|
},
|
|
567
|
-
// ─── Arena: Multi-Model Collaborative Analysis ────────────────
|
|
568
545
|
{
|
|
569
546
|
definition: {
|
|
570
|
-
...
|
|
547
|
+
...powershellToolDef,
|
|
571
548
|
source: "builtin",
|
|
572
549
|
permissionDefault: "ask",
|
|
573
|
-
isReadOnly:
|
|
550
|
+
isReadOnly: false,
|
|
574
551
|
isConcurrencySafe: false,
|
|
575
|
-
timeoutMs: 1_800_000, // 30min — multi-model debate rounds take time
|
|
576
552
|
},
|
|
577
|
-
execute:
|
|
553
|
+
execute: powershellTool,
|
|
554
|
+
exposure: expose(GENERAL_TAGS),
|
|
578
555
|
},
|
|
579
556
|
// ─── Memory tools (persistent cross-session memory) ────────────
|
|
580
557
|
// Save/Delete default to "ask" so user-scope modifications go through a
|
|
@@ -590,6 +567,7 @@ export const BUILTIN_TOOLS = [
|
|
|
590
567
|
isConcurrencySafe: true,
|
|
591
568
|
},
|
|
592
569
|
execute: memoryListTool,
|
|
570
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(memoryListToolDef.name) }),
|
|
593
571
|
},
|
|
594
572
|
{
|
|
595
573
|
definition: {
|
|
@@ -600,6 +578,7 @@ export const BUILTIN_TOOLS = [
|
|
|
600
578
|
isConcurrencySafe: true,
|
|
601
579
|
},
|
|
602
580
|
execute: memoryReadTool,
|
|
581
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(memoryReadToolDef.name) }),
|
|
603
582
|
},
|
|
604
583
|
{
|
|
605
584
|
definition: {
|
|
@@ -610,6 +589,7 @@ export const BUILTIN_TOOLS = [
|
|
|
610
589
|
isConcurrencySafe: false,
|
|
611
590
|
},
|
|
612
591
|
execute: memorySaveTool,
|
|
592
|
+
exposure: expose(HARNESS_TAGS),
|
|
613
593
|
},
|
|
614
594
|
{
|
|
615
595
|
definition: {
|
|
@@ -620,6 +600,7 @@ export const BUILTIN_TOOLS = [
|
|
|
620
600
|
isConcurrencySafe: false,
|
|
621
601
|
},
|
|
622
602
|
execute: memoryDeleteTool,
|
|
603
|
+
exposure: expose(HARNESS_TAGS),
|
|
623
604
|
},
|
|
624
605
|
// ─── Goal mode: model-declared completion ──────────────────────
|
|
625
606
|
// Lets the model explicitly declare the active goal complete. The
|
|
@@ -634,6 +615,7 @@ export const BUILTIN_TOOLS = [
|
|
|
634
615
|
isConcurrencySafe: true,
|
|
635
616
|
},
|
|
636
617
|
execute: completeGoalTool,
|
|
618
|
+
exposure: expose(HARNESS_TAGS, { availability: (ctx) => ctx.hasGoal === true }),
|
|
637
619
|
},
|
|
638
620
|
// ─── Goal mode: user-initiated cancellation ────────────────────
|
|
639
621
|
// Distinct from complete_goal — the user explicitly asked to abandon the
|
|
@@ -649,6 +631,7 @@ export const BUILTIN_TOOLS = [
|
|
|
649
631
|
isConcurrencySafe: true,
|
|
650
632
|
},
|
|
651
633
|
execute: cancelGoalTool,
|
|
634
|
+
exposure: expose(HARNESS_TAGS, { availability: (ctx) => ctx.hasGoal === true }),
|
|
652
635
|
},
|
|
653
636
|
// ─── Plugin marketplace: model-driven source registration ──────
|
|
654
637
|
{
|
|
@@ -661,6 +644,7 @@ export const BUILTIN_TOOLS = [
|
|
|
661
644
|
timeoutMs: 120_000, // git clone over network
|
|
662
645
|
},
|
|
663
646
|
execute: addMarketplaceTool,
|
|
647
|
+
exposure: expose(GENERAL_TAGS),
|
|
664
648
|
},
|
|
665
649
|
// Browser automation — 3 semantic tools driving the in-app webview via the
|
|
666
650
|
// BrowserBridge (CDP). All serial on one webview (isConcurrencySafe:false).
|
|
@@ -680,6 +664,10 @@ export const BUILTIN_TOOLS = [
|
|
|
680
664
|
timeoutMs: 30_000, // wait/observe can sit through a load; RPC headroom
|
|
681
665
|
},
|
|
682
666
|
execute: browserObserveTool,
|
|
667
|
+
exposure: expose(GENERAL_TAGS, {
|
|
668
|
+
defaultPermissionRules: allow(browserObserveToolDef.name),
|
|
669
|
+
promptSections: ["browser"],
|
|
670
|
+
}),
|
|
683
671
|
},
|
|
684
672
|
{
|
|
685
673
|
definition: {
|
|
@@ -691,6 +679,17 @@ export const BUILTIN_TOOLS = [
|
|
|
691
679
|
timeoutMs: 30_000, // the wait action internally bounds; give RPC headroom
|
|
692
680
|
},
|
|
693
681
|
execute: browserActTool,
|
|
682
|
+
exposure: expose(GENERAL_TAGS, {
|
|
683
|
+
defaultPermissionRules: [
|
|
684
|
+
{
|
|
685
|
+
tool: browserActToolDef.name,
|
|
686
|
+
argsPattern: { action: "^(click|type|select)$" },
|
|
687
|
+
decision: "ask",
|
|
688
|
+
reason: "browser_act click/type/select mutate the page",
|
|
689
|
+
},
|
|
690
|
+
],
|
|
691
|
+
promptSections: ["browser"],
|
|
692
|
+
}),
|
|
694
693
|
},
|
|
695
694
|
{
|
|
696
695
|
definition: {
|
|
@@ -701,6 +700,58 @@ export const BUILTIN_TOOLS = [
|
|
|
701
700
|
isConcurrencySafe: false,
|
|
702
701
|
},
|
|
703
702
|
execute: browserNavigateTool,
|
|
703
|
+
exposure: expose(GENERAL_TAGS, {
|
|
704
|
+
defaultPermissionRules: allow(browserNavigateToolDef.name),
|
|
705
|
+
promptSections: ["browser"],
|
|
706
|
+
}),
|
|
707
|
+
},
|
|
708
|
+
// Generic host-panel control. The bridge is injected only by interactive
|
|
709
|
+
// Desktop sessions; plugin tools can call the same ctx.panels service.
|
|
710
|
+
{
|
|
711
|
+
definition: {
|
|
712
|
+
...panelToolDef,
|
|
713
|
+
source: "builtin",
|
|
714
|
+
permissionDefault: "allow",
|
|
715
|
+
isReadOnly: false,
|
|
716
|
+
isConcurrencySafe: false,
|
|
717
|
+
},
|
|
718
|
+
execute: panelTool,
|
|
719
|
+
exposure: expose(GENERAL_TAGS, {
|
|
720
|
+
defaultPermissionRules: [
|
|
721
|
+
{
|
|
722
|
+
tool: panelToolDef.name,
|
|
723
|
+
argsPattern: { action: "^(list|open|tools)$" },
|
|
724
|
+
decision: "allow",
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
tool: panelToolDef.name,
|
|
728
|
+
argsPattern: { action: "^invoke$" },
|
|
729
|
+
decision: "ask",
|
|
730
|
+
reason: "Panel App Agent tools can read or change project design data",
|
|
731
|
+
},
|
|
732
|
+
],
|
|
733
|
+
availability: (ctx) => ctx.host === "desktop" && ctx.isSubAgent !== true,
|
|
734
|
+
}),
|
|
735
|
+
},
|
|
736
|
+
// Cross-Session coordination is one ordinary message send. The host supplies
|
|
737
|
+
// a closed same-project target set and queues the message as the target's
|
|
738
|
+
// next user turn.
|
|
739
|
+
{
|
|
740
|
+
definition: {
|
|
741
|
+
...sendMessageToSessionToolDef,
|
|
742
|
+
source: "builtin",
|
|
743
|
+
permissionDefault: "allow",
|
|
744
|
+
isReadOnly: false,
|
|
745
|
+
isConcurrencySafe: false,
|
|
746
|
+
},
|
|
747
|
+
execute: sendMessageToSessionTool,
|
|
748
|
+
exposure: expose(HARNESS_TAGS, {
|
|
749
|
+
defaultPermissionRules: allow(sendMessageToSessionToolDef.name),
|
|
750
|
+
availability: (ctx) => ctx.isSubAgent !== true &&
|
|
751
|
+
ctx.behaviorProfile !== "quickChatRestricted" &&
|
|
752
|
+
(ctx.sessionMessageTargets?.length ?? 0) > 0,
|
|
753
|
+
rewriteDefinition: rewriteSendMessageToSessionToolDefinition,
|
|
754
|
+
}),
|
|
704
755
|
},
|
|
705
756
|
// ─── Credentials: AI 取用已存凭证(token/link/cookie) ──────────
|
|
706
757
|
// permissionDefault:"allow" 是展示/声明 hint;取用审批由工具内部的
|
|
@@ -715,6 +766,26 @@ export const BUILTIN_TOOLS = [
|
|
|
715
766
|
isConcurrencySafe: true,
|
|
716
767
|
},
|
|
717
768
|
execute: useCredentialBuiltinTool,
|
|
769
|
+
exposure: expose(GENERAL_TAGS, {
|
|
770
|
+
availability: (ctx) => isUseCredentialAvailable(ctx.cwd, ctx.settingsScope),
|
|
771
|
+
}),
|
|
772
|
+
},
|
|
773
|
+
// Local Link actions resolve their provider-owned credential on every call.
|
|
774
|
+
// Read actions are allowed after the user connects a provider; write actions
|
|
775
|
+
// use a closed, in-tool approval prompt so read and write share one catalog.
|
|
776
|
+
{
|
|
777
|
+
definition: {
|
|
778
|
+
...linkActionToolDef,
|
|
779
|
+
source: "builtin",
|
|
780
|
+
permissionDefault: "allow",
|
|
781
|
+
isReadOnly: false,
|
|
782
|
+
isConcurrencySafe: true,
|
|
783
|
+
},
|
|
784
|
+
execute: linkActionTool,
|
|
785
|
+
exposure: expose(GENERAL_TAGS, {
|
|
786
|
+
defaultPermissionRules: allow(linkActionToolDef.name),
|
|
787
|
+
availability: (ctx) => isLinkActionAvailable(ctx.cwd, ctx.settingsScope),
|
|
788
|
+
}),
|
|
718
789
|
},
|
|
719
790
|
// InjectCredential:把 cookie 凭证注入内置浏览器(恢复登录态)。审批由工具内部
|
|
720
791
|
// CredentialUseGate 负责(逐条 autoInjectByAI),permissionDefault:"allow" 仅作展示 hint。
|
|
@@ -728,29 +799,71 @@ export const BUILTIN_TOOLS = [
|
|
|
728
799
|
isConcurrencySafe: false,
|
|
729
800
|
},
|
|
730
801
|
execute: injectCredentialTool,
|
|
802
|
+
exposure: expose(GENERAL_TAGS, {
|
|
803
|
+
availability: (ctx) => isInjectCredentialAvailable(ctx.cwd, ctx.settingsScope),
|
|
804
|
+
}),
|
|
731
805
|
},
|
|
732
806
|
];
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
export
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
])
|
|
807
|
+
export const BUILTIN_TOOLS = BUILTIN_CONTRIBUTIONS.map(({ definition, execute, exposure }) => ({
|
|
808
|
+
definition,
|
|
809
|
+
exposure,
|
|
810
|
+
execute: async (args, ctx) => toToolExecutionResult(await execute(args, ctx)),
|
|
811
|
+
}));
|
|
812
|
+
const KNOWN_TOOL_PROMPT_SECTIONS = new Set(["browser"]);
|
|
813
|
+
export function validateBuiltinToolExposures(tools = BUILTIN_TOOLS) {
|
|
814
|
+
const byName = new Map(tools.map((tool) => [tool.definition.name, tool]));
|
|
815
|
+
if (byName.size !== tools.length)
|
|
816
|
+
throw new Error("Builtin tool catalog contains duplicate names");
|
|
817
|
+
for (const tool of tools) {
|
|
818
|
+
const { name } = tool.definition;
|
|
819
|
+
if (!Array.isArray(tool.exposure.presetTags)) {
|
|
820
|
+
throw new Error(`Builtin tool '${name}' is missing presetTags`);
|
|
821
|
+
}
|
|
822
|
+
for (const section of tool.exposure.promptSections ?? []) {
|
|
823
|
+
if (!KNOWN_TOOL_PROMPT_SECTIONS.has(section)) {
|
|
824
|
+
throw new Error(`Builtin tool '${name}' references unknown prompt section '${section}'`);
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
for (const requiredName of tool.exposure.requires ?? []) {
|
|
828
|
+
const required = byName.get(requiredName);
|
|
829
|
+
if (!required)
|
|
830
|
+
throw new Error(`Builtin tool '${name}' requires unknown tool '${requiredName}'`);
|
|
831
|
+
for (const tag of tool.exposure.presetTags) {
|
|
832
|
+
if (!required.exposure.presetTags.includes(tag)) {
|
|
833
|
+
throw new Error(`Builtin tool '${name}' requires '${requiredName}' in preset '${tag}'`);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
validateBuiltinToolExposures();
|
|
840
|
+
/** Derive a preset's tool list and safe defaults from any composed tool catalog. */
|
|
841
|
+
export function derivePresetExposure(tag, tools = BUILTIN_TOOLS) {
|
|
842
|
+
const selected = tools.filter((tool) => tool.exposure.presetTags.includes(tag));
|
|
843
|
+
return {
|
|
844
|
+
builtinTools: selected.map((tool) => tool.definition.name),
|
|
845
|
+
defaultPermissionRules: selected.flatMap((tool) => [
|
|
846
|
+
...(tool.exposure.defaultPermissionRules ?? []),
|
|
847
|
+
]),
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
/** Backwards-compatible name for callers deriving only from the core catalog. */
|
|
851
|
+
export function deriveBuiltinPresetExposure(tag) {
|
|
852
|
+
return derivePresetExposure(tag, BUILTIN_TOOLS);
|
|
853
|
+
}
|
|
854
|
+
export function deriveToolGatedPromptSections(tools = BUILTIN_TOOLS) {
|
|
855
|
+
const result = {};
|
|
856
|
+
for (const tool of tools) {
|
|
857
|
+
for (const section of tool.exposure.promptSections ?? []) {
|
|
858
|
+
(result[section] ??= []).push(tool.definition.name);
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
return result;
|
|
862
|
+
}
|
|
863
|
+
/** Compatibility view consumed by engine + executor; metadata is authoritative. */
|
|
864
|
+
export const BUILTIN_TOOL_GUARDS = new Map(BUILTIN_TOOLS.flatMap((tool) => tool.exposure.availability
|
|
865
|
+
? [[tool.definition.name, tool.exposure.availability]]
|
|
866
|
+
: []));
|
|
754
867
|
/** UseCredential is available when the cwd's credential metadata has ≥1 entry. */
|
|
755
868
|
export function isUseCredentialAvailable(cwd, settingsScope) {
|
|
756
869
|
try {
|