@cjhyy/code-shell-core 0.5.0-rc.1 → 0.6.0-rc.1
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 +13 -10
- package/dist/agent/agent-definition-registry.d.ts +21 -3
- package/dist/agent/agent-definition-registry.js +49 -18
- package/dist/agent/agent-definition.d.ts +32 -0
- package/dist/agent/agent-definition.js +49 -4
- package/dist/arena/arena.js +11 -12
- package/dist/arena/context/context-tools.js +47 -6
- package/dist/arena/context/within-root.d.ts +7 -0
- package/dist/arena/context/within-root.js +15 -0
- package/dist/arena/iterate/phases/argue.js +8 -2
- package/dist/arena/iterate/phases/revise.js +1 -1
- package/dist/arena/iterate/phases/tournament.js +3 -3
- package/dist/arena/ledger.js +9 -1
- package/dist/arena/phases/adjudication.js +1 -4
- package/dist/arena/phases/build-consensus.js +1 -4
- package/dist/arena/phases/cross-review.js +2 -8
- package/dist/arena/phases/debate-rounds.js +1 -4
- package/dist/arena/phases/participant-research.js +1 -4
- package/dist/arena/phases/planning-detail-expansion.js +8 -10
- package/dist/arena/planner.js +0 -1
- package/dist/arena/providers/docs.d.ts +1 -0
- package/dist/arena/providers/docs.js +5 -2
- package/dist/arena/providers/repo.d.ts +1 -0
- package/dist/arena/providers/repo.js +5 -2
- package/dist/arena/strategies/utils.d.ts +1 -4
- package/dist/arena/strategies/utils.js +7 -51
- package/dist/arena/transitions.d.ts +7 -2
- package/dist/arena/transitions.js +9 -4
- package/dist/arena/types.d.ts +8 -2
- package/dist/automation/cron-expr.d.ts +41 -0
- package/dist/automation/cron-expr.js +169 -0
- package/dist/automation/index.d.ts +41 -0
- package/dist/automation/index.js +39 -0
- package/dist/automation/runner.d.ts +84 -0
- package/dist/automation/runner.js +92 -0
- package/dist/automation/scheduler.d.ts +194 -0
- package/dist/automation/scheduler.js +623 -0
- package/dist/automation/store.d.ts +39 -0
- package/dist/automation/store.js +122 -0
- package/dist/automation/write-policy.d.ts +34 -0
- package/dist/automation/write-policy.js +113 -0
- package/dist/automation/write-run.d.ts +51 -0
- package/dist/automation/write-run.js +38 -0
- package/dist/capability-control/disabled-lists.d.ts +25 -0
- package/dist/capability-control/disabled-lists.js +57 -0
- package/dist/capability-control/index.d.ts +5 -0
- package/dist/capability-control/index.js +3 -0
- package/dist/capability-control/overlay.d.ts +64 -0
- package/dist/capability-control/overlay.js +116 -0
- package/dist/capability-control/project.d.ts +65 -0
- package/dist/capability-control/project.js +147 -0
- package/dist/capability-control/service.d.ts +70 -0
- package/dist/capability-control/service.js +147 -0
- package/dist/capability-control/types.d.ts +62 -0
- package/dist/capability-control/types.js +17 -0
- package/dist/cc-orchestrator/agent-adapter.d.ts +50 -0
- package/dist/cc-orchestrator/agent-adapter.js +133 -0
- package/dist/cc-orchestrator/cc-capability.d.ts +19 -0
- package/dist/cc-orchestrator/cc-capability.js +53 -0
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +24 -0
- package/dist/cc-orchestrator/codex-session-discovery.js +191 -0
- package/dist/cc-orchestrator/codex-session-history.d.ts +25 -0
- package/dist/cc-orchestrator/codex-session-history.js +187 -0
- package/dist/cc-orchestrator/external-agent-changes.d.ts +19 -0
- package/dist/cc-orchestrator/external-agent-changes.js +214 -0
- package/dist/cc-orchestrator/external-agent-driver.d.ts +18 -0
- package/dist/cc-orchestrator/external-agent-driver.js +69 -0
- package/dist/cc-orchestrator/index.d.ts +8 -0
- package/dist/cc-orchestrator/index.js +8 -0
- package/dist/cc-orchestrator/relevance-judge.d.ts +15 -0
- package/dist/cc-orchestrator/relevance-judge.js +29 -0
- package/dist/cc-orchestrator/session-discovery.d.ts +46 -0
- package/dist/cc-orchestrator/session-discovery.js +125 -0
- package/dist/cc-orchestrator/session-history.d.ts +19 -0
- package/dist/cc-orchestrator/session-history.js +67 -0
- package/dist/cli/agent-server-stdio.d.ts +26 -1
- package/dist/cli/agent-server-stdio.js +221 -28
- package/dist/cli/agent-server-tcp.d.ts +20 -0
- package/dist/cli/agent-server-tcp.js +134 -0
- package/dist/cli/graceful-shutdown.d.ts +27 -0
- package/dist/cli/graceful-shutdown.js +30 -0
- package/dist/context/compaction.d.ts +56 -0
- package/dist/context/compaction.js +209 -15
- package/dist/context/manager.d.ts +0 -20
- package/dist/context/manager.js +25 -41
- package/dist/cost-tracker.js +5 -61
- package/dist/credentials/cipher.d.ts +49 -0
- package/dist/credentials/cipher.js +45 -0
- package/dist/credentials/cookie-jar.d.ts +24 -0
- package/dist/credentials/cookie-jar.js +40 -0
- package/dist/credentials/index.d.ts +7 -0
- package/dist/credentials/index.js +5 -0
- package/dist/credentials/inject-credential-tool.d.ts +20 -0
- package/dist/credentials/inject-credential-tool.js +130 -0
- package/dist/credentials/store.d.ts +72 -0
- package/dist/credentials/store.js +184 -0
- package/dist/credentials/types.d.ts +56 -0
- package/dist/credentials/use-credential-tool.d.ts +29 -0
- package/dist/credentials/use-credential-tool.js +205 -0
- package/dist/credentials/use-gate.d.ts +56 -0
- package/dist/credentials/use-gate.js +52 -0
- package/dist/cron/cron-runtime.d.ts +2 -0
- package/dist/cron/cron-runtime.js +2 -0
- package/dist/cron/cron-store.d.ts +2 -0
- package/dist/cron/cron-store.js +2 -0
- package/dist/cron/scheduler.d.ts +5 -32
- package/dist/cron/scheduler.js +5 -113
- package/dist/data/model-metadata.d.ts +77 -0
- package/dist/data/model-metadata.js +56 -0
- package/dist/data/model-metadata.json +216 -0
- package/dist/data/openrouter-models.d.ts +18 -7
- package/dist/data/openrouter-models.js +35 -8
- package/dist/data/openrouter-sync.js +1 -1
- package/dist/engine/aux-key.d.ts +10 -0
- package/dist/engine/aux-key.js +11 -0
- package/dist/engine/dynamic-tool-defs.d.ts +19 -0
- package/dist/engine/dynamic-tool-defs.js +36 -0
- package/dist/engine/engine.d.ts +431 -108
- package/dist/engine/engine.js +1630 -279
- package/dist/engine/friendly-error.d.ts +18 -0
- package/dist/engine/friendly-error.js +63 -0
- package/dist/engine/goal.d.ts +187 -0
- package/dist/engine/goal.js +196 -0
- package/dist/engine/image-compression.d.ts +81 -0
- package/dist/engine/image-compression.js +186 -0
- package/dist/engine/image-policy.d.ts +165 -0
- package/dist/engine/image-policy.js +189 -0
- package/dist/engine/model-connections-pool.d.ts +17 -0
- package/dist/engine/model-connections-pool.js +66 -0
- package/dist/engine/model-facade.d.ts +10 -0
- package/dist/engine/model-facade.js +25 -0
- package/dist/engine/patch-orphaned-tools.js +3 -0
- package/dist/engine/reactive-threshold.d.ts +13 -0
- package/dist/engine/reactive-threshold.js +17 -0
- package/dist/engine/resolve-llm-config.d.ts +16 -0
- package/dist/engine/resolve-llm-config.js +44 -0
- package/dist/engine/runtime.js +9 -1
- package/dist/engine/sandbox-cache-key.d.ts +10 -0
- package/dist/engine/sandbox-cache-key.js +9 -0
- package/dist/engine/sandbox-config.d.ts +31 -0
- package/dist/engine/sandbox-config.js +38 -0
- package/dist/engine/session-title.d.ts +13 -0
- package/dist/engine/session-title.js +34 -0
- package/dist/engine/session-usage.d.ts +19 -0
- package/dist/engine/session-usage.js +25 -0
- package/dist/engine/steer-queue.d.ts +32 -0
- package/dist/engine/steer-queue.js +26 -0
- package/dist/engine/streaming-tool-queue.d.ts +12 -0
- package/dist/engine/streaming-tool-queue.js +50 -10
- package/dist/engine/turn-loop.d.ts +94 -9
- package/dist/engine/turn-loop.js +775 -342
- package/dist/engine/types.d.ts +175 -0
- package/dist/engine/types.js +13 -0
- package/dist/external-agents/config.d.ts +2 -0
- package/dist/external-agents/config.js +15 -0
- package/dist/external-agents/types.d.ts +31 -0
- package/dist/external-agents/types.js +1 -0
- package/dist/git/parse-log.d.ts +13 -0
- package/dist/git/parse-log.js +21 -0
- package/dist/git/utils.d.ts +8 -6
- package/dist/git/utils.js +62 -26
- package/dist/git/worktree.d.ts +48 -0
- package/dist/git/worktree.js +111 -20
- package/dist/hooks/events.d.ts +23 -1
- package/dist/hooks/goal-stop-hook.d.ts +58 -0
- package/dist/hooks/goal-stop-hook.js +279 -0
- package/dist/hooks/hook-output.d.ts +33 -0
- package/dist/hooks/hook-output.js +79 -0
- package/dist/hooks/registry.d.ts +15 -0
- package/dist/hooks/registry.js +57 -1
- package/dist/hooks/shell-runner.d.ts +2 -0
- package/dist/hooks/shell-runner.js +48 -18
- package/dist/index.d.ts +79 -11
- package/dist/index.js +89 -6
- package/dist/llm/capabilities/param-specs.d.ts +14 -0
- package/dist/llm/capabilities/param-specs.js +62 -0
- package/dist/llm/capabilities/reasoning-control.d.ts +24 -0
- package/dist/llm/capabilities/reasoning-control.js +38 -0
- package/dist/llm/capabilities/rules.js +37 -3
- package/dist/llm/capabilities/types.d.ts +32 -2
- package/dist/llm/clamp-max-tokens.d.ts +11 -0
- package/dist/llm/clamp-max-tokens.js +17 -0
- package/dist/llm/client-base.d.ts +69 -5
- package/dist/llm/client-base.js +185 -25
- package/dist/llm/client-factory.d.ts +3 -3
- package/dist/llm/client-factory.js +2 -2
- package/dist/llm/model-cache.js +4 -2
- package/dist/llm/model-pool.d.ts +29 -11
- package/dist/llm/model-pool.js +36 -20
- package/dist/llm/provider-auth.d.ts +41 -0
- package/dist/llm/provider-auth.js +76 -0
- package/dist/llm/provider-catalog.d.ts +6 -2
- package/dist/llm/providers/anthropic.d.ts +32 -2
- package/dist/llm/providers/anthropic.js +207 -18
- package/dist/llm/providers/openai.d.ts +47 -2
- package/dist/llm/providers/openai.js +478 -71
- package/dist/llm/reasoning-setting.d.ts +51 -0
- package/dist/llm/reasoning-setting.js +40 -0
- package/dist/llm/stop-reason.d.ts +13 -0
- package/dist/llm/stop-reason.js +21 -0
- package/dist/llm/stream-watchdog.js +5 -1
- package/dist/llm/strip-vision.d.ts +32 -0
- package/dist/llm/strip-vision.js +94 -0
- package/dist/llm/token-counter.js +9 -2
- package/dist/llm/types.d.ts +9 -6
- package/dist/logging/logger.js +18 -4
- package/dist/logging/sanitize-messages.d.ts +10 -0
- package/dist/logging/sanitize-messages.js +112 -0
- package/dist/lsp/client.js +28 -8
- package/dist/lsp/manager.d.ts +1 -1
- package/dist/lsp/manager.js +42 -11
- package/dist/lsp/root-path.d.ts +9 -0
- package/dist/lsp/root-path.js +12 -0
- package/dist/model-catalog/builtin.d.ts +12 -0
- package/dist/model-catalog/builtin.js +407 -0
- package/dist/model-catalog/gen-connections.d.ts +20 -0
- package/dist/model-catalog/gen-connections.js +28 -0
- package/dist/model-catalog/index.d.ts +41 -0
- package/dist/model-catalog/index.js +90 -0
- package/dist/model-catalog/params.d.ts +20 -0
- package/dist/model-catalog/params.js +45 -0
- package/dist/model-catalog/resolve.d.ts +48 -0
- package/dist/model-catalog/resolve.js +33 -0
- package/dist/model-catalog/save-entry.d.ts +32 -0
- package/dist/model-catalog/save-entry.js +104 -0
- package/dist/model-catalog/types.d.ts +561 -0
- package/dist/model-catalog/types.js +93 -0
- package/dist/model-catalog/upsert.d.ts +9 -0
- package/dist/model-catalog/upsert.js +8 -0
- package/dist/onboarding.d.ts +12 -82
- package/dist/onboarding.js +75 -333
- package/dist/plugins/gitOps.d.ts +53 -0
- package/dist/plugins/gitOps.js +130 -5
- package/dist/plugins/installer/checkUpdate.d.ts +16 -0
- package/dist/plugins/installer/checkUpdate.js +32 -0
- package/dist/plugins/installer/codex/convertAgents.d.ts +7 -0
- package/dist/plugins/installer/codex/convertAgents.js +55 -0
- package/dist/plugins/installer/codex/convertCommands.d.ts +19 -0
- package/dist/plugins/installer/codex/convertCommands.js +46 -0
- package/dist/plugins/installer/codex/convertMcp.d.ts +11 -0
- package/dist/plugins/installer/codex/convertMcp.js +85 -0
- package/dist/plugins/installer/codex/convertSkills.d.ts +12 -0
- package/dist/plugins/installer/codex/convertSkills.js +33 -0
- package/dist/plugins/installer/detectFormat.d.ts +2 -0
- package/dist/plugins/installer/detectFormat.js +6 -0
- package/dist/plugins/installer/install.d.ts +7 -0
- package/dist/plugins/installer/install.js +123 -0
- package/dist/plugins/installer/installFromArchive.d.ts +43 -0
- package/dist/plugins/installer/installFromArchive.js +134 -0
- package/dist/plugins/installer/installFromSource.d.ts +13 -0
- package/dist/plugins/installer/installFromSource.js +51 -0
- package/dist/plugins/installer/list.d.ts +9 -0
- package/dist/plugins/installer/list.js +30 -0
- package/dist/plugins/installer/loadPluginAgents.d.ts +3 -0
- package/dist/plugins/installer/loadPluginAgents.js +27 -0
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +107 -0
- package/dist/plugins/installer/parseSource.d.ts +20 -0
- package/dist/plugins/installer/parseSource.js +74 -0
- package/dist/plugins/installer/paths.d.ts +5 -0
- package/dist/plugins/installer/paths.js +25 -0
- package/dist/plugins/installer/pruneDisabled.d.ts +24 -0
- package/dist/plugins/installer/pruneDisabled.js +73 -0
- package/dist/plugins/installer/types.d.ts +52 -0
- package/dist/plugins/installer/types.js +28 -0
- package/dist/plugins/installer/uninstall.d.ts +2 -0
- package/dist/plugins/installer/uninstall.js +18 -0
- package/dist/plugins/installer/unzip.d.ts +14 -0
- package/dist/plugins/installer/unzip.js +82 -0
- package/dist/plugins/installer/update.d.ts +28 -0
- package/dist/plugins/installer/update.js +97 -0
- package/dist/plugins/loadPluginHooks.d.ts +54 -1
- package/dist/plugins/loadPluginHooks.js +83 -1
- package/dist/plugins/marketplaceManager.d.ts +15 -1
- package/dist/plugins/marketplaceManager.js +58 -4
- package/dist/plugins/pluginCommandHook.js +34 -14
- package/dist/plugins/pluginContent.d.ts +30 -0
- package/dist/plugins/pluginContent.js +83 -0
- package/dist/plugins/pluginInstaller.d.ts +34 -0
- package/dist/plugins/pluginInstaller.js +168 -35
- package/dist/plugins/schemas.js +41 -6
- package/dist/plugins/types.d.ts +10 -0
- package/dist/preset/index.d.ts +7 -1
- package/dist/preset/index.js +112 -6
- package/dist/product/types.d.ts +1 -1
- package/dist/prompt/composer.d.ts +31 -0
- package/dist/prompt/composer.js +95 -25
- package/dist/prompt/instruction-scanner.js +5 -3
- package/dist/prompt/section-loader.js +1 -0
- package/dist/prompt/sections/base.md +1 -0
- package/dist/prompt/sections/browser.md +10 -0
- package/dist/prompt/sections/coding.md +4 -0
- package/dist/prompt/sections/orchestration.md +8 -0
- package/dist/protocol/chat-session-manager.d.ts +15 -2
- package/dist/protocol/chat-session-manager.js +46 -0
- package/dist/protocol/chat-session.d.ts +82 -0
- package/dist/protocol/chat-session.js +121 -1
- package/dist/protocol/client.d.ts +27 -0
- package/dist/protocol/client.js +38 -0
- package/dist/protocol/redact.d.ts +50 -0
- package/dist/protocol/redact.js +71 -0
- package/dist/protocol/server.d.ts +153 -2
- package/dist/protocol/server.js +807 -39
- package/dist/protocol/tcp-transport.d.ts +45 -0
- package/dist/protocol/tcp-transport.js +74 -0
- package/dist/protocol/transport.js +3 -2
- package/dist/protocol/types.d.ts +69 -0
- package/dist/protocol/types.js +22 -0
- package/dist/quota/credentials.d.ts +3 -0
- package/dist/quota/credentials.js +80 -0
- package/dist/quota/index.d.ts +36 -0
- package/dist/quota/index.js +155 -0
- package/dist/quota/types.d.ts +48 -0
- package/dist/quota/types.js +13 -0
- package/dist/remote/bridge.d.ts +11 -2
- package/dist/remote/bridge.js +61 -33
- package/dist/review/review-prompt.d.ts +28 -0
- package/dist/review/review-prompt.js +81 -0
- package/dist/run/ArtifactTracker.js +5 -4
- package/dist/run/EngineRunner.d.ts +27 -1
- package/dist/run/EngineRunner.js +46 -8
- package/dist/run/FileRunStore.js +40 -11
- package/dist/run/RunApprovalBackend.js +25 -5
- package/dist/run/RunLock.d.ts +28 -2
- package/dist/run/RunLock.js +49 -7
- package/dist/run/RunManager.d.ts +12 -0
- package/dist/run/RunManager.js +86 -3
- package/dist/run/RunQueue.d.ts +1 -0
- package/dist/run/RunQueue.js +8 -2
- package/dist/run/factory.d.ts +8 -1
- package/dist/run/factory.js +1 -0
- package/dist/run/index.d.ts +2 -2
- package/dist/run/index.js +1 -1
- package/dist/run/redirect-target.d.ts +7 -0
- package/dist/run/redirect-target.js +13 -0
- package/dist/run/types.js +1 -1
- package/dist/runtime/background-shell.d.ts +139 -0
- package/dist/runtime/background-shell.js +495 -0
- package/dist/runtime/output-clean.d.ts +24 -0
- package/dist/runtime/output-clean.js +41 -0
- package/dist/runtime/ring-file.d.ts +64 -0
- package/dist/runtime/ring-file.js +174 -0
- package/dist/runtime/safe-spawn.js +15 -34
- package/dist/runtime/spawn-common.d.ts +148 -0
- package/dist/runtime/spawn-common.js +303 -0
- package/dist/runtime/truncate-output.d.ts +22 -0
- package/dist/runtime/truncate-output.js +49 -0
- package/dist/runtime/utf8-cut.d.ts +11 -0
- package/dist/runtime/utf8-cut.js +23 -0
- package/dist/services/auto-dream.d.ts +4 -0
- package/dist/services/auto-dream.js +26 -26
- package/dist/services/browser-open.d.ts +13 -0
- package/dist/services/browser-open.js +16 -0
- package/dist/services/diagnostics.d.ts +1 -2
- package/dist/services/diagnostics.js +12 -7
- package/dist/services/dream-consolidation.d.ts +57 -0
- package/dist/services/dream-consolidation.js +151 -0
- package/dist/services/extract-memories.d.ts +14 -1
- package/dist/services/extract-memories.js +45 -6
- package/dist/services/memory-orchestrator.d.ts +21 -0
- package/dist/services/memory-orchestrator.js +125 -32
- package/dist/services/notifier.d.ts +8 -0
- package/dist/services/notifier.js +39 -25
- package/dist/services/oauth.js +5 -7
- package/dist/services/session-memory-sort.d.ts +8 -0
- package/dist/services/session-memory-sort.js +9 -0
- package/dist/services/session-memory.js +30 -19
- package/dist/session/file-history.d.ts +124 -1
- package/dist/session/file-history.js +232 -9
- package/dist/session/memory.d.ts +116 -2
- package/dist/session/memory.js +250 -28
- package/dist/session/session-manager.d.ts +63 -1
- package/dist/session/session-manager.js +186 -5
- package/dist/session/simple-diff.d.ts +23 -0
- package/dist/session/simple-diff.js +84 -0
- package/dist/session/transcript.d.ts +25 -1
- package/dist/session/transcript.js +35 -2
- package/dist/session/undo-target.d.ts +67 -0
- package/dist/session/undo-target.js +144 -0
- package/dist/settings/disk-defaults.d.ts +42 -0
- package/dist/settings/disk-defaults.js +33 -0
- package/dist/settings/feature-flags.d.ts +64 -0
- package/dist/settings/feature-flags.js +61 -0
- package/dist/settings/manager.d.ts +101 -1
- package/dist/settings/manager.js +345 -15
- package/dist/settings/migrate-config.d.ts +45 -0
- package/dist/settings/migrate-config.js +125 -0
- package/dist/settings/personalization.d.ts +19 -0
- package/dist/settings/personalization.js +7 -0
- package/dist/settings/schema-export.d.ts +25 -0
- package/dist/settings/schema-export.js +38 -0
- package/dist/settings/schema.d.ts +1827 -396
- package/dist/settings/schema.js +361 -81
- package/dist/skills/scanner.d.ts +9 -0
- package/dist/skills/scanner.js +30 -2
- package/dist/stt/resolve-transcribe.d.ts +31 -0
- package/dist/stt/resolve-transcribe.js +108 -0
- package/dist/stt/transcribe.d.ts +51 -0
- package/dist/stt/transcribe.js +65 -0
- package/dist/tool-system/browser-bridge.d.ts +226 -0
- package/dist/tool-system/browser-bridge.js +163 -0
- package/dist/tool-system/builtin/add-marketplace.d.ts +12 -0
- package/dist/tool-system/builtin/add-marketplace.js +76 -0
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +49 -0
- package/dist/tool-system/builtin/agent-heartbeat.js +89 -0
- package/dist/tool-system/builtin/agent-notifications.d.ts +12 -3
- package/dist/tool-system/builtin/agent-notifications.js +9 -3
- package/dist/tool-system/builtin/agent-output-file.d.ts +38 -0
- package/dist/tool-system/builtin/agent-output-file.js +72 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +23 -0
- package/dist/tool-system/builtin/agent-registry.js +16 -4
- package/dist/tool-system/builtin/agent.d.ts +50 -11
- package/dist/tool-system/builtin/agent.js +576 -73
- package/dist/tool-system/builtin/apply-patch/applier.js +66 -8
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +10 -0
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +30 -0
- package/dist/tool-system/builtin/apply-patch/index.js +7 -3
- package/dist/tool-system/builtin/arena.js +6 -7
- package/dist/tool-system/builtin/background-jobs.d.ts +76 -0
- package/dist/tool-system/builtin/background-jobs.js +124 -0
- package/dist/tool-system/builtin/background-shell-tools.d.ts +20 -0
- package/dist/tool-system/builtin/background-shell-tools.js +108 -0
- package/dist/tool-system/builtin/background-work.d.ts +67 -0
- package/dist/tool-system/builtin/background-work.js +86 -0
- package/dist/tool-system/builtin/bash-output-style.d.ts +32 -0
- package/dist/tool-system/builtin/bash-output-style.js +40 -0
- package/dist/tool-system/builtin/bash.d.ts +5 -2
- package/dist/tool-system/builtin/bash.js +98 -62
- package/dist/tool-system/builtin/browser-tools.d.ts +33 -0
- package/dist/tool-system/builtin/browser-tools.js +312 -0
- package/dist/tool-system/builtin/cancel-goal.d.ts +31 -0
- package/dist/tool-system/builtin/cancel-goal.js +64 -0
- package/dist/tool-system/builtin/check-quota.d.ts +15 -0
- package/dist/tool-system/builtin/check-quota.js +34 -0
- package/dist/tool-system/builtin/complete-goal.d.ts +25 -0
- package/dist/tool-system/builtin/complete-goal.js +45 -0
- package/dist/tool-system/builtin/config.js +7 -0
- package/dist/tool-system/builtin/cron.d.ts +7 -0
- package/dist/tool-system/builtin/cron.js +105 -9
- package/dist/tool-system/builtin/drive-claude-code.d.ts +30 -0
- package/dist/tool-system/builtin/drive-claude-code.js +157 -0
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +3 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +94 -0
- package/dist/tool-system/builtin/edit.d.ts +2 -1
- package/dist/tool-system/builtin/edit.js +21 -12
- package/dist/tool-system/builtin/eol.d.ts +29 -0
- package/dist/tool-system/builtin/eol.js +37 -0
- package/dist/tool-system/builtin/file-cache.d.ts +6 -0
- package/dist/tool-system/builtin/file-cache.js +8 -0
- package/dist/tool-system/builtin/generate-image.d.ts +60 -0
- package/dist/tool-system/builtin/generate-image.js +374 -0
- package/dist/tool-system/builtin/generate-video.d.ts +55 -0
- package/dist/tool-system/builtin/generate-video.js +361 -0
- package/dist/tool-system/builtin/grep.js +6 -2
- package/dist/tool-system/builtin/image-providers.d.ts +86 -0
- package/dist/tool-system/builtin/image-providers.js +190 -0
- package/dist/tool-system/builtin/image-uploader.d.ts +33 -0
- package/dist/tool-system/builtin/image-uploader.js +74 -0
- package/dist/tool-system/builtin/index.d.ts +24 -1
- package/dist/tool-system/builtin/index.js +310 -25
- package/dist/tool-system/builtin/mcp-tools.js +23 -3
- package/dist/tool-system/builtin/memory.js +45 -7
- package/dist/tool-system/builtin/notebook-edit.d.ts +2 -1
- package/dist/tool-system/builtin/notebook-edit.js +1 -1
- package/dist/tool-system/builtin/powershell.js +4 -1
- package/dist/tool-system/builtin/read.d.ts +2 -1
- package/dist/tool-system/builtin/read.js +11 -3
- package/dist/tool-system/builtin/repl.js +4 -1
- package/dist/tool-system/builtin/skill.js +9 -0
- package/dist/tool-system/builtin/sleep.js +12 -5
- package/dist/tool-system/builtin/task.js +4 -1
- package/dist/tool-system/builtin/tool-search.js +25 -7
- package/dist/tool-system/builtin/update-automation-memory.d.ts +24 -0
- package/dist/tool-system/builtin/update-automation-memory.js +60 -0
- package/dist/tool-system/builtin/video-providers.d.ts +154 -0
- package/dist/tool-system/builtin/video-providers.js +235 -0
- package/dist/tool-system/builtin/view-image.d.ts +18 -0
- package/dist/tool-system/builtin/view-image.js +96 -0
- package/dist/tool-system/builtin/web-fetch.js +12 -2
- package/dist/tool-system/builtin/web-search.d.ts +4 -1
- package/dist/tool-system/builtin/web-search.js +57 -10
- package/dist/tool-system/builtin/worktree.d.ts +2 -1
- package/dist/tool-system/builtin/worktree.js +31 -4
- package/dist/tool-system/builtin/write.d.ts +2 -1
- package/dist/tool-system/builtin/write.js +1 -1
- package/dist/tool-system/context.d.ts +166 -6
- package/dist/tool-system/executor.d.ts +3 -2
- package/dist/tool-system/executor.js +197 -119
- package/dist/tool-system/investigation-guard.d.ts +4 -1
- package/dist/tool-system/investigation-guard.js +20 -4
- package/dist/tool-system/mcp-manager.d.ts +78 -16
- package/dist/tool-system/mcp-manager.js +357 -28
- package/dist/tool-system/path-policy.d.ts +99 -0
- package/dist/tool-system/path-policy.js +578 -0
- package/dist/tool-system/permission.d.ts +36 -1
- package/dist/tool-system/permission.js +322 -117
- package/dist/tool-system/plan-mode-allowlist.d.ts +32 -0
- package/dist/tool-system/plan-mode-allowlist.js +65 -0
- package/dist/tool-system/registry.d.ts +1 -0
- package/dist/tool-system/registry.js +26 -1
- package/dist/tool-system/sandbox/index.d.ts +8 -0
- package/dist/tool-system/sandbox/index.js +7 -2
- package/dist/tool-system/validate-tool-metadata.d.ts +36 -0
- package/dist/tool-system/validate-tool-metadata.js +63 -0
- package/dist/tool-system/validation.d.ts +10 -0
- package/dist/tool-system/validation.js +16 -3
- package/dist/types.d.ts +301 -15
- package/dist/updater.js +20 -9
- package/dist/utils/envUtils.d.ts +0 -9
- package/dist/utils/envUtils.js +3 -28
- package/dist/utils/exec.d.ts +40 -0
- package/dist/utils/exec.js +144 -0
- package/dist/utils/format.js +4 -2
- package/dist/utils/json.d.ts +12 -0
- package/dist/utils/json.js +92 -0
- package/dist/utils/lockfile.js +9 -2
- package/dist/utils/theme.d.ts +7 -1
- package/dist/utils/theme.js +5 -3
- package/dist/utils/toolDisplay.js +0 -1
- package/package.json +14 -7
- package/dist/agent/coordinator.d.ts +0 -49
- package/dist/agent/coordinator.js +0 -77
- package/dist/settings/manager.test.js +0 -73
- package/dist/tool-system/builtin/remote-trigger.d.ts +0 -6
- package/dist/tool-system/builtin/remote-trigger.js +0 -54
- package/dist/tool-system/builtin/send-message.d.ts +0 -6
- package/dist/tool-system/builtin/send-message.js +0 -47
- /package/dist/{settings/manager.test.d.ts → credentials/types.js} +0 -0
|
@@ -2,6 +2,48 @@
|
|
|
2
2
|
* Settings schema with Zod validation.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* Tri-state project capability overlay. Lives in PROJECT settings only and
|
|
7
|
+
* layers over the global baseline (disabledSkills / disabledPlugins /
|
|
8
|
+
* mcpServers.<name>.enabled / disabledAgents). NOT a second denylist:
|
|
9
|
+
* - "on" → force enabled (even if globally disabled)
|
|
10
|
+
* - "off" → force disabled (even if globally enabled)
|
|
11
|
+
* - "inherit" → take the global baseline. We don't persist "inherit"; an
|
|
12
|
+
* absent key means inherit. See the project-scoped
|
|
13
|
+
* capabilities design (spec §4).
|
|
14
|
+
*/
|
|
15
|
+
export declare const CapabilityOverrideSchema: z.ZodEnum<["inherit", "on", "off"]>;
|
|
16
|
+
export type CapabilityOverride = z.infer<typeof CapabilityOverrideSchema>;
|
|
17
|
+
export declare const CapabilityOverridesSchema: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
19
|
+
plugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
20
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
21
|
+
mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
22
|
+
builtin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
23
|
+
/**
|
|
24
|
+
* Per-hook overlay for PLUGIN-provided hooks, keyed by
|
|
25
|
+
* `pluginHookKey()` (`<plugin>:<RawEvent>:<command>`). Finer-grained
|
|
26
|
+
* than `plugins` (which kills a whole plugin): "off" suppresses one
|
|
27
|
+
* hook for this project only. Only "off" is meaningful today — plugin
|
|
28
|
+
* hooks have no global disable list to force back "on" from.
|
|
29
|
+
*/
|
|
30
|
+
pluginHooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
33
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
34
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
35
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
36
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
37
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
40
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
41
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
42
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
43
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
44
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
45
|
+
}>>;
|
|
46
|
+
export type CapabilityOverrides = z.infer<typeof CapabilityOverridesSchema>;
|
|
5
47
|
export declare const SettingsSchema: z.ZodObject<{
|
|
6
48
|
agent: z.ZodDefault<z.ZodObject<{
|
|
7
49
|
preset: z.ZodDefault<z.ZodString>;
|
|
@@ -9,27 +51,43 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
9
51
|
disabledBuiltinTools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
10
52
|
customSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
11
53
|
appendSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
54
|
+
responseLanguage: z.ZodOptional<z.ZodString>;
|
|
55
|
+
userProfile: z.ZodOptional<z.ZodString>;
|
|
56
|
+
instructions: z.ZodOptional<z.ZodObject<{
|
|
57
|
+
compatClaude: z.ZodDefault<z.ZodBoolean>;
|
|
58
|
+
compatCodex: z.ZodDefault<z.ZodBoolean>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
compatClaude: boolean;
|
|
61
|
+
compatCodex: boolean;
|
|
62
|
+
}, {
|
|
63
|
+
compatClaude?: boolean | undefined;
|
|
64
|
+
compatCodex?: boolean | undefined;
|
|
65
|
+
}>>;
|
|
12
66
|
}, "strip", z.ZodTypeAny, {
|
|
13
67
|
preset: string;
|
|
14
68
|
enabledBuiltinTools: string[];
|
|
15
69
|
disabledBuiltinTools: string[];
|
|
16
70
|
customSystemPrompt?: string | undefined;
|
|
17
71
|
appendSystemPrompt?: string | undefined;
|
|
72
|
+
responseLanguage?: string | undefined;
|
|
73
|
+
userProfile?: string | undefined;
|
|
74
|
+
instructions?: {
|
|
75
|
+
compatClaude: boolean;
|
|
76
|
+
compatCodex: boolean;
|
|
77
|
+
} | undefined;
|
|
18
78
|
}, {
|
|
19
79
|
preset?: string | undefined;
|
|
20
80
|
enabledBuiltinTools?: string[] | undefined;
|
|
21
81
|
disabledBuiltinTools?: string[] | undefined;
|
|
22
82
|
customSystemPrompt?: string | undefined;
|
|
23
83
|
appendSystemPrompt?: string | undefined;
|
|
84
|
+
responseLanguage?: string | undefined;
|
|
85
|
+
userProfile?: string | undefined;
|
|
86
|
+
instructions?: {
|
|
87
|
+
compatClaude?: boolean | undefined;
|
|
88
|
+
compatCodex?: boolean | undefined;
|
|
89
|
+
} | undefined;
|
|
24
90
|
}>>;
|
|
25
|
-
/**
|
|
26
|
-
* Primary source of truth for the active model is settings.activeKey
|
|
27
|
-
* (points at models[].key). settings.model is a derived mirror of that
|
|
28
|
-
* entry kept in sync for legacy boot paths (cli/main.ts, repl.ts, etc.)
|
|
29
|
-
* which read provider/name/apiKey/baseUrl directly. Writers must update
|
|
30
|
-
* both — appendOnboardingResult does this in one shot.
|
|
31
|
-
*/
|
|
32
|
-
activeKey: z.ZodOptional<z.ZodString>;
|
|
33
91
|
/**
|
|
34
92
|
* Toggle background auto-update. When true (default), code-shell checks
|
|
35
93
|
* npm for newer versions and — if the npm global prefix is writable —
|
|
@@ -38,135 +96,215 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
38
96
|
* Can also be disabled via env var `DISABLE_AUTOUPDATER=1`.
|
|
39
97
|
*/
|
|
40
98
|
autoUpdates: z.ZodDefault<z.ZodBoolean>;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Image generation is a general capability, decoupled from LLM providers
|
|
101
|
+
* (TODO 7.1): a vendor may use different keys/endpoints/models for chat vs
|
|
102
|
+
* image, and image vendors (Gemini, and later 国内 模型) don't fit the LLM
|
|
103
|
+
* `providers[].kind` enum. `imageGen.providers[]` is the canonical config;
|
|
104
|
+
* each entry has a user-chosen `id` (selected via GenerateImage's
|
|
105
|
+
* `provider` arg) and a `kind` that picks the adapter. When `imageGen` is
|
|
106
|
+
* absent, resolution falls back to scanning LLM `providers[]` for an
|
|
107
|
+
* image-capable kind — so existing configs keep working with no migration.
|
|
108
|
+
*/
|
|
109
|
+
imageGen: z.ZodOptional<z.ZodObject<{
|
|
110
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
111
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
112
|
+
/** User-chosen instance name; GenerateImage(provider) selects by this. */
|
|
113
|
+
id: z.ZodString;
|
|
114
|
+
/** Adapter selector — e.g. "openai", "google". */
|
|
115
|
+
kind: z.ZodString;
|
|
116
|
+
baseUrl: z.ZodString;
|
|
117
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
118
|
+
/** Default model for this instance when the call omits `model`. */
|
|
119
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
120
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
121
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
122
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
123
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
124
|
+
}, "strip", z.ZodTypeAny, {
|
|
125
|
+
id: string;
|
|
126
|
+
kind: string;
|
|
127
|
+
baseUrl: string;
|
|
128
|
+
apiKey?: string | undefined;
|
|
129
|
+
defaultModel?: string | undefined;
|
|
130
|
+
catalogId?: string | undefined;
|
|
131
|
+
apiKeyRef?: string | undefined;
|
|
132
|
+
}, {
|
|
133
|
+
id: string;
|
|
134
|
+
kind: string;
|
|
135
|
+
baseUrl: string;
|
|
136
|
+
apiKey?: string | undefined;
|
|
137
|
+
defaultModel?: string | undefined;
|
|
138
|
+
catalogId?: string | undefined;
|
|
139
|
+
apiKeyRef?: string | undefined;
|
|
140
|
+
}>, "many">>;
|
|
48
141
|
}, "strip", z.ZodTypeAny, {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
142
|
+
providers: {
|
|
143
|
+
id: string;
|
|
144
|
+
kind: string;
|
|
145
|
+
baseUrl: string;
|
|
146
|
+
apiKey?: string | undefined;
|
|
147
|
+
defaultModel?: string | undefined;
|
|
148
|
+
catalogId?: string | undefined;
|
|
149
|
+
apiKeyRef?: string | undefined;
|
|
150
|
+
}[];
|
|
151
|
+
defaultProvider?: string | undefined;
|
|
55
152
|
}, {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
153
|
+
defaultProvider?: string | undefined;
|
|
154
|
+
providers?: {
|
|
155
|
+
id: string;
|
|
156
|
+
kind: string;
|
|
157
|
+
baseUrl: string;
|
|
158
|
+
apiKey?: string | undefined;
|
|
159
|
+
defaultModel?: string | undefined;
|
|
160
|
+
catalogId?: string | undefined;
|
|
161
|
+
apiKeyRef?: string | undefined;
|
|
162
|
+
}[] | undefined;
|
|
62
163
|
}>>;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
164
|
+
/**
|
|
165
|
+
* Video generation config (TODO 7.1) — same shape as imageGen, decoupled
|
|
166
|
+
* from LLM providers. `videoGen.providers[]` each carry an `id` (selected
|
|
167
|
+
* via GenerateVideo's `provider` arg) + a `kind` picking the adapter. With
|
|
168
|
+
* no real adapters wired yet, this is config-ready: a future getVideoProvider
|
|
169
|
+
* case lights it up. Falls back to scanning LLM providers[] when absent.
|
|
170
|
+
*/
|
|
171
|
+
videoGen: z.ZodOptional<z.ZodObject<{
|
|
172
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
173
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
174
|
+
id: z.ZodString;
|
|
175
|
+
kind: z.ZodString;
|
|
176
|
+
baseUrl: z.ZodString;
|
|
177
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
178
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
179
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
180
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
181
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
182
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
183
|
+
}, "strip", z.ZodTypeAny, {
|
|
184
|
+
id: string;
|
|
185
|
+
kind: string;
|
|
186
|
+
baseUrl: string;
|
|
187
|
+
apiKey?: string | undefined;
|
|
188
|
+
defaultModel?: string | undefined;
|
|
189
|
+
catalogId?: string | undefined;
|
|
190
|
+
apiKeyRef?: string | undefined;
|
|
191
|
+
}, {
|
|
192
|
+
id: string;
|
|
193
|
+
kind: string;
|
|
194
|
+
baseUrl: string;
|
|
195
|
+
apiKey?: string | undefined;
|
|
196
|
+
defaultModel?: string | undefined;
|
|
197
|
+
catalogId?: string | undefined;
|
|
198
|
+
apiKeyRef?: string | undefined;
|
|
199
|
+
}>, "many">>;
|
|
78
200
|
}, "strip", z.ZodTypeAny, {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
baseUrl: z.ZodOptional<z.ZodString>;
|
|
201
|
+
providers: {
|
|
202
|
+
id: string;
|
|
203
|
+
kind: string;
|
|
204
|
+
baseUrl: string;
|
|
205
|
+
apiKey?: string | undefined;
|
|
206
|
+
defaultModel?: string | undefined;
|
|
207
|
+
catalogId?: string | undefined;
|
|
208
|
+
apiKeyRef?: string | undefined;
|
|
209
|
+
}[];
|
|
210
|
+
defaultProvider?: string | undefined;
|
|
211
|
+
}, {
|
|
212
|
+
defaultProvider?: string | undefined;
|
|
213
|
+
providers?: {
|
|
214
|
+
id: string;
|
|
215
|
+
kind: string;
|
|
216
|
+
baseUrl: string;
|
|
217
|
+
apiKey?: string | undefined;
|
|
218
|
+
defaultModel?: string | undefined;
|
|
219
|
+
catalogId?: string | undefined;
|
|
220
|
+
apiKeyRef?: string | undefined;
|
|
221
|
+
}[] | undefined;
|
|
222
|
+
}>>;
|
|
223
|
+
/**
|
|
224
|
+
* Credentials — independent key entities (统一模型接入方案 §3.3). A key
|
|
225
|
+
* lives here, not inlined on a connection, so deleting a connection never
|
|
226
|
+
* loses a key and many connections share one key by referencing the same
|
|
227
|
+
* credential id (LiteLLM credential_list model).
|
|
228
|
+
*/
|
|
229
|
+
credentials: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
230
|
+
/** User-chosen unique credential name. */
|
|
231
|
+
id: z.ZodString;
|
|
232
|
+
/** Catalog template this credential is for (a key belongs to one provider). */
|
|
233
|
+
catalogId: z.ZodString;
|
|
113
234
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
114
|
-
|
|
115
|
-
* Per-model thinking override. Wins over the provider-level
|
|
116
|
-
* setting (settings.providers[].thinking). Use this when
|
|
117
|
-
* different models under the same provider need different
|
|
118
|
-
* defaults — e.g. DeepSeek V4 Pro off (faster) but V4 Flash on.
|
|
119
|
-
*/
|
|
120
|
-
thinking: z.ZodOptional<z.ZodEnum<["enabled", "disabled"]>>;
|
|
235
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
121
236
|
}, "strip", z.ZodTypeAny, {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
provider?: string | undefined;
|
|
125
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
126
|
-
label?: string | undefined;
|
|
237
|
+
id: string;
|
|
238
|
+
catalogId: string;
|
|
127
239
|
baseUrl?: string | undefined;
|
|
128
240
|
apiKey?: string | undefined;
|
|
129
|
-
protocol?: string | undefined;
|
|
130
|
-
providerKey?: string | undefined;
|
|
131
|
-
maxOutputTokens?: number | undefined;
|
|
132
|
-
maxContextTokens?: number | undefined;
|
|
133
241
|
}, {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
provider?: string | undefined;
|
|
137
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
138
|
-
label?: string | undefined;
|
|
242
|
+
id: string;
|
|
243
|
+
catalogId: string;
|
|
139
244
|
baseUrl?: string | undefined;
|
|
140
245
|
apiKey?: string | undefined;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
246
|
+
}>, "many">>;
|
|
247
|
+
/**
|
|
248
|
+
* Unified instance layer (统一模型接入方案, see
|
|
249
|
+
* docs/superpowers/specs/2026-06-15-unified-model-catalog-design.md §3.3).
|
|
250
|
+
* One store for text/image/video connections, each pointing at a catalog
|
|
251
|
+
* entry (catalogId), a credential (credentialId), its chosen model, and the
|
|
252
|
+
* param values the user picked. Replaces the legacy split of
|
|
253
|
+
* providers[]/models[]/imageGen/videoGen.
|
|
254
|
+
*/
|
|
255
|
+
modelConnections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
256
|
+
/** User-chosen unique instance name. */
|
|
257
|
+
id: z.ZodString;
|
|
258
|
+
/** Catalog template this instance was created from. */
|
|
259
|
+
catalogId: z.ZodString;
|
|
260
|
+
tag: z.ZodEnum<["text", "image", "video", "audio"]>;
|
|
261
|
+
/** Selected modelId (from the entry's modelPresets). */
|
|
262
|
+
model: z.ZodString;
|
|
263
|
+
/** Per-connection baseUrl override (else the credential's / catalog's). */
|
|
264
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
265
|
+
/** Which credential supplies this connection's key. */
|
|
266
|
+
credentialId: z.ZodOptional<z.ZodString>;
|
|
267
|
+
/** Values the user picked for the model's params, e.g. { reasoning: "high" }. */
|
|
268
|
+
paramValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
269
|
+
}, "strip", z.ZodTypeAny, {
|
|
270
|
+
id: string;
|
|
148
271
|
model: string;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
label?: string | undefined;
|
|
272
|
+
catalogId: string;
|
|
273
|
+
tag: "text" | "image" | "video" | "audio";
|
|
152
274
|
baseUrl?: string | undefined;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
maxOutputTokens?: number | undefined;
|
|
156
|
-
maxContextTokens?: number | undefined;
|
|
275
|
+
credentialId?: string | undefined;
|
|
276
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
157
277
|
}, {
|
|
278
|
+
id: string;
|
|
158
279
|
model: string;
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
162
|
-
label?: string | undefined;
|
|
280
|
+
catalogId: string;
|
|
281
|
+
tag: "text" | "image" | "video" | "audio";
|
|
163
282
|
baseUrl?: string | undefined;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
providerKey?: string | undefined;
|
|
167
|
-
maxOutputTokens?: number | undefined;
|
|
168
|
-
maxContextTokens?: number | undefined;
|
|
283
|
+
credentialId?: string | undefined;
|
|
284
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
169
285
|
}>, "many">>;
|
|
286
|
+
/** Default instance id per tag (replaces activeKey / defaultProvider). */
|
|
287
|
+
defaults: z.ZodDefault<z.ZodObject<{
|
|
288
|
+
text: z.ZodOptional<z.ZodString>;
|
|
289
|
+
image: z.ZodOptional<z.ZodString>;
|
|
290
|
+
video: z.ZodOptional<z.ZodString>;
|
|
291
|
+
/** Default speech-to-text (voice input) connection. */
|
|
292
|
+
audio: z.ZodOptional<z.ZodString>;
|
|
293
|
+
/** Background-task model (replaces auxModelKey). */
|
|
294
|
+
auxText: z.ZodOptional<z.ZodString>;
|
|
295
|
+
}, "strip", z.ZodTypeAny, {
|
|
296
|
+
text?: string | undefined;
|
|
297
|
+
image?: string | undefined;
|
|
298
|
+
video?: string | undefined;
|
|
299
|
+
audio?: string | undefined;
|
|
300
|
+
auxText?: string | undefined;
|
|
301
|
+
}, {
|
|
302
|
+
text?: string | undefined;
|
|
303
|
+
image?: string | undefined;
|
|
304
|
+
video?: string | undefined;
|
|
305
|
+
audio?: string | undefined;
|
|
306
|
+
auxText?: string | undefined;
|
|
307
|
+
}>>;
|
|
170
308
|
permissions: z.ZodDefault<z.ZodObject<{
|
|
171
309
|
defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
|
|
172
310
|
rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -186,7 +324,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
186
324
|
argsPattern?: Record<string, string> | undefined;
|
|
187
325
|
}>, "many">>;
|
|
188
326
|
}, "strip", z.ZodTypeAny, {
|
|
189
|
-
defaultMode: "
|
|
327
|
+
defaultMode: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan";
|
|
190
328
|
rules: {
|
|
191
329
|
tool: string;
|
|
192
330
|
decision: "allow" | "deny" | "ask";
|
|
@@ -194,7 +332,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
194
332
|
argsPattern?: Record<string, string> | undefined;
|
|
195
333
|
}[];
|
|
196
334
|
}, {
|
|
197
|
-
defaultMode?: "
|
|
335
|
+
defaultMode?: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan" | undefined;
|
|
198
336
|
rules?: {
|
|
199
337
|
tool: string;
|
|
200
338
|
decision: "allow" | "deny" | "ask";
|
|
@@ -206,14 +344,17 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
206
344
|
maxTokens: z.ZodDefault<z.ZodNumber>;
|
|
207
345
|
compactAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
208
346
|
summarizeAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
347
|
+
microcompactFloorRatio: z.ZodDefault<z.ZodNumber>;
|
|
209
348
|
}, "strip", z.ZodTypeAny, {
|
|
210
349
|
maxTokens: number;
|
|
211
350
|
compactAtRatio: number;
|
|
212
351
|
summarizeAtRatio: number;
|
|
352
|
+
microcompactFloorRatio: number;
|
|
213
353
|
}, {
|
|
214
354
|
maxTokens?: number | undefined;
|
|
215
355
|
compactAtRatio?: number | undefined;
|
|
216
356
|
summarizeAtRatio?: number | undefined;
|
|
357
|
+
microcompactFloorRatio?: number | undefined;
|
|
217
358
|
}>>;
|
|
218
359
|
session: z.ZodDefault<z.ZodObject<{
|
|
219
360
|
storageDir: z.ZodOptional<z.ZodString>;
|
|
@@ -225,7 +366,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
225
366
|
storageDir?: string | undefined;
|
|
226
367
|
maxHistory?: number | undefined;
|
|
227
368
|
}>>;
|
|
228
|
-
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
369
|
+
mcpServers: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
229
370
|
name: z.ZodString;
|
|
230
371
|
command: z.ZodOptional<z.ZodString>;
|
|
231
372
|
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -233,22 +374,76 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
233
374
|
url: z.ZodOptional<z.ZodString>;
|
|
234
375
|
transport: z.ZodOptional<z.ZodEnum<["stdio", "sse", "streamable-http", "inprocess"]>>;
|
|
235
376
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
377
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
378
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
379
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
380
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
381
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
236
382
|
}, "strip", z.ZodTypeAny, {
|
|
237
383
|
name: string;
|
|
384
|
+
enabled?: boolean | undefined;
|
|
238
385
|
url?: string | undefined;
|
|
239
386
|
args?: string[] | undefined;
|
|
240
|
-
env?: Record<string, string> | undefined;
|
|
241
387
|
command?: string | undefined;
|
|
388
|
+
env?: Record<string, string> | undefined;
|
|
242
389
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
243
390
|
headers?: Record<string, string> | undefined;
|
|
391
|
+
envVars?: string[] | undefined;
|
|
392
|
+
bearerTokenEnvVar?: string | undefined;
|
|
393
|
+
envHeaders?: Record<string, string> | undefined;
|
|
394
|
+
credentialRef?: string | undefined;
|
|
244
395
|
}, {
|
|
245
396
|
name: string;
|
|
397
|
+
enabled?: boolean | undefined;
|
|
246
398
|
url?: string | undefined;
|
|
247
399
|
args?: string[] | undefined;
|
|
400
|
+
command?: string | undefined;
|
|
248
401
|
env?: Record<string, string> | undefined;
|
|
402
|
+
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
403
|
+
headers?: Record<string, string> | undefined;
|
|
404
|
+
envVars?: string[] | undefined;
|
|
405
|
+
bearerTokenEnvVar?: string | undefined;
|
|
406
|
+
envHeaders?: Record<string, string> | undefined;
|
|
407
|
+
credentialRef?: string | undefined;
|
|
408
|
+
}>>, Record<string, {
|
|
409
|
+
name: string;
|
|
410
|
+
enabled?: boolean | undefined;
|
|
411
|
+
url?: string | undefined;
|
|
412
|
+
args?: string[] | undefined;
|
|
249
413
|
command?: string | undefined;
|
|
414
|
+
env?: Record<string, string> | undefined;
|
|
250
415
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
251
416
|
headers?: Record<string, string> | undefined;
|
|
417
|
+
envVars?: string[] | undefined;
|
|
418
|
+
bearerTokenEnvVar?: string | undefined;
|
|
419
|
+
envHeaders?: Record<string, string> | undefined;
|
|
420
|
+
credentialRef?: string | undefined;
|
|
421
|
+
}>, unknown>>;
|
|
422
|
+
/**
|
|
423
|
+
* User supplements for PLUGIN-provided MCP servers, keyed by the server's
|
|
424
|
+
* `<plugin>:<server>` name. Layered onto the plugin config at merge time
|
|
425
|
+
* (mergePluginMcpServers). Only env/credential fields are accepted —
|
|
426
|
+
* command/args/url/transport are intentionally absent and `.strict()`
|
|
427
|
+
* rejects them, so a plugin update is never shadowed by a stale copy.
|
|
428
|
+
*/
|
|
429
|
+
mcpServerOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
430
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
431
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
432
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
433
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
434
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
435
|
+
}, "strict", z.ZodTypeAny, {
|
|
436
|
+
env?: Record<string, string> | undefined;
|
|
437
|
+
envVars?: string[] | undefined;
|
|
438
|
+
bearerTokenEnvVar?: string | undefined;
|
|
439
|
+
envHeaders?: Record<string, string> | undefined;
|
|
440
|
+
credentialRef?: string | undefined;
|
|
441
|
+
}, {
|
|
442
|
+
env?: Record<string, string> | undefined;
|
|
443
|
+
envVars?: string[] | undefined;
|
|
444
|
+
bearerTokenEnvVar?: string | undefined;
|
|
445
|
+
envHeaders?: Record<string, string> | undefined;
|
|
446
|
+
credentialRef?: string | undefined;
|
|
252
447
|
}>>>;
|
|
253
448
|
/**
|
|
254
449
|
* Skill names hidden from the LLM. Names include the full
|
|
@@ -264,6 +459,82 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
264
459
|
* names (no colon suffix). See scanSkills(opts.disabledPlugins).
|
|
265
460
|
*/
|
|
266
461
|
disabledPlugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
462
|
+
/**
|
|
463
|
+
* Sub-agent role names (the `name` in .code-shell/agents/*.md) to
|
|
464
|
+
* hide from the registry. A disabled role is filtered out at load
|
|
465
|
+
* so it never appears in registry.list()/get() — the Agent tool's
|
|
466
|
+
* agent_type list won't show it and the LLM can't pick it. Mirrors
|
|
467
|
+
* disabledSkills / disabledPlugins.
|
|
468
|
+
*/
|
|
469
|
+
disabledAgents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
470
|
+
/**
|
|
471
|
+
* Project-scoped tri-state capability overlay. Only meaningful in
|
|
472
|
+
* ${cwd}/.code-shell/settings.json; layered over the global baseline at
|
|
473
|
+
* capability-assembly time. Optional — absence === everything inherits.
|
|
474
|
+
*/
|
|
475
|
+
capabilityOverrides: z.ZodOptional<z.ZodObject<{
|
|
476
|
+
skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
477
|
+
plugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
478
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
479
|
+
mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
480
|
+
builtin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
481
|
+
/**
|
|
482
|
+
* Per-hook overlay for PLUGIN-provided hooks, keyed by
|
|
483
|
+
* `pluginHookKey()` (`<plugin>:<RawEvent>:<command>`). Finer-grained
|
|
484
|
+
* than `plugins` (which kills a whole plugin): "off" suppresses one
|
|
485
|
+
* hook for this project only. Only "off" is meaningful today — plugin
|
|
486
|
+
* hooks have no global disable list to force back "on" from.
|
|
487
|
+
*/
|
|
488
|
+
pluginHooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
489
|
+
}, "strip", z.ZodTypeAny, {
|
|
490
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
491
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
492
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
493
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
494
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
495
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
496
|
+
}, {
|
|
497
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
498
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
499
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
500
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
501
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
502
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
503
|
+
}>>;
|
|
504
|
+
/**
|
|
505
|
+
* Feature flags overlay: a map of flag name → boolean that overrides the
|
|
506
|
+
* compiled-in defaults (see settings/feature-flags.ts FEATURE_FLAGS).
|
|
507
|
+
* Project settings override user settings via the normal merge, so a flag
|
|
508
|
+
* can be flipped per-workspace. Unknown flag names are tolerated (kept as
|
|
509
|
+
* data) for forward-compat; consumers only read known flags via
|
|
510
|
+
* isFeatureEnabled(). Passthrough record — values coerced to boolean.
|
|
511
|
+
*/
|
|
512
|
+
featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
513
|
+
/**
|
|
514
|
+
* Cross-session memory knobs. Optional — absence keeps the built-in
|
|
515
|
+
* defaults (see services/extract-memories.ts). `maxCount` caps memories
|
|
516
|
+
* accepted per extraction pass; `maxAge`/`extractionModel` are reserved
|
|
517
|
+
* for the consolidation/extraction pipeline.
|
|
518
|
+
*/
|
|
519
|
+
memories: z.ZodOptional<z.ZodObject<{
|
|
520
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
521
|
+
maxAge: z.ZodOptional<z.ZodNumber>;
|
|
522
|
+
extractionModel: z.ZodOptional<z.ZodString>;
|
|
523
|
+
/** Master switch for end-of-session automatic memory extraction.
|
|
524
|
+
* Absent/true = extract (current behavior); false = skip extraction
|
|
525
|
+
* while keeping session summaries and Dream untouched. */
|
|
526
|
+
autoExtract: z.ZodOptional<z.ZodBoolean>;
|
|
527
|
+
}, "strip", z.ZodTypeAny, {
|
|
528
|
+
maxCount?: number | undefined;
|
|
529
|
+
maxAge?: number | undefined;
|
|
530
|
+
extractionModel?: string | undefined;
|
|
531
|
+
autoExtract?: boolean | undefined;
|
|
532
|
+
}, {
|
|
533
|
+
maxCount?: number | undefined;
|
|
534
|
+
maxAge?: number | undefined;
|
|
535
|
+
extractionModel?: string | undefined;
|
|
536
|
+
autoExtract?: boolean | undefined;
|
|
537
|
+
}>>;
|
|
267
538
|
instructions: z.ZodDefault<z.ZodObject<{
|
|
268
539
|
fileName: z.ZodDefault<z.ZodString>;
|
|
269
540
|
scanDirs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -288,30 +559,30 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
288
559
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
289
560
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
290
561
|
}, "strip", z.ZodTypeAny, {
|
|
291
|
-
model: string;
|
|
292
562
|
name: string;
|
|
563
|
+
model: string;
|
|
293
564
|
provider?: string | undefined;
|
|
294
565
|
baseUrl?: string | undefined;
|
|
295
566
|
apiKey?: string | undefined;
|
|
296
567
|
}, {
|
|
297
|
-
model: string;
|
|
298
568
|
name: string;
|
|
569
|
+
model: string;
|
|
299
570
|
provider?: string | undefined;
|
|
300
571
|
baseUrl?: string | undefined;
|
|
301
572
|
apiKey?: string | undefined;
|
|
302
573
|
}>]>, "many">>;
|
|
303
574
|
}, "strip", z.ZodTypeAny, {
|
|
304
575
|
participants: (string | {
|
|
305
|
-
model: string;
|
|
306
576
|
name: string;
|
|
577
|
+
model: string;
|
|
307
578
|
provider?: string | undefined;
|
|
308
579
|
baseUrl?: string | undefined;
|
|
309
580
|
apiKey?: string | undefined;
|
|
310
581
|
})[];
|
|
311
582
|
}, {
|
|
312
583
|
participants?: (string | {
|
|
313
|
-
model: string;
|
|
314
584
|
name: string;
|
|
585
|
+
model: string;
|
|
315
586
|
provider?: string | undefined;
|
|
316
587
|
baseUrl?: string | undefined;
|
|
317
588
|
apiKey?: string | undefined;
|
|
@@ -331,12 +602,45 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
331
602
|
providers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["serper", "tavily", "searxng"]>, z.ZodObject<{
|
|
332
603
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
333
604
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
605
|
+
lastProbe: z.ZodOptional<z.ZodObject<{
|
|
606
|
+
status: z.ZodEnum<["ok", "error", "unconfigured"]>;
|
|
607
|
+
sampleTitles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
608
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
609
|
+
errorDetail: z.ZodOptional<z.ZodString>;
|
|
610
|
+
lastProbedAt: z.ZodString;
|
|
611
|
+
}, "strip", z.ZodTypeAny, {
|
|
612
|
+
status: "error" | "ok" | "unconfigured";
|
|
613
|
+
lastProbedAt: string;
|
|
614
|
+
sampleTitles?: string[] | undefined;
|
|
615
|
+
errorMessage?: string | undefined;
|
|
616
|
+
errorDetail?: string | undefined;
|
|
617
|
+
}, {
|
|
618
|
+
status: "error" | "ok" | "unconfigured";
|
|
619
|
+
lastProbedAt: string;
|
|
620
|
+
sampleTitles?: string[] | undefined;
|
|
621
|
+
errorMessage?: string | undefined;
|
|
622
|
+
errorDetail?: string | undefined;
|
|
623
|
+
}>>;
|
|
334
624
|
}, "strip", z.ZodTypeAny, {
|
|
335
625
|
baseUrl?: string | undefined;
|
|
336
626
|
apiKey?: string | undefined;
|
|
627
|
+
lastProbe?: {
|
|
628
|
+
status: "error" | "ok" | "unconfigured";
|
|
629
|
+
lastProbedAt: string;
|
|
630
|
+
sampleTitles?: string[] | undefined;
|
|
631
|
+
errorMessage?: string | undefined;
|
|
632
|
+
errorDetail?: string | undefined;
|
|
633
|
+
} | undefined;
|
|
337
634
|
}, {
|
|
338
635
|
baseUrl?: string | undefined;
|
|
339
636
|
apiKey?: string | undefined;
|
|
637
|
+
lastProbe?: {
|
|
638
|
+
status: "error" | "ok" | "unconfigured";
|
|
639
|
+
lastProbedAt: string;
|
|
640
|
+
sampleTitles?: string[] | undefined;
|
|
641
|
+
errorMessage?: string | undefined;
|
|
642
|
+
errorDetail?: string | undefined;
|
|
643
|
+
} | undefined;
|
|
340
644
|
}>>>;
|
|
341
645
|
}, "strip", z.ZodTypeAny, {
|
|
342
646
|
provider: "serper" | "tavily" | "searxng";
|
|
@@ -345,6 +649,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
345
649
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
346
650
|
baseUrl?: string | undefined;
|
|
347
651
|
apiKey?: string | undefined;
|
|
652
|
+
lastProbe?: {
|
|
653
|
+
status: "error" | "ok" | "unconfigured";
|
|
654
|
+
lastProbedAt: string;
|
|
655
|
+
sampleTitles?: string[] | undefined;
|
|
656
|
+
errorMessage?: string | undefined;
|
|
657
|
+
errorDetail?: string | undefined;
|
|
658
|
+
} | undefined;
|
|
348
659
|
}>> | undefined;
|
|
349
660
|
}, {
|
|
350
661
|
provider?: "serper" | "tavily" | "searxng" | undefined;
|
|
@@ -353,6 +664,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
353
664
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
354
665
|
baseUrl?: string | undefined;
|
|
355
666
|
apiKey?: string | undefined;
|
|
667
|
+
lastProbe?: {
|
|
668
|
+
status: "error" | "ok" | "unconfigured";
|
|
669
|
+
lastProbedAt: string;
|
|
670
|
+
sampleTitles?: string[] | undefined;
|
|
671
|
+
errorMessage?: string | undefined;
|
|
672
|
+
errorDetail?: string | undefined;
|
|
673
|
+
} | undefined;
|
|
356
674
|
}>> | undefined;
|
|
357
675
|
}>>;
|
|
358
676
|
output: z.ZodDefault<z.ZodObject<{
|
|
@@ -362,6 +680,26 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
362
680
|
}, {
|
|
363
681
|
format?: "text" | "json" | "jsonl" | "stream-json" | undefined;
|
|
364
682
|
}>>;
|
|
683
|
+
/**
|
|
684
|
+
* Image attachment handling. Sub-fields:
|
|
685
|
+
* - detail: provider-agnostic image clarity. Drives the
|
|
686
|
+
* renderer-side downscale (low→~1024 / standard→~1568 /
|
|
687
|
+
* high→~2576 px long edge) so BOTH providers save tokens
|
|
688
|
+
* before send. Legacy "original" is migrated to "high".
|
|
689
|
+
* - mcpImageTokenBudget: per-turn cap on token cost of images
|
|
690
|
+
* returned by MCP tools. Codex doesn't enforce this; CC uses
|
|
691
|
+
* 25 000. Set to 0 to disable.
|
|
692
|
+
*/
|
|
693
|
+
images: z.ZodOptional<z.ZodObject<{
|
|
694
|
+
detail: z.ZodOptional<z.ZodEffects<z.ZodEnum<["low", "standard", "high"]>, "low" | "high" | "standard", unknown>>;
|
|
695
|
+
mcpImageTokenBudget: z.ZodOptional<z.ZodNumber>;
|
|
696
|
+
}, "strip", z.ZodTypeAny, {
|
|
697
|
+
detail?: "low" | "high" | "standard" | undefined;
|
|
698
|
+
mcpImageTokenBudget?: number | undefined;
|
|
699
|
+
}, {
|
|
700
|
+
detail?: unknown;
|
|
701
|
+
mcpImageTokenBudget?: number | undefined;
|
|
702
|
+
}>>;
|
|
365
703
|
/**
|
|
366
704
|
* OS-level sandbox for shell-tool execution. "auto" picks per platform:
|
|
367
705
|
* Seatbelt on macOS, bubblewrap on Linux when installed, otherwise off.
|
|
@@ -374,16 +712,103 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
374
712
|
deniedReads: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
375
713
|
network: z.ZodOptional<z.ZodEnum<["allow", "deny"]>>;
|
|
376
714
|
}, "strip", z.ZodTypeAny, {
|
|
377
|
-
mode?: "auto" | "
|
|
715
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
378
716
|
writableRoots?: string[] | undefined;
|
|
379
717
|
deniedReads?: string[] | undefined;
|
|
380
718
|
network?: "allow" | "deny" | undefined;
|
|
381
719
|
}, {
|
|
382
|
-
mode?: "auto" | "
|
|
720
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
383
721
|
writableRoots?: string[] | undefined;
|
|
384
722
|
deniedReads?: string[] | undefined;
|
|
385
723
|
network?: "allow" | "deny" | undefined;
|
|
386
724
|
}>>;
|
|
725
|
+
/**
|
|
726
|
+
* Top-level environment variables injected into tool subprocesses (the
|
|
727
|
+
* Bash tool, background shells). Mirrors Claude Code's `env` field: a
|
|
728
|
+
* KEY=VALUE map that can be set globally (~/.code-shell/settings.json) and
|
|
729
|
+
* overridden per-project (.code-shell/settings.json). The canonical home
|
|
730
|
+
* for API keys (e.g. OPENAI_API_KEY) that a skill's script reads — configure
|
|
731
|
+
* once globally and every project's skills can use it.
|
|
732
|
+
*
|
|
733
|
+
* Precedence when merged into the spawn env (lowest → highest):
|
|
734
|
+
* project localEnvironment.env → global env → project env
|
|
735
|
+
* None of these is filtered through the deny regex (see mergeShellEnv):
|
|
736
|
+
* they are values the user typed deliberately, a different trust class from
|
|
737
|
+
* the host process.env passthrough the deny machinery guards against.
|
|
738
|
+
*/
|
|
739
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
740
|
+
/**
|
|
741
|
+
* Project-local environment profile. Mirrors Codex's local-environment
|
|
742
|
+
* shape at the settings layer: setup/cleanup scripts can be customized per
|
|
743
|
+
* platform, and env values are stored as KEY=VALUE pairs. Runtime wiring is
|
|
744
|
+
* intentionally separate from the MCP server env model above.
|
|
745
|
+
*/
|
|
746
|
+
localEnvironment: z.ZodOptional<z.ZodObject<{
|
|
747
|
+
name: z.ZodOptional<z.ZodString>;
|
|
748
|
+
setupScripts: z.ZodOptional<z.ZodObject<{
|
|
749
|
+
default: z.ZodOptional<z.ZodString>;
|
|
750
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
751
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
752
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
753
|
+
}, "strip", z.ZodTypeAny, {
|
|
754
|
+
default?: string | undefined;
|
|
755
|
+
linux?: string | undefined;
|
|
756
|
+
macos?: string | undefined;
|
|
757
|
+
windows?: string | undefined;
|
|
758
|
+
}, {
|
|
759
|
+
default?: string | undefined;
|
|
760
|
+
linux?: string | undefined;
|
|
761
|
+
macos?: string | undefined;
|
|
762
|
+
windows?: string | undefined;
|
|
763
|
+
}>>;
|
|
764
|
+
cleanupScripts: z.ZodOptional<z.ZodObject<{
|
|
765
|
+
default: z.ZodOptional<z.ZodString>;
|
|
766
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
767
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
768
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
769
|
+
}, "strip", z.ZodTypeAny, {
|
|
770
|
+
default?: string | undefined;
|
|
771
|
+
linux?: string | undefined;
|
|
772
|
+
macos?: string | undefined;
|
|
773
|
+
windows?: string | undefined;
|
|
774
|
+
}, {
|
|
775
|
+
default?: string | undefined;
|
|
776
|
+
linux?: string | undefined;
|
|
777
|
+
macos?: string | undefined;
|
|
778
|
+
windows?: string | undefined;
|
|
779
|
+
}>>;
|
|
780
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
781
|
+
}, "strip", z.ZodTypeAny, {
|
|
782
|
+
name?: string | undefined;
|
|
783
|
+
env?: Record<string, string> | undefined;
|
|
784
|
+
setupScripts?: {
|
|
785
|
+
default?: string | undefined;
|
|
786
|
+
linux?: string | undefined;
|
|
787
|
+
macos?: string | undefined;
|
|
788
|
+
windows?: string | undefined;
|
|
789
|
+
} | undefined;
|
|
790
|
+
cleanupScripts?: {
|
|
791
|
+
default?: string | undefined;
|
|
792
|
+
linux?: string | undefined;
|
|
793
|
+
macos?: string | undefined;
|
|
794
|
+
windows?: string | undefined;
|
|
795
|
+
} | undefined;
|
|
796
|
+
}, {
|
|
797
|
+
name?: string | undefined;
|
|
798
|
+
env?: Record<string, string> | undefined;
|
|
799
|
+
setupScripts?: {
|
|
800
|
+
default?: string | undefined;
|
|
801
|
+
linux?: string | undefined;
|
|
802
|
+
macos?: string | undefined;
|
|
803
|
+
windows?: string | undefined;
|
|
804
|
+
} | undefined;
|
|
805
|
+
cleanupScripts?: {
|
|
806
|
+
default?: string | undefined;
|
|
807
|
+
linux?: string | undefined;
|
|
808
|
+
macos?: string | undefined;
|
|
809
|
+
windows?: string | undefined;
|
|
810
|
+
} | undefined;
|
|
811
|
+
}>>;
|
|
387
812
|
/**
|
|
388
813
|
* Shell-hook configuration. Each entry binds a HookEventName to a
|
|
389
814
|
* shell command; the command receives ctx JSON on stdin and returns
|
|
@@ -400,19 +825,99 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
400
825
|
matcher: z.ZodOptional<z.ZodString>;
|
|
401
826
|
timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
402
827
|
cwd: z.ZodOptional<z.ZodString>;
|
|
828
|
+
/** Soft off-switch: the entry stays in the file (and the UI) but
|
|
829
|
+
* registerSettingsHooks skips it. Absent = enabled. */
|
|
830
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
403
831
|
}, "strip", z.ZodTypeAny, {
|
|
404
832
|
command: string;
|
|
405
833
|
event: string;
|
|
406
|
-
|
|
834
|
+
disabled?: boolean | undefined;
|
|
407
835
|
matcher?: string | undefined;
|
|
408
836
|
timeout_ms?: number | undefined;
|
|
837
|
+
cwd?: string | undefined;
|
|
409
838
|
}, {
|
|
410
839
|
command: string;
|
|
411
840
|
event: string;
|
|
412
|
-
|
|
841
|
+
disabled?: boolean | undefined;
|
|
413
842
|
matcher?: string | undefined;
|
|
414
843
|
timeout_ms?: number | undefined;
|
|
844
|
+
cwd?: string | undefined;
|
|
415
845
|
}>, "many">>;
|
|
846
|
+
/**
|
|
847
|
+
* External coding-agent orchestration (Claude Code / Codex CLI).
|
|
848
|
+
* Used by the Mobile Web Remote to launch managed jobs. dangerousArgs
|
|
849
|
+
* is config-provided (not hardcoded) so it tracks CLI flag changes;
|
|
850
|
+
* project-default dangerous mode only applies inside trustedWorkspaces.
|
|
851
|
+
*/
|
|
852
|
+
externalAgents: z.ZodOptional<z.ZodObject<{
|
|
853
|
+
claudeCode: z.ZodOptional<z.ZodObject<{
|
|
854
|
+
command: z.ZodOptional<z.ZodString>;
|
|
855
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["safe", "dangerous"]>>;
|
|
856
|
+
dangerousArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
857
|
+
trustedWorkspaces: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
858
|
+
autoStartInTrustedWorkspaces: z.ZodOptional<z.ZodBoolean>;
|
|
859
|
+
}, "strip", z.ZodTypeAny, {
|
|
860
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
861
|
+
command?: string | undefined;
|
|
862
|
+
dangerousArgs?: string[] | undefined;
|
|
863
|
+
trustedWorkspaces?: string[] | undefined;
|
|
864
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
865
|
+
}, {
|
|
866
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
867
|
+
command?: string | undefined;
|
|
868
|
+
dangerousArgs?: string[] | undefined;
|
|
869
|
+
trustedWorkspaces?: string[] | undefined;
|
|
870
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
871
|
+
}>>;
|
|
872
|
+
codex: z.ZodOptional<z.ZodObject<{
|
|
873
|
+
command: z.ZodOptional<z.ZodString>;
|
|
874
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
875
|
+
}, "strip", z.ZodTypeAny, {
|
|
876
|
+
args?: string[] | undefined;
|
|
877
|
+
command?: string | undefined;
|
|
878
|
+
}, {
|
|
879
|
+
args?: string[] | undefined;
|
|
880
|
+
command?: string | undefined;
|
|
881
|
+
}>>;
|
|
882
|
+
}, "strip", z.ZodTypeAny, {
|
|
883
|
+
claudeCode?: {
|
|
884
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
885
|
+
command?: string | undefined;
|
|
886
|
+
dangerousArgs?: string[] | undefined;
|
|
887
|
+
trustedWorkspaces?: string[] | undefined;
|
|
888
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
889
|
+
} | undefined;
|
|
890
|
+
codex?: {
|
|
891
|
+
args?: string[] | undefined;
|
|
892
|
+
command?: string | undefined;
|
|
893
|
+
} | undefined;
|
|
894
|
+
}, {
|
|
895
|
+
claudeCode?: {
|
|
896
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
897
|
+
command?: string | undefined;
|
|
898
|
+
dangerousArgs?: string[] | undefined;
|
|
899
|
+
trustedWorkspaces?: string[] | undefined;
|
|
900
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
901
|
+
} | undefined;
|
|
902
|
+
codex?: {
|
|
903
|
+
args?: string[] | undefined;
|
|
904
|
+
command?: string | undefined;
|
|
905
|
+
} | undefined;
|
|
906
|
+
}>>;
|
|
907
|
+
/**
|
|
908
|
+
* Credential-use gate (凭证模块第二期). Controls whether the AI's
|
|
909
|
+
* `UseCredential` tool prompts before handing a stored credential to a
|
|
910
|
+
* command. `autoApprove: true` skips the prompt entirely (默认关 — every
|
|
911
|
+
* use asks, or is remembered for the session). See
|
|
912
|
+
* docs/superpowers/specs/2026-06-16-credential-use-gate-design.md §5.
|
|
913
|
+
*/
|
|
914
|
+
credentialUse: z.ZodOptional<z.ZodObject<{
|
|
915
|
+
autoApprove: z.ZodOptional<z.ZodBoolean>;
|
|
916
|
+
}, "strip", z.ZodTypeAny, {
|
|
917
|
+
autoApprove?: boolean | undefined;
|
|
918
|
+
}, {
|
|
919
|
+
autoApprove?: boolean | undefined;
|
|
920
|
+
}>>;
|
|
416
921
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
417
922
|
agent: z.ZodDefault<z.ZodObject<{
|
|
418
923
|
preset: z.ZodDefault<z.ZodString>;
|
|
@@ -420,27 +925,43 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
420
925
|
disabledBuiltinTools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
421
926
|
customSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
422
927
|
appendSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
928
|
+
responseLanguage: z.ZodOptional<z.ZodString>;
|
|
929
|
+
userProfile: z.ZodOptional<z.ZodString>;
|
|
930
|
+
instructions: z.ZodOptional<z.ZodObject<{
|
|
931
|
+
compatClaude: z.ZodDefault<z.ZodBoolean>;
|
|
932
|
+
compatCodex: z.ZodDefault<z.ZodBoolean>;
|
|
933
|
+
}, "strip", z.ZodTypeAny, {
|
|
934
|
+
compatClaude: boolean;
|
|
935
|
+
compatCodex: boolean;
|
|
936
|
+
}, {
|
|
937
|
+
compatClaude?: boolean | undefined;
|
|
938
|
+
compatCodex?: boolean | undefined;
|
|
939
|
+
}>>;
|
|
423
940
|
}, "strip", z.ZodTypeAny, {
|
|
424
941
|
preset: string;
|
|
425
942
|
enabledBuiltinTools: string[];
|
|
426
943
|
disabledBuiltinTools: string[];
|
|
427
944
|
customSystemPrompt?: string | undefined;
|
|
428
945
|
appendSystemPrompt?: string | undefined;
|
|
946
|
+
responseLanguage?: string | undefined;
|
|
947
|
+
userProfile?: string | undefined;
|
|
948
|
+
instructions?: {
|
|
949
|
+
compatClaude: boolean;
|
|
950
|
+
compatCodex: boolean;
|
|
951
|
+
} | undefined;
|
|
429
952
|
}, {
|
|
430
953
|
preset?: string | undefined;
|
|
431
954
|
enabledBuiltinTools?: string[] | undefined;
|
|
432
955
|
disabledBuiltinTools?: string[] | undefined;
|
|
433
956
|
customSystemPrompt?: string | undefined;
|
|
434
957
|
appendSystemPrompt?: string | undefined;
|
|
958
|
+
responseLanguage?: string | undefined;
|
|
959
|
+
userProfile?: string | undefined;
|
|
960
|
+
instructions?: {
|
|
961
|
+
compatClaude?: boolean | undefined;
|
|
962
|
+
compatCodex?: boolean | undefined;
|
|
963
|
+
} | undefined;
|
|
435
964
|
}>>;
|
|
436
|
-
/**
|
|
437
|
-
* Primary source of truth for the active model is settings.activeKey
|
|
438
|
-
* (points at models[].key). settings.model is a derived mirror of that
|
|
439
|
-
* entry kept in sync for legacy boot paths (cli/main.ts, repl.ts, etc.)
|
|
440
|
-
* which read provider/name/apiKey/baseUrl directly. Writers must update
|
|
441
|
-
* both — appendOnboardingResult does this in one shot.
|
|
442
|
-
*/
|
|
443
|
-
activeKey: z.ZodOptional<z.ZodString>;
|
|
444
965
|
/**
|
|
445
966
|
* Toggle background auto-update. When true (default), code-shell checks
|
|
446
967
|
* npm for newer versions and — if the npm global prefix is writable —
|
|
@@ -449,135 +970,215 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
449
970
|
* Can also be disabled via env var `DISABLE_AUTOUPDATER=1`.
|
|
450
971
|
*/
|
|
451
972
|
autoUpdates: z.ZodDefault<z.ZodBoolean>;
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
973
|
+
/**
|
|
974
|
+
* Image generation is a general capability, decoupled from LLM providers
|
|
975
|
+
* (TODO 7.1): a vendor may use different keys/endpoints/models for chat vs
|
|
976
|
+
* image, and image vendors (Gemini, and later 国内 模型) don't fit the LLM
|
|
977
|
+
* `providers[].kind` enum. `imageGen.providers[]` is the canonical config;
|
|
978
|
+
* each entry has a user-chosen `id` (selected via GenerateImage's
|
|
979
|
+
* `provider` arg) and a `kind` that picks the adapter. When `imageGen` is
|
|
980
|
+
* absent, resolution falls back to scanning LLM `providers[]` for an
|
|
981
|
+
* image-capable kind — so existing configs keep working with no migration.
|
|
982
|
+
*/
|
|
983
|
+
imageGen: z.ZodOptional<z.ZodObject<{
|
|
984
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
985
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
986
|
+
/** User-chosen instance name; GenerateImage(provider) selects by this. */
|
|
987
|
+
id: z.ZodString;
|
|
988
|
+
/** Adapter selector — e.g. "openai", "google". */
|
|
989
|
+
kind: z.ZodString;
|
|
990
|
+
baseUrl: z.ZodString;
|
|
991
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
992
|
+
/** Default model for this instance when the call omits `model`. */
|
|
993
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
994
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
995
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
996
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
997
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
998
|
+
}, "strip", z.ZodTypeAny, {
|
|
999
|
+
id: string;
|
|
1000
|
+
kind: string;
|
|
1001
|
+
baseUrl: string;
|
|
1002
|
+
apiKey?: string | undefined;
|
|
1003
|
+
defaultModel?: string | undefined;
|
|
1004
|
+
catalogId?: string | undefined;
|
|
1005
|
+
apiKeyRef?: string | undefined;
|
|
1006
|
+
}, {
|
|
1007
|
+
id: string;
|
|
1008
|
+
kind: string;
|
|
1009
|
+
baseUrl: string;
|
|
1010
|
+
apiKey?: string | undefined;
|
|
1011
|
+
defaultModel?: string | undefined;
|
|
1012
|
+
catalogId?: string | undefined;
|
|
1013
|
+
apiKeyRef?: string | undefined;
|
|
1014
|
+
}>, "many">>;
|
|
459
1015
|
}, "strip", z.ZodTypeAny, {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
1016
|
+
providers: {
|
|
1017
|
+
id: string;
|
|
1018
|
+
kind: string;
|
|
1019
|
+
baseUrl: string;
|
|
1020
|
+
apiKey?: string | undefined;
|
|
1021
|
+
defaultModel?: string | undefined;
|
|
1022
|
+
catalogId?: string | undefined;
|
|
1023
|
+
apiKeyRef?: string | undefined;
|
|
1024
|
+
}[];
|
|
1025
|
+
defaultProvider?: string | undefined;
|
|
466
1026
|
}, {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
1027
|
+
defaultProvider?: string | undefined;
|
|
1028
|
+
providers?: {
|
|
1029
|
+
id: string;
|
|
1030
|
+
kind: string;
|
|
1031
|
+
baseUrl: string;
|
|
1032
|
+
apiKey?: string | undefined;
|
|
1033
|
+
defaultModel?: string | undefined;
|
|
1034
|
+
catalogId?: string | undefined;
|
|
1035
|
+
apiKeyRef?: string | undefined;
|
|
1036
|
+
}[] | undefined;
|
|
473
1037
|
}>>;
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
1038
|
+
/**
|
|
1039
|
+
* Video generation config (TODO 7.1) — same shape as imageGen, decoupled
|
|
1040
|
+
* from LLM providers. `videoGen.providers[]` each carry an `id` (selected
|
|
1041
|
+
* via GenerateVideo's `provider` arg) + a `kind` picking the adapter. With
|
|
1042
|
+
* no real adapters wired yet, this is config-ready: a future getVideoProvider
|
|
1043
|
+
* case lights it up. Falls back to scanning LLM providers[] when absent.
|
|
1044
|
+
*/
|
|
1045
|
+
videoGen: z.ZodOptional<z.ZodObject<{
|
|
1046
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
1047
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1048
|
+
id: z.ZodString;
|
|
1049
|
+
kind: z.ZodString;
|
|
1050
|
+
baseUrl: z.ZodString;
|
|
1051
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
1052
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
1053
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
1054
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
1055
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
1056
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
1057
|
+
}, "strip", z.ZodTypeAny, {
|
|
1058
|
+
id: string;
|
|
1059
|
+
kind: string;
|
|
1060
|
+
baseUrl: string;
|
|
1061
|
+
apiKey?: string | undefined;
|
|
1062
|
+
defaultModel?: string | undefined;
|
|
1063
|
+
catalogId?: string | undefined;
|
|
1064
|
+
apiKeyRef?: string | undefined;
|
|
1065
|
+
}, {
|
|
1066
|
+
id: string;
|
|
1067
|
+
kind: string;
|
|
1068
|
+
baseUrl: string;
|
|
1069
|
+
apiKey?: string | undefined;
|
|
1070
|
+
defaultModel?: string | undefined;
|
|
1071
|
+
catalogId?: string | undefined;
|
|
1072
|
+
apiKeyRef?: string | undefined;
|
|
1073
|
+
}>, "many">>;
|
|
489
1074
|
}, "strip", z.ZodTypeAny, {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1075
|
+
providers: {
|
|
1076
|
+
id: string;
|
|
1077
|
+
kind: string;
|
|
1078
|
+
baseUrl: string;
|
|
1079
|
+
apiKey?: string | undefined;
|
|
1080
|
+
defaultModel?: string | undefined;
|
|
1081
|
+
catalogId?: string | undefined;
|
|
1082
|
+
apiKeyRef?: string | undefined;
|
|
1083
|
+
}[];
|
|
1084
|
+
defaultProvider?: string | undefined;
|
|
1085
|
+
}, {
|
|
1086
|
+
defaultProvider?: string | undefined;
|
|
1087
|
+
providers?: {
|
|
1088
|
+
id: string;
|
|
1089
|
+
kind: string;
|
|
1090
|
+
baseUrl: string;
|
|
1091
|
+
apiKey?: string | undefined;
|
|
1092
|
+
defaultModel?: string | undefined;
|
|
1093
|
+
catalogId?: string | undefined;
|
|
1094
|
+
apiKeyRef?: string | undefined;
|
|
1095
|
+
}[] | undefined;
|
|
1096
|
+
}>>;
|
|
1097
|
+
/**
|
|
1098
|
+
* Credentials — independent key entities (统一模型接入方案 §3.3). A key
|
|
1099
|
+
* lives here, not inlined on a connection, so deleting a connection never
|
|
1100
|
+
* loses a key and many connections share one key by referencing the same
|
|
1101
|
+
* credential id (LiteLLM credential_list model).
|
|
1102
|
+
*/
|
|
1103
|
+
credentials: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1104
|
+
/** User-chosen unique credential name. */
|
|
1105
|
+
id: z.ZodString;
|
|
1106
|
+
/** Catalog template this credential is for (a key belongs to one provider). */
|
|
1107
|
+
catalogId: z.ZodString;
|
|
524
1108
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
525
|
-
|
|
526
|
-
* Per-model thinking override. Wins over the provider-level
|
|
527
|
-
* setting (settings.providers[].thinking). Use this when
|
|
528
|
-
* different models under the same provider need different
|
|
529
|
-
* defaults — e.g. DeepSeek V4 Pro off (faster) but V4 Flash on.
|
|
530
|
-
*/
|
|
531
|
-
thinking: z.ZodOptional<z.ZodEnum<["enabled", "disabled"]>>;
|
|
1109
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
532
1110
|
}, "strip", z.ZodTypeAny, {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
provider?: string | undefined;
|
|
536
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
537
|
-
label?: string | undefined;
|
|
1111
|
+
id: string;
|
|
1112
|
+
catalogId: string;
|
|
538
1113
|
baseUrl?: string | undefined;
|
|
539
1114
|
apiKey?: string | undefined;
|
|
540
|
-
protocol?: string | undefined;
|
|
541
|
-
providerKey?: string | undefined;
|
|
542
|
-
maxOutputTokens?: number | undefined;
|
|
543
|
-
maxContextTokens?: number | undefined;
|
|
544
1115
|
}, {
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
provider?: string | undefined;
|
|
548
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
549
|
-
label?: string | undefined;
|
|
1116
|
+
id: string;
|
|
1117
|
+
catalogId: string;
|
|
550
1118
|
baseUrl?: string | undefined;
|
|
551
1119
|
apiKey?: string | undefined;
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
1120
|
+
}>, "many">>;
|
|
1121
|
+
/**
|
|
1122
|
+
* Unified instance layer (统一模型接入方案, see
|
|
1123
|
+
* docs/superpowers/specs/2026-06-15-unified-model-catalog-design.md §3.3).
|
|
1124
|
+
* One store for text/image/video connections, each pointing at a catalog
|
|
1125
|
+
* entry (catalogId), a credential (credentialId), its chosen model, and the
|
|
1126
|
+
* param values the user picked. Replaces the legacy split of
|
|
1127
|
+
* providers[]/models[]/imageGen/videoGen.
|
|
1128
|
+
*/
|
|
1129
|
+
modelConnections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1130
|
+
/** User-chosen unique instance name. */
|
|
1131
|
+
id: z.ZodString;
|
|
1132
|
+
/** Catalog template this instance was created from. */
|
|
1133
|
+
catalogId: z.ZodString;
|
|
1134
|
+
tag: z.ZodEnum<["text", "image", "video", "audio"]>;
|
|
1135
|
+
/** Selected modelId (from the entry's modelPresets). */
|
|
1136
|
+
model: z.ZodString;
|
|
1137
|
+
/** Per-connection baseUrl override (else the credential's / catalog's). */
|
|
1138
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1139
|
+
/** Which credential supplies this connection's key. */
|
|
1140
|
+
credentialId: z.ZodOptional<z.ZodString>;
|
|
1141
|
+
/** Values the user picked for the model's params, e.g. { reasoning: "high" }. */
|
|
1142
|
+
paramValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1143
|
+
}, "strip", z.ZodTypeAny, {
|
|
1144
|
+
id: string;
|
|
559
1145
|
model: string;
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
label?: string | undefined;
|
|
1146
|
+
catalogId: string;
|
|
1147
|
+
tag: "text" | "image" | "video" | "audio";
|
|
563
1148
|
baseUrl?: string | undefined;
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
maxOutputTokens?: number | undefined;
|
|
567
|
-
maxContextTokens?: number | undefined;
|
|
1149
|
+
credentialId?: string | undefined;
|
|
1150
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
568
1151
|
}, {
|
|
1152
|
+
id: string;
|
|
569
1153
|
model: string;
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
573
|
-
label?: string | undefined;
|
|
1154
|
+
catalogId: string;
|
|
1155
|
+
tag: "text" | "image" | "video" | "audio";
|
|
574
1156
|
baseUrl?: string | undefined;
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
providerKey?: string | undefined;
|
|
578
|
-
maxOutputTokens?: number | undefined;
|
|
579
|
-
maxContextTokens?: number | undefined;
|
|
1157
|
+
credentialId?: string | undefined;
|
|
1158
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
580
1159
|
}>, "many">>;
|
|
1160
|
+
/** Default instance id per tag (replaces activeKey / defaultProvider). */
|
|
1161
|
+
defaults: z.ZodDefault<z.ZodObject<{
|
|
1162
|
+
text: z.ZodOptional<z.ZodString>;
|
|
1163
|
+
image: z.ZodOptional<z.ZodString>;
|
|
1164
|
+
video: z.ZodOptional<z.ZodString>;
|
|
1165
|
+
/** Default speech-to-text (voice input) connection. */
|
|
1166
|
+
audio: z.ZodOptional<z.ZodString>;
|
|
1167
|
+
/** Background-task model (replaces auxModelKey). */
|
|
1168
|
+
auxText: z.ZodOptional<z.ZodString>;
|
|
1169
|
+
}, "strip", z.ZodTypeAny, {
|
|
1170
|
+
text?: string | undefined;
|
|
1171
|
+
image?: string | undefined;
|
|
1172
|
+
video?: string | undefined;
|
|
1173
|
+
audio?: string | undefined;
|
|
1174
|
+
auxText?: string | undefined;
|
|
1175
|
+
}, {
|
|
1176
|
+
text?: string | undefined;
|
|
1177
|
+
image?: string | undefined;
|
|
1178
|
+
video?: string | undefined;
|
|
1179
|
+
audio?: string | undefined;
|
|
1180
|
+
auxText?: string | undefined;
|
|
1181
|
+
}>>;
|
|
581
1182
|
permissions: z.ZodDefault<z.ZodObject<{
|
|
582
1183
|
defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
|
|
583
1184
|
rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -597,7 +1198,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
597
1198
|
argsPattern?: Record<string, string> | undefined;
|
|
598
1199
|
}>, "many">>;
|
|
599
1200
|
}, "strip", z.ZodTypeAny, {
|
|
600
|
-
defaultMode: "
|
|
1201
|
+
defaultMode: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan";
|
|
601
1202
|
rules: {
|
|
602
1203
|
tool: string;
|
|
603
1204
|
decision: "allow" | "deny" | "ask";
|
|
@@ -605,7 +1206,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
605
1206
|
argsPattern?: Record<string, string> | undefined;
|
|
606
1207
|
}[];
|
|
607
1208
|
}, {
|
|
608
|
-
defaultMode?: "
|
|
1209
|
+
defaultMode?: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan" | undefined;
|
|
609
1210
|
rules?: {
|
|
610
1211
|
tool: string;
|
|
611
1212
|
decision: "allow" | "deny" | "ask";
|
|
@@ -617,14 +1218,17 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
617
1218
|
maxTokens: z.ZodDefault<z.ZodNumber>;
|
|
618
1219
|
compactAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
619
1220
|
summarizeAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
1221
|
+
microcompactFloorRatio: z.ZodDefault<z.ZodNumber>;
|
|
620
1222
|
}, "strip", z.ZodTypeAny, {
|
|
621
1223
|
maxTokens: number;
|
|
622
1224
|
compactAtRatio: number;
|
|
623
1225
|
summarizeAtRatio: number;
|
|
1226
|
+
microcompactFloorRatio: number;
|
|
624
1227
|
}, {
|
|
625
1228
|
maxTokens?: number | undefined;
|
|
626
1229
|
compactAtRatio?: number | undefined;
|
|
627
1230
|
summarizeAtRatio?: number | undefined;
|
|
1231
|
+
microcompactFloorRatio?: number | undefined;
|
|
628
1232
|
}>>;
|
|
629
1233
|
session: z.ZodDefault<z.ZodObject<{
|
|
630
1234
|
storageDir: z.ZodOptional<z.ZodString>;
|
|
@@ -636,7 +1240,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
636
1240
|
storageDir?: string | undefined;
|
|
637
1241
|
maxHistory?: number | undefined;
|
|
638
1242
|
}>>;
|
|
639
|
-
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1243
|
+
mcpServers: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
640
1244
|
name: z.ZodString;
|
|
641
1245
|
command: z.ZodOptional<z.ZodString>;
|
|
642
1246
|
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -644,22 +1248,76 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
644
1248
|
url: z.ZodOptional<z.ZodString>;
|
|
645
1249
|
transport: z.ZodOptional<z.ZodEnum<["stdio", "sse", "streamable-http", "inprocess"]>>;
|
|
646
1250
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1251
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1252
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
1253
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1254
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
1255
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
647
1256
|
}, "strip", z.ZodTypeAny, {
|
|
648
1257
|
name: string;
|
|
1258
|
+
enabled?: boolean | undefined;
|
|
649
1259
|
url?: string | undefined;
|
|
650
1260
|
args?: string[] | undefined;
|
|
651
|
-
env?: Record<string, string> | undefined;
|
|
652
1261
|
command?: string | undefined;
|
|
1262
|
+
env?: Record<string, string> | undefined;
|
|
653
1263
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
654
1264
|
headers?: Record<string, string> | undefined;
|
|
1265
|
+
envVars?: string[] | undefined;
|
|
1266
|
+
bearerTokenEnvVar?: string | undefined;
|
|
1267
|
+
envHeaders?: Record<string, string> | undefined;
|
|
1268
|
+
credentialRef?: string | undefined;
|
|
655
1269
|
}, {
|
|
656
1270
|
name: string;
|
|
1271
|
+
enabled?: boolean | undefined;
|
|
657
1272
|
url?: string | undefined;
|
|
658
1273
|
args?: string[] | undefined;
|
|
1274
|
+
command?: string | undefined;
|
|
659
1275
|
env?: Record<string, string> | undefined;
|
|
1276
|
+
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
1277
|
+
headers?: Record<string, string> | undefined;
|
|
1278
|
+
envVars?: string[] | undefined;
|
|
1279
|
+
bearerTokenEnvVar?: string | undefined;
|
|
1280
|
+
envHeaders?: Record<string, string> | undefined;
|
|
1281
|
+
credentialRef?: string | undefined;
|
|
1282
|
+
}>>, Record<string, {
|
|
1283
|
+
name: string;
|
|
1284
|
+
enabled?: boolean | undefined;
|
|
1285
|
+
url?: string | undefined;
|
|
1286
|
+
args?: string[] | undefined;
|
|
660
1287
|
command?: string | undefined;
|
|
1288
|
+
env?: Record<string, string> | undefined;
|
|
661
1289
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
662
1290
|
headers?: Record<string, string> | undefined;
|
|
1291
|
+
envVars?: string[] | undefined;
|
|
1292
|
+
bearerTokenEnvVar?: string | undefined;
|
|
1293
|
+
envHeaders?: Record<string, string> | undefined;
|
|
1294
|
+
credentialRef?: string | undefined;
|
|
1295
|
+
}>, unknown>>;
|
|
1296
|
+
/**
|
|
1297
|
+
* User supplements for PLUGIN-provided MCP servers, keyed by the server's
|
|
1298
|
+
* `<plugin>:<server>` name. Layered onto the plugin config at merge time
|
|
1299
|
+
* (mergePluginMcpServers). Only env/credential fields are accepted —
|
|
1300
|
+
* command/args/url/transport are intentionally absent and `.strict()`
|
|
1301
|
+
* rejects them, so a plugin update is never shadowed by a stale copy.
|
|
1302
|
+
*/
|
|
1303
|
+
mcpServerOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1304
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1305
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1306
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
1307
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
1308
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1309
|
+
}, "strict", z.ZodTypeAny, {
|
|
1310
|
+
env?: Record<string, string> | undefined;
|
|
1311
|
+
envVars?: string[] | undefined;
|
|
1312
|
+
bearerTokenEnvVar?: string | undefined;
|
|
1313
|
+
envHeaders?: Record<string, string> | undefined;
|
|
1314
|
+
credentialRef?: string | undefined;
|
|
1315
|
+
}, {
|
|
1316
|
+
env?: Record<string, string> | undefined;
|
|
1317
|
+
envVars?: string[] | undefined;
|
|
1318
|
+
bearerTokenEnvVar?: string | undefined;
|
|
1319
|
+
envHeaders?: Record<string, string> | undefined;
|
|
1320
|
+
credentialRef?: string | undefined;
|
|
663
1321
|
}>>>;
|
|
664
1322
|
/**
|
|
665
1323
|
* Skill names hidden from the LLM. Names include the full
|
|
@@ -675,6 +1333,82 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
675
1333
|
* names (no colon suffix). See scanSkills(opts.disabledPlugins).
|
|
676
1334
|
*/
|
|
677
1335
|
disabledPlugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1336
|
+
/**
|
|
1337
|
+
* Sub-agent role names (the `name` in .code-shell/agents/*.md) to
|
|
1338
|
+
* hide from the registry. A disabled role is filtered out at load
|
|
1339
|
+
* so it never appears in registry.list()/get() — the Agent tool's
|
|
1340
|
+
* agent_type list won't show it and the LLM can't pick it. Mirrors
|
|
1341
|
+
* disabledSkills / disabledPlugins.
|
|
1342
|
+
*/
|
|
1343
|
+
disabledAgents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1344
|
+
/**
|
|
1345
|
+
* Project-scoped tri-state capability overlay. Only meaningful in
|
|
1346
|
+
* ${cwd}/.code-shell/settings.json; layered over the global baseline at
|
|
1347
|
+
* capability-assembly time. Optional — absence === everything inherits.
|
|
1348
|
+
*/
|
|
1349
|
+
capabilityOverrides: z.ZodOptional<z.ZodObject<{
|
|
1350
|
+
skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1351
|
+
plugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1352
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1353
|
+
mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1354
|
+
builtin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1355
|
+
/**
|
|
1356
|
+
* Per-hook overlay for PLUGIN-provided hooks, keyed by
|
|
1357
|
+
* `pluginHookKey()` (`<plugin>:<RawEvent>:<command>`). Finer-grained
|
|
1358
|
+
* than `plugins` (which kills a whole plugin): "off" suppresses one
|
|
1359
|
+
* hook for this project only. Only "off" is meaningful today — plugin
|
|
1360
|
+
* hooks have no global disable list to force back "on" from.
|
|
1361
|
+
*/
|
|
1362
|
+
pluginHooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
1363
|
+
}, "strip", z.ZodTypeAny, {
|
|
1364
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1365
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1366
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1367
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1368
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1369
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1370
|
+
}, {
|
|
1371
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1372
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1373
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1374
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1375
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1376
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
1377
|
+
}>>;
|
|
1378
|
+
/**
|
|
1379
|
+
* Feature flags overlay: a map of flag name → boolean that overrides the
|
|
1380
|
+
* compiled-in defaults (see settings/feature-flags.ts FEATURE_FLAGS).
|
|
1381
|
+
* Project settings override user settings via the normal merge, so a flag
|
|
1382
|
+
* can be flipped per-workspace. Unknown flag names are tolerated (kept as
|
|
1383
|
+
* data) for forward-compat; consumers only read known flags via
|
|
1384
|
+
* isFeatureEnabled(). Passthrough record — values coerced to boolean.
|
|
1385
|
+
*/
|
|
1386
|
+
featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
1387
|
+
/**
|
|
1388
|
+
* Cross-session memory knobs. Optional — absence keeps the built-in
|
|
1389
|
+
* defaults (see services/extract-memories.ts). `maxCount` caps memories
|
|
1390
|
+
* accepted per extraction pass; `maxAge`/`extractionModel` are reserved
|
|
1391
|
+
* for the consolidation/extraction pipeline.
|
|
1392
|
+
*/
|
|
1393
|
+
memories: z.ZodOptional<z.ZodObject<{
|
|
1394
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
1395
|
+
maxAge: z.ZodOptional<z.ZodNumber>;
|
|
1396
|
+
extractionModel: z.ZodOptional<z.ZodString>;
|
|
1397
|
+
/** Master switch for end-of-session automatic memory extraction.
|
|
1398
|
+
* Absent/true = extract (current behavior); false = skip extraction
|
|
1399
|
+
* while keeping session summaries and Dream untouched. */
|
|
1400
|
+
autoExtract: z.ZodOptional<z.ZodBoolean>;
|
|
1401
|
+
}, "strip", z.ZodTypeAny, {
|
|
1402
|
+
maxCount?: number | undefined;
|
|
1403
|
+
maxAge?: number | undefined;
|
|
1404
|
+
extractionModel?: string | undefined;
|
|
1405
|
+
autoExtract?: boolean | undefined;
|
|
1406
|
+
}, {
|
|
1407
|
+
maxCount?: number | undefined;
|
|
1408
|
+
maxAge?: number | undefined;
|
|
1409
|
+
extractionModel?: string | undefined;
|
|
1410
|
+
autoExtract?: boolean | undefined;
|
|
1411
|
+
}>>;
|
|
678
1412
|
instructions: z.ZodDefault<z.ZodObject<{
|
|
679
1413
|
fileName: z.ZodDefault<z.ZodString>;
|
|
680
1414
|
scanDirs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -699,30 +1433,30 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
699
1433
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
700
1434
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
701
1435
|
}, "strip", z.ZodTypeAny, {
|
|
702
|
-
model: string;
|
|
703
1436
|
name: string;
|
|
1437
|
+
model: string;
|
|
704
1438
|
provider?: string | undefined;
|
|
705
1439
|
baseUrl?: string | undefined;
|
|
706
1440
|
apiKey?: string | undefined;
|
|
707
1441
|
}, {
|
|
708
|
-
model: string;
|
|
709
1442
|
name: string;
|
|
1443
|
+
model: string;
|
|
710
1444
|
provider?: string | undefined;
|
|
711
1445
|
baseUrl?: string | undefined;
|
|
712
1446
|
apiKey?: string | undefined;
|
|
713
1447
|
}>]>, "many">>;
|
|
714
1448
|
}, "strip", z.ZodTypeAny, {
|
|
715
1449
|
participants: (string | {
|
|
716
|
-
model: string;
|
|
717
1450
|
name: string;
|
|
1451
|
+
model: string;
|
|
718
1452
|
provider?: string | undefined;
|
|
719
1453
|
baseUrl?: string | undefined;
|
|
720
1454
|
apiKey?: string | undefined;
|
|
721
1455
|
})[];
|
|
722
1456
|
}, {
|
|
723
1457
|
participants?: (string | {
|
|
724
|
-
model: string;
|
|
725
1458
|
name: string;
|
|
1459
|
+
model: string;
|
|
726
1460
|
provider?: string | undefined;
|
|
727
1461
|
baseUrl?: string | undefined;
|
|
728
1462
|
apiKey?: string | undefined;
|
|
@@ -742,12 +1476,45 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
742
1476
|
providers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["serper", "tavily", "searxng"]>, z.ZodObject<{
|
|
743
1477
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
744
1478
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1479
|
+
lastProbe: z.ZodOptional<z.ZodObject<{
|
|
1480
|
+
status: z.ZodEnum<["ok", "error", "unconfigured"]>;
|
|
1481
|
+
sampleTitles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1482
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
1483
|
+
errorDetail: z.ZodOptional<z.ZodString>;
|
|
1484
|
+
lastProbedAt: z.ZodString;
|
|
1485
|
+
}, "strip", z.ZodTypeAny, {
|
|
1486
|
+
status: "error" | "ok" | "unconfigured";
|
|
1487
|
+
lastProbedAt: string;
|
|
1488
|
+
sampleTitles?: string[] | undefined;
|
|
1489
|
+
errorMessage?: string | undefined;
|
|
1490
|
+
errorDetail?: string | undefined;
|
|
1491
|
+
}, {
|
|
1492
|
+
status: "error" | "ok" | "unconfigured";
|
|
1493
|
+
lastProbedAt: string;
|
|
1494
|
+
sampleTitles?: string[] | undefined;
|
|
1495
|
+
errorMessage?: string | undefined;
|
|
1496
|
+
errorDetail?: string | undefined;
|
|
1497
|
+
}>>;
|
|
745
1498
|
}, "strip", z.ZodTypeAny, {
|
|
746
1499
|
baseUrl?: string | undefined;
|
|
747
1500
|
apiKey?: string | undefined;
|
|
1501
|
+
lastProbe?: {
|
|
1502
|
+
status: "error" | "ok" | "unconfigured";
|
|
1503
|
+
lastProbedAt: string;
|
|
1504
|
+
sampleTitles?: string[] | undefined;
|
|
1505
|
+
errorMessage?: string | undefined;
|
|
1506
|
+
errorDetail?: string | undefined;
|
|
1507
|
+
} | undefined;
|
|
748
1508
|
}, {
|
|
749
1509
|
baseUrl?: string | undefined;
|
|
750
1510
|
apiKey?: string | undefined;
|
|
1511
|
+
lastProbe?: {
|
|
1512
|
+
status: "error" | "ok" | "unconfigured";
|
|
1513
|
+
lastProbedAt: string;
|
|
1514
|
+
sampleTitles?: string[] | undefined;
|
|
1515
|
+
errorMessage?: string | undefined;
|
|
1516
|
+
errorDetail?: string | undefined;
|
|
1517
|
+
} | undefined;
|
|
751
1518
|
}>>>;
|
|
752
1519
|
}, "strip", z.ZodTypeAny, {
|
|
753
1520
|
provider: "serper" | "tavily" | "searxng";
|
|
@@ -756,6 +1523,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
756
1523
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
757
1524
|
baseUrl?: string | undefined;
|
|
758
1525
|
apiKey?: string | undefined;
|
|
1526
|
+
lastProbe?: {
|
|
1527
|
+
status: "error" | "ok" | "unconfigured";
|
|
1528
|
+
lastProbedAt: string;
|
|
1529
|
+
sampleTitles?: string[] | undefined;
|
|
1530
|
+
errorMessage?: string | undefined;
|
|
1531
|
+
errorDetail?: string | undefined;
|
|
1532
|
+
} | undefined;
|
|
759
1533
|
}>> | undefined;
|
|
760
1534
|
}, {
|
|
761
1535
|
provider?: "serper" | "tavily" | "searxng" | undefined;
|
|
@@ -764,6 +1538,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
764
1538
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
765
1539
|
baseUrl?: string | undefined;
|
|
766
1540
|
apiKey?: string | undefined;
|
|
1541
|
+
lastProbe?: {
|
|
1542
|
+
status: "error" | "ok" | "unconfigured";
|
|
1543
|
+
lastProbedAt: string;
|
|
1544
|
+
sampleTitles?: string[] | undefined;
|
|
1545
|
+
errorMessage?: string | undefined;
|
|
1546
|
+
errorDetail?: string | undefined;
|
|
1547
|
+
} | undefined;
|
|
767
1548
|
}>> | undefined;
|
|
768
1549
|
}>>;
|
|
769
1550
|
output: z.ZodDefault<z.ZodObject<{
|
|
@@ -773,6 +1554,26 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
773
1554
|
}, {
|
|
774
1555
|
format?: "text" | "json" | "jsonl" | "stream-json" | undefined;
|
|
775
1556
|
}>>;
|
|
1557
|
+
/**
|
|
1558
|
+
* Image attachment handling. Sub-fields:
|
|
1559
|
+
* - detail: provider-agnostic image clarity. Drives the
|
|
1560
|
+
* renderer-side downscale (low→~1024 / standard→~1568 /
|
|
1561
|
+
* high→~2576 px long edge) so BOTH providers save tokens
|
|
1562
|
+
* before send. Legacy "original" is migrated to "high".
|
|
1563
|
+
* - mcpImageTokenBudget: per-turn cap on token cost of images
|
|
1564
|
+
* returned by MCP tools. Codex doesn't enforce this; CC uses
|
|
1565
|
+
* 25 000. Set to 0 to disable.
|
|
1566
|
+
*/
|
|
1567
|
+
images: z.ZodOptional<z.ZodObject<{
|
|
1568
|
+
detail: z.ZodOptional<z.ZodEffects<z.ZodEnum<["low", "standard", "high"]>, "low" | "high" | "standard", unknown>>;
|
|
1569
|
+
mcpImageTokenBudget: z.ZodOptional<z.ZodNumber>;
|
|
1570
|
+
}, "strip", z.ZodTypeAny, {
|
|
1571
|
+
detail?: "low" | "high" | "standard" | undefined;
|
|
1572
|
+
mcpImageTokenBudget?: number | undefined;
|
|
1573
|
+
}, {
|
|
1574
|
+
detail?: unknown;
|
|
1575
|
+
mcpImageTokenBudget?: number | undefined;
|
|
1576
|
+
}>>;
|
|
776
1577
|
/**
|
|
777
1578
|
* OS-level sandbox for shell-tool execution. "auto" picks per platform:
|
|
778
1579
|
* Seatbelt on macOS, bubblewrap on Linux when installed, otherwise off.
|
|
@@ -785,16 +1586,103 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
785
1586
|
deniedReads: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
786
1587
|
network: z.ZodOptional<z.ZodEnum<["allow", "deny"]>>;
|
|
787
1588
|
}, "strip", z.ZodTypeAny, {
|
|
788
|
-
mode?: "auto" | "
|
|
1589
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
789
1590
|
writableRoots?: string[] | undefined;
|
|
790
1591
|
deniedReads?: string[] | undefined;
|
|
791
1592
|
network?: "allow" | "deny" | undefined;
|
|
792
1593
|
}, {
|
|
793
|
-
mode?: "auto" | "
|
|
1594
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
794
1595
|
writableRoots?: string[] | undefined;
|
|
795
1596
|
deniedReads?: string[] | undefined;
|
|
796
1597
|
network?: "allow" | "deny" | undefined;
|
|
797
1598
|
}>>;
|
|
1599
|
+
/**
|
|
1600
|
+
* Top-level environment variables injected into tool subprocesses (the
|
|
1601
|
+
* Bash tool, background shells). Mirrors Claude Code's `env` field: a
|
|
1602
|
+
* KEY=VALUE map that can be set globally (~/.code-shell/settings.json) and
|
|
1603
|
+
* overridden per-project (.code-shell/settings.json). The canonical home
|
|
1604
|
+
* for API keys (e.g. OPENAI_API_KEY) that a skill's script reads — configure
|
|
1605
|
+
* once globally and every project's skills can use it.
|
|
1606
|
+
*
|
|
1607
|
+
* Precedence when merged into the spawn env (lowest → highest):
|
|
1608
|
+
* project localEnvironment.env → global env → project env
|
|
1609
|
+
* None of these is filtered through the deny regex (see mergeShellEnv):
|
|
1610
|
+
* they are values the user typed deliberately, a different trust class from
|
|
1611
|
+
* the host process.env passthrough the deny machinery guards against.
|
|
1612
|
+
*/
|
|
1613
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1614
|
+
/**
|
|
1615
|
+
* Project-local environment profile. Mirrors Codex's local-environment
|
|
1616
|
+
* shape at the settings layer: setup/cleanup scripts can be customized per
|
|
1617
|
+
* platform, and env values are stored as KEY=VALUE pairs. Runtime wiring is
|
|
1618
|
+
* intentionally separate from the MCP server env model above.
|
|
1619
|
+
*/
|
|
1620
|
+
localEnvironment: z.ZodOptional<z.ZodObject<{
|
|
1621
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1622
|
+
setupScripts: z.ZodOptional<z.ZodObject<{
|
|
1623
|
+
default: z.ZodOptional<z.ZodString>;
|
|
1624
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
1625
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
1626
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
1627
|
+
}, "strip", z.ZodTypeAny, {
|
|
1628
|
+
default?: string | undefined;
|
|
1629
|
+
linux?: string | undefined;
|
|
1630
|
+
macos?: string | undefined;
|
|
1631
|
+
windows?: string | undefined;
|
|
1632
|
+
}, {
|
|
1633
|
+
default?: string | undefined;
|
|
1634
|
+
linux?: string | undefined;
|
|
1635
|
+
macos?: string | undefined;
|
|
1636
|
+
windows?: string | undefined;
|
|
1637
|
+
}>>;
|
|
1638
|
+
cleanupScripts: z.ZodOptional<z.ZodObject<{
|
|
1639
|
+
default: z.ZodOptional<z.ZodString>;
|
|
1640
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
1641
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
1642
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
1643
|
+
}, "strip", z.ZodTypeAny, {
|
|
1644
|
+
default?: string | undefined;
|
|
1645
|
+
linux?: string | undefined;
|
|
1646
|
+
macos?: string | undefined;
|
|
1647
|
+
windows?: string | undefined;
|
|
1648
|
+
}, {
|
|
1649
|
+
default?: string | undefined;
|
|
1650
|
+
linux?: string | undefined;
|
|
1651
|
+
macos?: string | undefined;
|
|
1652
|
+
windows?: string | undefined;
|
|
1653
|
+
}>>;
|
|
1654
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1655
|
+
}, "strip", z.ZodTypeAny, {
|
|
1656
|
+
name?: string | undefined;
|
|
1657
|
+
env?: Record<string, string> | undefined;
|
|
1658
|
+
setupScripts?: {
|
|
1659
|
+
default?: string | undefined;
|
|
1660
|
+
linux?: string | undefined;
|
|
1661
|
+
macos?: string | undefined;
|
|
1662
|
+
windows?: string | undefined;
|
|
1663
|
+
} | undefined;
|
|
1664
|
+
cleanupScripts?: {
|
|
1665
|
+
default?: string | undefined;
|
|
1666
|
+
linux?: string | undefined;
|
|
1667
|
+
macos?: string | undefined;
|
|
1668
|
+
windows?: string | undefined;
|
|
1669
|
+
} | undefined;
|
|
1670
|
+
}, {
|
|
1671
|
+
name?: string | undefined;
|
|
1672
|
+
env?: Record<string, string> | undefined;
|
|
1673
|
+
setupScripts?: {
|
|
1674
|
+
default?: string | undefined;
|
|
1675
|
+
linux?: string | undefined;
|
|
1676
|
+
macos?: string | undefined;
|
|
1677
|
+
windows?: string | undefined;
|
|
1678
|
+
} | undefined;
|
|
1679
|
+
cleanupScripts?: {
|
|
1680
|
+
default?: string | undefined;
|
|
1681
|
+
linux?: string | undefined;
|
|
1682
|
+
macos?: string | undefined;
|
|
1683
|
+
windows?: string | undefined;
|
|
1684
|
+
} | undefined;
|
|
1685
|
+
}>>;
|
|
798
1686
|
/**
|
|
799
1687
|
* Shell-hook configuration. Each entry binds a HookEventName to a
|
|
800
1688
|
* shell command; the command receives ctx JSON on stdin and returns
|
|
@@ -811,19 +1699,99 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
811
1699
|
matcher: z.ZodOptional<z.ZodString>;
|
|
812
1700
|
timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
813
1701
|
cwd: z.ZodOptional<z.ZodString>;
|
|
1702
|
+
/** Soft off-switch: the entry stays in the file (and the UI) but
|
|
1703
|
+
* registerSettingsHooks skips it. Absent = enabled. */
|
|
1704
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
814
1705
|
}, "strip", z.ZodTypeAny, {
|
|
815
1706
|
command: string;
|
|
816
1707
|
event: string;
|
|
817
|
-
|
|
1708
|
+
disabled?: boolean | undefined;
|
|
818
1709
|
matcher?: string | undefined;
|
|
819
1710
|
timeout_ms?: number | undefined;
|
|
1711
|
+
cwd?: string | undefined;
|
|
820
1712
|
}, {
|
|
821
1713
|
command: string;
|
|
822
1714
|
event: string;
|
|
823
|
-
|
|
1715
|
+
disabled?: boolean | undefined;
|
|
824
1716
|
matcher?: string | undefined;
|
|
825
1717
|
timeout_ms?: number | undefined;
|
|
1718
|
+
cwd?: string | undefined;
|
|
826
1719
|
}>, "many">>;
|
|
1720
|
+
/**
|
|
1721
|
+
* External coding-agent orchestration (Claude Code / Codex CLI).
|
|
1722
|
+
* Used by the Mobile Web Remote to launch managed jobs. dangerousArgs
|
|
1723
|
+
* is config-provided (not hardcoded) so it tracks CLI flag changes;
|
|
1724
|
+
* project-default dangerous mode only applies inside trustedWorkspaces.
|
|
1725
|
+
*/
|
|
1726
|
+
externalAgents: z.ZodOptional<z.ZodObject<{
|
|
1727
|
+
claudeCode: z.ZodOptional<z.ZodObject<{
|
|
1728
|
+
command: z.ZodOptional<z.ZodString>;
|
|
1729
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["safe", "dangerous"]>>;
|
|
1730
|
+
dangerousArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1731
|
+
trustedWorkspaces: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1732
|
+
autoStartInTrustedWorkspaces: z.ZodOptional<z.ZodBoolean>;
|
|
1733
|
+
}, "strip", z.ZodTypeAny, {
|
|
1734
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
1735
|
+
command?: string | undefined;
|
|
1736
|
+
dangerousArgs?: string[] | undefined;
|
|
1737
|
+
trustedWorkspaces?: string[] | undefined;
|
|
1738
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
1739
|
+
}, {
|
|
1740
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
1741
|
+
command?: string | undefined;
|
|
1742
|
+
dangerousArgs?: string[] | undefined;
|
|
1743
|
+
trustedWorkspaces?: string[] | undefined;
|
|
1744
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
1745
|
+
}>>;
|
|
1746
|
+
codex: z.ZodOptional<z.ZodObject<{
|
|
1747
|
+
command: z.ZodOptional<z.ZodString>;
|
|
1748
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1749
|
+
}, "strip", z.ZodTypeAny, {
|
|
1750
|
+
args?: string[] | undefined;
|
|
1751
|
+
command?: string | undefined;
|
|
1752
|
+
}, {
|
|
1753
|
+
args?: string[] | undefined;
|
|
1754
|
+
command?: string | undefined;
|
|
1755
|
+
}>>;
|
|
1756
|
+
}, "strip", z.ZodTypeAny, {
|
|
1757
|
+
claudeCode?: {
|
|
1758
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
1759
|
+
command?: string | undefined;
|
|
1760
|
+
dangerousArgs?: string[] | undefined;
|
|
1761
|
+
trustedWorkspaces?: string[] | undefined;
|
|
1762
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
1763
|
+
} | undefined;
|
|
1764
|
+
codex?: {
|
|
1765
|
+
args?: string[] | undefined;
|
|
1766
|
+
command?: string | undefined;
|
|
1767
|
+
} | undefined;
|
|
1768
|
+
}, {
|
|
1769
|
+
claudeCode?: {
|
|
1770
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
1771
|
+
command?: string | undefined;
|
|
1772
|
+
dangerousArgs?: string[] | undefined;
|
|
1773
|
+
trustedWorkspaces?: string[] | undefined;
|
|
1774
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
1775
|
+
} | undefined;
|
|
1776
|
+
codex?: {
|
|
1777
|
+
args?: string[] | undefined;
|
|
1778
|
+
command?: string | undefined;
|
|
1779
|
+
} | undefined;
|
|
1780
|
+
}>>;
|
|
1781
|
+
/**
|
|
1782
|
+
* Credential-use gate (凭证模块第二期). Controls whether the AI's
|
|
1783
|
+
* `UseCredential` tool prompts before handing a stored credential to a
|
|
1784
|
+
* command. `autoApprove: true` skips the prompt entirely (默认关 — every
|
|
1785
|
+
* use asks, or is remembered for the session). See
|
|
1786
|
+
* docs/superpowers/specs/2026-06-16-credential-use-gate-design.md §5.
|
|
1787
|
+
*/
|
|
1788
|
+
credentialUse: z.ZodOptional<z.ZodObject<{
|
|
1789
|
+
autoApprove: z.ZodOptional<z.ZodBoolean>;
|
|
1790
|
+
}, "strip", z.ZodTypeAny, {
|
|
1791
|
+
autoApprove?: boolean | undefined;
|
|
1792
|
+
}, {
|
|
1793
|
+
autoApprove?: boolean | undefined;
|
|
1794
|
+
}>>;
|
|
827
1795
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
828
1796
|
agent: z.ZodDefault<z.ZodObject<{
|
|
829
1797
|
preset: z.ZodDefault<z.ZodString>;
|
|
@@ -831,27 +1799,43 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
831
1799
|
disabledBuiltinTools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
832
1800
|
customSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
833
1801
|
appendSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
1802
|
+
responseLanguage: z.ZodOptional<z.ZodString>;
|
|
1803
|
+
userProfile: z.ZodOptional<z.ZodString>;
|
|
1804
|
+
instructions: z.ZodOptional<z.ZodObject<{
|
|
1805
|
+
compatClaude: z.ZodDefault<z.ZodBoolean>;
|
|
1806
|
+
compatCodex: z.ZodDefault<z.ZodBoolean>;
|
|
1807
|
+
}, "strip", z.ZodTypeAny, {
|
|
1808
|
+
compatClaude: boolean;
|
|
1809
|
+
compatCodex: boolean;
|
|
1810
|
+
}, {
|
|
1811
|
+
compatClaude?: boolean | undefined;
|
|
1812
|
+
compatCodex?: boolean | undefined;
|
|
1813
|
+
}>>;
|
|
834
1814
|
}, "strip", z.ZodTypeAny, {
|
|
835
1815
|
preset: string;
|
|
836
1816
|
enabledBuiltinTools: string[];
|
|
837
1817
|
disabledBuiltinTools: string[];
|
|
838
1818
|
customSystemPrompt?: string | undefined;
|
|
839
1819
|
appendSystemPrompt?: string | undefined;
|
|
1820
|
+
responseLanguage?: string | undefined;
|
|
1821
|
+
userProfile?: string | undefined;
|
|
1822
|
+
instructions?: {
|
|
1823
|
+
compatClaude: boolean;
|
|
1824
|
+
compatCodex: boolean;
|
|
1825
|
+
} | undefined;
|
|
840
1826
|
}, {
|
|
841
1827
|
preset?: string | undefined;
|
|
842
1828
|
enabledBuiltinTools?: string[] | undefined;
|
|
843
1829
|
disabledBuiltinTools?: string[] | undefined;
|
|
844
1830
|
customSystemPrompt?: string | undefined;
|
|
845
1831
|
appendSystemPrompt?: string | undefined;
|
|
1832
|
+
responseLanguage?: string | undefined;
|
|
1833
|
+
userProfile?: string | undefined;
|
|
1834
|
+
instructions?: {
|
|
1835
|
+
compatClaude?: boolean | undefined;
|
|
1836
|
+
compatCodex?: boolean | undefined;
|
|
1837
|
+
} | undefined;
|
|
846
1838
|
}>>;
|
|
847
|
-
/**
|
|
848
|
-
* Primary source of truth for the active model is settings.activeKey
|
|
849
|
-
* (points at models[].key). settings.model is a derived mirror of that
|
|
850
|
-
* entry kept in sync for legacy boot paths (cli/main.ts, repl.ts, etc.)
|
|
851
|
-
* which read provider/name/apiKey/baseUrl directly. Writers must update
|
|
852
|
-
* both — appendOnboardingResult does this in one shot.
|
|
853
|
-
*/
|
|
854
|
-
activeKey: z.ZodOptional<z.ZodString>;
|
|
855
1839
|
/**
|
|
856
1840
|
* Toggle background auto-update. When true (default), code-shell checks
|
|
857
1841
|
* npm for newer versions and — if the npm global prefix is writable —
|
|
@@ -860,135 +1844,215 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
860
1844
|
* Can also be disabled via env var `DISABLE_AUTOUPDATER=1`.
|
|
861
1845
|
*/
|
|
862
1846
|
autoUpdates: z.ZodDefault<z.ZodBoolean>;
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1847
|
+
/**
|
|
1848
|
+
* Image generation is a general capability, decoupled from LLM providers
|
|
1849
|
+
* (TODO 7.1): a vendor may use different keys/endpoints/models for chat vs
|
|
1850
|
+
* image, and image vendors (Gemini, and later 国内 模型) don't fit the LLM
|
|
1851
|
+
* `providers[].kind` enum. `imageGen.providers[]` is the canonical config;
|
|
1852
|
+
* each entry has a user-chosen `id` (selected via GenerateImage's
|
|
1853
|
+
* `provider` arg) and a `kind` that picks the adapter. When `imageGen` is
|
|
1854
|
+
* absent, resolution falls back to scanning LLM `providers[]` for an
|
|
1855
|
+
* image-capable kind — so existing configs keep working with no migration.
|
|
1856
|
+
*/
|
|
1857
|
+
imageGen: z.ZodOptional<z.ZodObject<{
|
|
1858
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
1859
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1860
|
+
/** User-chosen instance name; GenerateImage(provider) selects by this. */
|
|
1861
|
+
id: z.ZodString;
|
|
1862
|
+
/** Adapter selector — e.g. "openai", "google". */
|
|
1863
|
+
kind: z.ZodString;
|
|
1864
|
+
baseUrl: z.ZodString;
|
|
1865
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
1866
|
+
/** Default model for this instance when the call omits `model`. */
|
|
1867
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
1868
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
1869
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
1870
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
1871
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
1872
|
+
}, "strip", z.ZodTypeAny, {
|
|
1873
|
+
id: string;
|
|
1874
|
+
kind: string;
|
|
1875
|
+
baseUrl: string;
|
|
1876
|
+
apiKey?: string | undefined;
|
|
1877
|
+
defaultModel?: string | undefined;
|
|
1878
|
+
catalogId?: string | undefined;
|
|
1879
|
+
apiKeyRef?: string | undefined;
|
|
1880
|
+
}, {
|
|
1881
|
+
id: string;
|
|
1882
|
+
kind: string;
|
|
1883
|
+
baseUrl: string;
|
|
1884
|
+
apiKey?: string | undefined;
|
|
1885
|
+
defaultModel?: string | undefined;
|
|
1886
|
+
catalogId?: string | undefined;
|
|
1887
|
+
apiKeyRef?: string | undefined;
|
|
1888
|
+
}>, "many">>;
|
|
870
1889
|
}, "strip", z.ZodTypeAny, {
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
1890
|
+
providers: {
|
|
1891
|
+
id: string;
|
|
1892
|
+
kind: string;
|
|
1893
|
+
baseUrl: string;
|
|
1894
|
+
apiKey?: string | undefined;
|
|
1895
|
+
defaultModel?: string | undefined;
|
|
1896
|
+
catalogId?: string | undefined;
|
|
1897
|
+
apiKeyRef?: string | undefined;
|
|
1898
|
+
}[];
|
|
1899
|
+
defaultProvider?: string | undefined;
|
|
877
1900
|
}, {
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1901
|
+
defaultProvider?: string | undefined;
|
|
1902
|
+
providers?: {
|
|
1903
|
+
id: string;
|
|
1904
|
+
kind: string;
|
|
1905
|
+
baseUrl: string;
|
|
1906
|
+
apiKey?: string | undefined;
|
|
1907
|
+
defaultModel?: string | undefined;
|
|
1908
|
+
catalogId?: string | undefined;
|
|
1909
|
+
apiKeyRef?: string | undefined;
|
|
1910
|
+
}[] | undefined;
|
|
884
1911
|
}>>;
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
1912
|
+
/**
|
|
1913
|
+
* Video generation config (TODO 7.1) — same shape as imageGen, decoupled
|
|
1914
|
+
* from LLM providers. `videoGen.providers[]` each carry an `id` (selected
|
|
1915
|
+
* via GenerateVideo's `provider` arg) + a `kind` picking the adapter. With
|
|
1916
|
+
* no real adapters wired yet, this is config-ready: a future getVideoProvider
|
|
1917
|
+
* case lights it up. Falls back to scanning LLM providers[] when absent.
|
|
1918
|
+
*/
|
|
1919
|
+
videoGen: z.ZodOptional<z.ZodObject<{
|
|
1920
|
+
defaultProvider: z.ZodOptional<z.ZodString>;
|
|
1921
|
+
providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1922
|
+
id: z.ZodString;
|
|
1923
|
+
kind: z.ZodString;
|
|
1924
|
+
baseUrl: z.ZodString;
|
|
1925
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
1926
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
1927
|
+
/** Catalog template this instance was created from (for paramsDoc / displayName回显). */
|
|
1928
|
+
catalogId: z.ZodOptional<z.ZodString>;
|
|
1929
|
+
/** Reuse another instance's key: id of the instance whose apiKey to use (when apiKey is empty). */
|
|
1930
|
+
apiKeyRef: z.ZodOptional<z.ZodString>;
|
|
1931
|
+
}, "strip", z.ZodTypeAny, {
|
|
1932
|
+
id: string;
|
|
1933
|
+
kind: string;
|
|
1934
|
+
baseUrl: string;
|
|
1935
|
+
apiKey?: string | undefined;
|
|
1936
|
+
defaultModel?: string | undefined;
|
|
1937
|
+
catalogId?: string | undefined;
|
|
1938
|
+
apiKeyRef?: string | undefined;
|
|
1939
|
+
}, {
|
|
1940
|
+
id: string;
|
|
1941
|
+
kind: string;
|
|
1942
|
+
baseUrl: string;
|
|
1943
|
+
apiKey?: string | undefined;
|
|
1944
|
+
defaultModel?: string | undefined;
|
|
1945
|
+
catalogId?: string | undefined;
|
|
1946
|
+
apiKeyRef?: string | undefined;
|
|
1947
|
+
}>, "many">>;
|
|
900
1948
|
}, "strip", z.ZodTypeAny, {
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1949
|
+
providers: {
|
|
1950
|
+
id: string;
|
|
1951
|
+
kind: string;
|
|
1952
|
+
baseUrl: string;
|
|
1953
|
+
apiKey?: string | undefined;
|
|
1954
|
+
defaultModel?: string | undefined;
|
|
1955
|
+
catalogId?: string | undefined;
|
|
1956
|
+
apiKeyRef?: string | undefined;
|
|
1957
|
+
}[];
|
|
1958
|
+
defaultProvider?: string | undefined;
|
|
1959
|
+
}, {
|
|
1960
|
+
defaultProvider?: string | undefined;
|
|
1961
|
+
providers?: {
|
|
1962
|
+
id: string;
|
|
1963
|
+
kind: string;
|
|
1964
|
+
baseUrl: string;
|
|
1965
|
+
apiKey?: string | undefined;
|
|
1966
|
+
defaultModel?: string | undefined;
|
|
1967
|
+
catalogId?: string | undefined;
|
|
1968
|
+
apiKeyRef?: string | undefined;
|
|
1969
|
+
}[] | undefined;
|
|
1970
|
+
}>>;
|
|
1971
|
+
/**
|
|
1972
|
+
* Credentials — independent key entities (统一模型接入方案 §3.3). A key
|
|
1973
|
+
* lives here, not inlined on a connection, so deleting a connection never
|
|
1974
|
+
* loses a key and many connections share one key by referencing the same
|
|
1975
|
+
* credential id (LiteLLM credential_list model).
|
|
1976
|
+
*/
|
|
1977
|
+
credentials: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1978
|
+
/** User-chosen unique credential name. */
|
|
1979
|
+
id: z.ZodString;
|
|
1980
|
+
/** Catalog template this credential is for (a key belongs to one provider). */
|
|
1981
|
+
catalogId: z.ZodString;
|
|
935
1982
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
936
|
-
|
|
937
|
-
* Per-model thinking override. Wins over the provider-level
|
|
938
|
-
* setting (settings.providers[].thinking). Use this when
|
|
939
|
-
* different models under the same provider need different
|
|
940
|
-
* defaults — e.g. DeepSeek V4 Pro off (faster) but V4 Flash on.
|
|
941
|
-
*/
|
|
942
|
-
thinking: z.ZodOptional<z.ZodEnum<["enabled", "disabled"]>>;
|
|
1983
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
943
1984
|
}, "strip", z.ZodTypeAny, {
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
provider?: string | undefined;
|
|
947
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
948
|
-
label?: string | undefined;
|
|
1985
|
+
id: string;
|
|
1986
|
+
catalogId: string;
|
|
949
1987
|
baseUrl?: string | undefined;
|
|
950
1988
|
apiKey?: string | undefined;
|
|
951
|
-
protocol?: string | undefined;
|
|
952
|
-
providerKey?: string | undefined;
|
|
953
|
-
maxOutputTokens?: number | undefined;
|
|
954
|
-
maxContextTokens?: number | undefined;
|
|
955
1989
|
}, {
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
provider?: string | undefined;
|
|
959
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
960
|
-
label?: string | undefined;
|
|
1990
|
+
id: string;
|
|
1991
|
+
catalogId: string;
|
|
961
1992
|
baseUrl?: string | undefined;
|
|
962
1993
|
apiKey?: string | undefined;
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1994
|
+
}>, "many">>;
|
|
1995
|
+
/**
|
|
1996
|
+
* Unified instance layer (统一模型接入方案, see
|
|
1997
|
+
* docs/superpowers/specs/2026-06-15-unified-model-catalog-design.md §3.3).
|
|
1998
|
+
* One store for text/image/video connections, each pointing at a catalog
|
|
1999
|
+
* entry (catalogId), a credential (credentialId), its chosen model, and the
|
|
2000
|
+
* param values the user picked. Replaces the legacy split of
|
|
2001
|
+
* providers[]/models[]/imageGen/videoGen.
|
|
2002
|
+
*/
|
|
2003
|
+
modelConnections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
2004
|
+
/** User-chosen unique instance name. */
|
|
2005
|
+
id: z.ZodString;
|
|
2006
|
+
/** Catalog template this instance was created from. */
|
|
2007
|
+
catalogId: z.ZodString;
|
|
2008
|
+
tag: z.ZodEnum<["text", "image", "video", "audio"]>;
|
|
2009
|
+
/** Selected modelId (from the entry's modelPresets). */
|
|
2010
|
+
model: z.ZodString;
|
|
2011
|
+
/** Per-connection baseUrl override (else the credential's / catalog's). */
|
|
2012
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
2013
|
+
/** Which credential supplies this connection's key. */
|
|
2014
|
+
credentialId: z.ZodOptional<z.ZodString>;
|
|
2015
|
+
/** Values the user picked for the model's params, e.g. { reasoning: "high" }. */
|
|
2016
|
+
paramValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2017
|
+
}, "strip", z.ZodTypeAny, {
|
|
2018
|
+
id: string;
|
|
970
2019
|
model: string;
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
label?: string | undefined;
|
|
2020
|
+
catalogId: string;
|
|
2021
|
+
tag: "text" | "image" | "video" | "audio";
|
|
974
2022
|
baseUrl?: string | undefined;
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
maxOutputTokens?: number | undefined;
|
|
978
|
-
maxContextTokens?: number | undefined;
|
|
2023
|
+
credentialId?: string | undefined;
|
|
2024
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
979
2025
|
}, {
|
|
2026
|
+
id: string;
|
|
980
2027
|
model: string;
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
thinking?: "enabled" | "disabled" | undefined;
|
|
984
|
-
label?: string | undefined;
|
|
2028
|
+
catalogId: string;
|
|
2029
|
+
tag: "text" | "image" | "video" | "audio";
|
|
985
2030
|
baseUrl?: string | undefined;
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
providerKey?: string | undefined;
|
|
989
|
-
maxOutputTokens?: number | undefined;
|
|
990
|
-
maxContextTokens?: number | undefined;
|
|
2031
|
+
credentialId?: string | undefined;
|
|
2032
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
991
2033
|
}>, "many">>;
|
|
2034
|
+
/** Default instance id per tag (replaces activeKey / defaultProvider). */
|
|
2035
|
+
defaults: z.ZodDefault<z.ZodObject<{
|
|
2036
|
+
text: z.ZodOptional<z.ZodString>;
|
|
2037
|
+
image: z.ZodOptional<z.ZodString>;
|
|
2038
|
+
video: z.ZodOptional<z.ZodString>;
|
|
2039
|
+
/** Default speech-to-text (voice input) connection. */
|
|
2040
|
+
audio: z.ZodOptional<z.ZodString>;
|
|
2041
|
+
/** Background-task model (replaces auxModelKey). */
|
|
2042
|
+
auxText: z.ZodOptional<z.ZodString>;
|
|
2043
|
+
}, "strip", z.ZodTypeAny, {
|
|
2044
|
+
text?: string | undefined;
|
|
2045
|
+
image?: string | undefined;
|
|
2046
|
+
video?: string | undefined;
|
|
2047
|
+
audio?: string | undefined;
|
|
2048
|
+
auxText?: string | undefined;
|
|
2049
|
+
}, {
|
|
2050
|
+
text?: string | undefined;
|
|
2051
|
+
image?: string | undefined;
|
|
2052
|
+
video?: string | undefined;
|
|
2053
|
+
audio?: string | undefined;
|
|
2054
|
+
auxText?: string | undefined;
|
|
2055
|
+
}>>;
|
|
992
2056
|
permissions: z.ZodDefault<z.ZodObject<{
|
|
993
2057
|
defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
|
|
994
2058
|
rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1008,7 +2072,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1008
2072
|
argsPattern?: Record<string, string> | undefined;
|
|
1009
2073
|
}>, "many">>;
|
|
1010
2074
|
}, "strip", z.ZodTypeAny, {
|
|
1011
|
-
defaultMode: "
|
|
2075
|
+
defaultMode: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan";
|
|
1012
2076
|
rules: {
|
|
1013
2077
|
tool: string;
|
|
1014
2078
|
decision: "allow" | "deny" | "ask";
|
|
@@ -1016,7 +2080,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1016
2080
|
argsPattern?: Record<string, string> | undefined;
|
|
1017
2081
|
}[];
|
|
1018
2082
|
}, {
|
|
1019
|
-
defaultMode?: "
|
|
2083
|
+
defaultMode?: "auto" | "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "plan" | undefined;
|
|
1020
2084
|
rules?: {
|
|
1021
2085
|
tool: string;
|
|
1022
2086
|
decision: "allow" | "deny" | "ask";
|
|
@@ -1028,14 +2092,17 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1028
2092
|
maxTokens: z.ZodDefault<z.ZodNumber>;
|
|
1029
2093
|
compactAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
1030
2094
|
summarizeAtRatio: z.ZodDefault<z.ZodNumber>;
|
|
2095
|
+
microcompactFloorRatio: z.ZodDefault<z.ZodNumber>;
|
|
1031
2096
|
}, "strip", z.ZodTypeAny, {
|
|
1032
2097
|
maxTokens: number;
|
|
1033
2098
|
compactAtRatio: number;
|
|
1034
2099
|
summarizeAtRatio: number;
|
|
2100
|
+
microcompactFloorRatio: number;
|
|
1035
2101
|
}, {
|
|
1036
2102
|
maxTokens?: number | undefined;
|
|
1037
2103
|
compactAtRatio?: number | undefined;
|
|
1038
2104
|
summarizeAtRatio?: number | undefined;
|
|
2105
|
+
microcompactFloorRatio?: number | undefined;
|
|
1039
2106
|
}>>;
|
|
1040
2107
|
session: z.ZodDefault<z.ZodObject<{
|
|
1041
2108
|
storageDir: z.ZodOptional<z.ZodString>;
|
|
@@ -1047,7 +2114,7 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1047
2114
|
storageDir?: string | undefined;
|
|
1048
2115
|
maxHistory?: number | undefined;
|
|
1049
2116
|
}>>;
|
|
1050
|
-
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2117
|
+
mcpServers: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1051
2118
|
name: z.ZodString;
|
|
1052
2119
|
command: z.ZodOptional<z.ZodString>;
|
|
1053
2120
|
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -1055,22 +2122,76 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1055
2122
|
url: z.ZodOptional<z.ZodString>;
|
|
1056
2123
|
transport: z.ZodOptional<z.ZodEnum<["stdio", "sse", "streamable-http", "inprocess"]>>;
|
|
1057
2124
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2125
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2126
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
2127
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2128
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
2129
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1058
2130
|
}, "strip", z.ZodTypeAny, {
|
|
1059
2131
|
name: string;
|
|
2132
|
+
enabled?: boolean | undefined;
|
|
1060
2133
|
url?: string | undefined;
|
|
1061
2134
|
args?: string[] | undefined;
|
|
1062
|
-
env?: Record<string, string> | undefined;
|
|
1063
2135
|
command?: string | undefined;
|
|
2136
|
+
env?: Record<string, string> | undefined;
|
|
1064
2137
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
1065
2138
|
headers?: Record<string, string> | undefined;
|
|
2139
|
+
envVars?: string[] | undefined;
|
|
2140
|
+
bearerTokenEnvVar?: string | undefined;
|
|
2141
|
+
envHeaders?: Record<string, string> | undefined;
|
|
2142
|
+
credentialRef?: string | undefined;
|
|
1066
2143
|
}, {
|
|
1067
2144
|
name: string;
|
|
2145
|
+
enabled?: boolean | undefined;
|
|
1068
2146
|
url?: string | undefined;
|
|
1069
2147
|
args?: string[] | undefined;
|
|
2148
|
+
command?: string | undefined;
|
|
1070
2149
|
env?: Record<string, string> | undefined;
|
|
2150
|
+
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
2151
|
+
headers?: Record<string, string> | undefined;
|
|
2152
|
+
envVars?: string[] | undefined;
|
|
2153
|
+
bearerTokenEnvVar?: string | undefined;
|
|
2154
|
+
envHeaders?: Record<string, string> | undefined;
|
|
2155
|
+
credentialRef?: string | undefined;
|
|
2156
|
+
}>>, Record<string, {
|
|
2157
|
+
name: string;
|
|
2158
|
+
enabled?: boolean | undefined;
|
|
2159
|
+
url?: string | undefined;
|
|
2160
|
+
args?: string[] | undefined;
|
|
1071
2161
|
command?: string | undefined;
|
|
2162
|
+
env?: Record<string, string> | undefined;
|
|
1072
2163
|
transport?: "stdio" | "sse" | "streamable-http" | "inprocess" | undefined;
|
|
1073
2164
|
headers?: Record<string, string> | undefined;
|
|
2165
|
+
envVars?: string[] | undefined;
|
|
2166
|
+
bearerTokenEnvVar?: string | undefined;
|
|
2167
|
+
envHeaders?: Record<string, string> | undefined;
|
|
2168
|
+
credentialRef?: string | undefined;
|
|
2169
|
+
}>, unknown>>;
|
|
2170
|
+
/**
|
|
2171
|
+
* User supplements for PLUGIN-provided MCP servers, keyed by the server's
|
|
2172
|
+
* `<plugin>:<server>` name. Layered onto the plugin config at merge time
|
|
2173
|
+
* (mergePluginMcpServers). Only env/credential fields are accepted —
|
|
2174
|
+
* command/args/url/transport are intentionally absent and `.strict()`
|
|
2175
|
+
* rejects them, so a plugin update is never shadowed by a stale copy.
|
|
2176
|
+
*/
|
|
2177
|
+
mcpServerOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2178
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2179
|
+
envVars: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2180
|
+
credentialRef: z.ZodOptional<z.ZodString>;
|
|
2181
|
+
bearerTokenEnvVar: z.ZodOptional<z.ZodString>;
|
|
2182
|
+
envHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2183
|
+
}, "strict", z.ZodTypeAny, {
|
|
2184
|
+
env?: Record<string, string> | undefined;
|
|
2185
|
+
envVars?: string[] | undefined;
|
|
2186
|
+
bearerTokenEnvVar?: string | undefined;
|
|
2187
|
+
envHeaders?: Record<string, string> | undefined;
|
|
2188
|
+
credentialRef?: string | undefined;
|
|
2189
|
+
}, {
|
|
2190
|
+
env?: Record<string, string> | undefined;
|
|
2191
|
+
envVars?: string[] | undefined;
|
|
2192
|
+
bearerTokenEnvVar?: string | undefined;
|
|
2193
|
+
envHeaders?: Record<string, string> | undefined;
|
|
2194
|
+
credentialRef?: string | undefined;
|
|
1074
2195
|
}>>>;
|
|
1075
2196
|
/**
|
|
1076
2197
|
* Skill names hidden from the LLM. Names include the full
|
|
@@ -1086,6 +2207,82 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1086
2207
|
* names (no colon suffix). See scanSkills(opts.disabledPlugins).
|
|
1087
2208
|
*/
|
|
1088
2209
|
disabledPlugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
2210
|
+
/**
|
|
2211
|
+
* Sub-agent role names (the `name` in .code-shell/agents/*.md) to
|
|
2212
|
+
* hide from the registry. A disabled role is filtered out at load
|
|
2213
|
+
* so it never appears in registry.list()/get() — the Agent tool's
|
|
2214
|
+
* agent_type list won't show it and the LLM can't pick it. Mirrors
|
|
2215
|
+
* disabledSkills / disabledPlugins.
|
|
2216
|
+
*/
|
|
2217
|
+
disabledAgents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
2218
|
+
/**
|
|
2219
|
+
* Project-scoped tri-state capability overlay. Only meaningful in
|
|
2220
|
+
* ${cwd}/.code-shell/settings.json; layered over the global baseline at
|
|
2221
|
+
* capability-assembly time. Optional — absence === everything inherits.
|
|
2222
|
+
*/
|
|
2223
|
+
capabilityOverrides: z.ZodOptional<z.ZodObject<{
|
|
2224
|
+
skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2225
|
+
plugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2226
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2227
|
+
mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2228
|
+
builtin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2229
|
+
/**
|
|
2230
|
+
* Per-hook overlay for PLUGIN-provided hooks, keyed by
|
|
2231
|
+
* `pluginHookKey()` (`<plugin>:<RawEvent>:<command>`). Finer-grained
|
|
2232
|
+
* than `plugins` (which kills a whole plugin): "off" suppresses one
|
|
2233
|
+
* hook for this project only. Only "off" is meaningful today — plugin
|
|
2234
|
+
* hooks have no global disable list to force back "on" from.
|
|
2235
|
+
*/
|
|
2236
|
+
pluginHooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["inherit", "on", "off"]>>>;
|
|
2237
|
+
}, "strip", z.ZodTypeAny, {
|
|
2238
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2239
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2240
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2241
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2242
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2243
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2244
|
+
}, {
|
|
2245
|
+
builtin?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2246
|
+
mcp?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2247
|
+
skills?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2248
|
+
plugins?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2249
|
+
agents?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2250
|
+
pluginHooks?: Record<string, "off" | "on" | "inherit"> | undefined;
|
|
2251
|
+
}>>;
|
|
2252
|
+
/**
|
|
2253
|
+
* Feature flags overlay: a map of flag name → boolean that overrides the
|
|
2254
|
+
* compiled-in defaults (see settings/feature-flags.ts FEATURE_FLAGS).
|
|
2255
|
+
* Project settings override user settings via the normal merge, so a flag
|
|
2256
|
+
* can be flipped per-workspace. Unknown flag names are tolerated (kept as
|
|
2257
|
+
* data) for forward-compat; consumers only read known flags via
|
|
2258
|
+
* isFeatureEnabled(). Passthrough record — values coerced to boolean.
|
|
2259
|
+
*/
|
|
2260
|
+
featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
2261
|
+
/**
|
|
2262
|
+
* Cross-session memory knobs. Optional — absence keeps the built-in
|
|
2263
|
+
* defaults (see services/extract-memories.ts). `maxCount` caps memories
|
|
2264
|
+
* accepted per extraction pass; `maxAge`/`extractionModel` are reserved
|
|
2265
|
+
* for the consolidation/extraction pipeline.
|
|
2266
|
+
*/
|
|
2267
|
+
memories: z.ZodOptional<z.ZodObject<{
|
|
2268
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
2269
|
+
maxAge: z.ZodOptional<z.ZodNumber>;
|
|
2270
|
+
extractionModel: z.ZodOptional<z.ZodString>;
|
|
2271
|
+
/** Master switch for end-of-session automatic memory extraction.
|
|
2272
|
+
* Absent/true = extract (current behavior); false = skip extraction
|
|
2273
|
+
* while keeping session summaries and Dream untouched. */
|
|
2274
|
+
autoExtract: z.ZodOptional<z.ZodBoolean>;
|
|
2275
|
+
}, "strip", z.ZodTypeAny, {
|
|
2276
|
+
maxCount?: number | undefined;
|
|
2277
|
+
maxAge?: number | undefined;
|
|
2278
|
+
extractionModel?: string | undefined;
|
|
2279
|
+
autoExtract?: boolean | undefined;
|
|
2280
|
+
}, {
|
|
2281
|
+
maxCount?: number | undefined;
|
|
2282
|
+
maxAge?: number | undefined;
|
|
2283
|
+
extractionModel?: string | undefined;
|
|
2284
|
+
autoExtract?: boolean | undefined;
|
|
2285
|
+
}>>;
|
|
1089
2286
|
instructions: z.ZodDefault<z.ZodObject<{
|
|
1090
2287
|
fileName: z.ZodDefault<z.ZodString>;
|
|
1091
2288
|
scanDirs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -1110,30 +2307,30 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1110
2307
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
1111
2308
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1112
2309
|
}, "strip", z.ZodTypeAny, {
|
|
1113
|
-
model: string;
|
|
1114
2310
|
name: string;
|
|
2311
|
+
model: string;
|
|
1115
2312
|
provider?: string | undefined;
|
|
1116
2313
|
baseUrl?: string | undefined;
|
|
1117
2314
|
apiKey?: string | undefined;
|
|
1118
2315
|
}, {
|
|
1119
|
-
model: string;
|
|
1120
2316
|
name: string;
|
|
2317
|
+
model: string;
|
|
1121
2318
|
provider?: string | undefined;
|
|
1122
2319
|
baseUrl?: string | undefined;
|
|
1123
2320
|
apiKey?: string | undefined;
|
|
1124
2321
|
}>]>, "many">>;
|
|
1125
2322
|
}, "strip", z.ZodTypeAny, {
|
|
1126
2323
|
participants: (string | {
|
|
1127
|
-
model: string;
|
|
1128
2324
|
name: string;
|
|
2325
|
+
model: string;
|
|
1129
2326
|
provider?: string | undefined;
|
|
1130
2327
|
baseUrl?: string | undefined;
|
|
1131
2328
|
apiKey?: string | undefined;
|
|
1132
2329
|
})[];
|
|
1133
2330
|
}, {
|
|
1134
2331
|
participants?: (string | {
|
|
1135
|
-
model: string;
|
|
1136
2332
|
name: string;
|
|
2333
|
+
model: string;
|
|
1137
2334
|
provider?: string | undefined;
|
|
1138
2335
|
baseUrl?: string | undefined;
|
|
1139
2336
|
apiKey?: string | undefined;
|
|
@@ -1153,12 +2350,45 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1153
2350
|
providers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["serper", "tavily", "searxng"]>, z.ZodObject<{
|
|
1154
2351
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
1155
2352
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
2353
|
+
lastProbe: z.ZodOptional<z.ZodObject<{
|
|
2354
|
+
status: z.ZodEnum<["ok", "error", "unconfigured"]>;
|
|
2355
|
+
sampleTitles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2356
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
2357
|
+
errorDetail: z.ZodOptional<z.ZodString>;
|
|
2358
|
+
lastProbedAt: z.ZodString;
|
|
2359
|
+
}, "strip", z.ZodTypeAny, {
|
|
2360
|
+
status: "error" | "ok" | "unconfigured";
|
|
2361
|
+
lastProbedAt: string;
|
|
2362
|
+
sampleTitles?: string[] | undefined;
|
|
2363
|
+
errorMessage?: string | undefined;
|
|
2364
|
+
errorDetail?: string | undefined;
|
|
2365
|
+
}, {
|
|
2366
|
+
status: "error" | "ok" | "unconfigured";
|
|
2367
|
+
lastProbedAt: string;
|
|
2368
|
+
sampleTitles?: string[] | undefined;
|
|
2369
|
+
errorMessage?: string | undefined;
|
|
2370
|
+
errorDetail?: string | undefined;
|
|
2371
|
+
}>>;
|
|
1156
2372
|
}, "strip", z.ZodTypeAny, {
|
|
1157
2373
|
baseUrl?: string | undefined;
|
|
1158
2374
|
apiKey?: string | undefined;
|
|
2375
|
+
lastProbe?: {
|
|
2376
|
+
status: "error" | "ok" | "unconfigured";
|
|
2377
|
+
lastProbedAt: string;
|
|
2378
|
+
sampleTitles?: string[] | undefined;
|
|
2379
|
+
errorMessage?: string | undefined;
|
|
2380
|
+
errorDetail?: string | undefined;
|
|
2381
|
+
} | undefined;
|
|
1159
2382
|
}, {
|
|
1160
2383
|
baseUrl?: string | undefined;
|
|
1161
2384
|
apiKey?: string | undefined;
|
|
2385
|
+
lastProbe?: {
|
|
2386
|
+
status: "error" | "ok" | "unconfigured";
|
|
2387
|
+
lastProbedAt: string;
|
|
2388
|
+
sampleTitles?: string[] | undefined;
|
|
2389
|
+
errorMessage?: string | undefined;
|
|
2390
|
+
errorDetail?: string | undefined;
|
|
2391
|
+
} | undefined;
|
|
1162
2392
|
}>>>;
|
|
1163
2393
|
}, "strip", z.ZodTypeAny, {
|
|
1164
2394
|
provider: "serper" | "tavily" | "searxng";
|
|
@@ -1167,6 +2397,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1167
2397
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
1168
2398
|
baseUrl?: string | undefined;
|
|
1169
2399
|
apiKey?: string | undefined;
|
|
2400
|
+
lastProbe?: {
|
|
2401
|
+
status: "error" | "ok" | "unconfigured";
|
|
2402
|
+
lastProbedAt: string;
|
|
2403
|
+
sampleTitles?: string[] | undefined;
|
|
2404
|
+
errorMessage?: string | undefined;
|
|
2405
|
+
errorDetail?: string | undefined;
|
|
2406
|
+
} | undefined;
|
|
1170
2407
|
}>> | undefined;
|
|
1171
2408
|
}, {
|
|
1172
2409
|
provider?: "serper" | "tavily" | "searxng" | undefined;
|
|
@@ -1175,6 +2412,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1175
2412
|
providers?: Partial<Record<"serper" | "tavily" | "searxng", {
|
|
1176
2413
|
baseUrl?: string | undefined;
|
|
1177
2414
|
apiKey?: string | undefined;
|
|
2415
|
+
lastProbe?: {
|
|
2416
|
+
status: "error" | "ok" | "unconfigured";
|
|
2417
|
+
lastProbedAt: string;
|
|
2418
|
+
sampleTitles?: string[] | undefined;
|
|
2419
|
+
errorMessage?: string | undefined;
|
|
2420
|
+
errorDetail?: string | undefined;
|
|
2421
|
+
} | undefined;
|
|
1178
2422
|
}>> | undefined;
|
|
1179
2423
|
}>>;
|
|
1180
2424
|
output: z.ZodDefault<z.ZodObject<{
|
|
@@ -1184,6 +2428,26 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1184
2428
|
}, {
|
|
1185
2429
|
format?: "text" | "json" | "jsonl" | "stream-json" | undefined;
|
|
1186
2430
|
}>>;
|
|
2431
|
+
/**
|
|
2432
|
+
* Image attachment handling. Sub-fields:
|
|
2433
|
+
* - detail: provider-agnostic image clarity. Drives the
|
|
2434
|
+
* renderer-side downscale (low→~1024 / standard→~1568 /
|
|
2435
|
+
* high→~2576 px long edge) so BOTH providers save tokens
|
|
2436
|
+
* before send. Legacy "original" is migrated to "high".
|
|
2437
|
+
* - mcpImageTokenBudget: per-turn cap on token cost of images
|
|
2438
|
+
* returned by MCP tools. Codex doesn't enforce this; CC uses
|
|
2439
|
+
* 25 000. Set to 0 to disable.
|
|
2440
|
+
*/
|
|
2441
|
+
images: z.ZodOptional<z.ZodObject<{
|
|
2442
|
+
detail: z.ZodOptional<z.ZodEffects<z.ZodEnum<["low", "standard", "high"]>, "low" | "high" | "standard", unknown>>;
|
|
2443
|
+
mcpImageTokenBudget: z.ZodOptional<z.ZodNumber>;
|
|
2444
|
+
}, "strip", z.ZodTypeAny, {
|
|
2445
|
+
detail?: "low" | "high" | "standard" | undefined;
|
|
2446
|
+
mcpImageTokenBudget?: number | undefined;
|
|
2447
|
+
}, {
|
|
2448
|
+
detail?: unknown;
|
|
2449
|
+
mcpImageTokenBudget?: number | undefined;
|
|
2450
|
+
}>>;
|
|
1187
2451
|
/**
|
|
1188
2452
|
* OS-level sandbox for shell-tool execution. "auto" picks per platform:
|
|
1189
2453
|
* Seatbelt on macOS, bubblewrap on Linux when installed, otherwise off.
|
|
@@ -1196,16 +2460,103 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1196
2460
|
deniedReads: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1197
2461
|
network: z.ZodOptional<z.ZodEnum<["allow", "deny"]>>;
|
|
1198
2462
|
}, "strip", z.ZodTypeAny, {
|
|
1199
|
-
mode?: "auto" | "
|
|
2463
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
1200
2464
|
writableRoots?: string[] | undefined;
|
|
1201
2465
|
deniedReads?: string[] | undefined;
|
|
1202
2466
|
network?: "allow" | "deny" | undefined;
|
|
1203
2467
|
}, {
|
|
1204
|
-
mode?: "auto" | "
|
|
2468
|
+
mode?: "auto" | "off" | "seatbelt" | "bwrap" | undefined;
|
|
1205
2469
|
writableRoots?: string[] | undefined;
|
|
1206
2470
|
deniedReads?: string[] | undefined;
|
|
1207
2471
|
network?: "allow" | "deny" | undefined;
|
|
1208
2472
|
}>>;
|
|
2473
|
+
/**
|
|
2474
|
+
* Top-level environment variables injected into tool subprocesses (the
|
|
2475
|
+
* Bash tool, background shells). Mirrors Claude Code's `env` field: a
|
|
2476
|
+
* KEY=VALUE map that can be set globally (~/.code-shell/settings.json) and
|
|
2477
|
+
* overridden per-project (.code-shell/settings.json). The canonical home
|
|
2478
|
+
* for API keys (e.g. OPENAI_API_KEY) that a skill's script reads — configure
|
|
2479
|
+
* once globally and every project's skills can use it.
|
|
2480
|
+
*
|
|
2481
|
+
* Precedence when merged into the spawn env (lowest → highest):
|
|
2482
|
+
* project localEnvironment.env → global env → project env
|
|
2483
|
+
* None of these is filtered through the deny regex (see mergeShellEnv):
|
|
2484
|
+
* they are values the user typed deliberately, a different trust class from
|
|
2485
|
+
* the host process.env passthrough the deny machinery guards against.
|
|
2486
|
+
*/
|
|
2487
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2488
|
+
/**
|
|
2489
|
+
* Project-local environment profile. Mirrors Codex's local-environment
|
|
2490
|
+
* shape at the settings layer: setup/cleanup scripts can be customized per
|
|
2491
|
+
* platform, and env values are stored as KEY=VALUE pairs. Runtime wiring is
|
|
2492
|
+
* intentionally separate from the MCP server env model above.
|
|
2493
|
+
*/
|
|
2494
|
+
localEnvironment: z.ZodOptional<z.ZodObject<{
|
|
2495
|
+
name: z.ZodOptional<z.ZodString>;
|
|
2496
|
+
setupScripts: z.ZodOptional<z.ZodObject<{
|
|
2497
|
+
default: z.ZodOptional<z.ZodString>;
|
|
2498
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
2499
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
2500
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
2501
|
+
}, "strip", z.ZodTypeAny, {
|
|
2502
|
+
default?: string | undefined;
|
|
2503
|
+
linux?: string | undefined;
|
|
2504
|
+
macos?: string | undefined;
|
|
2505
|
+
windows?: string | undefined;
|
|
2506
|
+
}, {
|
|
2507
|
+
default?: string | undefined;
|
|
2508
|
+
linux?: string | undefined;
|
|
2509
|
+
macos?: string | undefined;
|
|
2510
|
+
windows?: string | undefined;
|
|
2511
|
+
}>>;
|
|
2512
|
+
cleanupScripts: z.ZodOptional<z.ZodObject<{
|
|
2513
|
+
default: z.ZodOptional<z.ZodString>;
|
|
2514
|
+
macos: z.ZodOptional<z.ZodString>;
|
|
2515
|
+
linux: z.ZodOptional<z.ZodString>;
|
|
2516
|
+
windows: z.ZodOptional<z.ZodString>;
|
|
2517
|
+
}, "strip", z.ZodTypeAny, {
|
|
2518
|
+
default?: string | undefined;
|
|
2519
|
+
linux?: string | undefined;
|
|
2520
|
+
macos?: string | undefined;
|
|
2521
|
+
windows?: string | undefined;
|
|
2522
|
+
}, {
|
|
2523
|
+
default?: string | undefined;
|
|
2524
|
+
linux?: string | undefined;
|
|
2525
|
+
macos?: string | undefined;
|
|
2526
|
+
windows?: string | undefined;
|
|
2527
|
+
}>>;
|
|
2528
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2529
|
+
}, "strip", z.ZodTypeAny, {
|
|
2530
|
+
name?: string | undefined;
|
|
2531
|
+
env?: Record<string, string> | undefined;
|
|
2532
|
+
setupScripts?: {
|
|
2533
|
+
default?: string | undefined;
|
|
2534
|
+
linux?: string | undefined;
|
|
2535
|
+
macos?: string | undefined;
|
|
2536
|
+
windows?: string | undefined;
|
|
2537
|
+
} | undefined;
|
|
2538
|
+
cleanupScripts?: {
|
|
2539
|
+
default?: string | undefined;
|
|
2540
|
+
linux?: string | undefined;
|
|
2541
|
+
macos?: string | undefined;
|
|
2542
|
+
windows?: string | undefined;
|
|
2543
|
+
} | undefined;
|
|
2544
|
+
}, {
|
|
2545
|
+
name?: string | undefined;
|
|
2546
|
+
env?: Record<string, string> | undefined;
|
|
2547
|
+
setupScripts?: {
|
|
2548
|
+
default?: string | undefined;
|
|
2549
|
+
linux?: string | undefined;
|
|
2550
|
+
macos?: string | undefined;
|
|
2551
|
+
windows?: string | undefined;
|
|
2552
|
+
} | undefined;
|
|
2553
|
+
cleanupScripts?: {
|
|
2554
|
+
default?: string | undefined;
|
|
2555
|
+
linux?: string | undefined;
|
|
2556
|
+
macos?: string | undefined;
|
|
2557
|
+
windows?: string | undefined;
|
|
2558
|
+
} | undefined;
|
|
2559
|
+
}>>;
|
|
1209
2560
|
/**
|
|
1210
2561
|
* Shell-hook configuration. Each entry binds a HookEventName to a
|
|
1211
2562
|
* shell command; the command receives ctx JSON on stdin and returns
|
|
@@ -1222,19 +2573,99 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
1222
2573
|
matcher: z.ZodOptional<z.ZodString>;
|
|
1223
2574
|
timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
1224
2575
|
cwd: z.ZodOptional<z.ZodString>;
|
|
2576
|
+
/** Soft off-switch: the entry stays in the file (and the UI) but
|
|
2577
|
+
* registerSettingsHooks skips it. Absent = enabled. */
|
|
2578
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
1225
2579
|
}, "strip", z.ZodTypeAny, {
|
|
1226
2580
|
command: string;
|
|
1227
2581
|
event: string;
|
|
1228
|
-
|
|
2582
|
+
disabled?: boolean | undefined;
|
|
1229
2583
|
matcher?: string | undefined;
|
|
1230
2584
|
timeout_ms?: number | undefined;
|
|
2585
|
+
cwd?: string | undefined;
|
|
1231
2586
|
}, {
|
|
1232
2587
|
command: string;
|
|
1233
2588
|
event: string;
|
|
1234
|
-
|
|
2589
|
+
disabled?: boolean | undefined;
|
|
1235
2590
|
matcher?: string | undefined;
|
|
1236
2591
|
timeout_ms?: number | undefined;
|
|
2592
|
+
cwd?: string | undefined;
|
|
1237
2593
|
}>, "many">>;
|
|
2594
|
+
/**
|
|
2595
|
+
* External coding-agent orchestration (Claude Code / Codex CLI).
|
|
2596
|
+
* Used by the Mobile Web Remote to launch managed jobs. dangerousArgs
|
|
2597
|
+
* is config-provided (not hardcoded) so it tracks CLI flag changes;
|
|
2598
|
+
* project-default dangerous mode only applies inside trustedWorkspaces.
|
|
2599
|
+
*/
|
|
2600
|
+
externalAgents: z.ZodOptional<z.ZodObject<{
|
|
2601
|
+
claudeCode: z.ZodOptional<z.ZodObject<{
|
|
2602
|
+
command: z.ZodOptional<z.ZodString>;
|
|
2603
|
+
defaultMode: z.ZodOptional<z.ZodEnum<["safe", "dangerous"]>>;
|
|
2604
|
+
dangerousArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2605
|
+
trustedWorkspaces: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2606
|
+
autoStartInTrustedWorkspaces: z.ZodOptional<z.ZodBoolean>;
|
|
2607
|
+
}, "strip", z.ZodTypeAny, {
|
|
2608
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
2609
|
+
command?: string | undefined;
|
|
2610
|
+
dangerousArgs?: string[] | undefined;
|
|
2611
|
+
trustedWorkspaces?: string[] | undefined;
|
|
2612
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
2613
|
+
}, {
|
|
2614
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
2615
|
+
command?: string | undefined;
|
|
2616
|
+
dangerousArgs?: string[] | undefined;
|
|
2617
|
+
trustedWorkspaces?: string[] | undefined;
|
|
2618
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
2619
|
+
}>>;
|
|
2620
|
+
codex: z.ZodOptional<z.ZodObject<{
|
|
2621
|
+
command: z.ZodOptional<z.ZodString>;
|
|
2622
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2623
|
+
}, "strip", z.ZodTypeAny, {
|
|
2624
|
+
args?: string[] | undefined;
|
|
2625
|
+
command?: string | undefined;
|
|
2626
|
+
}, {
|
|
2627
|
+
args?: string[] | undefined;
|
|
2628
|
+
command?: string | undefined;
|
|
2629
|
+
}>>;
|
|
2630
|
+
}, "strip", z.ZodTypeAny, {
|
|
2631
|
+
claudeCode?: {
|
|
2632
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
2633
|
+
command?: string | undefined;
|
|
2634
|
+
dangerousArgs?: string[] | undefined;
|
|
2635
|
+
trustedWorkspaces?: string[] | undefined;
|
|
2636
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
2637
|
+
} | undefined;
|
|
2638
|
+
codex?: {
|
|
2639
|
+
args?: string[] | undefined;
|
|
2640
|
+
command?: string | undefined;
|
|
2641
|
+
} | undefined;
|
|
2642
|
+
}, {
|
|
2643
|
+
claudeCode?: {
|
|
2644
|
+
defaultMode?: "safe" | "dangerous" | undefined;
|
|
2645
|
+
command?: string | undefined;
|
|
2646
|
+
dangerousArgs?: string[] | undefined;
|
|
2647
|
+
trustedWorkspaces?: string[] | undefined;
|
|
2648
|
+
autoStartInTrustedWorkspaces?: boolean | undefined;
|
|
2649
|
+
} | undefined;
|
|
2650
|
+
codex?: {
|
|
2651
|
+
args?: string[] | undefined;
|
|
2652
|
+
command?: string | undefined;
|
|
2653
|
+
} | undefined;
|
|
2654
|
+
}>>;
|
|
2655
|
+
/**
|
|
2656
|
+
* Credential-use gate (凭证模块第二期). Controls whether the AI's
|
|
2657
|
+
* `UseCredential` tool prompts before handing a stored credential to a
|
|
2658
|
+
* command. `autoApprove: true` skips the prompt entirely (默认关 — every
|
|
2659
|
+
* use asks, or is remembered for the session). See
|
|
2660
|
+
* docs/superpowers/specs/2026-06-16-credential-use-gate-design.md §5.
|
|
2661
|
+
*/
|
|
2662
|
+
credentialUse: z.ZodOptional<z.ZodObject<{
|
|
2663
|
+
autoApprove: z.ZodOptional<z.ZodBoolean>;
|
|
2664
|
+
}, "strip", z.ZodTypeAny, {
|
|
2665
|
+
autoApprove?: boolean | undefined;
|
|
2666
|
+
}, {
|
|
2667
|
+
autoApprove?: boolean | undefined;
|
|
2668
|
+
}>>;
|
|
1238
2669
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1239
2670
|
export type ValidatedSettings = z.infer<typeof SettingsSchema>;
|
|
1240
2671
|
export declare function validateSettings(raw: unknown): ValidatedSettings;
|