@cjhyy/code-shell-core 0.7.1 → 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 +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/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
package/dist/preset/index.js
CHANGED
|
@@ -8,192 +8,32 @@
|
|
|
8
8
|
* src/prompt/sections/*.md — each preset declares which sections to include.
|
|
9
9
|
*/
|
|
10
10
|
import { loadSections } from "../prompt/section-loader.js";
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const GENERAL_BUILTIN_TOOLS = [
|
|
16
|
-
"Read",
|
|
17
|
-
"Write",
|
|
18
|
-
"Edit",
|
|
19
|
-
"ApplyPatch",
|
|
20
|
-
"Glob",
|
|
21
|
-
"Grep",
|
|
22
|
-
"Bash",
|
|
23
|
-
// Bash(run_in_background=true) companions — without these in the preset
|
|
24
|
-
// whitelist, the registry skips them (registerBuiltins filters BUILTIN_TOOLS
|
|
25
|
-
// by the selected set), so a model that correctly calls BashOutput after
|
|
26
|
-
// launching a background shell hits "Tool not found" and the turn dies.
|
|
27
|
-
"BashOutput",
|
|
28
|
-
"KillShell",
|
|
29
|
-
"ListShells",
|
|
30
|
-
// Browser automation (drive the in-app webview) — 3 semantic tools. Same
|
|
31
|
-
// whitelist requirement as the BashOutput trio above: registerBuiltins filters
|
|
32
|
-
// BUILTIN_TOOLS by the preset set, so without these the model calling
|
|
33
|
-
// browser_observe/etc. hits "Tool not found". They self-degrade to a clear
|
|
34
|
-
// error when no browser panel is wired (headless), so listing is safe.
|
|
35
|
-
"browser_observe",
|
|
36
|
-
"browser_act",
|
|
37
|
-
"browser_navigate",
|
|
38
|
-
"WebSearch",
|
|
39
|
-
"WebFetch",
|
|
40
|
-
"GenerateImage",
|
|
41
|
-
"GenerateVideo",
|
|
42
|
-
// Load a workspace image (by path) or an earlier history image (by number)
|
|
43
|
-
// into context so a vision model can SEE it. Same whitelist requirement as
|
|
44
|
-
// the rest: registered in BUILTIN_TOOLS but filtered out by registerBuiltins
|
|
45
|
-
// unless the preset names it — so it was registered-but-invisible before.
|
|
46
|
-
// Self-degrades to a text placeholder on non-vision models and gates format/
|
|
47
|
-
// size, so listing it unconditionally is safe.
|
|
48
|
-
"view_image",
|
|
49
|
-
"AskUserQuestion",
|
|
50
|
-
"Agent",
|
|
51
|
-
// AgentStatus removed: background agents now write to ~/.code-shell/agents/
|
|
52
|
-
// <id>.txt — the parent agent can Read/Bash tail that file for live progress.
|
|
53
|
-
// The implementation is still in the registry for SDK consumers if needed.
|
|
54
|
-
"AgentCancel",
|
|
55
|
-
"EnterPlanMode",
|
|
56
|
-
"ExitPlanMode",
|
|
57
|
-
"ToolSearch",
|
|
58
|
-
"TodoWrite",
|
|
59
|
-
sleepToolDef.name,
|
|
60
|
-
"Config",
|
|
61
|
-
"CronCreate",
|
|
62
|
-
"CronDelete",
|
|
63
|
-
cronListToolDef.name,
|
|
64
|
-
// cc-orchestrator:驱动外部 claude CLI 跑一轮。同 BashOutput/UseCredential/
|
|
65
|
-
// EditModelCatalog 的 whitelist 要求:已在 BUILTIN_TOOLS 注册,但 registerBuiltins
|
|
66
|
-
// 按 preset 集过滤 → 名单里没有它,agent 就没有「指挥 Claude Code」的工具,只能幻觉
|
|
67
|
-
// RemoteTrigger / 兜底 Bash `claude -p`(用户实测「为什么驱动 cc 没作为工具」)。
|
|
68
|
-
// 定时/循环驱动统一走 CronCreate(到点跑一轮引擎,prompt 里调 DriveAgent);
|
|
69
|
-
// 无人值守审批由 DriveAgent 自身 bypass 解决,不需要定时层专门的 CC 调度工具。
|
|
70
|
-
// DriveAgent 是通用驱动(cli: claude|codex);DriveClaudeCode 保留为 cli:claude 的
|
|
71
|
-
// 别名(老 prompt/记忆兼容)。两个都要在白名单里,否则 registerBuiltins 滤掉。
|
|
72
|
-
"DriveAgent",
|
|
73
|
-
"DriveAgentJobs",
|
|
74
|
-
"DriveClaudeCode",
|
|
75
|
-
// 编排时读 CC/Codex 剩余额度做规划(开几个/等重置/换 provider)。
|
|
76
|
-
"CheckQuota",
|
|
77
|
-
"Skill",
|
|
78
|
-
"AddMarketplace",
|
|
79
|
-
"MCPTool",
|
|
80
|
-
"ListMcpResources",
|
|
81
|
-
"ReadMcpResource",
|
|
82
|
-
"REPL",
|
|
83
|
-
"PowerShell",
|
|
84
|
-
// Persistent cross-session memory. Including these in the default preset is
|
|
85
|
-
// what lets the LLM list/read/save/delete memories during a normal session,
|
|
86
|
-
// AND what makes the end-of-session auto-dream consolidation work — its
|
|
87
|
-
// tool-call loop pulls these from the registry, so without them every dream
|
|
88
|
-
// run bailed with "missing memory tools". Save/Delete in the user scope have
|
|
89
|
-
// no explicit allow rule, so the default-mode classifier fallback asks;
|
|
90
|
-
// dream-scope writes go through freely.
|
|
91
|
-
"MemoryList",
|
|
92
|
-
"MemoryRead",
|
|
93
|
-
"MemorySave",
|
|
94
|
-
"MemoryDelete",
|
|
95
|
-
// AI 取用已存凭证(cookie/token/link)给 yt-dlp/curl 等。必须在 preset 白名单里
|
|
96
|
-
// 否则 registerBuiltins 滤掉它 → 即使存了凭证、注册了工具,AI 列表里也没有
|
|
97
|
-
// UseCredential(用户实测「找不到这个工具」的真因)。它带 isUseCredentialAvailable
|
|
98
|
-
// guard:cwd 凭证库为空时仍自动隐藏,所以无条件列入是安全的(空库不会冒出来)。
|
|
99
|
-
"UseCredential",
|
|
100
|
-
// 同理:把 cookie 凭证注入内置浏览器(恢复登录态后用 browser_* 工具)。带
|
|
101
|
-
// isInjectCredentialAvailable guard(无 cookie 凭证时自动隐藏),无条件列入安全。
|
|
102
|
-
"InjectCredential",
|
|
103
|
-
// AI 增/改模型 catalog(写 ~/.code-shell/model-catalog.user.json)。同 BashOutput/
|
|
104
|
-
// UseCredential 一样的 whitelist 要求:registerBuiltins 按 preset 集过滤 BUILTIN_TOOLS,
|
|
105
|
-
// 名单里没有它 → 即使工具已注册,AI 列表里也没有 → 用户实测「找不到这个工具」。
|
|
106
|
-
// 列入只是让 AI 看得到;执行期没有显式 allow rule,默认 classifier fallback 会审批。
|
|
107
|
-
"EditModelCatalog",
|
|
108
|
-
// Goal-mode control tools. Same whitelist requirement as the rest:
|
|
109
|
-
// registerBuiltins filters BUILTIN_TOOLS by the preset set, so a goal tool
|
|
110
|
-
// absent here is registered-but-invisible — the model never sees it and can
|
|
111
|
-
// neither self-declare completion (complete_goal) nor honor a user's request
|
|
112
|
-
// to abandon the goal (cancel_goal), stranding a persistent goal that only a
|
|
113
|
-
// manual disk edit could clear. cancel_goal is the "strong intent" escape
|
|
114
|
-
// hatch (requires confirm+reason); the turn-loop enforces the guard.
|
|
115
|
-
"complete_goal",
|
|
116
|
-
"cancel_goal",
|
|
117
|
-
];
|
|
118
|
-
const TERMINAL_CODING_EXTRA_TOOLS = [
|
|
119
|
-
"EnterWorktree",
|
|
120
|
-
"ExitWorktree",
|
|
121
|
-
"NotebookEdit",
|
|
122
|
-
"LSP",
|
|
123
|
-
"Brief",
|
|
124
|
-
"Arena",
|
|
125
|
-
];
|
|
126
|
-
// ─── Permission rules ────────────────────────────────────────────
|
|
127
|
-
const GENERAL_PERMISSION_RULES = [
|
|
128
|
-
{ tool: "Read", decision: "allow" },
|
|
129
|
-
{ tool: "Glob", decision: "allow" },
|
|
130
|
-
{ tool: "Grep", decision: "allow" },
|
|
131
|
-
{ tool: "WebSearch", decision: "allow" },
|
|
132
|
-
{ tool: "WebFetch", decision: "allow" },
|
|
133
|
-
{ tool: "AskUserQuestion", decision: "allow" },
|
|
134
|
-
{ tool: "Agent", decision: "allow" },
|
|
135
|
-
{ tool: "AgentStatus", decision: "allow" },
|
|
136
|
-
{ tool: "AgentCancel", decision: "allow" },
|
|
137
|
-
{ tool: "EnterPlanMode", decision: "allow" },
|
|
138
|
-
{ tool: "ExitPlanMode", decision: "allow" },
|
|
139
|
-
{ tool: "ToolSearch", decision: "allow" },
|
|
140
|
-
{ tool: "TodoWrite", decision: "allow" },
|
|
141
|
-
{ tool: sleepToolDef.name, decision: "allow" },
|
|
142
|
-
{ tool: cronListToolDef.name, decision: "allow" },
|
|
143
|
-
{ tool: "CheckQuota", decision: "allow" },
|
|
144
|
-
{ tool: "Skill", decision: "allow" },
|
|
145
|
-
// ListMcpResources only enumerates resource names (and the executor filters
|
|
146
|
-
// the list to this session's enabled servers). ReadMcpResource pulls actual
|
|
147
|
-
// content and is intentionally NOT auto-allowed here — with no explicit rule,
|
|
148
|
-
// default-mode classifier fallback asks the user. The tool's
|
|
149
|
-
// permissionDefault is only UI/metadata, not classifier input.
|
|
150
|
-
{ tool: "ListMcpResources", decision: "allow" },
|
|
151
|
-
// Reading memory is always safe; writes (MemorySave/MemoryDelete) stay gated
|
|
152
|
-
// by explicit rules below plus default-mode ask fallback.
|
|
153
|
-
{ tool: "MemoryList", decision: "allow" },
|
|
154
|
-
{ tool: "MemoryRead", decision: "allow" },
|
|
155
|
-
// Browser automation (3 semantic tools). Rules are first-match-wins, ordered
|
|
156
|
-
// by specificity — so the action-gating rule for browser_act MUST come first:
|
|
157
|
-
// click/type/select mutate the page/form → "ask"; all other actions (hover/
|
|
158
|
-
// scroll/wait/press_key/list_tabs/switch_tab) fall through to the default
|
|
159
|
-
// allow rule below. observe (read-only) and navigate auto-allow.
|
|
160
|
-
// (Main-side sensitive-action + domain-whitelist enforcement also applies.)
|
|
161
|
-
{
|
|
162
|
-
tool: "browser_act",
|
|
163
|
-
argsPattern: { action: "^(click|type|select)$" },
|
|
164
|
-
decision: "ask",
|
|
165
|
-
reason: "browser_act click/type/select mutate the page",
|
|
166
|
-
},
|
|
167
|
-
{ tool: "browser_observe", decision: "allow" },
|
|
168
|
-
{ tool: "browser_navigate", decision: "allow" },
|
|
169
|
-
];
|
|
11
|
+
import { deriveBuiltinPresetExposure, deriveToolGatedPromptSections, } from "../tool-system/builtin/index.js";
|
|
12
|
+
export const AGENT_PRESET_NAMES = ["harness-min", "general"];
|
|
13
|
+
const HARNESS_MIN_EXPOSURE = deriveBuiltinPresetExposure("harness-min");
|
|
14
|
+
const GENERAL_EXPOSURE = deriveBuiltinPresetExposure("general");
|
|
170
15
|
// ─── Preset definitions ──────────────────────────────────────────
|
|
171
16
|
export const BUILTIN_AGENT_PRESETS = {
|
|
17
|
+
"harness-min": {
|
|
18
|
+
name: "harness-min",
|
|
19
|
+
label: "Minimal Agent Harness",
|
|
20
|
+
description: "Domain-neutral orchestration with the minimal reusable tool surface.",
|
|
21
|
+
promptSections: ["harness-base", "orchestration", "tone"],
|
|
22
|
+
builtinTools: HARNESS_MIN_EXPOSURE.builtinTools,
|
|
23
|
+
defaultPermissionRules: HARNESS_MIN_EXPOSURE.defaultPermissionRules,
|
|
24
|
+
},
|
|
172
25
|
general: {
|
|
173
26
|
name: "general",
|
|
174
27
|
label: "General Orchestrator",
|
|
175
28
|
description: "Domain-agnostic orchestration for research, operations, automation, and long-running tasks.",
|
|
176
29
|
promptSections: ["base", "orchestration", "browser", "tone"],
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
defaultPermissionRules: GENERAL_PERMISSION_RULES,
|
|
180
|
-
},
|
|
181
|
-
"terminal-coding": {
|
|
182
|
-
name: "terminal-coding",
|
|
183
|
-
label: "Terminal Coding Assistant",
|
|
184
|
-
description: "General orchestration plus coding-focused guidance and code-navigation tools.",
|
|
185
|
-
promptSections: ["base", "orchestration", "coding", "browser", "tone"],
|
|
186
|
-
injectGitStatus: true,
|
|
187
|
-
builtinTools: [...GENERAL_BUILTIN_TOOLS, ...TERMINAL_CODING_EXTRA_TOOLS],
|
|
188
|
-
defaultPermissionRules: [
|
|
189
|
-
...GENERAL_PERMISSION_RULES,
|
|
190
|
-
{ tool: "LSP", decision: "allow" },
|
|
191
|
-
{ tool: "Brief", decision: "allow" },
|
|
192
|
-
],
|
|
30
|
+
builtinTools: GENERAL_EXPOSURE.builtinTools,
|
|
31
|
+
defaultPermissionRules: GENERAL_EXPOSURE.defaultPermissionRules,
|
|
193
32
|
},
|
|
194
33
|
};
|
|
195
|
-
export const DEFAULT_AGENT_PRESET = "
|
|
196
|
-
|
|
34
|
+
export const DEFAULT_AGENT_PRESET = "harness-min";
|
|
35
|
+
/** @deprecated Product hosts should install a capability with `defaultPreset`. */
|
|
36
|
+
export const DEFAULT_CLI_PRESET = DEFAULT_AGENT_PRESET;
|
|
197
37
|
/** Registry of custom presets registered by external consumers. */
|
|
198
38
|
const _customPresets = new Map();
|
|
199
39
|
/**
|
|
@@ -208,7 +48,6 @@ const _customPresets = new Map();
|
|
|
208
48
|
* label: "Data Pipeline Orchestrator",
|
|
209
49
|
* description: "Manages ETL workflows and data quality checks.",
|
|
210
50
|
* promptSections: ["base", "orchestration"],
|
|
211
|
-
* injectGitStatus: false,
|
|
212
51
|
* builtinTools: ["Read", "Write", "Bash", "Glob", "Grep", "Agent"],
|
|
213
52
|
* defaultPermissionRules: [{ tool: "Read", decision: "allow" }],
|
|
214
53
|
* });
|
|
@@ -218,32 +57,46 @@ export function registerPreset(preset) {
|
|
|
218
57
|
_customPresets.set(preset.name, preset);
|
|
219
58
|
}
|
|
220
59
|
/** List all available preset names (built-in + custom). */
|
|
221
|
-
export function listPresetNames() {
|
|
222
|
-
return [
|
|
60
|
+
export function listPresetNames(capabilities = []) {
|
|
61
|
+
return [
|
|
62
|
+
...new Set([
|
|
63
|
+
...AGENT_PRESET_NAMES,
|
|
64
|
+
..._customPresets.keys(),
|
|
65
|
+
...capabilities.flatMap((capability) => (capability.presets ?? []).map((preset) => preset.name)),
|
|
66
|
+
]),
|
|
67
|
+
];
|
|
223
68
|
}
|
|
224
|
-
export function resolveAgentPreset(name) {
|
|
225
|
-
|
|
226
|
-
|
|
69
|
+
export function resolveAgentPreset(name, capabilities = []) {
|
|
70
|
+
let resolvedName = name;
|
|
71
|
+
if (!resolvedName) {
|
|
72
|
+
const defaults = [
|
|
73
|
+
...new Set(capabilities
|
|
74
|
+
.map((capability) => capability.defaultPreset)
|
|
75
|
+
.filter((preset) => Boolean(preset))),
|
|
76
|
+
];
|
|
77
|
+
if (defaults.length > 1) {
|
|
78
|
+
throw new Error(`Capabilities contributed conflicting default presets: ${defaults.join(", ")}`);
|
|
79
|
+
}
|
|
80
|
+
resolvedName = defaults[0] ?? DEFAULT_AGENT_PRESET;
|
|
81
|
+
}
|
|
82
|
+
const contributed = capabilities
|
|
83
|
+
.flatMap((capability) => [...(capability.presets ?? [])])
|
|
84
|
+
.find((preset) => preset.name === resolvedName);
|
|
85
|
+
if (contributed)
|
|
86
|
+
return contributed;
|
|
227
87
|
// Check built-in first
|
|
228
|
-
const builtin = BUILTIN_AGENT_PRESETS[
|
|
88
|
+
const builtin = BUILTIN_AGENT_PRESETS[resolvedName];
|
|
229
89
|
if (builtin)
|
|
230
90
|
return builtin;
|
|
231
91
|
// Check custom presets
|
|
232
|
-
const custom = _customPresets.get(
|
|
92
|
+
const custom = _customPresets.get(resolvedName);
|
|
233
93
|
if (custom)
|
|
234
94
|
return custom;
|
|
235
|
-
const allowed = listPresetNames().join(", ");
|
|
236
|
-
throw new Error(`Unknown agent preset "${
|
|
95
|
+
const allowed = listPresetNames(capabilities).join(", ");
|
|
96
|
+
throw new Error(`Unknown agent preset "${resolvedName}". Available presets: ${allowed}`);
|
|
237
97
|
}
|
|
238
|
-
/**
|
|
239
|
-
|
|
240
|
-
* so the model isn't told how to use tools it can't see. Keep in sync with the
|
|
241
|
-
* browser tools registered in builtin/index.ts. */
|
|
242
|
-
const BROWSER_SECTION_TOOLS = ["browser_observe", "browser_act", "browser_navigate"];
|
|
243
|
-
/** Prompt sections whose inclusion is gated by an active tool being present. */
|
|
244
|
-
const TOOL_GATED_SECTIONS = {
|
|
245
|
-
browser: BROWSER_SECTION_TOOLS,
|
|
246
|
-
};
|
|
98
|
+
/** Prompt-section capability links are contributed by builtin exposure metadata. */
|
|
99
|
+
const TOOL_GATED_SECTIONS = deriveToolGatedPromptSections();
|
|
247
100
|
function isActiveToolNamesList(value) {
|
|
248
101
|
return Array.isArray(value);
|
|
249
102
|
}
|
|
@@ -275,24 +128,30 @@ export function buildPresetSystemPrompt(preset, optionsOrActiveToolNames) {
|
|
|
275
128
|
if (activeToolNames) {
|
|
276
129
|
const active = new Set(activeToolNames);
|
|
277
130
|
sections = sections.filter((s) => {
|
|
278
|
-
const gate =
|
|
131
|
+
const gate = options.toolCatalog
|
|
132
|
+
? deriveToolGatedPromptSections(options.toolCatalog)[s]
|
|
133
|
+
: TOOL_GATED_SECTIONS[s];
|
|
279
134
|
return !gate || gate.some((t) => active.has(t));
|
|
280
135
|
});
|
|
281
136
|
}
|
|
282
|
-
return [
|
|
137
|
+
return [
|
|
138
|
+
loadSections(sections, options.promptSections),
|
|
139
|
+
platformShellGuidance(options.platform ?? process.platform),
|
|
140
|
+
]
|
|
283
141
|
.filter(Boolean)
|
|
284
142
|
.join("\n\n");
|
|
285
143
|
}
|
|
286
144
|
export function resolveBuiltinToolNames(options) {
|
|
287
|
-
const preset = resolveAgentPreset(options?.preset);
|
|
145
|
+
const preset = resolveAgentPreset(options?.preset, options?.capabilities);
|
|
288
146
|
const names = new Set(preset.builtinTools);
|
|
289
147
|
for (const name of options?.enabledBuiltinTools ?? []) {
|
|
290
148
|
names.add(name);
|
|
291
149
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
150
|
+
for (const capability of options?.capabilities ?? []) {
|
|
151
|
+
capability.adjustToolSelection?.(names, {
|
|
152
|
+
preset: preset.name,
|
|
153
|
+
host: options?.host,
|
|
154
|
+
});
|
|
296
155
|
}
|
|
297
156
|
for (const name of options?.disabledBuiltinTools ?? []) {
|
|
298
157
|
names.delete(name);
|
package/dist/product/define.js
CHANGED
|
@@ -46,8 +46,15 @@ export function defineProduct(definition, runtime) {
|
|
|
46
46
|
const presetName = presetDef.name;
|
|
47
47
|
// Determine builtin tools: start from a base set, apply adapter overrides
|
|
48
48
|
const baseTools = [
|
|
49
|
-
"Read",
|
|
50
|
-
"
|
|
49
|
+
"Read",
|
|
50
|
+
"Write",
|
|
51
|
+
"Edit",
|
|
52
|
+
"Glob",
|
|
53
|
+
"Grep",
|
|
54
|
+
"Bash",
|
|
55
|
+
"AskUserQuestion",
|
|
56
|
+
"Agent",
|
|
57
|
+
"ToolSearch",
|
|
51
58
|
"TodoWrite",
|
|
52
59
|
];
|
|
53
60
|
const enabledSet = new Set([...baseTools, ...(adapter?.enableTools ?? [])]);
|
|
@@ -71,7 +78,6 @@ export function defineProduct(definition, runtime) {
|
|
|
71
78
|
label: presetDef.label,
|
|
72
79
|
description: presetDef.description,
|
|
73
80
|
promptSections: presetDef.sections ?? ["base", "orchestration"],
|
|
74
|
-
injectGitStatus: presetDef.injectGitStatus ?? false,
|
|
75
81
|
builtinTools: [...enabledSet],
|
|
76
82
|
defaultPermissionRules: permissionRules,
|
|
77
83
|
};
|
package/dist/product/types.d.ts
CHANGED
|
@@ -39,8 +39,6 @@ export interface ProductPreset {
|
|
|
39
39
|
customPrompt?: string;
|
|
40
40
|
/** Additional text appended after the main system prompt. */
|
|
41
41
|
appendPrompt?: string;
|
|
42
|
-
/** Whether to inject git status into system context. Default: false */
|
|
43
|
-
injectGitStatus?: boolean;
|
|
44
42
|
}
|
|
45
43
|
export interface CustomTool {
|
|
46
44
|
/** Tool definition (name, description, inputSchema). */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 激活/切换/关闭事务。原子性来源:整个 `profile` 子树一次
|
|
3
|
+
* saveProjectSetting 写入(内部 tmp+rename)——切换即全量替换,
|
|
4
|
+
* 永远不存在“旧的撤一半、新的写一半”。
|
|
5
|
+
* mainInstruction / portableMemory 不落 settings:settings 只记 active
|
|
6
|
+
* 名字(+ preset/overrides 快照),活字段由 resolve.ts 从库读取。
|
|
7
|
+
*/
|
|
8
|
+
import type { SettingsManager } from "../settings/manager.js";
|
|
9
|
+
import type { CapabilityOverrides } from "../settings/schema.js";
|
|
10
|
+
import type { WorkspaceProfile } from "./types.js";
|
|
11
|
+
/** settings.profile 子树的形状(与 settings/schema.ts 的 zod 定义一致)。 */
|
|
12
|
+
export interface WorkspaceProfileSubtree {
|
|
13
|
+
active: string;
|
|
14
|
+
preset?: string;
|
|
15
|
+
overrides?: CapabilityOverrides;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 当前机器上可见的能力清单,用于 `exclusiveCapabilities` 决定「要关掉哪些」。
|
|
19
|
+
* 由 host 注入(core 不扫描磁盘)。缺省即无法独占,退回并集语义。
|
|
20
|
+
*/
|
|
21
|
+
export interface InstalledCapabilityNames {
|
|
22
|
+
skills?: readonly string[];
|
|
23
|
+
plugins?: readonly string[];
|
|
24
|
+
mcp?: readonly string[];
|
|
25
|
+
agents?: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 把 profile 声明的能力展开为 override 快照;空 bucket 不落键。
|
|
29
|
+
*
|
|
30
|
+
* 默认只产出 `"on"`(并集:保证该有的在,不动用户开的)。profile 声明
|
|
31
|
+
* `exclusiveCapabilities` 且 host 给出 `installed` 时,未声明的同类能力显式
|
|
32
|
+
* 落 `"off"`,形成独占工作面。
|
|
33
|
+
*/
|
|
34
|
+
export declare function profileOverridesFromDefinition(profile: WorkspaceProfile, installed?: InstalledCapabilityNames): NonNullable<CapabilityOverrides>;
|
|
35
|
+
export declare function activateWorkspaceProfile(settings: SettingsManager, name: string, cwd: string, installed?: InstalledCapabilityNames): WorkspaceProfile;
|
|
36
|
+
export declare function deactivateWorkspaceProfile(settings: SettingsManager, cwd: string): void;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { readWorkspaceProfile } from "./store.js";
|
|
2
|
+
/**
|
|
3
|
+
* 把 profile 声明的能力展开为 override 快照;空 bucket 不落键。
|
|
4
|
+
*
|
|
5
|
+
* 默认只产出 `"on"`(并集:保证该有的在,不动用户开的)。profile 声明
|
|
6
|
+
* `exclusiveCapabilities` 且 host 给出 `installed` 时,未声明的同类能力显式
|
|
7
|
+
* 落 `"off"`,形成独占工作面。
|
|
8
|
+
*/
|
|
9
|
+
// 返回 NonNullable:`CapabilityOverrides` 自身以 `.optional()` 结尾(settings 里
|
|
10
|
+
// 整个 key 可以缺失),但这个函数**总是**构造一个对象字面量,永不返回 undefined。
|
|
11
|
+
// 沿用可空别名会迫使每个调用方(含断言 `overrides.skills` 的测试)先做一次不可能
|
|
12
|
+
// 为真的 null 检查。
|
|
13
|
+
export function profileOverridesFromDefinition(profile, installed) {
|
|
14
|
+
const exclusive = profile.exclusiveCapabilities === true;
|
|
15
|
+
const bucket = (declared, available) => {
|
|
16
|
+
const entries = {};
|
|
17
|
+
for (const name of declared)
|
|
18
|
+
entries[name] = "on";
|
|
19
|
+
if (exclusive && available) {
|
|
20
|
+
const claimed = new Set(declared);
|
|
21
|
+
for (const name of available) {
|
|
22
|
+
if (!claimed.has(name))
|
|
23
|
+
entries[name] = "off";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return Object.keys(entries).length > 0 ? entries : undefined;
|
|
27
|
+
};
|
|
28
|
+
const plugins = bucket(profile.plugins, installed?.plugins);
|
|
29
|
+
const skills = bucket(profile.skills, installed?.skills);
|
|
30
|
+
const mcp = bucket(profile.mcp, installed?.mcp);
|
|
31
|
+
const agents = bucket(profile.agents, installed?.agents);
|
|
32
|
+
return {
|
|
33
|
+
...(plugins ? { plugins } : {}),
|
|
34
|
+
...(skills ? { skills } : {}),
|
|
35
|
+
...(mcp ? { mcp } : {}),
|
|
36
|
+
...(agents ? { agents } : {}),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function activateWorkspaceProfile(settings, name, cwd, installed) {
|
|
40
|
+
const profile = readWorkspaceProfile(name);
|
|
41
|
+
if (!profile) {
|
|
42
|
+
throw new Error(`Workspace profile "${name}" not found in the global library`);
|
|
43
|
+
}
|
|
44
|
+
const subtree = {
|
|
45
|
+
active: profile.name,
|
|
46
|
+
// A digital human contributes its role, capabilities, and memory. The
|
|
47
|
+
// CodeShell runtime base is a host concern and must not vary with imported
|
|
48
|
+
// definitions that happen to carry a legacy basePreset value.
|
|
49
|
+
preset: "general",
|
|
50
|
+
overrides: profileOverridesFromDefinition(profile, installed),
|
|
51
|
+
};
|
|
52
|
+
settings.saveProjectSetting("profile", subtree, cwd);
|
|
53
|
+
return profile;
|
|
54
|
+
}
|
|
55
|
+
export function deactivateWorkspaceProfile(settings, cwd) {
|
|
56
|
+
settings.deleteProjectSetting("profile", cwd);
|
|
57
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type CatalogEntry, type CatalogTeam } from "./catalog.js";
|
|
2
|
+
export interface RegisteredHumanRepo {
|
|
3
|
+
/** `owner/repo` */
|
|
4
|
+
repo: string;
|
|
5
|
+
addedAt: number;
|
|
6
|
+
}
|
|
7
|
+
export interface HumanRepoListEntry extends RegisteredHumanRepo {
|
|
8
|
+
/** 该仓库当前提供的数字人数量。 */
|
|
9
|
+
count: number;
|
|
10
|
+
/** 读取过程中的问题(坏定义、缺 manifest)。 */
|
|
11
|
+
errors: string[];
|
|
12
|
+
cloned: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function humanReposRoot(): string;
|
|
15
|
+
export declare function humanRepoDir(repo: string): string;
|
|
16
|
+
export declare function listHumanRepos(): RegisteredHumanRepo[];
|
|
17
|
+
/**
|
|
18
|
+
* 注册并克隆一个数字人仓库。已存在则拉取更新。
|
|
19
|
+
*
|
|
20
|
+
* 克隆是网络+磁盘写入操作,调用方应已取得用户确认。
|
|
21
|
+
*/
|
|
22
|
+
export declare function addHumanRepo(repo: string): Promise<{
|
|
23
|
+
ok: true;
|
|
24
|
+
entry: HumanRepoListEntry;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
error: string;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Swap a validated staging tree into place.
|
|
31
|
+
*
|
|
32
|
+
* Ordering matters for crash safety: promote FIRST (rename staging over a
|
|
33
|
+
* now-absent `dir`), and only retire the old tree around it. The previous
|
|
34
|
+
* `dir → retired` then `staging → dir` sequence left no tree at `dir` at all if
|
|
35
|
+
* the process died in between, and nothing scanned for `.retired-*` on startup,
|
|
36
|
+
* so the UI showed "尚未克隆" with the data still on disk under a name nobody
|
|
37
|
+
* looked for. Here the only window is one where BOTH the old tree (at `retired`)
|
|
38
|
+
* and the new tree (at `staging`) still exist, and `reclaimOrphanedTrees`
|
|
39
|
+
* cleans up whatever is left over on the next call.
|
|
40
|
+
*/
|
|
41
|
+
declare function promoteStagedRepo(staging: string, dir: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Recover from a crash during a previous swap.
|
|
44
|
+
*
|
|
45
|
+
* If `dir` is missing but a `.retired-*` sibling exists, a process died between
|
|
46
|
+
* retiring the old tree and promoting the new one. Restore the newest retired
|
|
47
|
+
* tree rather than leaving the repo looking un-cloned, then drop the rest.
|
|
48
|
+
* Runs under the repo lock, so no concurrent swap can be mid-flight.
|
|
49
|
+
*/
|
|
50
|
+
declare function reclaimOrphanedTrees(dir: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Crash-safety internals, exposed for tests only.
|
|
53
|
+
*
|
|
54
|
+
* `promoteStagedRepo`/`reclaimOrphanedTrees` implement the swap-and-recover
|
|
55
|
+
* protocol. Exercising them through `addHumanRepo` would require network git, so
|
|
56
|
+
* the recovery cases (interrupted swap, stale retired trees) are tested here
|
|
57
|
+
* directly. Not part of the package's public surface.
|
|
58
|
+
*/
|
|
59
|
+
export declare const __testables: {
|
|
60
|
+
promoteStagedRepo: typeof promoteStagedRepo;
|
|
61
|
+
reclaimOrphanedTrees: typeof reclaimOrphanedTrees;
|
|
62
|
+
};
|
|
63
|
+
export declare function removeHumanRepo(repo: string): void;
|
|
64
|
+
/** 注册表 + 每个仓库的读取结果,供设置页展示。 */
|
|
65
|
+
export declare function listHumanRepoDetails(): HumanRepoListEntry[];
|
|
66
|
+
/**
|
|
67
|
+
* 所有已注册仓库提供的数字人。
|
|
68
|
+
*
|
|
69
|
+
* 同名定义按注册顺序先到先得,并记一条冲突说明——静默覆盖会让用户以为装的是
|
|
70
|
+
* 另一个仓库的版本。
|
|
71
|
+
*/
|
|
72
|
+
export declare function readAllHumanRepoEntries(): {
|
|
73
|
+
entries: CatalogEntry[];
|
|
74
|
+
teams: CatalogTeam[];
|
|
75
|
+
errors: string[];
|
|
76
|
+
};
|
|
77
|
+
export {};
|