@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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ValidatedSettings } from "./schema.js";
|
|
2
|
+
import type { EngineConfig } from "../engine/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* The subset of EngineConfig the config hot-reload ("layer 2") pushes onto an
|
|
5
|
+
* already-running session's `this.config`. These are the "disk-default" fields:
|
|
6
|
+
* read from settings.json at construction, otherwise frozen for the session's
|
|
7
|
+
* life. Request-override fields (permissionMode / goal / maxTurns /
|
|
8
|
+
* maxContextTokens / cwd) are intentionally excluded — those are per-request
|
|
9
|
+
* and handled by handleConfigure / run() options, not by disk hot-push.
|
|
10
|
+
*
|
|
11
|
+
* Reload semantics per field (see Engine.refreshRuntimeConfig):
|
|
12
|
+
* - preset: system-prompt / behavior hot-reloads (next-turn PromptComposer
|
|
13
|
+
* re-resolves it); the builtin TOOL SET it implies needs a session restart
|
|
14
|
+
* (registry is ctor-frozen, possibly shared via runtime).
|
|
15
|
+
* - customSystemPrompt / appendSystemPrompt / responseLanguage / userProfile:
|
|
16
|
+
* hot — re-read by the next-turn PromptComposer.
|
|
17
|
+
*
|
|
18
|
+
* IMPORTANT (#8): every field here is pushed as a PURE DISK value and will
|
|
19
|
+
* OVERRIDE any per-request slice override of the same field on the running
|
|
20
|
+
* session. Safe for the desktop host today (its slice carries only
|
|
21
|
+
* permissionMode+cwd, both excluded above). A future host that sets any of
|
|
22
|
+
* these per-request MUST exclude that field from the reload patch — or track
|
|
23
|
+
* per-request overrides separately — to avoid the reload clobbering it.
|
|
24
|
+
*/
|
|
25
|
+
export type DiskDefaultPatch = Pick<EngineConfig, "preset" | "customSystemPrompt" | "appendSystemPrompt" | "responseLanguage" | "userProfile" | "instructions" | "mcpServers">;
|
|
26
|
+
/**
|
|
27
|
+
* Derive the disk-default config patch from freshly-read settings.
|
|
28
|
+
*
|
|
29
|
+
* This MUST mirror how `agent-server-stdio.ts`'s engineFactory builds these
|
|
30
|
+
* same fields from `settings.agent` + `mergePluginMcpServers(...)`, so a
|
|
31
|
+
* reloaded running session and a newly-created session converge on identical
|
|
32
|
+
* config (no divergence). It reuses `personalizationFrom` for the three
|
|
33
|
+
* personalization fields rather than duplicating the mapping.
|
|
34
|
+
*/
|
|
35
|
+
export declare function diskDefaultsFrom(settings: ValidatedSettings,
|
|
36
|
+
/**
|
|
37
|
+
* EFFECTIVE disabled plugins for the target session — the caller should
|
|
38
|
+
* pass `engine.getEffectiveDisabledLists().disabledPlugins` so the merge
|
|
39
|
+
* honors project capabilityOverrides (能力总览 project "on" overrides the
|
|
40
|
+
* global list). Omitted → falls back to the raw global list (legacy).
|
|
41
|
+
*/
|
|
42
|
+
effectiveDisabledPlugins?: string[]): DiskDefaultPatch;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { personalizationFrom } from "./personalization.js";
|
|
2
|
+
import { mergePluginMcpServers } from "../plugins/installer/loadPluginMcp.js";
|
|
3
|
+
/**
|
|
4
|
+
* Derive the disk-default config patch from freshly-read settings.
|
|
5
|
+
*
|
|
6
|
+
* This MUST mirror how `agent-server-stdio.ts`'s engineFactory builds these
|
|
7
|
+
* same fields from `settings.agent` + `mergePluginMcpServers(...)`, so a
|
|
8
|
+
* reloaded running session and a newly-created session converge on identical
|
|
9
|
+
* config (no divergence). It reuses `personalizationFrom` for the three
|
|
10
|
+
* personalization fields rather than duplicating the mapping.
|
|
11
|
+
*/
|
|
12
|
+
export function diskDefaultsFrom(settings,
|
|
13
|
+
/**
|
|
14
|
+
* EFFECTIVE disabled plugins for the target session — the caller should
|
|
15
|
+
* pass `engine.getEffectiveDisabledLists().disabledPlugins` so the merge
|
|
16
|
+
* honors project capabilityOverrides (能力总览 project "on" overrides the
|
|
17
|
+
* global list). Omitted → falls back to the raw global list (legacy).
|
|
18
|
+
*/
|
|
19
|
+
effectiveDisabledPlugins) {
|
|
20
|
+
const agent = settings.agent ?? {};
|
|
21
|
+
return {
|
|
22
|
+
preset: agent.preset,
|
|
23
|
+
customSystemPrompt: agent.customSystemPrompt,
|
|
24
|
+
appendSystemPrompt: agent.appendSystemPrompt,
|
|
25
|
+
...personalizationFrom(agent),
|
|
26
|
+
// Same merge engineFactory uses: user-configured servers + enabled
|
|
27
|
+
// plugins' servers. Plugin servers a disabled plugin would contribute are
|
|
28
|
+
// skipped, matching new-session construction.
|
|
29
|
+
mcpServers: mergePluginMcpServers(settings.mcpServers ?? {}, effectiveDisabledPlugins ??
|
|
30
|
+
settings.disabledPlugins ??
|
|
31
|
+
[], settings.mcpServerOverrides ?? {}),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flags — a small, central on/off registry for opt-in or
|
|
3
|
+
* experimental behavior.
|
|
4
|
+
*
|
|
5
|
+
* Design goals:
|
|
6
|
+
* - One source of truth for flag NAMES + their DEFAULT state, so a flag
|
|
7
|
+
* can't be checked under a typo (the known set is a const).
|
|
8
|
+
* - Settings-driven: `settings.featureFlags` is a `{ [name]: boolean }`
|
|
9
|
+
* overlay over the defaults. Project settings override user settings the
|
|
10
|
+
* same way every other settings field does (the SettingsManager merge),
|
|
11
|
+
* so a flag can be flipped per-workspace.
|
|
12
|
+
* - Forgiving read: `isFeatureEnabled` falls back to the default when a
|
|
13
|
+
* flag is absent from settings, and ignores unknown flag names from
|
|
14
|
+
* settings (forward-compat with older binaries).
|
|
15
|
+
*
|
|
16
|
+
* This is the knob layer only — each consumer still has to CHECK its flag.
|
|
17
|
+
* The `/features` command (CLI) reads/writes this same map.
|
|
18
|
+
*/
|
|
19
|
+
/** Canonical flag names. Add new flags here so checks stay typo-safe. */
|
|
20
|
+
export declare const FEATURE_FLAGS: {
|
|
21
|
+
/** Web search tool availability (also gated by a configured provider). */
|
|
22
|
+
readonly web_search: {
|
|
23
|
+
readonly default: true;
|
|
24
|
+
readonly description: "Enable the WebSearch tool";
|
|
25
|
+
};
|
|
26
|
+
/** The Bash/shell tool. Off → the model cannot run shell commands. */
|
|
27
|
+
readonly shell_tool: {
|
|
28
|
+
readonly default: true;
|
|
29
|
+
readonly description: "Enable the Bash/shell tool";
|
|
30
|
+
};
|
|
31
|
+
/** Fast-output mode for supported models. */
|
|
32
|
+
readonly fast_mode: {
|
|
33
|
+
readonly default: false;
|
|
34
|
+
readonly description: "Faster streaming output on supported models";
|
|
35
|
+
};
|
|
36
|
+
/** Undo system (file-operation backups + /undo). */
|
|
37
|
+
readonly undo: {
|
|
38
|
+
readonly default: false;
|
|
39
|
+
readonly description: "Per-session file undo (/undo)";
|
|
40
|
+
};
|
|
41
|
+
/** Shell snapshot: capture full stdout/stderr of commands. */
|
|
42
|
+
readonly shell_snapshot: {
|
|
43
|
+
readonly default: false;
|
|
44
|
+
readonly description: "Capture full command stdout/stderr snapshots";
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export type FeatureFlagName = keyof typeof FEATURE_FLAGS;
|
|
48
|
+
/** The settings overlay shape: a partial map of known flags → boolean. */
|
|
49
|
+
export type FeatureFlagOverrides = Partial<Record<FeatureFlagName, boolean>>;
|
|
50
|
+
/** All known flag names, for iteration (e.g. the /features listing). */
|
|
51
|
+
export declare function featureFlagNames(): FeatureFlagName[];
|
|
52
|
+
/** True when `name` is a recognized flag (narrows an arbitrary string). */
|
|
53
|
+
export declare function isKnownFeatureFlag(name: string): name is FeatureFlagName;
|
|
54
|
+
/**
|
|
55
|
+
* Resolve a flag's effective state: the settings overlay value when present
|
|
56
|
+
* and boolean, else the flag's compiled-in default. Unknown names → false
|
|
57
|
+
* (a check for a flag that doesn't exist is never "enabled").
|
|
58
|
+
*/
|
|
59
|
+
export declare function isFeatureEnabled(overrides: FeatureFlagOverrides | undefined, name: FeatureFlagName): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the full effective flag map (defaults merged with overrides).
|
|
62
|
+
* Used by `/features` to show the current state of every flag.
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveFeatureFlags(overrides: FeatureFlagOverrides | undefined): Record<FeatureFlagName, boolean>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flags — a small, central on/off registry for opt-in or
|
|
3
|
+
* experimental behavior.
|
|
4
|
+
*
|
|
5
|
+
* Design goals:
|
|
6
|
+
* - One source of truth for flag NAMES + their DEFAULT state, so a flag
|
|
7
|
+
* can't be checked under a typo (the known set is a const).
|
|
8
|
+
* - Settings-driven: `settings.featureFlags` is a `{ [name]: boolean }`
|
|
9
|
+
* overlay over the defaults. Project settings override user settings the
|
|
10
|
+
* same way every other settings field does (the SettingsManager merge),
|
|
11
|
+
* so a flag can be flipped per-workspace.
|
|
12
|
+
* - Forgiving read: `isFeatureEnabled` falls back to the default when a
|
|
13
|
+
* flag is absent from settings, and ignores unknown flag names from
|
|
14
|
+
* settings (forward-compat with older binaries).
|
|
15
|
+
*
|
|
16
|
+
* This is the knob layer only — each consumer still has to CHECK its flag.
|
|
17
|
+
* The `/features` command (CLI) reads/writes this same map.
|
|
18
|
+
*/
|
|
19
|
+
/** Canonical flag names. Add new flags here so checks stay typo-safe. */
|
|
20
|
+
export const FEATURE_FLAGS = {
|
|
21
|
+
/** Web search tool availability (also gated by a configured provider). */
|
|
22
|
+
web_search: { default: true, description: "Enable the WebSearch tool" },
|
|
23
|
+
/** The Bash/shell tool. Off → the model cannot run shell commands. */
|
|
24
|
+
shell_tool: { default: true, description: "Enable the Bash/shell tool" },
|
|
25
|
+
/** Fast-output mode for supported models. */
|
|
26
|
+
fast_mode: { default: false, description: "Faster streaming output on supported models" },
|
|
27
|
+
/** Undo system (file-operation backups + /undo). */
|
|
28
|
+
undo: { default: false, description: "Per-session file undo (/undo)" },
|
|
29
|
+
/** Shell snapshot: capture full stdout/stderr of commands. */
|
|
30
|
+
shell_snapshot: { default: false, description: "Capture full command stdout/stderr snapshots" },
|
|
31
|
+
};
|
|
32
|
+
/** All known flag names, for iteration (e.g. the /features listing). */
|
|
33
|
+
export function featureFlagNames() {
|
|
34
|
+
return Object.keys(FEATURE_FLAGS);
|
|
35
|
+
}
|
|
36
|
+
/** True when `name` is a recognized flag (narrows an arbitrary string). */
|
|
37
|
+
export function isKnownFeatureFlag(name) {
|
|
38
|
+
return Object.prototype.hasOwnProperty.call(FEATURE_FLAGS, name);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a flag's effective state: the settings overlay value when present
|
|
42
|
+
* and boolean, else the flag's compiled-in default. Unknown names → false
|
|
43
|
+
* (a check for a flag that doesn't exist is never "enabled").
|
|
44
|
+
*/
|
|
45
|
+
export function isFeatureEnabled(overrides, name) {
|
|
46
|
+
const override = overrides?.[name];
|
|
47
|
+
if (typeof override === "boolean")
|
|
48
|
+
return override;
|
|
49
|
+
return FEATURE_FLAGS[name].default;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve the full effective flag map (defaults merged with overrides).
|
|
53
|
+
* Used by `/features` to show the current state of every flag.
|
|
54
|
+
*/
|
|
55
|
+
export function resolveFeatureFlags(overrides) {
|
|
56
|
+
const out = {};
|
|
57
|
+
for (const name of featureFlagNames()) {
|
|
58
|
+
out[name] = isFeatureEnabled(overrides, name);
|
|
59
|
+
}
|
|
60
|
+
return out;
|
|
61
|
+
}
|
|
@@ -4,7 +4,46 @@
|
|
|
4
4
|
* Priority: CLI flags > local > project > user > managed
|
|
5
5
|
*/
|
|
6
6
|
import { type ValidatedSettings } from "./schema.js";
|
|
7
|
+
/**
|
|
8
|
+
* Resolve the user's home directory. Prefers `process.env.HOME` so that
|
|
9
|
+
* runtime env overrides (set after process start, e.g. in tests) actually
|
|
10
|
+
* take effect — on some runtimes (e.g. Bun on macOS) `os.homedir()` is
|
|
11
|
+
* cached from the user database at process startup and ignores later
|
|
12
|
+
* `process.env.HOME` mutations.
|
|
13
|
+
*/
|
|
14
|
+
export declare function userHome(): string;
|
|
15
|
+
/**
|
|
16
|
+
* True if `key` (a dotted path like "permissions.rules" or just "env") targets a
|
|
17
|
+
* protected trust-root field. Matches on the FIRST segment so nested writes
|
|
18
|
+
* ("permissions.defaultMode", "env.FOO") are caught too.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isProtectedSettingKey(key: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The fixed cwd used for "no-repo" pure-chat conversations (a chat not bound to
|
|
23
|
+
* any code project). Same location as desktop's `resolveNoRepoCwd`
|
|
24
|
+
* (`join(homedir(), ".code-shell", "no-repo")`), but built from {@link userHome}
|
|
25
|
+
* so tests can isolate it by overriding `$HOME`. The engine compares
|
|
26
|
+
* `config.cwd === noRepoDir()` to flip skill/plugin filtering to whitelist mode.
|
|
27
|
+
*/
|
|
28
|
+
export declare function noRepoDir(): string;
|
|
7
29
|
export type SettingsSourceName = "managed" | "user" | "project" | "local" | "flag";
|
|
30
|
+
/**
|
|
31
|
+
* Top-level settings fields that can influence code execution and are therefore
|
|
32
|
+
* stripped from an UNTRUSTED project's disk layers (project + local) before
|
|
33
|
+
* merge. A repo commits these into its `.code-shell/settings.json`, so an
|
|
34
|
+
* untrusted clone must not have them take effect:
|
|
35
|
+
* - permissions — `rules` can self-authorize (allow Bash …); `defaultMode`
|
|
36
|
+
* can set bypassPermissions.
|
|
37
|
+
* - env — injected into Bash child env unfiltered (BASH_ENV,
|
|
38
|
+
* LD_PRELOAD, PATH → arbitrary code on next command).
|
|
39
|
+
* - localEnvironment — same, as the env floor.
|
|
40
|
+
* - hooks — arbitrary commands on lifecycle events.
|
|
41
|
+
* - mcpServers — auto-connect to attacker-controlled MCP servers.
|
|
42
|
+
* Only project-scoped layers are filtered; user/managed/flag are trusted.
|
|
43
|
+
* Mirrors Claude Code's TRUSTED_SETTING_SOURCES model (project sources excluded
|
|
44
|
+
* from dangerous env application until trust is granted).
|
|
45
|
+
*/
|
|
46
|
+
export declare const DANGEROUS_PROJECT_FIELDS: readonly ["permissions", "env", "localEnvironment", "hooks", "mcpServers"];
|
|
8
47
|
/**
|
|
9
48
|
* Which disk layers a SettingsManager is allowed to read.
|
|
10
49
|
* 'full' — managed + user (~/.code-shell) + project + local (host terminal entrypoints)
|
|
@@ -18,13 +57,49 @@ export type SettingsScope = "isolated" | "project" | "full";
|
|
|
18
57
|
export declare class SettingsManager {
|
|
19
58
|
private readonly cwd;
|
|
20
59
|
private readonly scope;
|
|
60
|
+
/**
|
|
61
|
+
* Workspace trust for the project directory. When false, dangerous fields
|
|
62
|
+
* committed into the project's own `.code-shell/settings.{json,local.json}`
|
|
63
|
+
* ({@link DANGEROUS_PROJECT_FIELDS}) are stripped before merge, so a cloned
|
|
64
|
+
* malicious repo can't self-authorize permission rules, inject `env`
|
|
65
|
+
* (BASH_ENV/LD_PRELOAD/…), register hooks, or connect MCP servers. Safe
|
|
66
|
+
* fields (model choice, UI prefs, …) still merge. The user/managed/flag
|
|
67
|
+
* layers are never gated — the user put those there deliberately.
|
|
68
|
+
*
|
|
69
|
+
* Defaults to `true` so existing embedders/tests keep their behavior; the
|
|
70
|
+
* host (desktop) passes the real trust decision from its trust-store.
|
|
71
|
+
*/
|
|
72
|
+
private readonly projectTrusted;
|
|
21
73
|
private sources;
|
|
22
74
|
private merged;
|
|
23
|
-
constructor(cwd?: string, scope?: SettingsScope
|
|
75
|
+
constructor(cwd?: string, scope?: SettingsScope,
|
|
76
|
+
/**
|
|
77
|
+
* Workspace trust for the project directory. When false, dangerous fields
|
|
78
|
+
* committed into the project's own `.code-shell/settings.{json,local.json}`
|
|
79
|
+
* ({@link DANGEROUS_PROJECT_FIELDS}) are stripped before merge, so a cloned
|
|
80
|
+
* malicious repo can't self-authorize permission rules, inject `env`
|
|
81
|
+
* (BASH_ENV/LD_PRELOAD/…), register hooks, or connect MCP servers. Safe
|
|
82
|
+
* fields (model choice, UI prefs, …) still merge. The user/managed/flag
|
|
83
|
+
* layers are never gated — the user put those there deliberately.
|
|
84
|
+
*
|
|
85
|
+
* Defaults to `true` so existing embedders/tests keep their behavior; the
|
|
86
|
+
* host (desktop) passes the real trust decision from its trust-store.
|
|
87
|
+
*/
|
|
88
|
+
projectTrusted?: boolean);
|
|
24
89
|
/**
|
|
25
90
|
* Load settings from all sources.
|
|
26
91
|
*/
|
|
27
92
|
load(flagOverrides?: Record<string, unknown>): ValidatedSettings;
|
|
93
|
+
/**
|
|
94
|
+
* Run the version-based migrations (migrate-config.ts MIGRATIONS) against a
|
|
95
|
+
* single physical settings file. Best-effort: any read/parse/write error
|
|
96
|
+
* falls through silently and the original source data is used as-is.
|
|
97
|
+
* Writes back (with a .bak, like the models[] migration above) ONLY when a
|
|
98
|
+
* step changed actual content — the configVersion stamp alone doesn't
|
|
99
|
+
* justify touching the file. On write-back the in-memory source is updated
|
|
100
|
+
* so this load() already sees the migrated shape.
|
|
101
|
+
*/
|
|
102
|
+
private applyConfigMigration;
|
|
28
103
|
/**
|
|
29
104
|
* Get current effective settings.
|
|
30
105
|
*/
|
|
@@ -42,6 +117,31 @@ export declare class SettingsManager {
|
|
|
42
117
|
* The merged cache is invalidated so the next get() picks up the change.
|
|
43
118
|
*/
|
|
44
119
|
saveUserSetting(key: string, value: unknown): void;
|
|
120
|
+
/**
|
|
121
|
+
* Persist a single setting (dotted key path) to the PROJECT-level config
|
|
122
|
+
* file at ${cwd}/.code-shell/settings.json. This is where capabilityOverrides
|
|
123
|
+
* live — project overlays never touch the global user file. Atomic write +
|
|
124
|
+
* cache invalidation mirror saveUserSetting.
|
|
125
|
+
*/
|
|
126
|
+
saveProjectSetting(key: string, value: unknown, cwd: string): void;
|
|
127
|
+
/**
|
|
128
|
+
* Delete a single dotted key from the PROJECT-level config file. Used to
|
|
129
|
+
* express "inherit" — we don't persist the literal "inherit"; we remove the
|
|
130
|
+
* override key. No-ops if the file or any intermediate segment is absent.
|
|
131
|
+
*/
|
|
132
|
+
deleteProjectSetting(key: string, cwd: string): void;
|
|
133
|
+
/**
|
|
134
|
+
* Read ONE scope's raw settings file, validated but UNMERGED. Capability
|
|
135
|
+
* overlay math needs the project overlay and the user/global baseline
|
|
136
|
+
* separately — the merged get() collapses provenance and can't express
|
|
137
|
+
* tri-state inheritance. user → ~/.code-shell/settings.json, project →
|
|
138
|
+
* ${cwd}/.code-shell/settings.json. Only keys actually present in the file
|
|
139
|
+
* are returned (defaults are not synthesized), so an absent file → {}.
|
|
140
|
+
*/
|
|
141
|
+
getForScope(scope: "user" | "project", cwd?: string): Partial<ValidatedSettings>;
|
|
142
|
+
private projectSettingsPath;
|
|
143
|
+
private readJsonObject;
|
|
144
|
+
private atomicWriteJson;
|
|
45
145
|
private loadJsonFile;
|
|
46
146
|
private deepMerge;
|
|
47
147
|
}
|