@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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { readInstalledPlugins, writeInstalledPlugins } from "./installedPlugins.js";
|
|
2
|
+
import { readPluginMcp } from "./installer/loadPluginMcp.js";
|
|
3
|
+
import { pluginMcpApprovalState, pluginMcpDigest, } from "./pluginMcpIntegrity.js";
|
|
4
|
+
function pluginNameFromKey(key) {
|
|
5
|
+
const at = key.lastIndexOf("@");
|
|
6
|
+
return at > 0 ? key.slice(0, at) : key;
|
|
7
|
+
}
|
|
8
|
+
function matchingInstallKeys(data, target) {
|
|
9
|
+
if (!target.trim())
|
|
10
|
+
throw new Error("plugin MCP approval requires a plugin name or install key");
|
|
11
|
+
if (data.plugins[target])
|
|
12
|
+
return [target];
|
|
13
|
+
const matches = Object.keys(data.plugins).filter((key) => pluginNameFromKey(key) === target);
|
|
14
|
+
if (matches.length === 0)
|
|
15
|
+
throw new Error(`plugin "${target}" is not installed`);
|
|
16
|
+
if (matches.length > 1) {
|
|
17
|
+
throw new Error(`plugin "${target}" has multiple installs; use one of: ${matches.join(", ")}`);
|
|
18
|
+
}
|
|
19
|
+
return matches;
|
|
20
|
+
}
|
|
21
|
+
function trustEntry(installKey, entry, changed) {
|
|
22
|
+
const plugin = pluginNameFromKey(installKey);
|
|
23
|
+
const serverNames = Object.keys(readPluginMcp(entry.installPath, plugin))
|
|
24
|
+
.map((name) => name.slice(plugin.length + 1))
|
|
25
|
+
.sort();
|
|
26
|
+
const base = {
|
|
27
|
+
installKey,
|
|
28
|
+
plugin,
|
|
29
|
+
serverNames,
|
|
30
|
+
status: pluginMcpApprovalState(entry, serverNames.length > 0),
|
|
31
|
+
};
|
|
32
|
+
return changed === undefined ? base : { ...base, changed };
|
|
33
|
+
}
|
|
34
|
+
/** List every installed plugin's MCP trust without merging user MCP config. */
|
|
35
|
+
export function listPluginMcpTrust() {
|
|
36
|
+
const data = readInstalledPlugins();
|
|
37
|
+
const out = [];
|
|
38
|
+
for (const [installKey, entries] of Object.entries(data.plugins)) {
|
|
39
|
+
for (const entry of entries) {
|
|
40
|
+
out.push(trustEntry(installKey, entry));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return out.sort((a, b) => a.installKey.localeCompare(b.installKey));
|
|
44
|
+
}
|
|
45
|
+
/** Approve only the install-time MCP bytes; tampered bytes require update/reinstall. */
|
|
46
|
+
export function approvePluginMcp(target) {
|
|
47
|
+
const data = readInstalledPlugins();
|
|
48
|
+
const keys = matchingInstallKeys(data, target);
|
|
49
|
+
const out = [];
|
|
50
|
+
let writeNeeded = false;
|
|
51
|
+
for (const installKey of keys) {
|
|
52
|
+
for (const entry of data.plugins[installKey] ?? []) {
|
|
53
|
+
let entryChanged = false;
|
|
54
|
+
const currentDigest = pluginMcpDigest(entry.installPath);
|
|
55
|
+
if (entry.mcpDigest && currentDigest !== entry.mcpDigest) {
|
|
56
|
+
throw new Error(`plugin "${installKey}" MCP config changed after install; reinstall or update before approving`);
|
|
57
|
+
}
|
|
58
|
+
if (!entry.mcpDigest) {
|
|
59
|
+
entry.mcpDigest = currentDigest;
|
|
60
|
+
entryChanged = true;
|
|
61
|
+
}
|
|
62
|
+
if (entry.approvedMcpDigest !== entry.mcpDigest) {
|
|
63
|
+
entry.approvedMcpDigest = entry.mcpDigest;
|
|
64
|
+
entryChanged = true;
|
|
65
|
+
}
|
|
66
|
+
writeNeeded ||= entryChanged;
|
|
67
|
+
out.push(trustEntry(installKey, entry, entryChanged));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (writeNeeded)
|
|
71
|
+
writeInstalledPlugins(data);
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Revoke plugin MCP execution. Legacy entries first record their current
|
|
76
|
+
* digest, preventing revocation from falling back to legacy compatibility.
|
|
77
|
+
*/
|
|
78
|
+
export function revokePluginMcp(target) {
|
|
79
|
+
const data = readInstalledPlugins();
|
|
80
|
+
const keys = matchingInstallKeys(data, target);
|
|
81
|
+
const out = [];
|
|
82
|
+
let writeNeeded = false;
|
|
83
|
+
for (const installKey of keys) {
|
|
84
|
+
const plugin = pluginNameFromKey(installKey);
|
|
85
|
+
for (const entry of data.plugins[installKey] ?? []) {
|
|
86
|
+
let entryChanged = false;
|
|
87
|
+
const hasServers = Object.keys(readPluginMcp(entry.installPath, plugin)).length > 0;
|
|
88
|
+
const currentDigest = pluginMcpDigest(entry.installPath);
|
|
89
|
+
if (!entry.mcpDigest) {
|
|
90
|
+
entry.mcpDigest = currentDigest;
|
|
91
|
+
entryChanged = true;
|
|
92
|
+
}
|
|
93
|
+
if (hasServers || currentDigest !== entry.mcpDigest) {
|
|
94
|
+
if (entry.approvedMcpDigest !== undefined) {
|
|
95
|
+
delete entry.approvedMcpDigest;
|
|
96
|
+
entryChanged = true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (entry.approvedMcpDigest !== entry.mcpDigest) {
|
|
100
|
+
entry.approvedMcpDigest = entry.mcpDigest;
|
|
101
|
+
entryChanged = true;
|
|
102
|
+
}
|
|
103
|
+
writeNeeded ||= entryChanged;
|
|
104
|
+
out.push(trustEntry(installKey, entry, entryChanged));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (writeNeeded)
|
|
108
|
+
writeInstalledPlugins(data);
|
|
109
|
+
return out;
|
|
110
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PluginInstallEntry } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Digest the exact effective declaration selected by the runtime. The file
|
|
4
|
+
* name is part of the digest so switching between native and CC shapes cannot
|
|
5
|
+
* inherit approval accidentally.
|
|
6
|
+
*/
|
|
7
|
+
export declare function pluginMcpDigest(installPath: string): string;
|
|
8
|
+
export type PluginMcpIntegrity = "verified" | "changed" | "legacy";
|
|
9
|
+
export type PluginMcpApprovalState = "approved" | "pending" | "changed" | "legacy" | "none";
|
|
10
|
+
export declare function verifyPluginMcpIntegrity(entry: PluginInstallEntry): PluginMcpIntegrity;
|
|
11
|
+
/**
|
|
12
|
+
* Compute trust for one install. The caller supplies whether the declaration
|
|
13
|
+
* currently normalizes to at least one runnable MCP server, keeping the trust
|
|
14
|
+
* layer coupled to the runtime's strict schema rather than a second parser.
|
|
15
|
+
*/
|
|
16
|
+
export declare function pluginMcpApprovalState(entry: PluginInstallEntry, hasMcpServers: boolean): PluginMcpApprovalState;
|
|
17
|
+
/**
|
|
18
|
+
* Fields written at install/update. Installs with runnable MCP servers start
|
|
19
|
+
* pending; an explicitly approved identical digest survives an update.
|
|
20
|
+
*/
|
|
21
|
+
export declare function pluginMcpInstallRecord(installPath: string, hasMcpServers: boolean, previousEntries?: PluginInstallEntry[]): Pick<PluginInstallEntry, "mcpDigest" | "approvedMcpDigest">;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { lstatSync, readFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
const DIGEST_DOMAIN = "codeshell-plugin-mcp-v1";
|
|
5
|
+
const ABSENT_MCP = "<absent>";
|
|
6
|
+
const UNSAFE_MCP = "<unsafe>";
|
|
7
|
+
const MAX_PLUGIN_MCP_CONFIG_BYTES = 1024 * 1024;
|
|
8
|
+
function effectiveMcpBytes(installPath) {
|
|
9
|
+
for (const fileName of ["mcp-servers.json", ".mcp.json"]) {
|
|
10
|
+
const path = join(installPath, fileName);
|
|
11
|
+
let info;
|
|
12
|
+
try {
|
|
13
|
+
info = lstatSync(path);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// mcp-servers.json wins when present; otherwise try the CC fallback.
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (info.isSymbolicLink() || !info.isFile() || info.size > MAX_PLUGIN_MCP_CONFIG_BYTES) {
|
|
20
|
+
return `${UNSAFE_MCP}:${fileName}`;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
return Buffer.concat([Buffer.from(`${fileName}\0`), readFileSync(path)]);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return `${UNSAFE_MCP}:${fileName}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return ABSENT_MCP;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Digest the exact effective declaration selected by the runtime. The file
|
|
33
|
+
* name is part of the digest so switching between native and CC shapes cannot
|
|
34
|
+
* inherit approval accidentally.
|
|
35
|
+
*/
|
|
36
|
+
export function pluginMcpDigest(installPath) {
|
|
37
|
+
return createHash("sha256")
|
|
38
|
+
.update(DIGEST_DOMAIN)
|
|
39
|
+
.update("\0")
|
|
40
|
+
.update(effectiveMcpBytes(installPath))
|
|
41
|
+
.digest("hex");
|
|
42
|
+
}
|
|
43
|
+
export function verifyPluginMcpIntegrity(entry) {
|
|
44
|
+
if (!entry.mcpDigest)
|
|
45
|
+
return "legacy";
|
|
46
|
+
return pluginMcpDigest(entry.installPath) === entry.mcpDigest ? "verified" : "changed";
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Compute trust for one install. The caller supplies whether the declaration
|
|
50
|
+
* currently normalizes to at least one runnable MCP server, keeping the trust
|
|
51
|
+
* layer coupled to the runtime's strict schema rather than a second parser.
|
|
52
|
+
*/
|
|
53
|
+
export function pluginMcpApprovalState(entry, hasMcpServers) {
|
|
54
|
+
const integrity = verifyPluginMcpIntegrity(entry);
|
|
55
|
+
if (integrity === "changed")
|
|
56
|
+
return "changed";
|
|
57
|
+
if (!hasMcpServers)
|
|
58
|
+
return "none";
|
|
59
|
+
if (integrity === "legacy")
|
|
60
|
+
return "legacy";
|
|
61
|
+
return entry.approvedMcpDigest === entry.mcpDigest ? "approved" : "pending";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Fields written at install/update. Installs with runnable MCP servers start
|
|
65
|
+
* pending; an explicitly approved identical digest survives an update.
|
|
66
|
+
*/
|
|
67
|
+
export function pluginMcpInstallRecord(installPath, hasMcpServers, previousEntries = []) {
|
|
68
|
+
const mcpDigest = pluginMcpDigest(installPath);
|
|
69
|
+
const previouslyApproved = previousEntries.some((entry) => entry.mcpDigest === mcpDigest && entry.approvedMcpDigest === entry.mcpDigest);
|
|
70
|
+
return {
|
|
71
|
+
mcpDigest,
|
|
72
|
+
...(!hasMcpServers || previouslyApproved ? { approvedMcpDigest: mcpDigest } : {}),
|
|
73
|
+
};
|
|
74
|
+
}
|
package/dist/plugins/types.d.ts
CHANGED
|
@@ -71,6 +71,36 @@ export interface PluginInstallEntry {
|
|
|
71
71
|
installedAt: string;
|
|
72
72
|
lastUpdated: string;
|
|
73
73
|
gitCommitSha?: string;
|
|
74
|
+
/** CodeShell extension: digest of hooks/hooks.json captured at install/update. */
|
|
75
|
+
hookDigest?: string;
|
|
76
|
+
/**
|
|
77
|
+
* CodeShell extension: the hook digest the user explicitly approved.
|
|
78
|
+
* Missing means executable hooks are pending approval. Hook-free installs
|
|
79
|
+
* auto-approve their absent-hooks digest so they never show a prompt.
|
|
80
|
+
*/
|
|
81
|
+
approvedHookDigest?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Bounded display snapshot of the last explicitly approved hook definition.
|
|
84
|
+
* It is non-executable review metadata used to show per-command update diffs.
|
|
85
|
+
*/
|
|
86
|
+
approvedHookSnapshot?: StoredPluginHookReview[];
|
|
87
|
+
/** CodeShell extension: digest of the effective plugin MCP declaration. */
|
|
88
|
+
mcpDigest?: string;
|
|
89
|
+
/**
|
|
90
|
+
* CodeShell extension: the MCP digest the user explicitly approved.
|
|
91
|
+
* Missing means plugin-provided external processes / remote connections are
|
|
92
|
+
* pending approval. Installs without any valid MCP servers auto-approve.
|
|
93
|
+
*/
|
|
94
|
+
approvedMcpDigest?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface StoredPluginHookReview {
|
|
97
|
+
rawEvent: string;
|
|
98
|
+
matcher?: string;
|
|
99
|
+
command: string;
|
|
100
|
+
commandDigest: string;
|
|
101
|
+
commandTruncated?: boolean;
|
|
102
|
+
async?: boolean;
|
|
103
|
+
timeoutMs?: number;
|
|
74
104
|
}
|
|
75
105
|
export interface InstalledPluginsV2 {
|
|
76
106
|
version: 2;
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* Plugin variable rewriter.
|
|
3
3
|
*
|
|
4
4
|
* After a plugin is materialized into the cache dir, walk its files and
|
|
5
|
-
* rewrite
|
|
5
|
+
* rewrite Claude-specific plugin environment variables to CodeShell-native
|
|
6
|
+
* names:
|
|
7
|
+
*
|
|
8
|
+
* - `CLAUDE_PLUGIN_ROOT` → `CODESHELL_PLUGIN_ROOT`
|
|
9
|
+
* - `CLAUDE_PLUGIN_DATA` → `CODESHELL_PLUGIN_DATA`
|
|
6
10
|
*
|
|
7
11
|
* Why: plugins authored against Claude Code's protocol embed
|
|
8
12
|
* `${CLAUDE_PLUGIN_ROOT}` in their hooks.json command strings and inside
|
|
@@ -32,11 +36,11 @@ export interface RewriteSummary {
|
|
|
32
36
|
rewrittenPaths: string[];
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
|
-
* Rewrite
|
|
36
|
-
*
|
|
39
|
+
* Rewrite Claude-specific plugin environment variables under `installPath`,
|
|
40
|
+
* then drop a breadcrumb file at the root.
|
|
37
41
|
*
|
|
38
42
|
* Idempotent: re-running on an already-rewritten tree is a no-op for the
|
|
39
|
-
* rewrite
|
|
40
|
-
*
|
|
43
|
+
* rewrite but refreshes the breadcrumb's timestamp so the user can see when
|
|
44
|
+
* the most recent install/update ran.
|
|
41
45
|
*/
|
|
42
46
|
export declare function rewritePluginVars(installPath: string): RewriteSummary;
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* Plugin variable rewriter.
|
|
3
3
|
*
|
|
4
4
|
* After a plugin is materialized into the cache dir, walk its files and
|
|
5
|
-
* rewrite
|
|
5
|
+
* rewrite Claude-specific plugin environment variables to CodeShell-native
|
|
6
|
+
* names:
|
|
7
|
+
*
|
|
8
|
+
* - `CLAUDE_PLUGIN_ROOT` → `CODESHELL_PLUGIN_ROOT`
|
|
9
|
+
* - `CLAUDE_PLUGIN_DATA` → `CODESHELL_PLUGIN_DATA`
|
|
6
10
|
*
|
|
7
11
|
* Why: plugins authored against Claude Code's protocol embed
|
|
8
12
|
* `${CLAUDE_PLUGIN_ROOT}` in their hooks.json command strings and inside
|
|
@@ -28,8 +32,10 @@
|
|
|
28
32
|
*/
|
|
29
33
|
import { readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
30
34
|
import { join } from "node:path";
|
|
31
|
-
const
|
|
32
|
-
|
|
35
|
+
const REWRITES = [
|
|
36
|
+
["CLAUDE_PLUGIN_ROOT", "CODESHELL_PLUGIN_ROOT"],
|
|
37
|
+
["CLAUDE_PLUGIN_DATA", "CODESHELL_PLUGIN_DATA"],
|
|
38
|
+
];
|
|
33
39
|
const SCAN_BYTES = 8192;
|
|
34
40
|
function isLikelyBinary(buf) {
|
|
35
41
|
const len = Math.min(buf.length, SCAN_BYTES);
|
|
@@ -72,9 +78,12 @@ function walkAndRewrite(dir, summary) {
|
|
|
72
78
|
if (isLikelyBinary(raw))
|
|
73
79
|
continue;
|
|
74
80
|
const text = raw.toString("utf8");
|
|
75
|
-
|
|
81
|
+
let rewritten = text;
|
|
82
|
+
for (const [from, to] of REWRITES) {
|
|
83
|
+
rewritten = rewritten.split(from).join(to);
|
|
84
|
+
}
|
|
85
|
+
if (rewritten === text)
|
|
76
86
|
continue;
|
|
77
|
-
const rewritten = text.split(FROM).join(TO);
|
|
78
87
|
try {
|
|
79
88
|
writeFileSync(full, rewritten, "utf8");
|
|
80
89
|
summary.filesRewritten += 1;
|
|
@@ -87,12 +96,12 @@ function walkAndRewrite(dir, summary) {
|
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
98
|
/**
|
|
90
|
-
* Rewrite
|
|
91
|
-
*
|
|
99
|
+
* Rewrite Claude-specific plugin environment variables under `installPath`,
|
|
100
|
+
* then drop a breadcrumb file at the root.
|
|
92
101
|
*
|
|
93
102
|
* Idempotent: re-running on an already-rewritten tree is a no-op for the
|
|
94
|
-
* rewrite
|
|
95
|
-
*
|
|
103
|
+
* rewrite but refreshes the breadcrumb's timestamp so the user can see when
|
|
104
|
+
* the most recent install/update ran.
|
|
96
105
|
*/
|
|
97
106
|
export function rewritePluginVars(installPath) {
|
|
98
107
|
const summary = {
|
|
@@ -100,23 +109,23 @@ export function rewritePluginVars(installPath) {
|
|
|
100
109
|
filesRewritten: 0,
|
|
101
110
|
rewrittenPaths: [],
|
|
102
111
|
};
|
|
103
|
-
let exists = false;
|
|
104
112
|
try {
|
|
105
|
-
|
|
113
|
+
if (!statSync(installPath).isDirectory())
|
|
114
|
+
return summary;
|
|
106
115
|
}
|
|
107
116
|
catch {
|
|
108
|
-
exists = false;
|
|
109
|
-
}
|
|
110
|
-
if (!exists)
|
|
111
117
|
return summary;
|
|
118
|
+
}
|
|
112
119
|
walkAndRewrite(installPath, summary);
|
|
113
120
|
const breadcrumb = {
|
|
114
121
|
rewrittenAt: new Date().toISOString(),
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
// Keep the original fields for older tooling that reads this breadcrumb.
|
|
123
|
+
from: REWRITES[0][0],
|
|
124
|
+
to: REWRITES[0][1],
|
|
125
|
+
rewrites: REWRITES.map(([from, to]) => ({ from, to })),
|
|
117
126
|
filesScanned: summary.filesScanned,
|
|
118
127
|
filesRewritten: summary.filesRewritten,
|
|
119
|
-
note: "codeshell rewrote plugin
|
|
128
|
+
note: "codeshell rewrote Claude-specific plugin environment placeholders to codeshell-native names at install time. " +
|
|
120
129
|
"Upstream plugin sources are unchanged; only this local copy was modified.",
|
|
121
130
|
};
|
|
122
131
|
try {
|
package/dist/preset/index.d.ts
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* src/prompt/sections/*.md — each preset declares which sections to include.
|
|
9
9
|
*/
|
|
10
10
|
import type { PermissionRule } from "../types.js";
|
|
11
|
-
|
|
11
|
+
import { type BuiltinTool } from "../tool-system/builtin/index.js";
|
|
12
|
+
import type { CapabilityModule } from "../capabilities/index.js";
|
|
13
|
+
export declare const AGENT_PRESET_NAMES: readonly ["harness-min", "general"];
|
|
12
14
|
/** Built-in preset names. Custom presets use arbitrary strings via registerPreset(). */
|
|
13
15
|
export type BuiltinPresetName = (typeof AGENT_PRESET_NAMES)[number];
|
|
14
16
|
/** Any preset name — built-in or custom-registered. */
|
|
@@ -19,13 +21,12 @@ export interface AgentPreset {
|
|
|
19
21
|
description: string;
|
|
20
22
|
/** Ordered list of prompt section filenames (without .md). */
|
|
21
23
|
promptSections: readonly string[];
|
|
22
|
-
/** Whether to inject git status into system context. */
|
|
23
|
-
injectGitStatus: boolean;
|
|
24
24
|
builtinTools: string[];
|
|
25
25
|
defaultPermissionRules: PermissionRule[];
|
|
26
26
|
}
|
|
27
|
-
export declare const BUILTIN_AGENT_PRESETS: Record<
|
|
27
|
+
export declare const BUILTIN_AGENT_PRESETS: Record<BuiltinPresetName, AgentPreset>;
|
|
28
28
|
export declare const DEFAULT_AGENT_PRESET: AgentPresetName;
|
|
29
|
+
/** @deprecated Product hosts should install a capability with `defaultPreset`. */
|
|
29
30
|
export declare const DEFAULT_CLI_PRESET: AgentPresetName;
|
|
30
31
|
/**
|
|
31
32
|
* Register a custom agent preset.
|
|
@@ -39,7 +40,6 @@ export declare const DEFAULT_CLI_PRESET: AgentPresetName;
|
|
|
39
40
|
* label: "Data Pipeline Orchestrator",
|
|
40
41
|
* description: "Manages ETL workflows and data quality checks.",
|
|
41
42
|
* promptSections: ["base", "orchestration"],
|
|
42
|
-
* injectGitStatus: false,
|
|
43
43
|
* builtinTools: ["Read", "Write", "Bash", "Glob", "Grep", "Agent"],
|
|
44
44
|
* defaultPermissionRules: [{ tool: "Read", decision: "allow" }],
|
|
45
45
|
* });
|
|
@@ -47,11 +47,13 @@ export declare const DEFAULT_CLI_PRESET: AgentPresetName;
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function registerPreset(preset: AgentPreset): void;
|
|
49
49
|
/** List all available preset names (built-in + custom). */
|
|
50
|
-
export declare function listPresetNames(): string[];
|
|
51
|
-
export declare function resolveAgentPreset(name?: string): AgentPreset;
|
|
50
|
+
export declare function listPresetNames(capabilities?: readonly CapabilityModule[]): string[];
|
|
51
|
+
export declare function resolveAgentPreset(name?: string, capabilities?: readonly CapabilityModule[]): AgentPreset;
|
|
52
52
|
export interface BuildPresetSystemPromptOptions {
|
|
53
53
|
activeToolNames?: readonly string[];
|
|
54
54
|
platform?: NodeJS.Platform;
|
|
55
|
+
promptSections?: Readonly<Record<string, string>>;
|
|
56
|
+
toolCatalog?: readonly BuiltinTool[];
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Build the full system prompt for a preset by loading and joining its sections.
|
|
@@ -65,7 +67,8 @@ export interface BuildPresetSystemPromptOptions {
|
|
|
65
67
|
export declare function buildPresetSystemPrompt(preset: AgentPreset, optionsOrActiveToolNames?: BuildPresetSystemPromptOptions | readonly string[]): string;
|
|
66
68
|
export declare function resolveBuiltinToolNames(options?: {
|
|
67
69
|
preset?: string;
|
|
68
|
-
host?:
|
|
70
|
+
host?: string;
|
|
69
71
|
enabledBuiltinTools?: string[];
|
|
70
72
|
disabledBuiltinTools?: string[];
|
|
73
|
+
capabilities?: readonly CapabilityModule[];
|
|
71
74
|
}): string[];
|