@cjhyy/code-shell-core 0.7.1 → 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 (594) 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 +7 -3
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +17 -1
  26. package/dist/context/manager.js +36 -1
  27. package/dist/credentials/access.d.ts +3 -1
  28. package/dist/credentials/access.js +24 -3
  29. package/dist/credentials/index.d.ts +1 -1
  30. package/dist/credentials/index.js +1 -1
  31. package/dist/credentials/oauth.d.ts +4 -1
  32. package/dist/credentials/oauth.js +14 -0
  33. package/dist/credentials/store.d.ts +15 -1
  34. package/dist/credentials/store.js +17 -4
  35. package/dist/credentials/types.d.ts +24 -0
  36. package/dist/credentials/use-credential-tool.js +15 -1
  37. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  38. package/dist/engine/auxiliary-pipeline.js +181 -0
  39. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  40. package/dist/{settings → engine}/disk-defaults.js +5 -2
  41. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  42. package/dist/engine/dynamic-tool-defs.js +4 -0
  43. package/dist/engine/engine.d.ts +254 -195
  44. package/dist/engine/engine.js +1812 -2041
  45. package/dist/engine/file-history-hook.d.ts +11 -0
  46. package/dist/engine/file-history-hook.js +31 -0
  47. package/dist/engine/goal-judge-context.d.ts +9 -0
  48. package/dist/engine/goal-judge-context.js +234 -0
  49. package/dist/engine/injected-context-cache.d.ts +6 -0
  50. package/dist/engine/injected-context-cache.js +13 -0
  51. package/dist/engine/input-attachments.d.ts +1 -1
  52. package/dist/engine/model-facade.d.ts +3 -3
  53. package/dist/engine/model-facade.js +15 -14
  54. package/dist/engine/permission-controller.d.ts +55 -0
  55. package/dist/engine/permission-controller.js +148 -0
  56. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  57. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  58. package/dist/engine/run-accounting.d.ts +41 -0
  59. package/dist/engine/run-accounting.js +126 -0
  60. package/dist/engine/run-context.d.ts +44 -0
  61. package/dist/engine/run-context.js +88 -0
  62. package/dist/engine/run-environment.d.ts +30 -0
  63. package/dist/engine/run-environment.js +77 -0
  64. package/dist/engine/run-finalize.d.ts +58 -0
  65. package/dist/engine/run-finalize.js +245 -0
  66. package/dist/engine/run-goal.d.ts +58 -0
  67. package/dist/engine/run-goal.js +188 -0
  68. package/dist/engine/run-image-input.d.ts +1 -1
  69. package/dist/engine/run-image-input.js +5 -3
  70. package/dist/engine/run-session-open.d.ts +41 -0
  71. package/dist/engine/run-session-open.js +186 -0
  72. package/dist/engine/run-setup.d.ts +42 -0
  73. package/dist/engine/run-setup.js +58 -0
  74. package/dist/engine/run-tooling.d.ts +125 -0
  75. package/dist/engine/run-tooling.js +283 -0
  76. package/dist/engine/run-types.d.ts +139 -0
  77. package/dist/engine/run-types.js +12 -0
  78. package/dist/engine/run-workspace.d.ts +50 -0
  79. package/dist/engine/run-workspace.js +114 -0
  80. package/dist/engine/steer-queue.d.ts +1 -1
  81. package/dist/engine/subagent-spawner.d.ts +32 -0
  82. package/dist/engine/subagent-spawner.js +287 -0
  83. package/dist/engine/tool-summary.d.ts +2 -2
  84. package/dist/engine/tool-summary.js +2 -2
  85. package/dist/engine/turn-loop.d.ts +49 -10
  86. package/dist/engine/turn-loop.js +370 -104
  87. package/dist/engine/types.d.ts +30 -3
  88. package/dist/engine/types.js +1 -1
  89. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
  90. package/dist/goal/lifecycle.js +482 -0
  91. package/dist/hooks/events.d.ts +24 -10
  92. package/dist/hooks/goal-stop-hook.d.ts +17 -28
  93. package/dist/hooks/goal-stop-hook.js +110 -465
  94. package/dist/hooks/registry.js +1 -1
  95. package/dist/index.d.ts +48 -108
  96. package/dist/index.extension.d.ts +51 -0
  97. package/dist/index.extension.js +39 -0
  98. package/dist/index.internal.d.ts +86 -0
  99. package/dist/index.internal.js +92 -0
  100. package/dist/index.js +34 -123
  101. package/dist/links/cli.d.ts +48 -0
  102. package/dist/links/cli.js +617 -0
  103. package/dist/links/http.d.ts +40 -0
  104. package/dist/links/http.js +166 -0
  105. package/dist/links/index.d.ts +4 -0
  106. package/dist/links/index.js +3 -0
  107. package/dist/links/link-action-tool.d.ts +5 -0
  108. package/dist/links/link-action-tool.js +241 -0
  109. package/dist/links/providers.d.ts +8 -0
  110. package/dist/links/providers.js +665 -0
  111. package/dist/links/types.d.ts +44 -0
  112. package/dist/llm/client-base.d.ts +7 -0
  113. package/dist/llm/client-base.js +60 -0
  114. package/dist/llm/model-pool.d.ts +1 -1
  115. package/dist/llm/model-pool.js +1 -1
  116. package/dist/llm/providers/anthropic.d.ts +1 -0
  117. package/dist/llm/providers/anthropic.js +9 -0
  118. package/dist/llm/providers/openai.d.ts +1 -0
  119. package/dist/llm/providers/openai.js +17 -0
  120. package/dist/model-catalog/index.js +15 -2
  121. package/dist/model-catalog/resolve.d.ts +13 -1
  122. package/dist/model-catalog/resolve.js +37 -2
  123. package/dist/model-catalog/types.d.ts +74 -48
  124. package/dist/model-catalog/types.js +16 -5
  125. package/dist/model-catalog/upsert.d.ts +3 -1
  126. package/dist/model-catalog/upsert.js +9 -0
  127. package/dist/onboarding.d.ts +0 -1
  128. package/dist/onboarding.js +1 -22
  129. package/dist/panel-apps/bindings.d.ts +24 -0
  130. package/dist/panel-apps/bindings.js +69 -0
  131. package/dist/panel-apps/github-archive.d.ts +21 -0
  132. package/dist/panel-apps/github-archive.js +98 -0
  133. package/dist/panel-apps/index.d.ts +4 -0
  134. package/dist/panel-apps/index.js +4 -0
  135. package/dist/panel-apps/installer.d.ts +68 -0
  136. package/dist/panel-apps/installer.js +622 -0
  137. package/dist/panel-apps/manifest.d.ts +364 -0
  138. package/dist/panel-apps/manifest.js +189 -0
  139. package/dist/panel-apps/paths.d.ts +13 -0
  140. package/dist/panel-apps/paths.js +38 -0
  141. package/dist/panel-apps/registry.d.ts +51 -0
  142. package/dist/panel-apps/registry.js +99 -0
  143. package/dist/panel-apps/runtime.d.ts +80 -0
  144. package/dist/panel-apps/runtime.js +154 -0
  145. package/dist/plugins/gitOps.js +8 -1
  146. package/dist/plugins/installedPlugins.d.ts +2 -1
  147. package/dist/plugins/installedPlugins.js +146 -8
  148. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  149. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  150. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  151. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  152. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  153. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  154. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  155. package/dist/plugins/installer/install.d.ts +7 -1
  156. package/dist/plugins/installer/install.js +21 -87
  157. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  158. package/dist/plugins/installer/installFromArchive.js +44 -27
  159. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  160. package/dist/plugins/installer/installFromNpm.js +273 -0
  161. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  162. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  163. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  164. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  165. package/dist/plugins/installer/normalizeManifest.js +306 -0
  166. package/dist/plugins/installer/npmTar.d.ts +13 -0
  167. package/dist/plugins/installer/npmTar.js +321 -0
  168. package/dist/plugins/installer/parseSource.d.ts +11 -0
  169. package/dist/plugins/installer/parseSource.js +48 -0
  170. package/dist/plugins/installer/preview.d.ts +101 -0
  171. package/dist/plugins/installer/preview.js +336 -0
  172. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  173. package/dist/plugins/installer/projectPluginSource.js +140 -0
  174. package/dist/plugins/installer/types.d.ts +775 -0
  175. package/dist/plugins/installer/types.js +100 -0
  176. package/dist/plugins/installer/unzip.d.ts +11 -0
  177. package/dist/plugins/installer/unzip.js +123 -9
  178. package/dist/plugins/installer/update.d.ts +2 -2
  179. package/dist/plugins/installer/update.js +43 -4
  180. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  181. package/dist/plugins/loadPluginHooks.js +97 -86
  182. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  183. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  184. package/dist/plugins/pluginCatalog.d.ts +45 -0
  185. package/dist/plugins/pluginCatalog.js +87 -0
  186. package/dist/plugins/pluginCommandHook.d.ts +6 -0
  187. package/dist/plugins/pluginCommandHook.js +25 -8
  188. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  189. package/dist/plugins/pluginCommandsLoader.js +181 -7
  190. package/dist/plugins/pluginContent.d.ts +10 -1
  191. package/dist/plugins/pluginContent.js +87 -30
  192. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  193. package/dist/plugins/pluginHookApproval.js +160 -0
  194. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  195. package/dist/plugins/pluginHookIntegrity.js +361 -0
  196. package/dist/plugins/pluginInstaller.js +71 -12
  197. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  198. package/dist/plugins/pluginMcpApproval.js +110 -0
  199. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  200. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  201. package/dist/plugins/types.d.ts +30 -0
  202. package/dist/plugins/varRewrite.d.ts +9 -5
  203. package/dist/plugins/varRewrite.js +26 -17
  204. package/dist/preset/index.d.ts +11 -8
  205. package/dist/preset/index.js +62 -203
  206. package/dist/product/define.js +9 -3
  207. package/dist/product/types.d.ts +0 -2
  208. package/dist/profile/activation.d.ts +36 -0
  209. package/dist/profile/activation.js +57 -0
  210. package/dist/profile/catalog-store.d.ts +77 -0
  211. package/dist/profile/catalog-store.js +346 -0
  212. package/dist/profile/catalog.d.ts +54 -0
  213. package/dist/profile/catalog.js +152 -0
  214. package/dist/profile/index.d.ts +7 -0
  215. package/dist/profile/index.js +7 -0
  216. package/dist/profile/requirements.d.ts +76 -0
  217. package/dist/profile/requirements.js +117 -0
  218. package/dist/profile/resolve.d.ts +11 -0
  219. package/dist/profile/resolve.js +41 -0
  220. package/dist/profile/store.d.ts +17 -0
  221. package/dist/profile/store.js +167 -0
  222. package/dist/profile/types.d.ts +321 -0
  223. package/dist/profile/types.js +104 -0
  224. package/dist/prompt/composer.d.ts +46 -7
  225. package/dist/prompt/composer.js +78 -48
  226. package/dist/prompt/instruction-scanner.d.ts +6 -5
  227. package/dist/prompt/instruction-scanner.js +8 -23
  228. package/dist/prompt/section-loader.d.ts +2 -2
  229. package/dist/prompt/section-loader.js +7 -4
  230. package/dist/prompt/sections/browser.md +10 -9
  231. package/dist/prompt/sections/harness-base.md +9 -0
  232. package/dist/protocol/chat-session-manager.d.ts +64 -1
  233. package/dist/protocol/chat-session-manager.js +104 -0
  234. package/dist/protocol/chat-session.d.ts +61 -10
  235. package/dist/protocol/chat-session.js +135 -25
  236. package/dist/protocol/client.d.ts +33 -3
  237. package/dist/protocol/client.js +96 -5
  238. package/dist/protocol/index.d.ts +2 -2
  239. package/dist/protocol/index.js +2 -2
  240. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  241. package/dist/protocol/mobile-remote-types.js +1 -0
  242. package/dist/protocol/server.d.ts +127 -3
  243. package/dist/protocol/server.js +1309 -182
  244. package/dist/protocol/types.d.ts +152 -34
  245. package/dist/protocol/types.js +16 -0
  246. package/dist/run/ArtifactTracker.d.ts +6 -1
  247. package/dist/run/ArtifactTracker.js +29 -21
  248. package/dist/run/EngineRunner.d.ts +2 -0
  249. package/dist/run/EngineRunner.js +1 -0
  250. package/dist/run/RunManager.d.ts +26 -0
  251. package/dist/run/RunManager.js +82 -11
  252. package/dist/run/factory.d.ts +3 -0
  253. package/dist/run/factory.js +2 -0
  254. package/dist/runtime/safe-spawn.d.ts +6 -0
  255. package/dist/runtime/safe-spawn.js +8 -13
  256. package/dist/services/auto-dream.d.ts +13 -1
  257. package/dist/services/auto-dream.js +56 -8
  258. package/dist/services/dream-consolidation.js +10 -1
  259. package/dist/services/memory-orchestrator.js +6 -2
  260. package/dist/services/oauth.js +4 -1
  261. package/dist/services/session-memory.d.ts +4 -4
  262. package/dist/services/session-memory.js +13 -10
  263. package/dist/session/memory.d.ts +26 -7
  264. package/dist/session/memory.js +79 -21
  265. package/dist/session/session-manager.d.ts +182 -28
  266. package/dist/session/session-manager.js +910 -130
  267. package/dist/session/session-message.d.ts +22 -0
  268. package/dist/session/session-message.js +1 -0
  269. package/dist/session/transcript.d.ts +46 -5
  270. package/dist/session/transcript.js +159 -3
  271. package/dist/settings/feature-flags.d.ts +40 -0
  272. package/dist/settings/feature-flags.js +40 -0
  273. package/dist/settings/manager.d.ts +39 -1
  274. package/dist/settings/manager.js +102 -41
  275. package/dist/settings/migrate-config.js +4 -2
  276. package/dist/settings/schema.d.ts +511 -177
  277. package/dist/settings/schema.js +98 -25
  278. package/dist/skills/scanner.d.ts +6 -2
  279. package/dist/skills/scanner.js +160 -9
  280. package/dist/sources/adapter.d.ts +14 -0
  281. package/dist/sources/adapter.js +7 -0
  282. package/dist/sources/adapters/local-files.d.ts +10 -0
  283. package/dist/sources/adapters/local-files.js +127 -0
  284. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  285. package/dist/sources/adapters/mcp-resource.js +41 -0
  286. package/dist/sources/adapters/mock.d.ts +3 -0
  287. package/dist/sources/adapters/mock.js +29 -0
  288. package/dist/sources/binding.d.ts +6 -0
  289. package/dist/sources/binding.js +24 -0
  290. package/dist/sources/catalog.d.ts +6 -0
  291. package/dist/sources/catalog.js +64 -0
  292. package/dist/sources/context-summary.d.ts +8 -0
  293. package/dist/sources/context-summary.js +13 -0
  294. package/dist/sources/credential-status.d.ts +2 -0
  295. package/dist/sources/credential-status.js +13 -0
  296. package/dist/sources/index.d.ts +10 -0
  297. package/dist/sources/index.js +10 -0
  298. package/dist/sources/resolve.d.ts +28 -0
  299. package/dist/sources/resolve.js +47 -0
  300. package/dist/sources/truncate-utf8.d.ts +7 -0
  301. package/dist/sources/truncate-utf8.js +18 -0
  302. package/dist/sources/types.d.ts +71 -0
  303. package/dist/sources/types.js +26 -0
  304. package/dist/testing/fetch-stub.d.ts +32 -0
  305. package/dist/testing/fetch-stub.js +24 -0
  306. package/dist/themes/image.d.ts +18 -0
  307. package/dist/themes/image.js +117 -0
  308. package/dist/themes/index.d.ts +4 -0
  309. package/dist/themes/index.js +4 -0
  310. package/dist/themes/installer.d.ts +50 -0
  311. package/dist/themes/installer.js +290 -0
  312. package/dist/themes/manifest.d.ts +102 -0
  313. package/dist/themes/manifest.js +86 -0
  314. package/dist/themes/paths.d.ts +14 -0
  315. package/dist/themes/paths.js +33 -0
  316. package/dist/tool-system/browser-bridge.d.ts +53 -11
  317. package/dist/tool-system/browser-bridge.js +8 -9
  318. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  319. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  320. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  321. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  322. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  323. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  324. package/dist/tool-system/builtin/agent-progress.js +83 -0
  325. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  326. package/dist/tool-system/builtin/agent-registry.js +178 -9
  327. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  328. package/dist/tool-system/builtin/agent.d.ts +2 -0
  329. package/dist/tool-system/builtin/agent.js +274 -33
  330. package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
  331. package/dist/tool-system/builtin/background-jobs.js +96 -4
  332. package/dist/tool-system/builtin/background-work.d.ts +6 -0
  333. package/dist/tool-system/builtin/background-work.js +8 -1
  334. package/dist/tool-system/builtin/bash.js +5 -2
  335. package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
  336. package/dist/tool-system/builtin/browser-tools.js +89 -23
  337. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  338. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  339. package/dist/tool-system/builtin/edit.js +2 -6
  340. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  341. package/dist/tool-system/builtin/file-cache.js +4 -0
  342. package/dist/tool-system/builtin/generate-image.js +17 -10
  343. package/dist/tool-system/builtin/generate-video.js +26 -7
  344. package/dist/tool-system/builtin/grep.js +2 -2
  345. package/dist/tool-system/builtin/image-uploader.js +7 -1
  346. package/dist/tool-system/builtin/index.d.ts +32 -7
  347. package/dist/tool-system/builtin/index.js +237 -167
  348. package/dist/tool-system/builtin/memory.d.ts +6 -0
  349. package/dist/tool-system/builtin/memory.js +36 -15
  350. package/dist/tool-system/builtin/panel.d.ts +9 -0
  351. package/dist/tool-system/builtin/panel.js +314 -0
  352. package/dist/tool-system/builtin/read.js +5 -1
  353. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  354. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  355. package/dist/tool-system/builtin/sources.d.ts +8 -0
  356. package/dist/tool-system/builtin/sources.js +137 -0
  357. package/dist/tool-system/builtin/tool-search.js +7 -2
  358. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  359. package/dist/tool-system/builtin/web-fetch.js +17 -13
  360. package/dist/tool-system/builtin/web-search.js +1 -3
  361. package/dist/tool-system/capability-module.d.ts +93 -0
  362. package/dist/tool-system/capability-module.js +53 -0
  363. package/dist/tool-system/context.d.ts +77 -19
  364. package/dist/tool-system/executor.js +75 -50
  365. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  366. package/dist/tool-system/external-tool-exposure.js +304 -0
  367. package/dist/tool-system/mcp-manager.d.ts +11 -1
  368. package/dist/tool-system/mcp-manager.js +19 -4
  369. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  370. package/dist/tool-system/mcp-tool-policy.js +34 -0
  371. package/dist/tool-system/panel-bridge.d.ts +53 -0
  372. package/dist/tool-system/panel-bridge.js +1 -0
  373. package/dist/tool-system/permission.d.ts +26 -0
  374. package/dist/tool-system/permission.js +46 -0
  375. package/dist/tool-system/registry.d.ts +12 -1
  376. package/dist/tool-system/registry.js +31 -7
  377. package/dist/tool-system/sandbox/index.js +3 -8
  378. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  379. package/dist/tool-system/session-tool-host.d.ts +139 -0
  380. package/dist/tool-system/session-tool-host.js +167 -0
  381. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  382. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  383. package/dist/tool-system/validation.d.ts +14 -7
  384. package/dist/tool-system/validation.js +701 -7
  385. package/dist/types.d.ts +186 -20
  386. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  387. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  388. package/dist/utils/file-mutex.d.ts +65 -0
  389. package/dist/utils/file-mutex.js +145 -0
  390. package/dist/utils/json.d.ts +2 -4
  391. package/dist/utils/json.js +2 -4
  392. package/dist/utils/lockfile.d.ts +30 -1
  393. package/dist/utils/lockfile.js +2 -2
  394. package/dist/utils/secret-scrubber.d.ts +8 -0
  395. package/dist/utils/secret-scrubber.js +227 -0
  396. package/dist/utils/toolDisplay.js +1 -1
  397. package/package.json +20 -5
  398. package/THIRD_PARTY_NOTICES.md +0 -206
  399. package/dist/arena/arena.d.ts +0 -45
  400. package/dist/arena/arena.js +0 -362
  401. package/dist/arena/context/context-tools.d.ts +0 -16
  402. package/dist/arena/context/context-tools.js +0 -272
  403. package/dist/arena/context/within-root.d.ts +0 -7
  404. package/dist/arena/context/within-root.js +0 -15
  405. package/dist/arena/detect-mode.d.ts +0 -20
  406. package/dist/arena/detect-mode.js +0 -78
  407. package/dist/arena/digest-builder.d.ts +0 -25
  408. package/dist/arena/digest-builder.js +0 -120
  409. package/dist/arena/index.d.ts +0 -29
  410. package/dist/arena/index.js +0 -29
  411. package/dist/arena/iterate/convergence.d.ts +0 -25
  412. package/dist/arena/iterate/convergence.js +0 -103
  413. package/dist/arena/iterate/formats/index.d.ts +0 -22
  414. package/dist/arena/iterate/formats/index.js +0 -283
  415. package/dist/arena/iterate/index.d.ts +0 -11
  416. package/dist/arena/iterate/index.js +0 -9
  417. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  418. package/dist/arena/iterate/iterative-arena.js +0 -237
  419. package/dist/arena/iterate/parse.d.ts +0 -42
  420. package/dist/arena/iterate/parse.js +0 -123
  421. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  422. package/dist/arena/iterate/phases/argue.js +0 -165
  423. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  424. package/dist/arena/iterate/phases/revise.js +0 -62
  425. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  426. package/dist/arena/iterate/phases/tournament.js +0 -113
  427. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  428. package/dist/arena/iterate/tools/web-tools.js +0 -54
  429. package/dist/arena/iterate/types.d.ts +0 -152
  430. package/dist/arena/iterate/types.js +0 -8
  431. package/dist/arena/ledger.d.ts +0 -47
  432. package/dist/arena/ledger.js +0 -159
  433. package/dist/arena/lenses/architecture.d.ts +0 -5
  434. package/dist/arena/lenses/architecture.js +0 -22
  435. package/dist/arena/lenses/engineering.d.ts +0 -5
  436. package/dist/arena/lenses/engineering.js +0 -22
  437. package/dist/arena/lenses/general.d.ts +0 -5
  438. package/dist/arena/lenses/general.js +0 -20
  439. package/dist/arena/lenses/index.d.ts +0 -16
  440. package/dist/arena/lenses/index.js +0 -47
  441. package/dist/arena/lenses/product.d.ts +0 -5
  442. package/dist/arena/lenses/product.js +0 -22
  443. package/dist/arena/model-presets.d.ts +0 -23
  444. package/dist/arena/model-presets.js +0 -44
  445. package/dist/arena/phases/adjudication.d.ts +0 -25
  446. package/dist/arena/phases/adjudication.js +0 -142
  447. package/dist/arena/phases/build-consensus.d.ts +0 -30
  448. package/dist/arena/phases/build-consensus.js +0 -85
  449. package/dist/arena/phases/claim-registry.d.ts +0 -26
  450. package/dist/arena/phases/claim-registry.js +0 -60
  451. package/dist/arena/phases/cross-review.d.ts +0 -47
  452. package/dist/arena/phases/cross-review.js +0 -224
  453. package/dist/arena/phases/debate-rounds.d.ts +0 -28
  454. package/dist/arena/phases/debate-rounds.js +0 -161
  455. package/dist/arena/phases/participant-research.d.ts +0 -39
  456. package/dist/arena/phases/participant-research.js +0 -316
  457. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
  458. package/dist/arena/phases/planning-detail-expansion.js +0 -120
  459. package/dist/arena/planner.d.ts +0 -28
  460. package/dist/arena/planner.js +0 -312
  461. package/dist/arena/providers/docs.d.ts +0 -7
  462. package/dist/arena/providers/docs.js +0 -111
  463. package/dist/arena/providers/git.d.ts +0 -8
  464. package/dist/arena/providers/git.js +0 -174
  465. package/dist/arena/providers/index.d.ts +0 -32
  466. package/dist/arena/providers/index.js +0 -132
  467. package/dist/arena/providers/none.d.ts +0 -7
  468. package/dist/arena/providers/none.js +0 -11
  469. package/dist/arena/providers/repo.d.ts +0 -7
  470. package/dist/arena/providers/repo.js +0 -258
  471. package/dist/arena/render/session.d.ts +0 -17
  472. package/dist/arena/render/session.js +0 -190
  473. package/dist/arena/render/terminal.d.ts +0 -34
  474. package/dist/arena/render/terminal.js +0 -286
  475. package/dist/arena/strategies/discussion.d.ts +0 -25
  476. package/dist/arena/strategies/discussion.js +0 -143
  477. package/dist/arena/strategies/index.d.ts +0 -15
  478. package/dist/arena/strategies/index.js +0 -28
  479. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  480. package/dist/arena/strategies/language-wrapper.js +0 -102
  481. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  482. package/dist/arena/strategies/lens-wrapper.js +0 -236
  483. package/dist/arena/strategies/planning.d.ts +0 -30
  484. package/dist/arena/strategies/planning.js +0 -225
  485. package/dist/arena/strategies/review.d.ts +0 -26
  486. package/dist/arena/strategies/review.js +0 -168
  487. package/dist/arena/strategies/utils.d.ts +0 -36
  488. package/dist/arena/strategies/utils.js +0 -603
  489. package/dist/arena/tools/selector.d.ts +0 -17
  490. package/dist/arena/tools/selector.js +0 -61
  491. package/dist/arena/transitions.d.ts +0 -53
  492. package/dist/arena/transitions.js +0 -97
  493. package/dist/arena/types.d.ts +0 -518
  494. package/dist/arena/types.js +0 -27
  495. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  496. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  497. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  498. package/dist/cc-orchestrator/cc-capability.js +0 -53
  499. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  500. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  501. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  502. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  503. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  504. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  505. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  506. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  507. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  508. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  509. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  510. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  511. package/dist/cc-orchestrator/index.d.ts +0 -8
  512. package/dist/cc-orchestrator/index.js +0 -8
  513. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  514. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  515. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  516. package/dist/cc-orchestrator/session-discovery.js +0 -125
  517. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  518. package/dist/cc-orchestrator/session-history.js +0 -150
  519. package/dist/cron/cron-runtime.d.ts +0 -2
  520. package/dist/cron/cron-runtime.js +0 -2
  521. package/dist/cron/cron-store.d.ts +0 -2
  522. package/dist/cron/cron-store.js +0 -2
  523. package/dist/cron/scheduler.d.ts +0 -7
  524. package/dist/cron/scheduler.js +0 -7
  525. package/dist/engine/goal.js +0 -206
  526. package/dist/external-agents/config.d.ts +0 -2
  527. package/dist/external-agents/config.js +0 -15
  528. package/dist/external-agents/types.d.ts +0 -31
  529. package/dist/git/parse-log.d.ts +0 -13
  530. package/dist/git/parse-log.js +0 -21
  531. package/dist/git/utils.d.ts +0 -49
  532. package/dist/git/utils.js +0 -161
  533. package/dist/git/worktree/crud.d.ts +0 -72
  534. package/dist/git/worktree/crud.js +0 -235
  535. package/dist/git/worktree/diff.d.ts +0 -14
  536. package/dist/git/worktree/diff.js +0 -82
  537. package/dist/git/worktree/git-exec.d.ts +0 -7
  538. package/dist/git/worktree/git-exec.js +0 -87
  539. package/dist/git/worktree/index.d.ts +0 -5
  540. package/dist/git/worktree/index.js +0 -5
  541. package/dist/git/worktree/query.d.ts +0 -43
  542. package/dist/git/worktree/query.js +0 -128
  543. package/dist/git/worktree/slug.d.ts +0 -11
  544. package/dist/git/worktree/slug.js +0 -58
  545. package/dist/git/worktree.d.ts +0 -1
  546. package/dist/git/worktree.js +0 -5
  547. package/dist/lsp/client.d.ts +0 -41
  548. package/dist/lsp/client.js +0 -186
  549. package/dist/lsp/manager.d.ts +0 -40
  550. package/dist/lsp/manager.js +0 -155
  551. package/dist/lsp/root-path.d.ts +0 -9
  552. package/dist/lsp/root-path.js +0 -12
  553. package/dist/lsp/servers.d.ts +0 -16
  554. package/dist/lsp/servers.js +0 -60
  555. package/dist/prompt/sections/coding.md +0 -35
  556. package/dist/quota/credentials.d.ts +0 -3
  557. package/dist/quota/credentials.js +0 -80
  558. package/dist/quota/index.d.ts +0 -36
  559. package/dist/quota/index.js +0 -155
  560. package/dist/quota/types.d.ts +0 -48
  561. package/dist/quota/types.js +0 -13
  562. package/dist/review/review-prompt.d.ts +0 -28
  563. package/dist/review/review-prompt.js +0 -81
  564. package/dist/state.d.ts +0 -160
  565. package/dist/state.js +0 -267
  566. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  567. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  568. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  569. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  570. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  571. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  572. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  573. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  574. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  575. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  576. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  577. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  578. package/dist/tool-system/builtin/arena.d.ts +0 -31
  579. package/dist/tool-system/builtin/arena.js +0 -416
  580. package/dist/tool-system/builtin/brief.d.ts +0 -6
  581. package/dist/tool-system/builtin/brief.js +0 -41
  582. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  583. package/dist/tool-system/builtin/check-quota.js +0 -34
  584. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  585. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  586. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  587. package/dist/tool-system/builtin/lsp.js +0 -144
  588. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  589. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  590. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  591. package/dist/tool-system/builtin/worktree.js +0 -363
  592. /package/dist/{external-agents → links}/types.js +0 -0
  593. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  594. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -11,8 +11,10 @@
11
11
  * const result = await client.run("fix the bug");
12
12
  */
13
13
  import type { Transport } from "./transport.js";
14
- import { type RunParams, type RunResult, type ForkSessionParams, type ForkSessionResult, type AgentStreamEventNotification, type ConfigureParams, type QueryParams, type QueryResult, type ApprovalRequestNotification, type ApprovalResolvedNotification } from "./types.js";
15
- import type { ApprovalRequest, ApprovalResult, PermissionMode, BackgroundAgentCompletedEvent } from "../types.js";
14
+ import { type RunParams, type RunResult, type ForkSessionParams, type ForkSessionResult, type AgentStreamEventNotification, type ConfigureParams, type QueryParams, type QueryResult, type PluginCommandsListResult, type PluginCommandExpandResult, type ApprovalRequestNotification, type ApprovalResolvedNotification } from "./types.js";
15
+ import type { ApprovalRequest, ApprovalResult, PermissionMode, BackgroundAgentCompletedEvent, SessionKind } from "../types.js";
16
+ import type { RunBehaviorMode } from "../engine/run-types.js";
17
+ import type { GoalConfig } from "../goal/lifecycle.js";
16
18
  export type ApprovalRequestMeta = Pick<ApprovalRequestNotification, "connectionId" | "sessionId" | "generation">;
17
19
  export type ApprovalResolvedEvent = ApprovalResolvedNotification;
18
20
  export interface AgentClientEvents {
@@ -28,6 +30,8 @@ export interface AgentRunOptions {
28
30
  permissionMode?: PermissionMode;
29
31
  model?: string;
30
32
  planMode?: boolean;
33
+ behaviorMode?: RunBehaviorMode;
34
+ kind?: SessionKind;
31
35
  }
32
36
  export type BackgroundAgentCompletedHandler = (sessionId: string, event: BackgroundAgentCompletedEvent) => void;
33
37
  export declare class AgentClient {
@@ -54,7 +58,7 @@ export declare class AgentClient {
54
58
  * for multi-session servers) or the legacy string form `(task, sessionId?)`
55
59
  * for backward compatibility with createInProcessClient callers.
56
60
  */
57
- run(taskOrParams: string | RunParams, sessionIdOrOptions?: string | AgentRunOptions): Promise<RunResult>;
61
+ run(taskOrParams: string | RunParams, sessionIdOrOptions?: string | AgentRunOptions, onTransportResponse?: () => void): Promise<RunResult>;
58
62
  /**
59
63
  * Respond to an approval request from the server.
60
64
  *
@@ -76,6 +80,20 @@ export declare class AgentClient {
76
80
  * a goal was actually cleared (false = there was none).
77
81
  */
78
82
  goalClear(sessionId?: string): Promise<boolean>;
83
+ /** Delete a persisted goal. Kept separate from goalClear for UI semantics. */
84
+ goalDelete(sessionId: string, expected: {
85
+ goalId: string;
86
+ revision: number;
87
+ }): Promise<boolean>;
88
+ /** Edit or pause/resume a goal while preserving its goalId. */
89
+ goalUpdate(sessionId: string, patch: {
90
+ objective?: string;
91
+ paused?: boolean;
92
+ expectedGoalId: string;
93
+ expectedRevision: number;
94
+ }): Promise<GoalConfig | null>;
95
+ /** Read the full persisted goal control state. */
96
+ goalGetState(sessionId: string): Promise<GoalConfig | null>;
79
97
  /**
80
98
  * Read a session's persisted active goal objective, or null when there's
81
99
  * none. The host calls this on session load to re-surface the goal block +
@@ -109,6 +127,13 @@ export declare class AgentClient {
109
127
  * Query server state.
110
128
  */
111
129
  query(type: QueryParams["type"], arg?: string | Record<string, unknown>, ...extra: unknown[]): Promise<QueryResult>;
130
+ /** Discover enabled installed plugin commands for one workspace. */
131
+ listPluginCommands(cwd: string): Promise<PluginCommandsListResult>;
132
+ /**
133
+ * Expand one plugin command inside the trusted server. The command source
134
+ * body and install path never cross the protocol boundary.
135
+ */
136
+ expandPluginCommand(cwd: string, name: string, rawArguments?: string): Promise<PluginCommandExpandResult>;
112
137
  /**
113
138
  * Inject context into the session transcript without triggering a LLM turn.
114
139
  * Used to make arena results, tool outputs, etc. visible to subsequent LLM calls.
@@ -139,5 +164,10 @@ export declare class AgentClient {
139
164
  private request;
140
165
  private handleResponse;
141
166
  private handleNotification;
167
+ /** Subscribe to an extension-owned server notification method. */
168
+ onExtensionNotification(method: string, handler: (params: Record<string, unknown>) => void): void;
169
+ offExtensionNotification(method: string, handler: (params: Record<string, unknown>) => void): void;
170
+ /** Issue a request to an extension-registered protocol method. */
171
+ requestExtension(method: string, params?: Record<string, unknown>): Promise<unknown>;
142
172
  close(): void;
143
173
  }
@@ -10,7 +10,7 @@
10
10
  * client.onApprovalRequest((reqId, request) => { ... });
11
11
  * const result = await client.run("fix the bug");
12
12
  */
13
- import { Methods, createRequest, isResponse, isNotification, } from "./types.js";
13
+ import { Methods, createRequest, isResponse, isNotification, ErrorCodes, } from "./types.js";
14
14
  import { EventEmitter } from "node:events";
15
15
  import { logger } from "../logging/logger.js";
16
16
  export class AgentClient {
@@ -46,7 +46,7 @@ export class AgentClient {
46
46
  * for multi-session servers) or the legacy string form `(task, sessionId?)`
47
47
  * for backward compatibility with createInProcessClient callers.
48
48
  */
49
- async run(taskOrParams, sessionIdOrOptions) {
49
+ async run(taskOrParams, sessionIdOrOptions, onTransportResponse) {
50
50
  let params;
51
51
  if (typeof taskOrParams === "string") {
52
52
  // Form: run(task, sessionId | options?)
@@ -72,7 +72,7 @@ export class AgentClient {
72
72
  // first call of a brand-new session, when sessionId is undefined.
73
73
  if (params.sessionId)
74
74
  logger.setSid(params.sessionId);
75
- const result = (await this.request(Methods.Run, params));
75
+ const result = (await this.request(Methods.Run, params, onTransportResponse));
76
76
  if (result.sessionId)
77
77
  logger.setSid(result.sessionId);
78
78
  return result;
@@ -120,6 +120,51 @@ export class AgentClient {
120
120
  const res = (await this.request(Methods.GoalClear, { sessionId }));
121
121
  return res?.cleared === true;
122
122
  }
123
+ /** Delete a persisted goal. Kept separate from goalClear for UI semantics. */
124
+ async goalDelete(sessionId, expected) {
125
+ try {
126
+ const res = (await this.request(Methods.GoalDelete, {
127
+ sessionId,
128
+ expectedGoalId: expected.goalId,
129
+ expectedRevision: expected.revision,
130
+ }));
131
+ return res?.deleted === true;
132
+ }
133
+ catch (err) {
134
+ // Compatibility only: old servers do not know GoalDelete and expose the
135
+ // unfenced GoalClear method. Never downgrade on a stale/validation error.
136
+ if (err.code !== ErrorCodes.MethodNotFound)
137
+ throw err;
138
+ return this.goalClear(sessionId);
139
+ }
140
+ }
141
+ /** Edit or pause/resume a goal while preserving its goalId. */
142
+ async goalUpdate(sessionId, patch) {
143
+ const res = (await this.request(Methods.GoalUpdate, {
144
+ sessionId,
145
+ ...patch,
146
+ }));
147
+ if (res?.updated !== true || !res.goal)
148
+ return null;
149
+ return {
150
+ objective: res.goal,
151
+ ...(res.goalId ? { goalId: res.goalId } : {}),
152
+ ...(res.revision ? { revision: res.revision } : {}),
153
+ ...(res.paused === true ? { paused: true } : {}),
154
+ };
155
+ }
156
+ /** Read the full persisted goal control state. */
157
+ async goalGetState(sessionId) {
158
+ const res = (await this.request(Methods.GoalGet, { sessionId }));
159
+ if (!res?.goal)
160
+ return null;
161
+ return {
162
+ objective: res.goal,
163
+ ...(res.goalId ? { goalId: res.goalId } : {}),
164
+ ...(res.revision ? { revision: res.revision } : {}),
165
+ ...(res.paused === true ? { paused: true } : {}),
166
+ };
167
+ }
123
168
  /**
124
169
  * Read a session's persisted active goal objective, or null when there's
125
170
  * none. The host calls this on session load to re-surface the goal block +
@@ -199,6 +244,21 @@ export class AgentClient {
199
244
  }
200
245
  return this.request(Methods.Query, params);
201
246
  }
247
+ /** Discover enabled installed plugin commands for one workspace. */
248
+ async listPluginCommands(cwd) {
249
+ return this.request(Methods.PluginCommandsList, { cwd });
250
+ }
251
+ /**
252
+ * Expand one plugin command inside the trusted server. The command source
253
+ * body and install path never cross the protocol boundary.
254
+ */
255
+ async expandPluginCommand(cwd, name, rawArguments = "") {
256
+ return this.request(Methods.PluginCommandExpand, {
257
+ cwd,
258
+ name,
259
+ rawArguments,
260
+ });
261
+ }
202
262
  /**
203
263
  * Inject context into the session transcript without triggering a LLM turn.
204
264
  * Used to make arena results, tool outputs, etc. visible to subsequent LLM calls.
@@ -260,10 +320,10 @@ export class AgentClient {
260
320
  this.emitter.off("stream", wrapper);
261
321
  }
262
322
  // ─── Internals ──────────────────────────────────────────────────
263
- request(method, params) {
323
+ request(method, params, onResponse) {
264
324
  return new Promise((resolve, reject) => {
265
325
  const req = createRequest(method, params);
266
- this.pendingRequests.set(req.id, { resolve, reject });
326
+ this.pendingRequests.set(req.id, { onResponse, resolve, reject });
267
327
  this.transport.send(req);
268
328
  });
269
329
  }
@@ -272,6 +332,19 @@ export class AgentClient {
272
332
  if (!pending)
273
333
  return;
274
334
  this.pendingRequests.delete(res.id);
335
+ // Emit before resolving/rejecting: Promise continuations run in a later
336
+ // microtask, while the transport may synchronously parse the next queued
337
+ // session_started notification in the same chunk.
338
+ if (pending.onResponse) {
339
+ try {
340
+ pending.onResponse();
341
+ }
342
+ catch (error) {
343
+ logger.warn("client.run_response_handler_failed", {
344
+ error: error instanceof Error ? error.message : String(error),
345
+ });
346
+ }
347
+ }
275
348
  if (res.error) {
276
349
  // Attach both message and code so callers can do toMatchObject({ code }).
277
350
  const err = new Error(`[${res.error.code}] ${res.error.message}`);
@@ -327,8 +400,26 @@ export class AgentClient {
327
400
  this.emitter.emit("status", status, message);
328
401
  break;
329
402
  }
403
+ default: {
404
+ // Extension-owned notification methods (e.g. projection deltas pushed
405
+ // by a ProtocolObserver via host.notify) surface through a generic
406
+ // per-method channel; core knows nothing about their payloads.
407
+ this.emitter.emit(`notification:${notif.method}`, params);
408
+ break;
409
+ }
330
410
  }
331
411
  }
412
+ /** Subscribe to an extension-owned server notification method. */
413
+ onExtensionNotification(method, handler) {
414
+ this.emitter.on(`notification:${method}`, handler);
415
+ }
416
+ offExtensionNotification(method, handler) {
417
+ this.emitter.off(`notification:${method}`, handler);
418
+ }
419
+ /** Issue a request to an extension-registered protocol method. */
420
+ async requestExtension(method, params) {
421
+ return this.request(method, params);
422
+ }
332
423
  close() {
333
424
  // Reject all pending requests
334
425
  for (const [, pending] of this.pendingRequests) {
@@ -1,4 +1,4 @@
1
1
  export { AgentServer, type AgentServerOptions } from "./server.js";
2
2
  export { AgentClient } from "./client.js";
3
- export { createInProcessTransport, StdioTransport, type Transport, } from "./transport.js";
4
- export { Methods, ErrorCodes, type RpcMessage, type RunResult } from "./types.js";
3
+ export { createInProcessTransport, StdioTransport, type Transport } from "./transport.js";
4
+ export { Methods, ErrorCodes, type RpcMessage, type RunResult, type PluginCommandsListParams, type PluginCommandsListResult, type ProtocolPluginCommandDescriptor, type PluginCommandExpandParams, type PluginCommandExpandResult, } from "./types.js";
@@ -1,4 +1,4 @@
1
1
  export { AgentServer } from "./server.js";
2
2
  export { AgentClient } from "./client.js";
3
- export { createInProcessTransport, StdioTransport, } from "./transport.js";
4
- export { Methods, ErrorCodes } from "./types.js";
3
+ export { createInProcessTransport, StdioTransport } from "./transport.js";
4
+ export { Methods, ErrorCodes, } from "./types.js";
@@ -0,0 +1,406 @@
1
+ /**
2
+ * Mobile remote wire-protocol DTOs (pairing / rooms / attachments / CC rooms).
3
+ * Moved here from @cjhyy/code-shell-server so that client packages (web) can
4
+ * consume the protocol contract without depending on the server implementation
5
+ * package — this file must stay pure types (no runtime code).
6
+ */
7
+ import type { PermissionMode as CorePermissionMode } from "../types.js";
8
+ /** Permission modes supported by the mobile remote wire protocol. */
9
+ export type MobileRemotePermissionMode = Extract<CorePermissionMode, "default" | "acceptEdits" | "bypassPermissions">;
10
+ type PermissionMode = MobileRemotePermissionMode;
11
+ export interface TrustedDevice {
12
+ id: string;
13
+ name: string;
14
+ secretHash: string;
15
+ createdAt: number;
16
+ lastSeenAt?: number;
17
+ revokedAt?: number;
18
+ }
19
+ export interface TrustedDevicePublic {
20
+ id: string;
21
+ name: string;
22
+ createdAt: number;
23
+ lastSeenAt?: number;
24
+ revokedAt?: number;
25
+ }
26
+ export interface PairingToken {
27
+ value: string;
28
+ expiresAt: number;
29
+ }
30
+ /** Where a remembered permission grant applies (mirrors desktop approve). */
31
+ export type ApprovalScope = "once" | "session" | "project";
32
+ /** Path breadth for a remembered grant (path-scoped tools only). */
33
+ export type ApprovalPathScope = "file" | "dir" | "tool";
34
+ /** Mirror of core DiscoveredSession (mobile-remote can't import core). */
35
+ export interface CcDiscoveredSession {
36
+ sessionId: string;
37
+ /** External CLI's authoritative cwd. Older hosts may omit it. */
38
+ cwd?: string;
39
+ firstMessage: string;
40
+ lastModified: number;
41
+ messageCount: number;
42
+ }
43
+ /** Mirror of core HistoryMessage. */
44
+ export interface CcHistoryMessage {
45
+ role: "user" | "assistant";
46
+ text: string;
47
+ tools?: {
48
+ name: string;
49
+ summary: string;
50
+ args?: Record<string, unknown>;
51
+ }[];
52
+ ts?: number;
53
+ }
54
+ /** Mirror of cc-room ApprovalDecision. `answer` carries the user's
55
+ * AskUserQuestion choice (string; multiSelect joins labels with ", "). */
56
+ export type CcApprovalDecision = {
57
+ behavior: "allow";
58
+ updatedInput?: unknown;
59
+ answer?: string;
60
+ } | {
61
+ behavior: "deny";
62
+ message: string;
63
+ };
64
+ export interface MobilePermissionModeSnapshotEntry {
65
+ sessionId: string;
66
+ mode: PermissionMode;
67
+ }
68
+ export interface MobileProjectMeta {
69
+ path: string;
70
+ name: string;
71
+ addedAt?: number;
72
+ pinned?: boolean;
73
+ }
74
+ export type MobileImageMime = "image/png" | "image/jpeg" | "image/webp" | "image/gif";
75
+ export interface MobileImageBase {
76
+ clientId: string;
77
+ name: string;
78
+ mime: MobileImageMime;
79
+ size: number;
80
+ }
81
+ export type MobileImageAttachment = (MobileImageBase & {
82
+ transport: "inline";
83
+ dataUrl: string;
84
+ }) | (MobileImageBase & {
85
+ transport: "upload";
86
+ uploadId: string;
87
+ });
88
+ export type MobileAttachmentSummary = MobileImageBase;
89
+ export type MobileClientEvent = {
90
+ type: "auth.device";
91
+ deviceId: string;
92
+ secretHash: string;
93
+ } | {
94
+ type: "pair.complete";
95
+ token: string;
96
+ name: string;
97
+ secretHash: string;
98
+ } | {
99
+ type: "chat.send";
100
+ text: string;
101
+ sessionId?: string;
102
+ clientMessageId?: string;
103
+ attachments?: MobileImageAttachment[];
104
+ } | {
105
+ type: "attachment.upload.begin";
106
+ clientId: string;
107
+ name: string;
108
+ mime: string;
109
+ size: number;
110
+ } | {
111
+ type: "session.select";
112
+ sessionId: string;
113
+ } | {
114
+ type: "session.create";
115
+ cwd?: string | null;
116
+ name?: string;
117
+ } | {
118
+ type: "run.stop";
119
+ sessionId?: string;
120
+ } | {
121
+ type: "approval.respond";
122
+ approvalId: string;
123
+ decision: "approve" | "reject";
124
+ sessionId?: string;
125
+ reason?: string;
126
+ answer?: string;
127
+ scope?: ApprovalScope;
128
+ pathScope?: ApprovalPathScope;
129
+ } | {
130
+ type: "session.list";
131
+ } | {
132
+ type: "session.history";
133
+ sessionId: string;
134
+ } | {
135
+ type: "session.sync";
136
+ sessionId: string;
137
+ sinceSeq?: number;
138
+ } | {
139
+ type: "permission.setMode";
140
+ sessionId?: string;
141
+ mode: PermissionMode;
142
+ } | {
143
+ type: "model.set";
144
+ model: string;
145
+ } | {
146
+ type: "goal.extend";
147
+ sessionId: string;
148
+ addTurns?: number;
149
+ addTokenBudget?: number;
150
+ addTimeBudgetMs?: number;
151
+ addStopBlocks?: number;
152
+ } | {
153
+ type: "goal.clear";
154
+ sessionId: string;
155
+ } | {
156
+ type: "room.list";
157
+ } | {
158
+ type: "room.projects";
159
+ } | {
160
+ type: "room.create";
161
+ name?: string;
162
+ cwd: string;
163
+ kind?: "claude-code" | "codex";
164
+ permissionMode?: "default" | "acceptEdits" | "bypassPermissions";
165
+ } | {
166
+ type: "room.open";
167
+ roomId: string;
168
+ } | {
169
+ type: "room.close";
170
+ roomId: string;
171
+ } | {
172
+ type: "room.send";
173
+ roomId: string;
174
+ text: string;
175
+ clientMessageId?: string;
176
+ attachments?: MobileImageAttachment[];
177
+ } | {
178
+ type: "room.history";
179
+ roomId: string;
180
+ sinceSeq?: number;
181
+ } | {
182
+ type: "ccRoom.probe";
183
+ force?: boolean;
184
+ kind?: "claude-code" | "codex";
185
+ } | {
186
+ type: "ccRoom.listSessions";
187
+ cwd: string;
188
+ kind?: "claude-code" | "codex";
189
+ } | {
190
+ type: "ccRoom.openSession";
191
+ sessionId: string;
192
+ cwd: string;
193
+ mode: PermissionMode;
194
+ kind?: "claude-code" | "codex";
195
+ } | {
196
+ type: "ccRoom.subscribeTranscript";
197
+ roomId: string;
198
+ sessionId: string;
199
+ cwd: string;
200
+ limit: number;
201
+ kind?: "claude-code" | "codex";
202
+ } | {
203
+ type: "ccRoom.unsubscribeTranscript";
204
+ roomId: string;
205
+ } | {
206
+ type: "ccRoom.readHistory";
207
+ cwd: string;
208
+ sessionId: string;
209
+ limit: number;
210
+ kind?: "claude-code" | "codex";
211
+ } | {
212
+ type: "ccRoom.respondApproval";
213
+ roomId: string;
214
+ requestId: string;
215
+ decision: CcApprovalDecision;
216
+ };
217
+ export type MobileServerEvent = {
218
+ type: "auth.ok";
219
+ device: TrustedDevicePublic;
220
+ } | {
221
+ type: "auth.failed";
222
+ message: string;
223
+ } | {
224
+ type: "pair.ok";
225
+ device: TrustedDevicePublic;
226
+ } | {
227
+ type: "pair.failed";
228
+ message: string;
229
+ } | {
230
+ type: "chat.accepted";
231
+ sessionId?: string;
232
+ cwd?: string | null;
233
+ clientMessageId?: string;
234
+ attachments?: MobileAttachmentSummary[];
235
+ } | {
236
+ type: "room.accepted";
237
+ roomId: string;
238
+ clientMessageId: string;
239
+ } | {
240
+ type: "attachment.upload.ready";
241
+ clientId: string;
242
+ uploadId: string;
243
+ putUrl: string;
244
+ expiresAt: number;
245
+ } | {
246
+ type: "attachment.upload.failed";
247
+ clientId: string;
248
+ message: string;
249
+ } | {
250
+ type: "approval.request";
251
+ approvalId: string;
252
+ title: string;
253
+ risk: "low" | "medium" | "high";
254
+ body: string;
255
+ } | {
256
+ type: "approval.resolved";
257
+ approvalId: string;
258
+ sessionId?: string;
259
+ approved?: boolean;
260
+ } | {
261
+ type: "error";
262
+ message: string;
263
+ clientMessageId?: string;
264
+ } | {
265
+ type: "session.list.ok";
266
+ sessions: MobileSessionMeta[];
267
+ activeSessionId?: string;
268
+ } | {
269
+ type: "session.history.ok";
270
+ sessionId: string;
271
+ events: unknown[];
272
+ } | {
273
+ type: "session.snapshot";
274
+ sessionId: string;
275
+ entries: Array<{
276
+ seq: number;
277
+ event: unknown;
278
+ }>;
279
+ nextSeq: number;
280
+ } | {
281
+ type: "session.stream";
282
+ sessionId: string;
283
+ seq: number;
284
+ event: unknown;
285
+ } | {
286
+ type: "permission.mode";
287
+ sessionId?: string;
288
+ mode: PermissionMode;
289
+ } | {
290
+ type: "model.current";
291
+ model: string;
292
+ available?: string[];
293
+ } | {
294
+ type: "goal.extended";
295
+ sessionId: string;
296
+ ok: boolean;
297
+ message?: string;
298
+ } | {
299
+ type: "goal.cleared";
300
+ sessionId: string;
301
+ ok: boolean;
302
+ cleared?: boolean;
303
+ message?: string;
304
+ } | {
305
+ type: "room.list.ok";
306
+ rooms: RoomPublic[];
307
+ } | {
308
+ type: "room.projects.ok";
309
+ projects: MobileProjectMeta[];
310
+ } | {
311
+ type: "room.opened";
312
+ roomId: string;
313
+ status: "running" | "missing" | "observing";
314
+ } | {
315
+ type: "room.message";
316
+ roomId: string;
317
+ msg: unknown;
318
+ } | {
319
+ type: "room.history.ok";
320
+ roomId: string;
321
+ messages: unknown[];
322
+ latestSeq: number;
323
+ } | {
324
+ type: "room.closed";
325
+ roomId: string;
326
+ } | {
327
+ type: "room.error";
328
+ roomId?: string;
329
+ message: string;
330
+ clientMessageId?: string;
331
+ } | {
332
+ type: "ccRoom.approvalRequest";
333
+ roomId: string;
334
+ req: {
335
+ requestId: string;
336
+ toolName: string;
337
+ displayName?: string;
338
+ input: unknown;
339
+ description?: string;
340
+ /** AskUserQuestion only: parsed prompt + option labels for a choice card. */
341
+ askUser?: {
342
+ question: string;
343
+ header?: string;
344
+ options: string[];
345
+ multiSelect: boolean;
346
+ };
347
+ };
348
+ } | {
349
+ type: "ccRoom.probe.ok";
350
+ available: boolean;
351
+ command?: string;
352
+ version?: string;
353
+ reason?: "not-found" | "not-executable";
354
+ kind: "claude-code" | "codex";
355
+ } | {
356
+ type: "ccRoom.listSessions.ok";
357
+ cwd: string;
358
+ sessions: CcDiscoveredSession[];
359
+ kind: "claude-code" | "codex";
360
+ } | {
361
+ type: "ccRoom.opened";
362
+ roomId: string;
363
+ sessionId: string;
364
+ status: "running" | "missing" | "observing";
365
+ } | {
366
+ type: "ccRoom.transcriptSubscribed";
367
+ roomId: string;
368
+ sessionId: string;
369
+ active: boolean;
370
+ messages: CcHistoryMessage[];
371
+ hasMore: boolean;
372
+ totalCount: number;
373
+ roomCursor: number;
374
+ } | {
375
+ type: "ccRoom.readHistory.ok";
376
+ sessionId: string;
377
+ messages: CcHistoryMessage[];
378
+ hasMore: boolean;
379
+ totalCount: number;
380
+ } | {
381
+ type: "ccRoom.approvalResolved";
382
+ roomId: string;
383
+ requestId: string;
384
+ decision: CcApprovalDecision;
385
+ };
386
+ export interface RoomPublic {
387
+ id: string;
388
+ name: string;
389
+ cwd: string;
390
+ kind: "claude-code" | "codex";
391
+ permissionMode: "default" | "acceptEdits" | "bypassPermissions";
392
+ createdAt: number;
393
+ lastActiveAt: number;
394
+ open: boolean;
395
+ /** True when the room is bound for transcript observation and cannot send. */
396
+ observing: boolean;
397
+ }
398
+ /** A desktop session the phone can see + drive (from listDiskSessions). */
399
+ export interface MobileSessionMeta {
400
+ id: string;
401
+ title: string;
402
+ cwd: string;
403
+ updatedAt: number;
404
+ origin: "desktop" | "automation";
405
+ }
406
+ export {};
@@ -0,0 +1 @@
1
+ export {};