@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/engine/engine.d.ts
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Engine — the main facade that wires all components together.
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { Message, SessionWorkspace } from "../types.js";
|
|
5
5
|
import { ToolRegistry } from "../tool-system/registry.js";
|
|
6
6
|
import { type BuiltinToolFn } from "../tool-system/builtin/index.js";
|
|
7
|
-
import { type
|
|
7
|
+
import { type LiveChildState } from "../tool-system/builtin/agent-registry.js";
|
|
8
8
|
import { HookRegistry } from "../hooks/registry.js";
|
|
9
|
-
import { type GoalConfig, type GoalExtension } from "
|
|
9
|
+
import { type GoalConfig, type GoalExtension } from "../goal/lifecycle.js";
|
|
10
10
|
import { type CompactStrategy } from "../context/manager.js";
|
|
11
|
-
import { SessionManager, type ForkSessionOptions, type ForkSessionResult } from "../session/session-manager.js";
|
|
11
|
+
import { SessionManager, type ForkSessionOptions, type ForkSessionResult, type SummaryForkOptions } from "../session/session-manager.js";
|
|
12
|
+
import type { SessionMessageRouter } from "../session/session-message.js";
|
|
12
13
|
import type { AskUserFn } from "../tool-system/builtin/ask-user.js";
|
|
13
|
-
import type { CapabilityOverride } from "../settings/schema.js";
|
|
14
|
+
import type { CapabilityOverride, CapabilityOverrides } from "../settings/schema.js";
|
|
14
15
|
import { type FeatureFlagName } from "../settings/feature-flags.js";
|
|
15
16
|
import type { ToolContext } from "../tool-system/context.js";
|
|
16
|
-
import { type SandboxBackend } from "../tool-system/sandbox/index.js";
|
|
17
17
|
import { ModelPool, type ModelEntry } from "../llm/model-pool.js";
|
|
18
18
|
import { AgentDefinitionRegistry } from "../agent/agent-definition-registry.js";
|
|
19
19
|
import { EngineRuntime } from "./runtime.js";
|
|
20
|
-
import type
|
|
20
|
+
import { type EngineRunOptions } from "./run-types.js";
|
|
21
|
+
import type { InputAttachmentMeta } from "../types.js";
|
|
21
22
|
/**
|
|
22
23
|
* Build ScanOptions.compatFileNames from the user's instruction compat toggles.
|
|
23
24
|
* Primary file name stays hard-wired to CODESHELL.md (not exposed). Turning a
|
|
@@ -35,39 +36,7 @@ export interface EnqueueSteerResult {
|
|
|
35
36
|
accepted: boolean;
|
|
36
37
|
id: string;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
-
cwd?: string;
|
|
40
|
-
onStream?: StreamCallback;
|
|
41
|
-
signal?: AbortSignal;
|
|
42
|
-
sessionId?: string;
|
|
43
|
-
/** Immutable permission context for this run only. Omitted uses Engine config. */
|
|
44
|
-
permissionMode?: NonNullable<EngineConfig["permissionMode"]>;
|
|
45
|
-
/** Immutable plan context for this run only. Omitted follows permissionMode. */
|
|
46
|
-
planMode?: boolean;
|
|
47
|
-
/** Protocol connection's approval owner router for this run. */
|
|
48
|
-
approvalRouter?: ApprovalRouter;
|
|
49
|
-
/**
|
|
50
|
-
* Goal mode for this run: the engine registers a GoalStopHook so the
|
|
51
|
-
* turn loop runs until the session model judges this goal met. Falls
|
|
52
|
-
* back to config.goal. Orthogonal to permissionMode. Accepts a raw
|
|
53
|
-
* string or a full GoalConfig; normalized once at the run boundary.
|
|
54
|
-
*/
|
|
55
|
-
goal?: string | GoalConfig;
|
|
56
|
-
/**
|
|
57
|
-
* Marks this turn's task as a SYNTHETIC system-reminder injection (e.g. a
|
|
58
|
-
* background-job completion notification the server re-injects to wake an
|
|
59
|
-
* idle session) rather than the user's own input. The task is still sent
|
|
60
|
-
* to the model as a `role:"user"` message, but it is persisted with an
|
|
61
|
-
* `injected` flag so the disk reader skips rendering it as a user bubble
|
|
62
|
-
* on replay (matching the live UI, which shows only the assistant reply).
|
|
63
|
-
*/
|
|
64
|
-
injected?: boolean;
|
|
65
|
-
/** Stable id for this user-intent, used to make duplicate submits idempotent. */
|
|
66
|
-
clientMessageId?: string;
|
|
67
|
-
/** Structured input attachments. Legacy `<codeshell-image>` blocks remain supported. */
|
|
68
|
-
attachments?: InputAttachmentMeta[];
|
|
69
|
-
}
|
|
70
|
-
export { diskDefaultsFrom, type DiskDefaultPatch } from "../settings/disk-defaults.js";
|
|
39
|
+
export { diskDefaultsFrom, type DiskDefaultPatch } from "./disk-defaults.js";
|
|
71
40
|
/**
|
|
72
41
|
* Resolve the LLM config for a spawned child Engine.
|
|
73
42
|
* - `modelKey` set + present in pool → that model's config (pure entry-derived
|
|
@@ -80,30 +49,14 @@ export { diskDefaultsFrom, type DiskDefaultPatch } from "../settings/disk-defaul
|
|
|
80
49
|
* Engine directly via EngineConfig.clientDefaults — they do not flow through
|
|
81
50
|
* this helper because they're not part of LLMConfig anymore.
|
|
82
51
|
*/
|
|
83
|
-
export
|
|
52
|
+
export { resolveChildLlm, resolveChildToolScope } from "./subagent-spawner.js";
|
|
53
|
+
export { resolveRunCwd } from "./run-workspace.js";
|
|
84
54
|
/**
|
|
85
55
|
* Load reusable sub-agent role definitions, merging:
|
|
86
56
|
* 1. project-level <cwd>/.code-shell/agents/*.md (ships built-ins)
|
|
87
57
|
* 2. user-level ~/.code-shell/agents/*.md (user wins on name)
|
|
88
58
|
* Names in `disabledAgents` are filtered out so the LLM never sees them.
|
|
89
59
|
*/
|
|
90
|
-
/**
|
|
91
|
-
* Resolve the working directory for a run. Precedence for legacy sessions:
|
|
92
|
-
* options.cwd > resumed session's state.cwd > config.cwd > process.cwd()
|
|
93
|
-
*
|
|
94
|
-
* The session-cwd tier is what stops a project-bound session from being
|
|
95
|
-
* resumed against the wrong directory: when a host omits options.cwd (e.g. its
|
|
96
|
-
* sidebar repo selection drifted to null), the session's own recorded cwd is
|
|
97
|
-
* recovered so the engine still loads THAT project's agents/settings/memory,
|
|
98
|
-
* not whatever process.cwd() happens to be. Pure so the precedence is testable
|
|
99
|
-
* without standing up an Engine.
|
|
100
|
-
*/
|
|
101
|
-
export declare function resolveRunCwd(args: {
|
|
102
|
-
optionCwd?: string;
|
|
103
|
-
sessionCwd?: string;
|
|
104
|
-
configCwd?: string;
|
|
105
|
-
processCwd: string;
|
|
106
|
-
}): string;
|
|
107
60
|
export declare function loadAgentDefinitionsForCwd(cwd: string, disabledAgents?: string[], disabledPlugins?: string[]): AgentDefinitionRegistry;
|
|
108
61
|
/**
|
|
109
62
|
* #7: apply a project's per-turn builtin capability override to a tool list.
|
|
@@ -123,16 +76,25 @@ export declare function applyBuiltinOverrideVisibility<T extends {
|
|
|
123
76
|
* - `allowlist` undefined → inherit parent enabled/disabled, always with the
|
|
124
77
|
* nested-agent tools forced into `disabled` (no grandchildren).
|
|
125
78
|
*/
|
|
126
|
-
export declare function resolveChildToolScope(allowlist: string[] | undefined, parentDisabled: string[] | undefined, parentEnabled: string[] | undefined): {
|
|
127
|
-
enabled?: string[];
|
|
128
|
-
disabled: string[];
|
|
129
|
-
};
|
|
130
79
|
export declare class Engine {
|
|
131
80
|
private config;
|
|
132
81
|
private preset;
|
|
82
|
+
/** Capability-free seed owned by the runtime/host; never mutated by an Engine. */
|
|
83
|
+
private runtimeToolRegistry;
|
|
84
|
+
/** Engine-local view containing only this Engine's capability modules. */
|
|
133
85
|
private toolRegistry;
|
|
86
|
+
private readonly capabilities;
|
|
87
|
+
private readonly toolCatalog;
|
|
88
|
+
private readonly toolGuards;
|
|
89
|
+
/** Per-turn dynamic definition rewriters contributed by builtin exposures. */
|
|
90
|
+
private readonly toolRewriters;
|
|
91
|
+
/** Named per-run behavior profiles (core defaults + config + extensions). */
|
|
92
|
+
private readonly behaviorProfiles;
|
|
93
|
+
private readonly capabilityPromptSections;
|
|
94
|
+
private readonly capabilityDynamicContextProviders;
|
|
134
95
|
private hooks;
|
|
135
96
|
private sessionManager;
|
|
97
|
+
private sessionMessageRouter;
|
|
136
98
|
private mcpManager;
|
|
137
99
|
private modelPool;
|
|
138
100
|
/**
|
|
@@ -154,21 +116,10 @@ export declare class Engine {
|
|
|
154
116
|
private agentDefsCache?;
|
|
155
117
|
/** Shared resources supplied at construction (adapter pattern — null when self-constructed). */
|
|
156
118
|
readonly runtime: EngineRuntime | null;
|
|
157
|
-
private readonly
|
|
158
|
-
private readonly
|
|
159
|
-
private
|
|
160
|
-
/** Active permission mode for this Engine instance. */
|
|
161
|
-
permissionMode: NonNullable<EngineConfig["permissionMode"]>;
|
|
162
|
-
/** True when permissionMode === "plan". */
|
|
163
|
-
planMode: boolean;
|
|
119
|
+
private readonly runEnvironmentResolver;
|
|
120
|
+
private readonly auxiliaryPipeline;
|
|
121
|
+
private readonly permissionController;
|
|
164
122
|
private settingsManager;
|
|
165
|
-
/**
|
|
166
|
-
* Cached auxiliary-task LLM client, keyed by the models[].key it was built
|
|
167
|
-
* from. Background calls (memory extraction, auto-dream) reuse it across
|
|
168
|
-
* runs so we don't redo the provider handshake every session. Invalidated
|
|
169
|
-
* implicitly: a changed auxModelKey produces a different cache key.
|
|
170
|
-
*/
|
|
171
|
-
private auxClientCache?;
|
|
172
123
|
private lastContextManager;
|
|
173
124
|
private lastMessages;
|
|
174
125
|
private lastSessionId;
|
|
@@ -189,7 +140,7 @@ export declare class Engine {
|
|
|
189
140
|
* LLM response arrives.
|
|
190
141
|
*/
|
|
191
142
|
private ctxOverheadBySid;
|
|
192
|
-
private
|
|
143
|
+
private promptCacheDiagnostics;
|
|
193
144
|
/**
|
|
194
145
|
* Step-gap steering queue (per sessionId, in-memory). Host pushes user
|
|
195
146
|
* messages here via enqueueSteer while a run is in flight; the turn loop
|
|
@@ -199,7 +150,6 @@ export declare class Engine {
|
|
|
199
150
|
* multiple Engines don't interfere and it stays cleanly extractable.
|
|
200
151
|
*/
|
|
201
152
|
private steerQueueBySid;
|
|
202
|
-
private activePermission;
|
|
203
153
|
/**
|
|
204
154
|
* The TurnLoop of the in-flight run(), exposed so extendGoalRun() can bump a
|
|
205
155
|
* running goal's turn/budget ceilings mid-run (TODO 3.1). Null when idle.
|
|
@@ -211,12 +161,18 @@ export declare class Engine {
|
|
|
211
161
|
* otherwise keep re-blocking the stop). Null when no goal run is active.
|
|
212
162
|
*/
|
|
213
163
|
private activeGoalHook;
|
|
164
|
+
/** Whether activeGoalHook is currently registered (pause detaches it). */
|
|
165
|
+
private activeGoalHookAttached;
|
|
166
|
+
/** Mutable goal view consumed by the running judge after edits/resume. */
|
|
167
|
+
private activeRuntimeGoal;
|
|
168
|
+
/** Mutable terminal snapshot kept in sync with a mid-run objective edit. */
|
|
169
|
+
private activePersistedRunGoal;
|
|
214
170
|
/**
|
|
215
171
|
* The in-flight run's session bundle, held so clearGoal() can wipe the goal
|
|
216
172
|
* on the SAME instance the run loop is persisting each turn — not a fresh
|
|
217
173
|
* detached copy from resume(). Without this, a mid-run 清除 clears disk, but
|
|
218
174
|
* the still-running loop's next saveState(bundle.state) resurrects the goal
|
|
219
|
-
* (bundle.state.
|
|
175
|
+
* (bundle.state.goalLifecycle was never rebased). A never-completing goal run
|
|
220
176
|
* (judge keeps returning not_met → continueSession) stays live for a long
|
|
221
177
|
* time, so this write-back race is the norm, not an edge case, for such runs.
|
|
222
178
|
* Single-valued like activeTurnLoop — one top-level run per engine at a time.
|
|
@@ -226,16 +182,13 @@ export declare class Engine {
|
|
|
226
182
|
/**
|
|
227
183
|
* Same-instance run guard. Engine owns single-valued live controls and one
|
|
228
184
|
* HookRegistry, so a second run must not enter until the first has completed
|
|
229
|
-
* all state persistence and end hooks.
|
|
230
|
-
*
|
|
231
|
-
* coordinate different Engine instances sharing a sessionId, Workers, or
|
|
232
|
-
* processes; session-level locking/CAS for those cases is a separate finding.
|
|
185
|
+
* all state persistence and end hooks. Cross-instance/process whole-state
|
|
186
|
+
* writers are additionally fenced by SessionManager's persisted revision CAS.
|
|
233
187
|
*/
|
|
234
188
|
private runInProgress;
|
|
189
|
+
private agentControlStateListener?;
|
|
190
|
+
private agentDirectionsDeliveredListener?;
|
|
235
191
|
/** Permission update requested while runInProgress. Applied in run() finally. */
|
|
236
|
-
private pendingPermissionMode;
|
|
237
|
-
/** Plan update paired with pendingPermissionMode for one atomic boundary apply. */
|
|
238
|
-
private pendingPlanMode;
|
|
239
192
|
/** Public accessor so UI/clients can read the resolved per-model window. */
|
|
240
193
|
get maxContextTokens(): number;
|
|
241
194
|
private resolveMaxContextTokens;
|
|
@@ -299,12 +252,22 @@ export declare class Engine {
|
|
|
299
252
|
* Must be called before run().
|
|
300
253
|
*/
|
|
301
254
|
registerCustomTool(definition: import("../types.js").RegisteredTool, executor: BuiltinToolFn): void;
|
|
255
|
+
/** Dispatch a host-installed capability query without teaching core its name. */
|
|
256
|
+
queryCapability(type: string, params?: Readonly<Record<string, unknown>>): Promise<{
|
|
257
|
+
handled: false;
|
|
258
|
+
} | {
|
|
259
|
+
handled: true;
|
|
260
|
+
data: unknown;
|
|
261
|
+
}>;
|
|
302
262
|
/**
|
|
303
263
|
* Inject the askUser handler after construction. Used by AgentServer
|
|
304
264
|
* to wire its protocol-backed askUser into an Engine that was created
|
|
305
265
|
* before the server existed (chicken-and-egg: server takes engine in ctor).
|
|
306
266
|
*/
|
|
307
267
|
setAskUser(fn: AskUserFn | undefined): void;
|
|
268
|
+
/** Internal child-runtime seam used by the single-writer supervisor. */
|
|
269
|
+
setAgentControlStateListener(listener: ((state: LiveChildState) => void) | undefined): void;
|
|
270
|
+
setAgentDirectionsDeliveredListener(listener: ((envelopeIds: string[]) => void) | undefined): void;
|
|
308
271
|
/**
|
|
309
272
|
* Inject the browser automation bridge after construction (same chicken-and-egg
|
|
310
273
|
* as setAskUser: the desktop host builds the bridge — which drives a webview —
|
|
@@ -314,6 +277,10 @@ export declare class Engine {
|
|
|
314
277
|
setBrowserBridge(bridge: import("../tool-system/browser-bridge.js").BrowserBridge | undefined): void;
|
|
315
278
|
/** Inject the host-backed workspace bridge after construction. */
|
|
316
279
|
setWorkspaceBridge(bridge: import("../tool-system/workspace-bridge.js").WorkspaceBridge | undefined): void;
|
|
280
|
+
/** Inject the host-backed panel discovery/focus bridge after construction. */
|
|
281
|
+
setPanelBridge(bridge: import("../tool-system/panel-bridge.js").PanelHostBridge | undefined): void;
|
|
282
|
+
/** Inject the host router used by SendMessageToSession. */
|
|
283
|
+
setSessionMessageRouter(router: SessionMessageRouter | undefined): void;
|
|
317
284
|
/**
|
|
318
285
|
* Queue a user message to be spliced into the in-flight run for `sessionId`
|
|
319
286
|
* at the next turn-loop step boundary — the 不打断 steering path (vs cancel +
|
|
@@ -346,6 +313,8 @@ export declare class Engine {
|
|
|
346
313
|
* in-process AgentServer to decide whether to wire an interactive askUser.
|
|
347
314
|
*/
|
|
348
315
|
isHeadless(): boolean;
|
|
316
|
+
get permissionMode(): NonNullable<EngineConfig["permissionMode"]>;
|
|
317
|
+
get planMode(): boolean;
|
|
349
318
|
/**
|
|
350
319
|
* Probe whether a session already exists on disk (its state/transcript dir is
|
|
351
320
|
* present). Used by the protocol server to distinguish "resume an existing
|
|
@@ -355,51 +324,135 @@ export declare class Engine {
|
|
|
355
324
|
*/
|
|
356
325
|
sessionExistsOnDisk(sessionId: string): boolean;
|
|
357
326
|
forkSession(sourceSessionId: string, options?: ForkSessionOptions): ForkSessionResult;
|
|
327
|
+
selectContextPackage(sourceSessionId: string, range: {
|
|
328
|
+
fromEventId: string;
|
|
329
|
+
toEventId: string;
|
|
330
|
+
}): ReturnType<SessionManager["selectContextPackage"]>;
|
|
331
|
+
createSummaryFork(sourceSessionId: string, options: SummaryForkOptions): ForkSessionResult;
|
|
332
|
+
/** Summarize a selected transcript package using the configured aux tier. */
|
|
333
|
+
summarizeContextPackage(messages: Message[], signal?: AbortSignal, sourceSessionId?: string): Promise<{
|
|
334
|
+
summary: string;
|
|
335
|
+
estimatedTokens: number;
|
|
336
|
+
}>;
|
|
337
|
+
/** Restore a cold Engine's configured model from persisted source state without resetting usage. */
|
|
338
|
+
restoreSessionModel(sessionId: string): void;
|
|
358
339
|
/**
|
|
359
340
|
* Run a task from start to finish. Rejects immediately when this Engine
|
|
360
341
|
* instance already has a run in progress; hosts that want queueing own that
|
|
361
342
|
* policy (for example ChatSession's FIFO queue).
|
|
362
343
|
*/
|
|
363
344
|
run(task: string, options?: EngineRunOptions): Promise<EngineResult>;
|
|
364
|
-
private runExclusive;
|
|
365
345
|
/**
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
* (and cache) a dedicated client for it so per-turn book-keeping runs on a cheap
|
|
374
|
-
* fast model instead of the expensive primary. Falls back to `fallback` (the
|
|
375
|
-
* active run's client) when unset, unknown, or on any build failure — aux
|
|
376
|
-
* work is best-effort and must never break a run.
|
|
377
|
-
*/
|
|
378
|
-
/**
|
|
379
|
-
* Build the SummarizeFn used for context compaction. Extracted so both the
|
|
380
|
-
* run path and forceCompact share one definition of the summarization call.
|
|
346
|
+
* Resolve the run's active behavior profile. A profile bound to the
|
|
347
|
+
* persisted session kind wins (so e.g. a resumed pet session keeps the safe
|
|
348
|
+
* profile even when the host omits behaviorMode); otherwise the explicit
|
|
349
|
+
* behaviorMode names a registered profile directly. Explicit unknown modes
|
|
350
|
+
* and non-work session kinds without an owning profile fail closed: silently
|
|
351
|
+
* falling back to an unrestricted run would turn a missing extension into a
|
|
352
|
+
* permission-boundary bypass.
|
|
381
353
|
*/
|
|
354
|
+
private resolveBehaviorProfile;
|
|
355
|
+
private runExclusive;
|
|
356
|
+
/** A receipt write failure must not turn an already finalized model result
|
|
357
|
+
* into a second synthetic failure (or reject the Engine.run contract). */
|
|
358
|
+
private appendClientRunReceipt;
|
|
359
|
+
/**
|
|
360
|
+
* Terminal success path: forward to {@link finalizeRunSuccess} with the
|
|
361
|
+
* engine-bound persistence / memory / hook closures filled in. Extracted from
|
|
362
|
+
* the {@link runExclusive} skeleton so the terminal-state assembly reads as a
|
|
363
|
+
* single call; behavior is unchanged.
|
|
364
|
+
*/
|
|
365
|
+
private finalizeRun;
|
|
366
|
+
/**
|
|
367
|
+
* Build the stream callback that wraps the caller's `onStream`: it snapshots
|
|
368
|
+
* TodoWrite `task_update` events for TaskGuard and persists `goal_progress`
|
|
369
|
+
* events to the transcript before delegating. Extracted verbatim from the
|
|
370
|
+
* {@link runExclusive} skeleton; the todo buffer and (not-yet-open) session
|
|
371
|
+
* are reached through the `setLatestTodos` / `getSession` accessors.
|
|
372
|
+
*/
|
|
373
|
+
private buildWrappedOnStream;
|
|
374
|
+
/**
|
|
375
|
+
* Run the turn loop once, apply its goal termination, and — for a top-level
|
|
376
|
+
* headless run only — drain background sub-agents before resolving. Extracted
|
|
377
|
+
* verbatim from the body of the {@link runExclusive} try block; the cleanup
|
|
378
|
+
* `finally` stays in the skeleton so the run-scoped hook/loop teardown is
|
|
379
|
+
* guaranteed regardless of how this method returns or throws.
|
|
380
|
+
*/
|
|
381
|
+
private runTurnLoopWithHeadlessDrain;
|
|
382
|
+
/**
|
|
383
|
+
* Stamp the resolved session identity and session-scoped side-effect sinks
|
|
384
|
+
* onto the run's {@link ToolContext}, now that the session bundle is open.
|
|
385
|
+
* Extracted verbatim from the {@link runExclusive} skeleton.
|
|
386
|
+
*/
|
|
387
|
+
private stampRunToolContext;
|
|
388
|
+
/** Attach a closed-set, host-routed Session message sender to this run. */
|
|
389
|
+
private attachSessionMessageService;
|
|
390
|
+
/**
|
|
391
|
+
* Await the parallel prompt/context assembly (LLM client handshake, system
|
|
392
|
+
* prompt, dynamic + user context messages), splice the hook-injected and
|
|
393
|
+
* context messages into `messages`, publish this run's last-session snapshot,
|
|
394
|
+
* and prime the {@link ContextManager}'s transcript path + replacement state.
|
|
395
|
+
* Extracted verbatim from the {@link runExclusive} skeleton.
|
|
396
|
+
*/
|
|
397
|
+
private assembleRunPrompts;
|
|
398
|
+
/**
|
|
399
|
+
* Seed the run's {@link ContextManager}, emit the early `session_started`
|
|
400
|
+
* event, replay the last TodoWrite snapshot on resume, kick off the LLM client
|
|
401
|
+
* handshake, and build the permission-gated {@link ToolExecutor}. Extracted
|
|
402
|
+
* verbatim from the {@link runExclusive} skeleton; the todo snapshot is read
|
|
403
|
+
* and written through the `getLatestTodos` / `setLatestTodos` accessors so the
|
|
404
|
+
* outer wrapped-onStream and TaskGuard keep observing the same buffer.
|
|
405
|
+
*/
|
|
406
|
+
private wireRunContextAndPermission;
|
|
407
|
+
/**
|
|
408
|
+
* Resolve the run sandbox, construct the child sub-agent spawner (the sole
|
|
409
|
+
* `new Engine(...)` call path, kept in engine.ts so the protocol bypass guard
|
|
410
|
+
* stays satisfied), and assemble the per-run {@link ToolContext}. Extracted
|
|
411
|
+
* verbatim from the {@link runExclusive} skeleton; the session bundle is read
|
|
412
|
+
* lazily via `getSession` because it is opened after this wiring runs.
|
|
413
|
+
*/
|
|
414
|
+
private wireRunSandboxToolContext;
|
|
415
|
+
/**
|
|
416
|
+
* Wire every run-scoped dependency the turn loop needs: usage accounting +
|
|
417
|
+
* summarizer, the {@link ModelFacade}, the file-history hook, the
|
|
418
|
+
* `on_agent_start` hook, goal resolution / arming, the {@link TurnLoop} itself,
|
|
419
|
+
* and the goal-termination applier. Extracted verbatim from the
|
|
420
|
+
* {@link runExclusive} skeleton; the goal slots, judge-context buffer and usage
|
|
421
|
+
* baseline are fully local here — only the values the try/finally + finalize
|
|
422
|
+
* phases consume cross back out.
|
|
423
|
+
*/
|
|
424
|
+
private wireRunLoop;
|
|
425
|
+
/**
|
|
426
|
+
* Record the session start and fire the once-per-run `on_session_start` and
|
|
427
|
+
* per-turn `user_prompt_submit` / `agent_direction_submit` hooks, applying any
|
|
428
|
+
* `updatedPrompt` rewrite in place on `messages`. Extracted verbatim from the
|
|
429
|
+
* {@link runExclusive} skeleton; returns the combined hook-injected messages
|
|
430
|
+
* for {@link assembleRunMessages}.
|
|
431
|
+
*/
|
|
432
|
+
private runSessionStartHooks;
|
|
433
|
+
/**
|
|
434
|
+
* Resolve goal visibility, disabled skill/plugin lists, build the
|
|
435
|
+
* {@link PromptComposer}, connect MCP, and assemble the visibility-filtered
|
|
436
|
+
* tool defs for this run. Extracted verbatim from the {@link runExclusive}
|
|
437
|
+
* skeleton; the intermediate visibility/disabled/mcp values are fully local to
|
|
438
|
+
* this method — only the composer and tool defs cross back out.
|
|
439
|
+
*/
|
|
440
|
+
private wireRunTooling;
|
|
441
|
+
/**
|
|
442
|
+
* Assemble the run-scoped {@link TurnLoop} (its dependency object + option
|
|
443
|
+
* object) from the per-run locals gathered in {@link runExclusive}. Extracted
|
|
444
|
+
* verbatim from the orchestration skeleton so `runExclusive` stays a readable
|
|
445
|
+
* sequence of phase calls; the buffered-compaction `let` lives entirely inside
|
|
446
|
+
* here now, and the only value crossing back out is the goal-judge context,
|
|
447
|
+
* published through the `publishGoalJudgeContext` callback.
|
|
448
|
+
*/
|
|
449
|
+
private buildTurnLoop;
|
|
382
450
|
private buildSummarizeFn;
|
|
383
451
|
private resolveAuxClient;
|
|
384
452
|
private runMemoryPipeline;
|
|
385
|
-
/**
|
|
386
|
-
* Drive the auto-dream tool-call loop.
|
|
387
|
-
*
|
|
388
|
-
* Runs the LLM with a whitelisted subset of memory tools (MemoryList,
|
|
389
|
-
* MemoryRead, MemorySave, MemoryDelete). The loop is intentionally small
|
|
390
|
-
* and offline:
|
|
391
|
-
* - No streaming, no UI events — runs in the background after a session.
|
|
392
|
-
* - No permission prompts — UI isn't attached, so we hard-reject any
|
|
393
|
-
* attempt to Save/Delete in the "user" scope before dispatching. Dream
|
|
394
|
-
* scope is the LLM's workspace and goes through freely.
|
|
395
|
-
* - Capped at MAX_TURNS LLM round-trips and MAX_WRITES total
|
|
396
|
-
* mutations to bound damage on misbehavior.
|
|
397
|
-
*
|
|
398
|
-
* Returns true if the loop ran (with or without writes); false if we
|
|
399
|
-
* bailed before the first LLM call (e.g. registry missing the tools).
|
|
400
|
-
*/
|
|
401
|
-
private runDreamLoop;
|
|
402
453
|
getToolRegistry(): ToolRegistry;
|
|
454
|
+
/** Registry suitable for constructing EngineRuntime; excludes local capabilities. */
|
|
455
|
+
getRuntimeToolRegistry(): ToolRegistry;
|
|
403
456
|
/**
|
|
404
457
|
* Switch the active model by pool key. Takes effect on the next run() call.
|
|
405
458
|
* Returns the new model entry.
|
|
@@ -409,7 +462,9 @@ export declare class Engine {
|
|
|
409
462
|
* only live in memory and every restart reverts to the previously persisted
|
|
410
463
|
* defaults.text.
|
|
411
464
|
*/
|
|
412
|
-
switchModel(key: string
|
|
465
|
+
switchModel(key: string, opts?: {
|
|
466
|
+
persist?: boolean;
|
|
467
|
+
}): ModelEntry;
|
|
413
468
|
/**
|
|
414
469
|
* Zero the legacy/model-scoped token/cache usage window on disk. The
|
|
415
470
|
* whole-session cumulative counters are intentionally left alone.
|
|
@@ -430,6 +485,23 @@ export declare class Engine {
|
|
|
430
485
|
getCurrentModel(): string;
|
|
431
486
|
getHookRegistry(): HookRegistry;
|
|
432
487
|
getSessionManager(): SessionManager;
|
|
488
|
+
/**
|
|
489
|
+
* Apply a field-level disk update and rebase this Engine's matching live
|
|
490
|
+
* bundle onto the returned revision so its next whole-state CAS can proceed.
|
|
491
|
+
*/
|
|
492
|
+
private updatePersistedSessionState;
|
|
493
|
+
/**
|
|
494
|
+
* Adopt the exact persisted snapshot that won a Goal-control CAS without
|
|
495
|
+
* discarding counters which the current run has advanced since its previous
|
|
496
|
+
* heartbeat. Merely copying the new stateRevision is unsafe: the next
|
|
497
|
+
* whole-state save would then be allowed to publish stale title/workspace
|
|
498
|
+
* metadata over a concurrent field-level writer.
|
|
499
|
+
*/
|
|
500
|
+
private rebaseActiveRunAfterGoalUpdate;
|
|
501
|
+
private persistGoalTerminal;
|
|
502
|
+
private persistGoalTerminalOutcome;
|
|
503
|
+
private persistFinalRunState;
|
|
504
|
+
private persistRunProgress;
|
|
433
505
|
getConfig(): EngineConfig;
|
|
434
506
|
/**
|
|
435
507
|
* Config hot-reload "layer 2": merge a disk-default config patch into this
|
|
@@ -453,7 +525,7 @@ export declare class Engine {
|
|
|
453
525
|
* the main user-visible preset effect and it IS hot. The toolRegistry's
|
|
454
526
|
* builtin tool SET, however, is ctor-frozen (and may be shared via runtime):
|
|
455
527
|
* it is NOT rebuilt here. So a preset change that alters the builtin tool set
|
|
456
|
-
* (e.g.
|
|
528
|
+
* (e.g. switching to a capability-contributed preset adds tools) only takes effect on the
|
|
457
529
|
* next session restart; we log a warning when that case is detected.
|
|
458
530
|
*
|
|
459
531
|
* disk-default-vs-slice caveat (#8): the patch carries pure DISK-default
|
|
@@ -480,28 +552,51 @@ export declare class Engine {
|
|
|
480
552
|
* Read a session's persisted active goal WITHOUT resuming it (cheap — reads
|
|
481
553
|
* only state.json via SessionManager.readActiveGoal). The desktop host calls
|
|
482
554
|
* this on session load to re-surface the goal block + its Cancel button: a
|
|
483
|
-
* persistent goal lives only in state.
|
|
555
|
+
* persistent goal lives only in state.goalLifecycle and is never replayed from
|
|
484
556
|
* the transcript, so after a reload of an aborted goal run the UI would
|
|
485
557
|
* otherwise show nothing (the "goal 还在但页面不显示、取消不了" bug). Returns
|
|
486
558
|
* undefined when the session is unknown or has no active goal.
|
|
487
559
|
*/
|
|
488
560
|
getGoal(sessionId: string): GoalConfig | undefined;
|
|
561
|
+
/** True when the current run was built with Goal prompt/tools and can resume in place. */
|
|
562
|
+
canResumeGoalInPlace(sessionId: string): boolean;
|
|
563
|
+
/**
|
|
564
|
+
* Edit or pause/resume a persisted goal. Mid-run edits use the same step-gap
|
|
565
|
+
* delivery seam as Steer: the current model/tool call is not aborted, and the
|
|
566
|
+
* updated objective is injected before the next model step. Pausing detaches
|
|
567
|
+
* the goal judge and stops this run before another model request is started.
|
|
568
|
+
*/
|
|
569
|
+
updateGoal(sessionId: string, patch: {
|
|
570
|
+
objective?: string;
|
|
571
|
+
paused?: boolean;
|
|
572
|
+
expectedGoalId?: string;
|
|
573
|
+
expectedRevision?: number;
|
|
574
|
+
}): GoalConfig | undefined;
|
|
489
575
|
/**
|
|
490
576
|
* Clear a session's persisted active goal (CC `/goal clear`). Works whether
|
|
491
577
|
* the session is idle or its goal run is in flight: it wipes
|
|
492
|
-
* `state.
|
|
578
|
+
* `state.goalLifecycle` (so the next bare send won't re-inherit it) and, if a
|
|
493
579
|
* goal hook is currently registered for this engine, unregisters it so an
|
|
494
580
|
* in-flight run can stop instead of being re-blocked by the now-cleared goal.
|
|
495
581
|
* Returns true if a goal was actually cleared. Idempotent — clearing a
|
|
496
582
|
* session with no active goal is a no-op returning false.
|
|
497
583
|
*/
|
|
498
|
-
clearGoal(sessionId: string
|
|
584
|
+
clearGoal(sessionId: string, expected?: {
|
|
585
|
+
goalId?: string;
|
|
586
|
+
revision?: number;
|
|
587
|
+
}): boolean;
|
|
588
|
+
/**
|
|
589
|
+
* Persist a workspace pointer through the Engine that owns the live bundle.
|
|
590
|
+
* Host-side workspace actions use this RPC-facing seam so advancing the disk
|
|
591
|
+
* revision also rebases the active run before its next progress write.
|
|
592
|
+
*/
|
|
593
|
+
setSessionWorkspace(sessionId: string, workspace: SessionWorkspace): SessionWorkspace | null;
|
|
499
594
|
/**
|
|
500
595
|
* Reset a session's workspace pointer back to its main root. If the session is
|
|
501
596
|
* actively running, mutate that live SessionBundle first so the run's next
|
|
502
597
|
* saveState cannot resurrect a stale worktree pointer.
|
|
503
598
|
*/
|
|
504
|
-
releaseSessionWorkspace(sessionId: string):
|
|
599
|
+
releaseSessionWorkspace(sessionId: string): SessionWorkspace | null;
|
|
505
600
|
injectContext(sessionId: string, content: string): void;
|
|
506
601
|
/**
|
|
507
602
|
* Force context compaction on a session.
|
|
@@ -512,7 +607,38 @@ export declare class Engine {
|
|
|
512
607
|
after: number;
|
|
513
608
|
strategy: "none (no active session)" | "no compaction needed" | "compacted" | CompactStrategy;
|
|
514
609
|
}>;
|
|
515
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Lazily build (or reuse) the ContextManager for a resumed session and wire a
|
|
612
|
+
* PRIMARY-model summarizeFn onto it. Shared by forceCompact and
|
|
613
|
+
* archiveTurnRange: both need a summarizer on a session that may have been
|
|
614
|
+
* resumed-but-never-run (so no run wired one), and both bill compaction usage
|
|
615
|
+
* against the session.
|
|
616
|
+
*
|
|
617
|
+
* The PRIMARY model is used deliberately — automatic background compaction
|
|
618
|
+
* routes to the cheap aux model, but a user-/host-initiated compaction or
|
|
619
|
+
* range archival is low-frequency and demands fidelity (a dropped decision =
|
|
620
|
+
* the conversation "forgets"). Client-construction failure is logged and
|
|
621
|
+
* swallowed so the caller degrades gracefully (forceSummarize falls back to
|
|
622
|
+
* snip/window; summarizeRange returns the input untouched).
|
|
623
|
+
*/
|
|
624
|
+
private prepareContextManagerForSession;
|
|
625
|
+
/**
|
|
626
|
+
* Archive a caller-chosen contiguous message-index window `[range.start,
|
|
627
|
+
* range.end)` of a session into a single anchored summary, leaving everything
|
|
628
|
+
* outside the window untouched, and cache the result so a later
|
|
629
|
+
* forceCompact/resume reads the archived history. This is a generic
|
|
630
|
+
* range-archival facade over ContextManager.summarizeRange — the caller
|
|
631
|
+
* decides which span to collapse (the range is a half-open message-index
|
|
632
|
+
* window, matching summarizeRange). Returns token stats before/after; equal
|
|
633
|
+
* before/after means the window was empty or the summary was rejected.
|
|
634
|
+
*/
|
|
635
|
+
archiveTurnRange(sessionId: string, range: {
|
|
636
|
+
start: number;
|
|
637
|
+
end: number;
|
|
638
|
+
}): Promise<{
|
|
639
|
+
before: number;
|
|
640
|
+
after: number;
|
|
641
|
+
}>;
|
|
516
642
|
private recordCacheReadDiagnostics;
|
|
517
643
|
private getSettingsManager;
|
|
518
644
|
/**
|
|
@@ -520,11 +646,10 @@ export declare class Engine {
|
|
|
520
646
|
*/
|
|
521
647
|
updateConfig(key: string, value: unknown): void;
|
|
522
648
|
/**
|
|
523
|
-
* Read a settings value by dotted key (e.g. "
|
|
649
|
+
* Read a settings value by dotted key (e.g. "capabilities.foo.enabled").
|
|
524
650
|
* Returns undefined if any segment is missing.
|
|
525
651
|
*/
|
|
526
652
|
readSetting(key: string): unknown;
|
|
527
|
-
private buildPermissionConfig;
|
|
528
653
|
/**
|
|
529
654
|
* Switch permission mode at runtime. Idle updates apply immediately; busy
|
|
530
655
|
* updates are committed atomically when the current run settles, so its
|
|
@@ -532,8 +657,6 @@ export declare class Engine {
|
|
|
532
657
|
* Session-only — does not persist to settings.
|
|
533
658
|
*/
|
|
534
659
|
setPermissionMode(mode: NonNullable<EngineConfig["permissionMode"]>): void;
|
|
535
|
-
private applyPermissionState;
|
|
536
|
-
private applyPendingPermissionState;
|
|
537
660
|
getPermissionMode(): NonNullable<EngineConfig["permissionMode"]>;
|
|
538
661
|
/**
|
|
539
662
|
* Extend the in-flight run's turn ceiling and/or goal budgets (TODO 3.1 —
|
|
@@ -614,64 +737,7 @@ export declare class Engine {
|
|
|
614
737
|
* overlays turn-specific fields like sandbox and subAgentSpawner) and
|
|
615
738
|
* by tests that want a ToolContext without a full run() cycle.
|
|
616
739
|
*/
|
|
617
|
-
|
|
618
|
-
private resolveSandboxConfigForCwd;
|
|
619
|
-
/**
|
|
620
|
-
* Build the shell env layered onto the Bash tool / background shells (see
|
|
621
|
-
* mergeShellEnv). Three user-configured sources, merged lowest → highest:
|
|
622
|
-
*
|
|
623
|
-
* 1. project `localEnvironment.env` — the per-project "local environment"
|
|
624
|
-
* panel (DATABASE_URL etc.); the floor, so a project's own panel values
|
|
625
|
-
* can be overridden by an explicit top-level `env`.
|
|
626
|
-
* 2. global top-level `env` — ~/.code-shell/settings.json; the
|
|
627
|
-
* canonical home for API keys (OPENAI_API_KEY) a skill script reads —
|
|
628
|
-
* configure once, every project's skills get it.
|
|
629
|
-
* 3. project top-level `env` — .code-shell/settings.json; a project
|
|
630
|
-
* that wants to override a global key wins.
|
|
631
|
-
*
|
|
632
|
-
* Each scope is read UNMERGED so the layering here is the single source of
|
|
633
|
-
* precedence (getForScope merges nothing). Returns undefined when no layer
|
|
634
|
-
* contributes a key, so the caller passes it through unchanged for projects
|
|
635
|
-
* that configure none.
|
|
636
|
-
*
|
|
637
|
-
* Sub-agents: a sub-agent is the user's OWN agent doing the user's work
|
|
638
|
-
* (mirrors Claude Code, where sub-agents inherit the parent environment), so
|
|
639
|
-
* it now reads the SAME env as the parent. The sub-agent branch is kept as an
|
|
640
|
-
* explicit seam (`filterSubagentEnv`) rather than removed — a future policy
|
|
641
|
-
* could narrow what a sub-agent sees (e.g. drop credential secrets) by
|
|
642
|
-
* changing that one hook; today it passes everything through unchanged.
|
|
643
|
-
* A no-cwd context still gets nothing (there is genuinely no project to read).
|
|
644
|
-
*
|
|
645
|
-
* None of these is filtered through the deny regex (mergeShellEnv): the user
|
|
646
|
-
* put them there deliberately. The allowlist/deny machinery only guards the
|
|
647
|
-
* host's process.env from a tainted model exfiltrating it via `env | curl`.
|
|
648
|
-
*/
|
|
649
|
-
private readShellEnv;
|
|
650
|
-
/**
|
|
651
|
-
* Policy seam for what a sub-agent's shell sees. A sub-agent inherits the
|
|
652
|
-
* parent environment by default (mirrors Claude Code), so this is the
|
|
653
|
-
* identity function today. It exists so a future policy can narrow the set
|
|
654
|
-
* (e.g. strip credential `exposeAsEnv` secrets, or allowlist by name) in ONE
|
|
655
|
-
* place instead of scattering `isSubAgent` checks through readShellEnv.
|
|
656
|
-
*/
|
|
657
|
-
private filterSubagentEnv;
|
|
658
|
-
/**
|
|
659
|
-
* Read the project's `localEnvironment.setupScripts` for this cwd (the raw
|
|
660
|
-
* per-platform map). Used by EnterWorktree to run setup once in a freshly
|
|
661
|
-
* created worktree. Returns undefined for sub-agents / no cwd (same minimal
|
|
662
|
-
* surface as readShellEnv). The platform selection + run live in
|
|
663
|
-
* git/worktree.ts; this only fetches the configured scripts.
|
|
664
|
-
*/
|
|
665
|
-
readWorktreeSetupScripts(cwd?: string): {
|
|
666
|
-
default?: string;
|
|
667
|
-
macos?: string;
|
|
668
|
-
linux?: string;
|
|
669
|
-
windows?: string;
|
|
670
|
-
} | undefined;
|
|
671
|
-
readWorktreeBranchPrefix(cwd?: string): string | undefined;
|
|
672
|
-
resolveWorktreeSetupSandbox(cwd: string): Promise<SandboxBackend | undefined>;
|
|
673
|
-
readWorktreeSetupShellEnv(cwd?: string): Record<string, string> | undefined;
|
|
674
|
-
buildToolContext(): ToolContext;
|
|
740
|
+
buildToolContext(cwd?: string, explicitProfileOverrides?: CapabilityOverrides, profileMemoryDir?: string): ToolContext;
|
|
675
741
|
/**
|
|
676
742
|
* Read settings.disabledSkills + settings.disabledPlugins in a single
|
|
677
743
|
* pass. Sub-agents skip both for the same reason they skip
|
|
@@ -713,11 +779,4 @@ export declare class Engine {
|
|
|
713
779
|
* falls back to its built-in defaults.
|
|
714
780
|
*/
|
|
715
781
|
private readMemoriesConfig;
|
|
716
|
-
/**
|
|
717
|
-
* LLM client for memory extraction (TODO 8.1). Prefers
|
|
718
|
-
* settings.memories.extractionModel when it names a valid pool model;
|
|
719
|
-
* otherwise falls back to the aux client (which itself falls back to the
|
|
720
|
-
* passed primary). Build failures fall back too — extraction is best-effort.
|
|
721
|
-
*/
|
|
722
|
-
private resolveExtractionClient;
|
|
723
782
|
}
|