@coralai/sps-cli 0.63.6 → 0.65.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 (456) 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 +11 -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/config.d.ts +5 -8
  87. package/dist/core/config.d.ts.map +1 -1
  88. package/dist/core/config.js +3 -9
  89. package/dist/core/config.js.map +1 -1
  90. package/dist/core/intel/agentsConfig.d.ts +9 -0
  91. package/dist/core/intel/agentsConfig.d.ts.map +1 -1
  92. package/dist/core/intel/agentsConfig.js +42 -0
  93. package/dist/core/intel/agentsConfig.js.map +1 -1
  94. package/dist/core/intel/types.d.ts +1 -0
  95. package/dist/core/intel/types.d.ts.map +1 -1
  96. package/dist/core/markerFile.d.ts.map +1 -1
  97. package/dist/core/markerFile.js +2 -2
  98. package/dist/core/markerFile.js.map +1 -1
  99. package/dist/core/openaiWorkerLog.d.ts +7 -0
  100. package/dist/core/openaiWorkerLog.d.ts.map +1 -0
  101. package/dist/core/openaiWorkerLog.js +98 -0
  102. package/dist/core/openaiWorkerLog.js.map +1 -0
  103. package/dist/core/paths.d.ts +1 -1
  104. package/dist/core/paths.d.ts.map +1 -1
  105. package/dist/core/paths.js +9 -7
  106. package/dist/core/paths.js.map +1 -1
  107. package/dist/core/pipelineConfig.js +7 -7
  108. package/dist/core/pipelineConfig.js.map +1 -1
  109. package/dist/core/pipelineSession.d.ts +3 -1
  110. package/dist/core/pipelineSession.d.ts.map +1 -1
  111. package/dist/core/pipelineSession.js +8 -2
  112. package/dist/core/pipelineSession.js.map +1 -1
  113. package/dist/core/processInspect.d.ts +5 -0
  114. package/dist/core/processInspect.d.ts.map +1 -1
  115. package/dist/core/processInspect.js +41 -11
  116. package/dist/core/processInspect.js.map +1 -1
  117. package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
  118. package/dist/core/projectPipelineAdapter.js +4 -4
  119. package/dist/core/projectPipelineAdapter.js.map +1 -1
  120. package/dist/core/runtimeSnapshot.d.ts +2 -2
  121. package/dist/core/runtimeSnapshot.d.ts.map +1 -1
  122. package/dist/core/runtimeSnapshot.js +2 -2
  123. package/dist/core/runtimeSnapshot.js.map +1 -1
  124. package/dist/core/runtimeStore.d.ts +12 -12
  125. package/dist/core/runtimeStore.d.ts.map +1 -1
  126. package/dist/core/runtimeStore.js +16 -16
  127. package/dist/core/runtimeStore.js.map +1 -1
  128. package/dist/core/runtimeTypes.d.ts +109 -24
  129. package/dist/core/runtimeTypes.d.ts.map +1 -1
  130. package/dist/core/runtimeTypes.js +1 -1
  131. package/dist/core/sessionCleanup.d.ts +1 -1
  132. package/dist/core/sessionCleanup.d.ts.map +1 -1
  133. package/dist/core/sessionCleanup.js +2 -2
  134. package/dist/core/sessionCleanup.js.map +1 -1
  135. package/dist/core/sessionContext.d.ts +2 -2
  136. package/dist/core/sessionContext.d.ts.map +1 -1
  137. package/dist/core/sessionContext.js +1 -1
  138. package/dist/core/sessionContext.js.map +1 -1
  139. package/dist/core/sessionLiveness.d.ts +7 -6
  140. package/dist/core/sessionLiveness.d.ts.map +1 -1
  141. package/dist/core/sessionLiveness.js +3 -4
  142. package/dist/core/sessionLiveness.js.map +1 -1
  143. package/dist/core/state.d.ts +13 -12
  144. package/dist/core/state.d.ts.map +1 -1
  145. package/dist/core/state.js +9 -1
  146. package/dist/core/state.js.map +1 -1
  147. package/dist/core/workerRuntimeSummary.js +2 -2
  148. package/dist/core/workerRuntimeSummary.js.map +1 -1
  149. package/dist/core/workspacePaths.d.ts +22 -0
  150. package/dist/core/workspacePaths.d.ts.map +1 -0
  151. package/dist/core/workspacePaths.js +73 -0
  152. package/dist/core/workspacePaths.js.map +1 -0
  153. package/dist/daemon/daemonClient.d.ts +19 -22
  154. package/dist/daemon/daemonClient.d.ts.map +1 -1
  155. package/dist/daemon/daemonClient.js +82 -2
  156. package/dist/daemon/daemonClient.js.map +1 -1
  157. package/dist/daemon/sessionDaemon.d.ts +52 -7
  158. package/dist/daemon/sessionDaemon.d.ts.map +1 -1
  159. package/dist/daemon/sessionDaemon.js +40 -24
  160. package/dist/daemon/sessionDaemon.js.map +1 -1
  161. package/dist/engines/EventHandler.js +1 -1
  162. package/dist/engines/EventHandler.js.map +1 -1
  163. package/dist/engines/MonitorEngine.d.ts +2 -2
  164. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  165. package/dist/engines/MonitorEngine.js +15 -17
  166. package/dist/engines/MonitorEngine.js.map +1 -1
  167. package/dist/engines/StageEngine.d.ts +5 -3
  168. package/dist/engines/StageEngine.d.ts.map +1 -1
  169. package/dist/engines/StageEngine.js +33 -18
  170. package/dist/engines/StageEngine.js.map +1 -1
  171. package/dist/main.js +21 -1
  172. package/dist/main.js.map +1 -1
  173. package/dist/manager/makeBackendFactory.d.ts +11 -4
  174. package/dist/manager/makeBackendFactory.d.ts.map +1 -1
  175. package/dist/manager/makeBackendFactory.js +28 -15
  176. package/dist/manager/makeBackendFactory.js.map +1 -1
  177. package/dist/manager/runtime-coordinator.js.map +1 -1
  178. package/dist/manager/supervisor.d.ts +7 -7
  179. package/dist/manager/supervisor.d.ts.map +1 -1
  180. package/dist/manager/supervisor.js +7 -7
  181. package/dist/manager/supervisor.js.map +1 -1
  182. package/dist/manager/worker-manager-impl.d.ts +4 -4
  183. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  184. package/dist/manager/worker-manager-impl.js +56 -24
  185. package/dist/manager/worker-manager-impl.js.map +1 -1
  186. package/dist/manager/worker-manager.d.ts +6 -6
  187. package/dist/manager/worker-manager.d.ts.map +1 -1
  188. package/dist/openai-agent/agentFactory.d.ts +10 -0
  189. package/dist/openai-agent/agentFactory.d.ts.map +1 -0
  190. package/dist/openai-agent/agentFactory.js +26 -0
  191. package/dist/openai-agent/agentFactory.js.map +1 -0
  192. package/dist/openai-agent/eventMap.d.ts +11 -0
  193. package/dist/openai-agent/eventMap.d.ts.map +1 -0
  194. package/dist/openai-agent/eventMap.js +191 -0
  195. package/dist/openai-agent/eventMap.js.map +1 -0
  196. package/dist/openai-agent/hooks.d.ts +13 -0
  197. package/dist/openai-agent/hooks.d.ts.map +1 -0
  198. package/dist/openai-agent/hooks.js +63 -0
  199. package/dist/openai-agent/hooks.js.map +1 -0
  200. package/dist/openai-agent/instructions.d.ts +3 -0
  201. package/dist/openai-agent/instructions.d.ts.map +1 -0
  202. package/dist/openai-agent/instructions.js +63 -0
  203. package/dist/openai-agent/instructions.js.map +1 -0
  204. package/dist/openai-agent/interactions/broker.d.ts +23 -0
  205. package/dist/openai-agent/interactions/broker.d.ts.map +1 -0
  206. package/dist/openai-agent/interactions/broker.js +316 -0
  207. package/dist/openai-agent/interactions/broker.js.map +1 -0
  208. package/dist/openai-agent/mcp/managedMcp.d.ts +31 -0
  209. package/dist/openai-agent/mcp/managedMcp.d.ts.map +1 -0
  210. package/dist/openai-agent/mcp/managedMcp.js +95 -0
  211. package/dist/openai-agent/mcp/managedMcp.js.map +1 -0
  212. package/dist/openai-agent/protocolWriter.d.ts +29 -0
  213. package/dist/openai-agent/protocolWriter.d.ts.map +1 -0
  214. package/dist/openai-agent/protocolWriter.js +74 -0
  215. package/dist/openai-agent/protocolWriter.js.map +1 -0
  216. package/dist/openai-agent/providerCapabilities.d.ts +31 -0
  217. package/dist/openai-agent/providerCapabilities.d.ts.map +1 -0
  218. package/dist/openai-agent/providerCapabilities.js +49 -0
  219. package/dist/openai-agent/providerCapabilities.js.map +1 -0
  220. package/dist/openai-agent/providerFactory.d.ts +18 -0
  221. package/dist/openai-agent/providerFactory.d.ts.map +1 -0
  222. package/dist/openai-agent/providerFactory.js +38 -0
  223. package/dist/openai-agent/providerFactory.js.map +1 -0
  224. package/dist/openai-agent/request.d.ts +22 -0
  225. package/dist/openai-agent/request.d.ts.map +1 -0
  226. package/dist/openai-agent/request.js +89 -0
  227. package/dist/openai-agent/request.js.map +1 -0
  228. package/dist/openai-agent/runWorker.d.ts +25 -0
  229. package/dist/openai-agent/runWorker.d.ts.map +1 -0
  230. package/dist/openai-agent/runWorker.js +635 -0
  231. package/dist/openai-agent/runWorker.js.map +1 -0
  232. package/dist/openai-agent/sandbox/execution.d.ts +36 -0
  233. package/dist/openai-agent/sandbox/execution.d.ts.map +1 -0
  234. package/dist/openai-agent/sandbox/execution.js +239 -0
  235. package/dist/openai-agent/sandbox/execution.js.map +1 -0
  236. package/dist/openai-agent/sandbox/productionDocker.d.ts +17 -0
  237. package/dist/openai-agent/sandbox/productionDocker.d.ts.map +1 -0
  238. package/dist/openai-agent/sandbox/productionDocker.js +76 -0
  239. package/dist/openai-agent/sandbox/productionDocker.js.map +1 -0
  240. package/dist/openai-agent/sdkContract.d.ts +18 -0
  241. package/dist/openai-agent/sdkContract.d.ts.map +1 -0
  242. package/dist/openai-agent/sdkContract.js +2 -0
  243. package/dist/openai-agent/sdkContract.js.map +1 -0
  244. package/dist/openai-agent/storage/atomic.d.ts +10 -0
  245. package/dist/openai-agent/storage/atomic.d.ts.map +1 -0
  246. package/dist/openai-agent/storage/atomic.js +112 -0
  247. package/dist/openai-agent/storage/atomic.js.map +1 -0
  248. package/dist/openai-agent/storage/checkpoint.d.ts +38 -0
  249. package/dist/openai-agent/storage/checkpoint.d.ts.map +1 -0
  250. package/dist/openai-agent/storage/checkpoint.js +141 -0
  251. package/dist/openai-agent/storage/checkpoint.js.map +1 -0
  252. package/dist/openai-agent/storage/errors.d.ts +8 -0
  253. package/dist/openai-agent/storage/errors.d.ts.map +1 -0
  254. package/dist/openai-agent/storage/errors.js +11 -0
  255. package/dist/openai-agent/storage/errors.js.map +1 -0
  256. package/dist/openai-agent/storage/index.d.ts +12 -0
  257. package/dist/openai-agent/storage/index.d.ts.map +1 -0
  258. package/dist/openai-agent/storage/index.js +12 -0
  259. package/dist/openai-agent/storage/index.js.map +1 -0
  260. package/dist/openai-agent/storage/interaction.d.ts +45 -0
  261. package/dist/openai-agent/storage/interaction.d.ts.map +1 -0
  262. package/dist/openai-agent/storage/interaction.js +372 -0
  263. package/dist/openai-agent/storage/interaction.js.map +1 -0
  264. package/dist/openai-agent/storage/lock.d.ts +13 -0
  265. package/dist/openai-agent/storage/lock.d.ts.map +1 -0
  266. package/dist/openai-agent/storage/lock.js +95 -0
  267. package/dist/openai-agent/storage/lock.js.map +1 -0
  268. package/dist/openai-agent/storage/metrics.d.ts +34 -0
  269. package/dist/openai-agent/storage/metrics.d.ts.map +1 -0
  270. package/dist/openai-agent/storage/metrics.js +74 -0
  271. package/dist/openai-agent/storage/metrics.js.map +1 -0
  272. package/dist/openai-agent/storage/output.d.ts +22 -0
  273. package/dist/openai-agent/storage/output.d.ts.map +1 -0
  274. package/dist/openai-agent/storage/output.js +175 -0
  275. package/dist/openai-agent/storage/output.js.map +1 -0
  276. package/dist/openai-agent/storage/session.d.ts +38 -0
  277. package/dist/openai-agent/storage/session.d.ts.map +1 -0
  278. package/dist/openai-agent/storage/session.js +216 -0
  279. package/dist/openai-agent/storage/session.js.map +1 -0
  280. package/dist/openai-agent/storage/toolLedger.d.ts +64 -0
  281. package/dist/openai-agent/storage/toolLedger.d.ts.map +1 -0
  282. package/dist/openai-agent/storage/toolLedger.js +281 -0
  283. package/dist/openai-agent/storage/toolLedger.js.map +1 -0
  284. package/dist/openai-agent/storage/workerStorage.d.ts +21 -0
  285. package/dist/openai-agent/storage/workerStorage.d.ts.map +1 -0
  286. package/dist/openai-agent/storage/workerStorage.js +38 -0
  287. package/dist/openai-agent/storage/workerStorage.js.map +1 -0
  288. package/dist/openai-agent/storage/workspace.d.ts +17 -0
  289. package/dist/openai-agent/storage/workspace.d.ts.map +1 -0
  290. package/dist/openai-agent/storage/workspace.js +67 -0
  291. package/dist/openai-agent/storage/workspace.js.map +1 -0
  292. package/dist/openai-agent/testHelpers.d.ts +9 -0
  293. package/dist/openai-agent/testHelpers.d.ts.map +1 -0
  294. package/dist/openai-agent/testHelpers.js +35 -0
  295. package/dist/openai-agent/testHelpers.js.map +1 -0
  296. package/dist/openai-agent/tools/ledgerTools.d.ts +12 -0
  297. package/dist/openai-agent/tools/ledgerTools.d.ts.map +1 -0
  298. package/dist/openai-agent/tools/ledgerTools.js +151 -0
  299. package/dist/openai-agent/tools/ledgerTools.js.map +1 -0
  300. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  301. package/dist/providers/MarkdownTaskBackend.js +2 -2
  302. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  303. package/dist/providers/RuntimeSessionRuntime.d.ts +35 -15
  304. package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
  305. package/dist/providers/RuntimeSessionRuntime.js +239 -22
  306. package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
  307. package/dist/providers/llm/chatTools.d.ts.map +1 -1
  308. package/dist/providers/llm/chatTools.js +3 -3
  309. package/dist/providers/llm/chatTools.js.map +1 -1
  310. package/dist/providers/llm/codexAuth.d.ts +6 -1
  311. package/dist/providers/llm/codexAuth.d.ts.map +1 -1
  312. package/dist/providers/llm/codexAuth.js +45 -9
  313. package/dist/providers/llm/codexAuth.js.map +1 -1
  314. package/dist/providers/llm/codexModel.d.ts +4 -1
  315. package/dist/providers/llm/codexModel.d.ts.map +1 -1
  316. package/dist/providers/llm/codexModel.js +13 -3
  317. package/dist/providers/llm/codexModel.js.map +1 -1
  318. package/dist/providers/llm/localSubscription.d.ts +1 -1
  319. package/dist/providers/llm/localSubscription.d.ts.map +1 -1
  320. package/dist/providers/llm/localSubscription.js +2 -2
  321. package/dist/providers/llm/localSubscription.js.map +1 -1
  322. package/dist/providers/runtimeEventMap.d.ts +54 -5
  323. package/dist/providers/runtimeEventMap.d.ts.map +1 -1
  324. package/dist/providers/runtimeEventMap.js +110 -11
  325. package/dist/providers/runtimeEventMap.js.map +1 -1
  326. package/dist/runtime/agentd/client.d.ts +29 -0
  327. package/dist/runtime/agentd/client.d.ts.map +1 -0
  328. package/dist/runtime/agentd/client.js +131 -0
  329. package/dist/runtime/agentd/client.js.map +1 -0
  330. package/dist/runtime/agentd/main.d.ts +10 -0
  331. package/dist/runtime/agentd/main.d.ts.map +1 -0
  332. package/dist/runtime/agentd/main.js +49 -0
  333. package/dist/runtime/agentd/main.js.map +1 -0
  334. package/dist/runtime/agentd/protocol.d.ts +74 -0
  335. package/dist/runtime/agentd/protocol.d.ts.map +1 -0
  336. package/dist/runtime/agentd/protocol.js +21 -0
  337. package/dist/runtime/agentd/protocol.js.map +1 -0
  338. package/dist/runtime/agentd/server.d.ts +15 -0
  339. package/dist/runtime/agentd/server.d.ts.map +1 -0
  340. package/dist/runtime/agentd/server.js +116 -0
  341. package/dist/runtime/agentd/server.js.map +1 -0
  342. package/dist/runtime/backends/claude/ClaudeBackend.d.ts +155 -0
  343. package/dist/runtime/backends/claude/ClaudeBackend.d.ts.map +1 -0
  344. package/dist/runtime/backends/claude/ClaudeBackend.js +398 -0
  345. package/dist/runtime/backends/claude/ClaudeBackend.js.map +1 -0
  346. package/dist/runtime/backends/claude/ClaudeSessions.d.ts +23 -0
  347. package/dist/runtime/backends/claude/ClaudeSessions.d.ts.map +1 -0
  348. package/dist/runtime/backends/claude/ClaudeSessions.js +45 -0
  349. package/dist/runtime/backends/claude/ClaudeSessions.js.map +1 -0
  350. package/dist/runtime/backends/claude/inprocTools.d.ts +17 -0
  351. package/dist/runtime/backends/claude/inprocTools.d.ts.map +1 -0
  352. package/dist/runtime/backends/claude/inprocTools.js +14 -0
  353. package/dist/runtime/backends/claude/inprocTools.js.map +1 -0
  354. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts +83 -0
  355. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts.map +1 -0
  356. package/dist/runtime/backends/process/ExternalProcessBackend.js +642 -0
  357. package/dist/runtime/backends/process/ExternalProcessBackend.js.map +1 -0
  358. package/dist/runtime/contract/AgentBackend.d.ts +199 -0
  359. package/dist/runtime/contract/AgentBackend.d.ts.map +1 -0
  360. package/dist/runtime/contract/AgentBackend.js +2 -0
  361. package/dist/runtime/contract/AgentBackend.js.map +1 -0
  362. package/dist/runtime/contract/events.d.ts +96 -0
  363. package/dist/runtime/contract/events.d.ts.map +1 -0
  364. package/dist/runtime/contract/events.js +2 -0
  365. package/dist/runtime/contract/events.js.map +1 -0
  366. package/dist/runtime/contract/index.d.ts +13 -0
  367. package/dist/runtime/contract/index.d.ts.map +1 -0
  368. package/dist/runtime/contract/index.js +2 -0
  369. package/dist/runtime/contract/index.js.map +1 -0
  370. package/dist/runtime/contract/lifecycle.d.ts +26 -0
  371. package/dist/runtime/contract/lifecycle.d.ts.map +1 -0
  372. package/dist/runtime/contract/lifecycle.js +6 -0
  373. package/dist/runtime/contract/lifecycle.js.map +1 -0
  374. package/dist/runtime/contract/processProtocol.d.ts +263 -0
  375. package/dist/runtime/contract/processProtocol.d.ts.map +1 -0
  376. package/dist/runtime/contract/processProtocol.js +779 -0
  377. package/dist/runtime/contract/processProtocol.js.map +1 -0
  378. package/dist/runtime/contract/service.d.ts +85 -0
  379. package/dist/runtime/contract/service.d.ts.map +1 -0
  380. package/dist/runtime/contract/service.js +2 -0
  381. package/dist/runtime/contract/service.js.map +1 -0
  382. package/dist/runtime/contract/versioning.d.ts +44 -0
  383. package/dist/runtime/contract/versioning.d.ts.map +1 -0
  384. package/dist/runtime/contract/versioning.js +10 -0
  385. package/dist/runtime/contract/versioning.js.map +1 -0
  386. package/dist/runtime/index.d.ts +21 -0
  387. package/dist/runtime/index.d.ts.map +1 -0
  388. package/dist/runtime/index.js +26 -0
  389. package/dist/runtime/index.js.map +1 -0
  390. package/dist/runtime/runtime.d.ts +21 -0
  391. package/dist/runtime/runtime.d.ts.map +1 -0
  392. package/dist/runtime/runtime.js +34 -0
  393. package/dist/runtime/runtime.js.map +1 -0
  394. package/dist/runtime/service/AgentRuntime.d.ts +60 -0
  395. package/dist/runtime/service/AgentRuntime.d.ts.map +1 -0
  396. package/dist/runtime/service/AgentRuntime.js +396 -0
  397. package/dist/runtime/service/AgentRuntime.js.map +1 -0
  398. package/dist/runtime/service/FileRecordStore.d.ts +12 -0
  399. package/dist/runtime/service/FileRecordStore.d.ts.map +1 -0
  400. package/dist/runtime/service/FileRecordStore.js +48 -0
  401. package/dist/runtime/service/FileRecordStore.js.map +1 -0
  402. package/dist/runtime/service/backendFactory.d.ts +8 -0
  403. package/dist/runtime/service/backendFactory.d.ts.map +1 -0
  404. package/dist/runtime/service/backendFactory.js +20 -0
  405. package/dist/runtime/service/backendFactory.js.map +1 -0
  406. package/dist/runtime/stub/NoopBackend.d.ts +29 -0
  407. package/dist/runtime/stub/NoopBackend.d.ts.map +1 -0
  408. package/dist/runtime/stub/NoopBackend.js +56 -0
  409. package/dist/runtime/stub/NoopBackend.js.map +1 -0
  410. package/dist/runtime/stub/NoopService.d.ts +23 -0
  411. package/dist/runtime/stub/NoopService.d.ts.map +1 -0
  412. package/dist/runtime/stub/NoopService.js +136 -0
  413. package/dist/runtime/stub/NoopService.js.map +1 -0
  414. package/dist/runtime/stub/index.d.ts +8 -0
  415. package/dist/runtime/stub/index.d.ts.map +1 -0
  416. package/dist/runtime/stub/index.js +8 -0
  417. package/dist/runtime/stub/index.js.map +1 -0
  418. package/dist/runtime/versioning/VersionManager.d.ts +31 -0
  419. package/dist/runtime/versioning/VersionManager.d.ts.map +1 -0
  420. package/dist/runtime/versioning/VersionManager.js +142 -0
  421. package/dist/runtime/versioning/VersionManager.js.map +1 -0
  422. package/dist/services/ChatService.d.ts +11 -0
  423. package/dist/services/ChatService.d.ts.map +1 -1
  424. package/dist/services/ChatService.js +35 -5
  425. package/dist/services/ChatService.js.map +1 -1
  426. package/dist/services/LogService.d.ts +10 -4
  427. package/dist/services/LogService.d.ts.map +1 -1
  428. package/dist/services/LogService.js +26 -5
  429. package/dist/services/LogService.js.map +1 -1
  430. package/dist/services/ProjectService.d.ts +27 -0
  431. package/dist/services/ProjectService.d.ts.map +1 -1
  432. package/dist/services/ProjectService.js +74 -14
  433. package/dist/services/ProjectService.js.map +1 -1
  434. package/dist/services/WorkerService.d.ts +1 -0
  435. package/dist/services/WorkerService.d.ts.map +1 -1
  436. package/dist/services/WorkerService.js +72 -0
  437. package/dist/services/WorkerService.js.map +1 -1
  438. package/dist/services/executors.d.ts +1 -0
  439. package/dist/services/executors.d.ts.map +1 -1
  440. package/dist/services/executors.js +9 -1
  441. package/dist/services/executors.js.map +1 -1
  442. package/dist/services/promptPreview.d.ts.map +1 -1
  443. package/dist/services/promptPreview.js +4 -3
  444. package/dist/services/promptPreview.js.map +1 -1
  445. package/dist/shared/runtimePaths.d.ts +4 -0
  446. package/dist/shared/runtimePaths.d.ts.map +1 -1
  447. package/dist/shared/runtimePaths.js +8 -0
  448. package/dist/shared/runtimePaths.js.map +1 -1
  449. package/dist/shared/runtimeSchemas.d.ts +6 -2
  450. package/dist/shared/runtimeSchemas.d.ts.map +1 -1
  451. package/dist/shared/runtimeSchemas.js +3 -2
  452. package/dist/shared/runtimeSchemas.js.map +1 -1
  453. package/docs/openai-daemon-agent.md +144 -0
  454. package/package.json +15 -9
  455. package/project-template/.claude/hooks/openai/on-start.sh +6 -0
  456. package/project-template/.claude/hooks/openai/on-stop.sh +6 -0
@@ -0,0 +1,398 @@
1
+ /** 保活模式的输入流控制器:把多轮 dispatch 的用户消息喂进同一个开着的 query。 */
2
+ class InputController {
3
+ queue = [];
4
+ resolve = null;
5
+ closed = false;
6
+ push(msg) {
7
+ if (this.resolve) {
8
+ const r = this.resolve;
9
+ this.resolve = null;
10
+ r({ value: msg, done: false });
11
+ }
12
+ else
13
+ this.queue.push(msg);
14
+ }
15
+ close() {
16
+ this.closed = true;
17
+ if (this.resolve) {
18
+ const r = this.resolve;
19
+ this.resolve = null;
20
+ r({ value: undefined, done: true });
21
+ }
22
+ }
23
+ iterable() {
24
+ const self = this;
25
+ return {
26
+ [Symbol.asyncIterator]() {
27
+ return {
28
+ next() {
29
+ const head = self.queue.shift();
30
+ if (head !== undefined)
31
+ return Promise.resolve({ value: head, done: false });
32
+ if (self.closed)
33
+ return Promise.resolve({ value: undefined, done: true });
34
+ return new Promise((res) => {
35
+ self.resolve = res;
36
+ });
37
+ },
38
+ };
39
+ },
40
+ };
41
+ }
42
+ }
43
+ const MODE_MAP = {
44
+ default: 'default',
45
+ acceptEdits: 'acceptEdits',
46
+ bypass: 'bypassPermissions',
47
+ plan: 'plan',
48
+ };
49
+ export class ClaudeBackend {
50
+ cfg;
51
+ sdk;
52
+ kind = 'claude';
53
+ sessionId;
54
+ current;
55
+ abort;
56
+ state = 'idle';
57
+ cancelled = false;
58
+ /** 最近一次 system.init(含 model/tools/mcp_servers/slash_commands/...);供无在飞 Query 时回退查询。 */
59
+ lastInit;
60
+ /** 保活模式:开着的输入流 + 是否已启动持续输出循环。 */
61
+ input;
62
+ loopStarted = false;
63
+ listeners = new Set();
64
+ constructor(cfg, sdk) {
65
+ this.cfg = cfg;
66
+ this.sdk = sdk;
67
+ }
68
+ subscribe(listener) {
69
+ this.listeners.add(listener);
70
+ return () => {
71
+ this.listeners.delete(listener);
72
+ };
73
+ }
74
+ emit(ev) {
75
+ for (const l of this.listeners) {
76
+ try {
77
+ l(ev);
78
+ }
79
+ catch {
80
+ /* listener 异常不阻塞 */
81
+ }
82
+ }
83
+ }
84
+ async ensure() {
85
+ const resumeId = this.cfg.resumeSessionId;
86
+ if (!resumeId) {
87
+ // fresh:claude 的真 session_id 要到首轮 init 才有;此处不预热,id 经 session 事件交付。
88
+ return { sessionId: this.sessionId ?? '', resumed: false };
89
+ }
90
+ if (this.sdk.getSessionInfo) {
91
+ const info = await this.sdk.getSessionInfo(resumeId);
92
+ if (info === undefined) {
93
+ // 确定性:查无此会话 → 不 resume,消费者据此重放历史。
94
+ this.sessionId = undefined;
95
+ return { sessionId: '', resumed: false, resumeFailed: 'not_found' };
96
+ }
97
+ }
98
+ this.sessionId = resumeId;
99
+ return { sessionId: resumeId, resumed: true };
100
+ }
101
+ async dispatch(prompt) {
102
+ if (this.cfg.claude?.persistent)
103
+ return this.dispatchPersistent(prompt);
104
+ this.state = 'running';
105
+ this.cancelled = false;
106
+ this.abort = new AbortController();
107
+ const q = this.sdk.query({ prompt, options: this.buildOptions() });
108
+ this.current = q;
109
+ void (async () => {
110
+ try {
111
+ for await (const m of q)
112
+ this.translate(m);
113
+ }
114
+ catch (err) {
115
+ const message = err instanceof Error ? err.message : String(err);
116
+ const lost = /session[_ ]?lost|session not found/i.test(message);
117
+ // 运行期 resume 失效(对应 R1 的 'session_lost'):recoverable,消费者重放历史后重起。
118
+ this.emit({ kind: 'error', message, recoverable: lost });
119
+ this.emit({ kind: 'result', status: 'failed', text: message, stopReason: lost ? 'error' : 'error' });
120
+ this.state = 'failed';
121
+ }
122
+ finally {
123
+ this.current = undefined;
124
+ }
125
+ })();
126
+ }
127
+ /** 保活模式:首轮建一个流式 query(常驻子进程),后续 dispatch 把消息喂进同一个流。 */
128
+ dispatchPersistent(prompt) {
129
+ this.state = 'running';
130
+ this.cancelled = false;
131
+ if (!this.loopStarted) {
132
+ this.loopStarted = true;
133
+ this.input = new InputController();
134
+ this.abort = new AbortController();
135
+ const q = this.sdk.query({ prompt: this.input.iterable(), options: this.buildOptions() });
136
+ this.current = q;
137
+ void (async () => {
138
+ try {
139
+ for await (const m of q)
140
+ this.translate(m); // 一直跑,跨多轮
141
+ }
142
+ catch (err) {
143
+ const message = err instanceof Error ? err.message : String(err);
144
+ const lost = /session[_ ]?lost|session not found/i.test(message);
145
+ this.emit({ kind: 'error', message, recoverable: lost });
146
+ this.emit({ kind: 'result', status: 'failed', text: message, stopReason: 'error' });
147
+ this.state = 'failed';
148
+ }
149
+ finally {
150
+ this.current = undefined;
151
+ this.loopStarted = false; // 流结束(stop 或出错)→ 可重建
152
+ }
153
+ })();
154
+ }
155
+ // 喂这一轮的用户消息(SDKUserMessage);SDK 会驱动同一进程跑一个 turn。
156
+ this.input.push({ type: 'user', message: { role: 'user', content: prompt }, parent_tool_use_id: null });
157
+ }
158
+ /** SDKMessage → 状态 + WorkerOutputEvent(全量映射)。 */
159
+ translate(m) {
160
+ if (m.type === 'system' && m.subtype === 'init' && m.session_id) {
161
+ this.sessionId = m.session_id; // durable resume 锚
162
+ this.lastInit = m; // 缓存初始化信息
163
+ this.emit({ kind: 'session', sessionId: m.session_id });
164
+ return;
165
+ }
166
+ if (m.type === 'assistant' && Array.isArray(m.message?.content)) {
167
+ for (const b of m.message.content) {
168
+ if (b.type === 'text' && b.text)
169
+ this.emit({ kind: 'text', text: b.text });
170
+ else if (b.type === 'thinking' && b.thinking)
171
+ this.emit({ kind: 'thinking', text: b.thinking });
172
+ else if (b.type === 'tool_use' && b.id && b.name) {
173
+ this.emit({ kind: 'tool_use', id: b.id, title: b.name, toolName: b.name, input: b.input });
174
+ this.emit({ kind: 'tool_update', id: b.id, status: 'running' });
175
+ }
176
+ }
177
+ return;
178
+ }
179
+ if (m.type === 'user' && Array.isArray(m.message?.content)) {
180
+ // 工具结果回包 → tool_update 收尾。
181
+ for (const b of m.message.content) {
182
+ if (b.type === 'tool_result' && b.tool_use_id) {
183
+ this.emit({ kind: 'tool_update', id: b.tool_use_id, status: b.is_error ? 'failed' : 'completed' });
184
+ }
185
+ }
186
+ return;
187
+ }
188
+ if (m.type === 'result') {
189
+ const ok = m.subtype === 'success' && !m.is_error;
190
+ const usage = {
191
+ inputTokens: m.usage?.input_tokens,
192
+ outputTokens: m.usage?.output_tokens,
193
+ costUsd: m.total_cost_usd,
194
+ byModel: this.mapModelUsage(m.modelUsage),
195
+ };
196
+ const stopReason = this.cancelled ? 'cancelled' : (m.stop_reason ?? undefined);
197
+ this.emit({ kind: 'result', status: ok ? 'completed' : 'failed', text: m.result ?? '', usage, stopReason });
198
+ this.state = this.cancelled ? 'cancelled' : ok ? 'completed' : 'failed'; // 权威完成判定(result.subtype)
199
+ return;
200
+ }
201
+ // 无损逃生舱:未归一的消息类型(stream_event / 各 system 子类型 / 限流·退避·refusal 等)原样透出。
202
+ this.emit({ kind: 'raw', backend: 'claude', type: m.type, message: m });
203
+ }
204
+ mapModelUsage(mu) {
205
+ if (!mu)
206
+ return undefined;
207
+ const out = {};
208
+ for (const [model, u] of Object.entries(mu)) {
209
+ if (u)
210
+ out[model] = { inputTokens: u.inputTokens, outputTokens: u.outputTokens };
211
+ }
212
+ return Object.keys(out).length ? out : undefined;
213
+ }
214
+ /** SessionConfig → claude query options(全字段落地)。 */
215
+ buildOptions() {
216
+ const c = this.cfg;
217
+ const opts = {
218
+ cwd: c.cwd,
219
+ systemPrompt: { type: 'preset', preset: 'claude_code' },
220
+ abortController: this.abort,
221
+ };
222
+ if (c.model)
223
+ opts.model = c.model;
224
+ if (this.sessionId)
225
+ opts.resume = this.sessionId; // resume 透传(ensure 已校验)
226
+ if (c.additionalDirectories)
227
+ opts.additionalDirectories = c.additionalDirectories;
228
+ if (c.settingSources)
229
+ opts.settingSources = c.settingSources; // gameforge 零改动命门('local')
230
+ if (c.env)
231
+ opts.env = c.env;
232
+ if (c.mcpServers?.length)
233
+ opts.mcpServers = this.mapMcp(c.mcpServers);
234
+ const perm = c.permission;
235
+ const mode = MODE_MAP[perm?.mode ?? 'default'];
236
+ opts.permissionMode = mode;
237
+ if (mode === 'bypassPermissions')
238
+ opts.allowDangerouslySkipPermissions = true; // SDK 要求
239
+ if (perm?.allowTools)
240
+ opts.allowedTools = perm.allowTools;
241
+ if (perm?.decide) {
242
+ const decide = perm.decide;
243
+ opts.canUseTool = async (toolName, input) => {
244
+ const r = await decide(toolName, input);
245
+ return r.allow
246
+ ? { behavior: 'allow', updatedInput: input }
247
+ : { behavior: 'deny', message: r.reason ?? 'denied by policy (cwd/tenant boundary)' };
248
+ };
249
+ }
250
+ const t = c.tuning;
251
+ if (t?.maxThinkingTokens != null)
252
+ opts.maxThinkingTokens = t.maxThinkingTokens;
253
+ if (t?.maxTurns != null)
254
+ opts.maxTurns = t.maxTurns;
255
+ if (t?.includePartialMessages)
256
+ opts.includePartialMessages = true;
257
+ if (t?.fallbackModel)
258
+ opts.fallbackModel = t.fallbackModel;
259
+ // claude 专属扩展(差异不抹平):hooks / 子代理 / 自定义二进制 / stderr / 逃生舱。
260
+ const x = c.claude;
261
+ if (x?.hooks !== undefined)
262
+ opts.hooks = x.hooks;
263
+ if (x?.agents)
264
+ opts.agents = x.agents;
265
+ if (x?.pathToClaudeCodeExecutable)
266
+ opts.pathToClaudeCodeExecutable = x.pathToClaudeCodeExecutable;
267
+ if (x?.stderr)
268
+ opts.stderr = x.stderr;
269
+ if (x?.extraOptions)
270
+ Object.assign(opts, x.extraOptions); // 逃生舱覆盖于归一字段之上
271
+ return opts;
272
+ }
273
+ // ── 运行时控制(claude 专属;ACP 给不了。无在飞 query 时静默 no-op)──
274
+ /** 运行时切模型(下一个/当前轮生效,取决于 SDK)。 */
275
+ async setModel(model) {
276
+ await this.current?.setModel?.(model);
277
+ }
278
+ /** 运行时改思考预算。 */
279
+ async setMaxThinkingTokens(n) {
280
+ await this.current?.setMaxThinkingTokens?.(n);
281
+ }
282
+ /** 运行时改权限模式(中立值映射到 SDK)。 */
283
+ async setPermissionMode(mode) {
284
+ await this.current?.setPermissionMode?.(MODE_MAP[mode ?? 'default']);
285
+ }
286
+ /** 单 MCP server 的权限模式覆盖。 */
287
+ async setMcpPermissionModeOverride(serverName, mode) {
288
+ return this.current?.setMcpPermissionModeOverride?.(serverName, mode);
289
+ }
290
+ /** 运行时套用 flag settings。 */
291
+ async applyFlagSettings(settings) {
292
+ return this.current?.applyFlagSettings?.(settings);
293
+ }
294
+ /** 初始化结果(模型/工具/MCP 状态等);无在飞 Query 时回退到最近一次 system.init。 */
295
+ async initializationResult() {
296
+ return (await this.current?.initializationResult?.()) ?? this.lastInit;
297
+ }
298
+ /** 重新初始化(重载配置)。 */
299
+ async reinitialize() {
300
+ return this.current?.reinitialize?.();
301
+ }
302
+ /** 当前支持的斜杠命令;无在飞 Query 时回退到 init 里的 slash_commands。 */
303
+ async supportedCommands() {
304
+ const live = await this.current?.supportedCommands?.();
305
+ if (live)
306
+ return live;
307
+ const sc = this.lastInit?.['slash_commands'];
308
+ return Array.isArray(sc) ? sc : [];
309
+ }
310
+ /** 当前可用模型。 */
311
+ async supportedModels() {
312
+ return (await this.current?.supportedModels?.()) ?? [];
313
+ }
314
+ /** 当前可用子代理(回退到 init 的 agents)。 */
315
+ async supportedAgents() {
316
+ const live = await this.current?.supportedAgents?.();
317
+ if (live)
318
+ return live;
319
+ const a = this.lastInit?.['agents'];
320
+ return Array.isArray(a) ? a : [];
321
+ }
322
+ /** MCP server 连接状态(回退到 init 的 mcp_servers)。 */
323
+ async mcpServerStatus() {
324
+ return (await this.current?.mcpServerStatus?.()) ?? this.lastInit?.['mcp_servers'];
325
+ }
326
+ /** 账户信息。 */
327
+ async accountInfo() {
328
+ return this.current?.accountInfo?.();
329
+ }
330
+ /** 重连指定 MCP server。 */
331
+ async reconnectMcpServer(serverName) {
332
+ return this.current?.reconnectMcpServer?.(serverName);
333
+ }
334
+ /** 启/停指定 MCP server。 */
335
+ async toggleMcpServer(serverName, enabled) {
336
+ return this.current?.toggleMcpServer?.(serverName, enabled);
337
+ }
338
+ /** 运行时整体替换 MCP servers。 */
339
+ async setMcpServers(servers) {
340
+ return this.current?.setMcpServers?.(servers);
341
+ }
342
+ /** 回退文件到某条用户消息时的状态(checkpointing)。 */
343
+ async rewindFiles(userMessageId, options) {
344
+ return this.current?.rewindFiles?.(userMessageId, options);
345
+ }
346
+ /** 停止某个后台任务。 */
347
+ async stopTask(taskId) {
348
+ return this.current?.stopTask?.(taskId);
349
+ }
350
+ /** 流式多轮输入(streaming input mode)。 */
351
+ async streamInput(stream) {
352
+ return this.current?.streamInput?.(stream);
353
+ }
354
+ /** 关闭并终止底层进程(等同更彻底的 stop)。 */
355
+ closeQuery() {
356
+ this.current?.close?.();
357
+ this.current = undefined;
358
+ }
359
+ /** 当前在飞的 Query 句柄(无则 undefined)—— 触达任何未显式封装的方法。 */
360
+ query() {
361
+ return this.current;
362
+ }
363
+ /** 注入的完整 SDK 模块 —— 触达会话管理(listSessions/forkSession/…)/ createSdkMcpServer / tool / 任何顶层导出。 */
364
+ raw() {
365
+ return this.sdk;
366
+ }
367
+ mapMcp(specs) {
368
+ const out = {};
369
+ for (const s of specs) {
370
+ if (s.transport === 'inproc')
371
+ out[s.name] = s.instance; // createSdkMcpServer 实例,直接透传
372
+ else if (s.transport === 'stdio')
373
+ out[s.name] = { type: 'stdio', command: s.command, args: s.args ?? [] };
374
+ else
375
+ out[s.name] = { type: s.transport, url: s.url }; // http | sse
376
+ }
377
+ return out;
378
+ }
379
+ async runState() {
380
+ return this.state;
381
+ }
382
+ /** 中断本轮、保活会话(可续)。 */
383
+ async cancel() {
384
+ this.cancelled = true;
385
+ await this.current?.interrupt().catch(() => { });
386
+ this.state = 'cancelled';
387
+ }
388
+ /** 收尾:关输入流(保活模式→结束流→子进程退出)+ abort + 复位。 */
389
+ async stop(_reason) {
390
+ this.input?.close(); // 保活:结束流,常驻进程随之退出
391
+ this.input = undefined;
392
+ this.loopStarted = false;
393
+ this.abort?.abort();
394
+ this.current = undefined;
395
+ this.state = 'idle';
396
+ }
397
+ }
398
+ //# sourceMappingURL=ClaudeBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeBackend.js","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/ClaudeBackend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module backends/claude/ClaudeSessions
3
+ * claude 会话管理门面(对照官方 Sessions API):list / fork / delete / rename / tag /
4
+ * getInfo / getMessages / foldSummary / importToStore / 子代理消息。SDK 注入,不静态 import。
5
+ * 给消费者一个稳定的会话管理面;底层函数缺失(老版本)则抛清晰错误。
6
+ */
7
+ import type { ClaudeSdkModule } from './ClaudeBackend.js';
8
+ export declare class ClaudeSessions {
9
+ private readonly sdk;
10
+ constructor(sdk: ClaudeSdkModule);
11
+ getInfo(sessionId: string, options?: unknown): Promise<unknown | undefined>;
12
+ getMessages(sessionId: string, options?: unknown): Promise<unknown[]>;
13
+ list(options?: unknown): Promise<unknown[]>;
14
+ fork(sessionId: string, options?: unknown): Promise<unknown>;
15
+ delete(sessionId: string, options?: unknown): Promise<unknown>;
16
+ rename(sessionId: string, title: string, options?: unknown): Promise<unknown>;
17
+ tag(...args: unknown[]): Promise<unknown>;
18
+ foldSummary(...args: unknown[]): Promise<unknown>;
19
+ importToStore(...args: unknown[]): Promise<unknown>;
20
+ listSubagents(options?: unknown): Promise<unknown[]>;
21
+ getSubagentMessages(...args: unknown[]): Promise<unknown[]>;
22
+ }
23
+ //# sourceMappingURL=ClaudeSessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeSessions.d.ts","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/ClaudeSessions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAO1D,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,eAAe;IAEjD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAG3E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAGrE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAG3C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG5D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG9D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG7E,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAGzC,WAAW,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAGjD,aAAa,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAGnD,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAGpD,mBAAmB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAG5D"}
@@ -0,0 +1,45 @@
1
+ const need = (fn, name) => {
2
+ if (!fn)
3
+ throw new Error(`ClaudeSessions: 注入的 SDK 不含 ${name}(版本不支持)`);
4
+ return fn;
5
+ };
6
+ export class ClaudeSessions {
7
+ sdk;
8
+ constructor(sdk) {
9
+ this.sdk = sdk;
10
+ }
11
+ getInfo(sessionId, options) {
12
+ return need(this.sdk.getSessionInfo, 'getSessionInfo')(sessionId, options);
13
+ }
14
+ getMessages(sessionId, options) {
15
+ return need(this.sdk.getSessionMessages, 'getSessionMessages')(sessionId, options);
16
+ }
17
+ list(options) {
18
+ return need(this.sdk.listSessions, 'listSessions')(options);
19
+ }
20
+ fork(sessionId, options) {
21
+ return need(this.sdk.forkSession, 'forkSession')(sessionId, options);
22
+ }
23
+ delete(sessionId, options) {
24
+ return need(this.sdk.deleteSession, 'deleteSession')(sessionId, options);
25
+ }
26
+ rename(sessionId, title, options) {
27
+ return need(this.sdk.renameSession, 'renameSession')(sessionId, title, options);
28
+ }
29
+ tag(...args) {
30
+ return need(this.sdk.tagSession, 'tagSession')(...args);
31
+ }
32
+ foldSummary(...args) {
33
+ return need(this.sdk.foldSessionSummary, 'foldSessionSummary')(...args);
34
+ }
35
+ importToStore(...args) {
36
+ return need(this.sdk.importSessionToStore, 'importSessionToStore')(...args);
37
+ }
38
+ listSubagents(options) {
39
+ return need(this.sdk.listSubagents, 'listSubagents')(options);
40
+ }
41
+ getSubagentMessages(...args) {
42
+ return need(this.sdk.getSubagentMessages, 'getSubagentMessages')(...args);
43
+ }
44
+ }
45
+ //# sourceMappingURL=ClaudeSessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeSessions.js","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/ClaudeSessions.ts"],"names":[],"mappings":"AAQA,MAAM,IAAI,GAAG,CAAI,EAAiB,EAAE,IAAY,EAAK,EAAE;IACrD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,SAAS,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,GAAoB;QAApB,QAAG,GAAH,GAAG,CAAiB;IAAG,CAAC;IAErD,OAAO,CAAC,SAAiB,EAAE,OAAiB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IACD,WAAW,CAAC,SAAiB,EAAE,OAAiB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,OAAiB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,SAAiB,EAAE,OAAiB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,CAAC,SAAiB,EAAE,OAAiB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,CAAC,SAAiB,EAAE,KAAa,EAAE,OAAiB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,GAAG,CAAC,GAAG,IAAe;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,WAAW,CAAC,GAAG,IAAe;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,aAAa,CAAC,GAAG,IAAe;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,aAAa,CAAC,OAAiB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,mBAAmB,CAAC,GAAG,IAAe;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module backends/claude/inprocTools
3
+ * claude 专属:把进程内 JS 函数封成 `McpSpec`(transport='inproc'),挂进 `SessionConfig.mcpServers`。
4
+ * 用 SDK 的 `createSdkMcpServer` + `tool()`(ACP 给不了的能力)。SDK 注入,不静态 import。
5
+ *
6
+ * const sps = createInprocMcpServer(sdk, 'sps', [
7
+ * defineTool(sdk, 'add_memory', 'desc', schema, async (args) => ({ content: [{ type:'text', text:'ok' }] })),
8
+ * ]);
9
+ * // → mcpServers: [sps]
10
+ */
11
+ import type { ClaudeSdkModule } from './ClaudeBackend.js';
12
+ import type { McpSpec } from '../../contract/AgentBackend.js';
13
+ /** 定义一个进程内函数工具(透传到 SDK `tool()`)。 */
14
+ export declare function defineTool(sdk: ClaudeSdkModule, name: string, description: string, inputSchema: unknown, handler: (args: unknown) => Promise<unknown>): unknown;
15
+ /** 把若干工具封成进程内 MCP server,返回可直接放进 mcpServers 的 McpSpec。 */
16
+ export declare function createInprocMcpServer(sdk: ClaudeSdkModule, name: string, tools: unknown[], version?: string): McpSpec;
17
+ //# sourceMappingURL=inprocTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inprocTools.d.ts","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/inprocTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAE9D,qCAAqC;AACrC,wBAAgB,UAAU,CACxB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC3C,OAAO,CAGT;AAED,0DAA0D;AAC1D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,SAAU,GAAG,OAAO,CAItH"}
@@ -0,0 +1,14 @@
1
+ /** 定义一个进程内函数工具(透传到 SDK `tool()`)。 */
2
+ export function defineTool(sdk, name, description, inputSchema, handler) {
3
+ if (!sdk.tool)
4
+ throw new Error('inprocTools: 注入的 SDK 不含 tool()(需 claude-agent-sdk)');
5
+ return sdk.tool(name, description, inputSchema, handler);
6
+ }
7
+ /** 把若干工具封成进程内 MCP server,返回可直接放进 mcpServers 的 McpSpec。 */
8
+ export function createInprocMcpServer(sdk, name, tools, version = '1.0.0') {
9
+ if (!sdk.createSdkMcpServer)
10
+ throw new Error('inprocTools: 注入的 SDK 不含 createSdkMcpServer(需 claude-agent-sdk)');
11
+ const instance = sdk.createSdkMcpServer({ name, version, tools });
12
+ return { name, transport: 'inproc', instance };
13
+ }
14
+ //# sourceMappingURL=inprocTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inprocTools.js","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/inprocTools.ts"],"names":[],"mappings":"AAaA,qCAAqC;AACrC,MAAM,UAAU,UAAU,CACxB,GAAoB,EACpB,IAAY,EACZ,WAAmB,EACnB,WAAoB,EACpB,OAA4C;IAE5C,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CAAC,GAAoB,EAAE,IAAY,EAAE,KAAgB,EAAE,OAAO,GAAG,OAAO;IAC3G,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC/G,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,83 @@
1
+ import type { AgentLivenessMetrics, AgentBackend, ResumeFailureReason, SessionConfig } from '../../contract/AgentBackend.js';
2
+ import type { RunState, StopReason } from '../../contract/lifecycle.js';
3
+ import type { WorkerOutputListener } from '../../contract/events.js';
4
+ import { type AgentProcessEventV1, type JsonValue } from '../../contract/processProtocol.js';
5
+ export type ExternalProcessFailureKind = 'spawn' | 'protocol' | 'worker' | 'lost';
6
+ export interface ExternalProcessRunInfo {
7
+ pid: number | null;
8
+ runId: string | null;
9
+ turnId: string | null;
10
+ state: RunState;
11
+ lastSequence: number;
12
+ lastOutputAt: string | null;
13
+ terminal: AgentProcessEventV1 | null;
14
+ failureKind: ExternalProcessFailureKind | null;
15
+ }
16
+ export declare class ExternalProcessBackend implements AgentBackend {
17
+ private readonly config;
18
+ readonly kind = "openai-process";
19
+ private readonly spec;
20
+ private readonly listeners;
21
+ private child;
22
+ private sessionId;
23
+ private sessionDir;
24
+ private ensured;
25
+ private state;
26
+ private runId;
27
+ private turnId;
28
+ private lastSequence;
29
+ private lastOutputAt;
30
+ private terminal;
31
+ private failureKind;
32
+ private decoder;
33
+ private exitDeferred;
34
+ private sawTextDelta;
35
+ private livenessState;
36
+ private dispatchRequestedAtMs;
37
+ private cancelRequestedAtMs;
38
+ constructor(config: SessionConfig);
39
+ get pid(): number | null;
40
+ get liveness(): AgentLivenessMetrics;
41
+ get runInfo(): ExternalProcessRunInfo;
42
+ subscribe(listener: WorkerOutputListener): () => void;
43
+ ensure(): Promise<{
44
+ sessionId: string;
45
+ resumed: boolean;
46
+ resumeFailed?: ResumeFailureReason;
47
+ }>;
48
+ dispatch(prompt: string): Promise<void>;
49
+ resumeInteraction(interactionId: string, answer: JsonValue): Promise<void>;
50
+ restoreInterruptedRun(state: {
51
+ sessionId: string;
52
+ runId: string;
53
+ turnId: string;
54
+ lastSequence: number;
55
+ }): void;
56
+ recoverRun(state: {
57
+ sessionId: string;
58
+ runId: string;
59
+ turnId: string;
60
+ lastSequence: number;
61
+ }): Promise<void>;
62
+ private spawnCommand;
63
+ runState(): Promise<RunState>;
64
+ cancel(): Promise<void>;
65
+ stop(_reason?: StopReason): Promise<void>;
66
+ waitForExit(): Promise<void>;
67
+ private validateTrustedConfig;
68
+ private validateExecutableAndCwd;
69
+ private buildStartCommand;
70
+ private buildChildEnv;
71
+ private handleStdout;
72
+ private handleProcessEvent;
73
+ private acceptTerminal;
74
+ private handleProtocolFailure;
75
+ private handleSpawnFailure;
76
+ private handleClose;
77
+ private emitRunState;
78
+ private emit;
79
+ private resetRunLiveness;
80
+ private createId;
81
+ private waitForCurrentExit;
82
+ }
83
+ //# sourceMappingURL=ExternalProcessBackend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalProcessBackend.d.ts","sourceRoot":"","sources":["../../../../src/runtime/backends/process/ExternalProcessBackend.ts"],"names":[],"mappings":"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"}