@cjhyy/code-shell-core 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -23
- package/dist/agent/agent-definition-registry.d.ts +2 -2
- package/dist/agent/agent-definition-registry.js +47 -10
- package/dist/agent/agent-definition.d.ts +5 -0
- package/dist/agent/agent-definition.js +14 -0
- package/dist/automation/index.d.ts +7 -4
- package/dist/automation/index.js +4 -2
- package/dist/automation/runner.js +3 -1
- package/dist/automation/scheduler.d.ts +57 -1
- package/dist/automation/scheduler.js +123 -23
- package/dist/automation/store.d.ts +6 -2
- package/dist/automation/store.js +7 -3
- package/dist/capabilities/index.d.ts +109 -0
- package/dist/capabilities/index.js +80 -0
- package/dist/capability-control/disabled-lists.d.ts +2 -1
- package/dist/capability-control/disabled-lists.js +3 -5
- package/dist/capability-control/overlay.d.ts +14 -1
- package/dist/capability-control/overlay.js +40 -0
- package/dist/capability-control/service.js +6 -4
- package/dist/cli/agent-server-stdio.d.ts +1 -1
- package/dist/cli/agent-server-stdio.js +66 -6
- package/dist/cli/agent-server-tcp.js +20 -5
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +20 -4
- package/dist/context/manager.js +42 -7
- package/dist/context/token-counter.js +5 -3
- package/dist/context/tool-result-storage.d.ts +6 -0
- package/dist/context/tool-result-storage.js +25 -4
- package/dist/credentials/access.d.ts +13 -2
- package/dist/credentials/access.js +99 -4
- package/dist/credentials/index.d.ts +3 -2
- package/dist/credentials/index.js +2 -1
- package/dist/credentials/oauth.d.ts +9 -1
- package/dist/credentials/oauth.js +80 -1
- package/dist/credentials/store.d.ts +16 -2
- package/dist/credentials/store.js +33 -11
- package/dist/credentials/types.d.ts +62 -1
- package/dist/credentials/types.js +16 -1
- package/dist/credentials/use-credential-tool.js +15 -1
- package/dist/engine/auxiliary-pipeline.d.ts +40 -0
- package/dist/engine/auxiliary-pipeline.js +181 -0
- package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
- package/dist/{settings → engine}/disk-defaults.js +5 -2
- package/dist/engine/dynamic-tool-defs.d.ts +4 -0
- package/dist/engine/dynamic-tool-defs.js +4 -0
- package/dist/engine/engine.d.ts +272 -184
- package/dist/engine/engine.js +1869 -1864
- package/dist/engine/file-history-hook.d.ts +11 -0
- package/dist/engine/file-history-hook.js +31 -0
- package/dist/engine/goal-judge-context.d.ts +9 -0
- package/dist/engine/goal-judge-context.js +234 -0
- package/dist/engine/injected-context-cache.d.ts +6 -0
- package/dist/engine/injected-context-cache.js +13 -0
- package/dist/engine/input-attachments.d.ts +1 -1
- package/dist/engine/model-facade.d.ts +3 -3
- package/dist/engine/model-facade.js +15 -14
- package/dist/engine/permission-controller.d.ts +55 -0
- package/dist/engine/permission-controller.js +148 -0
- package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
- package/dist/engine/prompt-cache-diagnostics.js +178 -0
- package/dist/engine/run-accounting.d.ts +41 -0
- package/dist/engine/run-accounting.js +126 -0
- package/dist/engine/run-context.d.ts +44 -0
- package/dist/engine/run-context.js +88 -0
- package/dist/engine/run-environment.d.ts +30 -0
- package/dist/engine/run-environment.js +77 -0
- package/dist/engine/run-finalize.d.ts +58 -0
- package/dist/engine/run-finalize.js +245 -0
- package/dist/engine/run-goal.d.ts +58 -0
- package/dist/engine/run-goal.js +188 -0
- package/dist/engine/run-image-input.d.ts +1 -1
- package/dist/engine/run-image-input.js +5 -3
- package/dist/engine/run-session-open.d.ts +41 -0
- package/dist/engine/run-session-open.js +186 -0
- package/dist/engine/run-setup.d.ts +42 -0
- package/dist/engine/run-setup.js +58 -0
- package/dist/engine/run-tooling.d.ts +125 -0
- package/dist/engine/run-tooling.js +283 -0
- package/dist/engine/run-types.d.ts +139 -0
- package/dist/engine/run-types.js +12 -0
- package/dist/engine/run-workspace.d.ts +50 -0
- package/dist/engine/run-workspace.js +114 -0
- package/dist/engine/session-title.d.ts +2 -1
- package/dist/engine/session-title.js +4 -1
- package/dist/engine/steer-queue.d.ts +1 -1
- package/dist/engine/subagent-spawner.d.ts +32 -0
- package/dist/engine/subagent-spawner.js +287 -0
- package/dist/engine/tool-summary.d.ts +2 -2
- package/dist/engine/tool-summary.js +2 -2
- package/dist/engine/turn-loop.d.ts +67 -10
- package/dist/engine/turn-loop.js +538 -97
- package/dist/engine/types.d.ts +35 -4
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +26 -9
- package/dist/hooks/events.js +0 -3
- package/dist/hooks/goal-stop-hook.d.ts +28 -29
- package/dist/hooks/goal-stop-hook.js +344 -144
- package/dist/hooks/registry.js +4 -1
- package/dist/hooks/shell-runner.d.ts +12 -1
- package/dist/hooks/shell-runner.js +160 -9
- package/dist/index.d.ts +51 -110
- package/dist/index.extension.d.ts +51 -0
- package/dist/index.extension.js +39 -0
- package/dist/index.internal.d.ts +86 -0
- package/dist/index.internal.js +92 -0
- package/dist/index.js +37 -125
- package/dist/links/cli.d.ts +48 -0
- package/dist/links/cli.js +617 -0
- package/dist/links/http.d.ts +40 -0
- package/dist/links/http.js +166 -0
- package/dist/links/index.d.ts +4 -0
- package/dist/links/index.js +3 -0
- package/dist/links/link-action-tool.d.ts +5 -0
- package/dist/links/link-action-tool.js +241 -0
- package/dist/links/providers.d.ts +8 -0
- package/dist/links/providers.js +665 -0
- package/dist/links/types.d.ts +44 -0
- package/dist/llm/client-base.d.ts +7 -0
- package/dist/llm/client-base.js +72 -10
- package/dist/llm/model-pool.d.ts +1 -1
- package/dist/llm/model-pool.js +1 -1
- package/dist/llm/providers/anthropic.d.ts +1 -0
- package/dist/llm/providers/anthropic.js +9 -0
- package/dist/llm/providers/openai.d.ts +1 -0
- package/dist/llm/providers/openai.js +17 -0
- package/dist/llm/types.d.ts +12 -5
- package/dist/model-catalog/index.js +15 -2
- package/dist/model-catalog/resolve.d.ts +13 -1
- package/dist/model-catalog/resolve.js +37 -2
- package/dist/model-catalog/types.d.ts +74 -48
- package/dist/model-catalog/types.js +16 -5
- package/dist/model-catalog/upsert.d.ts +3 -1
- package/dist/model-catalog/upsert.js +9 -0
- package/dist/onboarding.d.ts +0 -1
- package/dist/onboarding.js +1 -22
- package/dist/panel-apps/bindings.d.ts +24 -0
- package/dist/panel-apps/bindings.js +69 -0
- package/dist/panel-apps/github-archive.d.ts +21 -0
- package/dist/panel-apps/github-archive.js +98 -0
- package/dist/panel-apps/index.d.ts +4 -0
- package/dist/panel-apps/index.js +4 -0
- package/dist/panel-apps/installer.d.ts +68 -0
- package/dist/panel-apps/installer.js +622 -0
- package/dist/panel-apps/manifest.d.ts +364 -0
- package/dist/panel-apps/manifest.js +189 -0
- package/dist/panel-apps/paths.d.ts +13 -0
- package/dist/panel-apps/paths.js +38 -0
- package/dist/panel-apps/registry.d.ts +51 -0
- package/dist/panel-apps/registry.js +99 -0
- package/dist/panel-apps/runtime.d.ts +80 -0
- package/dist/panel-apps/runtime.js +154 -0
- package/dist/plugins/gitOps.js +8 -1
- package/dist/plugins/installedPlugins.d.ts +2 -1
- package/dist/plugins/installedPlugins.js +146 -8
- package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
- package/dist/plugins/installer/codex/convertAgents.js +62 -8
- package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
- package/dist/plugins/installer/codex/convertCommands.js +35 -12
- package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
- package/dist/plugins/installer/codex/convertHooks.js +82 -0
- package/dist/plugins/installer/codex/convertSkills.js +41 -6
- package/dist/plugins/installer/install.d.ts +7 -1
- package/dist/plugins/installer/install.js +21 -87
- package/dist/plugins/installer/installFromArchive.d.ts +26 -4
- package/dist/plugins/installer/installFromArchive.js +44 -27
- package/dist/plugins/installer/installFromNpm.d.ts +31 -0
- package/dist/plugins/installer/installFromNpm.js +273 -0
- package/dist/plugins/installer/loadPluginAgents.js +17 -4
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +245 -35
- package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
- package/dist/plugins/installer/normalizeManifest.js +306 -0
- package/dist/plugins/installer/npmTar.d.ts +13 -0
- package/dist/plugins/installer/npmTar.js +321 -0
- package/dist/plugins/installer/parseSource.d.ts +11 -0
- package/dist/plugins/installer/parseSource.js +48 -0
- package/dist/plugins/installer/preview.d.ts +101 -0
- package/dist/plugins/installer/preview.js +336 -0
- package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
- package/dist/plugins/installer/projectPluginSource.js +140 -0
- package/dist/plugins/installer/types.d.ts +775 -0
- package/dist/plugins/installer/types.js +100 -0
- package/dist/plugins/installer/unzip.d.ts +11 -0
- package/dist/plugins/installer/unzip.js +123 -9
- package/dist/plugins/installer/update.d.ts +2 -2
- package/dist/plugins/installer/update.js +43 -4
- package/dist/plugins/loadPluginHooks.d.ts +19 -2
- package/dist/plugins/loadPluginHooks.js +97 -86
- package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
- package/dist/plugins/pluginAutomationTemplates.js +50 -0
- package/dist/plugins/pluginCatalog.d.ts +45 -0
- package/dist/plugins/pluginCatalog.js +87 -0
- package/dist/plugins/pluginCommandHook.d.ts +10 -4
- package/dist/plugins/pluginCommandHook.js +133 -18
- package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
- package/dist/plugins/pluginCommandsLoader.js +181 -7
- package/dist/plugins/pluginContent.d.ts +10 -1
- package/dist/plugins/pluginContent.js +87 -30
- package/dist/plugins/pluginHookApproval.d.ts +30 -0
- package/dist/plugins/pluginHookApproval.js +160 -0
- package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
- package/dist/plugins/pluginHookIntegrity.js +361 -0
- package/dist/plugins/pluginInstaller.js +71 -12
- package/dist/plugins/pluginMcpApproval.d.ts +19 -0
- package/dist/plugins/pluginMcpApproval.js +110 -0
- package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
- package/dist/plugins/pluginMcpIntegrity.js +74 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/varRewrite.d.ts +9 -5
- package/dist/plugins/varRewrite.js +26 -17
- package/dist/preset/index.d.ts +11 -8
- package/dist/preset/index.js +62 -203
- package/dist/product/define.js +9 -3
- package/dist/product/types.d.ts +0 -2
- package/dist/profile/activation.d.ts +36 -0
- package/dist/profile/activation.js +57 -0
- package/dist/profile/catalog-store.d.ts +77 -0
- package/dist/profile/catalog-store.js +346 -0
- package/dist/profile/catalog.d.ts +54 -0
- package/dist/profile/catalog.js +152 -0
- package/dist/profile/index.d.ts +7 -0
- package/dist/profile/index.js +7 -0
- package/dist/profile/requirements.d.ts +76 -0
- package/dist/profile/requirements.js +117 -0
- package/dist/profile/resolve.d.ts +11 -0
- package/dist/profile/resolve.js +41 -0
- package/dist/profile/store.d.ts +17 -0
- package/dist/profile/store.js +167 -0
- package/dist/profile/types.d.ts +321 -0
- package/dist/profile/types.js +104 -0
- package/dist/prompt/composer.d.ts +46 -7
- package/dist/prompt/composer.js +78 -48
- package/dist/prompt/instruction-scanner.d.ts +6 -5
- package/dist/prompt/instruction-scanner.js +8 -23
- package/dist/prompt/section-loader.d.ts +2 -2
- package/dist/prompt/section-loader.js +7 -4
- package/dist/prompt/sections/browser.md +10 -9
- package/dist/prompt/sections/harness-base.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +77 -3
- package/dist/protocol/chat-session-manager.js +194 -18
- package/dist/protocol/chat-session.d.ts +72 -9
- package/dist/protocol/chat-session.js +151 -16
- package/dist/protocol/client.d.ts +37 -4
- package/dist/protocol/client.js +118 -6
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +2 -2
- package/dist/protocol/mobile-remote-types.d.ts +406 -0
- package/dist/protocol/mobile-remote-types.js +1 -0
- package/dist/protocol/server.d.ts +152 -14
- package/dist/protocol/server.js +1574 -229
- package/dist/protocol/types.d.ts +182 -32
- package/dist/protocol/types.js +18 -0
- package/dist/run/ArtifactTracker.d.ts +6 -1
- package/dist/run/ArtifactTracker.js +29 -21
- package/dist/run/EngineRunner.d.ts +2 -0
- package/dist/run/EngineRunner.js +1 -0
- package/dist/run/RunManager.d.ts +26 -0
- package/dist/run/RunManager.js +82 -11
- package/dist/run/factory.d.ts +3 -0
- package/dist/run/factory.js +2 -0
- package/dist/runtime/safe-spawn.d.ts +6 -0
- package/dist/runtime/safe-spawn.js +8 -13
- package/dist/services/auto-dream.d.ts +13 -1
- package/dist/services/auto-dream.js +56 -8
- package/dist/services/dream-consolidation.d.ts +3 -0
- package/dist/services/dream-consolidation.js +14 -2
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.d.ts +34 -10
- package/dist/services/oauth.js +236 -98
- package/dist/services/session-memory.d.ts +4 -4
- package/dist/services/session-memory.js +13 -10
- package/dist/session/memory.d.ts +26 -7
- package/dist/session/memory.js +79 -21
- package/dist/session/session-manager.d.ts +208 -25
- package/dist/session/session-manager.js +1232 -116
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +76 -6
- package/dist/session/transcript.js +278 -7
- package/dist/settings/feature-flags.d.ts +40 -0
- package/dist/settings/feature-flags.js +40 -0
- package/dist/settings/manager.d.ts +39 -1
- package/dist/settings/manager.js +102 -41
- package/dist/settings/migrate-config.js +4 -2
- package/dist/settings/schema.d.ts +511 -177
- package/dist/settings/schema.js +98 -25
- package/dist/skills/scanner.d.ts +6 -2
- package/dist/skills/scanner.js +160 -9
- package/dist/sources/adapter.d.ts +14 -0
- package/dist/sources/adapter.js +7 -0
- package/dist/sources/adapters/local-files.d.ts +10 -0
- package/dist/sources/adapters/local-files.js +127 -0
- package/dist/sources/adapters/mcp-resource.d.ts +17 -0
- package/dist/sources/adapters/mcp-resource.js +41 -0
- package/dist/sources/adapters/mock.d.ts +3 -0
- package/dist/sources/adapters/mock.js +29 -0
- package/dist/sources/binding.d.ts +6 -0
- package/dist/sources/binding.js +24 -0
- package/dist/sources/catalog.d.ts +6 -0
- package/dist/sources/catalog.js +64 -0
- package/dist/sources/context-summary.d.ts +8 -0
- package/dist/sources/context-summary.js +13 -0
- package/dist/sources/credential-status.d.ts +2 -0
- package/dist/sources/credential-status.js +13 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/resolve.d.ts +28 -0
- package/dist/sources/resolve.js +47 -0
- package/dist/sources/truncate-utf8.d.ts +7 -0
- package/dist/sources/truncate-utf8.js +18 -0
- package/dist/sources/types.d.ts +71 -0
- package/dist/sources/types.js +26 -0
- package/dist/testing/fetch-stub.d.ts +32 -0
- package/dist/testing/fetch-stub.js +24 -0
- package/dist/themes/image.d.ts +18 -0
- package/dist/themes/image.js +117 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.js +4 -0
- package/dist/themes/installer.d.ts +50 -0
- package/dist/themes/installer.js +290 -0
- package/dist/themes/manifest.d.ts +102 -0
- package/dist/themes/manifest.js +86 -0
- package/dist/themes/paths.d.ts +14 -0
- package/dist/themes/paths.js +33 -0
- package/dist/tool-system/browser-bridge.d.ts +53 -11
- package/dist/tool-system/browser-bridge.js +8 -9
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
- package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
- package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
- package/dist/tool-system/builtin/agent-notifications.js +291 -101
- package/dist/tool-system/builtin/agent-output-file.js +1 -3
- package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
- package/dist/tool-system/builtin/agent-progress.js +83 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
- package/dist/tool-system/builtin/agent-registry.js +178 -9
- package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
- package/dist/tool-system/builtin/agent.d.ts +2 -0
- package/dist/tool-system/builtin/agent.js +279 -34
- package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
- package/dist/tool-system/builtin/background-jobs.js +111 -15
- package/dist/tool-system/builtin/background-work.d.ts +12 -1
- package/dist/tool-system/builtin/background-work.js +12 -1
- package/dist/tool-system/builtin/bash.d.ts +3 -5
- package/dist/tool-system/builtin/bash.js +14 -6
- package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
- package/dist/tool-system/builtin/browser-tools.js +89 -23
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
- package/dist/tool-system/builtin/edit.d.ts +2 -1
- package/dist/tool-system/builtin/edit.js +14 -10
- package/dist/tool-system/builtin/file-cache.d.ts +2 -0
- package/dist/tool-system/builtin/file-cache.js +4 -0
- package/dist/tool-system/builtin/generate-image.js +17 -10
- package/dist/tool-system/builtin/generate-video.d.ts +4 -0
- package/dist/tool-system/builtin/generate-video.js +164 -28
- package/dist/tool-system/builtin/glob.d.ts +2 -1
- package/dist/tool-system/builtin/glob.js +28 -3
- package/dist/tool-system/builtin/grep.d.ts +1 -0
- package/dist/tool-system/builtin/grep.js +82 -17
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +57 -18
- package/dist/tool-system/builtin/index.js +280 -167
- package/dist/tool-system/builtin/memory.d.ts +6 -0
- package/dist/tool-system/builtin/memory.js +36 -15
- package/dist/tool-system/builtin/panel.d.ts +9 -0
- package/dist/tool-system/builtin/panel.js +314 -0
- package/dist/tool-system/builtin/read.js +5 -1
- package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
- package/dist/tool-system/builtin/send-message-to-session.js +67 -0
- package/dist/tool-system/builtin/sources.d.ts +8 -0
- package/dist/tool-system/builtin/sources.js +137 -0
- package/dist/tool-system/builtin/tool-search.js +7 -2
- package/dist/tool-system/builtin/update-automation-memory.js +2 -0
- package/dist/tool-system/builtin/video-providers.d.ts +12 -15
- package/dist/tool-system/builtin/video-providers.js +1 -0
- package/dist/tool-system/builtin/view-image.d.ts +2 -2
- package/dist/tool-system/builtin/web-fetch.js +60 -15
- package/dist/tool-system/builtin/web-search.js +1 -3
- package/dist/tool-system/builtin/write.d.ts +2 -1
- package/dist/tool-system/builtin/write.js +14 -4
- package/dist/tool-system/capability-module.d.ts +93 -0
- package/dist/tool-system/capability-module.js +53 -0
- package/dist/tool-system/context.d.ts +94 -24
- package/dist/tool-system/executor.js +99 -58
- package/dist/tool-system/external-tool-exposure.d.ts +60 -0
- package/dist/tool-system/external-tool-exposure.js +304 -0
- package/dist/tool-system/mcp-manager.d.ts +17 -1
- package/dist/tool-system/mcp-manager.js +72 -7
- package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
- package/dist/tool-system/mcp-tool-policy.js +34 -0
- package/dist/tool-system/panel-bridge.d.ts +53 -0
- package/dist/tool-system/panel-bridge.js +1 -0
- package/dist/tool-system/path-policy.d.ts +19 -0
- package/dist/tool-system/path-policy.js +62 -1
- package/dist/tool-system/permission.d.ts +69 -3
- package/dist/tool-system/permission.js +429 -30
- package/dist/tool-system/registry.d.ts +15 -3
- package/dist/tool-system/registry.js +82 -40
- package/dist/tool-system/sandbox/index.js +3 -8
- package/dist/tool-system/sandbox/seatbelt.js +2 -6
- package/dist/tool-system/session-tool-host.d.ts +139 -0
- package/dist/tool-system/session-tool-host.js +167 -0
- package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
- package/dist/tool-system/testing/tool-registry-harness.js +51 -0
- package/dist/tool-system/validation.d.ts +14 -7
- package/dist/tool-system/validation.js +701 -7
- package/dist/types.d.ts +201 -20
- package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
- package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
- package/dist/utils/file-mutex.d.ts +65 -0
- package/dist/utils/file-mutex.js +145 -0
- package/dist/utils/json.d.ts +2 -4
- package/dist/utils/json.js +2 -4
- package/dist/utils/lockfile.d.ts +30 -1
- package/dist/utils/lockfile.js +2 -2
- package/dist/utils/secret-scrubber.d.ts +8 -0
- package/dist/utils/secret-scrubber.js +227 -0
- package/dist/utils/toolDisplay.js +1 -1
- package/package.json +20 -5
- package/THIRD_PARTY_NOTICES.md +0 -206
- package/dist/arena/arena.d.ts +0 -43
- package/dist/arena/arena.js +0 -333
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/context/context-tools.js +0 -272
- package/dist/arena/context/within-root.d.ts +0 -7
- package/dist/arena/context/within-root.js +0 -15
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/detect-mode.js +0 -78
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/digest-builder.js +0 -120
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -29
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/convergence.js +0 -103
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/formats/index.js +0 -283
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/index.js +0 -9
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/iterative-arena.js +0 -237
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/parse.js +0 -123
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/argue.js +0 -165
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/revise.js +0 -62
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/phases/tournament.js +0 -113
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/tools/web-tools.js +0 -54
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/iterate/types.js +0 -8
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/ledger.js +0 -159
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/architecture.js +0 -22
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/engineering.js +0 -22
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/general.js +0 -20
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/index.js +0 -47
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/lenses/product.js +0 -22
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/model-presets.js +0 -44
- package/dist/arena/phases/adjudication.d.ts +0 -24
- package/dist/arena/phases/adjudication.js +0 -141
- package/dist/arena/phases/build-consensus.d.ts +0 -29
- package/dist/arena/phases/build-consensus.js +0 -83
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/claim-registry.js +0 -60
- package/dist/arena/phases/cross-review.d.ts +0 -45
- package/dist/arena/phases/cross-review.js +0 -218
- package/dist/arena/phases/debate-rounds.d.ts +0 -27
- package/dist/arena/phases/debate-rounds.js +0 -159
- package/dist/arena/phases/participant-research.d.ts +0 -38
- package/dist/arena/phases/participant-research.js +0 -314
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
- package/dist/arena/phases/planning-detail-expansion.js +0 -119
- package/dist/arena/planner.d.ts +0 -27
- package/dist/arena/planner.js +0 -311
- package/dist/arena/providers/docs.d.ts +0 -7
- package/dist/arena/providers/docs.js +0 -111
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/git.js +0 -174
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/index.js +0 -132
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/none.js +0 -11
- package/dist/arena/providers/repo.d.ts +0 -7
- package/dist/arena/providers/repo.js +0 -258
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/session.js +0 -190
- package/dist/arena/render/terminal.d.ts +0 -34
- package/dist/arena/render/terminal.js +0 -286
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/discussion.js +0 -143
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/index.js +0 -28
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/language-wrapper.js +0 -102
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/lens-wrapper.js +0 -236
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/planning.js +0 -225
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/review.js +0 -168
- package/dist/arena/strategies/utils.d.ts +0 -36
- package/dist/arena/strategies/utils.js +0 -603
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/tools/selector.js +0 -61
- package/dist/arena/transitions.d.ts +0 -53
- package/dist/arena/transitions.js +0 -97
- package/dist/arena/types.d.ts +0 -514
- package/dist/arena/types.js +0 -27
- package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
- package/dist/cc-orchestrator/agent-adapter.js +0 -143
- package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
- package/dist/cc-orchestrator/cc-capability.js +0 -53
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
- package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
- package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
- package/dist/cc-orchestrator/codex-session-history.js +0 -247
- package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
- package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
- package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-changes.js +0 -231
- package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-driver.js +0 -284
- package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
- package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
- package/dist/cc-orchestrator/index.d.ts +0 -8
- package/dist/cc-orchestrator/index.js +0 -8
- package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
- package/dist/cc-orchestrator/relevance-judge.js +0 -29
- package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
- package/dist/cc-orchestrator/session-discovery.js +0 -125
- package/dist/cc-orchestrator/session-history.d.ts +0 -54
- package/dist/cc-orchestrator/session-history.js +0 -150
- package/dist/cron/cron-runtime.d.ts +0 -2
- package/dist/cron/cron-runtime.js +0 -2
- package/dist/cron/cron-store.d.ts +0 -2
- package/dist/cron/cron-store.js +0 -2
- package/dist/cron/scheduler.d.ts +0 -7
- package/dist/cron/scheduler.js +0 -7
- package/dist/engine/goal.js +0 -206
- package/dist/external-agents/config.d.ts +0 -2
- package/dist/external-agents/config.js +0 -15
- package/dist/external-agents/types.d.ts +0 -31
- package/dist/git/parse-log.d.ts +0 -13
- package/dist/git/parse-log.js +0 -21
- package/dist/git/utils.d.ts +0 -49
- package/dist/git/utils.js +0 -161
- package/dist/git/worktree/crud.d.ts +0 -69
- package/dist/git/worktree/crud.js +0 -206
- package/dist/git/worktree/diff.d.ts +0 -14
- package/dist/git/worktree/diff.js +0 -82
- package/dist/git/worktree/git-exec.d.ts +0 -7
- package/dist/git/worktree/git-exec.js +0 -51
- package/dist/git/worktree/index.d.ts +0 -5
- package/dist/git/worktree/index.js +0 -5
- package/dist/git/worktree/query.d.ts +0 -42
- package/dist/git/worktree/query.js +0 -121
- package/dist/git/worktree/slug.d.ts +0 -11
- package/dist/git/worktree/slug.js +0 -58
- package/dist/git/worktree.d.ts +0 -1
- package/dist/git/worktree.js +0 -5
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/client.js +0 -186
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/manager.js +0 -155
- package/dist/lsp/root-path.d.ts +0 -9
- package/dist/lsp/root-path.js +0 -12
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/lsp/servers.js +0 -60
- package/dist/prompt/sections/coding.md +0 -35
- package/dist/quota/credentials.d.ts +0 -3
- package/dist/quota/credentials.js +0 -80
- package/dist/quota/index.d.ts +0 -36
- package/dist/quota/index.js +0 -155
- package/dist/quota/types.d.ts +0 -48
- package/dist/quota/types.js +0 -13
- package/dist/review/review-prompt.d.ts +0 -28
- package/dist/review/review-prompt.js +0 -81
- package/dist/state.d.ts +0 -160
- package/dist/state.js +0 -267
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
- package/dist/tool-system/builtin/apply-patch/index.js +0 -105
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/apply-patch/types.js +0 -13
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/arena.js +0 -415
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/brief.js +0 -41
- package/dist/tool-system/builtin/check-quota.d.ts +0 -15
- package/dist/tool-system/builtin/check-quota.js +0 -34
- package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
- package/dist/tool-system/builtin/drive-claude-code.js +0 -698
- package/dist/tool-system/builtin/lsp.d.ts +0 -7
- package/dist/tool-system/builtin/lsp.js +0 -144
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -127
- package/dist/tool-system/builtin/worktree.d.ts +0 -11
- package/dist/tool-system/builtin/worktree.js +0 -345
- /package/dist/{external-agents → links}/types.js +0 -0
- /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
- /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mobile remote wire-protocol DTOs (pairing / rooms / attachments / CC rooms).
|
|
3
|
+
* Moved here from @cjhyy/code-shell-server so that client packages (web) can
|
|
4
|
+
* consume the protocol contract without depending on the server implementation
|
|
5
|
+
* package — this file must stay pure types (no runtime code).
|
|
6
|
+
*/
|
|
7
|
+
import type { PermissionMode as CorePermissionMode } from "../types.js";
|
|
8
|
+
/** Permission modes supported by the mobile remote wire protocol. */
|
|
9
|
+
export type MobileRemotePermissionMode = Extract<CorePermissionMode, "default" | "acceptEdits" | "bypassPermissions">;
|
|
10
|
+
type PermissionMode = MobileRemotePermissionMode;
|
|
11
|
+
export interface TrustedDevice {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
secretHash: string;
|
|
15
|
+
createdAt: number;
|
|
16
|
+
lastSeenAt?: number;
|
|
17
|
+
revokedAt?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface TrustedDevicePublic {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
createdAt: number;
|
|
23
|
+
lastSeenAt?: number;
|
|
24
|
+
revokedAt?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PairingToken {
|
|
27
|
+
value: string;
|
|
28
|
+
expiresAt: number;
|
|
29
|
+
}
|
|
30
|
+
/** Where a remembered permission grant applies (mirrors desktop approve). */
|
|
31
|
+
export type ApprovalScope = "once" | "session" | "project";
|
|
32
|
+
/** Path breadth for a remembered grant (path-scoped tools only). */
|
|
33
|
+
export type ApprovalPathScope = "file" | "dir" | "tool";
|
|
34
|
+
/** Mirror of core DiscoveredSession (mobile-remote can't import core). */
|
|
35
|
+
export interface CcDiscoveredSession {
|
|
36
|
+
sessionId: string;
|
|
37
|
+
/** External CLI's authoritative cwd. Older hosts may omit it. */
|
|
38
|
+
cwd?: string;
|
|
39
|
+
firstMessage: string;
|
|
40
|
+
lastModified: number;
|
|
41
|
+
messageCount: number;
|
|
42
|
+
}
|
|
43
|
+
/** Mirror of core HistoryMessage. */
|
|
44
|
+
export interface CcHistoryMessage {
|
|
45
|
+
role: "user" | "assistant";
|
|
46
|
+
text: string;
|
|
47
|
+
tools?: {
|
|
48
|
+
name: string;
|
|
49
|
+
summary: string;
|
|
50
|
+
args?: Record<string, unknown>;
|
|
51
|
+
}[];
|
|
52
|
+
ts?: number;
|
|
53
|
+
}
|
|
54
|
+
/** Mirror of cc-room ApprovalDecision. `answer` carries the user's
|
|
55
|
+
* AskUserQuestion choice (string; multiSelect joins labels with ", "). */
|
|
56
|
+
export type CcApprovalDecision = {
|
|
57
|
+
behavior: "allow";
|
|
58
|
+
updatedInput?: unknown;
|
|
59
|
+
answer?: string;
|
|
60
|
+
} | {
|
|
61
|
+
behavior: "deny";
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
export interface MobilePermissionModeSnapshotEntry {
|
|
65
|
+
sessionId: string;
|
|
66
|
+
mode: PermissionMode;
|
|
67
|
+
}
|
|
68
|
+
export interface MobileProjectMeta {
|
|
69
|
+
path: string;
|
|
70
|
+
name: string;
|
|
71
|
+
addedAt?: number;
|
|
72
|
+
pinned?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export type MobileImageMime = "image/png" | "image/jpeg" | "image/webp" | "image/gif";
|
|
75
|
+
export interface MobileImageBase {
|
|
76
|
+
clientId: string;
|
|
77
|
+
name: string;
|
|
78
|
+
mime: MobileImageMime;
|
|
79
|
+
size: number;
|
|
80
|
+
}
|
|
81
|
+
export type MobileImageAttachment = (MobileImageBase & {
|
|
82
|
+
transport: "inline";
|
|
83
|
+
dataUrl: string;
|
|
84
|
+
}) | (MobileImageBase & {
|
|
85
|
+
transport: "upload";
|
|
86
|
+
uploadId: string;
|
|
87
|
+
});
|
|
88
|
+
export type MobileAttachmentSummary = MobileImageBase;
|
|
89
|
+
export type MobileClientEvent = {
|
|
90
|
+
type: "auth.device";
|
|
91
|
+
deviceId: string;
|
|
92
|
+
secretHash: string;
|
|
93
|
+
} | {
|
|
94
|
+
type: "pair.complete";
|
|
95
|
+
token: string;
|
|
96
|
+
name: string;
|
|
97
|
+
secretHash: string;
|
|
98
|
+
} | {
|
|
99
|
+
type: "chat.send";
|
|
100
|
+
text: string;
|
|
101
|
+
sessionId?: string;
|
|
102
|
+
clientMessageId?: string;
|
|
103
|
+
attachments?: MobileImageAttachment[];
|
|
104
|
+
} | {
|
|
105
|
+
type: "attachment.upload.begin";
|
|
106
|
+
clientId: string;
|
|
107
|
+
name: string;
|
|
108
|
+
mime: string;
|
|
109
|
+
size: number;
|
|
110
|
+
} | {
|
|
111
|
+
type: "session.select";
|
|
112
|
+
sessionId: string;
|
|
113
|
+
} | {
|
|
114
|
+
type: "session.create";
|
|
115
|
+
cwd?: string | null;
|
|
116
|
+
name?: string;
|
|
117
|
+
} | {
|
|
118
|
+
type: "run.stop";
|
|
119
|
+
sessionId?: string;
|
|
120
|
+
} | {
|
|
121
|
+
type: "approval.respond";
|
|
122
|
+
approvalId: string;
|
|
123
|
+
decision: "approve" | "reject";
|
|
124
|
+
sessionId?: string;
|
|
125
|
+
reason?: string;
|
|
126
|
+
answer?: string;
|
|
127
|
+
scope?: ApprovalScope;
|
|
128
|
+
pathScope?: ApprovalPathScope;
|
|
129
|
+
} | {
|
|
130
|
+
type: "session.list";
|
|
131
|
+
} | {
|
|
132
|
+
type: "session.history";
|
|
133
|
+
sessionId: string;
|
|
134
|
+
} | {
|
|
135
|
+
type: "session.sync";
|
|
136
|
+
sessionId: string;
|
|
137
|
+
sinceSeq?: number;
|
|
138
|
+
} | {
|
|
139
|
+
type: "permission.setMode";
|
|
140
|
+
sessionId?: string;
|
|
141
|
+
mode: PermissionMode;
|
|
142
|
+
} | {
|
|
143
|
+
type: "model.set";
|
|
144
|
+
model: string;
|
|
145
|
+
} | {
|
|
146
|
+
type: "goal.extend";
|
|
147
|
+
sessionId: string;
|
|
148
|
+
addTurns?: number;
|
|
149
|
+
addTokenBudget?: number;
|
|
150
|
+
addTimeBudgetMs?: number;
|
|
151
|
+
addStopBlocks?: number;
|
|
152
|
+
} | {
|
|
153
|
+
type: "goal.clear";
|
|
154
|
+
sessionId: string;
|
|
155
|
+
} | {
|
|
156
|
+
type: "room.list";
|
|
157
|
+
} | {
|
|
158
|
+
type: "room.projects";
|
|
159
|
+
} | {
|
|
160
|
+
type: "room.create";
|
|
161
|
+
name?: string;
|
|
162
|
+
cwd: string;
|
|
163
|
+
kind?: "claude-code" | "codex";
|
|
164
|
+
permissionMode?: "default" | "acceptEdits" | "bypassPermissions";
|
|
165
|
+
} | {
|
|
166
|
+
type: "room.open";
|
|
167
|
+
roomId: string;
|
|
168
|
+
} | {
|
|
169
|
+
type: "room.close";
|
|
170
|
+
roomId: string;
|
|
171
|
+
} | {
|
|
172
|
+
type: "room.send";
|
|
173
|
+
roomId: string;
|
|
174
|
+
text: string;
|
|
175
|
+
clientMessageId?: string;
|
|
176
|
+
attachments?: MobileImageAttachment[];
|
|
177
|
+
} | {
|
|
178
|
+
type: "room.history";
|
|
179
|
+
roomId: string;
|
|
180
|
+
sinceSeq?: number;
|
|
181
|
+
} | {
|
|
182
|
+
type: "ccRoom.probe";
|
|
183
|
+
force?: boolean;
|
|
184
|
+
kind?: "claude-code" | "codex";
|
|
185
|
+
} | {
|
|
186
|
+
type: "ccRoom.listSessions";
|
|
187
|
+
cwd: string;
|
|
188
|
+
kind?: "claude-code" | "codex";
|
|
189
|
+
} | {
|
|
190
|
+
type: "ccRoom.openSession";
|
|
191
|
+
sessionId: string;
|
|
192
|
+
cwd: string;
|
|
193
|
+
mode: PermissionMode;
|
|
194
|
+
kind?: "claude-code" | "codex";
|
|
195
|
+
} | {
|
|
196
|
+
type: "ccRoom.subscribeTranscript";
|
|
197
|
+
roomId: string;
|
|
198
|
+
sessionId: string;
|
|
199
|
+
cwd: string;
|
|
200
|
+
limit: number;
|
|
201
|
+
kind?: "claude-code" | "codex";
|
|
202
|
+
} | {
|
|
203
|
+
type: "ccRoom.unsubscribeTranscript";
|
|
204
|
+
roomId: string;
|
|
205
|
+
} | {
|
|
206
|
+
type: "ccRoom.readHistory";
|
|
207
|
+
cwd: string;
|
|
208
|
+
sessionId: string;
|
|
209
|
+
limit: number;
|
|
210
|
+
kind?: "claude-code" | "codex";
|
|
211
|
+
} | {
|
|
212
|
+
type: "ccRoom.respondApproval";
|
|
213
|
+
roomId: string;
|
|
214
|
+
requestId: string;
|
|
215
|
+
decision: CcApprovalDecision;
|
|
216
|
+
};
|
|
217
|
+
export type MobileServerEvent = {
|
|
218
|
+
type: "auth.ok";
|
|
219
|
+
device: TrustedDevicePublic;
|
|
220
|
+
} | {
|
|
221
|
+
type: "auth.failed";
|
|
222
|
+
message: string;
|
|
223
|
+
} | {
|
|
224
|
+
type: "pair.ok";
|
|
225
|
+
device: TrustedDevicePublic;
|
|
226
|
+
} | {
|
|
227
|
+
type: "pair.failed";
|
|
228
|
+
message: string;
|
|
229
|
+
} | {
|
|
230
|
+
type: "chat.accepted";
|
|
231
|
+
sessionId?: string;
|
|
232
|
+
cwd?: string | null;
|
|
233
|
+
clientMessageId?: string;
|
|
234
|
+
attachments?: MobileAttachmentSummary[];
|
|
235
|
+
} | {
|
|
236
|
+
type: "room.accepted";
|
|
237
|
+
roomId: string;
|
|
238
|
+
clientMessageId: string;
|
|
239
|
+
} | {
|
|
240
|
+
type: "attachment.upload.ready";
|
|
241
|
+
clientId: string;
|
|
242
|
+
uploadId: string;
|
|
243
|
+
putUrl: string;
|
|
244
|
+
expiresAt: number;
|
|
245
|
+
} | {
|
|
246
|
+
type: "attachment.upload.failed";
|
|
247
|
+
clientId: string;
|
|
248
|
+
message: string;
|
|
249
|
+
} | {
|
|
250
|
+
type: "approval.request";
|
|
251
|
+
approvalId: string;
|
|
252
|
+
title: string;
|
|
253
|
+
risk: "low" | "medium" | "high";
|
|
254
|
+
body: string;
|
|
255
|
+
} | {
|
|
256
|
+
type: "approval.resolved";
|
|
257
|
+
approvalId: string;
|
|
258
|
+
sessionId?: string;
|
|
259
|
+
approved?: boolean;
|
|
260
|
+
} | {
|
|
261
|
+
type: "error";
|
|
262
|
+
message: string;
|
|
263
|
+
clientMessageId?: string;
|
|
264
|
+
} | {
|
|
265
|
+
type: "session.list.ok";
|
|
266
|
+
sessions: MobileSessionMeta[];
|
|
267
|
+
activeSessionId?: string;
|
|
268
|
+
} | {
|
|
269
|
+
type: "session.history.ok";
|
|
270
|
+
sessionId: string;
|
|
271
|
+
events: unknown[];
|
|
272
|
+
} | {
|
|
273
|
+
type: "session.snapshot";
|
|
274
|
+
sessionId: string;
|
|
275
|
+
entries: Array<{
|
|
276
|
+
seq: number;
|
|
277
|
+
event: unknown;
|
|
278
|
+
}>;
|
|
279
|
+
nextSeq: number;
|
|
280
|
+
} | {
|
|
281
|
+
type: "session.stream";
|
|
282
|
+
sessionId: string;
|
|
283
|
+
seq: number;
|
|
284
|
+
event: unknown;
|
|
285
|
+
} | {
|
|
286
|
+
type: "permission.mode";
|
|
287
|
+
sessionId?: string;
|
|
288
|
+
mode: PermissionMode;
|
|
289
|
+
} | {
|
|
290
|
+
type: "model.current";
|
|
291
|
+
model: string;
|
|
292
|
+
available?: string[];
|
|
293
|
+
} | {
|
|
294
|
+
type: "goal.extended";
|
|
295
|
+
sessionId: string;
|
|
296
|
+
ok: boolean;
|
|
297
|
+
message?: string;
|
|
298
|
+
} | {
|
|
299
|
+
type: "goal.cleared";
|
|
300
|
+
sessionId: string;
|
|
301
|
+
ok: boolean;
|
|
302
|
+
cleared?: boolean;
|
|
303
|
+
message?: string;
|
|
304
|
+
} | {
|
|
305
|
+
type: "room.list.ok";
|
|
306
|
+
rooms: RoomPublic[];
|
|
307
|
+
} | {
|
|
308
|
+
type: "room.projects.ok";
|
|
309
|
+
projects: MobileProjectMeta[];
|
|
310
|
+
} | {
|
|
311
|
+
type: "room.opened";
|
|
312
|
+
roomId: string;
|
|
313
|
+
status: "running" | "missing" | "observing";
|
|
314
|
+
} | {
|
|
315
|
+
type: "room.message";
|
|
316
|
+
roomId: string;
|
|
317
|
+
msg: unknown;
|
|
318
|
+
} | {
|
|
319
|
+
type: "room.history.ok";
|
|
320
|
+
roomId: string;
|
|
321
|
+
messages: unknown[];
|
|
322
|
+
latestSeq: number;
|
|
323
|
+
} | {
|
|
324
|
+
type: "room.closed";
|
|
325
|
+
roomId: string;
|
|
326
|
+
} | {
|
|
327
|
+
type: "room.error";
|
|
328
|
+
roomId?: string;
|
|
329
|
+
message: string;
|
|
330
|
+
clientMessageId?: string;
|
|
331
|
+
} | {
|
|
332
|
+
type: "ccRoom.approvalRequest";
|
|
333
|
+
roomId: string;
|
|
334
|
+
req: {
|
|
335
|
+
requestId: string;
|
|
336
|
+
toolName: string;
|
|
337
|
+
displayName?: string;
|
|
338
|
+
input: unknown;
|
|
339
|
+
description?: string;
|
|
340
|
+
/** AskUserQuestion only: parsed prompt + option labels for a choice card. */
|
|
341
|
+
askUser?: {
|
|
342
|
+
question: string;
|
|
343
|
+
header?: string;
|
|
344
|
+
options: string[];
|
|
345
|
+
multiSelect: boolean;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
} | {
|
|
349
|
+
type: "ccRoom.probe.ok";
|
|
350
|
+
available: boolean;
|
|
351
|
+
command?: string;
|
|
352
|
+
version?: string;
|
|
353
|
+
reason?: "not-found" | "not-executable";
|
|
354
|
+
kind: "claude-code" | "codex";
|
|
355
|
+
} | {
|
|
356
|
+
type: "ccRoom.listSessions.ok";
|
|
357
|
+
cwd: string;
|
|
358
|
+
sessions: CcDiscoveredSession[];
|
|
359
|
+
kind: "claude-code" | "codex";
|
|
360
|
+
} | {
|
|
361
|
+
type: "ccRoom.opened";
|
|
362
|
+
roomId: string;
|
|
363
|
+
sessionId: string;
|
|
364
|
+
status: "running" | "missing" | "observing";
|
|
365
|
+
} | {
|
|
366
|
+
type: "ccRoom.transcriptSubscribed";
|
|
367
|
+
roomId: string;
|
|
368
|
+
sessionId: string;
|
|
369
|
+
active: boolean;
|
|
370
|
+
messages: CcHistoryMessage[];
|
|
371
|
+
hasMore: boolean;
|
|
372
|
+
totalCount: number;
|
|
373
|
+
roomCursor: number;
|
|
374
|
+
} | {
|
|
375
|
+
type: "ccRoom.readHistory.ok";
|
|
376
|
+
sessionId: string;
|
|
377
|
+
messages: CcHistoryMessage[];
|
|
378
|
+
hasMore: boolean;
|
|
379
|
+
totalCount: number;
|
|
380
|
+
} | {
|
|
381
|
+
type: "ccRoom.approvalResolved";
|
|
382
|
+
roomId: string;
|
|
383
|
+
requestId: string;
|
|
384
|
+
decision: CcApprovalDecision;
|
|
385
|
+
};
|
|
386
|
+
export interface RoomPublic {
|
|
387
|
+
id: string;
|
|
388
|
+
name: string;
|
|
389
|
+
cwd: string;
|
|
390
|
+
kind: "claude-code" | "codex";
|
|
391
|
+
permissionMode: "default" | "acceptEdits" | "bypassPermissions";
|
|
392
|
+
createdAt: number;
|
|
393
|
+
lastActiveAt: number;
|
|
394
|
+
open: boolean;
|
|
395
|
+
/** True when the room is bound for transcript observation and cannot send. */
|
|
396
|
+
observing: boolean;
|
|
397
|
+
}
|
|
398
|
+
/** A desktop session the phone can see + drive (from listDiskSessions). */
|
|
399
|
+
export interface MobileSessionMeta {
|
|
400
|
+
id: string;
|
|
401
|
+
title: string;
|
|
402
|
+
cwd: string;
|
|
403
|
+
updatedAt: number;
|
|
404
|
+
origin: "desktop" | "automation";
|
|
405
|
+
}
|
|
406
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -16,7 +16,18 @@
|
|
|
16
16
|
import type { Transport } from "./transport.js";
|
|
17
17
|
import type { Engine } from "../engine/engine.js";
|
|
18
18
|
import type { ValidatedSettings } from "../settings/schema.js";
|
|
19
|
+
import { type ApprovalRouter } from "../tool-system/permission.js";
|
|
19
20
|
import type { ChatSessionManager } from "./chat-session-manager.js";
|
|
21
|
+
import type { ExtensionModule } from "../tool-system/capability-module.js";
|
|
22
|
+
/**
|
|
23
|
+
* Why a host-loopback request (Panel / Browser / workspace / credential) ended
|
|
24
|
+
* without a result. These four used to collapse into one string — "declined or
|
|
25
|
+
* unavailable" — so a Stop, a closed session, and an actual user denial were
|
|
26
|
+
* indistinguishable to the calling tool and therefore to the model.
|
|
27
|
+
*/
|
|
28
|
+
export type HostLoopbackFailure = "denied" | "cancelled" | "session_closed" | "owner_lost" | "timed_out"
|
|
29
|
+
/** The host replied, but with something that wasn't parseable JSON. */
|
|
30
|
+
| "malformed";
|
|
20
31
|
export interface AgentServerOptions {
|
|
21
32
|
/**
|
|
22
33
|
* Multi-session manager. Required for the new multi-session protocol.
|
|
@@ -49,16 +60,69 @@ export interface AgentServerOptions {
|
|
|
49
60
|
* mode already reads disk via the engine, and tests that don't exercise the
|
|
50
61
|
* reopened-session path can omit it.
|
|
51
62
|
*/
|
|
52
|
-
readActiveGoalFromDisk?: (sessionId: string) => import("../
|
|
63
|
+
readActiveGoalFromDisk?: (sessionId: string) => import("../goal/lifecycle.js").GoalConfig | undefined;
|
|
64
|
+
/** Disk controls for a persisted goal whose ChatSession is not live. */
|
|
65
|
+
updateActiveGoalOnDisk?: (sessionId: string, patch: {
|
|
66
|
+
objective?: string;
|
|
67
|
+
paused?: boolean;
|
|
68
|
+
expectedGoalId?: string;
|
|
69
|
+
expectedRevision?: number;
|
|
70
|
+
}) => import("../goal/lifecycle.js").GoalConfig | undefined;
|
|
71
|
+
clearActiveGoalOnDisk?: (sessionId: string, expected?: {
|
|
72
|
+
goalId?: string;
|
|
73
|
+
revision?: number;
|
|
74
|
+
}) => boolean;
|
|
53
75
|
/**
|
|
54
76
|
* Enable the desktop workspace bridge channel. Off by default so generic
|
|
55
77
|
* protocol hosts do not emit hidden workspace approval requests they cannot
|
|
56
78
|
* service.
|
|
57
79
|
*/
|
|
58
80
|
workspaceBridge?: boolean;
|
|
81
|
+
/** Enable model-driven panel discovery/focus for interactive Desktop sessions. */
|
|
82
|
+
panelBridge?: boolean;
|
|
83
|
+
/** Stable transport connection identity. Supplying it enables strict
|
|
84
|
+
* connection+session+generation+requestId approval response matching. */
|
|
85
|
+
connectionId?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the user identity this connection acts as (identity dimension
|
|
88
|
+
* foundations, Task 2). Absent → today's behavior byte-for-byte: every
|
|
89
|
+
* request routes through the single host-supplied chatManager. Present →
|
|
90
|
+
* the server resolves the identity per request and routes getOrCreate/get
|
|
91
|
+
* (and session lists/streams) through a lazily-created per-identity
|
|
92
|
+
* manager (`chatManager.forIdentity(id)`), whose sessions persist under
|
|
93
|
+
* `<dataRoot>/identities/<id>/sessions`. Returning the base manager's own
|
|
94
|
+
* identity ("local" unless the host injected one) selects the base manager
|
|
95
|
+
* unchanged. The returned identity is validated as a safe path segment;
|
|
96
|
+
* an invalid identity fails the request (fail closed).
|
|
97
|
+
*/
|
|
98
|
+
resolveIdentity?: (ctx: {
|
|
99
|
+
connectionId: string;
|
|
100
|
+
}) => string;
|
|
101
|
+
/**
|
|
102
|
+
* Sessions dir for the server's lazy disk reader (background-wakeup
|
|
103
|
+
* rehydrate). Defaults to the standard sessions root; a host that relocates
|
|
104
|
+
* its data root (CODE_SHELL_DATA_ROOT worker) points this at
|
|
105
|
+
* `<dataRoot>/sessions` so cold wakeups read the same store its engines
|
|
106
|
+
* write.
|
|
107
|
+
*/
|
|
108
|
+
sessionDiskRoot?: string;
|
|
109
|
+
/** Shared owner router; injectable for hosts/tests, process singleton by default. */
|
|
110
|
+
approvalRouter?: ApprovalRouter;
|
|
111
|
+
/**
|
|
112
|
+
* Extension modules whose protocol observers / run-param validators /
|
|
113
|
+
* hidden session kinds this server applies. Defaults to core's built-in
|
|
114
|
+
* pet extension so existing hosts keep the Pet projection channel.
|
|
115
|
+
* TODO(pet-out-of-core): drop the default once hosts register it explicitly.
|
|
116
|
+
*/
|
|
117
|
+
extensionModules?: readonly ExtensionModule[];
|
|
59
118
|
}
|
|
60
119
|
export declare class AgentServer {
|
|
61
|
-
|
|
120
|
+
/** Host-supplied manager; requests route through the `chatManager` getter. */
|
|
121
|
+
private readonly baseChatManager;
|
|
122
|
+
/** Identity resolution hook; null → single-manager behavior (today's path). */
|
|
123
|
+
private readonly resolveIdentity;
|
|
124
|
+
/** Lazily-derived managers keyed by identity (non-base identities only). */
|
|
125
|
+
private readonly identityManagers;
|
|
62
126
|
private readonly legacyEngine;
|
|
63
127
|
private globalQueryEngine;
|
|
64
128
|
private transport;
|
|
@@ -66,15 +130,35 @@ export declare class AgentServer {
|
|
|
66
130
|
private readonly settingsReader;
|
|
67
131
|
/** Disk-only active-goal reader for agent/goalGet on a non-live session. */
|
|
68
132
|
private readonly readActiveGoalFromDisk;
|
|
133
|
+
private readonly updateActiveGoalOnDisk;
|
|
134
|
+
private readonly clearActiveGoalOnDisk;
|
|
69
135
|
private readonly workspaceBridgeEnabled;
|
|
136
|
+
private readonly panelBridgeEnabled;
|
|
137
|
+
private readonly connectionId;
|
|
138
|
+
private readonly strictApprovalRouting;
|
|
139
|
+
private readonly approvalRouter;
|
|
140
|
+
private approvalConnectionUnregister;
|
|
141
|
+
private disconnected;
|
|
142
|
+
private readonly pendingApprovalTargets;
|
|
143
|
+
/** Extension modules this server consults for protocol-level hooks. */
|
|
144
|
+
private readonly extensionModules;
|
|
145
|
+
/** Protocol lifecycle observers created by extension modules (registration order). */
|
|
146
|
+
private readonly protocolObservers;
|
|
147
|
+
/** Extension-registered protocol method/query aliases (compat channel). */
|
|
148
|
+
private readonly protocolQueryHandlers;
|
|
149
|
+
/** Union of extension hiddenSessionKinds, excluded from generic session lists. */
|
|
150
|
+
private readonly hiddenSessionKinds;
|
|
70
151
|
/**
|
|
71
152
|
* Last per-session EngineConfigSlice supplied by agent/run. Kept even after
|
|
72
153
|
* idle eviction so background-completion wakeups can rebuild the ChatSession
|
|
73
|
-
* with the same cwd/
|
|
154
|
+
* with the same cwd/trust inputs before draining the queue. Per-turn
|
|
155
|
+
* permission/plan overrides deliberately do not survive into wakeup turns.
|
|
74
156
|
*/
|
|
75
157
|
private readonly lastSliceBySession;
|
|
76
158
|
/** Lazy disk reader for cold wakeup rehydrate when this process lacks a slice. */
|
|
77
159
|
private diskSessionReader;
|
|
160
|
+
/** Sessions dir for diskSessionReader; undefined → default sessions root. */
|
|
161
|
+
private readonly sessionDiskRoot;
|
|
78
162
|
/**
|
|
79
163
|
* Monotonic config-reload version, bumped per reloadSettings request so each
|
|
80
164
|
* Engine.refreshRuntimeConfig can drop out-of-order (stale) deliveries (Q5).
|
|
@@ -114,6 +198,16 @@ export declare class AgentServer {
|
|
|
114
198
|
* itself outlives the server (it's a process-local singleton).
|
|
115
199
|
*/
|
|
116
200
|
private bgAgentBusUnsubscribe;
|
|
201
|
+
private readonly wakeupsInFlight;
|
|
202
|
+
/**
|
|
203
|
+
* Effective session manager for the connection this server serves. Without
|
|
204
|
+
* a resolveIdentity hook this is exactly the host-supplied manager —
|
|
205
|
+
* today's single-manager behavior, byte-for-byte. With the hook, requests
|
|
206
|
+
* route through a lazily-created per-identity manager, so the same
|
|
207
|
+
* sessionId under two identities resolves to two isolated ChatSessions and
|
|
208
|
+
* a connection can only list/stream sessions of its own identity.
|
|
209
|
+
*/
|
|
210
|
+
private get chatManager();
|
|
117
211
|
constructor(options: AgentServerOptions);
|
|
118
212
|
/**
|
|
119
213
|
* Wake an IDLE chatManager session that has pending background-completion
|
|
@@ -133,23 +227,36 @@ export declare class AgentServer {
|
|
|
133
227
|
* the first drains all currently-pending items; subsequent bus events for
|
|
134
228
|
* the same session find it busy (or find an empty queue) and no-op.
|
|
135
229
|
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* before its first await. So when bus events #2..N arrive — still on the same
|
|
140
|
-
* synchronous fan-out as #1 — they already see the session as busy and no-op.
|
|
141
|
-
* If either path is ever made async (e.g. an await is added inside
|
|
142
|
-
* enqueueTurn before `active` is set, or the bus starts deferring delivery),
|
|
143
|
-
* this degrades into N concurrent wakeups for N completions. Keep both
|
|
144
|
-
* synchronous, or replace this comment's assumption with an explicit
|
|
145
|
-
* "wakeup in flight" guard flag.
|
|
230
|
+
* `wakeupsInFlight` serializes the now-async rehydrate path, so a burst of
|
|
231
|
+
* completion events cannot create duplicate sessions or enqueue duplicate
|
|
232
|
+
* wakeup turns while getOrCreate waits for a closing generation to settle.
|
|
146
233
|
*/
|
|
147
234
|
private maybeWakeIdleSession;
|
|
235
|
+
private wakeIdleSession;
|
|
148
236
|
private rehydrateSessionForWake;
|
|
149
237
|
private sliceForWakeRehydrate;
|
|
150
238
|
private rememberSessionSlice;
|
|
151
239
|
private wireInteractiveSession;
|
|
240
|
+
/** Queue a model-sent message as an ordinary user turn in another Session. */
|
|
241
|
+
private routeSessionMessage;
|
|
152
242
|
private handleRequest;
|
|
243
|
+
private pluginCommandContext;
|
|
244
|
+
private handlePluginCommandsList;
|
|
245
|
+
private handlePluginCommandExpand;
|
|
246
|
+
/** Route a protocol method to its extension-registered handler, if any. */
|
|
247
|
+
private handleExtensionProtocolMethod;
|
|
248
|
+
private forEachObserver;
|
|
249
|
+
private observeSessionAttached;
|
|
250
|
+
private observeSessionStream;
|
|
251
|
+
private observeRunBoundary;
|
|
252
|
+
/** Observers may replace approval metadata (e.g. surfaceable overrides). */
|
|
253
|
+
private observeApprovalCreated;
|
|
254
|
+
private observeApprovalTransition;
|
|
255
|
+
private observeSessionClosed;
|
|
256
|
+
private observeServerClose;
|
|
257
|
+
/** Generic run-param shape checks plus each extension's domain validation. */
|
|
258
|
+
private validateRunInput;
|
|
259
|
+
private handleForkSession;
|
|
153
260
|
private handleRun;
|
|
154
261
|
private handleRunMulti;
|
|
155
262
|
private handleRunLegacy;
|
|
@@ -161,6 +268,13 @@ export declare class AgentServer {
|
|
|
161
268
|
* limits, or an error if no session / no active run.
|
|
162
269
|
*/
|
|
163
270
|
private handleGoalExtend;
|
|
271
|
+
/** Reject destructive Goal controls owned by a different TCP connection. */
|
|
272
|
+
private authorizeGoalControl;
|
|
273
|
+
/** Start a fully rebuilt Goal run for an idle or goal-less in-flight session. */
|
|
274
|
+
private queueGoalResumeTurn;
|
|
275
|
+
private reconcileFailedGoalResume;
|
|
276
|
+
/** Edit or pause/resume a persisted goal without replacing its identity. */
|
|
277
|
+
private handleGoalUpdate;
|
|
164
278
|
/**
|
|
165
279
|
* Clear a session's persisted active goal (CC /goal clear). Routes to the
|
|
166
280
|
* named session, falling back to the legacy single engine (mirrors
|
|
@@ -170,7 +284,7 @@ export declare class AgentServer {
|
|
|
170
284
|
/**
|
|
171
285
|
* Read a session's persisted active goal so the host can re-surface the goal
|
|
172
286
|
* block + Cancel button on session load. A persistent goal lives only in
|
|
173
|
-
* state.
|
|
287
|
+
* state.goalLifecycle and is never replayed from the transcript, so a reloaded
|
|
174
288
|
* (or disk-rebuilt) session has no other way to learn it. Prefers a live
|
|
175
289
|
* chatManager session, else falls through to a disk read (readActiveGoalFromDisk
|
|
176
290
|
* in worker mode, or the legacy engine's disk read in single-engine mode) — the
|
|
@@ -198,7 +312,17 @@ export declare class AgentServer {
|
|
|
198
312
|
private handleBackgroundWork;
|
|
199
313
|
private handleCloseSession;
|
|
200
314
|
private handleReleaseWorkspace;
|
|
315
|
+
private handleSetWorkspace;
|
|
201
316
|
private handleConfigure;
|
|
317
|
+
/**
|
|
318
|
+
* Resolve the Engine that owns a session-scoped query (compact, archive_range,
|
|
319
|
+
* …). With a chatManager: materialize a persisted-but-not-live session on
|
|
320
|
+
* demand, or borrow any live engine when no sessionId is given. Sends the
|
|
321
|
+
* appropriate error response and returns null when the session is
|
|
322
|
+
* closing/closed, unknown, or no engine is available; `label` names the query
|
|
323
|
+
* in the "no engine" message. Domain-neutral — no query-specific literals.
|
|
324
|
+
*/
|
|
325
|
+
private resolveEngineForSessionQuery;
|
|
202
326
|
private handleQuery;
|
|
203
327
|
private handleInject;
|
|
204
328
|
private handleSteer;
|
|
@@ -207,6 +331,7 @@ export declare class AgentServer {
|
|
|
207
331
|
* Ask the client to approve a tool operation (legacy single-engine path).
|
|
208
332
|
*/
|
|
209
333
|
private requestApprovalFromClient;
|
|
334
|
+
private approvalRouteEnvelope;
|
|
210
335
|
/**
|
|
211
336
|
* Per-session AskUserQuestion for the chatManager path. Resolves via the
|
|
212
337
|
* SESSION's pendingApprovals (the chatManager approve handler looks there,
|
|
@@ -232,6 +357,8 @@ export declare class AgentServer {
|
|
|
232
357
|
*/
|
|
233
358
|
private requestCredentialInjectForSession;
|
|
234
359
|
private makeWorkspaceBridge;
|
|
360
|
+
private makePanelBridge;
|
|
361
|
+
private requestPanelActionForSession;
|
|
235
362
|
private requestWorkspaceSwitchForSession;
|
|
236
363
|
/**
|
|
237
364
|
* Ask the client to answer a question from the agent (legacy single-engine
|
|
@@ -249,6 +376,16 @@ export declare class AgentServer {
|
|
|
249
376
|
*/
|
|
250
377
|
private anyEngine;
|
|
251
378
|
close(): void;
|
|
379
|
+
/** Release only this transport's approval ownership. Safe on socket close
|
|
380
|
+
* even when the ChatSessionManager is shared by other TCP connections. */
|
|
381
|
+
disconnect(reason?: string): void;
|
|
382
|
+
/** Resolver-free metadata view for extension projections and protocol snapshots. */
|
|
383
|
+
getPendingDecisionSnapshot(): readonly unknown[];
|
|
384
|
+
/** Host lifecycle generation stamped onto pending-approval metadata. */
|
|
385
|
+
private workerGeneration;
|
|
386
|
+
private registerSessionApproval;
|
|
387
|
+
private takeSessionApproval;
|
|
388
|
+
private internalPendingMetadata;
|
|
252
389
|
private clearApprovalTimer;
|
|
253
390
|
/**
|
|
254
391
|
* Resolve all of a chat session's pending approvals as cancelled and clear
|
|
@@ -258,5 +395,6 @@ export declare class AgentServer {
|
|
|
258
395
|
* AskUserQuestion does not.
|
|
259
396
|
*/
|
|
260
397
|
private cancelSessionApprovals;
|
|
398
|
+
private failClosedApprovalTargets;
|
|
261
399
|
private clearAllApprovalTimers;
|
|
262
400
|
}
|