@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.
Files changed (528) hide show
  1. package/README.md +13 -10
  2. package/dist/agent/agent-definition-registry.d.ts +21 -3
  3. package/dist/agent/agent-definition-registry.js +49 -18
  4. package/dist/agent/agent-definition.d.ts +32 -0
  5. package/dist/agent/agent-definition.js +49 -4
  6. package/dist/arena/arena.js +11 -12
  7. package/dist/arena/context/context-tools.js +47 -6
  8. package/dist/arena/context/within-root.d.ts +7 -0
  9. package/dist/arena/context/within-root.js +15 -0
  10. package/dist/arena/iterate/phases/argue.js +8 -2
  11. package/dist/arena/iterate/phases/revise.js +1 -1
  12. package/dist/arena/iterate/phases/tournament.js +3 -3
  13. package/dist/arena/ledger.js +9 -1
  14. package/dist/arena/phases/adjudication.js +1 -4
  15. package/dist/arena/phases/build-consensus.js +1 -4
  16. package/dist/arena/phases/cross-review.js +2 -8
  17. package/dist/arena/phases/debate-rounds.js +1 -4
  18. package/dist/arena/phases/participant-research.js +1 -4
  19. package/dist/arena/phases/planning-detail-expansion.js +8 -10
  20. package/dist/arena/planner.js +0 -1
  21. package/dist/arena/providers/docs.d.ts +1 -0
  22. package/dist/arena/providers/docs.js +5 -2
  23. package/dist/arena/providers/repo.d.ts +1 -0
  24. package/dist/arena/providers/repo.js +5 -2
  25. package/dist/arena/strategies/utils.d.ts +1 -4
  26. package/dist/arena/strategies/utils.js +7 -51
  27. package/dist/arena/transitions.d.ts +7 -2
  28. package/dist/arena/transitions.js +9 -4
  29. package/dist/arena/types.d.ts +8 -2
  30. package/dist/automation/cron-expr.d.ts +41 -0
  31. package/dist/automation/cron-expr.js +169 -0
  32. package/dist/automation/index.d.ts +41 -0
  33. package/dist/automation/index.js +39 -0
  34. package/dist/automation/runner.d.ts +84 -0
  35. package/dist/automation/runner.js +92 -0
  36. package/dist/automation/scheduler.d.ts +194 -0
  37. package/dist/automation/scheduler.js +623 -0
  38. package/dist/automation/store.d.ts +39 -0
  39. package/dist/automation/store.js +122 -0
  40. package/dist/automation/write-policy.d.ts +34 -0
  41. package/dist/automation/write-policy.js +113 -0
  42. package/dist/automation/write-run.d.ts +51 -0
  43. package/dist/automation/write-run.js +38 -0
  44. package/dist/capability-control/disabled-lists.d.ts +25 -0
  45. package/dist/capability-control/disabled-lists.js +57 -0
  46. package/dist/capability-control/index.d.ts +5 -0
  47. package/dist/capability-control/index.js +3 -0
  48. package/dist/capability-control/overlay.d.ts +64 -0
  49. package/dist/capability-control/overlay.js +116 -0
  50. package/dist/capability-control/project.d.ts +65 -0
  51. package/dist/capability-control/project.js +147 -0
  52. package/dist/capability-control/service.d.ts +70 -0
  53. package/dist/capability-control/service.js +147 -0
  54. package/dist/capability-control/types.d.ts +62 -0
  55. package/dist/capability-control/types.js +17 -0
  56. package/dist/cc-orchestrator/agent-adapter.d.ts +50 -0
  57. package/dist/cc-orchestrator/agent-adapter.js +133 -0
  58. package/dist/cc-orchestrator/cc-capability.d.ts +19 -0
  59. package/dist/cc-orchestrator/cc-capability.js +53 -0
  60. package/dist/cc-orchestrator/codex-session-discovery.d.ts +24 -0
  61. package/dist/cc-orchestrator/codex-session-discovery.js +191 -0
  62. package/dist/cc-orchestrator/codex-session-history.d.ts +25 -0
  63. package/dist/cc-orchestrator/codex-session-history.js +187 -0
  64. package/dist/cc-orchestrator/external-agent-changes.d.ts +19 -0
  65. package/dist/cc-orchestrator/external-agent-changes.js +214 -0
  66. package/dist/cc-orchestrator/external-agent-driver.d.ts +18 -0
  67. package/dist/cc-orchestrator/external-agent-driver.js +69 -0
  68. package/dist/cc-orchestrator/index.d.ts +8 -0
  69. package/dist/cc-orchestrator/index.js +8 -0
  70. package/dist/cc-orchestrator/relevance-judge.d.ts +15 -0
  71. package/dist/cc-orchestrator/relevance-judge.js +29 -0
  72. package/dist/cc-orchestrator/session-discovery.d.ts +46 -0
  73. package/dist/cc-orchestrator/session-discovery.js +125 -0
  74. package/dist/cc-orchestrator/session-history.d.ts +19 -0
  75. package/dist/cc-orchestrator/session-history.js +67 -0
  76. package/dist/cli/agent-server-stdio.d.ts +26 -1
  77. package/dist/cli/agent-server-stdio.js +221 -28
  78. package/dist/cli/agent-server-tcp.d.ts +20 -0
  79. package/dist/cli/agent-server-tcp.js +134 -0
  80. package/dist/cli/graceful-shutdown.d.ts +27 -0
  81. package/dist/cli/graceful-shutdown.js +30 -0
  82. package/dist/context/compaction.d.ts +56 -0
  83. package/dist/context/compaction.js +209 -15
  84. package/dist/context/manager.d.ts +0 -20
  85. package/dist/context/manager.js +25 -41
  86. package/dist/cost-tracker.js +5 -61
  87. package/dist/credentials/cipher.d.ts +49 -0
  88. package/dist/credentials/cipher.js +45 -0
  89. package/dist/credentials/cookie-jar.d.ts +24 -0
  90. package/dist/credentials/cookie-jar.js +40 -0
  91. package/dist/credentials/index.d.ts +7 -0
  92. package/dist/credentials/index.js +5 -0
  93. package/dist/credentials/inject-credential-tool.d.ts +20 -0
  94. package/dist/credentials/inject-credential-tool.js +130 -0
  95. package/dist/credentials/store.d.ts +72 -0
  96. package/dist/credentials/store.js +184 -0
  97. package/dist/credentials/types.d.ts +56 -0
  98. package/dist/credentials/use-credential-tool.d.ts +29 -0
  99. package/dist/credentials/use-credential-tool.js +205 -0
  100. package/dist/credentials/use-gate.d.ts +56 -0
  101. package/dist/credentials/use-gate.js +52 -0
  102. package/dist/cron/cron-runtime.d.ts +2 -0
  103. package/dist/cron/cron-runtime.js +2 -0
  104. package/dist/cron/cron-store.d.ts +2 -0
  105. package/dist/cron/cron-store.js +2 -0
  106. package/dist/cron/scheduler.d.ts +5 -32
  107. package/dist/cron/scheduler.js +5 -113
  108. package/dist/data/model-metadata.d.ts +77 -0
  109. package/dist/data/model-metadata.js +56 -0
  110. package/dist/data/model-metadata.json +216 -0
  111. package/dist/data/openrouter-models.d.ts +18 -7
  112. package/dist/data/openrouter-models.js +35 -8
  113. package/dist/data/openrouter-sync.js +1 -1
  114. package/dist/engine/aux-key.d.ts +10 -0
  115. package/dist/engine/aux-key.js +11 -0
  116. package/dist/engine/dynamic-tool-defs.d.ts +19 -0
  117. package/dist/engine/dynamic-tool-defs.js +36 -0
  118. package/dist/engine/engine.d.ts +431 -108
  119. package/dist/engine/engine.js +1630 -279
  120. package/dist/engine/friendly-error.d.ts +18 -0
  121. package/dist/engine/friendly-error.js +63 -0
  122. package/dist/engine/goal.d.ts +187 -0
  123. package/dist/engine/goal.js +196 -0
  124. package/dist/engine/image-compression.d.ts +81 -0
  125. package/dist/engine/image-compression.js +186 -0
  126. package/dist/engine/image-policy.d.ts +165 -0
  127. package/dist/engine/image-policy.js +189 -0
  128. package/dist/engine/model-connections-pool.d.ts +17 -0
  129. package/dist/engine/model-connections-pool.js +66 -0
  130. package/dist/engine/model-facade.d.ts +10 -0
  131. package/dist/engine/model-facade.js +25 -0
  132. package/dist/engine/patch-orphaned-tools.js +3 -0
  133. package/dist/engine/reactive-threshold.d.ts +13 -0
  134. package/dist/engine/reactive-threshold.js +17 -0
  135. package/dist/engine/resolve-llm-config.d.ts +16 -0
  136. package/dist/engine/resolve-llm-config.js +44 -0
  137. package/dist/engine/runtime.js +9 -1
  138. package/dist/engine/sandbox-cache-key.d.ts +10 -0
  139. package/dist/engine/sandbox-cache-key.js +9 -0
  140. package/dist/engine/sandbox-config.d.ts +31 -0
  141. package/dist/engine/sandbox-config.js +38 -0
  142. package/dist/engine/session-title.d.ts +13 -0
  143. package/dist/engine/session-title.js +34 -0
  144. package/dist/engine/session-usage.d.ts +19 -0
  145. package/dist/engine/session-usage.js +25 -0
  146. package/dist/engine/steer-queue.d.ts +32 -0
  147. package/dist/engine/steer-queue.js +26 -0
  148. package/dist/engine/streaming-tool-queue.d.ts +12 -0
  149. package/dist/engine/streaming-tool-queue.js +50 -10
  150. package/dist/engine/turn-loop.d.ts +94 -9
  151. package/dist/engine/turn-loop.js +775 -342
  152. package/dist/engine/types.d.ts +175 -0
  153. package/dist/engine/types.js +13 -0
  154. package/dist/external-agents/config.d.ts +2 -0
  155. package/dist/external-agents/config.js +15 -0
  156. package/dist/external-agents/types.d.ts +31 -0
  157. package/dist/external-agents/types.js +1 -0
  158. package/dist/git/parse-log.d.ts +13 -0
  159. package/dist/git/parse-log.js +21 -0
  160. package/dist/git/utils.d.ts +8 -6
  161. package/dist/git/utils.js +62 -26
  162. package/dist/git/worktree.d.ts +48 -0
  163. package/dist/git/worktree.js +111 -20
  164. package/dist/hooks/events.d.ts +23 -1
  165. package/dist/hooks/goal-stop-hook.d.ts +58 -0
  166. package/dist/hooks/goal-stop-hook.js +279 -0
  167. package/dist/hooks/hook-output.d.ts +33 -0
  168. package/dist/hooks/hook-output.js +79 -0
  169. package/dist/hooks/registry.d.ts +15 -0
  170. package/dist/hooks/registry.js +57 -1
  171. package/dist/hooks/shell-runner.d.ts +2 -0
  172. package/dist/hooks/shell-runner.js +48 -18
  173. package/dist/index.d.ts +79 -11
  174. package/dist/index.js +89 -6
  175. package/dist/llm/capabilities/param-specs.d.ts +14 -0
  176. package/dist/llm/capabilities/param-specs.js +62 -0
  177. package/dist/llm/capabilities/reasoning-control.d.ts +24 -0
  178. package/dist/llm/capabilities/reasoning-control.js +38 -0
  179. package/dist/llm/capabilities/rules.js +37 -3
  180. package/dist/llm/capabilities/types.d.ts +32 -2
  181. package/dist/llm/clamp-max-tokens.d.ts +11 -0
  182. package/dist/llm/clamp-max-tokens.js +17 -0
  183. package/dist/llm/client-base.d.ts +69 -5
  184. package/dist/llm/client-base.js +185 -25
  185. package/dist/llm/client-factory.d.ts +3 -3
  186. package/dist/llm/client-factory.js +2 -2
  187. package/dist/llm/model-cache.js +4 -2
  188. package/dist/llm/model-pool.d.ts +29 -11
  189. package/dist/llm/model-pool.js +36 -20
  190. package/dist/llm/provider-auth.d.ts +41 -0
  191. package/dist/llm/provider-auth.js +76 -0
  192. package/dist/llm/provider-catalog.d.ts +6 -2
  193. package/dist/llm/providers/anthropic.d.ts +32 -2
  194. package/dist/llm/providers/anthropic.js +207 -18
  195. package/dist/llm/providers/openai.d.ts +47 -2
  196. package/dist/llm/providers/openai.js +478 -71
  197. package/dist/llm/reasoning-setting.d.ts +51 -0
  198. package/dist/llm/reasoning-setting.js +40 -0
  199. package/dist/llm/stop-reason.d.ts +13 -0
  200. package/dist/llm/stop-reason.js +21 -0
  201. package/dist/llm/stream-watchdog.js +5 -1
  202. package/dist/llm/strip-vision.d.ts +32 -0
  203. package/dist/llm/strip-vision.js +94 -0
  204. package/dist/llm/token-counter.js +9 -2
  205. package/dist/llm/types.d.ts +9 -6
  206. package/dist/logging/logger.js +18 -4
  207. package/dist/logging/sanitize-messages.d.ts +10 -0
  208. package/dist/logging/sanitize-messages.js +112 -0
  209. package/dist/lsp/client.js +28 -8
  210. package/dist/lsp/manager.d.ts +1 -1
  211. package/dist/lsp/manager.js +42 -11
  212. package/dist/lsp/root-path.d.ts +9 -0
  213. package/dist/lsp/root-path.js +12 -0
  214. package/dist/model-catalog/builtin.d.ts +12 -0
  215. package/dist/model-catalog/builtin.js +407 -0
  216. package/dist/model-catalog/gen-connections.d.ts +20 -0
  217. package/dist/model-catalog/gen-connections.js +28 -0
  218. package/dist/model-catalog/index.d.ts +41 -0
  219. package/dist/model-catalog/index.js +90 -0
  220. package/dist/model-catalog/params.d.ts +20 -0
  221. package/dist/model-catalog/params.js +45 -0
  222. package/dist/model-catalog/resolve.d.ts +48 -0
  223. package/dist/model-catalog/resolve.js +33 -0
  224. package/dist/model-catalog/save-entry.d.ts +32 -0
  225. package/dist/model-catalog/save-entry.js +104 -0
  226. package/dist/model-catalog/types.d.ts +561 -0
  227. package/dist/model-catalog/types.js +93 -0
  228. package/dist/model-catalog/upsert.d.ts +9 -0
  229. package/dist/model-catalog/upsert.js +8 -0
  230. package/dist/onboarding.d.ts +12 -82
  231. package/dist/onboarding.js +75 -333
  232. package/dist/plugins/gitOps.d.ts +53 -0
  233. package/dist/plugins/gitOps.js +130 -5
  234. package/dist/plugins/installer/checkUpdate.d.ts +16 -0
  235. package/dist/plugins/installer/checkUpdate.js +32 -0
  236. package/dist/plugins/installer/codex/convertAgents.d.ts +7 -0
  237. package/dist/plugins/installer/codex/convertAgents.js +55 -0
  238. package/dist/plugins/installer/codex/convertCommands.d.ts +19 -0
  239. package/dist/plugins/installer/codex/convertCommands.js +46 -0
  240. package/dist/plugins/installer/codex/convertMcp.d.ts +11 -0
  241. package/dist/plugins/installer/codex/convertMcp.js +85 -0
  242. package/dist/plugins/installer/codex/convertSkills.d.ts +12 -0
  243. package/dist/plugins/installer/codex/convertSkills.js +33 -0
  244. package/dist/plugins/installer/detectFormat.d.ts +2 -0
  245. package/dist/plugins/installer/detectFormat.js +6 -0
  246. package/dist/plugins/installer/install.d.ts +7 -0
  247. package/dist/plugins/installer/install.js +123 -0
  248. package/dist/plugins/installer/installFromArchive.d.ts +43 -0
  249. package/dist/plugins/installer/installFromArchive.js +134 -0
  250. package/dist/plugins/installer/installFromSource.d.ts +13 -0
  251. package/dist/plugins/installer/installFromSource.js +51 -0
  252. package/dist/plugins/installer/list.d.ts +9 -0
  253. package/dist/plugins/installer/list.js +30 -0
  254. package/dist/plugins/installer/loadPluginAgents.d.ts +3 -0
  255. package/dist/plugins/installer/loadPluginAgents.js +27 -0
  256. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  257. package/dist/plugins/installer/loadPluginMcp.js +107 -0
  258. package/dist/plugins/installer/parseSource.d.ts +20 -0
  259. package/dist/plugins/installer/parseSource.js +74 -0
  260. package/dist/plugins/installer/paths.d.ts +5 -0
  261. package/dist/plugins/installer/paths.js +25 -0
  262. package/dist/plugins/installer/pruneDisabled.d.ts +24 -0
  263. package/dist/plugins/installer/pruneDisabled.js +73 -0
  264. package/dist/plugins/installer/types.d.ts +52 -0
  265. package/dist/plugins/installer/types.js +28 -0
  266. package/dist/plugins/installer/uninstall.d.ts +2 -0
  267. package/dist/plugins/installer/uninstall.js +18 -0
  268. package/dist/plugins/installer/unzip.d.ts +14 -0
  269. package/dist/plugins/installer/unzip.js +82 -0
  270. package/dist/plugins/installer/update.d.ts +28 -0
  271. package/dist/plugins/installer/update.js +97 -0
  272. package/dist/plugins/loadPluginHooks.d.ts +54 -1
  273. package/dist/plugins/loadPluginHooks.js +83 -1
  274. package/dist/plugins/marketplaceManager.d.ts +15 -1
  275. package/dist/plugins/marketplaceManager.js +58 -4
  276. package/dist/plugins/pluginCommandHook.js +34 -14
  277. package/dist/plugins/pluginContent.d.ts +30 -0
  278. package/dist/plugins/pluginContent.js +83 -0
  279. package/dist/plugins/pluginInstaller.d.ts +34 -0
  280. package/dist/plugins/pluginInstaller.js +168 -35
  281. package/dist/plugins/schemas.js +41 -6
  282. package/dist/plugins/types.d.ts +10 -0
  283. package/dist/preset/index.d.ts +7 -1
  284. package/dist/preset/index.js +112 -6
  285. package/dist/product/types.d.ts +1 -1
  286. package/dist/prompt/composer.d.ts +31 -0
  287. package/dist/prompt/composer.js +95 -25
  288. package/dist/prompt/instruction-scanner.js +5 -3
  289. package/dist/prompt/section-loader.js +1 -0
  290. package/dist/prompt/sections/base.md +1 -0
  291. package/dist/prompt/sections/browser.md +10 -0
  292. package/dist/prompt/sections/coding.md +4 -0
  293. package/dist/prompt/sections/orchestration.md +8 -0
  294. package/dist/protocol/chat-session-manager.d.ts +15 -2
  295. package/dist/protocol/chat-session-manager.js +46 -0
  296. package/dist/protocol/chat-session.d.ts +82 -0
  297. package/dist/protocol/chat-session.js +121 -1
  298. package/dist/protocol/client.d.ts +27 -0
  299. package/dist/protocol/client.js +38 -0
  300. package/dist/protocol/redact.d.ts +50 -0
  301. package/dist/protocol/redact.js +71 -0
  302. package/dist/protocol/server.d.ts +153 -2
  303. package/dist/protocol/server.js +807 -39
  304. package/dist/protocol/tcp-transport.d.ts +45 -0
  305. package/dist/protocol/tcp-transport.js +74 -0
  306. package/dist/protocol/transport.js +3 -2
  307. package/dist/protocol/types.d.ts +69 -0
  308. package/dist/protocol/types.js +22 -0
  309. package/dist/quota/credentials.d.ts +3 -0
  310. package/dist/quota/credentials.js +80 -0
  311. package/dist/quota/index.d.ts +36 -0
  312. package/dist/quota/index.js +155 -0
  313. package/dist/quota/types.d.ts +48 -0
  314. package/dist/quota/types.js +13 -0
  315. package/dist/remote/bridge.d.ts +11 -2
  316. package/dist/remote/bridge.js +61 -33
  317. package/dist/review/review-prompt.d.ts +28 -0
  318. package/dist/review/review-prompt.js +81 -0
  319. package/dist/run/ArtifactTracker.js +5 -4
  320. package/dist/run/EngineRunner.d.ts +27 -1
  321. package/dist/run/EngineRunner.js +46 -8
  322. package/dist/run/FileRunStore.js +40 -11
  323. package/dist/run/RunApprovalBackend.js +25 -5
  324. package/dist/run/RunLock.d.ts +28 -2
  325. package/dist/run/RunLock.js +49 -7
  326. package/dist/run/RunManager.d.ts +12 -0
  327. package/dist/run/RunManager.js +86 -3
  328. package/dist/run/RunQueue.d.ts +1 -0
  329. package/dist/run/RunQueue.js +8 -2
  330. package/dist/run/factory.d.ts +8 -1
  331. package/dist/run/factory.js +1 -0
  332. package/dist/run/index.d.ts +2 -2
  333. package/dist/run/index.js +1 -1
  334. package/dist/run/redirect-target.d.ts +7 -0
  335. package/dist/run/redirect-target.js +13 -0
  336. package/dist/run/types.js +1 -1
  337. package/dist/runtime/background-shell.d.ts +139 -0
  338. package/dist/runtime/background-shell.js +495 -0
  339. package/dist/runtime/output-clean.d.ts +24 -0
  340. package/dist/runtime/output-clean.js +41 -0
  341. package/dist/runtime/ring-file.d.ts +64 -0
  342. package/dist/runtime/ring-file.js +174 -0
  343. package/dist/runtime/safe-spawn.js +15 -34
  344. package/dist/runtime/spawn-common.d.ts +148 -0
  345. package/dist/runtime/spawn-common.js +303 -0
  346. package/dist/runtime/truncate-output.d.ts +22 -0
  347. package/dist/runtime/truncate-output.js +49 -0
  348. package/dist/runtime/utf8-cut.d.ts +11 -0
  349. package/dist/runtime/utf8-cut.js +23 -0
  350. package/dist/services/auto-dream.d.ts +4 -0
  351. package/dist/services/auto-dream.js +26 -26
  352. package/dist/services/browser-open.d.ts +13 -0
  353. package/dist/services/browser-open.js +16 -0
  354. package/dist/services/diagnostics.d.ts +1 -2
  355. package/dist/services/diagnostics.js +12 -7
  356. package/dist/services/dream-consolidation.d.ts +57 -0
  357. package/dist/services/dream-consolidation.js +151 -0
  358. package/dist/services/extract-memories.d.ts +14 -1
  359. package/dist/services/extract-memories.js +45 -6
  360. package/dist/services/memory-orchestrator.d.ts +21 -0
  361. package/dist/services/memory-orchestrator.js +125 -32
  362. package/dist/services/notifier.d.ts +8 -0
  363. package/dist/services/notifier.js +39 -25
  364. package/dist/services/oauth.js +5 -7
  365. package/dist/services/session-memory-sort.d.ts +8 -0
  366. package/dist/services/session-memory-sort.js +9 -0
  367. package/dist/services/session-memory.js +30 -19
  368. package/dist/session/file-history.d.ts +124 -1
  369. package/dist/session/file-history.js +232 -9
  370. package/dist/session/memory.d.ts +116 -2
  371. package/dist/session/memory.js +250 -28
  372. package/dist/session/session-manager.d.ts +63 -1
  373. package/dist/session/session-manager.js +186 -5
  374. package/dist/session/simple-diff.d.ts +23 -0
  375. package/dist/session/simple-diff.js +84 -0
  376. package/dist/session/transcript.d.ts +25 -1
  377. package/dist/session/transcript.js +35 -2
  378. package/dist/session/undo-target.d.ts +67 -0
  379. package/dist/session/undo-target.js +144 -0
  380. package/dist/settings/disk-defaults.d.ts +42 -0
  381. package/dist/settings/disk-defaults.js +33 -0
  382. package/dist/settings/feature-flags.d.ts +64 -0
  383. package/dist/settings/feature-flags.js +61 -0
  384. package/dist/settings/manager.d.ts +101 -1
  385. package/dist/settings/manager.js +345 -15
  386. package/dist/settings/migrate-config.d.ts +45 -0
  387. package/dist/settings/migrate-config.js +125 -0
  388. package/dist/settings/personalization.d.ts +19 -0
  389. package/dist/settings/personalization.js +7 -0
  390. package/dist/settings/schema-export.d.ts +25 -0
  391. package/dist/settings/schema-export.js +38 -0
  392. package/dist/settings/schema.d.ts +1827 -396
  393. package/dist/settings/schema.js +361 -81
  394. package/dist/skills/scanner.d.ts +9 -0
  395. package/dist/skills/scanner.js +30 -2
  396. package/dist/stt/resolve-transcribe.d.ts +31 -0
  397. package/dist/stt/resolve-transcribe.js +108 -0
  398. package/dist/stt/transcribe.d.ts +51 -0
  399. package/dist/stt/transcribe.js +65 -0
  400. package/dist/tool-system/browser-bridge.d.ts +226 -0
  401. package/dist/tool-system/browser-bridge.js +163 -0
  402. package/dist/tool-system/builtin/add-marketplace.d.ts +12 -0
  403. package/dist/tool-system/builtin/add-marketplace.js +76 -0
  404. package/dist/tool-system/builtin/agent-heartbeat.d.ts +49 -0
  405. package/dist/tool-system/builtin/agent-heartbeat.js +89 -0
  406. package/dist/tool-system/builtin/agent-notifications.d.ts +12 -3
  407. package/dist/tool-system/builtin/agent-notifications.js +9 -3
  408. package/dist/tool-system/builtin/agent-output-file.d.ts +38 -0
  409. package/dist/tool-system/builtin/agent-output-file.js +72 -0
  410. package/dist/tool-system/builtin/agent-registry.d.ts +23 -0
  411. package/dist/tool-system/builtin/agent-registry.js +16 -4
  412. package/dist/tool-system/builtin/agent.d.ts +50 -11
  413. package/dist/tool-system/builtin/agent.js +576 -73
  414. package/dist/tool-system/builtin/apply-patch/applier.js +66 -8
  415. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +10 -0
  416. package/dist/tool-system/builtin/apply-patch/backup-targets.js +30 -0
  417. package/dist/tool-system/builtin/apply-patch/index.js +7 -3
  418. package/dist/tool-system/builtin/arena.js +6 -7
  419. package/dist/tool-system/builtin/background-jobs.d.ts +76 -0
  420. package/dist/tool-system/builtin/background-jobs.js +124 -0
  421. package/dist/tool-system/builtin/background-shell-tools.d.ts +20 -0
  422. package/dist/tool-system/builtin/background-shell-tools.js +108 -0
  423. package/dist/tool-system/builtin/background-work.d.ts +67 -0
  424. package/dist/tool-system/builtin/background-work.js +86 -0
  425. package/dist/tool-system/builtin/bash-output-style.d.ts +32 -0
  426. package/dist/tool-system/builtin/bash-output-style.js +40 -0
  427. package/dist/tool-system/builtin/bash.d.ts +5 -2
  428. package/dist/tool-system/builtin/bash.js +98 -62
  429. package/dist/tool-system/builtin/browser-tools.d.ts +33 -0
  430. package/dist/tool-system/builtin/browser-tools.js +312 -0
  431. package/dist/tool-system/builtin/cancel-goal.d.ts +31 -0
  432. package/dist/tool-system/builtin/cancel-goal.js +64 -0
  433. package/dist/tool-system/builtin/check-quota.d.ts +15 -0
  434. package/dist/tool-system/builtin/check-quota.js +34 -0
  435. package/dist/tool-system/builtin/complete-goal.d.ts +25 -0
  436. package/dist/tool-system/builtin/complete-goal.js +45 -0
  437. package/dist/tool-system/builtin/config.js +7 -0
  438. package/dist/tool-system/builtin/cron.d.ts +7 -0
  439. package/dist/tool-system/builtin/cron.js +105 -9
  440. package/dist/tool-system/builtin/drive-claude-code.d.ts +30 -0
  441. package/dist/tool-system/builtin/drive-claude-code.js +157 -0
  442. package/dist/tool-system/builtin/edit-model-catalog.d.ts +3 -0
  443. package/dist/tool-system/builtin/edit-model-catalog.js +94 -0
  444. package/dist/tool-system/builtin/edit.d.ts +2 -1
  445. package/dist/tool-system/builtin/edit.js +21 -12
  446. package/dist/tool-system/builtin/eol.d.ts +29 -0
  447. package/dist/tool-system/builtin/eol.js +37 -0
  448. package/dist/tool-system/builtin/file-cache.d.ts +6 -0
  449. package/dist/tool-system/builtin/file-cache.js +8 -0
  450. package/dist/tool-system/builtin/generate-image.d.ts +60 -0
  451. package/dist/tool-system/builtin/generate-image.js +374 -0
  452. package/dist/tool-system/builtin/generate-video.d.ts +55 -0
  453. package/dist/tool-system/builtin/generate-video.js +361 -0
  454. package/dist/tool-system/builtin/grep.js +6 -2
  455. package/dist/tool-system/builtin/image-providers.d.ts +86 -0
  456. package/dist/tool-system/builtin/image-providers.js +190 -0
  457. package/dist/tool-system/builtin/image-uploader.d.ts +33 -0
  458. package/dist/tool-system/builtin/image-uploader.js +74 -0
  459. package/dist/tool-system/builtin/index.d.ts +24 -1
  460. package/dist/tool-system/builtin/index.js +310 -25
  461. package/dist/tool-system/builtin/mcp-tools.js +23 -3
  462. package/dist/tool-system/builtin/memory.js +45 -7
  463. package/dist/tool-system/builtin/notebook-edit.d.ts +2 -1
  464. package/dist/tool-system/builtin/notebook-edit.js +1 -1
  465. package/dist/tool-system/builtin/powershell.js +4 -1
  466. package/dist/tool-system/builtin/read.d.ts +2 -1
  467. package/dist/tool-system/builtin/read.js +11 -3
  468. package/dist/tool-system/builtin/repl.js +4 -1
  469. package/dist/tool-system/builtin/skill.js +9 -0
  470. package/dist/tool-system/builtin/sleep.js +12 -5
  471. package/dist/tool-system/builtin/task.js +4 -1
  472. package/dist/tool-system/builtin/tool-search.js +25 -7
  473. package/dist/tool-system/builtin/update-automation-memory.d.ts +24 -0
  474. package/dist/tool-system/builtin/update-automation-memory.js +60 -0
  475. package/dist/tool-system/builtin/video-providers.d.ts +154 -0
  476. package/dist/tool-system/builtin/video-providers.js +235 -0
  477. package/dist/tool-system/builtin/view-image.d.ts +18 -0
  478. package/dist/tool-system/builtin/view-image.js +96 -0
  479. package/dist/tool-system/builtin/web-fetch.js +12 -2
  480. package/dist/tool-system/builtin/web-search.d.ts +4 -1
  481. package/dist/tool-system/builtin/web-search.js +57 -10
  482. package/dist/tool-system/builtin/worktree.d.ts +2 -1
  483. package/dist/tool-system/builtin/worktree.js +31 -4
  484. package/dist/tool-system/builtin/write.d.ts +2 -1
  485. package/dist/tool-system/builtin/write.js +1 -1
  486. package/dist/tool-system/context.d.ts +166 -6
  487. package/dist/tool-system/executor.d.ts +3 -2
  488. package/dist/tool-system/executor.js +197 -119
  489. package/dist/tool-system/investigation-guard.d.ts +4 -1
  490. package/dist/tool-system/investigation-guard.js +20 -4
  491. package/dist/tool-system/mcp-manager.d.ts +78 -16
  492. package/dist/tool-system/mcp-manager.js +357 -28
  493. package/dist/tool-system/path-policy.d.ts +99 -0
  494. package/dist/tool-system/path-policy.js +578 -0
  495. package/dist/tool-system/permission.d.ts +36 -1
  496. package/dist/tool-system/permission.js +322 -117
  497. package/dist/tool-system/plan-mode-allowlist.d.ts +32 -0
  498. package/dist/tool-system/plan-mode-allowlist.js +65 -0
  499. package/dist/tool-system/registry.d.ts +1 -0
  500. package/dist/tool-system/registry.js +26 -1
  501. package/dist/tool-system/sandbox/index.d.ts +8 -0
  502. package/dist/tool-system/sandbox/index.js +7 -2
  503. package/dist/tool-system/validate-tool-metadata.d.ts +36 -0
  504. package/dist/tool-system/validate-tool-metadata.js +63 -0
  505. package/dist/tool-system/validation.d.ts +10 -0
  506. package/dist/tool-system/validation.js +16 -3
  507. package/dist/types.d.ts +301 -15
  508. package/dist/updater.js +20 -9
  509. package/dist/utils/envUtils.d.ts +0 -9
  510. package/dist/utils/envUtils.js +3 -28
  511. package/dist/utils/exec.d.ts +40 -0
  512. package/dist/utils/exec.js +144 -0
  513. package/dist/utils/format.js +4 -2
  514. package/dist/utils/json.d.ts +12 -0
  515. package/dist/utils/json.js +92 -0
  516. package/dist/utils/lockfile.js +9 -2
  517. package/dist/utils/theme.d.ts +7 -1
  518. package/dist/utils/theme.js +5 -3
  519. package/dist/utils/toolDisplay.js +0 -1
  520. package/package.json +14 -7
  521. package/dist/agent/coordinator.d.ts +0 -49
  522. package/dist/agent/coordinator.js +0 -77
  523. package/dist/settings/manager.test.js +0 -73
  524. package/dist/tool-system/builtin/remote-trigger.d.ts +0 -6
  525. package/dist/tool-system/builtin/remote-trigger.js +0 -54
  526. package/dist/tool-system/builtin/send-message.d.ts +0 -6
  527. package/dist/tool-system/builtin/send-message.js +0 -47
  528. /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
  }