@cjhyy/code-shell-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/README.md +36 -23
  2. package/dist/agent/agent-definition-registry.d.ts +2 -2
  3. package/dist/agent/agent-definition-registry.js +47 -10
  4. package/dist/agent/agent-definition.d.ts +5 -0
  5. package/dist/agent/agent-definition.js +14 -0
  6. package/dist/automation/index.d.ts +7 -4
  7. package/dist/automation/index.js +4 -2
  8. package/dist/automation/runner.js +3 -1
  9. package/dist/automation/scheduler.d.ts +57 -1
  10. package/dist/automation/scheduler.js +123 -23
  11. package/dist/automation/store.d.ts +6 -2
  12. package/dist/automation/store.js +7 -3
  13. package/dist/capabilities/index.d.ts +109 -0
  14. package/dist/capabilities/index.js +80 -0
  15. package/dist/capability-control/disabled-lists.d.ts +2 -1
  16. package/dist/capability-control/disabled-lists.js +3 -5
  17. package/dist/capability-control/overlay.d.ts +14 -1
  18. package/dist/capability-control/overlay.js +40 -0
  19. package/dist/capability-control/service.js +6 -4
  20. package/dist/cli/agent-server-stdio.d.ts +1 -1
  21. package/dist/cli/agent-server-stdio.js +66 -6
  22. package/dist/cli/agent-server-tcp.js +20 -5
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +20 -4
  26. package/dist/context/manager.js +42 -7
  27. package/dist/context/token-counter.js +5 -3
  28. package/dist/context/tool-result-storage.d.ts +6 -0
  29. package/dist/context/tool-result-storage.js +25 -4
  30. package/dist/credentials/access.d.ts +13 -2
  31. package/dist/credentials/access.js +99 -4
  32. package/dist/credentials/index.d.ts +3 -2
  33. package/dist/credentials/index.js +2 -1
  34. package/dist/credentials/oauth.d.ts +9 -1
  35. package/dist/credentials/oauth.js +80 -1
  36. package/dist/credentials/store.d.ts +16 -2
  37. package/dist/credentials/store.js +33 -11
  38. package/dist/credentials/types.d.ts +62 -1
  39. package/dist/credentials/types.js +16 -1
  40. package/dist/credentials/use-credential-tool.js +15 -1
  41. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  42. package/dist/engine/auxiliary-pipeline.js +181 -0
  43. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  44. package/dist/{settings → engine}/disk-defaults.js +5 -2
  45. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  46. package/dist/engine/dynamic-tool-defs.js +4 -0
  47. package/dist/engine/engine.d.ts +272 -184
  48. package/dist/engine/engine.js +1869 -1864
  49. package/dist/engine/file-history-hook.d.ts +11 -0
  50. package/dist/engine/file-history-hook.js +31 -0
  51. package/dist/engine/goal-judge-context.d.ts +9 -0
  52. package/dist/engine/goal-judge-context.js +234 -0
  53. package/dist/engine/injected-context-cache.d.ts +6 -0
  54. package/dist/engine/injected-context-cache.js +13 -0
  55. package/dist/engine/input-attachments.d.ts +1 -1
  56. package/dist/engine/model-facade.d.ts +3 -3
  57. package/dist/engine/model-facade.js +15 -14
  58. package/dist/engine/permission-controller.d.ts +55 -0
  59. package/dist/engine/permission-controller.js +148 -0
  60. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  61. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  62. package/dist/engine/run-accounting.d.ts +41 -0
  63. package/dist/engine/run-accounting.js +126 -0
  64. package/dist/engine/run-context.d.ts +44 -0
  65. package/dist/engine/run-context.js +88 -0
  66. package/dist/engine/run-environment.d.ts +30 -0
  67. package/dist/engine/run-environment.js +77 -0
  68. package/dist/engine/run-finalize.d.ts +58 -0
  69. package/dist/engine/run-finalize.js +245 -0
  70. package/dist/engine/run-goal.d.ts +58 -0
  71. package/dist/engine/run-goal.js +188 -0
  72. package/dist/engine/run-image-input.d.ts +1 -1
  73. package/dist/engine/run-image-input.js +5 -3
  74. package/dist/engine/run-session-open.d.ts +41 -0
  75. package/dist/engine/run-session-open.js +186 -0
  76. package/dist/engine/run-setup.d.ts +42 -0
  77. package/dist/engine/run-setup.js +58 -0
  78. package/dist/engine/run-tooling.d.ts +125 -0
  79. package/dist/engine/run-tooling.js +283 -0
  80. package/dist/engine/run-types.d.ts +139 -0
  81. package/dist/engine/run-types.js +12 -0
  82. package/dist/engine/run-workspace.d.ts +50 -0
  83. package/dist/engine/run-workspace.js +114 -0
  84. package/dist/engine/session-title.d.ts +2 -1
  85. package/dist/engine/session-title.js +4 -1
  86. package/dist/engine/steer-queue.d.ts +1 -1
  87. package/dist/engine/subagent-spawner.d.ts +32 -0
  88. package/dist/engine/subagent-spawner.js +287 -0
  89. package/dist/engine/tool-summary.d.ts +2 -2
  90. package/dist/engine/tool-summary.js +2 -2
  91. package/dist/engine/turn-loop.d.ts +67 -10
  92. package/dist/engine/turn-loop.js +538 -97
  93. package/dist/engine/types.d.ts +35 -4
  94. package/dist/engine/types.js +1 -1
  95. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
  96. package/dist/goal/lifecycle.js +482 -0
  97. package/dist/hooks/events.d.ts +26 -9
  98. package/dist/hooks/events.js +0 -3
  99. package/dist/hooks/goal-stop-hook.d.ts +28 -29
  100. package/dist/hooks/goal-stop-hook.js +344 -144
  101. package/dist/hooks/registry.js +4 -1
  102. package/dist/hooks/shell-runner.d.ts +12 -1
  103. package/dist/hooks/shell-runner.js +160 -9
  104. package/dist/index.d.ts +51 -110
  105. package/dist/index.extension.d.ts +51 -0
  106. package/dist/index.extension.js +39 -0
  107. package/dist/index.internal.d.ts +86 -0
  108. package/dist/index.internal.js +92 -0
  109. package/dist/index.js +37 -125
  110. package/dist/links/cli.d.ts +48 -0
  111. package/dist/links/cli.js +617 -0
  112. package/dist/links/http.d.ts +40 -0
  113. package/dist/links/http.js +166 -0
  114. package/dist/links/index.d.ts +4 -0
  115. package/dist/links/index.js +3 -0
  116. package/dist/links/link-action-tool.d.ts +5 -0
  117. package/dist/links/link-action-tool.js +241 -0
  118. package/dist/links/providers.d.ts +8 -0
  119. package/dist/links/providers.js +665 -0
  120. package/dist/links/types.d.ts +44 -0
  121. package/dist/llm/client-base.d.ts +7 -0
  122. package/dist/llm/client-base.js +72 -10
  123. package/dist/llm/model-pool.d.ts +1 -1
  124. package/dist/llm/model-pool.js +1 -1
  125. package/dist/llm/providers/anthropic.d.ts +1 -0
  126. package/dist/llm/providers/anthropic.js +9 -0
  127. package/dist/llm/providers/openai.d.ts +1 -0
  128. package/dist/llm/providers/openai.js +17 -0
  129. package/dist/llm/types.d.ts +12 -5
  130. package/dist/model-catalog/index.js +15 -2
  131. package/dist/model-catalog/resolve.d.ts +13 -1
  132. package/dist/model-catalog/resolve.js +37 -2
  133. package/dist/model-catalog/types.d.ts +74 -48
  134. package/dist/model-catalog/types.js +16 -5
  135. package/dist/model-catalog/upsert.d.ts +3 -1
  136. package/dist/model-catalog/upsert.js +9 -0
  137. package/dist/onboarding.d.ts +0 -1
  138. package/dist/onboarding.js +1 -22
  139. package/dist/panel-apps/bindings.d.ts +24 -0
  140. package/dist/panel-apps/bindings.js +69 -0
  141. package/dist/panel-apps/github-archive.d.ts +21 -0
  142. package/dist/panel-apps/github-archive.js +98 -0
  143. package/dist/panel-apps/index.d.ts +4 -0
  144. package/dist/panel-apps/index.js +4 -0
  145. package/dist/panel-apps/installer.d.ts +68 -0
  146. package/dist/panel-apps/installer.js +622 -0
  147. package/dist/panel-apps/manifest.d.ts +364 -0
  148. package/dist/panel-apps/manifest.js +189 -0
  149. package/dist/panel-apps/paths.d.ts +13 -0
  150. package/dist/panel-apps/paths.js +38 -0
  151. package/dist/panel-apps/registry.d.ts +51 -0
  152. package/dist/panel-apps/registry.js +99 -0
  153. package/dist/panel-apps/runtime.d.ts +80 -0
  154. package/dist/panel-apps/runtime.js +154 -0
  155. package/dist/plugins/gitOps.js +8 -1
  156. package/dist/plugins/installedPlugins.d.ts +2 -1
  157. package/dist/plugins/installedPlugins.js +146 -8
  158. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  159. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  160. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  161. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  162. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  163. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  164. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  165. package/dist/plugins/installer/install.d.ts +7 -1
  166. package/dist/plugins/installer/install.js +21 -87
  167. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  168. package/dist/plugins/installer/installFromArchive.js +44 -27
  169. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  170. package/dist/plugins/installer/installFromNpm.js +273 -0
  171. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  172. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  173. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  174. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  175. package/dist/plugins/installer/normalizeManifest.js +306 -0
  176. package/dist/plugins/installer/npmTar.d.ts +13 -0
  177. package/dist/plugins/installer/npmTar.js +321 -0
  178. package/dist/plugins/installer/parseSource.d.ts +11 -0
  179. package/dist/plugins/installer/parseSource.js +48 -0
  180. package/dist/plugins/installer/preview.d.ts +101 -0
  181. package/dist/plugins/installer/preview.js +336 -0
  182. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  183. package/dist/plugins/installer/projectPluginSource.js +140 -0
  184. package/dist/plugins/installer/types.d.ts +775 -0
  185. package/dist/plugins/installer/types.js +100 -0
  186. package/dist/plugins/installer/unzip.d.ts +11 -0
  187. package/dist/plugins/installer/unzip.js +123 -9
  188. package/dist/plugins/installer/update.d.ts +2 -2
  189. package/dist/plugins/installer/update.js +43 -4
  190. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  191. package/dist/plugins/loadPluginHooks.js +97 -86
  192. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  193. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  194. package/dist/plugins/pluginCatalog.d.ts +45 -0
  195. package/dist/plugins/pluginCatalog.js +87 -0
  196. package/dist/plugins/pluginCommandHook.d.ts +10 -4
  197. package/dist/plugins/pluginCommandHook.js +133 -18
  198. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  199. package/dist/plugins/pluginCommandsLoader.js +181 -7
  200. package/dist/plugins/pluginContent.d.ts +10 -1
  201. package/dist/plugins/pluginContent.js +87 -30
  202. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  203. package/dist/plugins/pluginHookApproval.js +160 -0
  204. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  205. package/dist/plugins/pluginHookIntegrity.js +361 -0
  206. package/dist/plugins/pluginInstaller.js +71 -12
  207. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  208. package/dist/plugins/pluginMcpApproval.js +110 -0
  209. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  210. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  211. package/dist/plugins/types.d.ts +30 -0
  212. package/dist/plugins/varRewrite.d.ts +9 -5
  213. package/dist/plugins/varRewrite.js +26 -17
  214. package/dist/preset/index.d.ts +11 -8
  215. package/dist/preset/index.js +62 -203
  216. package/dist/product/define.js +9 -3
  217. package/dist/product/types.d.ts +0 -2
  218. package/dist/profile/activation.d.ts +36 -0
  219. package/dist/profile/activation.js +57 -0
  220. package/dist/profile/catalog-store.d.ts +77 -0
  221. package/dist/profile/catalog-store.js +346 -0
  222. package/dist/profile/catalog.d.ts +54 -0
  223. package/dist/profile/catalog.js +152 -0
  224. package/dist/profile/index.d.ts +7 -0
  225. package/dist/profile/index.js +7 -0
  226. package/dist/profile/requirements.d.ts +76 -0
  227. package/dist/profile/requirements.js +117 -0
  228. package/dist/profile/resolve.d.ts +11 -0
  229. package/dist/profile/resolve.js +41 -0
  230. package/dist/profile/store.d.ts +17 -0
  231. package/dist/profile/store.js +167 -0
  232. package/dist/profile/types.d.ts +321 -0
  233. package/dist/profile/types.js +104 -0
  234. package/dist/prompt/composer.d.ts +46 -7
  235. package/dist/prompt/composer.js +78 -48
  236. package/dist/prompt/instruction-scanner.d.ts +6 -5
  237. package/dist/prompt/instruction-scanner.js +8 -23
  238. package/dist/prompt/section-loader.d.ts +2 -2
  239. package/dist/prompt/section-loader.js +7 -4
  240. package/dist/prompt/sections/browser.md +10 -9
  241. package/dist/prompt/sections/harness-base.md +9 -0
  242. package/dist/protocol/chat-session-manager.d.ts +77 -3
  243. package/dist/protocol/chat-session-manager.js +194 -18
  244. package/dist/protocol/chat-session.d.ts +72 -9
  245. package/dist/protocol/chat-session.js +151 -16
  246. package/dist/protocol/client.d.ts +37 -4
  247. package/dist/protocol/client.js +118 -6
  248. package/dist/protocol/index.d.ts +2 -2
  249. package/dist/protocol/index.js +2 -2
  250. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  251. package/dist/protocol/mobile-remote-types.js +1 -0
  252. package/dist/protocol/server.d.ts +152 -14
  253. package/dist/protocol/server.js +1574 -229
  254. package/dist/protocol/types.d.ts +182 -32
  255. package/dist/protocol/types.js +18 -0
  256. package/dist/run/ArtifactTracker.d.ts +6 -1
  257. package/dist/run/ArtifactTracker.js +29 -21
  258. package/dist/run/EngineRunner.d.ts +2 -0
  259. package/dist/run/EngineRunner.js +1 -0
  260. package/dist/run/RunManager.d.ts +26 -0
  261. package/dist/run/RunManager.js +82 -11
  262. package/dist/run/factory.d.ts +3 -0
  263. package/dist/run/factory.js +2 -0
  264. package/dist/runtime/safe-spawn.d.ts +6 -0
  265. package/dist/runtime/safe-spawn.js +8 -13
  266. package/dist/services/auto-dream.d.ts +13 -1
  267. package/dist/services/auto-dream.js +56 -8
  268. package/dist/services/dream-consolidation.d.ts +3 -0
  269. package/dist/services/dream-consolidation.js +14 -2
  270. package/dist/services/index.d.ts +1 -1
  271. package/dist/services/index.js +1 -1
  272. package/dist/services/memory-orchestrator.js +6 -2
  273. package/dist/services/oauth.d.ts +34 -10
  274. package/dist/services/oauth.js +236 -98
  275. package/dist/services/session-memory.d.ts +4 -4
  276. package/dist/services/session-memory.js +13 -10
  277. package/dist/session/memory.d.ts +26 -7
  278. package/dist/session/memory.js +79 -21
  279. package/dist/session/session-manager.d.ts +208 -25
  280. package/dist/session/session-manager.js +1232 -116
  281. package/dist/session/session-message.d.ts +22 -0
  282. package/dist/session/session-message.js +1 -0
  283. package/dist/session/transcript.d.ts +76 -6
  284. package/dist/session/transcript.js +278 -7
  285. package/dist/settings/feature-flags.d.ts +40 -0
  286. package/dist/settings/feature-flags.js +40 -0
  287. package/dist/settings/manager.d.ts +39 -1
  288. package/dist/settings/manager.js +102 -41
  289. package/dist/settings/migrate-config.js +4 -2
  290. package/dist/settings/schema.d.ts +511 -177
  291. package/dist/settings/schema.js +98 -25
  292. package/dist/skills/scanner.d.ts +6 -2
  293. package/dist/skills/scanner.js +160 -9
  294. package/dist/sources/adapter.d.ts +14 -0
  295. package/dist/sources/adapter.js +7 -0
  296. package/dist/sources/adapters/local-files.d.ts +10 -0
  297. package/dist/sources/adapters/local-files.js +127 -0
  298. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  299. package/dist/sources/adapters/mcp-resource.js +41 -0
  300. package/dist/sources/adapters/mock.d.ts +3 -0
  301. package/dist/sources/adapters/mock.js +29 -0
  302. package/dist/sources/binding.d.ts +6 -0
  303. package/dist/sources/binding.js +24 -0
  304. package/dist/sources/catalog.d.ts +6 -0
  305. package/dist/sources/catalog.js +64 -0
  306. package/dist/sources/context-summary.d.ts +8 -0
  307. package/dist/sources/context-summary.js +13 -0
  308. package/dist/sources/credential-status.d.ts +2 -0
  309. package/dist/sources/credential-status.js +13 -0
  310. package/dist/sources/index.d.ts +10 -0
  311. package/dist/sources/index.js +10 -0
  312. package/dist/sources/resolve.d.ts +28 -0
  313. package/dist/sources/resolve.js +47 -0
  314. package/dist/sources/truncate-utf8.d.ts +7 -0
  315. package/dist/sources/truncate-utf8.js +18 -0
  316. package/dist/sources/types.d.ts +71 -0
  317. package/dist/sources/types.js +26 -0
  318. package/dist/testing/fetch-stub.d.ts +32 -0
  319. package/dist/testing/fetch-stub.js +24 -0
  320. package/dist/themes/image.d.ts +18 -0
  321. package/dist/themes/image.js +117 -0
  322. package/dist/themes/index.d.ts +4 -0
  323. package/dist/themes/index.js +4 -0
  324. package/dist/themes/installer.d.ts +50 -0
  325. package/dist/themes/installer.js +290 -0
  326. package/dist/themes/manifest.d.ts +102 -0
  327. package/dist/themes/manifest.js +86 -0
  328. package/dist/themes/paths.d.ts +14 -0
  329. package/dist/themes/paths.js +33 -0
  330. package/dist/tool-system/browser-bridge.d.ts +53 -11
  331. package/dist/tool-system/browser-bridge.js +8 -9
  332. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  333. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  334. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  335. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  336. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  337. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  338. package/dist/tool-system/builtin/agent-progress.js +83 -0
  339. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  340. package/dist/tool-system/builtin/agent-registry.js +178 -9
  341. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  342. package/dist/tool-system/builtin/agent.d.ts +2 -0
  343. package/dist/tool-system/builtin/agent.js +279 -34
  344. package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
  345. package/dist/tool-system/builtin/background-jobs.js +111 -15
  346. package/dist/tool-system/builtin/background-work.d.ts +12 -1
  347. package/dist/tool-system/builtin/background-work.js +12 -1
  348. package/dist/tool-system/builtin/bash.d.ts +3 -5
  349. package/dist/tool-system/builtin/bash.js +14 -6
  350. package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
  351. package/dist/tool-system/builtin/browser-tools.js +89 -23
  352. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  353. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  354. package/dist/tool-system/builtin/edit.d.ts +2 -1
  355. package/dist/tool-system/builtin/edit.js +14 -10
  356. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  357. package/dist/tool-system/builtin/file-cache.js +4 -0
  358. package/dist/tool-system/builtin/generate-image.js +17 -10
  359. package/dist/tool-system/builtin/generate-video.d.ts +4 -0
  360. package/dist/tool-system/builtin/generate-video.js +164 -28
  361. package/dist/tool-system/builtin/glob.d.ts +2 -1
  362. package/dist/tool-system/builtin/glob.js +28 -3
  363. package/dist/tool-system/builtin/grep.d.ts +1 -0
  364. package/dist/tool-system/builtin/grep.js +82 -17
  365. package/dist/tool-system/builtin/image-uploader.js +7 -1
  366. package/dist/tool-system/builtin/index.d.ts +57 -18
  367. package/dist/tool-system/builtin/index.js +280 -167
  368. package/dist/tool-system/builtin/memory.d.ts +6 -0
  369. package/dist/tool-system/builtin/memory.js +36 -15
  370. package/dist/tool-system/builtin/panel.d.ts +9 -0
  371. package/dist/tool-system/builtin/panel.js +314 -0
  372. package/dist/tool-system/builtin/read.js +5 -1
  373. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  374. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  375. package/dist/tool-system/builtin/sources.d.ts +8 -0
  376. package/dist/tool-system/builtin/sources.js +137 -0
  377. package/dist/tool-system/builtin/tool-search.js +7 -2
  378. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  379. package/dist/tool-system/builtin/video-providers.d.ts +12 -15
  380. package/dist/tool-system/builtin/video-providers.js +1 -0
  381. package/dist/tool-system/builtin/view-image.d.ts +2 -2
  382. package/dist/tool-system/builtin/web-fetch.js +60 -15
  383. package/dist/tool-system/builtin/web-search.js +1 -3
  384. package/dist/tool-system/builtin/write.d.ts +2 -1
  385. package/dist/tool-system/builtin/write.js +14 -4
  386. package/dist/tool-system/capability-module.d.ts +93 -0
  387. package/dist/tool-system/capability-module.js +53 -0
  388. package/dist/tool-system/context.d.ts +94 -24
  389. package/dist/tool-system/executor.js +99 -58
  390. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  391. package/dist/tool-system/external-tool-exposure.js +304 -0
  392. package/dist/tool-system/mcp-manager.d.ts +17 -1
  393. package/dist/tool-system/mcp-manager.js +72 -7
  394. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  395. package/dist/tool-system/mcp-tool-policy.js +34 -0
  396. package/dist/tool-system/panel-bridge.d.ts +53 -0
  397. package/dist/tool-system/panel-bridge.js +1 -0
  398. package/dist/tool-system/path-policy.d.ts +19 -0
  399. package/dist/tool-system/path-policy.js +62 -1
  400. package/dist/tool-system/permission.d.ts +69 -3
  401. package/dist/tool-system/permission.js +429 -30
  402. package/dist/tool-system/registry.d.ts +15 -3
  403. package/dist/tool-system/registry.js +82 -40
  404. package/dist/tool-system/sandbox/index.js +3 -8
  405. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  406. package/dist/tool-system/session-tool-host.d.ts +139 -0
  407. package/dist/tool-system/session-tool-host.js +167 -0
  408. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  409. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  410. package/dist/tool-system/validation.d.ts +14 -7
  411. package/dist/tool-system/validation.js +701 -7
  412. package/dist/types.d.ts +201 -20
  413. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  414. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  415. package/dist/utils/file-mutex.d.ts +65 -0
  416. package/dist/utils/file-mutex.js +145 -0
  417. package/dist/utils/json.d.ts +2 -4
  418. package/dist/utils/json.js +2 -4
  419. package/dist/utils/lockfile.d.ts +30 -1
  420. package/dist/utils/lockfile.js +2 -2
  421. package/dist/utils/secret-scrubber.d.ts +8 -0
  422. package/dist/utils/secret-scrubber.js +227 -0
  423. package/dist/utils/toolDisplay.js +1 -1
  424. package/package.json +20 -5
  425. package/THIRD_PARTY_NOTICES.md +0 -206
  426. package/dist/arena/arena.d.ts +0 -43
  427. package/dist/arena/arena.js +0 -333
  428. package/dist/arena/context/context-tools.d.ts +0 -16
  429. package/dist/arena/context/context-tools.js +0 -272
  430. package/dist/arena/context/within-root.d.ts +0 -7
  431. package/dist/arena/context/within-root.js +0 -15
  432. package/dist/arena/detect-mode.d.ts +0 -20
  433. package/dist/arena/detect-mode.js +0 -78
  434. package/dist/arena/digest-builder.d.ts +0 -25
  435. package/dist/arena/digest-builder.js +0 -120
  436. package/dist/arena/index.d.ts +0 -29
  437. package/dist/arena/index.js +0 -29
  438. package/dist/arena/iterate/convergence.d.ts +0 -25
  439. package/dist/arena/iterate/convergence.js +0 -103
  440. package/dist/arena/iterate/formats/index.d.ts +0 -22
  441. package/dist/arena/iterate/formats/index.js +0 -283
  442. package/dist/arena/iterate/index.d.ts +0 -11
  443. package/dist/arena/iterate/index.js +0 -9
  444. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  445. package/dist/arena/iterate/iterative-arena.js +0 -237
  446. package/dist/arena/iterate/parse.d.ts +0 -42
  447. package/dist/arena/iterate/parse.js +0 -123
  448. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  449. package/dist/arena/iterate/phases/argue.js +0 -165
  450. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  451. package/dist/arena/iterate/phases/revise.js +0 -62
  452. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  453. package/dist/arena/iterate/phases/tournament.js +0 -113
  454. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  455. package/dist/arena/iterate/tools/web-tools.js +0 -54
  456. package/dist/arena/iterate/types.d.ts +0 -152
  457. package/dist/arena/iterate/types.js +0 -8
  458. package/dist/arena/ledger.d.ts +0 -47
  459. package/dist/arena/ledger.js +0 -159
  460. package/dist/arena/lenses/architecture.d.ts +0 -5
  461. package/dist/arena/lenses/architecture.js +0 -22
  462. package/dist/arena/lenses/engineering.d.ts +0 -5
  463. package/dist/arena/lenses/engineering.js +0 -22
  464. package/dist/arena/lenses/general.d.ts +0 -5
  465. package/dist/arena/lenses/general.js +0 -20
  466. package/dist/arena/lenses/index.d.ts +0 -16
  467. package/dist/arena/lenses/index.js +0 -47
  468. package/dist/arena/lenses/product.d.ts +0 -5
  469. package/dist/arena/lenses/product.js +0 -22
  470. package/dist/arena/model-presets.d.ts +0 -23
  471. package/dist/arena/model-presets.js +0 -44
  472. package/dist/arena/phases/adjudication.d.ts +0 -24
  473. package/dist/arena/phases/adjudication.js +0 -141
  474. package/dist/arena/phases/build-consensus.d.ts +0 -29
  475. package/dist/arena/phases/build-consensus.js +0 -83
  476. package/dist/arena/phases/claim-registry.d.ts +0 -26
  477. package/dist/arena/phases/claim-registry.js +0 -60
  478. package/dist/arena/phases/cross-review.d.ts +0 -45
  479. package/dist/arena/phases/cross-review.js +0 -218
  480. package/dist/arena/phases/debate-rounds.d.ts +0 -27
  481. package/dist/arena/phases/debate-rounds.js +0 -159
  482. package/dist/arena/phases/participant-research.d.ts +0 -38
  483. package/dist/arena/phases/participant-research.js +0 -314
  484. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
  485. package/dist/arena/phases/planning-detail-expansion.js +0 -119
  486. package/dist/arena/planner.d.ts +0 -27
  487. package/dist/arena/planner.js +0 -311
  488. package/dist/arena/providers/docs.d.ts +0 -7
  489. package/dist/arena/providers/docs.js +0 -111
  490. package/dist/arena/providers/git.d.ts +0 -8
  491. package/dist/arena/providers/git.js +0 -174
  492. package/dist/arena/providers/index.d.ts +0 -32
  493. package/dist/arena/providers/index.js +0 -132
  494. package/dist/arena/providers/none.d.ts +0 -7
  495. package/dist/arena/providers/none.js +0 -11
  496. package/dist/arena/providers/repo.d.ts +0 -7
  497. package/dist/arena/providers/repo.js +0 -258
  498. package/dist/arena/render/session.d.ts +0 -17
  499. package/dist/arena/render/session.js +0 -190
  500. package/dist/arena/render/terminal.d.ts +0 -34
  501. package/dist/arena/render/terminal.js +0 -286
  502. package/dist/arena/strategies/discussion.d.ts +0 -25
  503. package/dist/arena/strategies/discussion.js +0 -143
  504. package/dist/arena/strategies/index.d.ts +0 -15
  505. package/dist/arena/strategies/index.js +0 -28
  506. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  507. package/dist/arena/strategies/language-wrapper.js +0 -102
  508. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  509. package/dist/arena/strategies/lens-wrapper.js +0 -236
  510. package/dist/arena/strategies/planning.d.ts +0 -30
  511. package/dist/arena/strategies/planning.js +0 -225
  512. package/dist/arena/strategies/review.d.ts +0 -26
  513. package/dist/arena/strategies/review.js +0 -168
  514. package/dist/arena/strategies/utils.d.ts +0 -36
  515. package/dist/arena/strategies/utils.js +0 -603
  516. package/dist/arena/tools/selector.d.ts +0 -17
  517. package/dist/arena/tools/selector.js +0 -61
  518. package/dist/arena/transitions.d.ts +0 -53
  519. package/dist/arena/transitions.js +0 -97
  520. package/dist/arena/types.d.ts +0 -514
  521. package/dist/arena/types.js +0 -27
  522. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  523. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  524. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  525. package/dist/cc-orchestrator/cc-capability.js +0 -53
  526. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  527. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  528. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  529. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  530. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  531. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  532. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  533. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  534. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  535. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  536. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  537. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  538. package/dist/cc-orchestrator/index.d.ts +0 -8
  539. package/dist/cc-orchestrator/index.js +0 -8
  540. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  541. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  542. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  543. package/dist/cc-orchestrator/session-discovery.js +0 -125
  544. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  545. package/dist/cc-orchestrator/session-history.js +0 -150
  546. package/dist/cron/cron-runtime.d.ts +0 -2
  547. package/dist/cron/cron-runtime.js +0 -2
  548. package/dist/cron/cron-store.d.ts +0 -2
  549. package/dist/cron/cron-store.js +0 -2
  550. package/dist/cron/scheduler.d.ts +0 -7
  551. package/dist/cron/scheduler.js +0 -7
  552. package/dist/engine/goal.js +0 -206
  553. package/dist/external-agents/config.d.ts +0 -2
  554. package/dist/external-agents/config.js +0 -15
  555. package/dist/external-agents/types.d.ts +0 -31
  556. package/dist/git/parse-log.d.ts +0 -13
  557. package/dist/git/parse-log.js +0 -21
  558. package/dist/git/utils.d.ts +0 -49
  559. package/dist/git/utils.js +0 -161
  560. package/dist/git/worktree/crud.d.ts +0 -69
  561. package/dist/git/worktree/crud.js +0 -206
  562. package/dist/git/worktree/diff.d.ts +0 -14
  563. package/dist/git/worktree/diff.js +0 -82
  564. package/dist/git/worktree/git-exec.d.ts +0 -7
  565. package/dist/git/worktree/git-exec.js +0 -51
  566. package/dist/git/worktree/index.d.ts +0 -5
  567. package/dist/git/worktree/index.js +0 -5
  568. package/dist/git/worktree/query.d.ts +0 -42
  569. package/dist/git/worktree/query.js +0 -121
  570. package/dist/git/worktree/slug.d.ts +0 -11
  571. package/dist/git/worktree/slug.js +0 -58
  572. package/dist/git/worktree.d.ts +0 -1
  573. package/dist/git/worktree.js +0 -5
  574. package/dist/lsp/client.d.ts +0 -41
  575. package/dist/lsp/client.js +0 -186
  576. package/dist/lsp/manager.d.ts +0 -40
  577. package/dist/lsp/manager.js +0 -155
  578. package/dist/lsp/root-path.d.ts +0 -9
  579. package/dist/lsp/root-path.js +0 -12
  580. package/dist/lsp/servers.d.ts +0 -16
  581. package/dist/lsp/servers.js +0 -60
  582. package/dist/prompt/sections/coding.md +0 -35
  583. package/dist/quota/credentials.d.ts +0 -3
  584. package/dist/quota/credentials.js +0 -80
  585. package/dist/quota/index.d.ts +0 -36
  586. package/dist/quota/index.js +0 -155
  587. package/dist/quota/types.d.ts +0 -48
  588. package/dist/quota/types.js +0 -13
  589. package/dist/review/review-prompt.d.ts +0 -28
  590. package/dist/review/review-prompt.js +0 -81
  591. package/dist/state.d.ts +0 -160
  592. package/dist/state.js +0 -267
  593. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  594. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  595. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  596. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  597. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  598. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  599. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  600. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  601. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  602. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  603. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  604. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  605. package/dist/tool-system/builtin/arena.d.ts +0 -31
  606. package/dist/tool-system/builtin/arena.js +0 -415
  607. package/dist/tool-system/builtin/brief.d.ts +0 -6
  608. package/dist/tool-system/builtin/brief.js +0 -41
  609. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  610. package/dist/tool-system/builtin/check-quota.js +0 -34
  611. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  612. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  613. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  614. package/dist/tool-system/builtin/lsp.js +0 -144
  615. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  616. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  617. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  618. package/dist/tool-system/builtin/worktree.js +0 -345
  619. /package/dist/{external-agents → links}/types.js +0 -0
  620. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  621. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -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 {};
@@ -16,7 +16,18 @@
16
16
  import type { Transport } from "./transport.js";
17
17
  import type { Engine } from "../engine/engine.js";
18
18
  import type { ValidatedSettings } from "../settings/schema.js";
19
+ import { type ApprovalRouter } from "../tool-system/permission.js";
19
20
  import type { ChatSessionManager } from "./chat-session-manager.js";
21
+ import type { ExtensionModule } from "../tool-system/capability-module.js";
22
+ /**
23
+ * Why a host-loopback request (Panel / Browser / workspace / credential) ended
24
+ * without a result. These four used to collapse into one string — "declined or
25
+ * unavailable" — so a Stop, a closed session, and an actual user denial were
26
+ * indistinguishable to the calling tool and therefore to the model.
27
+ */
28
+ export type HostLoopbackFailure = "denied" | "cancelled" | "session_closed" | "owner_lost" | "timed_out"
29
+ /** The host replied, but with something that wasn't parseable JSON. */
30
+ | "malformed";
20
31
  export interface AgentServerOptions {
21
32
  /**
22
33
  * Multi-session manager. Required for the new multi-session protocol.
@@ -49,16 +60,69 @@ export interface AgentServerOptions {
49
60
  * mode already reads disk via the engine, and tests that don't exercise the
50
61
  * reopened-session path can omit it.
51
62
  */
52
- readActiveGoalFromDisk?: (sessionId: string) => import("../engine/goal.js").GoalConfig | undefined;
63
+ readActiveGoalFromDisk?: (sessionId: string) => import("../goal/lifecycle.js").GoalConfig | undefined;
64
+ /** Disk controls for a persisted goal whose ChatSession is not live. */
65
+ updateActiveGoalOnDisk?: (sessionId: string, patch: {
66
+ objective?: string;
67
+ paused?: boolean;
68
+ expectedGoalId?: string;
69
+ expectedRevision?: number;
70
+ }) => import("../goal/lifecycle.js").GoalConfig | undefined;
71
+ clearActiveGoalOnDisk?: (sessionId: string, expected?: {
72
+ goalId?: string;
73
+ revision?: number;
74
+ }) => boolean;
53
75
  /**
54
76
  * Enable the desktop workspace bridge channel. Off by default so generic
55
77
  * protocol hosts do not emit hidden workspace approval requests they cannot
56
78
  * service.
57
79
  */
58
80
  workspaceBridge?: boolean;
81
+ /** Enable model-driven panel discovery/focus for interactive Desktop sessions. */
82
+ panelBridge?: boolean;
83
+ /** Stable transport connection identity. Supplying it enables strict
84
+ * connection+session+generation+requestId approval response matching. */
85
+ connectionId?: string;
86
+ /**
87
+ * Resolve the user identity this connection acts as (identity dimension
88
+ * foundations, Task 2). Absent → today's behavior byte-for-byte: every
89
+ * request routes through the single host-supplied chatManager. Present →
90
+ * the server resolves the identity per request and routes getOrCreate/get
91
+ * (and session lists/streams) through a lazily-created per-identity
92
+ * manager (`chatManager.forIdentity(id)`), whose sessions persist under
93
+ * `<dataRoot>/identities/<id>/sessions`. Returning the base manager's own
94
+ * identity ("local" unless the host injected one) selects the base manager
95
+ * unchanged. The returned identity is validated as a safe path segment;
96
+ * an invalid identity fails the request (fail closed).
97
+ */
98
+ resolveIdentity?: (ctx: {
99
+ connectionId: string;
100
+ }) => string;
101
+ /**
102
+ * Sessions dir for the server's lazy disk reader (background-wakeup
103
+ * rehydrate). Defaults to the standard sessions root; a host that relocates
104
+ * its data root (CODE_SHELL_DATA_ROOT worker) points this at
105
+ * `<dataRoot>/sessions` so cold wakeups read the same store its engines
106
+ * write.
107
+ */
108
+ sessionDiskRoot?: string;
109
+ /** Shared owner router; injectable for hosts/tests, process singleton by default. */
110
+ approvalRouter?: ApprovalRouter;
111
+ /**
112
+ * Extension modules whose protocol observers / run-param validators /
113
+ * hidden session kinds this server applies. Defaults to core's built-in
114
+ * pet extension so existing hosts keep the Pet projection channel.
115
+ * TODO(pet-out-of-core): drop the default once hosts register it explicitly.
116
+ */
117
+ extensionModules?: readonly ExtensionModule[];
59
118
  }
60
119
  export declare class AgentServer {
61
- private readonly chatManager;
120
+ /** Host-supplied manager; requests route through the `chatManager` getter. */
121
+ private readonly baseChatManager;
122
+ /** Identity resolution hook; null → single-manager behavior (today's path). */
123
+ private readonly resolveIdentity;
124
+ /** Lazily-derived managers keyed by identity (non-base identities only). */
125
+ private readonly identityManagers;
62
126
  private readonly legacyEngine;
63
127
  private globalQueryEngine;
64
128
  private transport;
@@ -66,15 +130,35 @@ export declare class AgentServer {
66
130
  private readonly settingsReader;
67
131
  /** Disk-only active-goal reader for agent/goalGet on a non-live session. */
68
132
  private readonly readActiveGoalFromDisk;
133
+ private readonly updateActiveGoalOnDisk;
134
+ private readonly clearActiveGoalOnDisk;
69
135
  private readonly workspaceBridgeEnabled;
136
+ private readonly panelBridgeEnabled;
137
+ private readonly connectionId;
138
+ private readonly strictApprovalRouting;
139
+ private readonly approvalRouter;
140
+ private approvalConnectionUnregister;
141
+ private disconnected;
142
+ private readonly pendingApprovalTargets;
143
+ /** Extension modules this server consults for protocol-level hooks. */
144
+ private readonly extensionModules;
145
+ /** Protocol lifecycle observers created by extension modules (registration order). */
146
+ private readonly protocolObservers;
147
+ /** Extension-registered protocol method/query aliases (compat channel). */
148
+ private readonly protocolQueryHandlers;
149
+ /** Union of extension hiddenSessionKinds, excluded from generic session lists. */
150
+ private readonly hiddenSessionKinds;
70
151
  /**
71
152
  * Last per-session EngineConfigSlice supplied by agent/run. Kept even after
72
153
  * idle eviction so background-completion wakeups can rebuild the ChatSession
73
- * with the same cwd/permission/trust inputs before draining the queue.
154
+ * with the same cwd/trust inputs before draining the queue. Per-turn
155
+ * permission/plan overrides deliberately do not survive into wakeup turns.
74
156
  */
75
157
  private readonly lastSliceBySession;
76
158
  /** Lazy disk reader for cold wakeup rehydrate when this process lacks a slice. */
77
159
  private diskSessionReader;
160
+ /** Sessions dir for diskSessionReader; undefined → default sessions root. */
161
+ private readonly sessionDiskRoot;
78
162
  /**
79
163
  * Monotonic config-reload version, bumped per reloadSettings request so each
80
164
  * Engine.refreshRuntimeConfig can drop out-of-order (stale) deliveries (Q5).
@@ -114,6 +198,16 @@ export declare class AgentServer {
114
198
  * itself outlives the server (it's a process-local singleton).
115
199
  */
116
200
  private bgAgentBusUnsubscribe;
201
+ private readonly wakeupsInFlight;
202
+ /**
203
+ * Effective session manager for the connection this server serves. Without
204
+ * a resolveIdentity hook this is exactly the host-supplied manager —
205
+ * today's single-manager behavior, byte-for-byte. With the hook, requests
206
+ * route through a lazily-created per-identity manager, so the same
207
+ * sessionId under two identities resolves to two isolated ChatSessions and
208
+ * a connection can only list/stream sessions of its own identity.
209
+ */
210
+ private get chatManager();
117
211
  constructor(options: AgentServerOptions);
118
212
  /**
119
213
  * Wake an IDLE chatManager session that has pending background-completion
@@ -133,23 +227,36 @@ export declare class AgentServer {
133
227
  * the first drains all currently-pending items; subsequent bus events for
134
228
  * the same session find it busy (or find an empty queue) and no-op.
135
229
  *
136
- * INVARIANT (the burst-merge correctness depends on it): the merge only
137
- * holds because (a) the bus fans out to subscribers SYNCHRONOUSLY, and (b)
138
- * `enqueueTurn` sets the session's `active` (→ isBusy()===true) SYNCHRONOUSLY
139
- * before its first await. So when bus events #2..N arrive — still on the same
140
- * synchronous fan-out as #1 — they already see the session as busy and no-op.
141
- * If either path is ever made async (e.g. an await is added inside
142
- * enqueueTurn before `active` is set, or the bus starts deferring delivery),
143
- * this degrades into N concurrent wakeups for N completions. Keep both
144
- * synchronous, or replace this comment's assumption with an explicit
145
- * "wakeup in flight" guard flag.
230
+ * `wakeupsInFlight` serializes the now-async rehydrate path, so a burst of
231
+ * completion events cannot create duplicate sessions or enqueue duplicate
232
+ * wakeup turns while getOrCreate waits for a closing generation to settle.
146
233
  */
147
234
  private maybeWakeIdleSession;
235
+ private wakeIdleSession;
148
236
  private rehydrateSessionForWake;
149
237
  private sliceForWakeRehydrate;
150
238
  private rememberSessionSlice;
151
239
  private wireInteractiveSession;
240
+ /** Queue a model-sent message as an ordinary user turn in another Session. */
241
+ private routeSessionMessage;
152
242
  private handleRequest;
243
+ private pluginCommandContext;
244
+ private handlePluginCommandsList;
245
+ private handlePluginCommandExpand;
246
+ /** Route a protocol method to its extension-registered handler, if any. */
247
+ private handleExtensionProtocolMethod;
248
+ private forEachObserver;
249
+ private observeSessionAttached;
250
+ private observeSessionStream;
251
+ private observeRunBoundary;
252
+ /** Observers may replace approval metadata (e.g. surfaceable overrides). */
253
+ private observeApprovalCreated;
254
+ private observeApprovalTransition;
255
+ private observeSessionClosed;
256
+ private observeServerClose;
257
+ /** Generic run-param shape checks plus each extension's domain validation. */
258
+ private validateRunInput;
259
+ private handleForkSession;
153
260
  private handleRun;
154
261
  private handleRunMulti;
155
262
  private handleRunLegacy;
@@ -161,6 +268,13 @@ export declare class AgentServer {
161
268
  * limits, or an error if no session / no active run.
162
269
  */
163
270
  private handleGoalExtend;
271
+ /** Reject destructive Goal controls owned by a different TCP connection. */
272
+ private authorizeGoalControl;
273
+ /** Start a fully rebuilt Goal run for an idle or goal-less in-flight session. */
274
+ private queueGoalResumeTurn;
275
+ private reconcileFailedGoalResume;
276
+ /** Edit or pause/resume a persisted goal without replacing its identity. */
277
+ private handleGoalUpdate;
164
278
  /**
165
279
  * Clear a session's persisted active goal (CC /goal clear). Routes to the
166
280
  * named session, falling back to the legacy single engine (mirrors
@@ -170,7 +284,7 @@ export declare class AgentServer {
170
284
  /**
171
285
  * Read a session's persisted active goal so the host can re-surface the goal
172
286
  * block + Cancel button on session load. A persistent goal lives only in
173
- * state.activeGoal and is never replayed from the transcript, so a reloaded
287
+ * state.goalLifecycle and is never replayed from the transcript, so a reloaded
174
288
  * (or disk-rebuilt) session has no other way to learn it. Prefers a live
175
289
  * chatManager session, else falls through to a disk read (readActiveGoalFromDisk
176
290
  * in worker mode, or the legacy engine's disk read in single-engine mode) — the
@@ -198,7 +312,17 @@ export declare class AgentServer {
198
312
  private handleBackgroundWork;
199
313
  private handleCloseSession;
200
314
  private handleReleaseWorkspace;
315
+ private handleSetWorkspace;
201
316
  private handleConfigure;
317
+ /**
318
+ * Resolve the Engine that owns a session-scoped query (compact, archive_range,
319
+ * …). With a chatManager: materialize a persisted-but-not-live session on
320
+ * demand, or borrow any live engine when no sessionId is given. Sends the
321
+ * appropriate error response and returns null when the session is
322
+ * closing/closed, unknown, or no engine is available; `label` names the query
323
+ * in the "no engine" message. Domain-neutral — no query-specific literals.
324
+ */
325
+ private resolveEngineForSessionQuery;
202
326
  private handleQuery;
203
327
  private handleInject;
204
328
  private handleSteer;
@@ -207,6 +331,7 @@ export declare class AgentServer {
207
331
  * Ask the client to approve a tool operation (legacy single-engine path).
208
332
  */
209
333
  private requestApprovalFromClient;
334
+ private approvalRouteEnvelope;
210
335
  /**
211
336
  * Per-session AskUserQuestion for the chatManager path. Resolves via the
212
337
  * SESSION's pendingApprovals (the chatManager approve handler looks there,
@@ -232,6 +357,8 @@ export declare class AgentServer {
232
357
  */
233
358
  private requestCredentialInjectForSession;
234
359
  private makeWorkspaceBridge;
360
+ private makePanelBridge;
361
+ private requestPanelActionForSession;
235
362
  private requestWorkspaceSwitchForSession;
236
363
  /**
237
364
  * Ask the client to answer a question from the agent (legacy single-engine
@@ -249,6 +376,16 @@ export declare class AgentServer {
249
376
  */
250
377
  private anyEngine;
251
378
  close(): void;
379
+ /** Release only this transport's approval ownership. Safe on socket close
380
+ * even when the ChatSessionManager is shared by other TCP connections. */
381
+ disconnect(reason?: string): void;
382
+ /** Resolver-free metadata view for extension projections and protocol snapshots. */
383
+ getPendingDecisionSnapshot(): readonly unknown[];
384
+ /** Host lifecycle generation stamped onto pending-approval metadata. */
385
+ private workerGeneration;
386
+ private registerSessionApproval;
387
+ private takeSessionApproval;
388
+ private internalPendingMetadata;
252
389
  private clearApprovalTimer;
253
390
  /**
254
391
  * Resolve all of a chat session's pending approvals as cancelled and clear
@@ -258,5 +395,6 @@ export declare class AgentServer {
258
395
  * AskUserQuestion does not.
259
396
  */
260
397
  private cancelSessionApprovals;
398
+ private failClosedApprovalTargets;
261
399
  private clearAllApprovalTimers;
262
400
  }