@cjhyy/code-shell-core 0.7.1 → 0.8.1
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 +7 -3
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +17 -1
- package/dist/context/manager.js +36 -1
- package/dist/credentials/access.d.ts +3 -1
- package/dist/credentials/access.js +24 -3
- package/dist/credentials/index.d.ts +1 -1
- package/dist/credentials/index.js +1 -1
- package/dist/credentials/oauth.d.ts +4 -1
- package/dist/credentials/oauth.js +14 -0
- package/dist/credentials/store.d.ts +15 -1
- package/dist/credentials/store.js +17 -4
- package/dist/credentials/types.d.ts +24 -0
- 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 +254 -195
- package/dist/engine/engine.js +1812 -2041
- 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/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 +49 -10
- package/dist/engine/turn-loop.js +370 -104
- package/dist/engine/types.d.ts +30 -3
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +24 -10
- package/dist/hooks/goal-stop-hook.d.ts +17 -28
- package/dist/hooks/goal-stop-hook.js +110 -465
- package/dist/hooks/registry.js +1 -1
- package/dist/index.d.ts +48 -108
- 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 +34 -123
- 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 +60 -0
- 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/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 +6 -0
- package/dist/plugins/pluginCommandHook.js +25 -8
- 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 +64 -1
- package/dist/protocol/chat-session-manager.js +104 -0
- package/dist/protocol/chat-session.d.ts +61 -10
- package/dist/protocol/chat-session.js +135 -25
- package/dist/protocol/client.d.ts +33 -3
- package/dist/protocol/client.js +96 -5
- 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 +127 -3
- package/dist/protocol/server.js +1309 -182
- package/dist/protocol/types.d.ts +152 -34
- package/dist/protocol/types.js +16 -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.js +10 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.js +4 -1
- 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 +182 -28
- package/dist/session/session-manager.js +910 -130
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +46 -5
- package/dist/session/transcript.js +159 -3
- 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 +274 -33
- package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
- package/dist/tool-system/builtin/background-jobs.js +96 -4
- package/dist/tool-system/builtin/background-work.d.ts +6 -0
- package/dist/tool-system/builtin/background-work.js +8 -1
- package/dist/tool-system/builtin/bash.js +5 -2
- package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
- 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.js +2 -6
- 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.js +26 -7
- package/dist/tool-system/builtin/grep.js +2 -2
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +32 -7
- package/dist/tool-system/builtin/index.js +237 -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/web-fetch.js +17 -13
- package/dist/tool-system/builtin/web-search.js +1 -3
- 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 +77 -19
- package/dist/tool-system/executor.js +75 -50
- 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 +11 -1
- package/dist/tool-system/mcp-manager.js +19 -4
- 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.js +99 -2
- package/dist/tool-system/permission.d.ts +26 -0
- package/dist/tool-system/permission.js +46 -0
- package/dist/tool-system/registry.d.ts +12 -1
- package/dist/tool-system/registry.js +31 -7
- 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 +186 -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 -45
- package/dist/arena/arena.js +0 -362
- 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 -25
- package/dist/arena/phases/adjudication.js +0 -142
- package/dist/arena/phases/build-consensus.d.ts +0 -30
- package/dist/arena/phases/build-consensus.js +0 -85
- 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 -47
- package/dist/arena/phases/cross-review.js +0 -224
- package/dist/arena/phases/debate-rounds.d.ts +0 -28
- package/dist/arena/phases/debate-rounds.js +0 -161
- package/dist/arena/phases/participant-research.d.ts +0 -39
- package/dist/arena/phases/participant-research.js +0 -316
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
- package/dist/arena/phases/planning-detail-expansion.js +0 -120
- package/dist/arena/planner.d.ts +0 -28
- package/dist/arena/planner.js +0 -312
- 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 -518
- 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 -72
- package/dist/git/worktree/crud.js +0 -235
- 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 -87
- 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 -43
- package/dist/git/worktree/query.js +0 -128
- 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 -416
- 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 -363
- /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,31 +18,28 @@ 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";
|
|
42
|
+
import { linkActionToolDef, linkActionTool, isLinkActionAvailable, } from "../../links/link-action-tool.js";
|
|
47
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;
|
|
48
44
|
function failureMessage(result) {
|
|
49
45
|
if (typeof result.error === "string" && result.error)
|
|
@@ -80,7 +76,17 @@ export function toToolExecutionResult(value) {
|
|
|
80
76
|
}
|
|
81
77
|
return { ok: true, ...result };
|
|
82
78
|
}
|
|
83
|
-
const
|
|
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 = [
|
|
84
90
|
{
|
|
85
91
|
definition: {
|
|
86
92
|
...readToolDef,
|
|
@@ -91,6 +97,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
91
97
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "read" }],
|
|
92
98
|
},
|
|
93
99
|
execute: readTool,
|
|
100
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(readToolDef.name) }),
|
|
94
101
|
},
|
|
95
102
|
{
|
|
96
103
|
definition: {
|
|
@@ -102,6 +109,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
102
109
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "write" }],
|
|
103
110
|
},
|
|
104
111
|
execute: writeTool,
|
|
112
|
+
exposure: expose(HARNESS_TAGS),
|
|
105
113
|
},
|
|
106
114
|
{
|
|
107
115
|
definition: {
|
|
@@ -112,6 +120,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
112
120
|
isConcurrencySafe: false, // serializes writes to the single catalog file
|
|
113
121
|
},
|
|
114
122
|
execute: editModelCatalogTool,
|
|
123
|
+
exposure: expose(GENERAL_TAGS),
|
|
115
124
|
},
|
|
116
125
|
{
|
|
117
126
|
definition: {
|
|
@@ -132,6 +141,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
132
141
|
pathPolicy: [{ kind: "arg", arg: "referenceImages", operation: "read" }],
|
|
133
142
|
},
|
|
134
143
|
execute: generateImageTool,
|
|
144
|
+
exposure: expose(GENERAL_TAGS, {
|
|
145
|
+
availability: (ctx) => isGenerateImageAvailable(ctx.cwd),
|
|
146
|
+
}),
|
|
135
147
|
},
|
|
136
148
|
{
|
|
137
149
|
definition: {
|
|
@@ -150,6 +162,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
150
162
|
],
|
|
151
163
|
},
|
|
152
164
|
execute: generateVideoTool,
|
|
165
|
+
exposure: expose(GENERAL_TAGS, {
|
|
166
|
+
availability: (ctx) => isGenerateVideoAvailable(ctx.cwd),
|
|
167
|
+
}),
|
|
153
168
|
},
|
|
154
169
|
{
|
|
155
170
|
definition: {
|
|
@@ -161,6 +176,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
161
176
|
pathPolicy: [{ kind: "arg", arg: "path", operation: "read" }],
|
|
162
177
|
},
|
|
163
178
|
execute: viewImageTool,
|
|
179
|
+
exposure: expose(GENERAL_TAGS),
|
|
164
180
|
},
|
|
165
181
|
{
|
|
166
182
|
definition: {
|
|
@@ -172,17 +188,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
172
188
|
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "write" }],
|
|
173
189
|
},
|
|
174
190
|
execute: editTool,
|
|
175
|
-
|
|
176
|
-
{
|
|
177
|
-
definition: {
|
|
178
|
-
...applyPatchToolDef,
|
|
179
|
-
source: "builtin",
|
|
180
|
-
permissionDefault: "ask",
|
|
181
|
-
isReadOnly: false,
|
|
182
|
-
isConcurrencySafe: false,
|
|
183
|
-
pathPolicy: [{ kind: "apply_patch", arg: "patch", operation: "write" }],
|
|
184
|
-
},
|
|
185
|
-
execute: applyPatchTool,
|
|
191
|
+
exposure: expose(HARNESS_TAGS),
|
|
186
192
|
},
|
|
187
193
|
{
|
|
188
194
|
definition: {
|
|
@@ -197,6 +203,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
197
203
|
],
|
|
198
204
|
},
|
|
199
205
|
execute: globTool,
|
|
206
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(globToolDef.name) }),
|
|
200
207
|
},
|
|
201
208
|
{
|
|
202
209
|
definition: {
|
|
@@ -208,6 +215,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
208
215
|
pathPolicy: [{ kind: "arg", arg: "path", operation: "read", defaultToCwd: true }],
|
|
209
216
|
},
|
|
210
217
|
execute: grepTool,
|
|
218
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(grepToolDef.name) }),
|
|
211
219
|
},
|
|
212
220
|
{
|
|
213
221
|
definition: {
|
|
@@ -219,6 +227,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
219
227
|
timeoutMs: 3_600_000, // 1h — supports long-running shell loops (e.g. `until` polling)
|
|
220
228
|
},
|
|
221
229
|
execute: bashTool,
|
|
230
|
+
exposure: expose(HARNESS_TAGS, { requires: ["BashOutput", "KillShell", "ListShells"] }),
|
|
222
231
|
},
|
|
223
232
|
// ─── Background shells (Bash run_in_background companions) ──────
|
|
224
233
|
{
|
|
@@ -230,6 +239,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
230
239
|
isConcurrencySafe: true,
|
|
231
240
|
},
|
|
232
241
|
execute: bashOutputTool,
|
|
242
|
+
exposure: expose(HARNESS_TAGS),
|
|
233
243
|
},
|
|
234
244
|
{
|
|
235
245
|
definition: {
|
|
@@ -240,6 +250,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
240
250
|
isConcurrencySafe: false,
|
|
241
251
|
},
|
|
242
252
|
execute: killShellTool,
|
|
253
|
+
exposure: expose(HARNESS_TAGS),
|
|
243
254
|
},
|
|
244
255
|
{
|
|
245
256
|
definition: {
|
|
@@ -250,6 +261,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
250
261
|
isConcurrencySafe: true,
|
|
251
262
|
},
|
|
252
263
|
execute: listShellsTool,
|
|
264
|
+
exposure: expose(HARNESS_TAGS),
|
|
253
265
|
},
|
|
254
266
|
{
|
|
255
267
|
definition: {
|
|
@@ -260,6 +272,10 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
260
272
|
isConcurrencySafe: true,
|
|
261
273
|
},
|
|
262
274
|
execute: webSearchTool,
|
|
275
|
+
exposure: expose(GENERAL_TAGS, {
|
|
276
|
+
defaultPermissionRules: allow(webSearchToolDef.name),
|
|
277
|
+
availability: (ctx) => isWebSearchAvailable(ctx.cwd),
|
|
278
|
+
}),
|
|
263
279
|
},
|
|
264
280
|
{
|
|
265
281
|
definition: {
|
|
@@ -270,6 +286,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
270
286
|
isConcurrencySafe: true,
|
|
271
287
|
},
|
|
272
288
|
execute: webFetchTool,
|
|
289
|
+
exposure: expose(GENERAL_TAGS, { defaultPermissionRules: allow(webFetchToolDef.name) }),
|
|
273
290
|
},
|
|
274
291
|
{
|
|
275
292
|
definition: {
|
|
@@ -281,6 +298,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
281
298
|
timeoutMs: 0, // 纯等待用户操作 — 不设超时,由用户 Esc/取消
|
|
282
299
|
},
|
|
283
300
|
execute: askUserTool,
|
|
301
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(askUserToolDef.name) }),
|
|
284
302
|
},
|
|
285
303
|
{
|
|
286
304
|
definition: {
|
|
@@ -292,6 +310,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
292
310
|
timeoutMs: 1_800_000, // 30min — sub-agent runs may execute many tool calls
|
|
293
311
|
},
|
|
294
312
|
execute: agentTool,
|
|
313
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(agentToolDef.name) }),
|
|
295
314
|
},
|
|
296
315
|
{
|
|
297
316
|
definition: {
|
|
@@ -302,6 +321,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
302
321
|
isConcurrencySafe: true,
|
|
303
322
|
},
|
|
304
323
|
execute: agentStatusTool,
|
|
324
|
+
exposure: expose(EXPLICIT_ONLY),
|
|
305
325
|
},
|
|
306
326
|
{
|
|
307
327
|
definition: {
|
|
@@ -312,6 +332,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
312
332
|
isConcurrencySafe: false,
|
|
313
333
|
},
|
|
314
334
|
execute: agentCancelTool,
|
|
335
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(agentCancelToolDef.name) }),
|
|
315
336
|
},
|
|
316
337
|
{
|
|
317
338
|
definition: {
|
|
@@ -323,6 +344,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
323
344
|
timeoutMs: 1_800_000, // 30min — a continuation may execute many tool calls, like Agent
|
|
324
345
|
},
|
|
325
346
|
execute: agentSendInputTool,
|
|
347
|
+
exposure: expose(EXPLICIT_ONLY),
|
|
326
348
|
},
|
|
327
349
|
{
|
|
328
350
|
definition: {
|
|
@@ -333,6 +355,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
333
355
|
isConcurrencySafe: false,
|
|
334
356
|
},
|
|
335
357
|
execute: enterPlanModeTool,
|
|
358
|
+
exposure: expose(GENERAL_TAGS, {
|
|
359
|
+
defaultPermissionRules: allow(enterPlanModeToolDef.name),
|
|
360
|
+
}),
|
|
336
361
|
},
|
|
337
362
|
{
|
|
338
363
|
definition: {
|
|
@@ -343,6 +368,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
343
368
|
isConcurrencySafe: false,
|
|
344
369
|
},
|
|
345
370
|
execute: exitPlanModeTool,
|
|
371
|
+
exposure: expose(GENERAL_TAGS, {
|
|
372
|
+
defaultPermissionRules: allow(exitPlanModeToolDef.name),
|
|
373
|
+
}),
|
|
346
374
|
},
|
|
347
375
|
{
|
|
348
376
|
definition: {
|
|
@@ -353,6 +381,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
353
381
|
isConcurrencySafe: true,
|
|
354
382
|
},
|
|
355
383
|
execute: toolSearchTool,
|
|
384
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(toolSearchToolDef.name) }),
|
|
356
385
|
},
|
|
357
386
|
{
|
|
358
387
|
definition: {
|
|
@@ -363,38 +392,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
363
392
|
isConcurrencySafe: false,
|
|
364
393
|
},
|
|
365
394
|
execute: todoWriteTool,
|
|
395
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(todoWriteToolDef.name) }),
|
|
366
396
|
},
|
|
367
397
|
// ─── Phase 4: Multi-Agent + Worktree ───────────────────────────
|
|
368
|
-
{
|
|
369
|
-
definition: {
|
|
370
|
-
...enterWorktreeToolDef,
|
|
371
|
-
source: "builtin",
|
|
372
|
-
permissionDefault: "ask",
|
|
373
|
-
isReadOnly: false,
|
|
374
|
-
isConcurrencySafe: false,
|
|
375
|
-
},
|
|
376
|
-
execute: enterWorktreeTool,
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
definition: {
|
|
380
|
-
...exitWorktreeToolDef,
|
|
381
|
-
source: "builtin",
|
|
382
|
-
permissionDefault: "ask",
|
|
383
|
-
isReadOnly: false,
|
|
384
|
-
isConcurrencySafe: false,
|
|
385
|
-
},
|
|
386
|
-
execute: exitWorktreeTool,
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
definition: {
|
|
390
|
-
...switchSessionWorkspaceToolDef,
|
|
391
|
-
source: "builtin",
|
|
392
|
-
permissionDefault: "ask",
|
|
393
|
-
isReadOnly: false,
|
|
394
|
-
isConcurrencySafe: false,
|
|
395
|
-
},
|
|
396
|
-
execute: switchSessionWorkspaceTool,
|
|
397
|
-
},
|
|
398
398
|
// ─── Phase 5: Utility Tools ────────────────────────────────────
|
|
399
399
|
{
|
|
400
400
|
definition: {
|
|
@@ -405,6 +405,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
405
405
|
isConcurrencySafe: true,
|
|
406
406
|
},
|
|
407
407
|
execute: sleepTool,
|
|
408
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(sleepToolDef.name) }),
|
|
408
409
|
},
|
|
409
410
|
{
|
|
410
411
|
definition: {
|
|
@@ -415,35 +416,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
415
416
|
isConcurrencySafe: false,
|
|
416
417
|
},
|
|
417
418
|
execute: configTool,
|
|
418
|
-
|
|
419
|
-
{
|
|
420
|
-
definition: {
|
|
421
|
-
...notebookEditToolDef,
|
|
422
|
-
source: "builtin",
|
|
423
|
-
permissionDefault: "ask",
|
|
424
|
-
isReadOnly: false,
|
|
425
|
-
isConcurrencySafe: false,
|
|
426
|
-
pathPolicy: [
|
|
427
|
-
{
|
|
428
|
-
kind: "arg",
|
|
429
|
-
arg: "file_path",
|
|
430
|
-
operation: { fromArg: "action", readValues: ["read"], default: "write" },
|
|
431
|
-
},
|
|
432
|
-
],
|
|
433
|
-
},
|
|
434
|
-
execute: notebookEditTool,
|
|
435
|
-
},
|
|
436
|
-
// ─── Phase 6: LSP ─────────────────────────────────────────────
|
|
437
|
-
{
|
|
438
|
-
definition: {
|
|
439
|
-
...lspToolDef,
|
|
440
|
-
source: "builtin",
|
|
441
|
-
permissionDefault: "allow",
|
|
442
|
-
isReadOnly: true,
|
|
443
|
-
isConcurrencySafe: true,
|
|
444
|
-
pathPolicy: [{ kind: "arg", arg: "file_path", operation: "read" }],
|
|
445
|
-
},
|
|
446
|
-
execute: lspTool,
|
|
419
|
+
exposure: expose(HARNESS_TAGS),
|
|
447
420
|
},
|
|
448
421
|
// ─── Cron Tools ────────────────────────────────────────────────
|
|
449
422
|
{
|
|
@@ -455,6 +428,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
455
428
|
isConcurrencySafe: false,
|
|
456
429
|
},
|
|
457
430
|
execute: cronCreateTool,
|
|
431
|
+
exposure: expose(GENERAL_TAGS),
|
|
458
432
|
},
|
|
459
433
|
{
|
|
460
434
|
definition: {
|
|
@@ -465,6 +439,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
465
439
|
isConcurrencySafe: false,
|
|
466
440
|
},
|
|
467
441
|
execute: cronDeleteTool,
|
|
442
|
+
exposure: expose(GENERAL_TAGS),
|
|
468
443
|
},
|
|
469
444
|
{
|
|
470
445
|
definition: {
|
|
@@ -475,57 +450,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
475
450
|
isConcurrencySafe: true,
|
|
476
451
|
},
|
|
477
452
|
execute: cronListTool,
|
|
478
|
-
|
|
479
|
-
// ─── Drive external coding-agent CLI (claude / codex) ──────────
|
|
480
|
-
{
|
|
481
|
-
definition: {
|
|
482
|
-
...driveAgentToolDef,
|
|
483
|
-
source: "builtin",
|
|
484
|
-
permissionDefault: "ask",
|
|
485
|
-
isReadOnly: false,
|
|
486
|
-
isConcurrencySafe: false,
|
|
487
|
-
timeoutMs: DRIVE_AGENT_TOOL_TIMEOUT_MS,
|
|
488
|
-
pathPolicy: [{ kind: "arg", arg: "attachmentPaths", operation: "read" }],
|
|
489
|
-
},
|
|
490
|
-
execute: driveAgentTool,
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
definition: {
|
|
494
|
-
...driveAgentJobsToolDef,
|
|
495
|
-
source: "builtin",
|
|
496
|
-
permissionDefault: "allow",
|
|
497
|
-
isReadOnly: false,
|
|
498
|
-
isConcurrencySafe: false,
|
|
499
|
-
},
|
|
500
|
-
execute: driveAgentJobsTool,
|
|
501
|
-
},
|
|
502
|
-
// Back-compat alias: DriveClaudeCode = DriveAgent pinned to cli:claude. Kept
|
|
503
|
-
// registered so old prompts/memories that name DriveClaudeCode still resolve.
|
|
504
|
-
{
|
|
505
|
-
definition: {
|
|
506
|
-
...driveClaudeCodeToolDef,
|
|
507
|
-
source: "builtin",
|
|
508
|
-
permissionDefault: "ask",
|
|
509
|
-
isReadOnly: false,
|
|
510
|
-
isConcurrencySafe: false,
|
|
511
|
-
timeoutMs: DRIVE_AGENT_TOOL_TIMEOUT_MS,
|
|
512
|
-
pathPolicy: [{ kind: "arg", arg: "attachmentPaths", operation: "read" }],
|
|
513
|
-
},
|
|
514
|
-
execute: driveClaudeCodeTool,
|
|
515
|
-
},
|
|
516
|
-
// ─── Check remaining CC/Codex subscription quota ──────────────
|
|
517
|
-
{
|
|
518
|
-
definition: {
|
|
519
|
-
...checkQuotaToolDef,
|
|
520
|
-
source: "builtin",
|
|
521
|
-
// Read-only intent (reports quota, mutates nothing). Note: the "claude"
|
|
522
|
-
// path sends a 1-token probe (Anthropic exposes quota only via response
|
|
523
|
-
// headers) — that tiny cost is documented in the tool description.
|
|
524
|
-
permissionDefault: "allow",
|
|
525
|
-
isReadOnly: true,
|
|
526
|
-
isConcurrencySafe: true,
|
|
527
|
-
},
|
|
528
|
-
execute: checkQuotaTool,
|
|
453
|
+
exposure: expose(GENERAL_TAGS, { defaultPermissionRules: allow(cronListToolDef.name) }),
|
|
529
454
|
},
|
|
530
455
|
// ─── Phase 7: Missing tools from restored-src ─────────────────
|
|
531
456
|
{
|
|
@@ -537,6 +462,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
537
462
|
isConcurrencySafe: true,
|
|
538
463
|
},
|
|
539
464
|
execute: skillTool,
|
|
465
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(skillToolDef.name) }),
|
|
540
466
|
},
|
|
541
467
|
{
|
|
542
468
|
definition: {
|
|
@@ -547,6 +473,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
547
473
|
isConcurrencySafe: true,
|
|
548
474
|
},
|
|
549
475
|
execute: mcpToolExecute,
|
|
476
|
+
exposure: expose(HARNESS_TAGS),
|
|
550
477
|
},
|
|
551
478
|
{
|
|
552
479
|
definition: {
|
|
@@ -557,6 +484,9 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
557
484
|
isConcurrencySafe: true,
|
|
558
485
|
},
|
|
559
486
|
execute: listMcpResourcesTool,
|
|
487
|
+
exposure: expose(HARNESS_TAGS, {
|
|
488
|
+
defaultPermissionRules: allow(listMcpResourcesToolDef.name),
|
|
489
|
+
}),
|
|
560
490
|
},
|
|
561
491
|
{
|
|
562
492
|
definition: {
|
|
@@ -572,48 +502,56 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
572
502
|
isConcurrencySafe: true,
|
|
573
503
|
},
|
|
574
504
|
execute: readMcpResourceTool,
|
|
505
|
+
exposure: expose(HARNESS_TAGS),
|
|
575
506
|
},
|
|
576
507
|
{
|
|
577
508
|
definition: {
|
|
578
|
-
...
|
|
509
|
+
...listSourcesToolDef,
|
|
579
510
|
source: "builtin",
|
|
580
|
-
permissionDefault: "
|
|
581
|
-
isReadOnly:
|
|
582
|
-
isConcurrencySafe:
|
|
511
|
+
permissionDefault: "allow",
|
|
512
|
+
isReadOnly: true,
|
|
513
|
+
isConcurrencySafe: true,
|
|
583
514
|
},
|
|
584
|
-
execute:
|
|
515
|
+
execute: listSourcesTool,
|
|
516
|
+
exposure: expose(HARNESS_TAGS, {
|
|
517
|
+
defaultPermissionRules: allow(listSourcesToolDef.name),
|
|
518
|
+
}),
|
|
585
519
|
},
|
|
586
520
|
{
|
|
587
521
|
definition: {
|
|
588
|
-
...
|
|
522
|
+
...readSourceToolDef,
|
|
589
523
|
source: "builtin",
|
|
590
|
-
|
|
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",
|
|
591
528
|
isReadOnly: true,
|
|
592
529
|
isConcurrencySafe: true,
|
|
593
530
|
},
|
|
594
|
-
execute:
|
|
531
|
+
execute: readSourceTool,
|
|
532
|
+
exposure: expose(HARNESS_TAGS),
|
|
595
533
|
},
|
|
596
534
|
{
|
|
597
535
|
definition: {
|
|
598
|
-
...
|
|
536
|
+
...replToolDef,
|
|
599
537
|
source: "builtin",
|
|
600
538
|
permissionDefault: "ask",
|
|
601
539
|
isReadOnly: false,
|
|
602
540
|
isConcurrencySafe: false,
|
|
603
541
|
},
|
|
604
|
-
execute:
|
|
542
|
+
execute: replTool,
|
|
543
|
+
exposure: expose(GENERAL_TAGS),
|
|
605
544
|
},
|
|
606
|
-
// ─── Arena: Multi-Model Collaborative Analysis ────────────────
|
|
607
545
|
{
|
|
608
546
|
definition: {
|
|
609
|
-
...
|
|
547
|
+
...powershellToolDef,
|
|
610
548
|
source: "builtin",
|
|
611
549
|
permissionDefault: "ask",
|
|
612
|
-
isReadOnly:
|
|
550
|
+
isReadOnly: false,
|
|
613
551
|
isConcurrencySafe: false,
|
|
614
|
-
timeoutMs: 1_800_000, // 30min — multi-model debate rounds take time
|
|
615
552
|
},
|
|
616
|
-
execute:
|
|
553
|
+
execute: powershellTool,
|
|
554
|
+
exposure: expose(GENERAL_TAGS),
|
|
617
555
|
},
|
|
618
556
|
// ─── Memory tools (persistent cross-session memory) ────────────
|
|
619
557
|
// Save/Delete default to "ask" so user-scope modifications go through a
|
|
@@ -629,6 +567,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
629
567
|
isConcurrencySafe: true,
|
|
630
568
|
},
|
|
631
569
|
execute: memoryListTool,
|
|
570
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(memoryListToolDef.name) }),
|
|
632
571
|
},
|
|
633
572
|
{
|
|
634
573
|
definition: {
|
|
@@ -639,6 +578,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
639
578
|
isConcurrencySafe: true,
|
|
640
579
|
},
|
|
641
580
|
execute: memoryReadTool,
|
|
581
|
+
exposure: expose(HARNESS_TAGS, { defaultPermissionRules: allow(memoryReadToolDef.name) }),
|
|
642
582
|
},
|
|
643
583
|
{
|
|
644
584
|
definition: {
|
|
@@ -649,6 +589,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
649
589
|
isConcurrencySafe: false,
|
|
650
590
|
},
|
|
651
591
|
execute: memorySaveTool,
|
|
592
|
+
exposure: expose(HARNESS_TAGS),
|
|
652
593
|
},
|
|
653
594
|
{
|
|
654
595
|
definition: {
|
|
@@ -659,6 +600,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
659
600
|
isConcurrencySafe: false,
|
|
660
601
|
},
|
|
661
602
|
execute: memoryDeleteTool,
|
|
603
|
+
exposure: expose(HARNESS_TAGS),
|
|
662
604
|
},
|
|
663
605
|
// ─── Goal mode: model-declared completion ──────────────────────
|
|
664
606
|
// Lets the model explicitly declare the active goal complete. The
|
|
@@ -673,6 +615,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
673
615
|
isConcurrencySafe: true,
|
|
674
616
|
},
|
|
675
617
|
execute: completeGoalTool,
|
|
618
|
+
exposure: expose(HARNESS_TAGS, { availability: (ctx) => ctx.hasGoal === true }),
|
|
676
619
|
},
|
|
677
620
|
// ─── Goal mode: user-initiated cancellation ────────────────────
|
|
678
621
|
// Distinct from complete_goal — the user explicitly asked to abandon the
|
|
@@ -688,6 +631,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
688
631
|
isConcurrencySafe: true,
|
|
689
632
|
},
|
|
690
633
|
execute: cancelGoalTool,
|
|
634
|
+
exposure: expose(HARNESS_TAGS, { availability: (ctx) => ctx.hasGoal === true }),
|
|
691
635
|
},
|
|
692
636
|
// ─── Plugin marketplace: model-driven source registration ──────
|
|
693
637
|
{
|
|
@@ -700,6 +644,7 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
700
644
|
timeoutMs: 120_000, // git clone over network
|
|
701
645
|
},
|
|
702
646
|
execute: addMarketplaceTool,
|
|
647
|
+
exposure: expose(GENERAL_TAGS),
|
|
703
648
|
},
|
|
704
649
|
// Browser automation — 3 semantic tools driving the in-app webview via the
|
|
705
650
|
// BrowserBridge (CDP). All serial on one webview (isConcurrencySafe:false).
|
|
@@ -719,6 +664,10 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
719
664
|
timeoutMs: 30_000, // wait/observe can sit through a load; RPC headroom
|
|
720
665
|
},
|
|
721
666
|
execute: browserObserveTool,
|
|
667
|
+
exposure: expose(GENERAL_TAGS, {
|
|
668
|
+
defaultPermissionRules: allow(browserObserveToolDef.name),
|
|
669
|
+
promptSections: ["browser"],
|
|
670
|
+
}),
|
|
722
671
|
},
|
|
723
672
|
{
|
|
724
673
|
definition: {
|
|
@@ -730,6 +679,17 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
730
679
|
timeoutMs: 30_000, // the wait action internally bounds; give RPC headroom
|
|
731
680
|
},
|
|
732
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
|
+
}),
|
|
733
693
|
},
|
|
734
694
|
{
|
|
735
695
|
definition: {
|
|
@@ -740,6 +700,58 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
740
700
|
isConcurrencySafe: false,
|
|
741
701
|
},
|
|
742
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
|
+
}),
|
|
743
755
|
},
|
|
744
756
|
// ─── Credentials: AI 取用已存凭证(token/link/cookie) ──────────
|
|
745
757
|
// permissionDefault:"allow" 是展示/声明 hint;取用审批由工具内部的
|
|
@@ -754,6 +766,26 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
754
766
|
isConcurrencySafe: true,
|
|
755
767
|
},
|
|
756
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
|
+
}),
|
|
757
789
|
},
|
|
758
790
|
// InjectCredential:把 cookie 凭证注入内置浏览器(恢复登录态)。审批由工具内部
|
|
759
791
|
// CredentialUseGate 负责(逐条 autoInjectByAI),permissionDefault:"allow" 仅作展示 hint。
|
|
@@ -767,33 +799,71 @@ const BUILTIN_IMPLEMENTATIONS = [
|
|
|
767
799
|
isConcurrencySafe: false,
|
|
768
800
|
},
|
|
769
801
|
execute: injectCredentialTool,
|
|
802
|
+
exposure: expose(GENERAL_TAGS, {
|
|
803
|
+
availability: (ctx) => isInjectCredentialAvailable(ctx.cwd, ctx.settingsScope),
|
|
804
|
+
}),
|
|
770
805
|
},
|
|
771
806
|
];
|
|
772
|
-
export const BUILTIN_TOOLS =
|
|
807
|
+
export const BUILTIN_TOOLS = BUILTIN_CONTRIBUTIONS.map(({ definition, execute, exposure }) => ({
|
|
773
808
|
definition,
|
|
809
|
+
exposure,
|
|
774
810
|
execute: async (args, ctx) => toToolExecutionResult(await execute(args, ctx)),
|
|
775
811
|
}));
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
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
|
+
: []));
|
|
797
867
|
/** UseCredential is available when the cwd's credential metadata has ≥1 entry. */
|
|
798
868
|
export function isUseCredentialAvailable(cwd, settingsScope) {
|
|
799
869
|
try {
|