@cjhyy/code-shell-core 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) 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/path-policy.js +99 -2
  374. package/dist/tool-system/permission.d.ts +26 -0
  375. package/dist/tool-system/permission.js +46 -0
  376. package/dist/tool-system/registry.d.ts +12 -1
  377. package/dist/tool-system/registry.js +31 -7
  378. package/dist/tool-system/sandbox/index.js +3 -8
  379. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  380. package/dist/tool-system/session-tool-host.d.ts +139 -0
  381. package/dist/tool-system/session-tool-host.js +167 -0
  382. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  383. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  384. package/dist/tool-system/validation.d.ts +14 -7
  385. package/dist/tool-system/validation.js +701 -7
  386. package/dist/types.d.ts +186 -20
  387. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  388. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  389. package/dist/utils/file-mutex.d.ts +65 -0
  390. package/dist/utils/file-mutex.js +145 -0
  391. package/dist/utils/json.d.ts +2 -4
  392. package/dist/utils/json.js +2 -4
  393. package/dist/utils/lockfile.d.ts +30 -1
  394. package/dist/utils/lockfile.js +2 -2
  395. package/dist/utils/secret-scrubber.d.ts +8 -0
  396. package/dist/utils/secret-scrubber.js +227 -0
  397. package/dist/utils/toolDisplay.js +1 -1
  398. package/package.json +20 -5
  399. package/THIRD_PARTY_NOTICES.md +0 -206
  400. package/dist/arena/arena.d.ts +0 -45
  401. package/dist/arena/arena.js +0 -362
  402. package/dist/arena/context/context-tools.d.ts +0 -16
  403. package/dist/arena/context/context-tools.js +0 -272
  404. package/dist/arena/context/within-root.d.ts +0 -7
  405. package/dist/arena/context/within-root.js +0 -15
  406. package/dist/arena/detect-mode.d.ts +0 -20
  407. package/dist/arena/detect-mode.js +0 -78
  408. package/dist/arena/digest-builder.d.ts +0 -25
  409. package/dist/arena/digest-builder.js +0 -120
  410. package/dist/arena/index.d.ts +0 -29
  411. package/dist/arena/index.js +0 -29
  412. package/dist/arena/iterate/convergence.d.ts +0 -25
  413. package/dist/arena/iterate/convergence.js +0 -103
  414. package/dist/arena/iterate/formats/index.d.ts +0 -22
  415. package/dist/arena/iterate/formats/index.js +0 -283
  416. package/dist/arena/iterate/index.d.ts +0 -11
  417. package/dist/arena/iterate/index.js +0 -9
  418. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  419. package/dist/arena/iterate/iterative-arena.js +0 -237
  420. package/dist/arena/iterate/parse.d.ts +0 -42
  421. package/dist/arena/iterate/parse.js +0 -123
  422. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  423. package/dist/arena/iterate/phases/argue.js +0 -165
  424. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  425. package/dist/arena/iterate/phases/revise.js +0 -62
  426. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  427. package/dist/arena/iterate/phases/tournament.js +0 -113
  428. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  429. package/dist/arena/iterate/tools/web-tools.js +0 -54
  430. package/dist/arena/iterate/types.d.ts +0 -152
  431. package/dist/arena/iterate/types.js +0 -8
  432. package/dist/arena/ledger.d.ts +0 -47
  433. package/dist/arena/ledger.js +0 -159
  434. package/dist/arena/lenses/architecture.d.ts +0 -5
  435. package/dist/arena/lenses/architecture.js +0 -22
  436. package/dist/arena/lenses/engineering.d.ts +0 -5
  437. package/dist/arena/lenses/engineering.js +0 -22
  438. package/dist/arena/lenses/general.d.ts +0 -5
  439. package/dist/arena/lenses/general.js +0 -20
  440. package/dist/arena/lenses/index.d.ts +0 -16
  441. package/dist/arena/lenses/index.js +0 -47
  442. package/dist/arena/lenses/product.d.ts +0 -5
  443. package/dist/arena/lenses/product.js +0 -22
  444. package/dist/arena/model-presets.d.ts +0 -23
  445. package/dist/arena/model-presets.js +0 -44
  446. package/dist/arena/phases/adjudication.d.ts +0 -25
  447. package/dist/arena/phases/adjudication.js +0 -142
  448. package/dist/arena/phases/build-consensus.d.ts +0 -30
  449. package/dist/arena/phases/build-consensus.js +0 -85
  450. package/dist/arena/phases/claim-registry.d.ts +0 -26
  451. package/dist/arena/phases/claim-registry.js +0 -60
  452. package/dist/arena/phases/cross-review.d.ts +0 -47
  453. package/dist/arena/phases/cross-review.js +0 -224
  454. package/dist/arena/phases/debate-rounds.d.ts +0 -28
  455. package/dist/arena/phases/debate-rounds.js +0 -161
  456. package/dist/arena/phases/participant-research.d.ts +0 -39
  457. package/dist/arena/phases/participant-research.js +0 -316
  458. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
  459. package/dist/arena/phases/planning-detail-expansion.js +0 -120
  460. package/dist/arena/planner.d.ts +0 -28
  461. package/dist/arena/planner.js +0 -312
  462. package/dist/arena/providers/docs.d.ts +0 -7
  463. package/dist/arena/providers/docs.js +0 -111
  464. package/dist/arena/providers/git.d.ts +0 -8
  465. package/dist/arena/providers/git.js +0 -174
  466. package/dist/arena/providers/index.d.ts +0 -32
  467. package/dist/arena/providers/index.js +0 -132
  468. package/dist/arena/providers/none.d.ts +0 -7
  469. package/dist/arena/providers/none.js +0 -11
  470. package/dist/arena/providers/repo.d.ts +0 -7
  471. package/dist/arena/providers/repo.js +0 -258
  472. package/dist/arena/render/session.d.ts +0 -17
  473. package/dist/arena/render/session.js +0 -190
  474. package/dist/arena/render/terminal.d.ts +0 -34
  475. package/dist/arena/render/terminal.js +0 -286
  476. package/dist/arena/strategies/discussion.d.ts +0 -25
  477. package/dist/arena/strategies/discussion.js +0 -143
  478. package/dist/arena/strategies/index.d.ts +0 -15
  479. package/dist/arena/strategies/index.js +0 -28
  480. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  481. package/dist/arena/strategies/language-wrapper.js +0 -102
  482. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  483. package/dist/arena/strategies/lens-wrapper.js +0 -236
  484. package/dist/arena/strategies/planning.d.ts +0 -30
  485. package/dist/arena/strategies/planning.js +0 -225
  486. package/dist/arena/strategies/review.d.ts +0 -26
  487. package/dist/arena/strategies/review.js +0 -168
  488. package/dist/arena/strategies/utils.d.ts +0 -36
  489. package/dist/arena/strategies/utils.js +0 -603
  490. package/dist/arena/tools/selector.d.ts +0 -17
  491. package/dist/arena/tools/selector.js +0 -61
  492. package/dist/arena/transitions.d.ts +0 -53
  493. package/dist/arena/transitions.js +0 -97
  494. package/dist/arena/types.d.ts +0 -518
  495. package/dist/arena/types.js +0 -27
  496. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  497. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  498. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  499. package/dist/cc-orchestrator/cc-capability.js +0 -53
  500. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  501. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  502. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  503. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  504. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  505. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  506. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  507. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  508. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  509. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  510. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  511. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  512. package/dist/cc-orchestrator/index.d.ts +0 -8
  513. package/dist/cc-orchestrator/index.js +0 -8
  514. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  515. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  516. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  517. package/dist/cc-orchestrator/session-discovery.js +0 -125
  518. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  519. package/dist/cc-orchestrator/session-history.js +0 -150
  520. package/dist/cron/cron-runtime.d.ts +0 -2
  521. package/dist/cron/cron-runtime.js +0 -2
  522. package/dist/cron/cron-store.d.ts +0 -2
  523. package/dist/cron/cron-store.js +0 -2
  524. package/dist/cron/scheduler.d.ts +0 -7
  525. package/dist/cron/scheduler.js +0 -7
  526. package/dist/engine/goal.js +0 -206
  527. package/dist/external-agents/config.d.ts +0 -2
  528. package/dist/external-agents/config.js +0 -15
  529. package/dist/external-agents/types.d.ts +0 -31
  530. package/dist/git/parse-log.d.ts +0 -13
  531. package/dist/git/parse-log.js +0 -21
  532. package/dist/git/utils.d.ts +0 -49
  533. package/dist/git/utils.js +0 -161
  534. package/dist/git/worktree/crud.d.ts +0 -72
  535. package/dist/git/worktree/crud.js +0 -235
  536. package/dist/git/worktree/diff.d.ts +0 -14
  537. package/dist/git/worktree/diff.js +0 -82
  538. package/dist/git/worktree/git-exec.d.ts +0 -7
  539. package/dist/git/worktree/git-exec.js +0 -87
  540. package/dist/git/worktree/index.d.ts +0 -5
  541. package/dist/git/worktree/index.js +0 -5
  542. package/dist/git/worktree/query.d.ts +0 -43
  543. package/dist/git/worktree/query.js +0 -128
  544. package/dist/git/worktree/slug.d.ts +0 -11
  545. package/dist/git/worktree/slug.js +0 -58
  546. package/dist/git/worktree.d.ts +0 -1
  547. package/dist/git/worktree.js +0 -5
  548. package/dist/lsp/client.d.ts +0 -41
  549. package/dist/lsp/client.js +0 -186
  550. package/dist/lsp/manager.d.ts +0 -40
  551. package/dist/lsp/manager.js +0 -155
  552. package/dist/lsp/root-path.d.ts +0 -9
  553. package/dist/lsp/root-path.js +0 -12
  554. package/dist/lsp/servers.d.ts +0 -16
  555. package/dist/lsp/servers.js +0 -60
  556. package/dist/prompt/sections/coding.md +0 -35
  557. package/dist/quota/credentials.d.ts +0 -3
  558. package/dist/quota/credentials.js +0 -80
  559. package/dist/quota/index.d.ts +0 -36
  560. package/dist/quota/index.js +0 -155
  561. package/dist/quota/types.d.ts +0 -48
  562. package/dist/quota/types.js +0 -13
  563. package/dist/review/review-prompt.d.ts +0 -28
  564. package/dist/review/review-prompt.js +0 -81
  565. package/dist/state.d.ts +0 -160
  566. package/dist/state.js +0 -267
  567. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  568. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  569. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  570. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  571. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  572. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  573. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  574. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  575. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  576. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  577. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  578. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  579. package/dist/tool-system/builtin/arena.d.ts +0 -31
  580. package/dist/tool-system/builtin/arena.js +0 -416
  581. package/dist/tool-system/builtin/brief.d.ts +0 -6
  582. package/dist/tool-system/builtin/brief.js +0 -41
  583. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  584. package/dist/tool-system/builtin/check-quota.js +0 -34
  585. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  586. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  587. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  588. package/dist/tool-system/builtin/lsp.js +0 -144
  589. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  590. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  591. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  592. package/dist/tool-system/builtin/worktree.js +0 -363
  593. /package/dist/{external-agents → links}/types.js +0 -0
  594. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  595. /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 {};