@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
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
export interface HistoryMessage {
|
|
2
|
-
role: "user" | "assistant";
|
|
3
|
-
text: string;
|
|
4
|
-
/** `summary` is a lossy one-field preview; `args` is the full tool_use input
|
|
5
|
-
* (e.g. a sub-agent's `prompt`) so a replayed tool card can show the real
|
|
6
|
-
* parameters, not just the whitelisted field. */
|
|
7
|
-
tools?: {
|
|
8
|
-
name: string;
|
|
9
|
-
summary: string;
|
|
10
|
-
args?: Record<string, unknown>;
|
|
11
|
-
}[];
|
|
12
|
-
ts?: number;
|
|
13
|
-
}
|
|
14
|
-
/** One render-relevant event parsed from an appended external-CLI transcript
|
|
15
|
-
* line. Kept CLI-neutral so the desktop room follower can feed Claude Code and
|
|
16
|
-
* Codex through the same RoomManager push path. */
|
|
17
|
-
export type SessionTailEvent = {
|
|
18
|
-
type: "user";
|
|
19
|
-
text: string;
|
|
20
|
-
} | {
|
|
21
|
-
type: "assistant";
|
|
22
|
-
text: string;
|
|
23
|
-
} | {
|
|
24
|
-
type: "tool";
|
|
25
|
-
id?: string;
|
|
26
|
-
name: string;
|
|
27
|
-
summary: string;
|
|
28
|
-
args?: Record<string, unknown>;
|
|
29
|
-
} | {
|
|
30
|
-
type: "tool_result";
|
|
31
|
-
id?: string;
|
|
32
|
-
result: string;
|
|
33
|
-
isError: boolean;
|
|
34
|
-
} | {
|
|
35
|
-
type: "turn_end";
|
|
36
|
-
reason: string;
|
|
37
|
-
};
|
|
38
|
-
/** Parse a bounded/raw Claude Code transcript snapshot. Exported so a live
|
|
39
|
-
* follower can take its initial snapshot and EOF cursor from the same read,
|
|
40
|
-
* eliminating the snapshot→subscribe race. */
|
|
41
|
-
export declare function parseRecentHistory(raw: string, limit: number): {
|
|
42
|
-
messages: HistoryMessage[];
|
|
43
|
-
hasMore: boolean;
|
|
44
|
-
totalCount: number;
|
|
45
|
-
};
|
|
46
|
-
/** Parse one newly-appended Claude Code transcript JSONL line into the compact
|
|
47
|
-
* event vocabulary consumed by the desktop room follower. */
|
|
48
|
-
export declare function parseClaudeTranscriptLine(line: string): SessionTailEvent[];
|
|
49
|
-
/** Read the last `limit` user/assistant messages from a claude session jsonl. */
|
|
50
|
-
export declare function readRecentHistory(cwd: string, sessionId: string, limit: number, claudeHome?: string): {
|
|
51
|
-
messages: HistoryMessage[];
|
|
52
|
-
hasMore: boolean;
|
|
53
|
-
totalCount: number;
|
|
54
|
-
};
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
|
-
import { encodeCwd } from "./session-discovery.js";
|
|
5
|
-
const NOISE = ["<local-command-caveat>", "<command-name>"];
|
|
6
|
-
function textOf(content) {
|
|
7
|
-
if (typeof content === "string")
|
|
8
|
-
return content;
|
|
9
|
-
if (Array.isArray(content))
|
|
10
|
-
return content.map((p) => (typeof p?.text === "string" ? p.text : "")).join("");
|
|
11
|
-
return "";
|
|
12
|
-
}
|
|
13
|
-
function toolsOf(content) {
|
|
14
|
-
if (!Array.isArray(content))
|
|
15
|
-
return [];
|
|
16
|
-
const out = [];
|
|
17
|
-
for (const p of content) {
|
|
18
|
-
if (p?.type === "tool_use") {
|
|
19
|
-
const inp = p.input ?? {};
|
|
20
|
-
const summary = inp.command ?? inp.file_path ?? inp.path ?? inp.url ?? inp.pattern ?? inp.query ?? "";
|
|
21
|
-
const args = inp && typeof inp === "object" && Object.keys(inp).length > 0 ? inp : undefined;
|
|
22
|
-
out.push({
|
|
23
|
-
name: typeof p.name === "string" ? p.name : "tool",
|
|
24
|
-
summary: String(summary).slice(0, 120),
|
|
25
|
-
args,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return out;
|
|
30
|
-
}
|
|
31
|
-
function toolResultText(content) {
|
|
32
|
-
if (typeof content === "string")
|
|
33
|
-
return content;
|
|
34
|
-
if (!Array.isArray(content))
|
|
35
|
-
return "";
|
|
36
|
-
return content
|
|
37
|
-
.map((part) => typeof part === "string" ? part : typeof part?.text === "string" ? part.text : "")
|
|
38
|
-
.join("");
|
|
39
|
-
}
|
|
40
|
-
/** Parse a bounded/raw Claude Code transcript snapshot. Exported so a live
|
|
41
|
-
* follower can take its initial snapshot and EOF cursor from the same read,
|
|
42
|
-
* eliminating the snapshot→subscribe race. */
|
|
43
|
-
export function parseRecentHistory(raw, limit) {
|
|
44
|
-
const all = [];
|
|
45
|
-
for (const line of raw.split("\n")) {
|
|
46
|
-
if (!line.trim())
|
|
47
|
-
continue;
|
|
48
|
-
let d;
|
|
49
|
-
try {
|
|
50
|
-
d = JSON.parse(line);
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (d.type === "user") {
|
|
56
|
-
const t = textOf(d.message?.content).trim();
|
|
57
|
-
if (!t || NOISE.some((n) => t.startsWith(n)))
|
|
58
|
-
continue;
|
|
59
|
-
all.push({ role: "user", text: t });
|
|
60
|
-
}
|
|
61
|
-
else if (d.type === "assistant") {
|
|
62
|
-
const t = textOf(d.message?.content).trim();
|
|
63
|
-
const tools = toolsOf(d.message?.content);
|
|
64
|
-
if (!t && tools.length === 0)
|
|
65
|
-
continue;
|
|
66
|
-
all.push({ role: "assistant", text: t, tools: tools.length ? tools : undefined });
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const lim = limit > 0 ? limit : 20;
|
|
70
|
-
const start = Math.max(0, all.length - lim);
|
|
71
|
-
return { messages: all.slice(start), hasMore: start > 0, totalCount: all.length };
|
|
72
|
-
}
|
|
73
|
-
/** Parse one newly-appended Claude Code transcript JSONL line into the compact
|
|
74
|
-
* event vocabulary consumed by the desktop room follower. */
|
|
75
|
-
export function parseClaudeTranscriptLine(line) {
|
|
76
|
-
let d;
|
|
77
|
-
try {
|
|
78
|
-
d = JSON.parse(line);
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return [];
|
|
82
|
-
}
|
|
83
|
-
const out = [];
|
|
84
|
-
if (d.type === "user") {
|
|
85
|
-
const content = d.message?.content;
|
|
86
|
-
if (Array.isArray(content)) {
|
|
87
|
-
for (const part of content) {
|
|
88
|
-
if (part?.type !== "tool_result")
|
|
89
|
-
continue;
|
|
90
|
-
out.push({
|
|
91
|
-
type: "tool_result",
|
|
92
|
-
id: typeof part.tool_use_id === "string" ? part.tool_use_id : undefined,
|
|
93
|
-
result: toolResultText(part.content).slice(0, 4000),
|
|
94
|
-
isError: Boolean(part.is_error),
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const text = textOf(content).trim();
|
|
99
|
-
if (text && !NOISE.some((noise) => text.startsWith(noise))) {
|
|
100
|
-
out.unshift({ type: "user", text });
|
|
101
|
-
}
|
|
102
|
-
return out;
|
|
103
|
-
}
|
|
104
|
-
if (d.type === "assistant" && Array.isArray(d.message?.content)) {
|
|
105
|
-
for (const part of d.message.content) {
|
|
106
|
-
if (part?.type === "text" && typeof part.text === "string" && part.text) {
|
|
107
|
-
out.push({ type: "assistant", text: part.text });
|
|
108
|
-
}
|
|
109
|
-
else if (part?.type === "tool_use") {
|
|
110
|
-
const input = part.input && typeof part.input === "object"
|
|
111
|
-
? part.input
|
|
112
|
-
: undefined;
|
|
113
|
-
out.push({
|
|
114
|
-
type: "tool",
|
|
115
|
-
id: typeof part.id === "string" ? part.id : undefined,
|
|
116
|
-
name: typeof part.name === "string" ? part.name : "tool",
|
|
117
|
-
summary: toolsOf([part])[0]?.summary ?? "",
|
|
118
|
-
args: input,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (d.message.stop_reason === "end_turn") {
|
|
123
|
-
out.push({ type: "turn_end", reason: "completed" });
|
|
124
|
-
}
|
|
125
|
-
return out;
|
|
126
|
-
}
|
|
127
|
-
if (d.type === "result") {
|
|
128
|
-
return [
|
|
129
|
-
{
|
|
130
|
-
type: "turn_end",
|
|
131
|
-
reason: typeof d.subtype === "string" ? d.subtype : "completed",
|
|
132
|
-
},
|
|
133
|
-
];
|
|
134
|
-
}
|
|
135
|
-
return [];
|
|
136
|
-
}
|
|
137
|
-
/** Read the last `limit` user/assistant messages from a claude session jsonl. */
|
|
138
|
-
export function readRecentHistory(cwd, sessionId, limit, claudeHome = join(homedir(), ".claude")) {
|
|
139
|
-
const file = join(claudeHome, "projects", encodeCwd(cwd), `${sessionId}.jsonl`);
|
|
140
|
-
if (!existsSync(file))
|
|
141
|
-
return { messages: [], hasMore: false, totalCount: 0 };
|
|
142
|
-
let raw;
|
|
143
|
-
try {
|
|
144
|
-
raw = readFileSync(file, "utf-8");
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
return { messages: [], hasMore: false, totalCount: 0 };
|
|
148
|
-
}
|
|
149
|
-
return parseRecentHistory(raw, limit);
|
|
150
|
-
}
|
package/dist/cron/cron-store.js
DELETED
package/dist/cron/scheduler.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Back-compat shim. The cron scheduler moved to `automation/scheduler.ts`
|
|
3
|
-
* (see docs/automation-plan-2026-05-31.md). This re-export keeps existing
|
|
4
|
-
* `../cron/scheduler.js` importers working. New code should import from
|
|
5
|
-
* `../automation/scheduler.js`.
|
|
6
|
-
*/
|
|
7
|
-
export * from "../automation/scheduler.js";
|
package/dist/cron/scheduler.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Back-compat shim. The cron scheduler moved to `automation/scheduler.ts`
|
|
3
|
-
* (see docs/automation-plan-2026-05-31.md). This re-export keeps existing
|
|
4
|
-
* `../cron/scheduler.js` importers working. New code should import from
|
|
5
|
-
* `../automation/scheduler.js`.
|
|
6
|
-
*/
|
|
7
|
-
export * from "../automation/scheduler.js";
|
package/dist/engine/goal.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Goal mode P0 — run-scoped budget guardrails.
|
|
3
|
-
*
|
|
4
|
-
* `GoalConfig` is the normalized internal shape. Public entry points
|
|
5
|
-
* (protocol/server, engine run) accept `string | GoalConfig` for
|
|
6
|
-
* back-compat and call `normalizeGoal()` once at the boundary; everything
|
|
7
|
-
* inward uses `GoalConfig`.
|
|
8
|
-
*
|
|
9
|
-
* The budget tracker is RUN-scoped (not per-turn like token-budget.ts):
|
|
10
|
-
* it accumulates total tokens across turns and stamps a wall-clock start,
|
|
11
|
-
* so an unattended goal run can't burn tokens or wall time without bound.
|
|
12
|
-
*/
|
|
13
|
-
/** True only when both values identify the same concrete goal instance. */
|
|
14
|
-
export function isSameGoalInstance(left, right) {
|
|
15
|
-
return !!left && !!right && left.objective === right.objective && left.setAtMs === right.setAtMs;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Default consecutive-stop-block cap for goal runs. The real safety net for an
|
|
19
|
-
* unattended goal is the token/time budget + maxTurns; this cap only stops a
|
|
20
|
-
* goal that the judge keeps re-blocking with NO progress between blocks. 8 was
|
|
21
|
-
* too tight — a complex goal can legitimately get "not yet" several times while
|
|
22
|
-
* advancing — so we allow a generous streak before declaring it stuck.
|
|
23
|
-
*/
|
|
24
|
-
export const GOAL_DEFAULT_MAX_STOP_BLOCKS = 25;
|
|
25
|
-
/**
|
|
26
|
-
* Consecutive-stop-block cap for NON-goal (interactive) runs. The 25-block goal
|
|
27
|
-
* default is far too loose for a plain interactive session: a plugin `on_stop`
|
|
28
|
-
* hook that keeps returning continueSession would loop 25× before the backstop
|
|
29
|
-
* bites (~3× the model calls). Non-goal runs fall back to this tighter cap —
|
|
30
|
-
* the historical value before the goal feature raised the goal-mode default.
|
|
31
|
-
*/
|
|
32
|
-
export const INTERACTIVE_DEFAULT_MAX_STOP_BLOCKS = 8;
|
|
33
|
-
/**
|
|
34
|
-
* Resolve the consecutive-stop-block cap for a run. Precedence:
|
|
35
|
-
* 1. explicit `configMaxStopBlocks` (engine/caller override)
|
|
36
|
-
* 2. `goal.maxStopBlocks`
|
|
37
|
-
* 3. GOAL_DEFAULT_MAX_STOP_BLOCKS when a goal is active,
|
|
38
|
-
* INTERACTIVE_DEFAULT_MAX_STOP_BLOCKS otherwise (don't leak the loose goal
|
|
39
|
-
* cap onto plain interactive runs — see B3 in the redesign doc).
|
|
40
|
-
* Pure + injectable so engine and tests agree.
|
|
41
|
-
*/
|
|
42
|
-
export function resolveMaxStopBlocks(configMaxStopBlocks, goal) {
|
|
43
|
-
if (typeof configMaxStopBlocks === "number" && configMaxStopBlocks > 0) {
|
|
44
|
-
return Math.floor(configMaxStopBlocks);
|
|
45
|
-
}
|
|
46
|
-
if (goal?.maxStopBlocks && goal.maxStopBlocks > 0)
|
|
47
|
-
return goal.maxStopBlocks;
|
|
48
|
-
return goal ? GOAL_DEFAULT_MAX_STOP_BLOCKS : INTERACTIVE_DEFAULT_MAX_STOP_BLOCKS;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Turn ceiling applied when a goal is active and neither the GoalConfig nor
|
|
52
|
-
* the engine config set an explicit maxTurns. Higher than the interactive
|
|
53
|
-
* default (100) because goal runs are unattended and the stop-hook keeps the
|
|
54
|
-
* loop going until the objective is met — the real safety backstops are the
|
|
55
|
-
* token/time budgets and maxStopBlocks, not this ceiling. A round 300 gives
|
|
56
|
-
* long goals room while still bounding a pathological loop.
|
|
57
|
-
*/
|
|
58
|
-
export const GOAL_DEFAULT_MAX_TURNS = 300;
|
|
59
|
-
/**
|
|
60
|
-
* Coerce a raw goal input into a normalized GoalConfig, or undefined when
|
|
61
|
-
* there is effectively no goal (empty objective). Drops non-positive
|
|
62
|
-
* budgets (0 / negative → "no limit", same as absent).
|
|
63
|
-
*/
|
|
64
|
-
export function normalizeGoal(raw) {
|
|
65
|
-
if (raw == null)
|
|
66
|
-
return undefined;
|
|
67
|
-
const obj = typeof raw === "string" ? { objective: raw } : { ...raw };
|
|
68
|
-
const objective = (obj.objective ?? "").trim();
|
|
69
|
-
if (!objective)
|
|
70
|
-
return undefined;
|
|
71
|
-
const out = { objective };
|
|
72
|
-
if (typeof obj.tokenBudget === "number" && obj.tokenBudget > 0)
|
|
73
|
-
out.tokenBudget = obj.tokenBudget;
|
|
74
|
-
if (typeof obj.timeBudgetMs === "number" && obj.timeBudgetMs > 0)
|
|
75
|
-
out.timeBudgetMs = obj.timeBudgetMs;
|
|
76
|
-
if (typeof obj.maxTurns === "number" && obj.maxTurns > 0)
|
|
77
|
-
out.maxTurns = Math.floor(obj.maxTurns);
|
|
78
|
-
if (typeof obj.maxStopBlocks === "number" && obj.maxStopBlocks > 0) {
|
|
79
|
-
out.maxStopBlocks = Math.floor(obj.maxStopBlocks);
|
|
80
|
-
}
|
|
81
|
-
// Preserve a positive goal-set timestamp so a resumed/inherited goal keeps
|
|
82
|
-
// the anchor for relative deadlines. Non-positive/junk is dropped, matching
|
|
83
|
-
// the budget fields (a bogus anchor is worse than none).
|
|
84
|
-
if (typeof obj.setAtMs === "number" && obj.setAtMs > 0)
|
|
85
|
-
out.setAtMs = obj.setAtMs;
|
|
86
|
-
return out;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Decide the goal-set timestamp (setAtMs) to persist when a send supplies an
|
|
90
|
-
* explicit goal. Pure so the engine and tests agree on the anchor rule:
|
|
91
|
-
* - A NEW or CHANGED objective → stamp `nowMs` (the user just expressed a
|
|
92
|
-
* fresh goal; any relative deadline in it is anchored to now).
|
|
93
|
-
* - The SAME objective continuing (bare re-send inheriting the stored goal) →
|
|
94
|
-
* keep the stored anchor, so a re-send doesn't silently move the deadline.
|
|
95
|
-
* Falls back to `nowMs` if the stored goal predates this field.
|
|
96
|
-
* `stored` is the previously-persisted active goal (or undefined for the first
|
|
97
|
-
* goal on a session).
|
|
98
|
-
*/
|
|
99
|
-
export function resolveGoalSetAt(explicitObjective, stored, nowMs) {
|
|
100
|
-
const sameGoalContinues = !!stored && stored.objective === explicitObjective;
|
|
101
|
-
return sameGoalContinues ? (stored.setAtMs ?? nowMs) : nowMs;
|
|
102
|
-
}
|
|
103
|
-
/** Interactive (no-goal) turn ceiling — a single prompt rarely needs more. */
|
|
104
|
-
export const INTERACTIVE_DEFAULT_MAX_TURNS = 100;
|
|
105
|
-
/**
|
|
106
|
-
* Resolve the turn ceiling for a run, honoring goal mode.
|
|
107
|
-
*
|
|
108
|
-
* Precedence (first defined wins):
|
|
109
|
-
* 1. `configMaxTurns` — an explicit engine/caller override (always wins).
|
|
110
|
-
* 2. `goal.maxTurns` — a per-goal cap from the GoalConfig.
|
|
111
|
-
* 3. `GOAL_DEFAULT_MAX_TURNS` when a goal is active (raise the unattended
|
|
112
|
-
* ceiling above the interactive default).
|
|
113
|
-
* 4. `INTERACTIVE_DEFAULT_MAX_TURNS` otherwise.
|
|
114
|
-
*
|
|
115
|
-
* Pure + injectable so the engine and tests agree on the rule.
|
|
116
|
-
*/
|
|
117
|
-
export function resolveMaxTurns(configMaxTurns, goal) {
|
|
118
|
-
if (typeof configMaxTurns === "number" && configMaxTurns > 0)
|
|
119
|
-
return configMaxTurns;
|
|
120
|
-
if (goal)
|
|
121
|
-
return goal.maxTurns ?? GOAL_DEFAULT_MAX_TURNS;
|
|
122
|
-
return INTERACTIVE_DEFAULT_MAX_TURNS;
|
|
123
|
-
}
|
|
124
|
-
/** Warn when this many turns (or fewer) remain before maxTurns. */
|
|
125
|
-
export const APPROACH_TURNS = 5;
|
|
126
|
-
/** Warn when this many consecutive blocks (or fewer) remain before the cap. */
|
|
127
|
-
export const APPROACH_STOP_BLOCKS = 3;
|
|
128
|
-
/**
|
|
129
|
-
* Compute proximity to the two stop ceilings. Pure so turn-loop and tests
|
|
130
|
-
* agree. `nearest` favors stopBlocks when both are near, because the stop-block
|
|
131
|
-
* cap (default 25) is reached far sooner than maxTurns (default 300) for a
|
|
132
|
-
* goal the judge keeps re-blocking — it's the limit that actually bites.
|
|
133
|
-
*/
|
|
134
|
-
export function limitProximity(turnCount, maxTurns, stopBlockCount, maxStopBlocks) {
|
|
135
|
-
const turnsRemaining = maxTurns - turnCount;
|
|
136
|
-
const stopBlocksRemaining = maxStopBlocks - stopBlockCount;
|
|
137
|
-
const turnsNear = turnsRemaining <= APPROACH_TURNS;
|
|
138
|
-
const blocksNear = stopBlocksRemaining <= APPROACH_STOP_BLOCKS;
|
|
139
|
-
return {
|
|
140
|
-
turnsRemaining,
|
|
141
|
-
stopBlocksRemaining,
|
|
142
|
-
approaching: turnsNear || blocksNear,
|
|
143
|
-
nearest: blocksNear ? "stopBlocks" : "turns",
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Compute the new turn ceiling + goal budgets after a mid-run extension
|
|
148
|
-
* (TODO 3.1). Pure so the TurnLoop and tests agree on the arithmetic:
|
|
149
|
-
* - addTurns bumps the maxTurns ceiling (floored, positive only).
|
|
150
|
-
* - addTokenBudget/addTimeBudgetMs raise the goal's caps. When a cap was
|
|
151
|
-
* previously unset ("unlimited"), we seed it from CURRENT USAGE before
|
|
152
|
-
* adding — `tokensUsed` for tokens, `elapsedMs` for time — so extending an
|
|
153
|
-
* unbounded run sets a fresh cap ABOVE current usage rather than below it.
|
|
154
|
-
* (Seeding time from 0 was bug B1: a long-running unbounded goal would get
|
|
155
|
-
* a cap below its elapsed time and force-stop immediately on extend.)
|
|
156
|
-
* - addStopBlocks is handled by the caller (TurnLoop.extend) against the live
|
|
157
|
-
* config, not here, since it isn't part of the goal budget shape.
|
|
158
|
-
* `tokensUsed`/`elapsedMs` are the tracker's running totals (used only to seed
|
|
159
|
-
* unset caps). Returns the resulting limits; never mutates its inputs.
|
|
160
|
-
*/
|
|
161
|
-
export function applyGoalExtension(currentMaxTurns, goal, tokensUsed, elapsedMs, ext) {
|
|
162
|
-
let maxTurns = currentMaxTurns;
|
|
163
|
-
if (typeof ext.addTurns === "number" && ext.addTurns > 0) {
|
|
164
|
-
maxTurns += Math.floor(ext.addTurns);
|
|
165
|
-
}
|
|
166
|
-
let tokenBudget = goal?.tokenBudget;
|
|
167
|
-
let timeBudgetMs = goal?.timeBudgetMs;
|
|
168
|
-
if (goal) {
|
|
169
|
-
if (typeof ext.addTokenBudget === "number" && ext.addTokenBudget > 0) {
|
|
170
|
-
tokenBudget = (tokenBudget ?? tokensUsed) + Math.floor(ext.addTokenBudget);
|
|
171
|
-
}
|
|
172
|
-
if (typeof ext.addTimeBudgetMs === "number" && ext.addTimeBudgetMs > 0) {
|
|
173
|
-
// Seed an unset cap from elapsed time (not 0), mirroring the token branch,
|
|
174
|
-
// so the new cap lands above current usage. Fixes B1.
|
|
175
|
-
timeBudgetMs = (timeBudgetMs ?? elapsedMs) + Math.floor(ext.addTimeBudgetMs);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return { maxTurns, tokenBudget, timeBudgetMs };
|
|
179
|
-
}
|
|
180
|
-
/** Create a run-scoped tracker. `nowMs` is injected for testability. */
|
|
181
|
-
export function createGoalBudgetTracker(goal, nowMs) {
|
|
182
|
-
return { goal, startedAtMs: nowMs, tokensUsed: 0 };
|
|
183
|
-
}
|
|
184
|
-
/** Add this turn's token usage to the running total. */
|
|
185
|
-
export function recordGoalUsage(tracker, turnTokens) {
|
|
186
|
-
if (turnTokens > 0)
|
|
187
|
-
tracker.tokensUsed += turnTokens;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Has the run exceeded any configured budget? `nowMs` is injected so callers
|
|
191
|
-
* pass the current clock (and tests pass a fixed value).
|
|
192
|
-
*/
|
|
193
|
-
export function goalBudgetExceeded(tracker, nowMs) {
|
|
194
|
-
return goalBudgetTerminationReason(tracker, nowMs) !== undefined;
|
|
195
|
-
}
|
|
196
|
-
/** Identify which goal budget forced termination, preserving token-first precedence. */
|
|
197
|
-
export function goalBudgetTerminationReason(tracker, nowMs) {
|
|
198
|
-
const { tokenBudget, timeBudgetMs } = tracker.goal;
|
|
199
|
-
if (typeof tokenBudget === "number" && tracker.tokensUsed > tokenBudget) {
|
|
200
|
-
return "token_budget_exhausted";
|
|
201
|
-
}
|
|
202
|
-
if (typeof timeBudgetMs === "number" && nowMs - tracker.startedAtMs > timeBudgetMs) {
|
|
203
|
-
return "time_budget_exhausted";
|
|
204
|
-
}
|
|
205
|
-
return undefined;
|
|
206
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export function resolveExternalAgentConfig(settings) {
|
|
2
|
-
return {
|
|
3
|
-
claudeCode: {
|
|
4
|
-
command: settings?.claudeCode?.command ?? "claude",
|
|
5
|
-
defaultMode: settings?.claudeCode?.defaultMode ?? "safe",
|
|
6
|
-
dangerousArgs: settings?.claudeCode?.dangerousArgs ?? [],
|
|
7
|
-
trustedWorkspaces: settings?.claudeCode?.trustedWorkspaces ?? [],
|
|
8
|
-
autoStartInTrustedWorkspaces: settings?.claudeCode?.autoStartInTrustedWorkspaces ?? false,
|
|
9
|
-
},
|
|
10
|
-
codex: {
|
|
11
|
-
command: settings?.codex?.command ?? "codex",
|
|
12
|
-
args: settings?.codex?.args ?? [],
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export type ExternalAgentMode = "safe" | "dangerous";
|
|
2
|
-
export interface ClaudeCodeSettings {
|
|
3
|
-
command?: string;
|
|
4
|
-
defaultMode?: ExternalAgentMode;
|
|
5
|
-
dangerousArgs?: string[];
|
|
6
|
-
trustedWorkspaces?: string[];
|
|
7
|
-
autoStartInTrustedWorkspaces?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface CodexSettings {
|
|
10
|
-
command?: string;
|
|
11
|
-
args?: string[];
|
|
12
|
-
}
|
|
13
|
-
export interface ExternalAgentsSettings {
|
|
14
|
-
claudeCode?: ClaudeCodeSettings;
|
|
15
|
-
codex?: CodexSettings;
|
|
16
|
-
}
|
|
17
|
-
export interface ResolvedClaudeCodeSettings {
|
|
18
|
-
command: string;
|
|
19
|
-
defaultMode: ExternalAgentMode;
|
|
20
|
-
dangerousArgs: string[];
|
|
21
|
-
trustedWorkspaces: string[];
|
|
22
|
-
autoStartInTrustedWorkspaces: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface ResolvedCodexSettings {
|
|
25
|
-
command: string;
|
|
26
|
-
args: string[];
|
|
27
|
-
}
|
|
28
|
-
export interface ResolvedExternalAgentsConfig {
|
|
29
|
-
claudeCode: ResolvedClaudeCodeSettings;
|
|
30
|
-
codex: ResolvedCodexSettings;
|
|
31
|
-
}
|
package/dist/git/parse-log.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface GitLogEntry {
|
|
2
|
-
hash: string;
|
|
3
|
-
message: string;
|
|
4
|
-
author: string;
|
|
5
|
-
date: string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Parse `git log --format=%H|%s|%an|%ci` output into entries. Tolerates
|
|
9
|
-
* malformed/short lines (missing `|` separators) by defaulting absent fields
|
|
10
|
-
* to "" rather than destructuring `undefined` and crashing on `.slice`
|
|
11
|
-
* (review-2026-05-30). Blank lines are skipped.
|
|
12
|
-
*/
|
|
13
|
-
export declare function parseGitLog(raw: string): GitLogEntry[];
|
package/dist/git/parse-log.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse `git log --format=%H|%s|%an|%ci` output into entries. Tolerates
|
|
3
|
-
* malformed/short lines (missing `|` separators) by defaulting absent fields
|
|
4
|
-
* to "" rather than destructuring `undefined` and crashing on `.slice`
|
|
5
|
-
* (review-2026-05-30). Blank lines are skipped.
|
|
6
|
-
*/
|
|
7
|
-
export function parseGitLog(raw) {
|
|
8
|
-
return raw
|
|
9
|
-
.split("\n")
|
|
10
|
-
.filter((line) => line.trim() !== "")
|
|
11
|
-
.map((line) => {
|
|
12
|
-
const parts = line.split("|");
|
|
13
|
-
const hash = parts[0] ?? "";
|
|
14
|
-
return {
|
|
15
|
-
hash: hash.slice(0, 8),
|
|
16
|
-
message: parts[1] ?? "",
|
|
17
|
-
author: parts[2] ?? "",
|
|
18
|
-
date: parts[3] ?? "",
|
|
19
|
-
};
|
|
20
|
-
});
|
|
21
|
-
}
|
package/dist/git/utils.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git utility functions for the git workflow commands.
|
|
3
|
-
*
|
|
4
|
-
* Every call goes through execFileSync with an argv array — no command
|
|
5
|
-
* strings, no shell interpolation. Even arguments that look "safe" (already
|
|
6
|
-
* quoted, hard-coded) are passed as separate argv tokens so a future caller
|
|
7
|
-
* can't accidentally widen the attack surface by interpolating user input
|
|
8
|
-
* into the string form.
|
|
9
|
-
*/
|
|
10
|
-
import { type GitLogEntry } from "./parse-log.js";
|
|
11
|
-
export interface GitStatusEntry {
|
|
12
|
-
status: string;
|
|
13
|
-
path: string;
|
|
14
|
-
}
|
|
15
|
-
export type { GitLogEntry };
|
|
16
|
-
export declare function isGitRepo(cwd: string): boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Resolve a directory to its PROJECT ROOT: the enclosing git repository's
|
|
19
|
-
* top-level dir if `cwd` is inside a git repo, otherwise `cwd` unchanged.
|
|
20
|
-
*
|
|
21
|
-
* This is the project-boundary rule the desktop uses when adding/identifying a
|
|
22
|
-
* project: picking a SUBDIRECTORY of a git repo should belong to that one repo
|
|
23
|
-
* (its root), not spawn a separate project per subdir — mirrors how editors
|
|
24
|
-
* (and Claude Code) treat a repo as one workspace. A non-git folder is its own
|
|
25
|
-
* project (returned as-is). Never throws; on any git failure falls back to cwd.
|
|
26
|
-
* Returns the git-reported toplevel (already absolute, forward-slashed on win).
|
|
27
|
-
*/
|
|
28
|
-
export declare function resolveProjectRoot(cwd: string): string;
|
|
29
|
-
export declare function getCurrentBranch(cwd: string): string;
|
|
30
|
-
export declare function getGitStatus(cwd: string): GitStatusEntry[];
|
|
31
|
-
export declare function getGitDiff(cwd: string, opts?: {
|
|
32
|
-
staged?: boolean;
|
|
33
|
-
file?: string;
|
|
34
|
-
}): string;
|
|
35
|
-
export declare function getGitDiffStat(cwd: string, opts?: {
|
|
36
|
-
staged?: boolean;
|
|
37
|
-
file?: string;
|
|
38
|
-
}): string;
|
|
39
|
-
export declare function getGitLog(cwd: string, n?: number): GitLogEntry[];
|
|
40
|
-
export declare function getRemoteUrl(cwd: string): string | undefined;
|
|
41
|
-
export declare function gitAdd(cwd: string, files?: string[]): void;
|
|
42
|
-
export declare function gitCommit(cwd: string, message: string): string;
|
|
43
|
-
export declare function gitListBranches(cwd: string): {
|
|
44
|
-
name: string;
|
|
45
|
-
current: boolean;
|
|
46
|
-
}[];
|
|
47
|
-
export declare function gitCheckout(cwd: string, branch: string, create?: boolean): void;
|
|
48
|
-
export declare function ghAvailable(): boolean;
|
|
49
|
-
export declare function ghPrComments(cwd: string, prUrl: string): string;
|