@cjhyy/code-shell-core 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -23
- package/dist/agent/agent-definition-registry.d.ts +2 -2
- package/dist/agent/agent-definition-registry.js +47 -10
- package/dist/agent/agent-definition.d.ts +5 -0
- package/dist/agent/agent-definition.js +14 -0
- package/dist/automation/index.d.ts +7 -4
- package/dist/automation/index.js +4 -2
- package/dist/automation/runner.js +3 -1
- package/dist/automation/scheduler.d.ts +57 -1
- package/dist/automation/scheduler.js +123 -23
- package/dist/automation/store.d.ts +6 -2
- package/dist/automation/store.js +7 -3
- package/dist/capabilities/index.d.ts +109 -0
- package/dist/capabilities/index.js +80 -0
- package/dist/capability-control/disabled-lists.d.ts +2 -1
- package/dist/capability-control/disabled-lists.js +3 -5
- package/dist/capability-control/overlay.d.ts +14 -1
- package/dist/capability-control/overlay.js +40 -0
- package/dist/capability-control/service.js +6 -4
- package/dist/cli/agent-server-stdio.d.ts +1 -1
- package/dist/cli/agent-server-stdio.js +66 -6
- package/dist/cli/agent-server-tcp.js +7 -3
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +17 -1
- package/dist/context/manager.js +36 -1
- package/dist/credentials/access.d.ts +3 -1
- package/dist/credentials/access.js +24 -3
- package/dist/credentials/index.d.ts +1 -1
- package/dist/credentials/index.js +1 -1
- package/dist/credentials/oauth.d.ts +4 -1
- package/dist/credentials/oauth.js +14 -0
- package/dist/credentials/store.d.ts +15 -1
- package/dist/credentials/store.js +17 -4
- package/dist/credentials/types.d.ts +24 -0
- package/dist/credentials/use-credential-tool.js +15 -1
- package/dist/engine/auxiliary-pipeline.d.ts +40 -0
- package/dist/engine/auxiliary-pipeline.js +181 -0
- package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
- package/dist/{settings → engine}/disk-defaults.js +5 -2
- package/dist/engine/dynamic-tool-defs.d.ts +4 -0
- package/dist/engine/dynamic-tool-defs.js +4 -0
- package/dist/engine/engine.d.ts +254 -195
- package/dist/engine/engine.js +1812 -2041
- package/dist/engine/file-history-hook.d.ts +11 -0
- package/dist/engine/file-history-hook.js +31 -0
- package/dist/engine/goal-judge-context.d.ts +9 -0
- package/dist/engine/goal-judge-context.js +234 -0
- package/dist/engine/injected-context-cache.d.ts +6 -0
- package/dist/engine/injected-context-cache.js +13 -0
- package/dist/engine/input-attachments.d.ts +1 -1
- package/dist/engine/model-facade.d.ts +3 -3
- package/dist/engine/model-facade.js +15 -14
- package/dist/engine/permission-controller.d.ts +55 -0
- package/dist/engine/permission-controller.js +148 -0
- package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
- package/dist/engine/prompt-cache-diagnostics.js +178 -0
- package/dist/engine/run-accounting.d.ts +41 -0
- package/dist/engine/run-accounting.js +126 -0
- package/dist/engine/run-context.d.ts +44 -0
- package/dist/engine/run-context.js +88 -0
- package/dist/engine/run-environment.d.ts +30 -0
- package/dist/engine/run-environment.js +77 -0
- package/dist/engine/run-finalize.d.ts +58 -0
- package/dist/engine/run-finalize.js +245 -0
- package/dist/engine/run-goal.d.ts +58 -0
- package/dist/engine/run-goal.js +188 -0
- package/dist/engine/run-image-input.d.ts +1 -1
- package/dist/engine/run-image-input.js +5 -3
- package/dist/engine/run-session-open.d.ts +41 -0
- package/dist/engine/run-session-open.js +186 -0
- package/dist/engine/run-setup.d.ts +42 -0
- package/dist/engine/run-setup.js +58 -0
- package/dist/engine/run-tooling.d.ts +125 -0
- package/dist/engine/run-tooling.js +283 -0
- package/dist/engine/run-types.d.ts +139 -0
- package/dist/engine/run-types.js +12 -0
- package/dist/engine/run-workspace.d.ts +50 -0
- package/dist/engine/run-workspace.js +114 -0
- package/dist/engine/steer-queue.d.ts +1 -1
- package/dist/engine/subagent-spawner.d.ts +32 -0
- package/dist/engine/subagent-spawner.js +287 -0
- package/dist/engine/tool-summary.d.ts +2 -2
- package/dist/engine/tool-summary.js +2 -2
- package/dist/engine/turn-loop.d.ts +49 -10
- package/dist/engine/turn-loop.js +370 -104
- package/dist/engine/types.d.ts +30 -3
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +24 -10
- package/dist/hooks/goal-stop-hook.d.ts +17 -28
- package/dist/hooks/goal-stop-hook.js +110 -465
- package/dist/hooks/registry.js +1 -1
- package/dist/index.d.ts +48 -108
- package/dist/index.extension.d.ts +51 -0
- package/dist/index.extension.js +39 -0
- package/dist/index.internal.d.ts +86 -0
- package/dist/index.internal.js +92 -0
- package/dist/index.js +34 -123
- package/dist/links/cli.d.ts +48 -0
- package/dist/links/cli.js +617 -0
- package/dist/links/http.d.ts +40 -0
- package/dist/links/http.js +166 -0
- package/dist/links/index.d.ts +4 -0
- package/dist/links/index.js +3 -0
- package/dist/links/link-action-tool.d.ts +5 -0
- package/dist/links/link-action-tool.js +241 -0
- package/dist/links/providers.d.ts +8 -0
- package/dist/links/providers.js +665 -0
- package/dist/links/types.d.ts +44 -0
- package/dist/llm/client-base.d.ts +7 -0
- package/dist/llm/client-base.js +60 -0
- package/dist/llm/model-pool.d.ts +1 -1
- package/dist/llm/model-pool.js +1 -1
- package/dist/llm/providers/anthropic.d.ts +1 -0
- package/dist/llm/providers/anthropic.js +9 -0
- package/dist/llm/providers/openai.d.ts +1 -0
- package/dist/llm/providers/openai.js +17 -0
- package/dist/model-catalog/index.js +15 -2
- package/dist/model-catalog/resolve.d.ts +13 -1
- package/dist/model-catalog/resolve.js +37 -2
- package/dist/model-catalog/types.d.ts +74 -48
- package/dist/model-catalog/types.js +16 -5
- package/dist/model-catalog/upsert.d.ts +3 -1
- package/dist/model-catalog/upsert.js +9 -0
- package/dist/onboarding.d.ts +0 -1
- package/dist/onboarding.js +1 -22
- package/dist/panel-apps/bindings.d.ts +24 -0
- package/dist/panel-apps/bindings.js +69 -0
- package/dist/panel-apps/github-archive.d.ts +21 -0
- package/dist/panel-apps/github-archive.js +98 -0
- package/dist/panel-apps/index.d.ts +4 -0
- package/dist/panel-apps/index.js +4 -0
- package/dist/panel-apps/installer.d.ts +68 -0
- package/dist/panel-apps/installer.js +622 -0
- package/dist/panel-apps/manifest.d.ts +364 -0
- package/dist/panel-apps/manifest.js +189 -0
- package/dist/panel-apps/paths.d.ts +13 -0
- package/dist/panel-apps/paths.js +38 -0
- package/dist/panel-apps/registry.d.ts +51 -0
- package/dist/panel-apps/registry.js +99 -0
- package/dist/panel-apps/runtime.d.ts +80 -0
- package/dist/panel-apps/runtime.js +154 -0
- package/dist/plugins/gitOps.js +8 -1
- package/dist/plugins/installedPlugins.d.ts +2 -1
- package/dist/plugins/installedPlugins.js +146 -8
- package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
- package/dist/plugins/installer/codex/convertAgents.js +62 -8
- package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
- package/dist/plugins/installer/codex/convertCommands.js +35 -12
- package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
- package/dist/plugins/installer/codex/convertHooks.js +82 -0
- package/dist/plugins/installer/codex/convertSkills.js +41 -6
- package/dist/plugins/installer/install.d.ts +7 -1
- package/dist/plugins/installer/install.js +21 -87
- package/dist/plugins/installer/installFromArchive.d.ts +26 -4
- package/dist/plugins/installer/installFromArchive.js +44 -27
- package/dist/plugins/installer/installFromNpm.d.ts +31 -0
- package/dist/plugins/installer/installFromNpm.js +273 -0
- package/dist/plugins/installer/loadPluginAgents.js +17 -4
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +245 -35
- package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
- package/dist/plugins/installer/normalizeManifest.js +306 -0
- package/dist/plugins/installer/npmTar.d.ts +13 -0
- package/dist/plugins/installer/npmTar.js +321 -0
- package/dist/plugins/installer/parseSource.d.ts +11 -0
- package/dist/plugins/installer/parseSource.js +48 -0
- package/dist/plugins/installer/preview.d.ts +101 -0
- package/dist/plugins/installer/preview.js +336 -0
- package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
- package/dist/plugins/installer/projectPluginSource.js +140 -0
- package/dist/plugins/installer/types.d.ts +775 -0
- package/dist/plugins/installer/types.js +100 -0
- package/dist/plugins/installer/unzip.d.ts +11 -0
- package/dist/plugins/installer/unzip.js +123 -9
- package/dist/plugins/installer/update.d.ts +2 -2
- package/dist/plugins/installer/update.js +43 -4
- package/dist/plugins/loadPluginHooks.d.ts +19 -2
- package/dist/plugins/loadPluginHooks.js +97 -86
- package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
- package/dist/plugins/pluginAutomationTemplates.js +50 -0
- package/dist/plugins/pluginCatalog.d.ts +45 -0
- package/dist/plugins/pluginCatalog.js +87 -0
- package/dist/plugins/pluginCommandHook.d.ts +6 -0
- package/dist/plugins/pluginCommandHook.js +25 -8
- package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
- package/dist/plugins/pluginCommandsLoader.js +181 -7
- package/dist/plugins/pluginContent.d.ts +10 -1
- package/dist/plugins/pluginContent.js +87 -30
- package/dist/plugins/pluginHookApproval.d.ts +30 -0
- package/dist/plugins/pluginHookApproval.js +160 -0
- package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
- package/dist/plugins/pluginHookIntegrity.js +361 -0
- package/dist/plugins/pluginInstaller.js +71 -12
- package/dist/plugins/pluginMcpApproval.d.ts +19 -0
- package/dist/plugins/pluginMcpApproval.js +110 -0
- package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
- package/dist/plugins/pluginMcpIntegrity.js +74 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/varRewrite.d.ts +9 -5
- package/dist/plugins/varRewrite.js +26 -17
- package/dist/preset/index.d.ts +11 -8
- package/dist/preset/index.js +62 -203
- package/dist/product/define.js +9 -3
- package/dist/product/types.d.ts +0 -2
- package/dist/profile/activation.d.ts +36 -0
- package/dist/profile/activation.js +57 -0
- package/dist/profile/catalog-store.d.ts +77 -0
- package/dist/profile/catalog-store.js +346 -0
- package/dist/profile/catalog.d.ts +54 -0
- package/dist/profile/catalog.js +152 -0
- package/dist/profile/index.d.ts +7 -0
- package/dist/profile/index.js +7 -0
- package/dist/profile/requirements.d.ts +76 -0
- package/dist/profile/requirements.js +117 -0
- package/dist/profile/resolve.d.ts +11 -0
- package/dist/profile/resolve.js +41 -0
- package/dist/profile/store.d.ts +17 -0
- package/dist/profile/store.js +167 -0
- package/dist/profile/types.d.ts +321 -0
- package/dist/profile/types.js +104 -0
- package/dist/prompt/composer.d.ts +46 -7
- package/dist/prompt/composer.js +78 -48
- package/dist/prompt/instruction-scanner.d.ts +6 -5
- package/dist/prompt/instruction-scanner.js +8 -23
- package/dist/prompt/section-loader.d.ts +2 -2
- package/dist/prompt/section-loader.js +7 -4
- package/dist/prompt/sections/browser.md +10 -9
- package/dist/prompt/sections/harness-base.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +64 -1
- package/dist/protocol/chat-session-manager.js +104 -0
- package/dist/protocol/chat-session.d.ts +61 -10
- package/dist/protocol/chat-session.js +135 -25
- package/dist/protocol/client.d.ts +33 -3
- package/dist/protocol/client.js +96 -5
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +2 -2
- package/dist/protocol/mobile-remote-types.d.ts +406 -0
- package/dist/protocol/mobile-remote-types.js +1 -0
- package/dist/protocol/server.d.ts +127 -3
- package/dist/protocol/server.js +1309 -182
- package/dist/protocol/types.d.ts +152 -34
- package/dist/protocol/types.js +16 -0
- package/dist/run/ArtifactTracker.d.ts +6 -1
- package/dist/run/ArtifactTracker.js +29 -21
- package/dist/run/EngineRunner.d.ts +2 -0
- package/dist/run/EngineRunner.js +1 -0
- package/dist/run/RunManager.d.ts +26 -0
- package/dist/run/RunManager.js +82 -11
- package/dist/run/factory.d.ts +3 -0
- package/dist/run/factory.js +2 -0
- package/dist/runtime/safe-spawn.d.ts +6 -0
- package/dist/runtime/safe-spawn.js +8 -13
- package/dist/services/auto-dream.d.ts +13 -1
- package/dist/services/auto-dream.js +56 -8
- package/dist/services/dream-consolidation.js +10 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.js +4 -1
- package/dist/services/session-memory.d.ts +4 -4
- package/dist/services/session-memory.js +13 -10
- package/dist/session/memory.d.ts +26 -7
- package/dist/session/memory.js +79 -21
- package/dist/session/session-manager.d.ts +182 -28
- package/dist/session/session-manager.js +910 -130
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +46 -5
- package/dist/session/transcript.js +159 -3
- package/dist/settings/feature-flags.d.ts +40 -0
- package/dist/settings/feature-flags.js +40 -0
- package/dist/settings/manager.d.ts +39 -1
- package/dist/settings/manager.js +102 -41
- package/dist/settings/migrate-config.js +4 -2
- package/dist/settings/schema.d.ts +511 -177
- package/dist/settings/schema.js +98 -25
- package/dist/skills/scanner.d.ts +6 -2
- package/dist/skills/scanner.js +160 -9
- package/dist/sources/adapter.d.ts +14 -0
- package/dist/sources/adapter.js +7 -0
- package/dist/sources/adapters/local-files.d.ts +10 -0
- package/dist/sources/adapters/local-files.js +127 -0
- package/dist/sources/adapters/mcp-resource.d.ts +17 -0
- package/dist/sources/adapters/mcp-resource.js +41 -0
- package/dist/sources/adapters/mock.d.ts +3 -0
- package/dist/sources/adapters/mock.js +29 -0
- package/dist/sources/binding.d.ts +6 -0
- package/dist/sources/binding.js +24 -0
- package/dist/sources/catalog.d.ts +6 -0
- package/dist/sources/catalog.js +64 -0
- package/dist/sources/context-summary.d.ts +8 -0
- package/dist/sources/context-summary.js +13 -0
- package/dist/sources/credential-status.d.ts +2 -0
- package/dist/sources/credential-status.js +13 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/resolve.d.ts +28 -0
- package/dist/sources/resolve.js +47 -0
- package/dist/sources/truncate-utf8.d.ts +7 -0
- package/dist/sources/truncate-utf8.js +18 -0
- package/dist/sources/types.d.ts +71 -0
- package/dist/sources/types.js +26 -0
- package/dist/testing/fetch-stub.d.ts +32 -0
- package/dist/testing/fetch-stub.js +24 -0
- package/dist/themes/image.d.ts +18 -0
- package/dist/themes/image.js +117 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.js +4 -0
- package/dist/themes/installer.d.ts +50 -0
- package/dist/themes/installer.js +290 -0
- package/dist/themes/manifest.d.ts +102 -0
- package/dist/themes/manifest.js +86 -0
- package/dist/themes/paths.d.ts +14 -0
- package/dist/themes/paths.js +33 -0
- package/dist/tool-system/browser-bridge.d.ts +53 -11
- package/dist/tool-system/browser-bridge.js +8 -9
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
- package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
- package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
- package/dist/tool-system/builtin/agent-notifications.js +291 -101
- package/dist/tool-system/builtin/agent-output-file.js +1 -3
- package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
- package/dist/tool-system/builtin/agent-progress.js +83 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
- package/dist/tool-system/builtin/agent-registry.js +178 -9
- package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
- package/dist/tool-system/builtin/agent.d.ts +2 -0
- package/dist/tool-system/builtin/agent.js +274 -33
- package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
- package/dist/tool-system/builtin/background-jobs.js +96 -4
- package/dist/tool-system/builtin/background-work.d.ts +6 -0
- package/dist/tool-system/builtin/background-work.js +8 -1
- package/dist/tool-system/builtin/bash.js +5 -2
- package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
- package/dist/tool-system/builtin/browser-tools.js +89 -23
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
- package/dist/tool-system/builtin/edit.js +2 -6
- package/dist/tool-system/builtin/file-cache.d.ts +2 -0
- package/dist/tool-system/builtin/file-cache.js +4 -0
- package/dist/tool-system/builtin/generate-image.js +17 -10
- package/dist/tool-system/builtin/generate-video.js +26 -7
- package/dist/tool-system/builtin/grep.js +2 -2
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +32 -7
- package/dist/tool-system/builtin/index.js +237 -167
- package/dist/tool-system/builtin/memory.d.ts +6 -0
- package/dist/tool-system/builtin/memory.js +36 -15
- package/dist/tool-system/builtin/panel.d.ts +9 -0
- package/dist/tool-system/builtin/panel.js +314 -0
- package/dist/tool-system/builtin/read.js +5 -1
- package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
- package/dist/tool-system/builtin/send-message-to-session.js +67 -0
- package/dist/tool-system/builtin/sources.d.ts +8 -0
- package/dist/tool-system/builtin/sources.js +137 -0
- package/dist/tool-system/builtin/tool-search.js +7 -2
- package/dist/tool-system/builtin/update-automation-memory.js +2 -0
- package/dist/tool-system/builtin/web-fetch.js +17 -13
- package/dist/tool-system/builtin/web-search.js +1 -3
- package/dist/tool-system/capability-module.d.ts +93 -0
- package/dist/tool-system/capability-module.js +53 -0
- package/dist/tool-system/context.d.ts +77 -19
- package/dist/tool-system/executor.js +75 -50
- package/dist/tool-system/external-tool-exposure.d.ts +60 -0
- package/dist/tool-system/external-tool-exposure.js +304 -0
- package/dist/tool-system/mcp-manager.d.ts +11 -1
- package/dist/tool-system/mcp-manager.js +19 -4
- package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
- package/dist/tool-system/mcp-tool-policy.js +34 -0
- package/dist/tool-system/panel-bridge.d.ts +53 -0
- package/dist/tool-system/panel-bridge.js +1 -0
- package/dist/tool-system/permission.d.ts +26 -0
- package/dist/tool-system/permission.js +46 -0
- package/dist/tool-system/registry.d.ts +12 -1
- package/dist/tool-system/registry.js +31 -7
- package/dist/tool-system/sandbox/index.js +3 -8
- package/dist/tool-system/sandbox/seatbelt.js +2 -6
- package/dist/tool-system/session-tool-host.d.ts +139 -0
- package/dist/tool-system/session-tool-host.js +167 -0
- package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
- package/dist/tool-system/testing/tool-registry-harness.js +51 -0
- package/dist/tool-system/validation.d.ts +14 -7
- package/dist/tool-system/validation.js +701 -7
- package/dist/types.d.ts +186 -20
- package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
- package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
- package/dist/utils/file-mutex.d.ts +65 -0
- package/dist/utils/file-mutex.js +145 -0
- package/dist/utils/json.d.ts +2 -4
- package/dist/utils/json.js +2 -4
- package/dist/utils/lockfile.d.ts +30 -1
- package/dist/utils/lockfile.js +2 -2
- package/dist/utils/secret-scrubber.d.ts +8 -0
- package/dist/utils/secret-scrubber.js +227 -0
- package/dist/utils/toolDisplay.js +1 -1
- package/package.json +20 -5
- package/THIRD_PARTY_NOTICES.md +0 -206
- package/dist/arena/arena.d.ts +0 -45
- package/dist/arena/arena.js +0 -362
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/context/context-tools.js +0 -272
- package/dist/arena/context/within-root.d.ts +0 -7
- package/dist/arena/context/within-root.js +0 -15
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/detect-mode.js +0 -78
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/digest-builder.js +0 -120
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -29
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/convergence.js +0 -103
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/formats/index.js +0 -283
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/index.js +0 -9
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/iterative-arena.js +0 -237
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/parse.js +0 -123
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/argue.js +0 -165
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/revise.js +0 -62
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/phases/tournament.js +0 -113
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/tools/web-tools.js +0 -54
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/iterate/types.js +0 -8
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/ledger.js +0 -159
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/architecture.js +0 -22
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/engineering.js +0 -22
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/general.js +0 -20
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/index.js +0 -47
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/lenses/product.js +0 -22
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/model-presets.js +0 -44
- package/dist/arena/phases/adjudication.d.ts +0 -25
- package/dist/arena/phases/adjudication.js +0 -142
- package/dist/arena/phases/build-consensus.d.ts +0 -30
- package/dist/arena/phases/build-consensus.js +0 -85
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/claim-registry.js +0 -60
- package/dist/arena/phases/cross-review.d.ts +0 -47
- package/dist/arena/phases/cross-review.js +0 -224
- package/dist/arena/phases/debate-rounds.d.ts +0 -28
- package/dist/arena/phases/debate-rounds.js +0 -161
- package/dist/arena/phases/participant-research.d.ts +0 -39
- package/dist/arena/phases/participant-research.js +0 -316
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
- package/dist/arena/phases/planning-detail-expansion.js +0 -120
- package/dist/arena/planner.d.ts +0 -28
- package/dist/arena/planner.js +0 -312
- package/dist/arena/providers/docs.d.ts +0 -7
- package/dist/arena/providers/docs.js +0 -111
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/git.js +0 -174
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/index.js +0 -132
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/none.js +0 -11
- package/dist/arena/providers/repo.d.ts +0 -7
- package/dist/arena/providers/repo.js +0 -258
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/session.js +0 -190
- package/dist/arena/render/terminal.d.ts +0 -34
- package/dist/arena/render/terminal.js +0 -286
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/discussion.js +0 -143
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/index.js +0 -28
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/language-wrapper.js +0 -102
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/lens-wrapper.js +0 -236
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/planning.js +0 -225
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/review.js +0 -168
- package/dist/arena/strategies/utils.d.ts +0 -36
- package/dist/arena/strategies/utils.js +0 -603
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/tools/selector.js +0 -61
- package/dist/arena/transitions.d.ts +0 -53
- package/dist/arena/transitions.js +0 -97
- package/dist/arena/types.d.ts +0 -518
- package/dist/arena/types.js +0 -27
- package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
- package/dist/cc-orchestrator/agent-adapter.js +0 -143
- package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
- package/dist/cc-orchestrator/cc-capability.js +0 -53
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
- package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
- package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
- package/dist/cc-orchestrator/codex-session-history.js +0 -247
- package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
- package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
- package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-changes.js +0 -231
- package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-driver.js +0 -284
- package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
- package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
- package/dist/cc-orchestrator/index.d.ts +0 -8
- package/dist/cc-orchestrator/index.js +0 -8
- package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
- package/dist/cc-orchestrator/relevance-judge.js +0 -29
- package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
- package/dist/cc-orchestrator/session-discovery.js +0 -125
- package/dist/cc-orchestrator/session-history.d.ts +0 -54
- package/dist/cc-orchestrator/session-history.js +0 -150
- package/dist/cron/cron-runtime.d.ts +0 -2
- package/dist/cron/cron-runtime.js +0 -2
- package/dist/cron/cron-store.d.ts +0 -2
- package/dist/cron/cron-store.js +0 -2
- package/dist/cron/scheduler.d.ts +0 -7
- package/dist/cron/scheduler.js +0 -7
- package/dist/engine/goal.js +0 -206
- package/dist/external-agents/config.d.ts +0 -2
- package/dist/external-agents/config.js +0 -15
- package/dist/external-agents/types.d.ts +0 -31
- package/dist/git/parse-log.d.ts +0 -13
- package/dist/git/parse-log.js +0 -21
- package/dist/git/utils.d.ts +0 -49
- package/dist/git/utils.js +0 -161
- package/dist/git/worktree/crud.d.ts +0 -72
- package/dist/git/worktree/crud.js +0 -235
- package/dist/git/worktree/diff.d.ts +0 -14
- package/dist/git/worktree/diff.js +0 -82
- package/dist/git/worktree/git-exec.d.ts +0 -7
- package/dist/git/worktree/git-exec.js +0 -87
- package/dist/git/worktree/index.d.ts +0 -5
- package/dist/git/worktree/index.js +0 -5
- package/dist/git/worktree/query.d.ts +0 -43
- package/dist/git/worktree/query.js +0 -128
- package/dist/git/worktree/slug.d.ts +0 -11
- package/dist/git/worktree/slug.js +0 -58
- package/dist/git/worktree.d.ts +0 -1
- package/dist/git/worktree.js +0 -5
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/client.js +0 -186
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/manager.js +0 -155
- package/dist/lsp/root-path.d.ts +0 -9
- package/dist/lsp/root-path.js +0 -12
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/lsp/servers.js +0 -60
- package/dist/prompt/sections/coding.md +0 -35
- package/dist/quota/credentials.d.ts +0 -3
- package/dist/quota/credentials.js +0 -80
- package/dist/quota/index.d.ts +0 -36
- package/dist/quota/index.js +0 -155
- package/dist/quota/types.d.ts +0 -48
- package/dist/quota/types.js +0 -13
- package/dist/review/review-prompt.d.ts +0 -28
- package/dist/review/review-prompt.js +0 -81
- package/dist/state.d.ts +0 -160
- package/dist/state.js +0 -267
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
- package/dist/tool-system/builtin/apply-patch/index.js +0 -105
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/apply-patch/types.js +0 -13
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/arena.js +0 -416
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/brief.js +0 -41
- package/dist/tool-system/builtin/check-quota.d.ts +0 -15
- package/dist/tool-system/builtin/check-quota.js +0 -34
- package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
- package/dist/tool-system/builtin/drive-claude-code.js +0 -698
- package/dist/tool-system/builtin/lsp.d.ts +0 -7
- package/dist/tool-system/builtin/lsp.js +0 -144
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -127
- package/dist/tool-system/builtin/worktree.d.ts +0 -11
- package/dist/tool-system/builtin/worktree.js +0 -363
- /package/dist/{external-agents → links}/types.js +0 -0
- /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
- /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type LinkActionRisk = "discovery" | "read" | "write";
|
|
2
|
+
export interface LocalLinkIdentity {
|
|
3
|
+
externalAccountId: string;
|
|
4
|
+
label: string;
|
|
5
|
+
detail?: string;
|
|
6
|
+
/** Safe, non-secret resource labels that may be previewed in the Link card. */
|
|
7
|
+
resourceLabels?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface LocalLinkValidationResult {
|
|
10
|
+
providerId: string;
|
|
11
|
+
identity: LocalLinkIdentity;
|
|
12
|
+
capabilityIds: string[];
|
|
13
|
+
verifiedAt: string;
|
|
14
|
+
}
|
|
15
|
+
export interface LocalLinkActionSummary {
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
risk: LinkActionRisk;
|
|
20
|
+
}
|
|
21
|
+
export interface LocalLinkProviderSummary {
|
|
22
|
+
id: string;
|
|
23
|
+
displayName: string;
|
|
24
|
+
tokenLabel: string;
|
|
25
|
+
tokenPlaceholder: string;
|
|
26
|
+
actions: LocalLinkActionSummary[];
|
|
27
|
+
}
|
|
28
|
+
export interface LocalLinkActionContext {
|
|
29
|
+
token: string;
|
|
30
|
+
params: Record<string, unknown>;
|
|
31
|
+
signal?: AbortSignal;
|
|
32
|
+
fetchImpl?: typeof fetch;
|
|
33
|
+
}
|
|
34
|
+
export interface LocalLinkActionSpec extends LocalLinkActionSummary {
|
|
35
|
+
execute(context: LocalLinkActionContext): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
export interface LocalLinkProviderSpec {
|
|
38
|
+
id: string;
|
|
39
|
+
displayName: string;
|
|
40
|
+
tokenLabel: string;
|
|
41
|
+
tokenPlaceholder: string;
|
|
42
|
+
validate(context: Omit<LocalLinkActionContext, "params">): Promise<LocalLinkIdentity>;
|
|
43
|
+
actions: LocalLinkActionSpec[];
|
|
44
|
+
}
|
|
@@ -31,6 +31,13 @@ export declare abstract class LLMClientBase {
|
|
|
31
31
|
abstract createMessage(options: CreateMessageOptions): Promise<LLMResponse>;
|
|
32
32
|
protected recordUsage(usage: TokenUsage, options?: CreateMessageOptions): void;
|
|
33
33
|
getUsage(): LLMUsageTracker;
|
|
34
|
+
/**
|
|
35
|
+
* Cache-relevant request identity only. Credentials, retry/timeout policy,
|
|
36
|
+
* arbitrary catalog payloads, and endpoint text are deliberately excluded.
|
|
37
|
+
*/
|
|
38
|
+
getPromptCacheConfigIdentity(): Readonly<Record<string, unknown>>;
|
|
39
|
+
/** Cache namespace identity with a normalized, credential-free endpoint. */
|
|
40
|
+
getPromptCacheScopeIdentity(): Readonly<Record<string, unknown>>;
|
|
34
41
|
/** Zero all accumulated usage. Used when starting a fresh accounting window
|
|
35
42
|
* (e.g. after a model switch, where the prior model's cache stats no longer
|
|
36
43
|
* apply). */
|
package/dist/llm/client-base.js
CHANGED
|
@@ -70,6 +70,46 @@ export class LLMClientBase {
|
|
|
70
70
|
getUsage() {
|
|
71
71
|
return { ...this.usage };
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Cache-relevant request identity only. Credentials, retry/timeout policy,
|
|
75
|
+
* arbitrary catalog payloads, and endpoint text are deliberately excluded.
|
|
76
|
+
*/
|
|
77
|
+
getPromptCacheConfigIdentity() {
|
|
78
|
+
const allowedExtraBodyKeys = new Set([
|
|
79
|
+
"temperature",
|
|
80
|
+
"top_p",
|
|
81
|
+
"thinking",
|
|
82
|
+
"reasoning",
|
|
83
|
+
"reasoning_effort",
|
|
84
|
+
"max_tokens",
|
|
85
|
+
"max_completion_tokens",
|
|
86
|
+
"service_tier",
|
|
87
|
+
]);
|
|
88
|
+
const extraBody = Object.fromEntries(Object.entries(this.config.extraBody ?? {}).filter(([key]) => allowedExtraBodyKeys.has(key)));
|
|
89
|
+
return {
|
|
90
|
+
provider: this.provider,
|
|
91
|
+
providerKind: this.config.providerKind ?? this.provider,
|
|
92
|
+
model: this.model,
|
|
93
|
+
...(this.maxTokens !== undefined ? { maxTokens: this.maxTokens } : {}),
|
|
94
|
+
...(this.config.reasoning !== undefined ? { reasoning: this.config.reasoning } : {}),
|
|
95
|
+
...(this.config.reasoningSummary !== undefined
|
|
96
|
+
? { reasoningSummary: this.config.reasoningSummary }
|
|
97
|
+
: {}),
|
|
98
|
+
...(this.config.serviceTier !== undefined ? { serviceTier: this.config.serviceTier } : {}),
|
|
99
|
+
temperature: this.temperature,
|
|
100
|
+
...(this.imageDetail !== undefined ? { imageDetail: this.imageDetail } : {}),
|
|
101
|
+
...(Object.keys(extraBody).length > 0 ? { extraBody } : {}),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** Cache namespace identity with a normalized, credential-free endpoint. */
|
|
105
|
+
getPromptCacheScopeIdentity() {
|
|
106
|
+
return {
|
|
107
|
+
provider: this.provider,
|
|
108
|
+
providerKind: this.config.providerKind ?? this.provider,
|
|
109
|
+
model: this.model,
|
|
110
|
+
endpoint: normalizeCacheEndpoint(this.config.baseUrl),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
73
113
|
/** Zero all accumulated usage. Used when starting a fresh accounting window
|
|
74
114
|
* (e.g. after a model switch, where the prior model's cache stats no longer
|
|
75
115
|
* apply). */
|
|
@@ -228,6 +268,26 @@ export class LLMClientBase {
|
|
|
228
268
|
throw lastError ?? new LLMError("Unknown LLM error");
|
|
229
269
|
}
|
|
230
270
|
}
|
|
271
|
+
function normalizeCacheEndpoint(baseUrl) {
|
|
272
|
+
if (!baseUrl)
|
|
273
|
+
return "(provider-default)";
|
|
274
|
+
try {
|
|
275
|
+
const url = new URL(baseUrl);
|
|
276
|
+
url.username = "";
|
|
277
|
+
url.password = "";
|
|
278
|
+
url.search = "";
|
|
279
|
+
url.hash = "";
|
|
280
|
+
const path = url.pathname.replace(/\/+$/u, "") || "/";
|
|
281
|
+
const port = (url.protocol === "https:" && url.port === "443") ||
|
|
282
|
+
(url.protocol === "http:" && url.port === "80")
|
|
283
|
+
? ""
|
|
284
|
+
: url.port;
|
|
285
|
+
return `${url.protocol.toLocaleLowerCase()}//${url.hostname.toLocaleLowerCase()}${port ? `:${port}` : ""}${path}`;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return "(custom-endpoint)";
|
|
289
|
+
}
|
|
290
|
+
}
|
|
231
291
|
/**
|
|
232
292
|
* Sleep `ms`, but wake immediately if `signal` aborts. Returns true when it
|
|
233
293
|
* woke due to an abort (caller should bail), false on a normal timeout.
|
package/dist/llm/model-pool.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Consumers:
|
|
11
11
|
* - Engine/TurnLoop: `pool.get()` for the active model
|
|
12
|
-
* -
|
|
12
|
+
* - Product capabilities: `pool.get("sonnet")` to resolve a model by key
|
|
13
13
|
* - /model command: `pool.switch("haiku")` for hot-swap
|
|
14
14
|
*/
|
|
15
15
|
import type { LLMConfig } from "../types.js";
|
package/dist/llm/model-pool.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Consumers:
|
|
11
11
|
* - Engine/TurnLoop: `pool.get()` for the active model
|
|
12
|
-
* -
|
|
12
|
+
* - Product capabilities: `pool.get("sonnet")` to resolve a model by key
|
|
13
13
|
* - /model command: `pool.switch("haiku")` for hot-swap
|
|
14
14
|
*/
|
|
15
15
|
import { readCache } from "./model-cache.js";
|
|
@@ -16,6 +16,7 @@ export declare class AnthropicClient extends LLMClientBase {
|
|
|
16
16
|
*/
|
|
17
17
|
private _capability;
|
|
18
18
|
private get capability();
|
|
19
|
+
getPromptCacheConfigIdentity(): Readonly<Record<string, unknown>>;
|
|
19
20
|
/**
|
|
20
21
|
* Translate the resolved ReasoningSetting into Anthropic's `thinking` field,
|
|
21
22
|
* honoring the model's reasoning shape (rules.ts):
|
|
@@ -55,6 +55,15 @@ export class AnthropicClient extends LLMClientBase {
|
|
|
55
55
|
}
|
|
56
56
|
return this._capability;
|
|
57
57
|
}
|
|
58
|
+
getPromptCacheConfigIdentity() {
|
|
59
|
+
return {
|
|
60
|
+
...super.getPromptCacheConfigIdentity(),
|
|
61
|
+
cacheStrategy: "anthropic-explicit",
|
|
62
|
+
cacheLayoutVersion: "system-tools-history-v1",
|
|
63
|
+
breakpointCount: 3,
|
|
64
|
+
reasoningShape: this.capability.reasoning,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
58
67
|
/**
|
|
59
68
|
* Translate the resolved ReasoningSetting into Anthropic's `thinking` field,
|
|
60
69
|
* honoring the model's reasoning shape (rules.ts):
|
|
@@ -77,6 +77,7 @@ export declare class OpenAIClient extends LLMClientBase {
|
|
|
77
77
|
* "anthropic/".
|
|
78
78
|
*/
|
|
79
79
|
private get isOpenRouterAnthropic();
|
|
80
|
+
getPromptCacheConfigIdentity(): Readonly<Record<string, unknown>>;
|
|
80
81
|
createMessage(options: CreateMessageOptions): Promise<LLMResponse>;
|
|
81
82
|
/**
|
|
82
83
|
* Build the request body honoring the model's capability descriptor.
|
|
@@ -212,6 +212,23 @@ export class OpenAIClient extends LLMClientBase {
|
|
|
212
212
|
get isOpenRouterAnthropic() {
|
|
213
213
|
return this.config.providerKind === "openrouter" && /^~?anthropic\//.test(this.model);
|
|
214
214
|
}
|
|
215
|
+
getPromptCacheConfigIdentity() {
|
|
216
|
+
const capability = this.capability;
|
|
217
|
+
return {
|
|
218
|
+
...super.getPromptCacheConfigIdentity(),
|
|
219
|
+
cacheStrategy: this.isOpenRouterAnthropic
|
|
220
|
+
? "openrouter-anthropic-explicit"
|
|
221
|
+
: "provider-automatic",
|
|
222
|
+
cacheLayoutVersion: this.isOpenRouterAnthropic ? "system-history-v1" : "automatic-v1",
|
|
223
|
+
tokenLimitField: this._forceMaxCompletionTokens
|
|
224
|
+
? "max_completion_tokens"
|
|
225
|
+
: capability.tokenLimitField,
|
|
226
|
+
reasoningShape: capability.reasoning,
|
|
227
|
+
rejectedParams: [...capability.rejectedParams].sort(),
|
|
228
|
+
forceMaxCompletionTokens: this._forceMaxCompletionTokens,
|
|
229
|
+
dropReasoningEffort: this._dropReasoningEffort,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
215
232
|
async createMessage(options) {
|
|
216
233
|
return this.withRetry(async (requestSignal) => {
|
|
217
234
|
// requestSignal = caller's cancel signal composed with a per-request
|
|
@@ -51,8 +51,21 @@ export function getMergedCatalog() {
|
|
|
51
51
|
const byId = new Map();
|
|
52
52
|
for (const e of BUILTIN_CATALOG)
|
|
53
53
|
byId.set(e.id, e);
|
|
54
|
-
for (const
|
|
55
|
-
byId.
|
|
54
|
+
for (const userEntry of loadUserCatalog()) {
|
|
55
|
+
const base = byId.get(userEntry.id);
|
|
56
|
+
if (!base || userEntry.modelPresetsMode !== "merge") {
|
|
57
|
+
byId.set(userEntry.id, userEntry); // legacy/full user override
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const presets = new Map((base.modelPresets ?? []).map((preset) => [preset.value, preset]));
|
|
61
|
+
for (const preset of userEntry.modelPresets ?? [])
|
|
62
|
+
presets.set(preset.value, preset);
|
|
63
|
+
byId.set(userEntry.id, {
|
|
64
|
+
...base,
|
|
65
|
+
...userEntry,
|
|
66
|
+
modelPresets: [...presets.values()],
|
|
67
|
+
});
|
|
68
|
+
}
|
|
56
69
|
return [...byId.values()];
|
|
57
70
|
}
|
|
58
71
|
/**
|
|
@@ -40,9 +40,21 @@ export interface ResolvedInstance {
|
|
|
40
40
|
model: string;
|
|
41
41
|
paramValues: Record<string, unknown>;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* A credential may be shared by multiple catalog entries only when they refer
|
|
45
|
+
* to the same provider family AND endpoint origin. This preserves intentional
|
|
46
|
+
* sharing such as OpenAI text ↔ OpenAI Images/Transcribe while preventing an
|
|
47
|
+
* OpenAI account from being attached to an OpenRouter template merely because
|
|
48
|
+
* both speak the OpenAI-compatible protocol.
|
|
49
|
+
*
|
|
50
|
+
* An exact catalogId match remains authoritative: a credential can carry an
|
|
51
|
+
* explicit provider-specific baseUrl override for that catalog entry.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isCredentialCompatible(entry: CatalogEntry, credential: Credential, catalog: CatalogEntry[], connectionBaseUrl?: string): boolean;
|
|
43
54
|
/**
|
|
44
55
|
* Resolve `inst` against the credential list (for its key) and `catalog`.
|
|
45
|
-
* Returns null when the instance's catalogId resolves to no entry
|
|
56
|
+
* Returns null when the instance's catalogId resolves to no entry or an
|
|
57
|
+
* explicitly referenced credential belongs to a different provider/endpoint.
|
|
46
58
|
* baseUrl precedence: connection override → credential → catalog default.
|
|
47
59
|
*/
|
|
48
60
|
export declare function resolveInstance(inst: ModelInstance, credentials: Credential[], catalog: CatalogEntry[]): ResolvedInstance | null;
|
|
@@ -7,18 +7,53 @@
|
|
|
7
7
|
* See docs/superpowers/specs/2026-06-15-unified-model-catalog-design.md §6.
|
|
8
8
|
*/
|
|
9
9
|
import { findCatalogEntry } from "./index.js";
|
|
10
|
+
function endpointOrigin(baseUrl) {
|
|
11
|
+
if (!baseUrl)
|
|
12
|
+
return undefined;
|
|
13
|
+
try {
|
|
14
|
+
return new URL(baseUrl).origin.toLowerCase();
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A credential may be shared by multiple catalog entries only when they refer
|
|
22
|
+
* to the same provider family AND endpoint origin. This preserves intentional
|
|
23
|
+
* sharing such as OpenAI text ↔ OpenAI Images/Transcribe while preventing an
|
|
24
|
+
* OpenAI account from being attached to an OpenRouter template merely because
|
|
25
|
+
* both speak the OpenAI-compatible protocol.
|
|
26
|
+
*
|
|
27
|
+
* An exact catalogId match remains authoritative: a credential can carry an
|
|
28
|
+
* explicit provider-specific baseUrl override for that catalog entry.
|
|
29
|
+
*/
|
|
30
|
+
export function isCredentialCompatible(entry, credential, catalog, connectionBaseUrl) {
|
|
31
|
+
if (credential.catalogId === entry.id)
|
|
32
|
+
return true;
|
|
33
|
+
const credentialEntry = findCatalogEntry(catalog, credential.catalogId);
|
|
34
|
+
if (!credentialEntry || credentialEntry.adapterKind !== entry.adapterKind)
|
|
35
|
+
return false;
|
|
36
|
+
const connectionOrigin = endpointOrigin(connectionBaseUrl ?? entry.defaultBaseUrl);
|
|
37
|
+
const credentialOrigin = endpointOrigin(credential.baseUrl ?? credentialEntry.defaultBaseUrl);
|
|
38
|
+
return Boolean(connectionOrigin && credentialOrigin && connectionOrigin === credentialOrigin);
|
|
39
|
+
}
|
|
10
40
|
/**
|
|
11
41
|
* Resolve `inst` against the credential list (for its key) and `catalog`.
|
|
12
|
-
* Returns null when the instance's catalogId resolves to no entry
|
|
42
|
+
* Returns null when the instance's catalogId resolves to no entry or an
|
|
43
|
+
* explicitly referenced credential belongs to a different provider/endpoint.
|
|
13
44
|
* baseUrl precedence: connection override → credential → catalog default.
|
|
14
45
|
*/
|
|
15
46
|
export function resolveInstance(inst, credentials, catalog) {
|
|
16
47
|
const entry = findCatalogEntry(catalog, inst.catalogId);
|
|
17
48
|
if (!entry)
|
|
18
49
|
return null;
|
|
19
|
-
const
|
|
50
|
+
const candidate = inst.credentialId
|
|
20
51
|
? credentials.find((c) => c.id === inst.credentialId)
|
|
21
52
|
: undefined;
|
|
53
|
+
if (candidate && !isCredentialCompatible(entry, candidate, catalog, inst.baseUrl)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const cred = candidate;
|
|
22
57
|
const preset = entry.modelPresets?.find((p) => p.value === inst.model);
|
|
23
58
|
return {
|
|
24
59
|
entry,
|