@cjhyy/code-shell-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/README.md +36 -23
  2. package/dist/agent/agent-definition-registry.d.ts +2 -2
  3. package/dist/agent/agent-definition-registry.js +47 -10
  4. package/dist/agent/agent-definition.d.ts +5 -0
  5. package/dist/agent/agent-definition.js +14 -0
  6. package/dist/automation/index.d.ts +7 -4
  7. package/dist/automation/index.js +4 -2
  8. package/dist/automation/runner.js +3 -1
  9. package/dist/automation/scheduler.d.ts +57 -1
  10. package/dist/automation/scheduler.js +123 -23
  11. package/dist/automation/store.d.ts +6 -2
  12. package/dist/automation/store.js +7 -3
  13. package/dist/capabilities/index.d.ts +109 -0
  14. package/dist/capabilities/index.js +80 -0
  15. package/dist/capability-control/disabled-lists.d.ts +2 -1
  16. package/dist/capability-control/disabled-lists.js +3 -5
  17. package/dist/capability-control/overlay.d.ts +14 -1
  18. package/dist/capability-control/overlay.js +40 -0
  19. package/dist/capability-control/service.js +6 -4
  20. package/dist/cli/agent-server-stdio.d.ts +1 -1
  21. package/dist/cli/agent-server-stdio.js +66 -6
  22. package/dist/cli/agent-server-tcp.js +20 -5
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +20 -4
  26. package/dist/context/manager.js +42 -7
  27. package/dist/context/token-counter.js +5 -3
  28. package/dist/context/tool-result-storage.d.ts +6 -0
  29. package/dist/context/tool-result-storage.js +25 -4
  30. package/dist/credentials/access.d.ts +13 -2
  31. package/dist/credentials/access.js +99 -4
  32. package/dist/credentials/index.d.ts +3 -2
  33. package/dist/credentials/index.js +2 -1
  34. package/dist/credentials/oauth.d.ts +9 -1
  35. package/dist/credentials/oauth.js +80 -1
  36. package/dist/credentials/store.d.ts +16 -2
  37. package/dist/credentials/store.js +33 -11
  38. package/dist/credentials/types.d.ts +62 -1
  39. package/dist/credentials/types.js +16 -1
  40. package/dist/credentials/use-credential-tool.js +15 -1
  41. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  42. package/dist/engine/auxiliary-pipeline.js +181 -0
  43. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  44. package/dist/{settings → engine}/disk-defaults.js +5 -2
  45. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  46. package/dist/engine/dynamic-tool-defs.js +4 -0
  47. package/dist/engine/engine.d.ts +272 -184
  48. package/dist/engine/engine.js +1869 -1864
  49. package/dist/engine/file-history-hook.d.ts +11 -0
  50. package/dist/engine/file-history-hook.js +31 -0
  51. package/dist/engine/goal-judge-context.d.ts +9 -0
  52. package/dist/engine/goal-judge-context.js +234 -0
  53. package/dist/engine/injected-context-cache.d.ts +6 -0
  54. package/dist/engine/injected-context-cache.js +13 -0
  55. package/dist/engine/input-attachments.d.ts +1 -1
  56. package/dist/engine/model-facade.d.ts +3 -3
  57. package/dist/engine/model-facade.js +15 -14
  58. package/dist/engine/permission-controller.d.ts +55 -0
  59. package/dist/engine/permission-controller.js +148 -0
  60. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  61. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  62. package/dist/engine/run-accounting.d.ts +41 -0
  63. package/dist/engine/run-accounting.js +126 -0
  64. package/dist/engine/run-context.d.ts +44 -0
  65. package/dist/engine/run-context.js +88 -0
  66. package/dist/engine/run-environment.d.ts +30 -0
  67. package/dist/engine/run-environment.js +77 -0
  68. package/dist/engine/run-finalize.d.ts +58 -0
  69. package/dist/engine/run-finalize.js +245 -0
  70. package/dist/engine/run-goal.d.ts +58 -0
  71. package/dist/engine/run-goal.js +188 -0
  72. package/dist/engine/run-image-input.d.ts +1 -1
  73. package/dist/engine/run-image-input.js +5 -3
  74. package/dist/engine/run-session-open.d.ts +41 -0
  75. package/dist/engine/run-session-open.js +186 -0
  76. package/dist/engine/run-setup.d.ts +42 -0
  77. package/dist/engine/run-setup.js +58 -0
  78. package/dist/engine/run-tooling.d.ts +125 -0
  79. package/dist/engine/run-tooling.js +283 -0
  80. package/dist/engine/run-types.d.ts +139 -0
  81. package/dist/engine/run-types.js +12 -0
  82. package/dist/engine/run-workspace.d.ts +50 -0
  83. package/dist/engine/run-workspace.js +114 -0
  84. package/dist/engine/session-title.d.ts +2 -1
  85. package/dist/engine/session-title.js +4 -1
  86. package/dist/engine/steer-queue.d.ts +1 -1
  87. package/dist/engine/subagent-spawner.d.ts +32 -0
  88. package/dist/engine/subagent-spawner.js +287 -0
  89. package/dist/engine/tool-summary.d.ts +2 -2
  90. package/dist/engine/tool-summary.js +2 -2
  91. package/dist/engine/turn-loop.d.ts +67 -10
  92. package/dist/engine/turn-loop.js +538 -97
  93. package/dist/engine/types.d.ts +35 -4
  94. package/dist/engine/types.js +1 -1
  95. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
  96. package/dist/goal/lifecycle.js +482 -0
  97. package/dist/hooks/events.d.ts +26 -9
  98. package/dist/hooks/events.js +0 -3
  99. package/dist/hooks/goal-stop-hook.d.ts +28 -29
  100. package/dist/hooks/goal-stop-hook.js +344 -144
  101. package/dist/hooks/registry.js +4 -1
  102. package/dist/hooks/shell-runner.d.ts +12 -1
  103. package/dist/hooks/shell-runner.js +160 -9
  104. package/dist/index.d.ts +51 -110
  105. package/dist/index.extension.d.ts +51 -0
  106. package/dist/index.extension.js +39 -0
  107. package/dist/index.internal.d.ts +86 -0
  108. package/dist/index.internal.js +92 -0
  109. package/dist/index.js +37 -125
  110. package/dist/links/cli.d.ts +48 -0
  111. package/dist/links/cli.js +617 -0
  112. package/dist/links/http.d.ts +40 -0
  113. package/dist/links/http.js +166 -0
  114. package/dist/links/index.d.ts +4 -0
  115. package/dist/links/index.js +3 -0
  116. package/dist/links/link-action-tool.d.ts +5 -0
  117. package/dist/links/link-action-tool.js +241 -0
  118. package/dist/links/providers.d.ts +8 -0
  119. package/dist/links/providers.js +665 -0
  120. package/dist/links/types.d.ts +44 -0
  121. package/dist/llm/client-base.d.ts +7 -0
  122. package/dist/llm/client-base.js +72 -10
  123. package/dist/llm/model-pool.d.ts +1 -1
  124. package/dist/llm/model-pool.js +1 -1
  125. package/dist/llm/providers/anthropic.d.ts +1 -0
  126. package/dist/llm/providers/anthropic.js +9 -0
  127. package/dist/llm/providers/openai.d.ts +1 -0
  128. package/dist/llm/providers/openai.js +17 -0
  129. package/dist/llm/types.d.ts +12 -5
  130. package/dist/model-catalog/index.js +15 -2
  131. package/dist/model-catalog/resolve.d.ts +13 -1
  132. package/dist/model-catalog/resolve.js +37 -2
  133. package/dist/model-catalog/types.d.ts +74 -48
  134. package/dist/model-catalog/types.js +16 -5
  135. package/dist/model-catalog/upsert.d.ts +3 -1
  136. package/dist/model-catalog/upsert.js +9 -0
  137. package/dist/onboarding.d.ts +0 -1
  138. package/dist/onboarding.js +1 -22
  139. package/dist/panel-apps/bindings.d.ts +24 -0
  140. package/dist/panel-apps/bindings.js +69 -0
  141. package/dist/panel-apps/github-archive.d.ts +21 -0
  142. package/dist/panel-apps/github-archive.js +98 -0
  143. package/dist/panel-apps/index.d.ts +4 -0
  144. package/dist/panel-apps/index.js +4 -0
  145. package/dist/panel-apps/installer.d.ts +68 -0
  146. package/dist/panel-apps/installer.js +622 -0
  147. package/dist/panel-apps/manifest.d.ts +364 -0
  148. package/dist/panel-apps/manifest.js +189 -0
  149. package/dist/panel-apps/paths.d.ts +13 -0
  150. package/dist/panel-apps/paths.js +38 -0
  151. package/dist/panel-apps/registry.d.ts +51 -0
  152. package/dist/panel-apps/registry.js +99 -0
  153. package/dist/panel-apps/runtime.d.ts +80 -0
  154. package/dist/panel-apps/runtime.js +154 -0
  155. package/dist/plugins/gitOps.js +8 -1
  156. package/dist/plugins/installedPlugins.d.ts +2 -1
  157. package/dist/plugins/installedPlugins.js +146 -8
  158. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  159. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  160. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  161. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  162. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  163. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  164. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  165. package/dist/plugins/installer/install.d.ts +7 -1
  166. package/dist/plugins/installer/install.js +21 -87
  167. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  168. package/dist/plugins/installer/installFromArchive.js +44 -27
  169. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  170. package/dist/plugins/installer/installFromNpm.js +273 -0
  171. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  172. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  173. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  174. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  175. package/dist/plugins/installer/normalizeManifest.js +306 -0
  176. package/dist/plugins/installer/npmTar.d.ts +13 -0
  177. package/dist/plugins/installer/npmTar.js +321 -0
  178. package/dist/plugins/installer/parseSource.d.ts +11 -0
  179. package/dist/plugins/installer/parseSource.js +48 -0
  180. package/dist/plugins/installer/preview.d.ts +101 -0
  181. package/dist/plugins/installer/preview.js +336 -0
  182. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  183. package/dist/plugins/installer/projectPluginSource.js +140 -0
  184. package/dist/plugins/installer/types.d.ts +775 -0
  185. package/dist/plugins/installer/types.js +100 -0
  186. package/dist/plugins/installer/unzip.d.ts +11 -0
  187. package/dist/plugins/installer/unzip.js +123 -9
  188. package/dist/plugins/installer/update.d.ts +2 -2
  189. package/dist/plugins/installer/update.js +43 -4
  190. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  191. package/dist/plugins/loadPluginHooks.js +97 -86
  192. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  193. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  194. package/dist/plugins/pluginCatalog.d.ts +45 -0
  195. package/dist/plugins/pluginCatalog.js +87 -0
  196. package/dist/plugins/pluginCommandHook.d.ts +10 -4
  197. package/dist/plugins/pluginCommandHook.js +133 -18
  198. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  199. package/dist/plugins/pluginCommandsLoader.js +181 -7
  200. package/dist/plugins/pluginContent.d.ts +10 -1
  201. package/dist/plugins/pluginContent.js +87 -30
  202. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  203. package/dist/plugins/pluginHookApproval.js +160 -0
  204. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  205. package/dist/plugins/pluginHookIntegrity.js +361 -0
  206. package/dist/plugins/pluginInstaller.js +71 -12
  207. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  208. package/dist/plugins/pluginMcpApproval.js +110 -0
  209. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  210. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  211. package/dist/plugins/types.d.ts +30 -0
  212. package/dist/plugins/varRewrite.d.ts +9 -5
  213. package/dist/plugins/varRewrite.js +26 -17
  214. package/dist/preset/index.d.ts +11 -8
  215. package/dist/preset/index.js +62 -203
  216. package/dist/product/define.js +9 -3
  217. package/dist/product/types.d.ts +0 -2
  218. package/dist/profile/activation.d.ts +36 -0
  219. package/dist/profile/activation.js +57 -0
  220. package/dist/profile/catalog-store.d.ts +77 -0
  221. package/dist/profile/catalog-store.js +346 -0
  222. package/dist/profile/catalog.d.ts +54 -0
  223. package/dist/profile/catalog.js +152 -0
  224. package/dist/profile/index.d.ts +7 -0
  225. package/dist/profile/index.js +7 -0
  226. package/dist/profile/requirements.d.ts +76 -0
  227. package/dist/profile/requirements.js +117 -0
  228. package/dist/profile/resolve.d.ts +11 -0
  229. package/dist/profile/resolve.js +41 -0
  230. package/dist/profile/store.d.ts +17 -0
  231. package/dist/profile/store.js +167 -0
  232. package/dist/profile/types.d.ts +321 -0
  233. package/dist/profile/types.js +104 -0
  234. package/dist/prompt/composer.d.ts +46 -7
  235. package/dist/prompt/composer.js +78 -48
  236. package/dist/prompt/instruction-scanner.d.ts +6 -5
  237. package/dist/prompt/instruction-scanner.js +8 -23
  238. package/dist/prompt/section-loader.d.ts +2 -2
  239. package/dist/prompt/section-loader.js +7 -4
  240. package/dist/prompt/sections/browser.md +10 -9
  241. package/dist/prompt/sections/harness-base.md +9 -0
  242. package/dist/protocol/chat-session-manager.d.ts +77 -3
  243. package/dist/protocol/chat-session-manager.js +194 -18
  244. package/dist/protocol/chat-session.d.ts +72 -9
  245. package/dist/protocol/chat-session.js +151 -16
  246. package/dist/protocol/client.d.ts +37 -4
  247. package/dist/protocol/client.js +118 -6
  248. package/dist/protocol/index.d.ts +2 -2
  249. package/dist/protocol/index.js +2 -2
  250. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  251. package/dist/protocol/mobile-remote-types.js +1 -0
  252. package/dist/protocol/server.d.ts +152 -14
  253. package/dist/protocol/server.js +1574 -229
  254. package/dist/protocol/types.d.ts +182 -32
  255. package/dist/protocol/types.js +18 -0
  256. package/dist/run/ArtifactTracker.d.ts +6 -1
  257. package/dist/run/ArtifactTracker.js +29 -21
  258. package/dist/run/EngineRunner.d.ts +2 -0
  259. package/dist/run/EngineRunner.js +1 -0
  260. package/dist/run/RunManager.d.ts +26 -0
  261. package/dist/run/RunManager.js +82 -11
  262. package/dist/run/factory.d.ts +3 -0
  263. package/dist/run/factory.js +2 -0
  264. package/dist/runtime/safe-spawn.d.ts +6 -0
  265. package/dist/runtime/safe-spawn.js +8 -13
  266. package/dist/services/auto-dream.d.ts +13 -1
  267. package/dist/services/auto-dream.js +56 -8
  268. package/dist/services/dream-consolidation.d.ts +3 -0
  269. package/dist/services/dream-consolidation.js +14 -2
  270. package/dist/services/index.d.ts +1 -1
  271. package/dist/services/index.js +1 -1
  272. package/dist/services/memory-orchestrator.js +6 -2
  273. package/dist/services/oauth.d.ts +34 -10
  274. package/dist/services/oauth.js +236 -98
  275. package/dist/services/session-memory.d.ts +4 -4
  276. package/dist/services/session-memory.js +13 -10
  277. package/dist/session/memory.d.ts +26 -7
  278. package/dist/session/memory.js +79 -21
  279. package/dist/session/session-manager.d.ts +208 -25
  280. package/dist/session/session-manager.js +1232 -116
  281. package/dist/session/session-message.d.ts +22 -0
  282. package/dist/session/session-message.js +1 -0
  283. package/dist/session/transcript.d.ts +76 -6
  284. package/dist/session/transcript.js +278 -7
  285. package/dist/settings/feature-flags.d.ts +40 -0
  286. package/dist/settings/feature-flags.js +40 -0
  287. package/dist/settings/manager.d.ts +39 -1
  288. package/dist/settings/manager.js +102 -41
  289. package/dist/settings/migrate-config.js +4 -2
  290. package/dist/settings/schema.d.ts +511 -177
  291. package/dist/settings/schema.js +98 -25
  292. package/dist/skills/scanner.d.ts +6 -2
  293. package/dist/skills/scanner.js +160 -9
  294. package/dist/sources/adapter.d.ts +14 -0
  295. package/dist/sources/adapter.js +7 -0
  296. package/dist/sources/adapters/local-files.d.ts +10 -0
  297. package/dist/sources/adapters/local-files.js +127 -0
  298. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  299. package/dist/sources/adapters/mcp-resource.js +41 -0
  300. package/dist/sources/adapters/mock.d.ts +3 -0
  301. package/dist/sources/adapters/mock.js +29 -0
  302. package/dist/sources/binding.d.ts +6 -0
  303. package/dist/sources/binding.js +24 -0
  304. package/dist/sources/catalog.d.ts +6 -0
  305. package/dist/sources/catalog.js +64 -0
  306. package/dist/sources/context-summary.d.ts +8 -0
  307. package/dist/sources/context-summary.js +13 -0
  308. package/dist/sources/credential-status.d.ts +2 -0
  309. package/dist/sources/credential-status.js +13 -0
  310. package/dist/sources/index.d.ts +10 -0
  311. package/dist/sources/index.js +10 -0
  312. package/dist/sources/resolve.d.ts +28 -0
  313. package/dist/sources/resolve.js +47 -0
  314. package/dist/sources/truncate-utf8.d.ts +7 -0
  315. package/dist/sources/truncate-utf8.js +18 -0
  316. package/dist/sources/types.d.ts +71 -0
  317. package/dist/sources/types.js +26 -0
  318. package/dist/testing/fetch-stub.d.ts +32 -0
  319. package/dist/testing/fetch-stub.js +24 -0
  320. package/dist/themes/image.d.ts +18 -0
  321. package/dist/themes/image.js +117 -0
  322. package/dist/themes/index.d.ts +4 -0
  323. package/dist/themes/index.js +4 -0
  324. package/dist/themes/installer.d.ts +50 -0
  325. package/dist/themes/installer.js +290 -0
  326. package/dist/themes/manifest.d.ts +102 -0
  327. package/dist/themes/manifest.js +86 -0
  328. package/dist/themes/paths.d.ts +14 -0
  329. package/dist/themes/paths.js +33 -0
  330. package/dist/tool-system/browser-bridge.d.ts +53 -11
  331. package/dist/tool-system/browser-bridge.js +8 -9
  332. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  333. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  334. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  335. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  336. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  337. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  338. package/dist/tool-system/builtin/agent-progress.js +83 -0
  339. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  340. package/dist/tool-system/builtin/agent-registry.js +178 -9
  341. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  342. package/dist/tool-system/builtin/agent.d.ts +2 -0
  343. package/dist/tool-system/builtin/agent.js +279 -34
  344. package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
  345. package/dist/tool-system/builtin/background-jobs.js +111 -15
  346. package/dist/tool-system/builtin/background-work.d.ts +12 -1
  347. package/dist/tool-system/builtin/background-work.js +12 -1
  348. package/dist/tool-system/builtin/bash.d.ts +3 -5
  349. package/dist/tool-system/builtin/bash.js +14 -6
  350. package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
  351. package/dist/tool-system/builtin/browser-tools.js +89 -23
  352. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  353. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  354. package/dist/tool-system/builtin/edit.d.ts +2 -1
  355. package/dist/tool-system/builtin/edit.js +14 -10
  356. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  357. package/dist/tool-system/builtin/file-cache.js +4 -0
  358. package/dist/tool-system/builtin/generate-image.js +17 -10
  359. package/dist/tool-system/builtin/generate-video.d.ts +4 -0
  360. package/dist/tool-system/builtin/generate-video.js +164 -28
  361. package/dist/tool-system/builtin/glob.d.ts +2 -1
  362. package/dist/tool-system/builtin/glob.js +28 -3
  363. package/dist/tool-system/builtin/grep.d.ts +1 -0
  364. package/dist/tool-system/builtin/grep.js +82 -17
  365. package/dist/tool-system/builtin/image-uploader.js +7 -1
  366. package/dist/tool-system/builtin/index.d.ts +57 -18
  367. package/dist/tool-system/builtin/index.js +280 -167
  368. package/dist/tool-system/builtin/memory.d.ts +6 -0
  369. package/dist/tool-system/builtin/memory.js +36 -15
  370. package/dist/tool-system/builtin/panel.d.ts +9 -0
  371. package/dist/tool-system/builtin/panel.js +314 -0
  372. package/dist/tool-system/builtin/read.js +5 -1
  373. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  374. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  375. package/dist/tool-system/builtin/sources.d.ts +8 -0
  376. package/dist/tool-system/builtin/sources.js +137 -0
  377. package/dist/tool-system/builtin/tool-search.js +7 -2
  378. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  379. package/dist/tool-system/builtin/video-providers.d.ts +12 -15
  380. package/dist/tool-system/builtin/video-providers.js +1 -0
  381. package/dist/tool-system/builtin/view-image.d.ts +2 -2
  382. package/dist/tool-system/builtin/web-fetch.js +60 -15
  383. package/dist/tool-system/builtin/web-search.js +1 -3
  384. package/dist/tool-system/builtin/write.d.ts +2 -1
  385. package/dist/tool-system/builtin/write.js +14 -4
  386. package/dist/tool-system/capability-module.d.ts +93 -0
  387. package/dist/tool-system/capability-module.js +53 -0
  388. package/dist/tool-system/context.d.ts +94 -24
  389. package/dist/tool-system/executor.js +99 -58
  390. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  391. package/dist/tool-system/external-tool-exposure.js +304 -0
  392. package/dist/tool-system/mcp-manager.d.ts +17 -1
  393. package/dist/tool-system/mcp-manager.js +72 -7
  394. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  395. package/dist/tool-system/mcp-tool-policy.js +34 -0
  396. package/dist/tool-system/panel-bridge.d.ts +53 -0
  397. package/dist/tool-system/panel-bridge.js +1 -0
  398. package/dist/tool-system/path-policy.d.ts +19 -0
  399. package/dist/tool-system/path-policy.js +62 -1
  400. package/dist/tool-system/permission.d.ts +69 -3
  401. package/dist/tool-system/permission.js +429 -30
  402. package/dist/tool-system/registry.d.ts +15 -3
  403. package/dist/tool-system/registry.js +82 -40
  404. package/dist/tool-system/sandbox/index.js +3 -8
  405. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  406. package/dist/tool-system/session-tool-host.d.ts +139 -0
  407. package/dist/tool-system/session-tool-host.js +167 -0
  408. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  409. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  410. package/dist/tool-system/validation.d.ts +14 -7
  411. package/dist/tool-system/validation.js +701 -7
  412. package/dist/types.d.ts +201 -20
  413. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  414. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  415. package/dist/utils/file-mutex.d.ts +65 -0
  416. package/dist/utils/file-mutex.js +145 -0
  417. package/dist/utils/json.d.ts +2 -4
  418. package/dist/utils/json.js +2 -4
  419. package/dist/utils/lockfile.d.ts +30 -1
  420. package/dist/utils/lockfile.js +2 -2
  421. package/dist/utils/secret-scrubber.d.ts +8 -0
  422. package/dist/utils/secret-scrubber.js +227 -0
  423. package/dist/utils/toolDisplay.js +1 -1
  424. package/package.json +20 -5
  425. package/THIRD_PARTY_NOTICES.md +0 -206
  426. package/dist/arena/arena.d.ts +0 -43
  427. package/dist/arena/arena.js +0 -333
  428. package/dist/arena/context/context-tools.d.ts +0 -16
  429. package/dist/arena/context/context-tools.js +0 -272
  430. package/dist/arena/context/within-root.d.ts +0 -7
  431. package/dist/arena/context/within-root.js +0 -15
  432. package/dist/arena/detect-mode.d.ts +0 -20
  433. package/dist/arena/detect-mode.js +0 -78
  434. package/dist/arena/digest-builder.d.ts +0 -25
  435. package/dist/arena/digest-builder.js +0 -120
  436. package/dist/arena/index.d.ts +0 -29
  437. package/dist/arena/index.js +0 -29
  438. package/dist/arena/iterate/convergence.d.ts +0 -25
  439. package/dist/arena/iterate/convergence.js +0 -103
  440. package/dist/arena/iterate/formats/index.d.ts +0 -22
  441. package/dist/arena/iterate/formats/index.js +0 -283
  442. package/dist/arena/iterate/index.d.ts +0 -11
  443. package/dist/arena/iterate/index.js +0 -9
  444. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  445. package/dist/arena/iterate/iterative-arena.js +0 -237
  446. package/dist/arena/iterate/parse.d.ts +0 -42
  447. package/dist/arena/iterate/parse.js +0 -123
  448. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  449. package/dist/arena/iterate/phases/argue.js +0 -165
  450. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  451. package/dist/arena/iterate/phases/revise.js +0 -62
  452. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  453. package/dist/arena/iterate/phases/tournament.js +0 -113
  454. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  455. package/dist/arena/iterate/tools/web-tools.js +0 -54
  456. package/dist/arena/iterate/types.d.ts +0 -152
  457. package/dist/arena/iterate/types.js +0 -8
  458. package/dist/arena/ledger.d.ts +0 -47
  459. package/dist/arena/ledger.js +0 -159
  460. package/dist/arena/lenses/architecture.d.ts +0 -5
  461. package/dist/arena/lenses/architecture.js +0 -22
  462. package/dist/arena/lenses/engineering.d.ts +0 -5
  463. package/dist/arena/lenses/engineering.js +0 -22
  464. package/dist/arena/lenses/general.d.ts +0 -5
  465. package/dist/arena/lenses/general.js +0 -20
  466. package/dist/arena/lenses/index.d.ts +0 -16
  467. package/dist/arena/lenses/index.js +0 -47
  468. package/dist/arena/lenses/product.d.ts +0 -5
  469. package/dist/arena/lenses/product.js +0 -22
  470. package/dist/arena/model-presets.d.ts +0 -23
  471. package/dist/arena/model-presets.js +0 -44
  472. package/dist/arena/phases/adjudication.d.ts +0 -24
  473. package/dist/arena/phases/adjudication.js +0 -141
  474. package/dist/arena/phases/build-consensus.d.ts +0 -29
  475. package/dist/arena/phases/build-consensus.js +0 -83
  476. package/dist/arena/phases/claim-registry.d.ts +0 -26
  477. package/dist/arena/phases/claim-registry.js +0 -60
  478. package/dist/arena/phases/cross-review.d.ts +0 -45
  479. package/dist/arena/phases/cross-review.js +0 -218
  480. package/dist/arena/phases/debate-rounds.d.ts +0 -27
  481. package/dist/arena/phases/debate-rounds.js +0 -159
  482. package/dist/arena/phases/participant-research.d.ts +0 -38
  483. package/dist/arena/phases/participant-research.js +0 -314
  484. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
  485. package/dist/arena/phases/planning-detail-expansion.js +0 -119
  486. package/dist/arena/planner.d.ts +0 -27
  487. package/dist/arena/planner.js +0 -311
  488. package/dist/arena/providers/docs.d.ts +0 -7
  489. package/dist/arena/providers/docs.js +0 -111
  490. package/dist/arena/providers/git.d.ts +0 -8
  491. package/dist/arena/providers/git.js +0 -174
  492. package/dist/arena/providers/index.d.ts +0 -32
  493. package/dist/arena/providers/index.js +0 -132
  494. package/dist/arena/providers/none.d.ts +0 -7
  495. package/dist/arena/providers/none.js +0 -11
  496. package/dist/arena/providers/repo.d.ts +0 -7
  497. package/dist/arena/providers/repo.js +0 -258
  498. package/dist/arena/render/session.d.ts +0 -17
  499. package/dist/arena/render/session.js +0 -190
  500. package/dist/arena/render/terminal.d.ts +0 -34
  501. package/dist/arena/render/terminal.js +0 -286
  502. package/dist/arena/strategies/discussion.d.ts +0 -25
  503. package/dist/arena/strategies/discussion.js +0 -143
  504. package/dist/arena/strategies/index.d.ts +0 -15
  505. package/dist/arena/strategies/index.js +0 -28
  506. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  507. package/dist/arena/strategies/language-wrapper.js +0 -102
  508. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  509. package/dist/arena/strategies/lens-wrapper.js +0 -236
  510. package/dist/arena/strategies/planning.d.ts +0 -30
  511. package/dist/arena/strategies/planning.js +0 -225
  512. package/dist/arena/strategies/review.d.ts +0 -26
  513. package/dist/arena/strategies/review.js +0 -168
  514. package/dist/arena/strategies/utils.d.ts +0 -36
  515. package/dist/arena/strategies/utils.js +0 -603
  516. package/dist/arena/tools/selector.d.ts +0 -17
  517. package/dist/arena/tools/selector.js +0 -61
  518. package/dist/arena/transitions.d.ts +0 -53
  519. package/dist/arena/transitions.js +0 -97
  520. package/dist/arena/types.d.ts +0 -514
  521. package/dist/arena/types.js +0 -27
  522. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  523. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  524. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  525. package/dist/cc-orchestrator/cc-capability.js +0 -53
  526. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  527. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  528. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  529. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  530. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  531. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  532. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  533. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  534. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  535. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  536. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  537. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  538. package/dist/cc-orchestrator/index.d.ts +0 -8
  539. package/dist/cc-orchestrator/index.js +0 -8
  540. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  541. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  542. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  543. package/dist/cc-orchestrator/session-discovery.js +0 -125
  544. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  545. package/dist/cc-orchestrator/session-history.js +0 -150
  546. package/dist/cron/cron-runtime.d.ts +0 -2
  547. package/dist/cron/cron-runtime.js +0 -2
  548. package/dist/cron/cron-store.d.ts +0 -2
  549. package/dist/cron/cron-store.js +0 -2
  550. package/dist/cron/scheduler.d.ts +0 -7
  551. package/dist/cron/scheduler.js +0 -7
  552. package/dist/engine/goal.js +0 -206
  553. package/dist/external-agents/config.d.ts +0 -2
  554. package/dist/external-agents/config.js +0 -15
  555. package/dist/external-agents/types.d.ts +0 -31
  556. package/dist/git/parse-log.d.ts +0 -13
  557. package/dist/git/parse-log.js +0 -21
  558. package/dist/git/utils.d.ts +0 -49
  559. package/dist/git/utils.js +0 -161
  560. package/dist/git/worktree/crud.d.ts +0 -69
  561. package/dist/git/worktree/crud.js +0 -206
  562. package/dist/git/worktree/diff.d.ts +0 -14
  563. package/dist/git/worktree/diff.js +0 -82
  564. package/dist/git/worktree/git-exec.d.ts +0 -7
  565. package/dist/git/worktree/git-exec.js +0 -51
  566. package/dist/git/worktree/index.d.ts +0 -5
  567. package/dist/git/worktree/index.js +0 -5
  568. package/dist/git/worktree/query.d.ts +0 -42
  569. package/dist/git/worktree/query.js +0 -121
  570. package/dist/git/worktree/slug.d.ts +0 -11
  571. package/dist/git/worktree/slug.js +0 -58
  572. package/dist/git/worktree.d.ts +0 -1
  573. package/dist/git/worktree.js +0 -5
  574. package/dist/lsp/client.d.ts +0 -41
  575. package/dist/lsp/client.js +0 -186
  576. package/dist/lsp/manager.d.ts +0 -40
  577. package/dist/lsp/manager.js +0 -155
  578. package/dist/lsp/root-path.d.ts +0 -9
  579. package/dist/lsp/root-path.js +0 -12
  580. package/dist/lsp/servers.d.ts +0 -16
  581. package/dist/lsp/servers.js +0 -60
  582. package/dist/prompt/sections/coding.md +0 -35
  583. package/dist/quota/credentials.d.ts +0 -3
  584. package/dist/quota/credentials.js +0 -80
  585. package/dist/quota/index.d.ts +0 -36
  586. package/dist/quota/index.js +0 -155
  587. package/dist/quota/types.d.ts +0 -48
  588. package/dist/quota/types.js +0 -13
  589. package/dist/review/review-prompt.d.ts +0 -28
  590. package/dist/review/review-prompt.js +0 -81
  591. package/dist/state.d.ts +0 -160
  592. package/dist/state.js +0 -267
  593. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  594. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  595. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  596. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  597. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  598. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  599. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  600. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  601. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  602. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  603. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  604. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  605. package/dist/tool-system/builtin/arena.d.ts +0 -31
  606. package/dist/tool-system/builtin/arena.js +0 -415
  607. package/dist/tool-system/builtin/brief.d.ts +0 -6
  608. package/dist/tool-system/builtin/brief.js +0 -41
  609. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  610. package/dist/tool-system/builtin/check-quota.js +0 -34
  611. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  612. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  613. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  614. package/dist/tool-system/builtin/lsp.js +0 -144
  615. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  616. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  617. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  618. package/dist/tool-system/builtin/worktree.js +0 -345
  619. /package/dist/{external-agents → links}/types.js +0 -0
  620. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  621. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -28,16 +28,27 @@
28
28
  * timeout Defaults to 60_000 ms; settings.timeout_ms overrides.
29
29
  * On timeout we SIGTERM then SIGKILL, log, and return {}.
30
30
  */
31
+ import type { Writable } from "node:stream";
31
32
  import type { HookContext, HookResult } from "./events.js";
32
33
  import type { SettingsHookConfig } from "../types.js";
33
34
  import { validateHookResult } from "./hook-output.js";
34
35
  export { validateHookResult };
36
+ export declare const MAX_HOOK_STDIN_BYTES: number;
37
+ /**
38
+ * Write one hook envelope without leaving a Writable `error` event unhandled.
39
+ * The listener is installed before write(), remains through end(), and the
40
+ * promise does not resolve until both the write callback and any required
41
+ * drain have completed.
42
+ */
43
+ export declare function writeHookStdin(stdin: Writable | null | undefined, envelope: string): Promise<void>;
44
+ /** Close stdin for an oversized envelope while still absorbing stream errors. */
45
+ export declare function closeHookStdin(stdin: Writable | null | undefined): void;
35
46
  /**
36
47
  * Run one shell-hook command and return the parsed HookResult. Catches
37
48
  * every failure mode (spawn error, timeout, malformed JSON) and
38
49
  * returns an empty result so the registry's chain keeps going.
39
50
  */
40
- export declare function runShellHook(config: SettingsHookConfig, ctx: HookContext): Promise<HookResult>;
51
+ export declare function runShellHook(config: SettingsHookConfig, ctx: HookContext, abortSignal?: AbortSignal): Promise<HookResult>;
41
52
  /**
42
53
  * Check whether the hook should fire for the current ctx, respecting
43
54
  * the optional `matcher` regex. Returns false for non-tool events
@@ -35,13 +35,105 @@ import { killChildTree } from "../runtime/spawn-common.js";
35
35
  // "./shell-runner.js" (e.g. tests) keep compiling.
36
36
  export { validateHookResult };
37
37
  const DEFAULT_TIMEOUT_MS = 60_000;
38
+ export const MAX_HOOK_STDIN_BYTES = 256 * 1024;
39
+ function stdinFailure(error) {
40
+ const err = error;
41
+ return {
42
+ type: "stdin_error",
43
+ code: typeof err?.code === "string" ? err.code : "UNKNOWN",
44
+ message: err instanceof Error ? err.message : String(error),
45
+ };
46
+ }
47
+ /**
48
+ * Write one hook envelope without leaving a Writable `error` event unhandled.
49
+ * The listener is installed before write(), remains through end(), and the
50
+ * promise does not resolve until both the write callback and any required
51
+ * drain have completed.
52
+ */
53
+ export function writeHookStdin(stdin, envelope) {
54
+ if (!stdin)
55
+ return Promise.resolve();
56
+ return new Promise((resolve, reject) => {
57
+ let settled = false;
58
+ let writeComplete = false;
59
+ let drained = false;
60
+ let ending = false;
61
+ const cleanup = (removeErrorListener = true) => {
62
+ if (removeErrorListener)
63
+ stdin.off("error", onError);
64
+ stdin.off("drain", onDrain);
65
+ };
66
+ const finish = (error, keepErrorListener = false) => {
67
+ if (settled)
68
+ return;
69
+ settled = true;
70
+ cleanup(!keepErrorListener);
71
+ if (error !== undefined)
72
+ reject(error);
73
+ else
74
+ resolve();
75
+ };
76
+ const onError = (error) => finish(error);
77
+ const onDrain = () => {
78
+ drained = true;
79
+ maybeEnd();
80
+ };
81
+ const maybeEnd = () => {
82
+ if (!writeComplete || !drained || ending || settled)
83
+ return;
84
+ ending = true;
85
+ try {
86
+ stdin.end(() => finish());
87
+ }
88
+ catch (error) {
89
+ finish(error, true);
90
+ }
91
+ };
92
+ // EventEmitter treats an unhandled stream `error` as fatal. Register the
93
+ // one-shot handler before the first byte is handed to the child.
94
+ stdin.once("error", onError);
95
+ try {
96
+ drained = stdin.write(envelope, (error) => {
97
+ if (error) {
98
+ // Some Writable implementations invoke the callback before emitting
99
+ // their fatal `error`. Keep the one-shot guard installed for it.
100
+ finish(error, true);
101
+ return;
102
+ }
103
+ writeComplete = true;
104
+ maybeEnd();
105
+ });
106
+ if (!drained)
107
+ stdin.once("drain", onDrain);
108
+ maybeEnd();
109
+ }
110
+ catch (error) {
111
+ finish(error, true);
112
+ }
113
+ });
114
+ }
115
+ /** Close stdin for an oversized envelope while still absorbing stream errors. */
116
+ export function closeHookStdin(stdin) {
117
+ if (!stdin)
118
+ return;
119
+ stdin.once("error", () => { });
120
+ try {
121
+ stdin.end();
122
+ }
123
+ catch {
124
+ // No envelope was written; the hook is still allowed to run without args.
125
+ }
126
+ }
38
127
  /**
39
128
  * Run one shell-hook command and return the parsed HookResult. Catches
40
129
  * every failure mode (spawn error, timeout, malformed JSON) and
41
130
  * returns an empty result so the registry's chain keeps going.
42
131
  */
43
- export async function runShellHook(config, ctx) {
132
+ export async function runShellHook(config, ctx, abortSignal) {
44
133
  const timeoutMs = config.timeout_ms ?? DEFAULT_TIMEOUT_MS;
134
+ const signal = abortSignal ?? ctx.data.signal;
135
+ if (signal?.aborted)
136
+ return {};
45
137
  return new Promise((resolve) => {
46
138
  let child;
47
139
  try {
@@ -64,13 +156,20 @@ export async function runShellHook(config, ctx) {
64
156
  let stdout = "";
65
157
  let stderr = "";
66
158
  let settled = false;
159
+ let timer;
67
160
  const settle = (value) => {
68
161
  if (settled)
69
162
  return;
70
163
  settled = true;
164
+ clearTimeout(timer);
165
+ signal?.removeEventListener("abort", onAbort);
71
166
  resolve(value);
72
167
  };
73
- const timer = setTimeout(() => {
168
+ const onAbort = () => {
169
+ killChildTree(child, 1000);
170
+ settle({});
171
+ };
172
+ timer = setTimeout(() => {
74
173
  // eslint-disable-next-line no-console
75
174
  console.warn(`[hooks] ${config.event} hook timed out after ${timeoutMs}ms: ${config.command}`);
76
175
  // win32: taskkill /T reaps the shell tree; POSIX: SIGTERM → grace →
@@ -78,6 +177,9 @@ export async function runShellHook(config, ctx) {
78
177
  killChildTree(child, 1000);
79
178
  settle({});
80
179
  }, timeoutMs);
180
+ signal?.addEventListener("abort", onAbort, { once: true });
181
+ if (signal?.aborted)
182
+ onAbort();
81
183
  // Byte cap: once we cross MAX_HOOK_OUTPUT_BYTES on stdout, kill the
82
184
  // child and surface a 'cap exceeded' failure. A misbehaving handler
83
185
  // can otherwise hold the engine memory hostage while we accumulate
@@ -119,8 +221,9 @@ export async function runShellHook(config, ctx) {
119
221
  console.error(`[hooks] ${config.event} hook failed: ${config.command}`, err.message);
120
222
  settle({});
121
223
  });
122
- child.on("close", (code) => {
123
- clearTimeout(timer);
224
+ let stdinFinished = false;
225
+ let pendingClose;
226
+ const handleClose = (code) => {
124
227
  if (stdoutCapped) {
125
228
  // eslint-disable-next-line no-console
126
229
  console.error(`[hooks] ${config.event} hook killed due to oversized stdout (> ${MAX_HOOK_OUTPUT_BYTES} bytes)`);
@@ -166,17 +269,65 @@ export async function runShellHook(config, ctx) {
166
269
  // eslint-disable-next-line no-console
167
270
  console.error(`[hooks] ${config.event} hook exited with code ${code}:`, stderr.slice(0, 500));
168
271
  settle({});
272
+ };
273
+ child.on("close", (code) => {
274
+ clearTimeout(timer);
275
+ if (settled)
276
+ return;
277
+ // If close wins the event-loop race, wait for stdin's callback/error so
278
+ // an EPIPE cannot be overwritten by an apparently clean child exit.
279
+ if (!stdinFinished && !stdoutCapped) {
280
+ pendingClose = { code };
281
+ return;
282
+ }
283
+ handleClose(code);
169
284
  });
170
- // Write the context envelope on stdin then close.
285
+ const finishStdin = () => {
286
+ stdinFinished = true;
287
+ if (pendingClose && !settled) {
288
+ const { code } = pendingClose;
289
+ pendingClose = undefined;
290
+ handleClose(code);
291
+ }
292
+ };
293
+ let envelope;
171
294
  try {
172
- child.stdin?.write(JSON.stringify({ eventName: ctx.eventName, data: ctx.data }));
173
- child.stdin?.end();
295
+ envelope = JSON.stringify({ eventName: ctx.eventName, data: ctx.data });
174
296
  }
175
- catch (err) {
297
+ catch (error) {
176
298
  // eslint-disable-next-line no-console
177
- console.error(`[hooks] failed to write stdin for ${config.event}:`, err.message);
299
+ console.error(`[hooks] failed to serialize stdin for ${config.event}:`, error instanceof Error ? error.message : String(error));
178
300
  settle({});
301
+ return;
179
302
  }
303
+ if (Buffer.byteLength(envelope, "utf8") > MAX_HOOK_STDIN_BYTES) {
304
+ // eslint-disable-next-line no-console
305
+ console.warn(`[hooks] ${config.event} hook stdin exceeded ${MAX_HOOK_STDIN_BYTES} bytes; running without envelope`);
306
+ closeHookStdin(child.stdin);
307
+ finishStdin();
308
+ return;
309
+ }
310
+ // Let the spawned shell enter user code before writing. Besides avoiding a
311
+ // needless race, this makes an intentional early stdin close observable as
312
+ // EPIPE/ECONNRESET while the child is still alive.
313
+ setImmediate(() => {
314
+ void (async () => {
315
+ if (settled)
316
+ return;
317
+ try {
318
+ await writeHookStdin(child.stdin, envelope);
319
+ finishStdin();
320
+ }
321
+ catch (error) {
322
+ clearTimeout(timer);
323
+ const failure = stdinFailure(error);
324
+ // eslint-disable-next-line no-console
325
+ console.error(`[hooks] failed to write stdin for ${config.event}:`, failure.message);
326
+ killChildTree(child, 1000);
327
+ settle({ data: { hookFailure: failure } });
328
+ }
329
+ })();
330
+ });
180
331
  });
181
332
  }
182
333
  /**
package/dist/index.d.ts CHANGED
@@ -3,11 +3,13 @@
3
3
  *
4
4
  * Public API exports.
5
5
  */
6
- export declare const VERSION = "0.7.0";
7
- export type { Message, ContentBlock, ToolDefinition, ToolCall, ToolResult, RegisteredTool, TranscriptEvent, TranscriptEventType, SessionState, SessionWorkspace, ContextUsageAnchor, SessionStatus, TokenUsage, CompiledInput, PermissionDecision, PermissionMode, PermissionRule, TurnPhase, TurnResult, TerminalReason, StreamEvent, StreamCallback, LLMConfig, ClientDefaults, LLMResponse, Settings, MCPServerConfig, } from "./types.js";
6
+ export declare const VERSION = "0.8.0";
7
+ export type { Message, ContentBlock, ToolDefinition, ToolCall, ToolResult, RegisteredTool, TranscriptEvent, TranscriptEventType, SessionState, SessionKind, SessionWorkspace, SessionForkLineage, ContextUsageAnchor, SessionStatus, TokenUsage, CompiledInput, PermissionDecision, PermissionMode, PermissionRule, TurnPhase, TurnResult, TerminalReason, TurnCompletionKind, StreamEvent, StreamCallback, LLMConfig, ClientDefaults, LLMResponse, Settings, MCPServerConfig, } from "./types.js";
8
+ export type { GoalConfig, GoalLifecycleConfig, GoalLifecyclePhase, GoalLifecycleTerminalReason, GoalLifecycleV1, } from "./goal/lifecycle.js";
8
9
  export { FrameworkError, LLMError, LLMRateLimitError, ContextLimitError, ToolError, ToolNotFoundError, ToolExecutionError, ToolTimeoutError, PermissionDeniedError, SessionError, TranscriptError, ConfigError, SandboxUnavailableError, } from "./exceptions.js";
9
10
  export { Engine, loadAgentDefinitionsForCwd } from "./engine/engine.js";
10
11
  export type { EngineConfig, EngineHookConfig, EngineResult } from "./engine/types.js";
12
+ export type { RunBehaviorMode, RunBehaviorProfile } from "./engine/run-types.js";
11
13
  export { resolveLLMConfigForTag } from "./engine/resolve-llm-config.js";
12
14
  export { resolveAuxKey } from "./engine/aux-key.js";
13
15
  export { parseAgentDefinition, serializeAgentDefinition, type AgentDefinition, } from "./agent/agent-definition.js";
@@ -15,10 +17,11 @@ export { AgentDefinitionRegistry, type AgentSourceDir } from "./agent/agent-defi
15
17
  export type { CostStateStore, CostStateSnapshot } from "./engine/cost-store.js";
16
18
  export { EngineRuntime } from "./engine/runtime.js";
17
19
  export type { EngineRuntimeOptions } from "./engine/runtime.js";
18
- export { ChatSessionManager } from "./protocol/chat-session-manager.js";
19
- export type { ChatSessionManagerOptions } from "./protocol/chat-session-manager.js";
20
+ export { ChatSessionManager, createChatSessionManager, LOCAL_CHAT_IDENTITY, } from "./protocol/chat-session-manager.js";
21
+ export type { ChatSessionManagerOptions, LiveChatSessionSnapshot, } from "./protocol/chat-session-manager.js";
20
22
  export { LLMClientBase } from "./llm/client-base.js";
21
23
  export { createLLMClient, registerProvider } from "./llm/client-factory.js";
24
+ export type { CreateMessageOptions } from "./llm/types.js";
22
25
  export { AnthropicClient } from "./llm/providers/anthropic.js";
23
26
  export { OpenAIClient } from "./llm/providers/openai.js";
24
27
  export { ModelPool, type ModelEntry } from "./llm/model-pool.js";
@@ -27,30 +30,50 @@ export { ToolRegistry } from "./tool-system/registry.js";
27
30
  export { ToolExecutor } from "./tool-system/executor.js";
28
31
  export { PermissionClassifier, HeadlessApprovalBackend, AutoApprovalBackend, } from "./tool-system/permission.js";
29
32
  export type { ApprovalBackend } from "./tool-system/permission.js";
30
- export { BUILTIN_TOOLS } from "./tool-system/builtin/index.js";
33
+ export { BUILTIN_TOOLS, derivePresetExposure } from "./tool-system/builtin/index.js";
31
34
  export type { BuiltinTool, BuiltinToolFn } from "./tool-system/builtin/index.js";
35
+ export type { ToolContext } from "./tool-system/context.js";
36
+ export type { AgentPanelDescriptor, AgentPanelToolDescriptor, PanelHostBridge, PanelInvokeResult, PanelOpenResult, } from "./tool-system/panel-bridge.js";
37
+ export { fileCache, invalidateFileCache } from "./tool-system/builtin/file-cache.js";
38
+ export { validateToolArgs, validateToolArgsStrict } from "./tool-system/validation.js";
39
+ export { createOffBackend } from "./tool-system/sandbox/off.js";
40
+ export { SKILL_REPO_RE, WORKSPACE_PROFILE_NAME_RE, WorkspaceProfileSchema, WorkspaceProfileRequirementsSchema, buildSkillInstallArgs, planProfileRequirements, summarizeSkillConflicts, type WorkspaceProfile, type WorkspaceProfileRequirements, type WorkspaceProfileSubtree, type ResolveActiveWorkspaceProfileInput, type SkillRequirement, type ToolRequirement, type KnownSkill, type MissingTool, type PlannedSkillInstall, type ProfileRequirementPlan, type SkillConflict, } from "./profile/index.js";
41
+ export { SOURCE_ID_RE, SOURCE_KINDS, SourceDefinitionSchema, WorkspaceSourceBindingSchema, type SourceKind, type SourceDefinition, type WorkspaceSourceBinding, type SourceScope, type SourceResourceMeta, type SourceContent, } from "./sources/types.js";
42
+ export type { ConnectorAdapter } from "./sources/adapter.js";
43
+ export type { SourceAccessStatus, CredentialStatusFn, EffectiveSourceAccess, ResolveSourceAccessInput, } from "./sources/resolve.js";
44
+ export type { BuildSourcesContextSummaryInput } from "./sources/context-summary.js";
45
+ export { createFakeToolContext, createToolRegistryHarness, type FakeToolContextOptions, type ToolRegistryHarness, type ToolRegistryHarnessOptions, } from "./tool-system/testing/tool-registry-harness.js";
46
+ export { registerCapability, unregisterCapability, listRegisteredCapabilities, } from "./capabilities/index.js";
47
+ export type { CapabilityArtifact, CapabilityArtifactDetectionContext, CapabilityArtifactDetector, CapabilityDynamicContext, CapabilityDynamicContextProvider, CapabilityFileHistoryContribution, CapabilityEngineHookContribution, CapabilityInstructionBoundaryFinder, CapabilityModule, CapabilityToolServiceHost, CapabilityToolSelectionContext, SessionWorkspaceCapability, } from "./capabilities/index.js";
32
48
  export { makeUpdateAutomationMemoryTool } from "./tool-system/builtin/update-automation-memory.js";
33
- export { MCPManager, buildHttpHeaders, buildStdioEnv } from "./tool-system/mcp-manager.js";
49
+ export { MCPManager, buildHttpHeaders, buildStdioEnv, createMcpAuthenticatedFetch, } from "./tool-system/mcp-manager.js";
34
50
  export type { AskUserFn } from "./tool-system/builtin/ask-user.js";
51
+ export type { ExtensionModule, ExtensionQueryHandler, ExtensionTool, ProtocolLiveSession, ProtocolObserver, ProtocolObserverHost, } from "./tool-system/capability-module.js";
52
+ export { registerExtensionModules, queryExtensionModules, } from "./tool-system/capability-module.js";
35
53
  export type { Task, TaskStatus } from "./tool-system/builtin/task.js";
36
54
  export { HookRegistry } from "./hooks/registry.js";
55
+ export type { HookHandler } from "./hooks/registry.js";
37
56
  export type { HookEventName, HookContext, HookResult } from "./hooks/events.js";
38
57
  export { wrapHookMessages } from "./hooks/inject.js";
58
+ export { PanelAppLifecycleRuntime } from "./panel-apps/runtime.js";
59
+ export type { PanelAppInstance, PanelAppLifecycleError, PanelAppLifecycleEvent, PanelAppLifecycleEventName, PanelAppLifecycleHook, PanelAppLifecycleHookContext, PanelAppLifecycleHooks, PanelAppLifecycleModule, PanelAppLifecycleRuntimeOptions, } from "./panel-apps/runtime.js";
39
60
  export { AgentServer, type AgentServerOptions } from "./protocol/server.js";
40
61
  export { AgentClient, type BackgroundAgentCompletedHandler } from "./protocol/client.js";
41
62
  export { createInProcessTransport, StdioTransport, type Transport } from "./protocol/transport.js";
42
63
  export { SocketTransport, listenTcp, type TcpListenResult } from "./protocol/tcp-transport.js";
43
64
  export { createServer, createClient, type CreateServerOptions, type CreateClientOptions, type ServerHandle, } from "./protocol/factories.js";
44
- export { Methods, ErrorCodes, type RpcMessage, type RunResult } from "./protocol/types.js";
65
+ export { Methods, ErrorCodes, type RpcMessage, type RunResult, type ForkSessionParams, type ForkSessionResult as ProtocolForkSessionResult, } from "./protocol/types.js";
66
+ export type * from "./protocol/mobile-remote-types.js";
45
67
  export { Transcript } from "./session/transcript.js";
46
- export { SessionManager } from "./session/session-manager.js";
68
+ export { SessionManager, sessionMainRoot, codeShellHome, sessionsRoot, buildForkState, buildForkTranscript, type ForkSessionOptions, type ForkSessionResult, } from "./session/session-manager.js";
47
69
  export { FileHistory } from "./session/file-history.js";
48
- export { createWorktree, currentBranch, DEFAULT_WORKTREE_BRANCH_PREFIX, getWorktreeDiff, isManagedWorktreeBranch, isValidWorktreeBranchPrefix, findMainWorktreeRoot, listWorktrees, listWorktreesFast, normalizeWorktreeBranchPrefix, removeWorktree, validateWorktreeSlug, worktreeHasUncommittedOrAheadChanges, worktreeHasUncommittedChanges, type CreateWorktreeOptions, type ListWorktreesOptions, type ListWorktreesFastOptions, type RemoveWorktreeResult, type RemoveWorktreeOptions, type WorktreeDiffSummary, type WorktreeInfo, type WorktreeWorkspaceOwner, } from "./git/worktree.js";
49
70
  export { latestUndoTarget, earliestSnapshotsPerFile, latestTurnUndoTargets, latestRedoTargets, } from "./session/undo-target.js";
50
71
  export { diffLines, renderDiffPreview, type DiffLine } from "./session/simple-diff.js";
51
72
  export { MemoryManager } from "./session/memory.js";
52
73
  export type { MemoryEntry, MemoryOrigin, MemoryScope } from "./session/memory.js";
74
+ export type { RouteSessionMessageInput, SessionMessageRouter, SessionMessageTarget, SessionMessageToolService, } from "./session/session-message.js";
53
75
  export { runDreamConsolidation, type DreamConsolidationInput, type DreamConsolidationResult, } from "./services/dream-consolidation.js";
76
+ export { authorize, refreshToken, generatePKCE, createHardenedOAuthFetch, type OAuthConfig, type OAuthTokens, type OAuthAuthorizeOptions, type OAuthRefreshOptions, type HardenedOAuthFetchOptions, } from "./services/oauth.js";
54
77
  export type { FileSnapshot, RedoRecord } from "./session/file-history.js";
55
78
  export { PromptComposer } from "./prompt/composer.js";
56
79
  export { SectionCache } from "./prompt/section-cache.js";
@@ -66,41 +89,27 @@ export { applyToolResultPersistence, createContentReplacementState, reconstructC
66
89
  export type { ContentReplacementState } from "./context/tool-result-storage.js";
67
90
  export { scanSkills, invalidateSkillCache } from "./skills/index.js";
68
91
  export type { SkillDefinition } from "./skills/index.js";
69
- export { CapabilityService, CapabilityNotFoundError, projectBuiltin, projectMcp, projectSkills, projectPlugins, } from "./capability-control/index.js";
70
92
  export type { CapabilityServiceDeps, CapabilityDescriptor, CapabilityControl, } from "./capability-control/index.js";
71
93
  export { readInstalledPlugins } from "./plugins/installedPlugins.js";
72
- export { computeEffectiveDisabledLists, type EffectiveDisabledLists, } from "./capability-control/disabled-lists.js";
94
+ export type { EffectiveDisabledLists } from "./capability-control/disabled-lists.js";
73
95
  export type { InstalledPluginsV2 } from "./plugins/types.js";
74
- export { installPluginFromPath } from "./plugins/installer/install.js";
75
- export { installPluginFromSource } from "./plugins/installer/installFromSource.js";
76
- export { installLocalPlugin, installPluginFromArchive, } from "./plugins/installer/installFromArchive.js";
77
- export { parseSource, type ParsedSource } from "./plugins/installer/parseSource.js";
78
- export { detectPluginFormat } from "./plugins/installer/detectFormat.js";
79
- export { CodexPluginManifest, CSMeta, PluginInstallError } from "./plugins/installer/types.js";
80
- export { mergePluginMcpServers } from "./plugins/installer/loadPluginMcp.js";
96
+ export { CodexPluginManifest, PluginAutomationTemplate, PluginAutomationsManifest, CanonicalPluginManifest, CANONICAL_PLUGIN_MANIFEST_FILE, CSMeta, PluginInstallError, type PluginAutomationTemplate as PluginAutomationTemplateData, type PluginAutomationsManifest as PluginAutomationsManifestData, type CanonicalPluginManifest as CanonicalPluginManifestData, } from "./plugins/installer/types.js";
97
+ export { normalizePluginManifest, readCanonicalPluginManifest, type NormalizePluginManifestOptions, } from "./plugins/installer/normalizeManifest.js";
98
+ export { mergePluginMcpServers, readPluginMcp } from "./plugins/installer/loadPluginMcp.js";
99
+ export { approvePluginMcp, listPluginMcpTrust, revokePluginMcp, type PluginMcpApprovalResult, type PluginMcpTrustEntry, } from "./plugins/pluginMcpApproval.js";
100
+ export { pluginMcpApprovalState, type PluginMcpApprovalState, } from "./plugins/pluginMcpIntegrity.js";
101
+ export { pluginsRoot } from "./plugins/installer/paths.js";
102
+ export { PANEL_APP_ICONS, PANEL_APP_MANIFEST_FILE, PANEL_APP_PERMISSIONS, PanelAppManifest, PanelAppAlreadyInstalledError, PanelAppInstallError, PanelAppReviewChangedError, assertSafePanelAppId, installReviewedLocalPanelApp, installReviewedPanelAppUpdate, listInstalledPanelApps, panelAppInstallDir, panelAppsRegistryPath, panelAppsRoot, previewLocalPanelApp, previewInstalledPanelAppUpdate, isPanelAppBound, resolvePanelAppBindingPolicy, resolvePanelAppBindingProjectPath, uninstallPanelApp, type InstalledPanelApp, type InstalledPanelAppSource, type GitPanelAppSourceInput, type LocalPanelAppSourceInput, type PanelAppSourceInput, type PanelAppManifestData, type PanelAppBindingPolicy, type PanelAppPreview, } from "./panel-apps/index.js";
103
+ export { previewLocalTheme, installReviewedLocalTheme, listInstalledThemes, uninstallTheme, themesRoot, themeInstallDir, assertSafeThemeName, ThemeInstallError, ThemeReviewChangedError, THEME_ASSET_DIR, THEME_VAR_NAMES, detectThemeImage, type ThemePreview, type InstalledTheme, type ThemeManifest, } from "./themes/index.js";
104
+ export { resolveSafePluginPath } from "./plugins/pluginInstaller.js";
81
105
  export { listPluginHooks, pluginHookKey, type PluginHookEntry } from "./plugins/loadPluginHooks.js";
82
- export { describePluginContent, type PluginContentInventory } from "./plugins/pluginContent.js";
106
+ export { approvePluginHooks, reviewPluginHooks, revokePluginHooks, type PluginHookApprovalResult, type PluginHookReview, type PluginHookReviewDiffItem, } from "./plugins/pluginHookApproval.js";
107
+ export { pluginHookApprovalState, type PluginHookApprovalState, } from "./plugins/pluginHookIntegrity.js";
108
+ export { describePluginContent, type PluginAutomationTemplateDescriptor, type PluginContentInventory, } from "./plugins/pluginContent.js";
109
+ export { loadPluginCatalog, loadPluginAutomationTemplateContributions, pluginAutomationTemplateRevision, type LoadPluginCatalogOptions, type PluginAutomationTemplateContribution, type PluginCatalogEntry, } from "./plugins/pluginCatalog.js";
110
+ export { instantiatePluginAutomationTemplate, MAX_PLUGIN_AUTOMATIONS, type InstantiatePluginAutomationTemplateOptions, } from "./plugins/pluginAutomationTemplates.js";
83
111
  export { pluginAgentDirs } from "./plugins/installer/loadPluginAgents.js";
84
112
  export { appendInstallEntry, pluginInstallKey, removeInstallEntries, } from "./plugins/installedPlugins.js";
85
- export { uninstallPluginByName } from "./plugins/installer/uninstall.js";
86
- export { listInstalledPlugins, type PluginListRow } from "./plugins/installer/list.js";
87
- export { updatePluginByName, type UpdateResult } from "./plugins/installer/update.js";
88
- export { checkPluginUpdate, type UpdateCheck } from "./plugins/installer/checkUpdate.js";
89
- export { Arena } from "./arena/arena.js";
90
- export { MODEL_PRESETS, getMaxOutputTokens } from "./arena/model-presets.js";
91
- export type { ModelPreset } from "./arena/model-presets.js";
92
- export { detectArenaMode } from "./arena/detect-mode.js";
93
- export { getStrategy, getStrategyForPlan, ReviewStrategy, DiscussionStrategy, PlanningStrategy, } from "./arena/strategies/index.js";
94
- export { planArena } from "./arena/planner.js";
95
- export { collectEvidence } from "./arena/providers/index.js";
96
- export { selectTools, hasTools } from "./arena/tools/selector.js";
97
- export { ArenaLedger } from "./arena/ledger.js";
98
- export { registerClaims, selectClaimsForReview } from "./arena/phases/claim-registry.js";
99
- export { buildDigest, formatDigest } from "./arena/digest-builder.js";
100
- export { transitionClaim, resolveClaimStatus, markUnderReview, applyReviewResult, markUnresolved, isTerminal, validTransitions, } from "./arena/transitions.js";
101
- 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";
102
- export { IterativeArena, defaultIterateConvergence, iterateDiffRatio, iterateCodeFormat, iterateDocumentFormat, getIterateFormat, } from "./arena/index.js";
103
- 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";
104
113
  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";
105
114
  export { defineProduct, type ProductDefinition, type ProductPreset, type ProductAdapter, type ProductContract, type CustomTool, type ProductRuntimeOptions, type ProductInstance, } from "./product/index.js";
106
115
  export { logger } from "./logging/logger.js";
@@ -109,80 +118,12 @@ export { migrateConfig, configVersionOf, CURRENT_CONFIG_VERSION, type MigrationS
109
118
  export { SettingsSchema, validateSettings } from "./settings/schema.js";
110
119
  export { settingsJsonSchema, writeSettingsSchemaFile } from "./settings/schema-export.js";
111
120
  export { personalizationFrom, type PersonalizationConfig } from "./settings/personalization.js";
112
- export { CredentialStore, type CredentialScope, type MaskedCredential, type Credential, type CredentialType, type CredentialStoreFile, type OAuthCredentialPublicStatus, type OAuthCredentialSecret, buildOAuthRefreshRequest, isOAuthAccessTokenExpired, oauthCredentialStatus, parseOAuthCredentialSecret, summarizeOAuthCredentialSecret, type OAuthClockOptions, type OAuthRefreshHandler, type OAuthRefreshRequest, formatNetscapeCookies, parseCookieJar, type CookieLike, useCredentialToolDef, useCredentialToolDefFor, sweepStaleCredentialCookies, getCredentialAccess, setDefaultCredentialAccess, createIpcCredentialAccess, localCredentialAccess, credentialAccessScope, isCredentialSecretAvailable, materializeCookieSecret, type CredentialAccess, type CredentialAccessScope, type CredentialMetadata, type CredentialSnapshot, type CredentialSnapshotEntry, type EncryptionCipher, PlaintextCipher, setDefaultCredentialCipher, getDefaultCredentialCipher, } from "./credentials/index.js";
113
- /** @internal Shared with the in-repo TUI/desktop hosts; not stable SDK surface. */
114
- export { getSessionId, switchSession, getOriginalCwd, setOriginalCwd, getProjectRoot, setProjectRoot, getCwdState, getIsInteractive, updateLastInteractionTime, flushInteractionTime, markScrollActivity, type AttributedCounter, type ChannelEntry, } from "./state.js";
115
- /** @internal Shared primitives for the in-repo TUI/desktop hosts; not stable SDK surface. */
116
- export { getGraphemeSegmenter, firstGrapheme, lastGrapheme, getWordSegmenter, getRelativeTimeFormat, getTimeZone, getSystemLocaleLanguage, } from "./utils/intl.js";
117
- export { env } from "./utils/env.js";
118
- export { default as sliceAnsi } from "./utils/sliceAnsi.js";
119
- export { execFileNoThrow } from "./utils/execFileNoThrow.js";
120
- export { findExecutable, resolveExecutable, setGitPathOverride, resolveGit, isGitAvailable, resolveGitPath, } from "./utils/exec.js";
121
- export { gte } from "./utils/semver.js";
122
- export { lock, lockSync, unlock, check } from "./utils/lockfile.js";
123
- export { logForDebugging } from "./utils/debug.js";
124
- export { isEnvTruthy, isEnvDefinedFalsy, getClaudeConfigHomeDir, isBareMode, parseEnvVars, shouldMaintainProjectWorkingDir, getAWSRegion, getDefaultVertexRegion, getVertexRegionForModel, } from "./utils/envUtils.js";
125
- export { startCapturingEarlyInput, stopCapturingEarlyInput, consumeEarlyInput, hasEarlyInput, seedEarlyInput, isCapturingEarlyInput, } from "./utils/earlyInput.js";
126
- export { formatBytes, formatToolArgs, singleLine, MAX_LINE_WIDTH, TOOL_DOT_COLORS, } from "./utils/toolDisplay.js";
127
- export { classifyBashLines, type BashLineKind, type ClassifiedBashLine, } from "./tool-system/builtin/bash-output-style.js";
128
- export { formatDuration, formatTokens } from "./utils/format.js";
129
- export { getTheme, type Theme, type ThemeName, type ThemeSetting } from "./utils/theme.js";
130
- export { resolveThemeSetting, type SystemTheme } from "./utils/systemTheme.js";
131
- /** @internal Host-lifecycle logging hooks for the in-repo TUI/desktop hosts; not stable SDK surface. */
132
- export { rotateLogs } from "./logging/logger.js";
133
- export { recordUIEvent } from "./logging/session-recorder.js";
121
+ export { CredentialStore, type CredentialScope, type MaskedCredential, type Credential, type CredentialType, type CredentialStoreFile, type OAuthCredentialPublicStatus, type OAuthCredentialSecret, type OAuthTokenResponse, buildOAuthRefreshRequest, isOAuthAccessTokenExpired, isBrowserOAuthLinkCredential, oauthCredentialStatus, parseOAuthCredentialSecret, resolveLinkCredentialAccessToken, mergeOAuthTokenResponse, shouldRefreshOAuthCredential, summarizeOAuthCredentialSecret, type OAuthClockOptions, type OAuthRefreshHandler, type OAuthRefreshRequest, formatNetscapeCookies, parseCookieJar, type CookieLike, useCredentialToolDef, useCredentialToolDefFor, sweepStaleCredentialCookies, getCredentialAccess, setDefaultCredentialAccess, createIpcCredentialAccess, localCredentialAccess, credentialAccessScope, credentialAllowsEnvExposure, credentialSecretHint, isCredentialSecretAvailable, materializeCookieSecret, type CredentialAccess, type CredentialAccessScope, type CredentialMetadata, type CredentialSnapshot, type CredentialSnapshotEntry, type EncryptionCipher, PlaintextCipher, setDefaultCredentialCipher, getDefaultCredentialCipher, } from "./credentials/index.js";
122
+ export { LOCAL_LINK_PROVIDERS, getLocalLinkProvider, listLocalLinkProviders, validateLocalLinkToken, connectCliLink, executeCliLinkAction, getCliLinkStatus, isCliLinkProvider, managedLinkCliPath, resolveLinkCliExecutable, runCliLinkCommand, linkActionToolDef, linkActionTool, isLinkActionAvailable, type LinkActionRisk, type LocalLinkIdentity, type LocalLinkValidationResult, type LocalLinkActionSummary, type LocalLinkProviderSummary, type LocalLinkActionContext, type LocalLinkActionSpec, type LocalLinkProviderSpec, type CliLinkCommandResult, type CliLinkCommandRunner, type CliLinkProviderId, type CliLinkRunOptions, type CliLinkStatus, } from "./links/index.js";
134
123
  export { CostTracker, costTracker, installCostTracking } from "./cost-tracker.js";
135
124
  export { NOOP_COLORIZER, type Colorizer } from "./colorizer.js";
136
- export { hasApiKey, resolveApiKey, appendOnboardingResult, detectEnvKeys, saveArenaSettingsByKeys, type OnboardingResult, } from "./onboarding.js";
137
- export { getCurrentVersion, checkForUpdate, scheduleAutoInstallOnExit, getUpdateAvailable, getAutoUpdateDisabledReason, type UpdateInfo, } from "./updater.js";
138
- export { isGitRepo, resolveProjectRoot, getCurrentBranch, getGitStatus, getGitDiff, getGitDiffStat, getGitLog, gitAdd, gitCommit, gitListBranches, gitCheckout, ghAvailable, ghPrComments, } from "./git/utils.js";
139
- export { buildReviewPrompt, parseDimensions, ALL_DIMENSIONS, type ReviewDimension, type ReviewPromptOptions, } from "./review/review-prompt.js";
140
- /**
141
- * @internal Exports below are consumed by the in-repo TUI/desktop hosts, not
142
- * part of the stable `@cjhyy/code-shell-core` SDK surface. They may change or
143
- * move to a `/tui` subpath without a major bump. External SDK users: prefer the
144
- * primary Engine/Protocol API above.
145
- */
146
- export { getInteractiveApprovalBackend } from "./tool-system/permission.js";
147
- export { defaultSandboxConfig, type SandboxConfig } from "./tool-system/sandbox/index.js";
148
- export { buildNotificationMessage, buildNotificationSummary, notificationQueue, agentNotificationBus, notificationItemToStreamEvent, type NotificationItem, } from "./tool-system/builtin/agent-notifications.js";
149
- export type { BackgroundAgentCompletedEvent } from "./types.js";
150
- 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";
151
- export * from "./cc-orchestrator/index.js";
152
- export { checkQuota, formatQuota } from "./quota/index.js";
153
- export { resolveQuotaCredentials } from "./quota/credentials.js";
154
- export type { QuotaResult, ProviderQuota, QuotaWindow, QuotaCredentials } from "./quota/types.js";
155
- export { asyncAgentRegistry, type AsyncAgentEntry } from "./tool-system/builtin/agent-registry.js";
156
- export { backgroundShellManager, BackgroundShellManager, type BgShell, type BgShellStatus, } from "./runtime/background-shell.js";
157
- export { ENV_DENY_REGEX, ENV_ALLOWLIST } from "./runtime/spawn-common.js";
158
- export { getImageProvider, DEFAULT_IMAGE_MODEL, type ImageProvider, type ImageProviderCreds, type ImageGenerateRequest, type ImageGenerateResult, } from "./tool-system/builtin/image-providers.js";
159
- export { transcribe, type TranscribeCreds, type TranscribeRequest, type TranscribeResult, } from "./stt/transcribe.js";
160
- export { resolveTranscribeProvider, isTranscribeAvailable, describeTranscribe, type ResolvedTranscribeProvider, type TranscribeDescription, } from "./stt/resolve-transcribe.js";
161
- export { BUILTIN_CATALOG, getMergedCatalog, loadUserCatalog, userCatalogPath, findCatalogEntry, saveCatalogEntry, deleteUserCatalogEntry, catalogEntryOrigins, type CatalogEntry, } from "./model-catalog/index.js";
162
- /** @internal Extended protocol surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
163
- export { createInProcessClient } from "./protocol/helpers.js";
164
- export type { ProtocolModelEntry } from "./protocol/types.js";
165
- /** @internal Extended Arena surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
166
- export { formatArenaResult, printArenaResult, renderProgress, createProgressRenderer, type OutputSink, } from "./arena/render/terminal.js";
167
- export { formatArenaResultForSession } from "./arena/render/session.js";
168
- export { installPlugin, uninstallPlugin, listInstalled } from "./plugins/pluginInstaller.js";
169
- export { addMarketplace, refreshMarketplace, removeMarketplace, listMarketplaces, loadMarketplace, } from "./plugins/marketplaceManager.js";
170
- export { parseMarketplaceInput, deriveMarketplaceName } from "./plugins/parseMarketplaceInput.js";
171
- export { scanPluginCommands, type PluginCommand } from "./plugins/pluginCommandsLoader.js";
172
- /** @internal Extended LLM surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
173
- export { type CachedModel, defaultCacheDir } from "./llm/model-cache.js";
174
- export { fetchModelList, type FetchResult } from "./llm/model-fetcher.js";
175
- export { sanitizeApiKey, hasNonAsciiPrintable } from "./llm/api-key-sanitize.js";
176
- export { PROVIDER_KINDS, type ProviderKindName } from "./llm/provider-kinds.js";
177
- export { capabilitiesFor, type Capability } from "./llm/capabilities/index.js";
178
- export { reasoningControlFor, type ReasoningControl, } from "./llm/capabilities/reasoning-control.js";
179
- export { REASONING_EFFORTS, type ReasoningSetting } from "./llm/reasoning-setting.js";
180
- export { type ProviderConfig } from "./llm/provider-catalog.js";
125
+ export { expandPluginCommandBody, describePluginCommands, scanPluginCommands, MAX_PLUGIN_COMMAND_FILE_BYTES, MAX_PLUGIN_COMMAND_ARGUMENT_CHARS, MAX_PLUGIN_COMMAND_EXPANDED_CHARS, type PluginCommand, type PluginCommandDescriptor, } from "./plugins/pluginCommandsLoader.js";
181
126
  export { syncOpenRouterCatalog, getOpenRouterSnapshot } from "./data/openrouter-sync.js";
182
- /** @internal Extended type surface for the in-repo TUI/desktop hosts; not stable SDK surface. */
183
- export type { ApprovalRequest, ApprovalResult, ApprovalScope, TaskInfo } from "./types.js";
184
- export { resolveExternalAgentConfig } from "./external-agents/config.js";
185
- export type { ExternalAgentMode, ExternalAgentsSettings, ResolvedExternalAgentsConfig, ResolvedClaudeCodeSettings, ResolvedCodexSettings, } from "./external-agents/types.js";
186
127
  export { flattenAxTree, renderElementList, cleanPageText, CONTENT_CHAR_CAP, buildExtractLinksScript, EXTRACT_LINK_CAP, } from "./tool-system/browser-bridge.js";
187
- export type { BrowserBridge, BrowserElement, BrowserSnapshot, BrowserResult, BrowserContent, BrowserExtract, BrowserLink, BrowserImage, BrowserVideo, BrowserImageData, BrowserTab, AXNode, } from "./tool-system/browser-bridge.js";
128
+ export type { BrowserBridge, BrowserElement, BrowserSnapshot, BrowserResult, BrowserResultCode, BrowserScrollState, BrowserReadOptions, BrowserContent, BrowserExtract, BrowserLink, BrowserImage, BrowserVideo, BrowserImageData, BrowserTab, AXNode, } from "./tool-system/browser-bridge.js";
188
129
  export type { WorkspaceBridge } from "./tool-system/workspace-bridge.js";
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Stable extension contract for trusted in-process capability packages.
3
+ * Product capabilities depend on this narrow entry instead of private core
4
+ * paths, keeping the package graph one-way: capability -> core.
5
+ */
6
+ export type { ClientDefaults, ContentBlock, LLMConfig, LLMResponse, Message, RegisteredTool, SessionOrigin, SessionStatus, StreamEvent, TerminalReason, TurnCompletionKind, TokenUsage, ToolCall, ToolDefinition, } from "./types.js";
7
+ export type { PendingApprovalMetadata } from "./protocol/types.js";
8
+ export type { CreateMessageOptions } from "./llm/types.js";
9
+ export { LLMClientBase } from "./llm/client-base.js";
10
+ export { createLLMClient, registerProvider } from "./llm/client-factory.js";
11
+ export { ModelPool, type ModelEntry } from "./llm/model-pool.js";
12
+ export { logger } from "./logging/logger.js";
13
+ export { addTokenUsage } from "./session/usage.js";
14
+ export { resolveMaxOutput } from "./onboarding.js";
15
+ export { SettingsManager, userHome } from "./settings/manager.js";
16
+ export { isFeatureEnabled, featureFlagNames, resolveFeatureFlags, } from "./settings/feature-flags.js";
17
+ export type { FeatureFlagName, FeatureFlagOverrides } from "./settings/feature-flags.js";
18
+ export { NOOP_COLORIZER, type Colorizer } from "./colorizer.js";
19
+ export type { ToolContext } from "./tool-system/context.js";
20
+ export type { AgentPanelDescriptor, AgentPanelToolDescriptor, PanelDiscoveryResult, PanelHostBridge, PanelInvokeResult, PanelOpenResult, } from "./tool-system/panel-bridge.js";
21
+ export { createSessionToolHost } from "./tool-system/session-tool-host.js";
22
+ export type { CreateSessionToolHostOptions, ExternalSessionPermissionMode, ExternalToolExposurePolicy, SessionToolHost, } from "./tool-system/session-tool-host.js";
23
+ export type { ToolVisibilityInputs } from "./engine/run-tooling.js";
24
+ export { FIRST_PHASE_EXPOSURE, FIRST_PHASE_EXPOSURE_RATIONALE, } from "./tool-system/external-tool-exposure.js";
25
+ export type { ExposureRationale } from "./tool-system/external-tool-exposure.js";
26
+ export { webSearchTool } from "./tool-system/builtin/web-search.js";
27
+ export { webFetchTool } from "./tool-system/builtin/web-fetch.js";
28
+ export { extractJSON, extractJSONArray } from "./utils/json.js";
29
+ export type { ExtensionModule, ExtensionQueryHandler, ExtensionTool, } from "./tool-system/capability-module.js";
30
+ export type { SessionWorkspace } from "./types.js";
31
+ export { registerCapability } from "./capabilities/index.js";
32
+ export type { CapabilityArtifactDetector, CapabilityDynamicContextProvider, CapabilityModule, CapabilityToolServiceHost, } from "./capabilities/index.js";
33
+ export { BUILTIN_AGENT_PRESETS } from "./preset/index.js";
34
+ export type { AgentPreset } from "./preset/index.js";
35
+ export { BUILTIN_TOOLS, derivePresetExposure } from "./tool-system/builtin/index.js";
36
+ export type { BuiltinTool } from "./tool-system/builtin/index.js";
37
+ export { SessionManager, codeShellHome } from "./session/session-manager.js";
38
+ export { invalidateFileCache } from "./tool-system/builtin/file-cache.js";
39
+ export { notificationQueue } from "./tool-system/builtin/agent-notifications.js";
40
+ export { resolveExecutable, resolveGit } from "./utils/exec.js";
41
+ export { safeSpawnShell } from "./runtime/safe-spawn.js";
42
+ export { buildSandboxEnv, defaultShellBinary, killChildTree, killProcessGroup, mergeShellEnv, } from "./runtime/spawn-common.js";
43
+ export { isExistingDirectory, normalizeCwdPath } from "./utils/cwd-normalize.js";
44
+ export { backgroundJobRegistry, type BackgroundJobEntry, } from "./tool-system/builtin/background-jobs.js";
45
+ export type { SandboxBackend } from "./tool-system/sandbox/index.js";
46
+ export type { RunBehaviorProfile } from "./engine/run-types.js";
47
+ export type { ProtocolLiveSession, ProtocolObserver, ProtocolObserverHost, } from "./tool-system/capability-module.js";
48
+ export type { ToolVisibilityContext } from "./tool-system/context.js";
49
+ export type { BuiltinToolExposure } from "./tool-system/builtin/index.js";
50
+ export type { PermissionRule, PermissionMode } from "./types.js";
51
+ export { ApprovalRouter } from "./tool-system/permission.js";
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Stable extension contract for trusted in-process capability packages.
3
+ * Product capabilities depend on this narrow entry instead of private core
4
+ * paths, keeping the package graph one-way: capability -> core.
5
+ */
6
+ export { LLMClientBase } from "./llm/client-base.js";
7
+ export { createLLMClient, registerProvider } from "./llm/client-factory.js";
8
+ export { ModelPool } from "./llm/model-pool.js";
9
+ export { logger } from "./logging/logger.js";
10
+ export { addTokenUsage } from "./session/usage.js";
11
+ export { resolveMaxOutput } from "./onboarding.js";
12
+ export { SettingsManager, userHome } from "./settings/manager.js";
13
+ // Feature flags: a host needs to READ them to decide whether an experimental
14
+ // backend is permitted. Read-only surface — the flag registry itself stays in core.
15
+ export { isFeatureEnabled, featureFlagNames, resolveFeatureFlags, } from "./settings/feature-flags.js";
16
+ export { NOOP_COLORIZER } from "./colorizer.js";
17
+ // Session-scoped tool surface for external Agent Runtimes (Codex / Claude Code).
18
+ // This is intentionally the STRONGEST tool-execution handle a capability package
19
+ // can obtain: `ToolExecutor`, `ToolRegistry` and `PermissionClassifier` are
20
+ // deliberately NOT exported here, because exporting them would hand the caller a
21
+ // supported way to bypass SessionToolHost — and with it every authorization check
22
+ // the design routes through ToolExecutor.
23
+ export { createSessionToolHost } from "./tool-system/session-tool-host.js";
24
+ export { FIRST_PHASE_EXPOSURE, FIRST_PHASE_EXPOSURE_RATIONALE, } from "./tool-system/external-tool-exposure.js";
25
+ export { webSearchTool } from "./tool-system/builtin/web-search.js";
26
+ export { webFetchTool } from "./tool-system/builtin/web-fetch.js";
27
+ export { extractJSON, extractJSONArray } from "./utils/json.js";
28
+ export { registerCapability } from "./capabilities/index.js";
29
+ export { BUILTIN_AGENT_PRESETS } from "./preset/index.js";
30
+ export { BUILTIN_TOOLS, derivePresetExposure } from "./tool-system/builtin/index.js";
31
+ export { SessionManager, codeShellHome } from "./session/session-manager.js";
32
+ export { invalidateFileCache } from "./tool-system/builtin/file-cache.js";
33
+ export { notificationQueue } from "./tool-system/builtin/agent-notifications.js";
34
+ export { resolveExecutable, resolveGit } from "./utils/exec.js";
35
+ export { safeSpawnShell } from "./runtime/safe-spawn.js";
36
+ export { buildSandboxEnv, defaultShellBinary, killChildTree, killProcessGroup, mergeShellEnv, } from "./runtime/spawn-common.js";
37
+ export { isExistingDirectory, normalizeCwdPath } from "./utils/cwd-normalize.js";
38
+ export { backgroundJobRegistry, } from "./tool-system/builtin/background-jobs.js";
39
+ export { ApprovalRouter } from "./tool-system/permission.js";