@coralai/sps-cli 0.63.6 → 0.65.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 (458) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README-CN.md +2 -0
  3. package/README.md +2 -0
  4. package/dist/commands/agentCommand.d.ts.map +1 -1
  5. package/dist/commands/agentCommand.js +4 -3
  6. package/dist/commands/agentCommand.js.map +1 -1
  7. package/dist/commands/agentRenderer.js +3 -3
  8. package/dist/commands/agentRenderer.js.map +1 -1
  9. package/dist/commands/cardDashboard.d.ts.map +1 -1
  10. package/dist/commands/cardDashboard.js +2 -2
  11. package/dist/commands/cardDashboard.js.map +1 -1
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +0 -3
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/logs.d.ts.map +1 -1
  16. package/dist/commands/logs.js +15 -15
  17. package/dist/commands/logs.js.map +1 -1
  18. package/dist/commands/openaiAgent.d.ts +3 -0
  19. package/dist/commands/openaiAgent.d.ts.map +1 -0
  20. package/dist/commands/openaiAgent.js +81 -0
  21. package/dist/commands/openaiAgent.js.map +1 -0
  22. package/dist/commands/pipelineRunner.js.map +1 -1
  23. package/dist/commands/pipelineTick.js +1 -1
  24. package/dist/commands/pipelineTick.js.map +1 -1
  25. package/dist/commands/projectInit.d.ts +11 -1
  26. package/dist/commands/projectInit.d.ts.map +1 -1
  27. package/dist/commands/projectInit.js +38 -7
  28. package/dist/commands/projectInit.js.map +1 -1
  29. package/dist/commands/prune.d.ts +6 -0
  30. package/dist/commands/prune.d.ts.map +1 -0
  31. package/dist/commands/prune.js +87 -0
  32. package/dist/commands/prune.js.map +1 -0
  33. package/dist/commands/qaTick.js +1 -1
  34. package/dist/commands/qaTick.js.map +1 -1
  35. package/dist/commands/reset.d.ts.map +1 -1
  36. package/dist/commands/reset.js +3 -2
  37. package/dist/commands/reset.js.map +1 -1
  38. package/dist/commands/setup.d.ts.map +1 -1
  39. package/dist/commands/setup.js +8 -1
  40. package/dist/commands/setup.js.map +1 -1
  41. package/dist/commands/skillCommand.d.ts.map +1 -1
  42. package/dist/commands/skillCommand.js +2 -3
  43. package/dist/commands/skillCommand.js.map +1 -1
  44. package/dist/commands/status.js +2 -2
  45. package/dist/commands/status.js.map +1 -1
  46. package/dist/commands/stop.js +3 -3
  47. package/dist/commands/stop.js.map +1 -1
  48. package/dist/commands/tick.d.ts.map +1 -1
  49. package/dist/commands/tick.js +5 -2
  50. package/dist/commands/tick.js.map +1 -1
  51. package/dist/commands/workerDashboard.d.ts.map +1 -1
  52. package/dist/commands/workerDashboard.js +27 -26
  53. package/dist/commands/workerDashboard.js.map +1 -1
  54. package/dist/commands/workerLaunch.js +1 -1
  55. package/dist/commands/workerLaunch.js.map +1 -1
  56. package/dist/console/routes/chat.d.ts +18 -1
  57. package/dist/console/routes/chat.d.ts.map +1 -1
  58. package/dist/console/routes/chat.js +529 -40
  59. package/dist/console/routes/chat.js.map +1 -1
  60. package/dist/console/routes/fs.d.ts.map +1 -1
  61. package/dist/console/routes/fs.js +2 -1
  62. package/dist/console/routes/fs.js.map +1 -1
  63. package/dist/console/routes/logs.d.ts.map +1 -1
  64. package/dist/console/routes/logs.js +17 -5
  65. package/dist/console/routes/logs.js.map +1 -1
  66. package/dist/console/routes/projects.d.ts.map +1 -1
  67. package/dist/console/routes/projects.js +25 -2
  68. package/dist/console/routes/projects.js.map +1 -1
  69. package/dist/console/routes/workers.js +3 -3
  70. package/dist/console/routes/workers.js.map +1 -1
  71. package/dist/console-assets/assets/{ShowcasePage-BWHyDQhw.js → ShowcasePage-DFRO5bAO.js} +1 -1
  72. package/dist/console-assets/assets/{index-rQ_2k-G9.css → index-DZ28qAcd.css} +1 -1
  73. package/dist/console-assets/assets/{index-DH_TQHY4.js → index-De5GjRjY.js} +220 -215
  74. package/dist/console-assets/index.html +2 -2
  75. package/dist/core/agents/AgentBackend.d.ts +2 -2
  76. package/dist/core/agents/AgentBackend.d.ts.map +1 -1
  77. package/dist/core/agents/AgentBackend.js.map +1 -1
  78. package/dist/core/agents/DaemonBackend.d.ts +12 -2
  79. package/dist/core/agents/DaemonBackend.d.ts.map +1 -1
  80. package/dist/core/agents/DaemonBackend.js +59 -12
  81. package/dist/core/agents/DaemonBackend.js.map +1 -1
  82. package/dist/core/agents/resolveBackend.d.ts +4 -1
  83. package/dist/core/agents/resolveBackend.d.ts.map +1 -1
  84. package/dist/core/agents/resolveBackend.js +31 -1
  85. package/dist/core/agents/resolveBackend.js.map +1 -1
  86. package/dist/core/auditLog.d.ts +1 -1
  87. package/dist/core/auditLog.d.ts.map +1 -1
  88. package/dist/core/config.d.ts +5 -8
  89. package/dist/core/config.d.ts.map +1 -1
  90. package/dist/core/config.js +3 -9
  91. package/dist/core/config.js.map +1 -1
  92. package/dist/core/intel/agentsConfig.d.ts +9 -0
  93. package/dist/core/intel/agentsConfig.d.ts.map +1 -1
  94. package/dist/core/intel/agentsConfig.js +42 -0
  95. package/dist/core/intel/agentsConfig.js.map +1 -1
  96. package/dist/core/intel/types.d.ts +1 -0
  97. package/dist/core/intel/types.d.ts.map +1 -1
  98. package/dist/core/markerFile.d.ts.map +1 -1
  99. package/dist/core/markerFile.js +2 -2
  100. package/dist/core/markerFile.js.map +1 -1
  101. package/dist/core/openaiWorkerLog.d.ts +7 -0
  102. package/dist/core/openaiWorkerLog.d.ts.map +1 -0
  103. package/dist/core/openaiWorkerLog.js +98 -0
  104. package/dist/core/openaiWorkerLog.js.map +1 -0
  105. package/dist/core/paths.d.ts +1 -1
  106. package/dist/core/paths.d.ts.map +1 -1
  107. package/dist/core/paths.js +9 -7
  108. package/dist/core/paths.js.map +1 -1
  109. package/dist/core/pipelineConfig.js +7 -7
  110. package/dist/core/pipelineConfig.js.map +1 -1
  111. package/dist/core/pipelineSession.d.ts +3 -1
  112. package/dist/core/pipelineSession.d.ts.map +1 -1
  113. package/dist/core/pipelineSession.js +8 -2
  114. package/dist/core/pipelineSession.js.map +1 -1
  115. package/dist/core/processInspect.d.ts +5 -0
  116. package/dist/core/processInspect.d.ts.map +1 -1
  117. package/dist/core/processInspect.js +41 -11
  118. package/dist/core/processInspect.js.map +1 -1
  119. package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
  120. package/dist/core/projectPipelineAdapter.js +4 -4
  121. package/dist/core/projectPipelineAdapter.js.map +1 -1
  122. package/dist/core/runtimeSnapshot.d.ts +2 -2
  123. package/dist/core/runtimeSnapshot.d.ts.map +1 -1
  124. package/dist/core/runtimeSnapshot.js +2 -2
  125. package/dist/core/runtimeSnapshot.js.map +1 -1
  126. package/dist/core/runtimeStore.d.ts +12 -12
  127. package/dist/core/runtimeStore.d.ts.map +1 -1
  128. package/dist/core/runtimeStore.js +16 -16
  129. package/dist/core/runtimeStore.js.map +1 -1
  130. package/dist/core/runtimeTypes.d.ts +109 -24
  131. package/dist/core/runtimeTypes.d.ts.map +1 -1
  132. package/dist/core/runtimeTypes.js +1 -1
  133. package/dist/core/sessionCleanup.d.ts +1 -1
  134. package/dist/core/sessionCleanup.d.ts.map +1 -1
  135. package/dist/core/sessionCleanup.js +2 -2
  136. package/dist/core/sessionCleanup.js.map +1 -1
  137. package/dist/core/sessionContext.d.ts +2 -2
  138. package/dist/core/sessionContext.d.ts.map +1 -1
  139. package/dist/core/sessionContext.js +1 -1
  140. package/dist/core/sessionContext.js.map +1 -1
  141. package/dist/core/sessionLiveness.d.ts +7 -6
  142. package/dist/core/sessionLiveness.d.ts.map +1 -1
  143. package/dist/core/sessionLiveness.js +3 -4
  144. package/dist/core/sessionLiveness.js.map +1 -1
  145. package/dist/core/state.d.ts +13 -12
  146. package/dist/core/state.d.ts.map +1 -1
  147. package/dist/core/state.js +9 -1
  148. package/dist/core/state.js.map +1 -1
  149. package/dist/core/workerRuntimeSummary.js +2 -2
  150. package/dist/core/workerRuntimeSummary.js.map +1 -1
  151. package/dist/core/workspacePaths.d.ts +22 -0
  152. package/dist/core/workspacePaths.d.ts.map +1 -0
  153. package/dist/core/workspacePaths.js +73 -0
  154. package/dist/core/workspacePaths.js.map +1 -0
  155. package/dist/daemon/daemonClient.d.ts +19 -22
  156. package/dist/daemon/daemonClient.d.ts.map +1 -1
  157. package/dist/daemon/daemonClient.js +82 -2
  158. package/dist/daemon/daemonClient.js.map +1 -1
  159. package/dist/daemon/sessionDaemon.d.ts +52 -7
  160. package/dist/daemon/sessionDaemon.d.ts.map +1 -1
  161. package/dist/daemon/sessionDaemon.js +40 -24
  162. package/dist/daemon/sessionDaemon.js.map +1 -1
  163. package/dist/engines/EventHandler.js +1 -1
  164. package/dist/engines/EventHandler.js.map +1 -1
  165. package/dist/engines/MonitorEngine.d.ts +2 -2
  166. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  167. package/dist/engines/MonitorEngine.js +15 -17
  168. package/dist/engines/MonitorEngine.js.map +1 -1
  169. package/dist/engines/StageEngine.d.ts +5 -3
  170. package/dist/engines/StageEngine.d.ts.map +1 -1
  171. package/dist/engines/StageEngine.js +33 -18
  172. package/dist/engines/StageEngine.js.map +1 -1
  173. package/dist/main.js +41 -2
  174. package/dist/main.js.map +1 -1
  175. package/dist/manager/makeBackendFactory.d.ts +11 -4
  176. package/dist/manager/makeBackendFactory.d.ts.map +1 -1
  177. package/dist/manager/makeBackendFactory.js +28 -15
  178. package/dist/manager/makeBackendFactory.js.map +1 -1
  179. package/dist/manager/runtime-coordinator.js.map +1 -1
  180. package/dist/manager/supervisor.d.ts +7 -7
  181. package/dist/manager/supervisor.d.ts.map +1 -1
  182. package/dist/manager/supervisor.js +7 -7
  183. package/dist/manager/supervisor.js.map +1 -1
  184. package/dist/manager/worker-manager-impl.d.ts +4 -4
  185. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  186. package/dist/manager/worker-manager-impl.js +56 -24
  187. package/dist/manager/worker-manager-impl.js.map +1 -1
  188. package/dist/manager/worker-manager.d.ts +6 -6
  189. package/dist/manager/worker-manager.d.ts.map +1 -1
  190. package/dist/openai-agent/agentFactory.d.ts +10 -0
  191. package/dist/openai-agent/agentFactory.d.ts.map +1 -0
  192. package/dist/openai-agent/agentFactory.js +26 -0
  193. package/dist/openai-agent/agentFactory.js.map +1 -0
  194. package/dist/openai-agent/eventMap.d.ts +11 -0
  195. package/dist/openai-agent/eventMap.d.ts.map +1 -0
  196. package/dist/openai-agent/eventMap.js +191 -0
  197. package/dist/openai-agent/eventMap.js.map +1 -0
  198. package/dist/openai-agent/hooks.d.ts +13 -0
  199. package/dist/openai-agent/hooks.d.ts.map +1 -0
  200. package/dist/openai-agent/hooks.js +63 -0
  201. package/dist/openai-agent/hooks.js.map +1 -0
  202. package/dist/openai-agent/instructions.d.ts +3 -0
  203. package/dist/openai-agent/instructions.d.ts.map +1 -0
  204. package/dist/openai-agent/instructions.js +63 -0
  205. package/dist/openai-agent/instructions.js.map +1 -0
  206. package/dist/openai-agent/interactions/broker.d.ts +23 -0
  207. package/dist/openai-agent/interactions/broker.d.ts.map +1 -0
  208. package/dist/openai-agent/interactions/broker.js +316 -0
  209. package/dist/openai-agent/interactions/broker.js.map +1 -0
  210. package/dist/openai-agent/mcp/managedMcp.d.ts +31 -0
  211. package/dist/openai-agent/mcp/managedMcp.d.ts.map +1 -0
  212. package/dist/openai-agent/mcp/managedMcp.js +95 -0
  213. package/dist/openai-agent/mcp/managedMcp.js.map +1 -0
  214. package/dist/openai-agent/protocolWriter.d.ts +29 -0
  215. package/dist/openai-agent/protocolWriter.d.ts.map +1 -0
  216. package/dist/openai-agent/protocolWriter.js +74 -0
  217. package/dist/openai-agent/protocolWriter.js.map +1 -0
  218. package/dist/openai-agent/providerCapabilities.d.ts +31 -0
  219. package/dist/openai-agent/providerCapabilities.d.ts.map +1 -0
  220. package/dist/openai-agent/providerCapabilities.js +49 -0
  221. package/dist/openai-agent/providerCapabilities.js.map +1 -0
  222. package/dist/openai-agent/providerFactory.d.ts +18 -0
  223. package/dist/openai-agent/providerFactory.d.ts.map +1 -0
  224. package/dist/openai-agent/providerFactory.js +38 -0
  225. package/dist/openai-agent/providerFactory.js.map +1 -0
  226. package/dist/openai-agent/request.d.ts +22 -0
  227. package/dist/openai-agent/request.d.ts.map +1 -0
  228. package/dist/openai-agent/request.js +89 -0
  229. package/dist/openai-agent/request.js.map +1 -0
  230. package/dist/openai-agent/runWorker.d.ts +25 -0
  231. package/dist/openai-agent/runWorker.d.ts.map +1 -0
  232. package/dist/openai-agent/runWorker.js +635 -0
  233. package/dist/openai-agent/runWorker.js.map +1 -0
  234. package/dist/openai-agent/sandbox/execution.d.ts +36 -0
  235. package/dist/openai-agent/sandbox/execution.d.ts.map +1 -0
  236. package/dist/openai-agent/sandbox/execution.js +239 -0
  237. package/dist/openai-agent/sandbox/execution.js.map +1 -0
  238. package/dist/openai-agent/sandbox/productionDocker.d.ts +17 -0
  239. package/dist/openai-agent/sandbox/productionDocker.d.ts.map +1 -0
  240. package/dist/openai-agent/sandbox/productionDocker.js +76 -0
  241. package/dist/openai-agent/sandbox/productionDocker.js.map +1 -0
  242. package/dist/openai-agent/sdkContract.d.ts +18 -0
  243. package/dist/openai-agent/sdkContract.d.ts.map +1 -0
  244. package/dist/openai-agent/sdkContract.js +2 -0
  245. package/dist/openai-agent/sdkContract.js.map +1 -0
  246. package/dist/openai-agent/storage/atomic.d.ts +10 -0
  247. package/dist/openai-agent/storage/atomic.d.ts.map +1 -0
  248. package/dist/openai-agent/storage/atomic.js +112 -0
  249. package/dist/openai-agent/storage/atomic.js.map +1 -0
  250. package/dist/openai-agent/storage/checkpoint.d.ts +38 -0
  251. package/dist/openai-agent/storage/checkpoint.d.ts.map +1 -0
  252. package/dist/openai-agent/storage/checkpoint.js +141 -0
  253. package/dist/openai-agent/storage/checkpoint.js.map +1 -0
  254. package/dist/openai-agent/storage/errors.d.ts +8 -0
  255. package/dist/openai-agent/storage/errors.d.ts.map +1 -0
  256. package/dist/openai-agent/storage/errors.js +11 -0
  257. package/dist/openai-agent/storage/errors.js.map +1 -0
  258. package/dist/openai-agent/storage/index.d.ts +12 -0
  259. package/dist/openai-agent/storage/index.d.ts.map +1 -0
  260. package/dist/openai-agent/storage/index.js +12 -0
  261. package/dist/openai-agent/storage/index.js.map +1 -0
  262. package/dist/openai-agent/storage/interaction.d.ts +45 -0
  263. package/dist/openai-agent/storage/interaction.d.ts.map +1 -0
  264. package/dist/openai-agent/storage/interaction.js +372 -0
  265. package/dist/openai-agent/storage/interaction.js.map +1 -0
  266. package/dist/openai-agent/storage/lock.d.ts +13 -0
  267. package/dist/openai-agent/storage/lock.d.ts.map +1 -0
  268. package/dist/openai-agent/storage/lock.js +95 -0
  269. package/dist/openai-agent/storage/lock.js.map +1 -0
  270. package/dist/openai-agent/storage/metrics.d.ts +34 -0
  271. package/dist/openai-agent/storage/metrics.d.ts.map +1 -0
  272. package/dist/openai-agent/storage/metrics.js +74 -0
  273. package/dist/openai-agent/storage/metrics.js.map +1 -0
  274. package/dist/openai-agent/storage/output.d.ts +22 -0
  275. package/dist/openai-agent/storage/output.d.ts.map +1 -0
  276. package/dist/openai-agent/storage/output.js +175 -0
  277. package/dist/openai-agent/storage/output.js.map +1 -0
  278. package/dist/openai-agent/storage/session.d.ts +38 -0
  279. package/dist/openai-agent/storage/session.d.ts.map +1 -0
  280. package/dist/openai-agent/storage/session.js +216 -0
  281. package/dist/openai-agent/storage/session.js.map +1 -0
  282. package/dist/openai-agent/storage/toolLedger.d.ts +64 -0
  283. package/dist/openai-agent/storage/toolLedger.d.ts.map +1 -0
  284. package/dist/openai-agent/storage/toolLedger.js +281 -0
  285. package/dist/openai-agent/storage/toolLedger.js.map +1 -0
  286. package/dist/openai-agent/storage/workerStorage.d.ts +21 -0
  287. package/dist/openai-agent/storage/workerStorage.d.ts.map +1 -0
  288. package/dist/openai-agent/storage/workerStorage.js +38 -0
  289. package/dist/openai-agent/storage/workerStorage.js.map +1 -0
  290. package/dist/openai-agent/storage/workspace.d.ts +17 -0
  291. package/dist/openai-agent/storage/workspace.d.ts.map +1 -0
  292. package/dist/openai-agent/storage/workspace.js +67 -0
  293. package/dist/openai-agent/storage/workspace.js.map +1 -0
  294. package/dist/openai-agent/testHelpers.d.ts +9 -0
  295. package/dist/openai-agent/testHelpers.d.ts.map +1 -0
  296. package/dist/openai-agent/testHelpers.js +35 -0
  297. package/dist/openai-agent/testHelpers.js.map +1 -0
  298. package/dist/openai-agent/tools/ledgerTools.d.ts +12 -0
  299. package/dist/openai-agent/tools/ledgerTools.d.ts.map +1 -0
  300. package/dist/openai-agent/tools/ledgerTools.js +151 -0
  301. package/dist/openai-agent/tools/ledgerTools.js.map +1 -0
  302. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  303. package/dist/providers/MarkdownTaskBackend.js +2 -2
  304. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  305. package/dist/providers/RuntimeSessionRuntime.d.ts +35 -15
  306. package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
  307. package/dist/providers/RuntimeSessionRuntime.js +239 -22
  308. package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
  309. package/dist/providers/llm/chatTools.d.ts.map +1 -1
  310. package/dist/providers/llm/chatTools.js +3 -3
  311. package/dist/providers/llm/chatTools.js.map +1 -1
  312. package/dist/providers/llm/codexAuth.d.ts +6 -1
  313. package/dist/providers/llm/codexAuth.d.ts.map +1 -1
  314. package/dist/providers/llm/codexAuth.js +45 -9
  315. package/dist/providers/llm/codexAuth.js.map +1 -1
  316. package/dist/providers/llm/codexModel.d.ts +4 -1
  317. package/dist/providers/llm/codexModel.d.ts.map +1 -1
  318. package/dist/providers/llm/codexModel.js +13 -3
  319. package/dist/providers/llm/codexModel.js.map +1 -1
  320. package/dist/providers/llm/localSubscription.d.ts +1 -1
  321. package/dist/providers/llm/localSubscription.d.ts.map +1 -1
  322. package/dist/providers/llm/localSubscription.js +2 -2
  323. package/dist/providers/llm/localSubscription.js.map +1 -1
  324. package/dist/providers/runtimeEventMap.d.ts +54 -5
  325. package/dist/providers/runtimeEventMap.d.ts.map +1 -1
  326. package/dist/providers/runtimeEventMap.js +110 -11
  327. package/dist/providers/runtimeEventMap.js.map +1 -1
  328. package/dist/runtime/agentd/client.d.ts +29 -0
  329. package/dist/runtime/agentd/client.d.ts.map +1 -0
  330. package/dist/runtime/agentd/client.js +131 -0
  331. package/dist/runtime/agentd/client.js.map +1 -0
  332. package/dist/runtime/agentd/main.d.ts +10 -0
  333. package/dist/runtime/agentd/main.d.ts.map +1 -0
  334. package/dist/runtime/agentd/main.js +49 -0
  335. package/dist/runtime/agentd/main.js.map +1 -0
  336. package/dist/runtime/agentd/protocol.d.ts +74 -0
  337. package/dist/runtime/agentd/protocol.d.ts.map +1 -0
  338. package/dist/runtime/agentd/protocol.js +21 -0
  339. package/dist/runtime/agentd/protocol.js.map +1 -0
  340. package/dist/runtime/agentd/server.d.ts +15 -0
  341. package/dist/runtime/agentd/server.d.ts.map +1 -0
  342. package/dist/runtime/agentd/server.js +116 -0
  343. package/dist/runtime/agentd/server.js.map +1 -0
  344. package/dist/runtime/backends/claude/ClaudeBackend.d.ts +155 -0
  345. package/dist/runtime/backends/claude/ClaudeBackend.d.ts.map +1 -0
  346. package/dist/runtime/backends/claude/ClaudeBackend.js +398 -0
  347. package/dist/runtime/backends/claude/ClaudeBackend.js.map +1 -0
  348. package/dist/runtime/backends/claude/ClaudeSessions.d.ts +23 -0
  349. package/dist/runtime/backends/claude/ClaudeSessions.d.ts.map +1 -0
  350. package/dist/runtime/backends/claude/ClaudeSessions.js +45 -0
  351. package/dist/runtime/backends/claude/ClaudeSessions.js.map +1 -0
  352. package/dist/runtime/backends/claude/inprocTools.d.ts +17 -0
  353. package/dist/runtime/backends/claude/inprocTools.d.ts.map +1 -0
  354. package/dist/runtime/backends/claude/inprocTools.js +14 -0
  355. package/dist/runtime/backends/claude/inprocTools.js.map +1 -0
  356. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts +83 -0
  357. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts.map +1 -0
  358. package/dist/runtime/backends/process/ExternalProcessBackend.js +642 -0
  359. package/dist/runtime/backends/process/ExternalProcessBackend.js.map +1 -0
  360. package/dist/runtime/contract/AgentBackend.d.ts +199 -0
  361. package/dist/runtime/contract/AgentBackend.d.ts.map +1 -0
  362. package/dist/runtime/contract/AgentBackend.js +2 -0
  363. package/dist/runtime/contract/AgentBackend.js.map +1 -0
  364. package/dist/runtime/contract/events.d.ts +96 -0
  365. package/dist/runtime/contract/events.d.ts.map +1 -0
  366. package/dist/runtime/contract/events.js +2 -0
  367. package/dist/runtime/contract/events.js.map +1 -0
  368. package/dist/runtime/contract/index.d.ts +13 -0
  369. package/dist/runtime/contract/index.d.ts.map +1 -0
  370. package/dist/runtime/contract/index.js +2 -0
  371. package/dist/runtime/contract/index.js.map +1 -0
  372. package/dist/runtime/contract/lifecycle.d.ts +26 -0
  373. package/dist/runtime/contract/lifecycle.d.ts.map +1 -0
  374. package/dist/runtime/contract/lifecycle.js +6 -0
  375. package/dist/runtime/contract/lifecycle.js.map +1 -0
  376. package/dist/runtime/contract/processProtocol.d.ts +263 -0
  377. package/dist/runtime/contract/processProtocol.d.ts.map +1 -0
  378. package/dist/runtime/contract/processProtocol.js +779 -0
  379. package/dist/runtime/contract/processProtocol.js.map +1 -0
  380. package/dist/runtime/contract/service.d.ts +85 -0
  381. package/dist/runtime/contract/service.d.ts.map +1 -0
  382. package/dist/runtime/contract/service.js +2 -0
  383. package/dist/runtime/contract/service.js.map +1 -0
  384. package/dist/runtime/contract/versioning.d.ts +44 -0
  385. package/dist/runtime/contract/versioning.d.ts.map +1 -0
  386. package/dist/runtime/contract/versioning.js +10 -0
  387. package/dist/runtime/contract/versioning.js.map +1 -0
  388. package/dist/runtime/index.d.ts +21 -0
  389. package/dist/runtime/index.d.ts.map +1 -0
  390. package/dist/runtime/index.js +26 -0
  391. package/dist/runtime/index.js.map +1 -0
  392. package/dist/runtime/runtime.d.ts +21 -0
  393. package/dist/runtime/runtime.d.ts.map +1 -0
  394. package/dist/runtime/runtime.js +34 -0
  395. package/dist/runtime/runtime.js.map +1 -0
  396. package/dist/runtime/service/AgentRuntime.d.ts +60 -0
  397. package/dist/runtime/service/AgentRuntime.d.ts.map +1 -0
  398. package/dist/runtime/service/AgentRuntime.js +396 -0
  399. package/dist/runtime/service/AgentRuntime.js.map +1 -0
  400. package/dist/runtime/service/FileRecordStore.d.ts +12 -0
  401. package/dist/runtime/service/FileRecordStore.d.ts.map +1 -0
  402. package/dist/runtime/service/FileRecordStore.js +48 -0
  403. package/dist/runtime/service/FileRecordStore.js.map +1 -0
  404. package/dist/runtime/service/backendFactory.d.ts +8 -0
  405. package/dist/runtime/service/backendFactory.d.ts.map +1 -0
  406. package/dist/runtime/service/backendFactory.js +20 -0
  407. package/dist/runtime/service/backendFactory.js.map +1 -0
  408. package/dist/runtime/stub/NoopBackend.d.ts +29 -0
  409. package/dist/runtime/stub/NoopBackend.d.ts.map +1 -0
  410. package/dist/runtime/stub/NoopBackend.js +56 -0
  411. package/dist/runtime/stub/NoopBackend.js.map +1 -0
  412. package/dist/runtime/stub/NoopService.d.ts +23 -0
  413. package/dist/runtime/stub/NoopService.d.ts.map +1 -0
  414. package/dist/runtime/stub/NoopService.js +136 -0
  415. package/dist/runtime/stub/NoopService.js.map +1 -0
  416. package/dist/runtime/stub/index.d.ts +8 -0
  417. package/dist/runtime/stub/index.d.ts.map +1 -0
  418. package/dist/runtime/stub/index.js +8 -0
  419. package/dist/runtime/stub/index.js.map +1 -0
  420. package/dist/runtime/versioning/VersionManager.d.ts +31 -0
  421. package/dist/runtime/versioning/VersionManager.d.ts.map +1 -0
  422. package/dist/runtime/versioning/VersionManager.js +142 -0
  423. package/dist/runtime/versioning/VersionManager.js.map +1 -0
  424. package/dist/services/ChatService.d.ts +11 -0
  425. package/dist/services/ChatService.d.ts.map +1 -1
  426. package/dist/services/ChatService.js +35 -5
  427. package/dist/services/ChatService.js.map +1 -1
  428. package/dist/services/LogService.d.ts +10 -4
  429. package/dist/services/LogService.d.ts.map +1 -1
  430. package/dist/services/LogService.js +26 -5
  431. package/dist/services/LogService.js.map +1 -1
  432. package/dist/services/ProjectService.d.ts +56 -0
  433. package/dist/services/ProjectService.d.ts.map +1 -1
  434. package/dist/services/ProjectService.js +182 -15
  435. package/dist/services/ProjectService.js.map +1 -1
  436. package/dist/services/WorkerService.d.ts +1 -0
  437. package/dist/services/WorkerService.d.ts.map +1 -1
  438. package/dist/services/WorkerService.js +72 -0
  439. package/dist/services/WorkerService.js.map +1 -1
  440. package/dist/services/executors.d.ts +1 -0
  441. package/dist/services/executors.d.ts.map +1 -1
  442. package/dist/services/executors.js +9 -1
  443. package/dist/services/executors.js.map +1 -1
  444. package/dist/services/promptPreview.d.ts.map +1 -1
  445. package/dist/services/promptPreview.js +4 -3
  446. package/dist/services/promptPreview.js.map +1 -1
  447. package/dist/shared/runtimePaths.d.ts +4 -0
  448. package/dist/shared/runtimePaths.d.ts.map +1 -1
  449. package/dist/shared/runtimePaths.js +8 -0
  450. package/dist/shared/runtimePaths.js.map +1 -1
  451. package/dist/shared/runtimeSchemas.d.ts +6 -2
  452. package/dist/shared/runtimeSchemas.d.ts.map +1 -1
  453. package/dist/shared/runtimeSchemas.js +3 -2
  454. package/dist/shared/runtimeSchemas.js.map +1 -1
  455. package/docs/openai-daemon-agent.md +144 -0
  456. package/package.json +15 -9
  457. package/project-template/.claude/hooks/openai/on-start.sh +6 -0
  458. package/project-template/.claude/hooks/openai/on-stop.sh +6 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @module agentd/protocol
3
+ * P2:agentd 线协议。Unix domain socket(D4:socket 先行,HTTP 延后),
4
+ * 帧 = 一行 JSON(`\n` 分隔,NDJSON)。控制通道绑 socket 而非父进程 stdio,
5
+ * 故消费者(tick/console)重启后可重连仍存活的会话(P2 北极星)。
6
+ *
7
+ * 请求/响应按 `id` 配对;事件帧无 `id`、带 `sub`(订阅号)异步推送。
8
+ */
9
+ import type { SessionConfig } from '../contract/AgentBackend.js';
10
+ import type { SessionRecord } from '../contract/service.js';
11
+ import type { StopReason } from '../contract/lifecycle.js';
12
+ import type { WorkerOutputEvent } from '../contract/events.js';
13
+ import type { JsonValue } from '../contract/processProtocol.js';
14
+ export declare const DEFAULT_SOCKET_PATH = "/tmp/coral-agentd.sock";
15
+ /** 客户端 → 服务:请求帧。 */
16
+ export type Req = {
17
+ id: number;
18
+ op: 'ensureSession';
19
+ slot: string;
20
+ config: SessionConfig;
21
+ } | {
22
+ id: number;
23
+ op: 'startRun';
24
+ slot: string;
25
+ prompt: string;
26
+ } | {
27
+ id: number;
28
+ op: 'submitInteraction';
29
+ slot: string;
30
+ interactionId: string;
31
+ answer: JsonValue;
32
+ } | {
33
+ id: number;
34
+ op: 'subscribe';
35
+ slot: string;
36
+ sub: number;
37
+ } | {
38
+ id: number;
39
+ op: 'unsubscribe';
40
+ sub: number;
41
+ } | {
42
+ id: number;
43
+ op: 'cancelRun';
44
+ slot: string;
45
+ } | {
46
+ id: number;
47
+ op: 'stopSession';
48
+ slot: string;
49
+ reason?: StopReason;
50
+ } | {
51
+ id: number;
52
+ op: 'inspect';
53
+ slot?: string;
54
+ };
55
+ /** 服务 → 客户端:响应帧(`ok`)/ 错误帧 / 事件帧。 */
56
+ export type Res = {
57
+ id: number;
58
+ ok: true;
59
+ result: SessionRecord | SessionRecord[] | null;
60
+ } | {
61
+ id: number;
62
+ ok: false;
63
+ error: string;
64
+ } | {
65
+ event: WorkerOutputEvent;
66
+ sub: number;
67
+ };
68
+ export declare function encode(frame: Req | Res): string;
69
+ /** 把 socket 上的字节流切成整行 JSON 帧(处理半包/粘包)。 */
70
+ export declare class FrameDecoder {
71
+ private buf;
72
+ push(chunk: string): Array<Req | Res>;
73
+ }
74
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentd/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,oBAAoB;AACpB,MAAM,MAAM,GAAG,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D;IACE,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,mBAAmB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;CACnB,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACpE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,qCAAqC;AACrC,MAAM,MAAM,GAAG,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,CAE/C;AAED,0CAA0C;AAC1C,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAM;IACjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;CAWtC"}
@@ -0,0 +1,21 @@
1
+ export const DEFAULT_SOCKET_PATH = '/tmp/coral-agentd.sock';
2
+ export function encode(frame) {
3
+ return JSON.stringify(frame) + '\n';
4
+ }
5
+ /** 把 socket 上的字节流切成整行 JSON 帧(处理半包/粘包)。 */
6
+ export class FrameDecoder {
7
+ buf = '';
8
+ push(chunk) {
9
+ this.buf += chunk;
10
+ const out = [];
11
+ let nl;
12
+ while ((nl = this.buf.indexOf('\n')) >= 0) {
13
+ const line = this.buf.slice(0, nl);
14
+ this.buf = this.buf.slice(nl + 1);
15
+ if (line.trim())
16
+ out.push(JSON.parse(line));
17
+ }
18
+ return out;
19
+ }
20
+ }
21
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/runtime/agentd/protocol.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAyB5D,MAAM,UAAU,MAAM,CAAC,KAAgB;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACtC,CAAC;AAED,0CAA0C;AAC1C,MAAM,OAAO,YAAY;IACf,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;QAClB,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,IAAI,EAAU,CAAC;QACf,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { AgentService } from '../contract/service.js';
2
+ export interface AgentdServerOpts {
3
+ service: AgentService;
4
+ socketPath: string;
5
+ }
6
+ export declare class AgentdServer {
7
+ private readonly opts;
8
+ private server?;
9
+ constructor(opts: AgentdServerOpts);
10
+ listen(): Promise<void>;
11
+ private onConn;
12
+ private handle;
13
+ close(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentd/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IAEX,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBACK,IAAI,EAAE,gBAAgB;IAE7C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B,OAAO,CAAC,MAAM;YA0BA,MAAM;IAwDd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @module agentd/server
3
+ * P2:agentd socket 外壳。把 {@link AgentRuntime} 内核暴露到 Unix domain socket。
4
+ * 多客户端可同时连;某客户端断开只清它的订阅,**会话仍在内核里存活** → 消费者重启可重连。
5
+ */
6
+ import { createServer } from 'node:net';
7
+ import { existsSync, unlinkSync } from 'node:fs';
8
+ import { encode, FrameDecoder } from './protocol.js';
9
+ export class AgentdServer {
10
+ opts;
11
+ server;
12
+ constructor(opts) {
13
+ this.opts = opts;
14
+ }
15
+ async listen() {
16
+ const { socketPath } = this.opts;
17
+ if (existsSync(socketPath))
18
+ unlinkSync(socketPath); // 清残留 socket(上次未优雅退出)
19
+ this.server = createServer((sock) => this.onConn(sock));
20
+ await new Promise((resolve, reject) => {
21
+ this.server.once('error', reject);
22
+ this.server.listen(socketPath, () => {
23
+ this.server.off('error', reject);
24
+ resolve();
25
+ });
26
+ });
27
+ }
28
+ onConn(sock) {
29
+ sock.setEncoding('utf8');
30
+ const decoder = new FrameDecoder();
31
+ // 本连接的订阅:sub 号 → cancel 函数。连接断开时全部退订(但不停会话)。
32
+ const subs = new Map();
33
+ const send = (frame) => {
34
+ if (!sock.writableEnded)
35
+ sock.write(encode(frame));
36
+ };
37
+ sock.on('data', (chunk) => {
38
+ let frames;
39
+ try {
40
+ frames = decoder.push(chunk);
41
+ }
42
+ catch (e) {
43
+ send({ id: -1, ok: false, error: `bad frame: ${String(e)}` });
44
+ return;
45
+ }
46
+ for (const f of frames)
47
+ void this.handle(f, send, subs);
48
+ });
49
+ sock.on('error', () => { });
50
+ sock.on('close', () => {
51
+ for (const cancel of subs.values())
52
+ cancel();
53
+ subs.clear();
54
+ });
55
+ }
56
+ async handle(req, send, subs) {
57
+ const svc = this.opts.service;
58
+ try {
59
+ switch (req.op) {
60
+ case 'ensureSession':
61
+ send({ id: req.id, ok: true, result: await svc.ensureSession(req.slot, req.config) });
62
+ break;
63
+ case 'startRun':
64
+ send({ id: req.id, ok: true, result: await svc.startRun(req.slot, req.prompt) });
65
+ break;
66
+ case 'submitInteraction':
67
+ if (!svc.submitInteraction) {
68
+ throw new Error('Runtime does not support interactions');
69
+ }
70
+ send({
71
+ id: req.id,
72
+ ok: true,
73
+ result: await svc.submitInteraction(req.slot, req.interactionId, req.answer),
74
+ });
75
+ break;
76
+ case 'cancelRun':
77
+ await svc.cancelRun(req.slot);
78
+ send({ id: req.id, ok: true, result: null });
79
+ break;
80
+ case 'stopSession':
81
+ await svc.stopSession(req.slot, req.reason);
82
+ send({ id: req.id, ok: true, result: null });
83
+ break;
84
+ case 'inspect':
85
+ send({ id: req.id, ok: true, result: await svc.inspect(req.slot) });
86
+ break;
87
+ case 'subscribe': {
88
+ const stream = svc.subscribe(req.slot);
89
+ subs.set(req.sub, () => stream.cancel());
90
+ send({ id: req.id, ok: true, result: null }); // ack
91
+ void (async () => {
92
+ for await (const event of stream)
93
+ send({ event, sub: req.sub });
94
+ })();
95
+ break;
96
+ }
97
+ case 'unsubscribe': {
98
+ subs.get(req.sub)?.();
99
+ subs.delete(req.sub);
100
+ send({ id: req.id, ok: true, result: null });
101
+ break;
102
+ }
103
+ }
104
+ }
105
+ catch (e) {
106
+ send({ id: req.id, ok: false, error: e instanceof Error ? e.message : String(e) });
107
+ }
108
+ }
109
+ async close() {
110
+ const socketPath = this.opts.socketPath;
111
+ await new Promise((resolve) => this.server?.close(() => resolve()));
112
+ if (existsSync(socketPath))
113
+ unlinkSync(socketPath);
114
+ }
115
+ }
116
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/runtime/agentd/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @module backends/claude/ClaudeBackend
3
+ * P1 第一卡:`AgentBackend` 的 claude 适配器。进程内直调 `@anthropic-ai/claude-agent-sdk`
4
+ * 的 `query()`(逻辑平移自 sps-cli `ClaudeSdkBackend`,2026-06-29 验通的真件),
5
+ * 在其上补齐 agent-runtime 厚契约的字段(全量事件 / resume / 权限 / mcp / env / tuning)。
6
+ *
7
+ * 结构决策(已拍):SDK **不静态 import** —— `query`/`getSessionInfo` 由 {@link ClaudeSdkModule}
8
+ * **构造注入**(按结构类型收)。P1 测试塞 devDep 那份;P3 换 `VersionManager.load()` 那份,零改本文件。
9
+ *
10
+ * R1(类型化 resume 失败,实地敲定):实装 SDK 0.3.196 已**砍掉** 0.2.132 的 `unstable_v2_*` 会话 API,
11
+ * 只剩 `getSessionInfo(id) → info | undefined`(查无即 undefined)。故:
12
+ * - resume 路:`getSessionInfo` 命中 → `resumed:true`;`undefined` → `resumeFailed:'not_found'` 起新会话。
13
+ * - 运行期会话被回收 → `error` 事件(recoverable)+ 失败 result,对应 'session_lost'。
14
+ * - fresh 路:claude 无 id 直到首轮 → `ensure` 返回 `resumed:false`,真 id 经 `session` 事件在首轮交付。
15
+ */
16
+ import type { AgentBackend, SessionConfig } from '../../contract/AgentBackend.js';
17
+ import type { WorkerOutputListener } from '../../contract/events.js';
18
+ import type { RunState, StopReason } from '../../contract/lifecycle.js';
19
+ /**
20
+ * 注入式 SDK 边界 —— 不锁 SDK 具体版本(P3 版本管理之锚)。
21
+ * Query 的**全部运行时控制方法**都列在此(对照官方 `Query` 接口);老版本缺的标 optional,调用即 no-op。
22
+ */
23
+ export interface ClaudeQuery extends AsyncIterable<unknown> {
24
+ interrupt(): Promise<void>;
25
+ setModel?: (model?: string) => Promise<void>;
26
+ setMaxThinkingTokens?: (n: number | null, thinkingDisplay?: 'summarized' | 'omitted' | null) => Promise<void>;
27
+ setPermissionMode?: (mode: string) => Promise<void>;
28
+ applyFlagSettings?: (settings: unknown) => Promise<unknown>;
29
+ initializationResult?: () => Promise<unknown>;
30
+ supportedCommands?: () => Promise<unknown[]>;
31
+ supportedModels?: () => Promise<unknown[]>;
32
+ supportedAgents?: () => Promise<unknown[]>;
33
+ mcpServerStatus?: () => Promise<unknown>;
34
+ accountInfo?: () => Promise<unknown>;
35
+ reconnectMcpServer?: (serverName: string) => Promise<unknown>;
36
+ toggleMcpServer?: (serverName: string, enabled: boolean) => Promise<unknown>;
37
+ setMcpServers?: (servers: unknown) => Promise<unknown>;
38
+ rewindFiles?: (userMessageId: string, options?: unknown) => Promise<unknown>;
39
+ stopTask?: (taskId: string) => Promise<unknown>;
40
+ streamInput?: (stream: unknown) => Promise<unknown>;
41
+ close?: () => void;
42
+ setMcpPermissionModeOverride?: (serverName: string, mode: 'default' | 'auto' | null) => Promise<unknown>;
43
+ reinitialize?: () => Promise<unknown>;
44
+ }
45
+ /**
46
+ * 完整 SDK 模块面(对照 claude-agent-sdk 顶层导出)。`query` 必有;其余按 SDK 版本 optional。
47
+ * 经 `VersionManager.load()` 拿到的整模块即可直接当它用(结构匹配)。
48
+ */
49
+ export interface ClaudeSdkModule {
50
+ query(args: {
51
+ prompt: string | AsyncIterable<unknown>;
52
+ options?: Record<string, unknown>;
53
+ }): ClaudeQuery;
54
+ getSessionInfo?: (sessionId: string, options?: unknown) => Promise<unknown | undefined>;
55
+ getSessionMessages?: (sessionId: string, options?: unknown) => Promise<unknown[]>;
56
+ listSessions?: (options?: unknown) => Promise<unknown[]>;
57
+ forkSession?: (sessionId: string, options?: unknown) => Promise<unknown>;
58
+ deleteSession?: (sessionId: string, options?: unknown) => Promise<unknown>;
59
+ renameSession?: (sessionId: string, title: string, options?: unknown) => Promise<unknown>;
60
+ tagSession?: (...args: unknown[]) => Promise<unknown>;
61
+ foldSessionSummary?: (...args: unknown[]) => Promise<unknown>;
62
+ importSessionToStore?: (...args: unknown[]) => Promise<unknown>;
63
+ listSubagents?: (options?: unknown) => Promise<unknown[]>;
64
+ getSubagentMessages?: (...args: unknown[]) => Promise<unknown[]>;
65
+ resolveSettings?: (opts?: unknown) => Promise<unknown>;
66
+ createSdkMcpServer?: (cfg: {
67
+ name: string;
68
+ version?: string;
69
+ tools: unknown[];
70
+ }) => unknown;
71
+ tool?: (...args: unknown[]) => unknown;
72
+ /** 其余顶层导出(InMemorySessionStore 等)经原模块直达,见 ClaudeBackend.raw()。 */
73
+ [extra: string]: unknown;
74
+ }
75
+ export declare class ClaudeBackend implements AgentBackend {
76
+ private readonly cfg;
77
+ private readonly sdk;
78
+ readonly kind = "claude";
79
+ private sessionId?;
80
+ private current?;
81
+ private abort?;
82
+ private state;
83
+ private cancelled;
84
+ /** 最近一次 system.init(含 model/tools/mcp_servers/slash_commands/...);供无在飞 Query 时回退查询。 */
85
+ private lastInit?;
86
+ /** 保活模式:开着的输入流 + 是否已启动持续输出循环。 */
87
+ private input?;
88
+ private loopStarted;
89
+ private readonly listeners;
90
+ constructor(cfg: SessionConfig, sdk: ClaudeSdkModule);
91
+ subscribe(listener: WorkerOutputListener): () => void;
92
+ private emit;
93
+ ensure(): Promise<{
94
+ sessionId: string;
95
+ resumed: boolean;
96
+ resumeFailed?: 'session_lost' | 'not_found';
97
+ }>;
98
+ dispatch(prompt: string): Promise<void>;
99
+ /** 保活模式:首轮建一个流式 query(常驻子进程),后续 dispatch 把消息喂进同一个流。 */
100
+ private dispatchPersistent;
101
+ /** SDKMessage → 状态 + WorkerOutputEvent(全量映射)。 */
102
+ private translate;
103
+ private mapModelUsage;
104
+ /** SessionConfig → claude query options(全字段落地)。 */
105
+ private buildOptions;
106
+ /** 运行时切模型(下一个/当前轮生效,取决于 SDK)。 */
107
+ setModel(model?: string): Promise<void>;
108
+ /** 运行时改思考预算。 */
109
+ setMaxThinkingTokens(n: number | null): Promise<void>;
110
+ /** 运行时改权限模式(中立值映射到 SDK)。 */
111
+ setPermissionMode(mode: NonNullable<SessionConfig['permission']>['mode']): Promise<void>;
112
+ /** 单 MCP server 的权限模式覆盖。 */
113
+ setMcpPermissionModeOverride(serverName: string, mode: 'default' | 'auto' | null): Promise<unknown>;
114
+ /** 运行时套用 flag settings。 */
115
+ applyFlagSettings(settings: unknown): Promise<unknown>;
116
+ /** 初始化结果(模型/工具/MCP 状态等);无在飞 Query 时回退到最近一次 system.init。 */
117
+ initializationResult(): Promise<unknown>;
118
+ /** 重新初始化(重载配置)。 */
119
+ reinitialize(): Promise<unknown>;
120
+ /** 当前支持的斜杠命令;无在飞 Query 时回退到 init 里的 slash_commands。 */
121
+ supportedCommands(): Promise<unknown[]>;
122
+ /** 当前可用模型。 */
123
+ supportedModels(): Promise<unknown[]>;
124
+ /** 当前可用子代理(回退到 init 的 agents)。 */
125
+ supportedAgents(): Promise<unknown[]>;
126
+ /** MCP server 连接状态(回退到 init 的 mcp_servers)。 */
127
+ mcpServerStatus(): Promise<unknown>;
128
+ /** 账户信息。 */
129
+ accountInfo(): Promise<unknown>;
130
+ /** 重连指定 MCP server。 */
131
+ reconnectMcpServer(serverName: string): Promise<unknown>;
132
+ /** 启/停指定 MCP server。 */
133
+ toggleMcpServer(serverName: string, enabled: boolean): Promise<unknown>;
134
+ /** 运行时整体替换 MCP servers。 */
135
+ setMcpServers(servers: unknown): Promise<unknown>;
136
+ /** 回退文件到某条用户消息时的状态(checkpointing)。 */
137
+ rewindFiles(userMessageId: string, options?: unknown): Promise<unknown>;
138
+ /** 停止某个后台任务。 */
139
+ stopTask(taskId: string): Promise<unknown>;
140
+ /** 流式多轮输入(streaming input mode)。 */
141
+ streamInput(stream: unknown): Promise<unknown>;
142
+ /** 关闭并终止底层进程(等同更彻底的 stop)。 */
143
+ closeQuery(): void;
144
+ /** 当前在飞的 Query 句柄(无则 undefined)—— 触达任何未显式封装的方法。 */
145
+ query(): ClaudeQuery | undefined;
146
+ /** 注入的完整 SDK 模块 —— 触达会话管理(listSessions/forkSession/…)/ createSdkMcpServer / tool / 任何顶层导出。 */
147
+ raw(): ClaudeSdkModule;
148
+ private mapMcp;
149
+ runState(): Promise<RunState>;
150
+ /** 中断本轮、保活会话(可续)。 */
151
+ cancel(): Promise<void>;
152
+ /** 收尾:关输入流(保活模式→结束流→子进程退出)+ abort + 复位。 */
153
+ stop(_reason?: StopReason): Promise<void>;
154
+ }
155
+ //# sourceMappingURL=ClaudeBackend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeBackend.d.ts","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/ClaudeBackend.ts"],"names":[],"mappings":"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"}