@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,216 @@
1
+ import { resolve } from 'node:path';
2
+ import { unlink } from 'node:fs/promises';
3
+ import { protocol, } from '@openai/agents';
4
+ import { atomicWriteJson, readJsonFile, requireInteger, requireRecord, requireString, } from './atomic.js';
5
+ import { OpenAIAgentStorageError } from './errors.js';
6
+ import { ExclusiveFileLock } from './lock.js';
7
+ const SESSION_SCHEMA_VERSION = 1;
8
+ const HISTORY_SCHEMA_VERSION = 1;
9
+ export async function ensureSessionMetadata(start) {
10
+ const path = resolve(start.sessionRoot, 'session.json');
11
+ const lock = await ExclusiveFileLock.acquire(resolve(start.sessionRoot, '.metadata.lock'));
12
+ try {
13
+ const existing = await readJsonFile(path, parseSessionMetadata);
14
+ if (existing) {
15
+ if (JSON.stringify(existing.conversationOwner) !==
16
+ JSON.stringify(start.conversationOwner)) {
17
+ throw new OpenAIAgentStorageError('provider_state_unavailable', 'Conversation ownership cannot change within a logical session');
18
+ }
19
+ return { metadata: existing, resumed: true };
20
+ }
21
+ const now = new Date().toISOString();
22
+ const metadata = {
23
+ schemaVersion: SESSION_SCHEMA_VERSION,
24
+ sessionId: start.sessionId,
25
+ conversationOwner: start.conversationOwner,
26
+ providerCapabilityPlan: {
27
+ providerId: start.provider.providerId,
28
+ model: start.provider.model,
29
+ transport: start.provider.transport,
30
+ },
31
+ agentBundleVersion: start.agentBundleVersion,
32
+ createdAt: now,
33
+ updatedAt: now,
34
+ };
35
+ await atomicWriteJson(path, metadata, parseSessionMetadata);
36
+ return { metadata, resumed: false };
37
+ }
38
+ finally {
39
+ await lock.release();
40
+ }
41
+ }
42
+ export class DurableAgentSession {
43
+ sessionId;
44
+ historyPath;
45
+ currentRevision;
46
+ constructor(sessionId, historyPath, currentRevision) {
47
+ this.sessionId = sessionId;
48
+ this.historyPath = historyPath;
49
+ this.currentRevision = currentRevision;
50
+ }
51
+ static async open(sessionRoot, sessionId) {
52
+ const historyPath = resolve(sessionRoot, 'history.json');
53
+ const history = await readJsonFile(historyPath, parseHistory);
54
+ if (history && history.sessionId !== sessionId) {
55
+ throw new OpenAIAgentStorageError('corrupt', 'History belongs to a different session');
56
+ }
57
+ return new DurableAgentSession(sessionId, historyPath, history?.revision ?? 0);
58
+ }
59
+ async getSessionId() {
60
+ return this.sessionId;
61
+ }
62
+ get revision() {
63
+ return this.currentRevision;
64
+ }
65
+ async getItems(limit) {
66
+ const history = await this.load();
67
+ const items = structuredClone(history.items);
68
+ return limit === undefined ? items : items.slice(-Math.max(0, limit));
69
+ }
70
+ async addItems(items) {
71
+ validateItems(items);
72
+ await this.mutate((history) => [...history.items, ...structuredClone(items)]);
73
+ }
74
+ async popItem() {
75
+ let popped;
76
+ await this.mutate((history) => {
77
+ const items = [...history.items];
78
+ popped = items.pop();
79
+ return items;
80
+ });
81
+ return popped;
82
+ }
83
+ async clearSession() {
84
+ await this.mutate(() => []);
85
+ }
86
+ async delete(expectedRevision = this.currentRevision) {
87
+ const lock = await ExclusiveFileLock.acquire(resolve(this.historyPath, '..', '.history.lock'));
88
+ try {
89
+ const latest = await readJsonFile(this.historyPath, parseHistory);
90
+ if ((latest?.revision ?? 0) !== expectedRevision) {
91
+ throw new OpenAIAgentStorageError('conflict', 'History revision changed before delete');
92
+ }
93
+ await unlink(this.historyPath).catch((error) => {
94
+ if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT')) {
95
+ throw error;
96
+ }
97
+ });
98
+ this.currentRevision = 0;
99
+ }
100
+ finally {
101
+ await lock.release();
102
+ }
103
+ }
104
+ async load() {
105
+ const history = await readJsonFile(this.historyPath, parseHistory);
106
+ if (!history) {
107
+ return {
108
+ schemaVersion: HISTORY_SCHEMA_VERSION,
109
+ sessionId: this.sessionId,
110
+ revision: 0,
111
+ items: [],
112
+ };
113
+ }
114
+ if (history.sessionId !== this.sessionId) {
115
+ throw new OpenAIAgentStorageError('corrupt', 'History session identity mismatch');
116
+ }
117
+ this.currentRevision = history.revision;
118
+ return history;
119
+ }
120
+ async mutate(update) {
121
+ const lock = await ExclusiveFileLock.acquire(resolve(this.historyPath, '..', '.history.lock'));
122
+ try {
123
+ const latest = (await readJsonFile(this.historyPath, parseHistory)) ?? {
124
+ schemaVersion: HISTORY_SCHEMA_VERSION,
125
+ sessionId: this.sessionId,
126
+ revision: 0,
127
+ items: [],
128
+ };
129
+ if (latest.revision !== this.currentRevision) {
130
+ throw new OpenAIAgentStorageError('conflict', `History revision changed from ${this.currentRevision} to ${latest.revision}`);
131
+ }
132
+ const nextItems = update(latest);
133
+ validateItems(nextItems);
134
+ const next = {
135
+ schemaVersion: HISTORY_SCHEMA_VERSION,
136
+ sessionId: this.sessionId,
137
+ revision: latest.revision + 1,
138
+ items: nextItems,
139
+ };
140
+ await atomicWriteJson(this.historyPath, next, parseHistory);
141
+ this.currentRevision = next.revision;
142
+ }
143
+ finally {
144
+ await lock.release();
145
+ }
146
+ }
147
+ }
148
+ function parseSessionMetadata(value) {
149
+ const record = requireRecord(value, 'session metadata');
150
+ if (record.schemaVersion !== SESSION_SCHEMA_VERSION) {
151
+ throw new OpenAIAgentStorageError('corrupt', 'Unsupported session metadata schema');
152
+ }
153
+ const owner = parseConversationOwner(record.conversationOwner);
154
+ const capability = requireRecord(record.providerCapabilityPlan, 'providerCapabilityPlan');
155
+ return {
156
+ schemaVersion: SESSION_SCHEMA_VERSION,
157
+ sessionId: requireString(record, 'sessionId'),
158
+ conversationOwner: owner,
159
+ providerCapabilityPlan: {
160
+ providerId: requireString(capability, 'providerId'),
161
+ model: requireString(capability, 'model'),
162
+ transport: requireString(capability, 'transport'),
163
+ },
164
+ agentBundleVersion: requireString(record, 'agentBundleVersion'),
165
+ createdAt: requireString(record, 'createdAt'),
166
+ updatedAt: requireString(record, 'updatedAt'),
167
+ };
168
+ }
169
+ function parseConversationOwner(value) {
170
+ const record = requireRecord(value, 'conversationOwner');
171
+ if (record.kind === 'local_session')
172
+ return { kind: 'local_session' };
173
+ if (record.kind === 'openai_conversation') {
174
+ return {
175
+ kind: 'openai_conversation',
176
+ ...(typeof record.conversationId === 'string'
177
+ ? { conversationId: record.conversationId }
178
+ : {}),
179
+ };
180
+ }
181
+ if (record.kind === 'previous_response') {
182
+ return {
183
+ kind: 'previous_response',
184
+ ...(typeof record.previousResponseId === 'string'
185
+ ? { previousResponseId: record.previousResponseId }
186
+ : {}),
187
+ };
188
+ }
189
+ throw new OpenAIAgentStorageError('corrupt', 'Unknown conversation owner kind');
190
+ }
191
+ function parseHistory(value) {
192
+ const record = requireRecord(value, 'history');
193
+ if (record.schemaVersion !== HISTORY_SCHEMA_VERSION) {
194
+ throw new OpenAIAgentStorageError('corrupt', 'Unsupported history schema');
195
+ }
196
+ if (!Array.isArray(record.items)) {
197
+ throw new OpenAIAgentStorageError('corrupt', 'history.items must be an array');
198
+ }
199
+ validateItems(record.items);
200
+ return {
201
+ schemaVersion: HISTORY_SCHEMA_VERSION,
202
+ sessionId: requireString(record, 'sessionId'),
203
+ revision: requireInteger(record, 'revision'),
204
+ items: record.items,
205
+ };
206
+ }
207
+ function validateItems(items) {
208
+ try {
209
+ for (const item of items)
210
+ protocol.ModelItem.parse(item);
211
+ }
212
+ catch (error) {
213
+ throw new OpenAIAgentStorageError('corrupt', 'History contains an invalid AgentInputItem', error);
214
+ }
215
+ }
216
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/openai-agent/storage/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { JsonValue } from '../../runtime/index.js';
2
+ export type ToolSideEffectClass = 'read_only' | 'idempotent' | 'non_idempotent';
3
+ export type ToolLedgerStatus = 'started' | 'completed';
4
+ export interface ToolLedgerRecord {
5
+ ledgerId: string;
6
+ sessionId: string;
7
+ runId: string;
8
+ qualifiedToolName: string;
9
+ providerCallId: string;
10
+ inputHash: string;
11
+ status: ToolLedgerStatus;
12
+ sideEffectClass: ToolSideEffectClass;
13
+ revision: number;
14
+ attempts: number;
15
+ startedAt: string;
16
+ updatedAt: string;
17
+ completedAt?: string;
18
+ normalizedResult?: JsonValue;
19
+ reconciliationNote?: string;
20
+ }
21
+ export type ToolLedgerBeginResult = {
22
+ action: 'execute';
23
+ record: ToolLedgerRecord;
24
+ retry: boolean;
25
+ } | {
26
+ action: 'replay';
27
+ record: ToolLedgerRecord;
28
+ result: JsonValue;
29
+ } | {
30
+ action: 'operator_reconciliation';
31
+ record: ToolLedgerRecord;
32
+ };
33
+ export interface ToolLedgerBeginInput {
34
+ sessionId: string;
35
+ runId: string;
36
+ qualifiedToolName: string;
37
+ providerCallId: string;
38
+ input: unknown;
39
+ sideEffectClass: ToolSideEffectClass;
40
+ }
41
+ export declare class ToolExecutionLedger {
42
+ private readonly path;
43
+ private readonly lockPath;
44
+ constructor(sessionRoot: string);
45
+ begin(input: ToolLedgerBeginInput): Promise<ToolLedgerBeginResult>;
46
+ complete(ledgerId: string, expectedRevision: number, result: unknown): Promise<ToolLedgerRecord>;
47
+ noteUnknownResult(ledgerId: string, note: string): Promise<ToolLedgerRecord>;
48
+ reconcile(ledgerId: string, resolution: {
49
+ outcome: 'safe_to_retry';
50
+ note?: string;
51
+ } | {
52
+ outcome: 'effect_completed';
53
+ result: unknown;
54
+ note?: string;
55
+ }): Promise<void>;
56
+ assessSafety(): Promise<{
57
+ safeToResume: boolean;
58
+ unresolved: ToolLedgerRecord[];
59
+ }>;
60
+ list(): Promise<ToolLedgerRecord[]>;
61
+ private loadDocument;
62
+ private writeDocument;
63
+ }
64
+ //# sourceMappingURL=toolLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolLedger.d.ts","sourceRoot":"","sources":["../../../src/openai-agent/storage/toolLedger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAaxD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,gBAAgB,CAAC;AACrB,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,eAAe,EAAE,mBAAmB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/D;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,yBAAyB,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,WAAW,EAAE,MAAM;IAKzB,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmFlE,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,gBAAgB,CAAC;IA6CtB,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC;IA2BtB,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EACN;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAClE,OAAO,CAAC,IAAI,CAAC;IAoCV,YAAY,IAAI,OAAO,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;KAChC,CAAC;IAUI,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAI3B,YAAY;IAU1B,OAAO,CAAC,aAAa;CAGtB"}
@@ -0,0 +1,281 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { resolve } from 'node:path';
3
+ import { atomicWriteJson, readJsonFile, requireInteger, requireRecord, requireString, } from './atomic.js';
4
+ import { OpenAIAgentStorageError } from './errors.js';
5
+ import { ExclusiveFileLock } from './lock.js';
6
+ const TOOL_LEDGER_SCHEMA_VERSION = 1;
7
+ export class ToolExecutionLedger {
8
+ path;
9
+ lockPath;
10
+ constructor(sessionRoot) {
11
+ this.path = resolve(sessionRoot, 'tool-ledger.json');
12
+ this.lockPath = resolve(sessionRoot, '.tool-ledger.lock');
13
+ }
14
+ async begin(input) {
15
+ const normalizedInput = normalizeJson(input.input, 'tool input');
16
+ const inputHash = hashJson(normalizedInput);
17
+ const ledgerId = ledgerKey(input);
18
+ const lock = await ExclusiveFileLock.acquire(this.lockPath);
19
+ try {
20
+ const document = await this.loadDocument();
21
+ const conflictingCall = Object.values(document.records).find((record) => record.sessionId === input.sessionId &&
22
+ record.providerCallId === input.providerCallId &&
23
+ record.ledgerId !== ledgerId);
24
+ if (conflictingCall) {
25
+ throw new OpenAIAgentStorageError('corrupt', `Tool call ${input.providerCallId} changed identity from ${conflictingCall.qualifiedToolName} to ${input.qualifiedToolName}`);
26
+ }
27
+ const existing = document.records[ledgerId];
28
+ if (existing) {
29
+ if (existing.inputHash !== inputHash ||
30
+ existing.sideEffectClass !== input.sideEffectClass) {
31
+ throw new OpenAIAgentStorageError('corrupt', `Tool call ${input.providerCallId} changed input or side-effect class`);
32
+ }
33
+ if (existing.status === 'completed') {
34
+ if (existing.normalizedResult === undefined) {
35
+ throw new OpenAIAgentStorageError('corrupt', `Completed tool call ${input.providerCallId} has no result`);
36
+ }
37
+ return {
38
+ action: 'replay',
39
+ record: existing,
40
+ result: existing.normalizedResult,
41
+ };
42
+ }
43
+ if (existing.sideEffectClass === 'non_idempotent') {
44
+ return { action: 'operator_reconciliation', record: existing };
45
+ }
46
+ const retried = {
47
+ ...existing,
48
+ attempts: existing.attempts + 1,
49
+ revision: existing.revision + 1,
50
+ updatedAt: new Date().toISOString(),
51
+ reconciliationNote: 'Previous execution had no durable result; retry is allowed by side-effect policy.',
52
+ };
53
+ document.records[ledgerId] = retried;
54
+ document.revision += 1;
55
+ await this.writeDocument(document);
56
+ return { action: 'execute', record: retried, retry: true };
57
+ }
58
+ const now = new Date().toISOString();
59
+ const record = {
60
+ ledgerId,
61
+ sessionId: input.sessionId,
62
+ runId: input.runId,
63
+ qualifiedToolName: input.qualifiedToolName,
64
+ providerCallId: input.providerCallId,
65
+ inputHash,
66
+ status: 'started',
67
+ sideEffectClass: input.sideEffectClass,
68
+ revision: 1,
69
+ attempts: 1,
70
+ startedAt: now,
71
+ updatedAt: now,
72
+ };
73
+ document.records[ledgerId] = record;
74
+ document.revision += 1;
75
+ await this.writeDocument(document);
76
+ return { action: 'execute', record, retry: false };
77
+ }
78
+ finally {
79
+ await lock.release();
80
+ }
81
+ }
82
+ async complete(ledgerId, expectedRevision, result) {
83
+ const normalizedResult = normalizeJson(result, 'tool result');
84
+ const lock = await ExclusiveFileLock.acquire(this.lockPath);
85
+ try {
86
+ const document = await this.loadDocument();
87
+ const record = document.records[ledgerId];
88
+ if (!record) {
89
+ throw new OpenAIAgentStorageError('not_found', `Tool ledger record ${ledgerId} was not found`);
90
+ }
91
+ if (record.status === 'completed') {
92
+ if (hashJson(record.normalizedResult) === hashJson(normalizedResult)) {
93
+ return record;
94
+ }
95
+ throw new OpenAIAgentStorageError('conflict', `Tool ledger record ${ledgerId} already has a different result`);
96
+ }
97
+ if (record.revision !== expectedRevision) {
98
+ throw new OpenAIAgentStorageError('conflict', `Tool ledger revision changed from ${expectedRevision} to ${record.revision}`);
99
+ }
100
+ const now = new Date().toISOString();
101
+ const completed = {
102
+ ...record,
103
+ status: 'completed',
104
+ revision: record.revision + 1,
105
+ normalizedResult,
106
+ completedAt: now,
107
+ updatedAt: now,
108
+ };
109
+ document.records[ledgerId] = completed;
110
+ document.revision += 1;
111
+ await this.writeDocument(document);
112
+ return completed;
113
+ }
114
+ finally {
115
+ await lock.release();
116
+ }
117
+ }
118
+ async noteUnknownResult(ledgerId, note) {
119
+ const lock = await ExclusiveFileLock.acquire(this.lockPath);
120
+ try {
121
+ const document = await this.loadDocument();
122
+ const record = document.records[ledgerId];
123
+ if (!record) {
124
+ throw new OpenAIAgentStorageError('not_found', `Tool ledger record ${ledgerId} was not found`);
125
+ }
126
+ if (record.status === 'completed')
127
+ return record;
128
+ const next = {
129
+ ...record,
130
+ revision: record.revision + 1,
131
+ updatedAt: new Date().toISOString(),
132
+ reconciliationNote: note.slice(0, 2_000),
133
+ };
134
+ document.records[ledgerId] = next;
135
+ document.revision += 1;
136
+ await this.writeDocument(document);
137
+ return next;
138
+ }
139
+ finally {
140
+ await lock.release();
141
+ }
142
+ }
143
+ async reconcile(ledgerId, resolution) {
144
+ const lock = await ExclusiveFileLock.acquire(this.lockPath);
145
+ try {
146
+ const document = await this.loadDocument();
147
+ const record = document.records[ledgerId];
148
+ if (!record || record.status !== 'started') {
149
+ throw new OpenAIAgentStorageError('conflict', `Tool ledger record ${ledgerId} is not awaiting reconciliation`);
150
+ }
151
+ if (resolution.outcome === 'safe_to_retry') {
152
+ delete document.records[ledgerId];
153
+ }
154
+ else {
155
+ const now = new Date().toISOString();
156
+ document.records[ledgerId] = {
157
+ ...record,
158
+ status: 'completed',
159
+ revision: record.revision + 1,
160
+ normalizedResult: normalizeJson(resolution.result, 'reconciled tool result'),
161
+ completedAt: now,
162
+ updatedAt: now,
163
+ reconciliationNote: resolution.note ?? 'Operator confirmed the effect completed.',
164
+ };
165
+ }
166
+ document.revision += 1;
167
+ await this.writeDocument(document);
168
+ }
169
+ finally {
170
+ await lock.release();
171
+ }
172
+ }
173
+ async assessSafety() {
174
+ const records = Object.values((await this.loadDocument()).records);
175
+ const unresolved = records.filter((record) => record.status === 'started' &&
176
+ record.sideEffectClass === 'non_idempotent');
177
+ return { safeToResume: unresolved.length === 0, unresolved };
178
+ }
179
+ async list() {
180
+ return Object.values((await this.loadDocument()).records);
181
+ }
182
+ async loadDocument() {
183
+ return ((await readJsonFile(this.path, parseDocument)) ?? {
184
+ schemaVersion: TOOL_LEDGER_SCHEMA_VERSION,
185
+ revision: 0,
186
+ records: {},
187
+ });
188
+ }
189
+ writeDocument(document) {
190
+ return atomicWriteJson(this.path, document, parseDocument);
191
+ }
192
+ }
193
+ function ledgerKey(input) {
194
+ return `tool_${createHash('sha256')
195
+ .update(`${input.sessionId}\0${input.qualifiedToolName}\0${input.providerCallId}`)
196
+ .digest('hex')
197
+ .slice(0, 40)}`;
198
+ }
199
+ function hashJson(value) {
200
+ return createHash('sha256').update(stableStringify(value)).digest('hex');
201
+ }
202
+ function stableStringify(value) {
203
+ if (Array.isArray(value)) {
204
+ return `[${value.map(stableStringify).join(',')}]`;
205
+ }
206
+ if (value && typeof value === 'object') {
207
+ return `{${Object.entries(value)
208
+ .sort(([left], [right]) => left.localeCompare(right))
209
+ .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)
210
+ .join(',')}}`;
211
+ }
212
+ return JSON.stringify(value);
213
+ }
214
+ function normalizeJson(value, label) {
215
+ try {
216
+ const serialized = JSON.stringify(value);
217
+ if (serialized === undefined) {
218
+ throw new Error(`${label} is undefined`);
219
+ }
220
+ return JSON.parse(serialized);
221
+ }
222
+ catch (error) {
223
+ throw new OpenAIAgentStorageError('persistence_error', `${label} is not JSON serializable`, error);
224
+ }
225
+ }
226
+ function parseDocument(value) {
227
+ const document = requireRecord(value, 'tool ledger');
228
+ if (document.schemaVersion !== TOOL_LEDGER_SCHEMA_VERSION) {
229
+ throw new OpenAIAgentStorageError('corrupt', 'Unsupported tool ledger schema');
230
+ }
231
+ const rawRecords = requireRecord(document.records, 'tool ledger records');
232
+ return {
233
+ schemaVersion: TOOL_LEDGER_SCHEMA_VERSION,
234
+ revision: requireInteger(document, 'revision'),
235
+ records: Object.fromEntries(Object.entries(rawRecords).map(([key, value]) => {
236
+ const record = parseRecord(value);
237
+ if (record.ledgerId !== key) {
238
+ throw new OpenAIAgentStorageError('corrupt', 'Tool ledger key does not match ledgerId');
239
+ }
240
+ return [key, record];
241
+ })),
242
+ };
243
+ }
244
+ function parseRecord(value) {
245
+ const record = requireRecord(value, 'tool ledger record');
246
+ const status = record.status;
247
+ const sideEffectClass = record.sideEffectClass;
248
+ if (status !== 'started' && status !== 'completed') {
249
+ throw new OpenAIAgentStorageError('corrupt', 'Invalid tool ledger status');
250
+ }
251
+ if (sideEffectClass !== 'read_only' &&
252
+ sideEffectClass !== 'idempotent' &&
253
+ sideEffectClass !== 'non_idempotent') {
254
+ throw new OpenAIAgentStorageError('corrupt', 'Invalid tool side-effect class');
255
+ }
256
+ const normalizedResult = record.normalizedResult === undefined
257
+ ? undefined
258
+ : normalizeJson(record.normalizedResult, 'tool result');
259
+ return {
260
+ ledgerId: requireString(record, 'ledgerId'),
261
+ sessionId: requireString(record, 'sessionId'),
262
+ runId: requireString(record, 'runId'),
263
+ qualifiedToolName: requireString(record, 'qualifiedToolName'),
264
+ providerCallId: requireString(record, 'providerCallId'),
265
+ inputHash: requireString(record, 'inputHash'),
266
+ status,
267
+ sideEffectClass,
268
+ revision: requireInteger(record, 'revision', 1),
269
+ attempts: requireInteger(record, 'attempts', 1),
270
+ startedAt: requireString(record, 'startedAt'),
271
+ updatedAt: requireString(record, 'updatedAt'),
272
+ ...(typeof record.completedAt === 'string'
273
+ ? { completedAt: record.completedAt }
274
+ : {}),
275
+ ...(normalizedResult === undefined ? {} : { normalizedResult }),
276
+ ...(typeof record.reconciliationNote === 'string'
277
+ ? { reconciliationNote: record.reconciliationNote }
278
+ : {}),
279
+ };
280
+ }
281
+ //# sourceMappingURL=toolLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolLedger.js","sourceRoot":"","sources":["../../../src/openai-agent/storage/toolLedger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AgentProcessStartCommandV1 } from '../../runtime/index.js';
2
+ import { RunCheckpointStore } from './checkpoint.js';
3
+ import { InteractionStore } from './interaction.js';
4
+ import { WorkerOutputStore } from './output.js';
5
+ import { DurableAgentSession } from './session.js';
6
+ import { WorkspaceStateStore } from './workspace.js';
7
+ import { ToolExecutionLedger } from './toolLedger.js';
8
+ import { WorkerRunMetricsStore } from './metrics.js';
9
+ export interface OpenAIAgentWorkerStorage {
10
+ resumed: boolean;
11
+ session?: DurableAgentSession;
12
+ checkpoint: RunCheckpointStore;
13
+ interactions: InteractionStore;
14
+ ledger: ToolExecutionLedger;
15
+ metrics: WorkerRunMetricsStore;
16
+ output: WorkerOutputStore;
17
+ workspace: WorkspaceStateStore;
18
+ close(): Promise<void>;
19
+ }
20
+ export declare function prepareOpenAIAgentWorkerStorage(start: AgentProcessStartCommandV1): Promise<OpenAIAgentWorkerStorage>;
21
+ //# sourceMappingURL=workerStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerStorage.d.ts","sourceRoot":"","sources":["../../../src/openai-agent/storage/workerStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAqCnC"}