@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
@@ -7,7 +7,24 @@
7
7
  * Server → Client: notifications (stream events, approval requests)
8
8
  * Server → Client: responses (results of requests)
9
9
  */
10
- import type { StreamEvent, TokenUsage, TerminalReason, ApprovalRequest, ApprovalResult, PermissionMode } from "../types.js";
10
+ import type { InputAttachmentMeta, LegacyPetWorkspaceOption, LegacyPetWorkDelegation, StreamEvent, TokenUsage, TerminalReason, ApprovalRequest, ApprovalResult, PermissionMode, SessionForkLineage, SessionKind, SessionWorkspace } from "../types.js";
11
+ import type { RunBehaviorMode } from "../engine/run-types.js";
12
+ import type { SessionMessageTarget } from "../session/session-message.js";
13
+ export type PendingApprovalKind = "tool_approval" | "ask_user" | "internal";
14
+ /** Resolver-free metadata retained beside a pending approval callback. */
15
+ export interface PendingApprovalMetadata {
16
+ sessionId: string;
17
+ requestId: string;
18
+ routeGeneration?: number;
19
+ workerGeneration: number;
20
+ kind: PendingApprovalKind;
21
+ title: string;
22
+ toolName?: string;
23
+ riskLevel?: "low" | "medium" | "high";
24
+ createdAt: number;
25
+ expiresAt?: number;
26
+ surfaceable: boolean;
27
+ }
11
28
  export interface RpcRequest {
12
29
  jsonrpc: "2.0";
13
30
  id: string | number;
@@ -47,43 +64,27 @@ export declare const ErrorCodes: {
47
64
  */
48
65
  readonly Cancelled: -32005;
49
66
  };
50
- export type InputAttachmentKind = "image" | "file" | "directory";
51
- export type InputAttachmentOrigin = "paste" | "os-drop" | "file-panel" | "picker" | "mention" | "generated" | "tool";
52
- export interface InputAttachmentMeta {
53
- id: string;
54
- sessionId: string;
55
- kind: InputAttachmentKind;
56
- origin: InputAttachmentOrigin;
57
- path: string;
58
- absPath: string;
59
- relPath?: string;
60
- mime?: string;
61
- size: number;
62
- sha256: string;
63
- originalName?: string;
64
- createdAt: number;
65
- sourcePath?: string;
66
- width?: number;
67
- height?: number;
68
- vision?: {
69
- include: boolean;
70
- mediaPath?: string;
71
- detail?: "low" | "standard" | "high";
72
- };
73
- directory?: {
74
- treePath?: string;
75
- truncated?: boolean;
76
- entryCount?: number;
77
- };
78
- }
67
+ export type { InputAttachmentKind, InputAttachmentOrigin, InputAttachmentMeta } from "../types.js";
79
68
  /** Start an agent run with a user task. */
80
69
  export interface RunParams {
81
70
  sessionId: string;
82
71
  task: string;
72
+ /**
73
+ * Optional user-facing representation of `task`. The model still receives
74
+ * the full task, while session feeds and transcript replay show this text.
75
+ * Host-owned surfaces use it to hide transport/context envelopes without
76
+ * hiding the user's actual input.
77
+ */
78
+ displayText?: string;
83
79
  /** Structured input attachments. Legacy `<codeshell-image>` task blocks remain supported. */
84
80
  attachments?: InputAttachmentMeta[];
85
81
  /** Stable id for the user's submit intent; duplicate ids are idempotent. */
86
82
  clientMessageId?: string;
83
+ /**
84
+ * Host-generated system reminder. Persisted with an injected marker so disk
85
+ * transcript readers hide it as a user bubble while retaining the assistant reply.
86
+ */
87
+ injected?: boolean;
87
88
  /**
88
89
  * Working directory for this run. When omitted, the Engine uses its
89
90
  * configured cwd.
@@ -113,6 +114,39 @@ export interface RunParams {
113
114
  * this run; when omitted, the engine keeps its configured default.
114
115
  */
115
116
  planMode?: boolean;
117
+ /** Named behavior profile for a product-specific per-run interaction mode. */
118
+ behaviorMode?: RunBehaviorMode;
119
+ /**
120
+ * Generic per-run parameters consumed by the active behavior profile
121
+ * (delivered as non-durable run context; never appended to the task or
122
+ * transcript).
123
+ */
124
+ profileParams?: Record<string, unknown>;
125
+ /** Digital human to bind to this Work Session. */
126
+ workspaceProfile?: string;
127
+ /**
128
+ * Standing brief for this Session, injected as a system section on every run
129
+ * (see SessionState.sessionBrief). Set when a team is summoned; a planned
130
+ * Session has no engine state yet, so the host resends it each turn until the
131
+ * Session persists it.
132
+ */
133
+ sessionBrief?: string;
134
+ /** Closed same-project Session catalog available to SendMessageToSession. */
135
+ sessionMessageTargets?: SessionMessageTarget[];
136
+ /**
137
+ * Host-built bounded Pet world JSON for this invocation. It is delivered as
138
+ * non-durable system context and must never be appended to the user task or
139
+ * transcript. Valid only for an explicitly durable Pet run.
140
+ * @deprecated Compat alias for `profileParams.runtimeContext`.
141
+ */
142
+ petRuntimeContext?: string;
143
+ /**
144
+ * Closed Workspace choices exposed to Mimi's DelegateWork tool.
145
+ * @deprecated Compat alias for `profileParams.workspaces`.
146
+ */
147
+ petWorkspaces?: LegacyPetWorkspaceOption[];
148
+ /** Durable classification used only when creating a new session. */
149
+ kind?: SessionKind;
116
150
  /**
117
151
  * Require the target session to already exist on disk. When true and the
118
152
  * session is absent, the run is rejected with `SessionNotFound` instead of
@@ -130,7 +164,7 @@ export interface RunParams {
130
164
  * Accepts a bare objective string or a full GoalConfig (objective +
131
165
  * optional token/time budgets). Normalized at the engine run boundary.
132
166
  */
133
- goal?: string | import("../engine/goal.js").GoalConfig;
167
+ goal?: string | import("../goal/lifecycle.js").GoalConfig;
134
168
  }
135
169
  export interface RunResult {
136
170
  text: string;
@@ -138,10 +172,59 @@ export interface RunResult {
138
172
  sessionId: string;
139
173
  turnCount: number;
140
174
  usage: TokenUsage;
175
+ /** Structured results reported by the active behavior profile. */
176
+ extensions?: Record<string, unknown>;
177
+ petWorkDelegation?: LegacyPetWorkDelegation;
141
178
  }
179
+ export interface FullForkSessionParams {
180
+ sourceSessionId: string;
181
+ targetSessionId?: string;
182
+ mode: "full";
183
+ /** Ephemeral side fork: snapshot only the last completed conversation turn. */
184
+ forkKind?: "side";
185
+ /** Inclusive source event cursor; omitted freezes the current tail. */
186
+ throughEventId?: string;
187
+ /** Desktop host ownership generation; ignored by protocol-only hosts. */
188
+ quickChatClaimId?: string;
189
+ }
190
+ export interface SummaryForkSessionParams {
191
+ sourceSessionId: string;
192
+ targetSessionId?: string;
193
+ mode: "summary";
194
+ /** Inclusive stable source event range. */
195
+ fromEventId: string;
196
+ toEventId: string;
197
+ }
198
+ export type ForkSessionParams = FullForkSessionParams | SummaryForkSessionParams;
199
+ export interface FullForkSessionResult {
200
+ sessionId: string;
201
+ mode: "full";
202
+ forkedFrom: SessionForkLineage;
203
+ workspace: SessionWorkspace;
204
+ copiedEventCount: number;
205
+ titleSuggestion?: string;
206
+ }
207
+ export interface SummaryForkSessionResult {
208
+ sessionId: string;
209
+ mode: "summary";
210
+ summary: string;
211
+ sourceRange: {
212
+ fromEventId: string;
213
+ toEventId: string;
214
+ };
215
+ estimatedTokens: number;
216
+ forkedFrom: SessionForkLineage;
217
+ workspace: SessionWorkspace;
218
+ titleSuggestion?: string;
219
+ }
220
+ export type ForkSessionResult = FullForkSessionResult | SummaryForkSessionResult;
142
221
  /** Respond to an approval request from the server. */
143
222
  export interface ApproveParams {
144
223
  sessionId: string;
224
+ /** Connection owner echoed from ApprovalRequestNotification when present. */
225
+ connectionId?: string;
226
+ /** Session-owner generation echoed from ApprovalRequestNotification when present. */
227
+ generation?: number;
145
228
  requestId: string;
146
229
  decision: ApprovalResult;
147
230
  }
@@ -158,6 +241,11 @@ export interface CloseSessionParams {
158
241
  export interface ReleaseWorkspaceParams {
159
242
  sessionId: string;
160
243
  }
244
+ /** Persist and rebase a session workspace through its owning Engine. */
245
+ export interface SetWorkspaceParams {
246
+ sessionId: string;
247
+ workspace: SessionWorkspace;
248
+ }
161
249
  /** Inject context into a session transcript. */
162
250
  export interface InjectParams {
163
251
  sessionId: string;
@@ -180,6 +268,36 @@ export interface UnsteerParams {
180
268
  sessionId: string;
181
269
  id: string;
182
270
  }
271
+ /** Discover renderer-safe metadata for enabled installed plugin commands. */
272
+ export interface PluginCommandsListParams {
273
+ cwd: string;
274
+ }
275
+ export interface ProtocolPluginCommandDescriptor {
276
+ name: string;
277
+ pluginName: string;
278
+ description: string;
279
+ argumentHint?: string;
280
+ }
281
+ export interface PluginCommandsListResult {
282
+ commands: ProtocolPluginCommandDescriptor[];
283
+ }
284
+ /** Expand one enabled command inside the trusted host; command bodies stay server-side. */
285
+ export interface PluginCommandExpandParams {
286
+ cwd: string;
287
+ name: string;
288
+ rawArguments?: string;
289
+ }
290
+ export interface PluginCommandExpandResult {
291
+ prompt: string;
292
+ }
293
+ /** Edit or pause/resume a persisted goal without replacing its identity. */
294
+ export interface GoalUpdateParams {
295
+ sessionId: string;
296
+ objective?: string;
297
+ paused?: boolean;
298
+ expectedGoalId: string;
299
+ expectedRevision: number;
300
+ }
183
301
  /** Update runtime configuration. */
184
302
  export interface ConfigureParams {
185
303
  /** When present, configure that specific chat session. Otherwise worker-global. */
@@ -209,7 +327,8 @@ export interface ConfigureParams {
209
327
  }
210
328
  /** Query server state. */
211
329
  export interface QueryParams {
212
- type: "sessions" | "tools" | "config" | "session_detail" | "compact" | "config_set" | "config_get" | "permission_set" | "models" | "providers" | "arena_status" | "provider_add" | "provider_refresh" | "provider_delete" | "model_add" | "model_delete";
330
+ /** Built-in query name or a trusted CapabilityModule query contribution. */
331
+ type: string;
213
332
  sessionId?: string;
214
333
  /** Used by config_set / permission_set: dotted key path or mode field */
215
334
  key?: string;
@@ -219,6 +338,10 @@ export interface QueryParams {
219
338
  provider?: unknown;
220
339
  /** Used by model_add: the new model entry */
221
340
  model?: unknown;
341
+ /** Used by archive_range: half-open message-index window start (inclusive). */
342
+ start?: unknown;
343
+ /** Used by archive_range: half-open message-index window end (exclusive). */
344
+ end?: unknown;
222
345
  }
223
346
  export interface QueryResult {
224
347
  type: string;
@@ -294,6 +417,10 @@ export interface AgentStreamEventNotification {
294
417
  export interface ApprovalRequestNotification {
295
418
  /** Originating engine session when known. */
296
419
  sessionId?: string;
420
+ /** Connection owner required by strict multi-connection hosts. */
421
+ connectionId?: string;
422
+ /** Monotonic owner generation required by strict multi-connection hosts. */
423
+ generation?: number;
297
424
  requestId: string;
298
425
  request: ApprovalRequest;
299
426
  }
@@ -308,8 +435,14 @@ export interface StatusNotification {
308
435
  status: "ready" | "running" | "error" | "shutdown";
309
436
  message?: string;
310
437
  }
438
+ /** Server accepted and queued an agent/run request after synchronous validation. */
439
+ export interface RunAcceptedNotification {
440
+ requestId: string | number;
441
+ sessionId: string;
442
+ }
311
443
  export declare const Methods: {
312
444
  readonly Run: "agent/run";
445
+ readonly ForkSession: "agent/forkSession";
313
446
  readonly Approve: "agent/approve";
314
447
  readonly Cancel: "agent/cancel";
315
448
  readonly Configure: "agent/configure";
@@ -324,8 +457,14 @@ export declare const Methods: {
324
457
  readonly CloseSession: "agent/closeSession";
325
458
  /** Reset a session's workspace binding to main without closing it. */
326
459
  readonly ReleaseWorkspace: "agent/releaseWorkspace";
460
+ /** Persist a workspace pointer through the live session owner. */
461
+ readonly SetWorkspace: "agent/setWorkspace";
327
462
  /** Extend a running goal's turn/budget ceilings mid-run (TODO 3.1). */
328
463
  readonly GoalExtend: "agent/goalExtend";
464
+ /** Edit or pause/resume a session's persisted goal. */
465
+ readonly GoalUpdate: "agent/goalUpdate";
466
+ /** Delete a persisted goal (explicit alias of goalClear). */
467
+ readonly GoalDelete: "agent/goalDelete";
329
468
  /** Clear a session's persisted active goal (CC /goal clear). */
330
469
  readonly GoalClear: "agent/goalClear";
331
470
  /** Read a session's persisted active goal, to re-surface it on session load. */
@@ -336,12 +475,23 @@ export declare const Methods: {
336
475
  * for the desktop background panel. Output/kill of a shell still goes through
337
476
  * BackgroundShells by shellId; this is list-only across all three kinds. */
338
477
  readonly BackgroundWork: "agent/backgroundWork";
478
+ /** Read-only bounded Pet projection plus the ordered-delta cursor. */
479
+ readonly GetPetProjectionSnapshot: "agent/getPetProjectionSnapshot";
480
+ /** Discover enabled plugin slash commands without exposing their source bodies or file paths. */
481
+ readonly PluginCommandsList: "pluginCommands/list";
482
+ /** Expand one enabled plugin command into a reviewable prompt draft. */
483
+ readonly PluginCommandExpand: "pluginCommands/expand";
484
+ readonly RunAccepted: "agent/runAccepted";
339
485
  readonly StreamEvent: "agent/streamEvent";
340
486
  readonly ApprovalRequest: "agent/approvalRequest";
341
487
  /** Server-initiated resolution of a pending approval/ask (e.g. a goal-mode
342
488
  * AskUserQuestion that timed out) so every client can dismiss its stale card
343
489
  * without a user decision. Same envelope the desktop main broadcasts. */
344
490
  readonly ApprovalResolved: "agent/approvalResolved";
491
+ /** A worker-side settings resource changed on disk and mounted clients
492
+ * should invalidate their cached settings/catalog reads. */
493
+ readonly SettingsChanged: "agent/settingsChanged";
494
+ readonly PetProjectionDelta: "agent/petProjectionDelta";
345
495
  readonly Status: "agent/status";
346
496
  };
347
497
  export declare function createRequest(method: string, params?: Record<string, unknown>): RpcRequest;
@@ -29,6 +29,7 @@ export const ErrorCodes = {
29
29
  export const Methods = {
30
30
  // Client → Server
31
31
  Run: "agent/run",
32
+ ForkSession: "agent/forkSession",
32
33
  Approve: "agent/approve",
33
34
  Cancel: "agent/cancel",
34
35
  Configure: "agent/configure",
@@ -43,8 +44,14 @@ export const Methods = {
43
44
  CloseSession: "agent/closeSession",
44
45
  /** Reset a session's workspace binding to main without closing it. */
45
46
  ReleaseWorkspace: "agent/releaseWorkspace",
47
+ /** Persist a workspace pointer through the live session owner. */
48
+ SetWorkspace: "agent/setWorkspace",
46
49
  /** Extend a running goal's turn/budget ceilings mid-run (TODO 3.1). */
47
50
  GoalExtend: "agent/goalExtend",
51
+ /** Edit or pause/resume a session's persisted goal. */
52
+ GoalUpdate: "agent/goalUpdate",
53
+ /** Delete a persisted goal (explicit alias of goalClear). */
54
+ GoalDelete: "agent/goalDelete",
48
55
  /** Clear a session's persisted active goal (CC /goal clear). */
49
56
  GoalClear: "agent/goalClear",
50
57
  /** Read a session's persisted active goal, to re-surface it on session load. */
@@ -55,13 +62,24 @@ export const Methods = {
55
62
  * for the desktop background panel. Output/kill of a shell still goes through
56
63
  * BackgroundShells by shellId; this is list-only across all three kinds. */
57
64
  BackgroundWork: "agent/backgroundWork",
65
+ /** Read-only bounded Pet projection plus the ordered-delta cursor. */
66
+ GetPetProjectionSnapshot: "agent/getPetProjectionSnapshot",
67
+ /** Discover enabled plugin slash commands without exposing their source bodies or file paths. */
68
+ PluginCommandsList: "pluginCommands/list",
69
+ /** Expand one enabled plugin command into a reviewable prompt draft. */
70
+ PluginCommandExpand: "pluginCommands/expand",
58
71
  // Server → Client (notifications, no id)
72
+ RunAccepted: "agent/runAccepted",
59
73
  StreamEvent: "agent/streamEvent",
60
74
  ApprovalRequest: "agent/approvalRequest",
61
75
  /** Server-initiated resolution of a pending approval/ask (e.g. a goal-mode
62
76
  * AskUserQuestion that timed out) so every client can dismiss its stale card
63
77
  * without a user decision. Same envelope the desktop main broadcasts. */
64
78
  ApprovalResolved: "agent/approvalResolved",
79
+ /** A worker-side settings resource changed on disk and mounted clients
80
+ * should invalidate their cached settings/catalog reads. */
81
+ SettingsChanged: "agent/settingsChanged",
82
+ PetProjectionDelta: "agent/petProjectionDelta",
65
83
  Status: "agent/status",
66
84
  };
67
85
  // ─── Helpers ────────────────────────────────────────────────────────
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Listens to StreamEvents and identifies:
5
5
  * - Files written or edited (Write / Edit tool results)
6
- * - Files created by Bash commands (mkdir, touch, cp, git commit, etc.)
6
+ * - Files created by generic Bash redirection/copy commands
7
+ * - Domain-specific outputs recognized by capability detectors
7
8
  * - Structured outputs (e.g., generated configs, test results)
8
9
  *
9
10
  * Design constraint (§14):
@@ -13,14 +14,17 @@
13
14
  */
14
15
  import type { StreamEvent } from "../types.js";
15
16
  import type { RunStore } from "./RunStore.js";
17
+ import type { CapabilityArtifactDetector } from "../capabilities/index.js";
16
18
  export interface ArtifactTrackerConfig {
17
19
  runId: string;
18
20
  store: RunStore;
21
+ detectors?: readonly CapabilityArtifactDetector[];
19
22
  }
20
23
  export declare class ArtifactTracker {
21
24
  private readonly config;
22
25
  private readonly pendingCalls;
23
26
  private readonly recordedPaths;
27
+ private readonly recordedLocators;
24
28
  constructor(config: ArtifactTrackerConfig);
25
29
  /**
26
30
  * Feed a StreamEvent to the tracker.
@@ -30,6 +34,7 @@ export declare class ArtifactTracker {
30
34
  getRecordedPaths(): string[];
31
35
  private processToolResult;
32
36
  private recordFileArtifact;
37
+ private recordArtifact;
33
38
  /**
34
39
  * Extract artifact refs from Bash commands.
35
40
  * Only track commands that clearly produce files.
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Listens to StreamEvents and identifies:
5
5
  * - Files written or edited (Write / Edit tool results)
6
- * - Files created by Bash commands (mkdir, touch, cp, git commit, etc.)
6
+ * - Files created by generic Bash redirection/copy commands
7
+ * - Domain-specific outputs recognized by capability detectors
7
8
  * - Structured outputs (e.g., generated configs, test results)
8
9
  *
9
10
  * Design constraint (§14):
@@ -17,6 +18,7 @@ export class ArtifactTracker {
17
18
  config;
18
19
  pendingCalls = new Map();
19
20
  recordedPaths = new Set();
21
+ recordedLocators = new Set();
20
22
  constructor(config) {
21
23
  this.config = config;
22
24
  }
@@ -60,11 +62,16 @@ export class ArtifactTracker {
60
62
  case "Bash":
61
63
  await this.extractBashArtifacts(call.args.command, resultText);
62
64
  break;
63
- case "NotebookEdit":
64
- if (call.args.notebook_path) {
65
- await this.recordFileArtifact(call.args.notebook_path, "output", "document");
66
- }
67
- break;
65
+ }
66
+ for (const detector of this.config.detectors ?? []) {
67
+ const detected = detector({
68
+ toolName: call.toolName,
69
+ args: call.args,
70
+ resultText,
71
+ });
72
+ for (const artifact of detected ? (Array.isArray(detected) ? detected : [detected]) : []) {
73
+ await this.recordArtifact(artifact);
74
+ }
68
75
  }
69
76
  }
70
77
  async recordFileArtifact(filePath, role, kind) {
@@ -77,6 +84,7 @@ export class ArtifactTracker {
77
84
  if (this.recordedPaths.has(filePath))
78
85
  return;
79
86
  this.recordedPaths.add(filePath);
87
+ this.recordedLocators.add(filePath);
80
88
  const ref = {
81
89
  artifactRefId: nanoid(12),
82
90
  runId: this.config.runId,
@@ -89,6 +97,21 @@ export class ArtifactTracker {
89
97
  };
90
98
  await this.config.store.appendArtifactRef(ref);
91
99
  }
100
+ async recordArtifact(artifact) {
101
+ if (!artifact.locator || this.recordedLocators.has(artifact.locator))
102
+ return;
103
+ this.recordedLocators.add(artifact.locator);
104
+ await this.config.store.appendArtifactRef({
105
+ artifactRefId: nanoid(12),
106
+ runId: this.config.runId,
107
+ kind: artifact.kind,
108
+ title: artifact.title,
109
+ locator: artifact.locator,
110
+ role: artifact.role,
111
+ version: null,
112
+ metadata: artifact.metadata ?? {},
113
+ });
114
+ }
92
115
  /**
93
116
  * Extract artifact refs from Bash commands.
94
117
  * Only track commands that clearly produce files.
@@ -97,21 +120,6 @@ export class ArtifactTracker {
97
120
  if (!command)
98
121
  return;
99
122
  const trimmed = command.trim();
100
- // git commit — the commit itself is an artifact
101
- if (/^git\s+commit\b/.test(trimmed)) {
102
- const ref = {
103
- artifactRefId: nanoid(12),
104
- runId: this.config.runId,
105
- kind: "resource",
106
- title: "git commit",
107
- locator: "git:HEAD",
108
- role: "output",
109
- version: null,
110
- metadata: { command: trimmed.slice(0, 200) },
111
- };
112
- await this.config.store.appendArtifactRef(ref);
113
- return;
114
- }
115
123
  // Redirect output: command > file or command >> file (quoted-path aware)
116
124
  const redirectTarget = parseRedirectTarget(trimmed);
117
125
  if (redirectTarget) {
@@ -13,6 +13,7 @@ import type { ClientDefaults, LLMConfig, RegisteredTool } from "../types.js";
13
13
  import type { RunSnapshot, RunExecutionContext, RunExecutionResult } from "./types.js";
14
14
  import { type RunLifecycleHooks } from "./RunApprovalBackend.js";
15
15
  import type { ApprovalBackend } from "../tool-system/permission.js";
16
+ import type { CapabilityModule } from "../capabilities/index.js";
16
17
  /** Unattended runs (those with an injected approval backend) run headless so
17
18
  * the in-process AgentServer does not wire an interactive askUser. Exported
18
19
  * for unit testing the decision rule. */
@@ -72,6 +73,7 @@ export interface EngineRunnerConfig {
72
73
  permissionMode?: EngineConfig["permissionMode"];
73
74
  enabledBuiltinTools?: string[];
74
75
  disabledBuiltinTools?: string[];
76
+ capabilities?: readonly CapabilityModule[];
75
77
  customSystemPrompt?: string;
76
78
  appendSystemPrompt?: string;
77
79
  mcpServers?: EngineConfig["mcpServers"];
@@ -85,6 +85,7 @@ export class EngineRunner {
85
85
  preset: run.preset,
86
86
  enabledBuiltinTools: this.config.enabledBuiltinTools,
87
87
  disabledBuiltinTools: this.config.disabledBuiltinTools,
88
+ capabilities: this.config.capabilities,
88
89
  customSystemPrompt: this.config.customSystemPrompt,
89
90
  // NOTE: callers must not pass appendSystemPrompt in engineConfigOverrides
90
91
  // below, or it will clobber this composed (automation note + host) value.
@@ -14,6 +14,7 @@ import type { RunStore } from "./RunStore.js";
14
14
  import { type EngineRunnerConfig, type RunExecutor } from "./EngineRunner.js";
15
15
  import { type Evaluator } from "./Evaluator.js";
16
16
  import type { RunSnapshot, RunEvent, SubmitRunInput, ResumeRunInput, ListRunsQuery, RunStreamCallback, DetachFn } from "./types.js";
17
+ import { type CapabilityModule } from "../capabilities/index.js";
17
18
  export interface RunManagerConfig {
18
19
  store: RunStore;
19
20
  /**
@@ -35,6 +36,8 @@ export interface RunManagerConfig {
35
36
  defaultTags?: string[];
36
37
  /** Metadata merged into every submitted run. Submit input wins on conflicts. */
37
38
  defaultMetadata?: Record<string, unknown>;
39
+ /** Product/domain capabilities used by the built-in runner and artifact tracker. */
40
+ capabilities?: readonly CapabilityModule[];
38
41
  }
39
42
  export declare class RunManager {
40
43
  private readonly store;
@@ -42,9 +45,19 @@ export declare class RunManager {
42
45
  private readonly runner;
43
46
  private readonly lock;
44
47
  private readonly heartbeat;
48
+ /**
49
+ * Page size for crash-recovery scans (see listAllByStatus).
50
+ *
51
+ * Deliberately NOT a constructor option: hosts have no reason to tune it, and
52
+ * exposing it would invite a caller to re-introduce the UI's 50-row default.
53
+ * Tests override it to exercise the multi-page loop cheaply.
54
+ */
55
+ private recoverPageSize;
45
56
  private readonly evaluator;
46
57
  private readonly defaultTags;
47
58
  private readonly defaultMetadata;
59
+ private readonly defaultPreset;
60
+ private readonly artifactDetectors;
48
61
  private readonly subscribers;
49
62
  private readonly abortControllers;
50
63
  /** Active execution handles — used to resolve pending approvals/input while Engine is suspended */
@@ -81,6 +94,19 @@ export declare class RunManager {
81
94
  * Returns the IDs of recovered runs.
82
95
  */
83
96
  recover(): Promise<string[]>;
97
+ /**
98
+ * Drain EVERY run with the given status, page by page.
99
+ *
100
+ * `store.list()` defaults to `limit: 50` because it backs a UI list. Crash
101
+ * recovery must not inherit a UI page size: with 55 stale running runs, the
102
+ * bare `list({ status })` call recovered the first 50 and left the remaining 5
103
+ * pinned in "running" forever (no later pass would revisit them, because
104
+ * recovery only runs at startup).
105
+ *
106
+ * Pages until a short page arrives. `maxPages` is a runaway guard for a store
107
+ * that ignores `offset` — without it a buggy store would loop forever.
108
+ */
109
+ private listAllByStatus;
84
110
  /**
85
111
  * Graceful shutdown — stop all heartbeats and release all locks.
86
112
  */