@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,79 @@
1
+ /**
2
+ * Shared output-handling primitives for hook runners.
3
+ *
4
+ * Two runners spawn child processes that produce HookResult JSON:
5
+ * - hooks/shell-runner.ts (user-configured shell hooks from settings)
6
+ * - plugins/pluginCommandHook.ts (hooks declared by installed plugins)
7
+ *
8
+ * Both need the same defences against:
9
+ * 1. Runaway output (a chatty / malicious handler eating engine RAM).
10
+ * 2. Schema drift (unknown decision values, typo'd top-level keys,
11
+ * non-string messages — silent no-ops are worse than rejections).
12
+ *
13
+ * Keeping the byte cap and validator in one module guarantees the two
14
+ * runners can't accidentally diverge on what counts as "valid".
15
+ */
16
+ /**
17
+ * Cap hook output to avoid runaway logging / OOM. 1 MiB is more than enough
18
+ * for any legitimate HookResult (which is typically < 1 KiB), while still
19
+ * absorbing chatty handlers without truncating their decision/messages
20
+ * payload. Past the cap callers kill the child and treat the hook as failed.
21
+ */
22
+ export const MAX_HOOK_OUTPUT_BYTES = 1024 * 1024;
23
+ /**
24
+ * Permissive runtime check that a parsed object matches HookResult.
25
+ * Rejects unknown decision values, non-string/array fields, and unknown
26
+ * top-level keys (signalling a typo or hostile/garbage payload). Returns
27
+ * a normalized HookResult on success or null on failure — caller treats
28
+ * null the same as "no result, drop it".
29
+ *
30
+ * Exported so a unit test can pin the contract without spawning a shell.
31
+ */
32
+ export function validateHookResult(parsed) {
33
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
34
+ return null;
35
+ const p = parsed;
36
+ const known = new Set([
37
+ "stop",
38
+ "continueSession",
39
+ "data",
40
+ "messages",
41
+ "decision",
42
+ "updatedInput",
43
+ "additionalContext",
44
+ "updatedPrompt",
45
+ ]);
46
+ for (const k of Object.keys(p)) {
47
+ if (!known.has(k))
48
+ return null;
49
+ }
50
+ if ("stop" in p && typeof p.stop !== "boolean")
51
+ return null;
52
+ if ("continueSession" in p && typeof p.continueSession !== "boolean")
53
+ return null;
54
+ if ("data" in p) {
55
+ if (!p.data || typeof p.data !== "object" || Array.isArray(p.data))
56
+ return null;
57
+ }
58
+ if ("messages" in p) {
59
+ if (!Array.isArray(p.messages))
60
+ return null;
61
+ for (const m of p.messages) {
62
+ if (typeof m !== "string")
63
+ return null;
64
+ }
65
+ }
66
+ if ("decision" in p) {
67
+ if (p.decision !== "allow" && p.decision !== "deny" && p.decision !== "ask")
68
+ return null;
69
+ }
70
+ if ("updatedInput" in p) {
71
+ if (!p.updatedInput || typeof p.updatedInput !== "object" || Array.isArray(p.updatedInput))
72
+ return null;
73
+ }
74
+ if ("additionalContext" in p && typeof p.additionalContext !== "string")
75
+ return null;
76
+ if ("updatedPrompt" in p && typeof p.updatedPrompt !== "string")
77
+ return null;
78
+ return p;
79
+ }
@@ -6,6 +6,21 @@ export type HookHandler = (ctx: HookContext) => HookResult | Promise<HookResult>
6
6
  export declare class HookRegistry {
7
7
  private hooks;
8
8
  register(eventName: HookEventName, handler: HookHandler, priority?: number, name?: string): void;
9
+ /**
10
+ * Remove a previously-registered handler by identity. Used for handlers
11
+ * with a run-scoped lifetime (e.g. the per-run GoalStopHook) so they don't
12
+ * leak across subsequent runs on the same long-lived registry. No-op if
13
+ * the handler isn't registered for that event.
14
+ */
15
+ unregister(eventName: HookEventName, handler: HookHandler): void;
16
+ /**
17
+ * Remove every registered hook whose `name` starts with `prefix`, across all
18
+ * events. Used to drop a whole source's hooks by naming convention (e.g.
19
+ * `plugin:` handlers) when that source is reloaded mid-session — so disabling
20
+ * a plugin stops its hooks on the live session, not just on new sessions.
21
+ * Returns the number removed.
22
+ */
23
+ removeByNamePrefix(prefix: string): number;
9
24
  emit(eventName: HookEventName, data?: Record<string, unknown>): Promise<HookResult>;
10
25
  hasHooks(eventName: HookEventName): boolean;
11
26
  clear(eventName?: HookEventName): void;
@@ -1,6 +1,20 @@
1
1
  /**
2
2
  * Hook registry with priority-based chain-of-responsibility execution.
3
3
  */
4
+ // Strictness order for merging hook permission decisions across the chain.
5
+ // Higher = stricter. deny wins over ask wins over allow.
6
+ const DECISION_RANK = { deny: 2, ask: 1, allow: 0 };
7
+ /**
8
+ * Merge two hook decisions, keeping the stricter one. `undefined` (no prior
9
+ * decision) yields the incoming one. Prevents a later handler from relaxing
10
+ * an earlier handler's deny — aligns with the executor's clampHookDecision
11
+ * "downgrades only" rule.
12
+ */
13
+ function stricterDecision(prev, next) {
14
+ if (prev === undefined)
15
+ return next;
16
+ return DECISION_RANK[next] >= DECISION_RANK[prev] ? next : prev;
17
+ }
4
18
  export class HookRegistry {
5
19
  hooks = new Map();
6
20
  register(eventName, handler, priority = 0, name) {
@@ -11,6 +25,41 @@ export class HookRegistry {
11
25
  // Sort by priority descending (highest first)
12
26
  this.hooks.get(eventName).sort((a, b) => b.priority - a.priority);
13
27
  }
28
+ /**
29
+ * Remove a previously-registered handler by identity. Used for handlers
30
+ * with a run-scoped lifetime (e.g. the per-run GoalStopHook) so they don't
31
+ * leak across subsequent runs on the same long-lived registry. No-op if
32
+ * the handler isn't registered for that event.
33
+ */
34
+ unregister(eventName, handler) {
35
+ const list = this.hooks.get(eventName);
36
+ if (!list)
37
+ return;
38
+ const next = list.filter((h) => h.handler !== handler);
39
+ if (next.length === 0)
40
+ this.hooks.delete(eventName);
41
+ else
42
+ this.hooks.set(eventName, next);
43
+ }
44
+ /**
45
+ * Remove every registered hook whose `name` starts with `prefix`, across all
46
+ * events. Used to drop a whole source's hooks by naming convention (e.g.
47
+ * `plugin:` handlers) when that source is reloaded mid-session — so disabling
48
+ * a plugin stops its hooks on the live session, not just on new sessions.
49
+ * Returns the number removed.
50
+ */
51
+ removeByNamePrefix(prefix) {
52
+ let removed = 0;
53
+ for (const [event, list] of this.hooks) {
54
+ const next = list.filter((h) => !(h.name && h.name.startsWith(prefix)));
55
+ removed += list.length - next.length;
56
+ if (next.length === 0)
57
+ this.hooks.delete(event);
58
+ else
59
+ this.hooks.set(event, next);
60
+ }
61
+ return removed;
62
+ }
14
63
  async emit(eventName, data = {}) {
15
64
  const handlers = this.hooks.get(eventName);
16
65
  if (!handlers?.length)
@@ -28,7 +77,10 @@ export class HookRegistry {
28
77
  aggregated.messages = [...(aggregated.messages ?? []), ...result.messages];
29
78
  }
30
79
  if (result.decision) {
31
- aggregated.decision = result.decision;
80
+ // Strictest decision across the chain wins (deny > ask > allow),
81
+ // not last-write-wins. Otherwise a low-priority (later-running)
82
+ // handler could relax a high-priority handler's deny to allow.
83
+ aggregated.decision = stricterDecision(aggregated.decision, result.decision);
32
84
  }
33
85
  // Last-write-wins for input/prompt rewrites — the priority order
34
86
  // already determined which handler "owns" the override.
@@ -45,6 +97,10 @@ export class HookRegistry {
45
97
  ? `${aggregated.additionalContext}\n\n${result.additionalContext}`
46
98
  : result.additionalContext;
47
99
  }
100
+ // on_stop: any handler asking to continue blocks termination.
101
+ if (result.continueSession) {
102
+ aggregated.continueSession = true;
103
+ }
48
104
  if (result.stop) {
49
105
  aggregated.stop = true;
50
106
  break;
@@ -30,6 +30,8 @@
30
30
  */
31
31
  import type { HookContext, HookResult } from "./events.js";
32
32
  import type { SettingsHookConfig } from "../types.js";
33
+ import { validateHookResult } from "./hook-output.js";
34
+ export { validateHookResult };
33
35
  /**
34
36
  * Run one shell-hook command and return the parsed HookResult. Catches
35
37
  * every failure mode (spawn error, timeout, malformed JSON) and
@@ -29,6 +29,11 @@
29
29
  * On timeout we SIGTERM then SIGKILL, log, and return {}.
30
30
  */
31
31
  import { spawn } from "node:child_process";
32
+ import { MAX_HOOK_OUTPUT_BYTES, validateHookResult } from "./hook-output.js";
33
+ import { killChildTree } from "../runtime/spawn-common.js";
34
+ // Re-export so existing call sites that import { validateHookResult } from
35
+ // "./shell-runner.js" (e.g. tests) keep compiling.
36
+ export { validateHookResult };
32
37
  const DEFAULT_TIMEOUT_MS = 60_000;
33
38
  /**
34
39
  * Run one shell-hook command and return the parsed HookResult. Catches
@@ -68,28 +73,44 @@ export async function runShellHook(config, ctx) {
68
73
  const timer = setTimeout(() => {
69
74
  // eslint-disable-next-line no-console
70
75
  console.warn(`[hooks] ${config.event} hook timed out after ${timeoutMs}ms: ${config.command}`);
71
- try {
72
- child.kill("SIGTERM");
73
- // SIGKILL fallback if the process ignores SIGTERM. Short delay so
74
- // a graceful-shutdown handler in the child has a moment to flush.
75
- setTimeout(() => {
76
- try {
77
- child.kill("SIGKILL");
78
- }
79
- catch {
80
- /* already exited */
81
- }
82
- }, 1000);
83
- }
84
- catch {
85
- /* already exited */
86
- }
76
+ // win32: taskkill /T reaps the shell tree; POSIX: SIGTERM → grace →
77
+ // SIGKILL (a graceful handler gets a moment to flush). See killChildTree.
78
+ killChildTree(child, 1000);
87
79
  settle({});
88
80
  }, timeoutMs);
81
+ // Byte cap: once we cross MAX_HOOK_OUTPUT_BYTES on stdout, kill the
82
+ // child and surface a 'cap exceeded' failure. A misbehaving handler
83
+ // can otherwise hold the engine memory hostage while we accumulate
84
+ // its output. Stderr is also capped but treated more leniently —
85
+ // truncated, not fatal — since stderr is just diagnostic chatter.
86
+ let stdoutBytes = 0;
87
+ let stderrBytes = 0;
88
+ let stdoutCapped = false;
89
+ let stderrCapped = false;
89
90
  child.stdout?.on("data", (chunk) => {
91
+ stdoutBytes += chunk.length;
92
+ if (stdoutBytes > MAX_HOOK_OUTPUT_BYTES) {
93
+ if (!stdoutCapped) {
94
+ stdoutCapped = true;
95
+ // eslint-disable-next-line no-console
96
+ console.warn(`[hooks] ${config.event} hook stdout exceeded ${MAX_HOOK_OUTPUT_BYTES} bytes — killing`);
97
+ killChildTree(child, 1000);
98
+ }
99
+ return;
100
+ }
90
101
  stdout += chunk.toString("utf8");
91
102
  });
92
103
  child.stderr?.on("data", (chunk) => {
104
+ // Count raw bytes (not decoded string length) so multibyte UTF-8 output
105
+ // can't slip past the cap — matches the stdout accounting above.
106
+ stderrBytes += chunk.length;
107
+ if (stderrBytes > MAX_HOOK_OUTPUT_BYTES) {
108
+ if (!stderrCapped) {
109
+ stderrCapped = true;
110
+ stderr += "\n…[stderr truncated]";
111
+ }
112
+ return;
113
+ }
93
114
  stderr += chunk.toString("utf8");
94
115
  });
95
116
  child.on("error", (err) => {
@@ -100,6 +121,12 @@ export async function runShellHook(config, ctx) {
100
121
  });
101
122
  child.on("close", (code) => {
102
123
  clearTimeout(timer);
124
+ if (stdoutCapped) {
125
+ // eslint-disable-next-line no-console
126
+ console.error(`[hooks] ${config.event} hook killed due to oversized stdout (> ${MAX_HOOK_OUTPUT_BYTES} bytes)`);
127
+ settle({});
128
+ return;
129
+ }
103
130
  if (code === 0) {
104
131
  const trimmed = stdout.trim();
105
132
  if (trimmed.length === 0) {
@@ -108,10 +135,13 @@ export async function runShellHook(config, ctx) {
108
135
  }
109
136
  try {
110
137
  const parsed = JSON.parse(trimmed);
111
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
112
- settle(parsed);
138
+ const validated = validateHookResult(parsed);
139
+ if (validated) {
140
+ settle(validated);
113
141
  }
114
142
  else {
143
+ // eslint-disable-next-line no-console
144
+ console.warn(`[hooks] ${config.event} hook returned a value that failed HookResult schema, ignoring. stdout:`, trimmed.slice(0, 200));
115
145
  settle({});
116
146
  }
117
147
  }
package/dist/index.d.ts CHANGED
@@ -3,11 +3,15 @@
3
3
  *
4
4
  * Public API exports.
5
5
  */
6
- export declare const VERSION = "0.5.0-rc.0";
7
- export type { Message, ContentBlock, ToolDefinition, ToolCall, ToolResult, RegisteredTool, TranscriptEvent, TranscriptEventType, SessionState, SessionStatus, TokenUsage, CompiledInput, PermissionDecision, PermissionMode, PermissionRule, TurnPhase, TurnResult, TerminalReason, StreamEvent, StreamCallback, LLMConfig, LLMResponse, Settings, MCPServerConfig, } from "./types.js";
6
+ export declare const VERSION = "0.5.0-rc.2";
7
+ export type { Message, ContentBlock, ToolDefinition, ToolCall, ToolResult, RegisteredTool, TranscriptEvent, TranscriptEventType, SessionState, SessionStatus, TokenUsage, CompiledInput, PermissionDecision, PermissionMode, PermissionRule, TurnPhase, TurnResult, TerminalReason, StreamEvent, StreamCallback, LLMConfig, ClientDefaults, LLMResponse, Settings, MCPServerConfig, } from "./types.js";
8
8
  export { FrameworkError, LLMError, LLMRateLimitError, ContextLimitError, ToolError, ToolNotFoundError, ToolExecutionError, ToolTimeoutError, PermissionDeniedError, SessionError, TranscriptError, ConfigError, SandboxUnavailableError, } from "./exceptions.js";
9
- export { Engine } from "./engine/engine.js";
10
- export type { EngineConfig, EngineHookConfig, EngineResult } from "./engine/engine.js";
9
+ export { Engine, loadAgentDefinitionsForCwd } from "./engine/engine.js";
10
+ export type { EngineConfig, EngineHookConfig, EngineResult } from "./engine/types.js";
11
+ export { resolveLLMConfigForTag } from "./engine/resolve-llm-config.js";
12
+ export { resolveAuxKey } from "./engine/aux-key.js";
13
+ export { parseAgentDefinition, serializeAgentDefinition, type AgentDefinition, } from "./agent/agent-definition.js";
14
+ export { AgentDefinitionRegistry, type AgentSourceDir, } from "./agent/agent-definition-registry.js";
11
15
  export type { CostStateStore, CostStateSnapshot } from "./engine/cost-store.js";
12
16
  export { EngineRuntime } from "./engine/runtime.js";
13
17
  export type { EngineRuntimeOptions } from "./engine/runtime.js";
@@ -18,12 +22,15 @@ export { createLLMClient, registerProvider } from "./llm/client-factory.js";
18
22
  export { AnthropicClient } from "./llm/providers/anthropic.js";
19
23
  export { OpenAIClient } from "./llm/providers/openai.js";
20
24
  export { ModelPool, type ModelEntry } from "./llm/model-pool.js";
25
+ export { modelEntriesFromConnections } from "./engine/model-connections-pool.js";
21
26
  export { ToolRegistry } from "./tool-system/registry.js";
22
27
  export { ToolExecutor } from "./tool-system/executor.js";
23
28
  export { PermissionClassifier, HeadlessApprovalBackend, AutoApprovalBackend } from "./tool-system/permission.js";
24
29
  export type { ApprovalBackend } from "./tool-system/permission.js";
25
30
  export { BUILTIN_TOOLS } from "./tool-system/builtin/index.js";
26
- export { MCPManager } from "./tool-system/mcp-manager.js";
31
+ export type { BuiltinTool, BuiltinToolFn } from "./tool-system/builtin/index.js";
32
+ export { makeUpdateAutomationMemoryTool } from "./tool-system/builtin/update-automation-memory.js";
33
+ export { MCPManager, buildHttpHeaders, buildStdioEnv } from "./tool-system/mcp-manager.js";
27
34
  export type { AskUserFn } from "./tool-system/builtin/ask-user.js";
28
35
  export type { Task, TaskStatus } from "./tool-system/builtin/task.js";
29
36
  export { HookRegistry } from "./hooks/registry.js";
@@ -32,14 +39,18 @@ export { wrapHookMessages } from "./hooks/inject.js";
32
39
  export { AgentServer, type AgentServerOptions } from "./protocol/server.js";
33
40
  export { AgentClient, type BackgroundAgentCompletedHandler } from "./protocol/client.js";
34
41
  export { createInProcessTransport, StdioTransport, type Transport, } from "./protocol/transport.js";
42
+ export { SocketTransport, listenTcp, type TcpListenResult, } from "./protocol/tcp-transport.js";
35
43
  export { createServer, createClient, type CreateServerOptions, type CreateClientOptions, type ServerHandle, } from "./protocol/factories.js";
36
44
  export { Methods, ErrorCodes, type RpcMessage, type RunResult, } from "./protocol/types.js";
37
45
  export { Transcript } from "./session/transcript.js";
38
46
  export { SessionManager } from "./session/session-manager.js";
39
47
  export { FileHistory } from "./session/file-history.js";
48
+ export { latestUndoTarget, earliestSnapshotsPerFile, latestTurnUndoTargets, latestRedoTargets, } from "./session/undo-target.js";
49
+ export { diffLines, renderDiffPreview, type DiffLine } from "./session/simple-diff.js";
40
50
  export { MemoryManager } from "./session/memory.js";
41
- export type { MemoryEntry } from "./session/memory.js";
42
- export type { FileSnapshot } from "./session/file-history.js";
51
+ export type { MemoryEntry, MemoryScope } from "./session/memory.js";
52
+ export { runDreamConsolidation, type DreamConsolidationInput, type DreamConsolidationResult, } from "./services/dream-consolidation.js";
53
+ export type { FileSnapshot, RedoRecord } from "./session/file-history.js";
43
54
  export { PromptComposer } from "./prompt/composer.js";
44
55
  export { SectionCache } from "./prompt/section-cache.js";
45
56
  export { scanInstructions, combineInstructions } from "./prompt/instruction-scanner.js";
@@ -54,6 +65,26 @@ export { applyToolResultPersistence, createContentReplacementState, reconstructC
54
65
  export type { ContentReplacementState } from "./context/tool-result-storage.js";
55
66
  export { scanSkills, invalidateSkillCache } from "./skills/index.js";
56
67
  export type { SkillDefinition } from "./skills/index.js";
68
+ export { CapabilityService, CapabilityNotFoundError, projectBuiltin, projectMcp, projectSkills, projectPlugins, } from "./capability-control/index.js";
69
+ export type { CapabilityServiceDeps, CapabilityDescriptor, CapabilityControl, } from "./capability-control/index.js";
70
+ export { readInstalledPlugins } from "./plugins/installedPlugins.js";
71
+ export { computeEffectiveDisabledLists, type EffectiveDisabledLists, } from "./capability-control/disabled-lists.js";
72
+ export type { InstalledPluginsV2 } from "./plugins/types.js";
73
+ export { installPluginFromPath } from "./plugins/installer/install.js";
74
+ export { installPluginFromSource } from "./plugins/installer/installFromSource.js";
75
+ export { installLocalPlugin, installPluginFromArchive, } from "./plugins/installer/installFromArchive.js";
76
+ export { parseSource, type ParsedSource } from "./plugins/installer/parseSource.js";
77
+ export { detectPluginFormat } from "./plugins/installer/detectFormat.js";
78
+ export { CodexPluginManifest, CSMeta, PluginInstallError, } from "./plugins/installer/types.js";
79
+ export { mergePluginMcpServers } from "./plugins/installer/loadPluginMcp.js";
80
+ export { listPluginHooks, pluginHookKey, type PluginHookEntry } from "./plugins/loadPluginHooks.js";
81
+ export { describePluginContent, type PluginContentInventory } from "./plugins/pluginContent.js";
82
+ export { pluginAgentDirs } from "./plugins/installer/loadPluginAgents.js";
83
+ export { appendInstallEntry, pluginInstallKey, removeInstallEntries, } from "./plugins/installedPlugins.js";
84
+ export { uninstallPluginByName } from "./plugins/installer/uninstall.js";
85
+ export { listInstalledPlugins, type PluginListRow } from "./plugins/installer/list.js";
86
+ export { updatePluginByName, type UpdateResult } from "./plugins/installer/update.js";
87
+ export { checkPluginUpdate, type UpdateCheck } from "./plugins/installer/checkUpdate.js";
57
88
  export { Arena } from "./arena/arena.js";
58
89
  export { MODEL_PRESETS, getMaxOutputTokens } from "./arena/model-presets.js";
59
90
  export type { ModelPreset } from "./arena/model-presets.js";
@@ -69,24 +100,34 @@ export { transitionClaim, resolveClaimStatus, markUnderReview, applyReviewResult
69
100
  export type { ArenaConfig, ArenaMode, ArenaResultV2, ArenaStrategy, ArenaParticipant, ArenaBaseContext, ArenaFinding, FindingReview, ParticipantReport, ArenaConsensus, ArenaConsensusItem, ArenaRoadmapPhase, ArenaProgressEvent, ArenaPlan, ArenaLens, ArenaLensName, ArenaSourceKind, ArenaArtifact, ArenaQuickFact, FindingKind, PeerVerdict, ToolTrace, EvidencePacket, FindingEvidenceLink, ResearchDossier, ClaimStatus, ClaimRecord, ClaimChallenge, ClaimAdjudication, RequestedCheck, DebateRound, DebateTurn, TargetedCheckTask, SharedResearchLedger, RoundResearchDigest, ArenaExecutionLimits, } from "./arena/types.js";
70
101
  export { IterativeArena, defaultIterateConvergence, iterateDiffRatio, iterateCodeFormat, iterateDocumentFormat, getIterateFormat, } from "./arena/index.js";
71
102
  export type { IterateConfig, IterateResult, IterateSubject, IterateFormat, IterateProgressEvent, IterateFormatPack, Draft, DraftCandidate, Critique, CritiqueCategory, CritiqueEvidence, CritiqueSeverity, ConvergenceSignal, Round, AuthorRotation, StoppedReason, CheckpointFn, CheckpointContext, CheckpointAction, } from "./arena/index.js";
72
- export { RunManager, type RunManagerConfig, type RunStore, FileRunStore, RunQueue, EngineRunner, type EngineRunnerConfig, type RunExecutionHandle, type RunExecutor, type CustomToolEntry, RunApprovalBackend, createRunAskUserFn, type RunLifecycleHooks, CheckpointWriter, ArtifactTracker, RunLock, Heartbeat, NoopEvaluator, CompositeEvaluator, type Evaluator, type EvaluatorResult, type EvaluatorContext, type RunStatus, type RunSnapshot, type RunEvent, type RunCheckpoint, type RunApproval, type RunArtifactRef, type SubmitRunInput, type ResumeRunInput, type ListRunsQuery, type RunStreamEvent, type RunStreamCallback, type DetachFn, VALID_TRANSITIONS, createRunManager, type CreateRunManagerOptions, } from "./run/index.js";
103
+ export { RunManager, type RunManagerConfig, type RunStore, FileRunStore, RunQueue, EngineRunner, AUTOMATION_PROMPT_NOTE, AUTOMATION_RUN_SOURCE, type EngineRunnerConfig, type RunExecutionHandle, type RunExecutor, type CustomToolEntry, RunApprovalBackend, createRunAskUserFn, type RunLifecycleHooks, CheckpointWriter, ArtifactTracker, RunLock, type RunLockConfig, type RunLockAcquireResult, Heartbeat, NoopEvaluator, CompositeEvaluator, type Evaluator, type EvaluatorResult, type EvaluatorContext, type RunStatus, type RunSnapshot, type RunEvent, type RunCheckpoint, type RunApproval, type RunArtifactRef, type SubmitRunInput, type ResumeRunInput, type ListRunsQuery, type RunStreamEvent, type RunStreamCallback, type DetachFn, VALID_TRANSITIONS, createRunManager, type CreateRunManagerOptions, } from "./run/index.js";
73
104
  export { defineProduct, type ProductDefinition, type ProductPreset, type ProductAdapter, type ProductContract, type CustomTool, type ProductRuntimeOptions, type ProductInstance, } from "./product/index.js";
74
105
  export { logger } from "./logging/logger.js";
75
106
  export { SettingsManager, type SettingsScope } from "./settings/manager.js";
107
+ export { migrateConfig, configVersionOf, CURRENT_CONFIG_VERSION, type MigrationStep, } from "./settings/migrate-config.js";
76
108
  export { SettingsSchema, validateSettings } from "./settings/schema.js";
109
+ export { settingsJsonSchema, writeSettingsSchemaFile } from "./settings/schema-export.js";
110
+ export { personalizationFrom, type PersonalizationConfig } from "./settings/personalization.js";
111
+ export { CredentialStore, type CredentialScope, type MaskedCredential, type Credential, type CredentialType, type CredentialStoreFile, formatNetscapeCookies, parseCookieJar, type CookieLike, useCredentialToolDef, useCredentialToolDefFor, sweepStaleCredentialCookies, type EncryptionCipher, PlaintextCipher, setDefaultCredentialCipher, getDefaultCredentialCipher, } from "./credentials/index.js";
112
+ /** @internal Shared with the in-repo TUI/desktop hosts; not stable SDK surface. */
77
113
  export { getSessionId, switchSession, getOriginalCwd, setOriginalCwd, getProjectRoot, setProjectRoot, getCwdState, getIsInteractive, updateLastInteractionTime, flushInteractionTime, markScrollActivity, type AttributedCounter, type ChannelEntry, } from "./state.js";
114
+ /** @internal Shared primitives for the in-repo TUI/desktop hosts; not stable SDK surface. */
78
115
  export { getGraphemeSegmenter, firstGrapheme, lastGrapheme, getWordSegmenter, getRelativeTimeFormat, getTimeZone, getSystemLocaleLanguage, } from "./utils/intl.js";
79
116
  export { env } from "./utils/env.js";
80
117
  export { default as sliceAnsi } from "./utils/sliceAnsi.js";
81
118
  export { execFileNoThrow } from "./utils/execFileNoThrow.js";
119
+ export { findExecutable, resolveExecutable, setGitPathOverride, resolveGit, isGitAvailable, } from "./utils/exec.js";
82
120
  export { gte } from "./utils/semver.js";
121
+ export { lock, lockSync, unlock, check } from "./utils/lockfile.js";
83
122
  export { logForDebugging } from "./utils/debug.js";
84
- export { isEnvTruthy, isEnvDefinedFalsy, getClaudeConfigHomeDir, isBareMode, parseEnvVars, shouldMaintainProjectWorkingDir, isRunningOnHomespace, getAWSRegion, getDefaultVertexRegion, getVertexRegionForModel, isInProtectedNamespace, } from "./utils/envUtils.js";
123
+ export { isEnvTruthy, isEnvDefinedFalsy, getClaudeConfigHomeDir, isBareMode, parseEnvVars, shouldMaintainProjectWorkingDir, getAWSRegion, getDefaultVertexRegion, getVertexRegionForModel, } from "./utils/envUtils.js";
85
124
  export { startCapturingEarlyInput, stopCapturingEarlyInput, consumeEarlyInput, hasEarlyInput, seedEarlyInput, isCapturingEarlyInput, } from "./utils/earlyInput.js";
86
125
  export { formatBytes, formatToolArgs, singleLine, MAX_LINE_WIDTH, TOOL_DOT_COLORS, } from "./utils/toolDisplay.js";
126
+ export { classifyBashLines, type BashLineKind, type ClassifiedBashLine, } from "./tool-system/builtin/bash-output-style.js";
87
127
  export { formatDuration, formatTokens } from "./utils/format.js";
88
128
  export { getTheme, type Theme, type ThemeName, type ThemeSetting, } from "./utils/theme.js";
89
129
  export { resolveThemeSetting, type SystemTheme } from "./utils/systemTheme.js";
130
+ /** @internal Host-lifecycle logging hooks for the in-repo TUI/desktop hosts; not stable SDK surface. */
90
131
  export { rotateLogs } from "./logging/logger.js";
91
132
  export { recordUIEvent } from "./logging/session-recorder.js";
92
133
  export { CostTracker, costTracker, installCostTracking } from "./cost-tracker.js";
@@ -94,24 +135,51 @@ export { NOOP_COLORIZER, type Colorizer } from "./colorizer.js";
94
135
  export { hasApiKey, resolveApiKey, appendOnboardingResult, detectEnvKeys, saveArenaSettingsByKeys, type OnboardingResult, } from "./onboarding.js";
95
136
  export { getCurrentVersion, checkForUpdate, scheduleAutoInstallOnExit, getUpdateAvailable, getAutoUpdateDisabledReason, type UpdateInfo, } from "./updater.js";
96
137
  export { isGitRepo, getCurrentBranch, getGitStatus, getGitDiff, getGitDiffStat, getGitLog, gitAdd, gitCommit, gitListBranches, gitCheckout, ghAvailable, ghPrComments, } from "./git/utils.js";
138
+ export { buildReviewPrompt, parseDimensions, ALL_DIMENSIONS, type ReviewDimension, type ReviewPromptOptions, } from "./review/review-prompt.js";
139
+ /**
140
+ * @internal Exports below are consumed by the in-repo TUI/desktop hosts, not
141
+ * part of the stable `@cjhyy/code-shell-core` SDK surface. They may change or
142
+ * move to a `/tui` subpath without a major bump. External SDK users: prefer the
143
+ * primary Engine/Protocol API above.
144
+ */
97
145
  export { getInteractiveApprovalBackend } from "./tool-system/permission.js";
98
146
  export { defaultSandboxConfig, type SandboxConfig, } from "./tool-system/sandbox/index.js";
99
- export { buildNotificationMessage, buildNotificationSummary, notificationQueue, agentNotificationBus, notificationItemToStreamEvent, } from "./tool-system/builtin/agent-notifications.js";
147
+ export { buildNotificationMessage, buildNotificationSummary, notificationQueue, agentNotificationBus, notificationItemToStreamEvent, type NotificationItem, } from "./tool-system/builtin/agent-notifications.js";
100
148
  export type { BackgroundAgentCompletedEvent } from "./types.js";
149
+ export { startAutomation, type StartAutomationDeps, type AutomationHandle, CronScheduler, cronScheduler, type CronJob, type CronPermissionLevel, type CreateJobOptions, type UpdateJobPatch, CronStore, defaultCronStorePath, bindCronToEngine, bindCronToRunManager, type CronRunner, type CronRunRequest, type CronRunResult, type RunSubmitter, isCronExpression, parseCronExpression, nextCronTime, type ParsedCron, resolveWritePolicy, wrapUntrustedInput, type WritePolicy, runWriteJobInWorktree, type WriteJobGitOps, type RunWriteJobInput, type RunWriteJobResult, } from "./automation/index.js";
150
+ export * from "./cc-orchestrator/index.js";
151
+ export { checkQuota, formatQuota } from "./quota/index.js";
152
+ export { resolveQuotaCredentials } from "./quota/credentials.js";
153
+ export type { QuotaResult, ProviderQuota, QuotaWindow, QuotaCredentials } from "./quota/types.js";
101
154
  export { asyncAgentRegistry, type AsyncAgentEntry, } from "./tool-system/builtin/agent-registry.js";
155
+ export { backgroundShellManager, BackgroundShellManager, type BgShell, type BgShellStatus, } from "./runtime/background-shell.js";
156
+ export { getImageProvider, DEFAULT_IMAGE_MODEL, type ImageProvider, type ImageProviderCreds, type ImageGenerateRequest, type ImageGenerateResult, } from "./tool-system/builtin/image-providers.js";
157
+ export { transcribe, type TranscribeCreds, type TranscribeRequest, type TranscribeResult, } from "./stt/transcribe.js";
158
+ export { resolveTranscribeProvider, isTranscribeAvailable, describeTranscribe, type ResolvedTranscribeProvider, type TranscribeDescription, } from "./stt/resolve-transcribe.js";
159
+ export { BUILTIN_CATALOG, getMergedCatalog, loadUserCatalog, userCatalogPath, findCatalogEntry, saveCatalogEntry, deleteUserCatalogEntry, catalogEntryOrigins, type CatalogEntry, } from "./model-catalog/index.js";
160
+ /** @internal Extended protocol surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
102
161
  export { createInProcessClient } from "./protocol/helpers.js";
103
162
  export type { ProtocolModelEntry } from "./protocol/types.js";
163
+ /** @internal Extended Arena surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
104
164
  export { formatArenaResult, printArenaResult, renderProgress, createProgressRenderer, type OutputSink, } from "./arena/render/terminal.js";
105
165
  export { formatArenaResultForSession } from "./arena/render/session.js";
106
166
  export { installPlugin, uninstallPlugin, listInstalled, } from "./plugins/pluginInstaller.js";
107
- export { addMarketplace, removeMarketplace, listMarketplaces, } from "./plugins/marketplaceManager.js";
167
+ export { addMarketplace, refreshMarketplace, removeMarketplace, listMarketplaces, loadMarketplace, } from "./plugins/marketplaceManager.js";
108
168
  export { parseMarketplaceInput, deriveMarketplaceName, } from "./plugins/parseMarketplaceInput.js";
109
169
  export { scanPluginCommands, type PluginCommand, } from "./plugins/pluginCommandsLoader.js";
170
+ /** @internal Extended LLM surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
110
171
  export { type CachedModel, defaultCacheDir, } from "./llm/model-cache.js";
111
172
  export { fetchModelList, type FetchResult, } from "./llm/model-fetcher.js";
112
173
  export { sanitizeApiKey, hasNonAsciiPrintable, } from "./llm/api-key-sanitize.js";
113
174
  export { PROVIDER_KINDS, type ProviderKindName, } from "./llm/provider-kinds.js";
114
175
  export { capabilitiesFor, type Capability, } from "./llm/capabilities/index.js";
176
+ export { reasoningControlFor, type ReasoningControl, } from "./llm/capabilities/reasoning-control.js";
177
+ export { REASONING_EFFORTS, type ReasoningSetting, } from "./llm/reasoning-setting.js";
115
178
  export { type ProviderConfig } from "./llm/provider-catalog.js";
116
179
  export { syncOpenRouterCatalog, getOpenRouterSnapshot, } from "./data/openrouter-sync.js";
180
+ /** @internal Extended type surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
117
181
  export type { ApprovalRequest, ApprovalResult, ApprovalScope, TaskInfo, } from "./types.js";
182
+ export { resolveExternalAgentConfig } from "./external-agents/config.js";
183
+ export type { ExternalAgentMode, ExternalAgentsSettings, ResolvedExternalAgentsConfig, ResolvedClaudeCodeSettings, ResolvedCodexSettings, } from "./external-agents/types.js";
184
+ export { flattenAxTree, renderElementList, cleanPageText, CONTENT_CHAR_CAP, buildExtractLinksScript, EXTRACT_LINK_CAP, } from "./tool-system/browser-bridge.js";
185
+ export type { BrowserBridge, BrowserElement, BrowserSnapshot, BrowserResult, BrowserContent, BrowserExtract, BrowserLink, BrowserImage, BrowserVideo, BrowserImageData, BrowserTab, AXNode, } from "./tool-system/browser-bridge.js";