@a5c-ai/agent-platform 5.0.1-staging.b436b3b3e611

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 (554) hide show
  1. package/README.md +53 -0
  2. package/dist/anycli/cache.d.ts +45 -0
  3. package/dist/anycli/cache.d.ts.map +1 -0
  4. package/dist/anycli/cache.js +118 -0
  5. package/dist/anycli/index.d.ts +10 -0
  6. package/dist/anycli/index.d.ts.map +1 -0
  7. package/dist/anycli/index.js +25 -0
  8. package/dist/anycli/types.d.ts +32 -0
  9. package/dist/anycli/types.d.ts.map +1 -0
  10. package/dist/anycli/types.js +9 -0
  11. package/dist/api/breakpoints.d.ts +93 -0
  12. package/dist/api/breakpoints.d.ts.map +1 -0
  13. package/dist/api/breakpoints.js +334 -0
  14. package/dist/api/effects.d.ts +14 -0
  15. package/dist/api/effects.d.ts.map +1 -0
  16. package/dist/api/effects.js +306 -0
  17. package/dist/api/effectsTypes.d.ts +79 -0
  18. package/dist/api/effectsTypes.d.ts.map +1 -0
  19. package/dist/api/effectsTypes.js +6 -0
  20. package/dist/api/eventStream.d.ts +34 -0
  21. package/dist/api/eventStream.d.ts.map +1 -0
  22. package/dist/api/eventStream.js +126 -0
  23. package/dist/api/index.d.ts +10 -0
  24. package/dist/api/index.d.ts.map +1 -0
  25. package/dist/api/index.js +27 -0
  26. package/dist/api/runs.d.ts +85 -0
  27. package/dist/api/runs.d.ts.map +1 -0
  28. package/dist/api/runs.js +247 -0
  29. package/dist/api/utils.d.ts +28 -0
  30. package/dist/api/utils.d.ts.map +1 -0
  31. package/dist/api/utils.js +74 -0
  32. package/dist/breakpoints/approvalChains.d.ts +68 -0
  33. package/dist/breakpoints/approvalChains.d.ts.map +1 -0
  34. package/dist/breakpoints/approvalChains.js +111 -0
  35. package/dist/breakpoints/delegation.d.ts +42 -0
  36. package/dist/breakpoints/delegation.d.ts.map +1 -0
  37. package/dist/breakpoints/delegation.js +199 -0
  38. package/dist/breakpoints/delegationTypes.d.ts +46 -0
  39. package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
  40. package/dist/breakpoints/delegationTypes.js +10 -0
  41. package/dist/breakpoints/postures.d.ts +28 -0
  42. package/dist/breakpoints/postures.d.ts.map +1 -0
  43. package/dist/breakpoints/postures.js +100 -0
  44. package/dist/cli/amuxEventsFormatter.d.ts +26 -0
  45. package/dist/cli/amuxEventsFormatter.d.ts.map +1 -0
  46. package/dist/cli/amuxEventsFormatter.js +86 -0
  47. package/dist/cli/args/argFlags.d.ts +6 -0
  48. package/dist/cli/args/argFlags.d.ts.map +1 -0
  49. package/dist/cli/args/argFlags.js +72 -0
  50. package/dist/cli/args/argPositionals.d.ts +3 -0
  51. package/dist/cli/args/argPositionals.d.ts.map +1 -0
  52. package/dist/cli/args/argPositionals.js +18 -0
  53. package/dist/cli/args/index.d.ts +4 -0
  54. package/dist/cli/args/index.d.ts.map +1 -0
  55. package/dist/cli/args/index.js +75 -0
  56. package/dist/cli/args/types.d.ts +13 -0
  57. package/dist/cli/args/types.d.ts.map +1 -0
  58. package/dist/cli/args/types.js +2 -0
  59. package/dist/cli/commands/daemon.d.ts +31 -0
  60. package/dist/cli/commands/daemon.d.ts.map +1 -0
  61. package/dist/cli/commands/daemon.js +156 -0
  62. package/dist/cli/commands/harness/createRun.d.ts +3 -0
  63. package/dist/cli/commands/harness/createRun.d.ts.map +1 -0
  64. package/dist/cli/commands/harness/createRun.js +8 -0
  65. package/dist/cli/commands/harness/resumeRun.d.ts +20 -0
  66. package/dist/cli/commands/harness/resumeRun.d.ts.map +1 -0
  67. package/dist/cli/commands/harness/resumeRun.js +341 -0
  68. package/dist/cli/commands/jsonlInteractive.d.ts +35 -0
  69. package/dist/cli/commands/jsonlInteractive.d.ts.map +1 -0
  70. package/dist/cli/commands/jsonlInteractive.js +302 -0
  71. package/dist/cli/commands/mcpServe.d.ts +18 -0
  72. package/dist/cli/commands/mcpServe.d.ts.map +1 -0
  73. package/dist/cli/commands/mcpServe.js +59 -0
  74. package/dist/cli/commands/session/history.d.ts +14 -0
  75. package/dist/cli/commands/session/history.d.ts.map +1 -0
  76. package/dist/cli/commands/session/history.js +100 -0
  77. package/dist/cli/commands/tui.d.ts +23 -0
  78. package/dist/cli/commands/tui.d.ts.map +1 -0
  79. package/dist/cli/commands/tui.js +183 -0
  80. package/dist/cli/dispatch.d.ts +4 -0
  81. package/dist/cli/dispatch.d.ts.map +1 -0
  82. package/dist/cli/dispatch.js +332 -0
  83. package/dist/cli/main.d.ts +7 -0
  84. package/dist/cli/main.d.ts.map +1 -0
  85. package/dist/cli/main.js +41 -0
  86. package/dist/cli/program.d.ts +7 -0
  87. package/dist/cli/program.d.ts.map +1 -0
  88. package/dist/cli/program.js +8 -0
  89. package/dist/cli/ui.d.ts +9 -0
  90. package/dist/cli/ui.d.ts.map +1 -0
  91. package/dist/cli/ui.js +125 -0
  92. package/dist/compression/compaction.d.ts +82 -0
  93. package/dist/compression/compaction.d.ts.map +1 -0
  94. package/dist/compression/compaction.js +310 -0
  95. package/dist/cost/claudeCodeParser.d.ts +81 -0
  96. package/dist/cost/claudeCodeParser.d.ts.map +1 -0
  97. package/dist/cost/claudeCodeParser.js +232 -0
  98. package/dist/cost/collector.d.ts +42 -0
  99. package/dist/cost/collector.d.ts.map +1 -0
  100. package/dist/cost/collector.js +105 -0
  101. package/dist/cost/effectCost.d.ts +23 -0
  102. package/dist/cost/effectCost.d.ts.map +1 -0
  103. package/dist/cost/effectCost.js +26 -0
  104. package/dist/cost/index.d.ts +7 -0
  105. package/dist/cost/index.d.ts.map +1 -0
  106. package/dist/cost/index.js +28 -0
  107. package/dist/cost/journal.d.ts +40 -0
  108. package/dist/cost/journal.d.ts.map +1 -0
  109. package/dist/cost/journal.js +137 -0
  110. package/dist/cost/types.d.ts +164 -0
  111. package/dist/cost/types.d.ts.map +1 -0
  112. package/dist/cost/types.js +228 -0
  113. package/dist/daemon/automationExecutor.d.ts +16 -0
  114. package/dist/daemon/automationExecutor.d.ts.map +1 -0
  115. package/dist/daemon/automationExecutor.js +222 -0
  116. package/dist/daemon/config.d.ts +8 -0
  117. package/dist/daemon/config.d.ts.map +1 -0
  118. package/dist/daemon/config.js +209 -0
  119. package/dist/daemon/daemonLog.d.ts +13 -0
  120. package/dist/daemon/daemonLog.d.ts.map +1 -0
  121. package/dist/daemon/daemonLog.js +64 -0
  122. package/dist/daemon/fileWatcher.d.ts +9 -0
  123. package/dist/daemon/fileWatcher.d.ts.map +1 -0
  124. package/dist/daemon/fileWatcher.js +141 -0
  125. package/dist/daemon/index.d.ts +7 -0
  126. package/dist/daemon/index.d.ts.map +1 -0
  127. package/dist/daemon/index.js +21 -0
  128. package/dist/daemon/lifecycle.d.ts +12 -0
  129. package/dist/daemon/lifecycle.d.ts.map +1 -0
  130. package/dist/daemon/lifecycle.js +257 -0
  131. package/dist/daemon/loop.d.ts +21 -0
  132. package/dist/daemon/loop.d.ts.map +1 -0
  133. package/dist/daemon/loop.js +196 -0
  134. package/dist/daemon/timerScheduler.d.ts +13 -0
  135. package/dist/daemon/timerScheduler.d.ts.map +1 -0
  136. package/dist/daemon/timerScheduler.js +122 -0
  137. package/dist/daemon/types.d.ts +93 -0
  138. package/dist/daemon/types.d.ts.map +1 -0
  139. package/dist/daemon/types.js +25 -0
  140. package/dist/daemon/webhookListener.d.ts +6 -0
  141. package/dist/daemon/webhookListener.d.ts.map +1 -0
  142. package/dist/daemon/webhookListener.js +110 -0
  143. package/dist/governance/authority.d.ts +68 -0
  144. package/dist/governance/authority.d.ts.map +1 -0
  145. package/dist/governance/authority.js +136 -0
  146. package/dist/governance/bridge.d.ts +17 -0
  147. package/dist/governance/bridge.d.ts.map +1 -0
  148. package/dist/governance/bridge.js +46 -0
  149. package/dist/governance/builtins.d.ts +25 -0
  150. package/dist/governance/builtins.d.ts.map +1 -0
  151. package/dist/governance/builtins.js +67 -0
  152. package/dist/governance/categories.d.ts +58 -0
  153. package/dist/governance/categories.d.ts.map +1 -0
  154. package/dist/governance/categories.js +120 -0
  155. package/dist/governance/decisionTrail.d.ts +60 -0
  156. package/dist/governance/decisionTrail.d.ts.map +1 -0
  157. package/dist/governance/decisionTrail.js +68 -0
  158. package/dist/governance/engine.d.ts +20 -0
  159. package/dist/governance/engine.d.ts.map +1 -0
  160. package/dist/governance/engine.js +124 -0
  161. package/dist/governance/index.d.ts +20 -0
  162. package/dist/governance/index.d.ts.map +1 -0
  163. package/dist/governance/index.js +75 -0
  164. package/dist/governance/logging.d.ts +18 -0
  165. package/dist/governance/logging.d.ts.map +1 -0
  166. package/dist/governance/logging.js +83 -0
  167. package/dist/governance/mandate.d.ts +83 -0
  168. package/dist/governance/mandate.d.ts.map +1 -0
  169. package/dist/governance/mandate.js +180 -0
  170. package/dist/governance/permissionEvents.d.ts +51 -0
  171. package/dist/governance/permissionEvents.d.ts.map +1 -0
  172. package/dist/governance/permissionEvents.js +52 -0
  173. package/dist/governance/permissionPropagation.d.ts +18 -0
  174. package/dist/governance/permissionPropagation.d.ts.map +1 -0
  175. package/dist/governance/permissionPropagation.js +58 -0
  176. package/dist/governance/postureBridge.d.ts +17 -0
  177. package/dist/governance/postureBridge.d.ts.map +1 -0
  178. package/dist/governance/postureBridge.js +117 -0
  179. package/dist/governance/sandboxBridge.d.ts +49 -0
  180. package/dist/governance/sandboxBridge.d.ts.map +1 -0
  181. package/dist/governance/sandboxBridge.js +77 -0
  182. package/dist/governance/sandboxPolicy.d.ts +51 -0
  183. package/dist/governance/sandboxPolicy.d.ts.map +1 -0
  184. package/dist/governance/sandboxPolicy.js +177 -0
  185. package/dist/governance/types.d.ts +3 -0
  186. package/dist/governance/types.d.ts.map +1 -0
  187. package/dist/governance/types.js +5 -0
  188. package/dist/harness/amux/amuxBridge.d.ts +71 -0
  189. package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
  190. package/dist/harness/amux/amuxBridge.js +117 -0
  191. package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
  192. package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
  193. package/dist/harness/amux/amuxClientFactory.js +90 -0
  194. package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
  195. package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
  196. package/dist/harness/amux/amuxEventEmitter.js +143 -0
  197. package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
  198. package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
  199. package/dist/harness/amux/amuxEventMapper.js +92 -0
  200. package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
  201. package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
  202. package/dist/harness/amux/amuxHarnessMap.js +55 -0
  203. package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
  204. package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
  205. package/dist/harness/amux/amuxStdinReader.js +106 -0
  206. package/dist/harness/amux/amuxTypes.d.ts +122 -0
  207. package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
  208. package/dist/harness/amux/amuxTypes.js +11 -0
  209. package/dist/harness/amux/index.d.ts +17 -0
  210. package/dist/harness/amux/index.d.ts.map +1 -0
  211. package/dist/harness/amux/index.js +34 -0
  212. package/dist/harness/backgroundTracker.d.ts +64 -0
  213. package/dist/harness/backgroundTracker.d.ts.map +1 -0
  214. package/dist/harness/backgroundTracker.js +107 -0
  215. package/dist/harness/builtInHarness.d.ts +3 -0
  216. package/dist/harness/builtInHarness.d.ts.map +1 -0
  217. package/dist/harness/builtInHarness.js +18 -0
  218. package/dist/harness/capabilityRouter.d.ts +76 -0
  219. package/dist/harness/capabilityRouter.d.ts.map +1 -0
  220. package/dist/harness/capabilityRouter.js +176 -0
  221. package/dist/harness/fallbackChains.d.ts +42 -0
  222. package/dist/harness/fallbackChains.d.ts.map +1 -0
  223. package/dist/harness/fallbackChains.js +69 -0
  224. package/dist/harness/hostContract.d.ts +63 -0
  225. package/dist/harness/hostContract.d.ts.map +1 -0
  226. package/dist/harness/hostContract.js +136 -0
  227. package/dist/harness/index.d.ts +10 -0
  228. package/dist/harness/index.d.ts.map +1 -0
  229. package/dist/harness/index.js +66 -0
  230. package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
  231. package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
  232. package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
  233. package/dist/harness/internal/createRun/index.d.ts +25 -0
  234. package/dist/harness/internal/createRun/index.d.ts.map +1 -0
  235. package/dist/harness/internal/createRun/index.js +137 -0
  236. package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
  237. package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
  238. package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
  239. package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
  240. package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
  241. package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
  242. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
  243. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
  244. package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
  245. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
  246. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
  247. package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
  248. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
  249. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
  250. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
  251. package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
  252. package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
  253. package/dist/harness/internal/createRun/orchestration/index.js +36 -0
  254. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
  255. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
  256. package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
  257. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
  258. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
  259. package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
  260. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
  261. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
  262. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
  263. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
  264. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
  265. package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
  266. package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
  267. package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
  268. package/dist/harness/internal/createRun/orchestration/types.js +2 -0
  269. package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
  270. package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
  271. package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
  272. package/dist/harness/internal/createRun/output.d.ts +38 -0
  273. package/dist/harness/internal/createRun/output.d.ts.map +1 -0
  274. package/dist/harness/internal/createRun/output.js +415 -0
  275. package/dist/harness/internal/createRun/pi.d.ts +34 -0
  276. package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
  277. package/dist/harness/internal/createRun/pi.js +216 -0
  278. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
  279. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
  280. package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
  281. package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
  282. package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
  283. package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
  284. package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
  285. package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
  286. package/dist/harness/internal/createRun/planProcess/external.js +139 -0
  287. package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
  288. package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
  289. package/dist/harness/internal/createRun/planProcess/index.js +24 -0
  290. package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
  291. package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
  292. package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
  293. package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
  294. package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
  295. package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
  296. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
  297. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
  298. package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
  299. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
  300. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
  301. package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
  302. package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
  303. package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
  304. package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
  305. package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
  306. package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
  307. package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
  308. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
  309. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
  310. package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
  311. package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
  312. package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
  313. package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
  314. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
  315. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
  316. package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
  317. package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
  318. package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
  319. package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
  320. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
  321. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
  322. package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
  323. package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
  324. package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
  325. package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
  326. package/dist/harness/internal/createRun/prompts.d.ts +49 -0
  327. package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
  328. package/dist/harness/internal/createRun/prompts.js +307 -0
  329. package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
  330. package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
  331. package/dist/harness/internal/createRun/resumeState.js +133 -0
  332. package/dist/harness/internal/createRun/utils.d.ts +182 -0
  333. package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
  334. package/dist/harness/internal/createRun/utils.js +133 -0
  335. package/dist/harness/internal.d.ts +13 -0
  336. package/dist/harness/internal.d.ts.map +1 -0
  337. package/dist/harness/internal.js +149 -0
  338. package/dist/harness/invoker/launch.d.ts +20 -0
  339. package/dist/harness/invoker/launch.d.ts.map +1 -0
  340. package/dist/harness/invoker/launch.js +23 -0
  341. package/dist/harness/invoker/processControl.d.ts +11 -0
  342. package/dist/harness/invoker/processControl.d.ts.map +1 -0
  343. package/dist/harness/invoker/processControl.js +50 -0
  344. package/dist/harness/invoker.d.ts +43 -0
  345. package/dist/harness/invoker.d.ts.map +1 -0
  346. package/dist/harness/invoker.js +210 -0
  347. package/dist/harness/modeSelector.d.ts +50 -0
  348. package/dist/harness/modeSelector.d.ts.map +1 -0
  349. package/dist/harness/modeSelector.js +124 -0
  350. package/dist/harness/modelSelection.d.ts +37 -0
  351. package/dist/harness/modelSelection.d.ts.map +1 -0
  352. package/dist/harness/modelSelection.js +81 -0
  353. package/dist/harness/operatorCommands.d.ts +38 -0
  354. package/dist/harness/operatorCommands.d.ts.map +1 -0
  355. package/dist/harness/operatorCommands.js +118 -0
  356. package/dist/harness/piSecureSandbox.d.ts +8 -0
  357. package/dist/harness/piSecureSandbox.d.ts.map +1 -0
  358. package/dist/harness/piSecureSandbox.js +366 -0
  359. package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
  360. package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
  361. package/dist/harness/piSecureSandboxTypes.js +6 -0
  362. package/dist/harness/piWrapper/compaction.d.ts +13 -0
  363. package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
  364. package/dist/harness/piWrapper/compaction.js +38 -0
  365. package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
  366. package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
  367. package/dist/harness/piWrapper/instructionPrompts.js +97 -0
  368. package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
  369. package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
  370. package/dist/harness/piWrapper/moduleSupport.js +204 -0
  371. package/dist/harness/piWrapper.d.ts +80 -0
  372. package/dist/harness/piWrapper.d.ts.map +1 -0
  373. package/dist/harness/piWrapper.js +389 -0
  374. package/dist/harness/piWrapper.test.d.ts +2 -0
  375. package/dist/harness/piWrapper.test.d.ts.map +1 -0
  376. package/dist/harness/piWrapper.test.js +193 -0
  377. package/dist/harness/planMode.d.ts +68 -0
  378. package/dist/harness/planMode.d.ts.map +1 -0
  379. package/dist/harness/planMode.js +145 -0
  380. package/dist/harness/selectionPolicies.d.ts +29 -0
  381. package/dist/harness/selectionPolicies.d.ts.map +1 -0
  382. package/dist/harness/selectionPolicies.js +165 -0
  383. package/dist/harness/types.d.ts +266 -0
  384. package/dist/harness/types.d.ts.map +1 -0
  385. package/dist/harness/types.js +34 -0
  386. package/dist/index.d.ts +14 -0
  387. package/dist/index.d.ts.map +1 -0
  388. package/dist/index.js +52 -0
  389. package/dist/interaction/askUserQuestion/core.d.ts +8 -0
  390. package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
  391. package/dist/interaction/askUserQuestion/core.js +112 -0
  392. package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
  393. package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
  394. package/dist/interaction/askUserQuestion/terminal.js +128 -0
  395. package/dist/interaction/askUserQuestion.d.ts +10 -0
  396. package/dist/interaction/askUserQuestion.d.ts.map +1 -0
  397. package/dist/interaction/askUserQuestion.js +295 -0
  398. package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
  399. package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
  400. package/dist/interaction/askUserQuestionTypes.js +6 -0
  401. package/dist/interaction/index.d.ts +4 -0
  402. package/dist/interaction/index.d.ts.map +1 -0
  403. package/dist/interaction/index.js +20 -0
  404. package/dist/interaction/interactionRouter.d.ts +25 -0
  405. package/dist/interaction/interactionRouter.d.ts.map +1 -0
  406. package/dist/interaction/interactionRouter.js +55 -0
  407. package/dist/mcp/channels/allowlist.d.ts +19 -0
  408. package/dist/mcp/channels/allowlist.d.ts.map +1 -0
  409. package/dist/mcp/channels/allowlist.js +140 -0
  410. package/dist/mcp/channels/channelManager.d.ts +64 -0
  411. package/dist/mcp/channels/channelManager.d.ts.map +1 -0
  412. package/dist/mcp/channels/channelManager.js +137 -0
  413. package/dist/mcp/channels/inboundQueue.d.ts +47 -0
  414. package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
  415. package/dist/mcp/channels/inboundQueue.js +96 -0
  416. package/dist/mcp/channels/index.d.ts +17 -0
  417. package/dist/mcp/channels/index.d.ts.map +1 -0
  418. package/dist/mcp/channels/index.js +39 -0
  419. package/dist/mcp/channels/outbound.d.ts +33 -0
  420. package/dist/mcp/channels/outbound.d.ts.map +1 -0
  421. package/dist/mcp/channels/outbound.js +94 -0
  422. package/dist/mcp/channels/permissionRelay.d.ts +62 -0
  423. package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
  424. package/dist/mcp/channels/permissionRelay.js +159 -0
  425. package/dist/mcp/channels/types.d.ts +135 -0
  426. package/dist/mcp/channels/types.d.ts.map +1 -0
  427. package/dist/mcp/channels/types.js +16 -0
  428. package/dist/mcp/client/config.d.ts +28 -0
  429. package/dist/mcp/client/config.d.ts.map +1 -0
  430. package/dist/mcp/client/config.js +142 -0
  431. package/dist/mcp/client/executor.d.ts +30 -0
  432. package/dist/mcp/client/executor.d.ts.map +1 -0
  433. package/dist/mcp/client/executor.js +60 -0
  434. package/dist/mcp/client/index.d.ts +12 -0
  435. package/dist/mcp/client/index.d.ts.map +1 -0
  436. package/dist/mcp/client/index.js +27 -0
  437. package/dist/mcp/client/manager.d.ts +74 -0
  438. package/dist/mcp/client/manager.d.ts.map +1 -0
  439. package/dist/mcp/client/manager.js +214 -0
  440. package/dist/mcp/client/toolRegistry.d.ts +50 -0
  441. package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
  442. package/dist/mcp/client/toolRegistry.js +118 -0
  443. package/dist/mcp/client/types.d.ts +96 -0
  444. package/dist/mcp/client/types.d.ts.map +1 -0
  445. package/dist/mcp/client/types.js +15 -0
  446. package/dist/mcp/transport/index.d.ts +9 -0
  447. package/dist/mcp/transport/index.d.ts.map +1 -0
  448. package/dist/mcp/transport/index.js +13 -0
  449. package/dist/mcp/transport/session.d.ts +18 -0
  450. package/dist/mcp/transport/session.d.ts.map +1 -0
  451. package/dist/mcp/transport/session.js +78 -0
  452. package/dist/mcp/transport/types.d.ts +19 -0
  453. package/dist/mcp/transport/types.d.ts.map +1 -0
  454. package/dist/mcp/transport/types.js +7 -0
  455. package/dist/mcp/transport/websocket.d.ts +41 -0
  456. package/dist/mcp/transport/websocket.d.ts.map +1 -0
  457. package/dist/mcp/transport/websocket.js +271 -0
  458. package/dist/observability/health.d.ts +19 -0
  459. package/dist/observability/health.d.ts.map +1 -0
  460. package/dist/observability/health.js +129 -0
  461. package/dist/observability/index.d.ts +7 -0
  462. package/dist/observability/index.d.ts.map +1 -0
  463. package/dist/observability/index.js +22 -0
  464. package/dist/observability/runStatus.d.ts +44 -0
  465. package/dist/observability/runStatus.d.ts.map +1 -0
  466. package/dist/observability/runStatus.js +169 -0
  467. package/dist/observability/timeline.d.ts +11 -0
  468. package/dist/observability/timeline.d.ts.map +1 -0
  469. package/dist/observability/timeline.js +176 -0
  470. package/dist/observability/types.d.ts +62 -0
  471. package/dist/observability/types.d.ts.map +1 -0
  472. package/dist/observability/types.js +8 -0
  473. package/dist/observability/webhooks.d.ts +68 -0
  474. package/dist/observability/webhooks.d.ts.map +1 -0
  475. package/dist/observability/webhooks.js +132 -0
  476. package/dist/prompts/commandTemplates.d.ts +3 -0
  477. package/dist/prompts/commandTemplates.d.ts.map +1 -0
  478. package/dist/prompts/commandTemplates.js +238 -0
  479. package/dist/runtime/index.d.ts +3 -0
  480. package/dist/runtime/index.d.ts.map +1 -0
  481. package/dist/runtime/index.js +28 -0
  482. package/dist/seams/contract.d.ts +55 -0
  483. package/dist/seams/contract.d.ts.map +1 -0
  484. package/dist/seams/contract.js +120 -0
  485. package/dist/seams/contract.test.d.ts +2 -0
  486. package/dist/seams/contract.test.d.ts.map +1 -0
  487. package/dist/seams/contract.test.js +96 -0
  488. package/dist/seams/index.d.ts +3 -0
  489. package/dist/seams/index.d.ts.map +1 -0
  490. package/dist/seams/index.js +8 -0
  491. package/dist/session/context.d.ts +22 -0
  492. package/dist/session/context.d.ts.map +1 -0
  493. package/dist/session/context.js +113 -0
  494. package/dist/session/continuityState.d.ts +39 -0
  495. package/dist/session/continuityState.d.ts.map +1 -0
  496. package/dist/session/continuityState.js +164 -0
  497. package/dist/session/cost.d.ts +63 -0
  498. package/dist/session/cost.d.ts.map +1 -0
  499. package/dist/session/cost.js +194 -0
  500. package/dist/session/discovery.d.ts +22 -0
  501. package/dist/session/discovery.d.ts.map +1 -0
  502. package/dist/session/discovery.js +35 -0
  503. package/dist/session/history.d.ts +30 -0
  504. package/dist/session/history.d.ts.map +1 -0
  505. package/dist/session/history.js +143 -0
  506. package/dist/session/index.d.ts +7 -0
  507. package/dist/session/index.d.ts.map +1 -0
  508. package/dist/session/index.js +70 -0
  509. package/dist/session/memoryExtraction.d.ts +65 -0
  510. package/dist/session/memoryExtraction.d.ts.map +1 -0
  511. package/dist/session/memoryExtraction.js +201 -0
  512. package/dist/session/parse.d.ts +45 -0
  513. package/dist/session/parse.d.ts.map +1 -0
  514. package/dist/session/parse.js +170 -0
  515. package/dist/session/persistence.d.ts +46 -0
  516. package/dist/session/persistence.d.ts.map +1 -0
  517. package/dist/session/persistence.js +180 -0
  518. package/dist/session/types.d.ts +267 -0
  519. package/dist/session/types.d.ts.map +1 -0
  520. package/dist/session/types.js +45 -0
  521. package/dist/session/write.d.ts +61 -0
  522. package/dist/session/write.d.ts.map +1 -0
  523. package/dist/session/write.js +213 -0
  524. package/dist/storage/atomic.d.ts +2 -0
  525. package/dist/storage/atomic.d.ts.map +1 -0
  526. package/dist/storage/atomic.js +54 -0
  527. package/dist/storage/clock.d.ts +2 -0
  528. package/dist/storage/clock.d.ts.map +1 -0
  529. package/dist/storage/clock.js +6 -0
  530. package/dist/storage/index.d.ts +7 -0
  531. package/dist/storage/index.d.ts.map +1 -0
  532. package/dist/storage/index.js +9 -0
  533. package/dist/storage/journalWatcher.d.ts +24 -0
  534. package/dist/storage/journalWatcher.d.ts.map +1 -0
  535. package/dist/storage/journalWatcher.js +172 -0
  536. package/dist/storage/paths.d.ts +5 -0
  537. package/dist/storage/paths.d.ts.map +1 -0
  538. package/dist/storage/paths.js +26 -0
  539. package/dist/storage/snapshotState.d.ts +10 -0
  540. package/dist/storage/snapshotState.d.ts.map +1 -0
  541. package/dist/storage/snapshotState.js +15 -0
  542. package/dist/storage/storeTaskArtifacts.d.ts +6 -0
  543. package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
  544. package/dist/storage/storeTaskArtifacts.js +55 -0
  545. package/dist/storage/types.d.ts +21 -0
  546. package/dist/storage/types.d.ts.map +1 -0
  547. package/dist/storage/types.js +2 -0
  548. package/dist/tasks/crud.d.ts +33 -0
  549. package/dist/tasks/crud.d.ts.map +1 -0
  550. package/dist/tasks/crud.js +150 -0
  551. package/dist/tasks/index.d.ts +2 -0
  552. package/dist/tasks/index.d.ts.map +1 -0
  553. package/dist/tasks/index.js +9 -0
  554. package/package.json +141 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Session state management types for babysitter orchestration.
4
+ * These types represent the state stored in markdown files with YAML frontmatter.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SessionErrorCode = exports.SessionError = void 0;
8
+ /**
9
+ * Error thrown when session operations fail.
10
+ */
11
+ class SessionError extends Error {
12
+ code;
13
+ details;
14
+ constructor(message, code, details) {
15
+ super(message);
16
+ this.code = code;
17
+ this.details = details;
18
+ this.name = 'SessionError';
19
+ }
20
+ }
21
+ exports.SessionError = SessionError;
22
+ /**
23
+ * Session error codes.
24
+ */
25
+ var SessionErrorCode;
26
+ (function (SessionErrorCode) {
27
+ /** Session ID not provided */
28
+ SessionErrorCode["MISSING_SESSION_ID"] = "MISSING_SESSION_ID";
29
+ /** State file already exists */
30
+ SessionErrorCode["SESSION_EXISTS"] = "SESSION_EXISTS";
31
+ /** State file not found */
32
+ SessionErrorCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
33
+ /** Run already associated */
34
+ SessionErrorCode["RUN_ALREADY_ASSOCIATED"] = "RUN_ALREADY_ASSOCIATED";
35
+ /** Run not found */
36
+ SessionErrorCode["RUN_NOT_FOUND"] = "RUN_NOT_FOUND";
37
+ /** Run already completed */
38
+ SessionErrorCode["RUN_COMPLETED"] = "RUN_COMPLETED";
39
+ /** State file corrupted */
40
+ SessionErrorCode["CORRUPTED_STATE"] = "CORRUPTED_STATE";
41
+ /** Invalid state value */
42
+ SessionErrorCode["INVALID_STATE_VALUE"] = "INVALID_STATE_VALUE";
43
+ /** File system error */
44
+ SessionErrorCode["FS_ERROR"] = "FS_ERROR";
45
+ })(SessionErrorCode || (exports.SessionErrorCode = SessionErrorCode = {}));
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Session state file writing utilities.
3
+ * Provides atomic writes for session state files.
4
+ */
5
+ import type { SessionState } from './types';
6
+ /**
7
+ * Serialize session state to YAML frontmatter format.
8
+ */
9
+ export declare function serializeSessionState(state: SessionState): string;
10
+ /**
11
+ * Create full session file content with YAML frontmatter and prompt.
12
+ */
13
+ export declare function createSessionFileContent(state: SessionState, prompt: string): string;
14
+ /**
15
+ * Write session state file atomically.
16
+ * Uses temp file + rename pattern to ensure atomic writes.
17
+ */
18
+ export declare function writeSessionFile(filePath: string, state: SessionState, prompt: string): Promise<void>;
19
+ /**
20
+ * Update specific fields in an existing session state file.
21
+ * Reads, modifies, and atomically writes the file.
22
+ */
23
+ export declare function updateSessionState(filePath: string, updates: Partial<SessionState>, existingContent?: {
24
+ state: SessionState;
25
+ prompt: string;
26
+ }): Promise<SessionState>;
27
+ /**
28
+ * Bind a new run to the session, retiring the previous active run to history.
29
+ *
30
+ * Invariant: only one run is active at a time (`runId`).
31
+ * The previous `runId` (if any) is pushed into `runIds` as audit history.
32
+ * Idempotent: re-binding the same runId is a no-op.
33
+ *
34
+ * Throws if the caller tries to bind a new run while `runId` is still set
35
+ * and `retirePrevious` is not explicitly true — this forces callers to
36
+ * acknowledge that the prior run is done.
37
+ */
38
+ export declare function addRunToSession(state: SessionState, runId: string, options?: {
39
+ retirePrevious?: boolean;
40
+ }): SessionState;
41
+ /**
42
+ * Get the historical audit trail of all run IDs for this session (GAP-SESSION-001).
43
+ * Falls back to [runId] when runIds is empty for backward compatibility
44
+ * with sessions created before the runIds field existed.
45
+ */
46
+ export declare function getSessionRuns(state: SessionState): string[];
47
+ /**
48
+ * Get current ISO timestamp.
49
+ */
50
+ export declare function getCurrentTimestamp(): string;
51
+ /**
52
+ * Convert ISO timestamp to epoch seconds.
53
+ * Returns null if conversion fails.
54
+ */
55
+ export declare function isoToEpochSeconds(isoTimestamp: string): number | null;
56
+ /**
57
+ * Calculate iteration duration and update times array.
58
+ * Keeps only the last 10 durations for diagnostics.
59
+ */
60
+ export declare function updateIterationTimes(existingTimes: number[], lastIterationAt: string, currentTime: string): number[];
61
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/session/write.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAgBjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,eAAe,CAAC,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,YAAY,CAyBd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAG5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASrE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EAAE,EACvB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAgBV"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ /**
3
+ * Session state file writing utilities.
4
+ * Provides atomic writes for session state files.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.serializeSessionState = serializeSessionState;
41
+ exports.createSessionFileContent = createSessionFileContent;
42
+ exports.writeSessionFile = writeSessionFile;
43
+ exports.updateSessionState = updateSessionState;
44
+ exports.addRunToSession = addRunToSession;
45
+ exports.getSessionRuns = getSessionRuns;
46
+ exports.getCurrentTimestamp = getCurrentTimestamp;
47
+ exports.isoToEpochSeconds = isoToEpochSeconds;
48
+ exports.updateIterationTimes = updateIterationTimes;
49
+ const node_fs_1 = require("node:fs");
50
+ const path = __importStar(require("node:path"));
51
+ const types_1 = require("./types");
52
+ /**
53
+ * Serialize session state to YAML frontmatter format.
54
+ */
55
+ function serializeSessionState(state) {
56
+ const lines = [];
57
+ lines.push(`active: ${state.active}`);
58
+ lines.push(`iteration: ${state.iteration}`);
59
+ lines.push(`max_iterations: ${state.maxIterations}`);
60
+ lines.push(`run_id: "${state.runId}"`);
61
+ lines.push(`run_ids: ${state.runIds.join(',')}`);
62
+ lines.push(`started_at: "${state.startedAt}"`);
63
+ lines.push(`last_iteration_at: "${state.lastIterationAt}"`);
64
+ lines.push(`iteration_times: ${state.iterationTimes.join(',')}`);
65
+ for (const [key, value] of Object.entries(state.metadata ?? {})) {
66
+ lines.push(`metadata_${key}: "${String(value).replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`);
67
+ }
68
+ return lines.join('\n');
69
+ }
70
+ /**
71
+ * Create full session file content with YAML frontmatter and prompt.
72
+ */
73
+ function createSessionFileContent(state, prompt) {
74
+ const frontmatter = serializeSessionState(state);
75
+ return `---\n${frontmatter}\n---\n\n${prompt}\n`;
76
+ }
77
+ /**
78
+ * Write session state file atomically.
79
+ * Uses temp file + rename pattern to ensure atomic writes.
80
+ */
81
+ async function writeSessionFile(filePath, state, prompt) {
82
+ const content = createSessionFileContent(state, prompt);
83
+ const dir = path.dirname(filePath);
84
+ const tempPath = `${filePath}.tmp.${process.pid}`;
85
+ try {
86
+ // Ensure directory exists
87
+ await node_fs_1.promises.mkdir(dir, { recursive: true });
88
+ // Write to temp file
89
+ await node_fs_1.promises.writeFile(tempPath, content, 'utf8');
90
+ // Atomic rename
91
+ await node_fs_1.promises.rename(tempPath, filePath);
92
+ }
93
+ catch (error) {
94
+ // Clean up temp file on error
95
+ try {
96
+ await node_fs_1.promises.unlink(tempPath);
97
+ }
98
+ catch {
99
+ // Ignore cleanup errors
100
+ }
101
+ const err = error;
102
+ throw new types_1.SessionError(`Failed to write session state file: ${err.message}`, types_1.SessionErrorCode.FS_ERROR, { filePath, originalError: err.message });
103
+ }
104
+ }
105
+ /**
106
+ * Update specific fields in an existing session state file.
107
+ * Reads, modifies, and atomically writes the file.
108
+ */
109
+ async function updateSessionState(filePath, updates, existingContent) {
110
+ let state;
111
+ let prompt;
112
+ if (existingContent) {
113
+ state = existingContent.state;
114
+ prompt = existingContent.prompt;
115
+ }
116
+ else {
117
+ // Read existing file
118
+ const { readSessionFile } = await Promise.resolve().then(() => __importStar(require('./parse')));
119
+ const file = await readSessionFile(filePath);
120
+ state = file.state;
121
+ prompt = file.prompt;
122
+ }
123
+ // Apply updates
124
+ const updatedState = {
125
+ ...state,
126
+ ...updates,
127
+ };
128
+ // Write updated file
129
+ await writeSessionFile(filePath, updatedState, prompt);
130
+ return updatedState;
131
+ }
132
+ /**
133
+ * Bind a new run to the session, retiring the previous active run to history.
134
+ *
135
+ * Invariant: only one run is active at a time (`runId`).
136
+ * The previous `runId` (if any) is pushed into `runIds` as audit history.
137
+ * Idempotent: re-binding the same runId is a no-op.
138
+ *
139
+ * Throws if the caller tries to bind a new run while `runId` is still set
140
+ * and `retirePrevious` is not explicitly true — this forces callers to
141
+ * acknowledge that the prior run is done.
142
+ */
143
+ function addRunToSession(state, runId, options) {
144
+ // Idempotent: already bound to this run
145
+ if (state.runId === runId)
146
+ return state;
147
+ // Guard: refuse to silently overwrite an active run
148
+ if (state.runId && !options?.retirePrevious) {
149
+ throw new types_1.SessionError(`Session already bound to run ${state.runId}. ` +
150
+ `Pass { retirePrevious: true } to retire it and bind ${runId}.`, types_1.SessionErrorCode.RUN_ALREADY_ASSOCIATED, { currentRunId: state.runId, requestedRunId: runId });
151
+ }
152
+ // Retire the old runId into history (if not already there)
153
+ const runIds = [...state.runIds];
154
+ if (state.runId && !runIds.includes(state.runId)) {
155
+ runIds.push(state.runId);
156
+ }
157
+ // Add the new one to the audit trail too
158
+ if (!runIds.includes(runId)) {
159
+ runIds.push(runId);
160
+ }
161
+ return { ...state, runId, runIds };
162
+ }
163
+ /**
164
+ * Get the historical audit trail of all run IDs for this session (GAP-SESSION-001).
165
+ * Falls back to [runId] when runIds is empty for backward compatibility
166
+ * with sessions created before the runIds field existed.
167
+ */
168
+ function getSessionRuns(state) {
169
+ if (state.runIds.length > 0)
170
+ return state.runIds;
171
+ return state.runId ? [state.runId] : [];
172
+ }
173
+ /**
174
+ * Get current ISO timestamp.
175
+ */
176
+ function getCurrentTimestamp() {
177
+ return new Date().toISOString().replace(/\.\d{3}Z$/, 'Z');
178
+ }
179
+ /**
180
+ * Convert ISO timestamp to epoch seconds.
181
+ * Returns null if conversion fails.
182
+ */
183
+ function isoToEpochSeconds(isoTimestamp) {
184
+ if (!isoTimestamp)
185
+ return null;
186
+ try {
187
+ const date = new Date(isoTimestamp);
188
+ if (Number.isNaN(date.getTime()))
189
+ return null;
190
+ return Math.floor(date.getTime() / 1000);
191
+ }
192
+ catch {
193
+ return null;
194
+ }
195
+ }
196
+ /**
197
+ * Calculate iteration duration and update times array.
198
+ * Keeps only the last 10 durations for diagnostics.
199
+ */
200
+ function updateIterationTimes(existingTimes, lastIterationAt, currentTime) {
201
+ const lastEpoch = isoToEpochSeconds(lastIterationAt);
202
+ const currentEpoch = isoToEpochSeconds(currentTime);
203
+ if (lastEpoch === null || currentEpoch === null) {
204
+ return existingTimes;
205
+ }
206
+ const duration = currentEpoch - lastEpoch;
207
+ if (duration <= 0) {
208
+ return existingTimes;
209
+ }
210
+ const newTimes = [...existingTimes, duration];
211
+ // Keep only last 10
212
+ return newTimes.slice(-10);
213
+ }
@@ -0,0 +1,2 @@
1
+ export declare function writeFileAtomic(targetPath: string, data: string | Buffer, retries?: number): Promise<void>;
2
+ //# sourceMappingURL=atomic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic.d.ts","sourceRoot":"","sources":["../../src/storage/atomic.ts"],"names":[],"mappings":"AAcA,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,SAAI,iBAiC3F"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.writeFileAtomic = writeFileAtomic;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const RETRYABLE_ERRORS = new Set(["EBUSY", "ETXTBSY", "EPERM", "EACCES"]);
10
+ async function fsyncPath(targetPath) {
11
+ const handle = await node_fs_1.promises.open(targetPath, "r");
12
+ try {
13
+ await handle.sync();
14
+ }
15
+ finally {
16
+ await handle.close();
17
+ }
18
+ }
19
+ async function writeFileAtomic(targetPath, data, retries = 3) {
20
+ await node_fs_1.promises.mkdir(node_path_1.default.dirname(targetPath), { recursive: true });
21
+ const tempPath = `${targetPath}.tmp-${process.pid}-${Date.now()}`;
22
+ const handle = await node_fs_1.promises.open(tempPath, "w");
23
+ try {
24
+ if (typeof data === "string") {
25
+ await handle.writeFile(data, "utf8");
26
+ }
27
+ else {
28
+ await handle.writeFile(data);
29
+ }
30
+ await handle.sync();
31
+ }
32
+ finally {
33
+ await handle.close();
34
+ }
35
+ for (let attempt = 0; attempt <= retries; attempt++) {
36
+ try {
37
+ await node_fs_1.promises.rename(tempPath, targetPath);
38
+ await fsyncPath(node_path_1.default.dirname(targetPath));
39
+ return;
40
+ }
41
+ catch (error) {
42
+ const err = error;
43
+ if (err.code === "ENOENT") {
44
+ await node_fs_1.promises.writeFile(targetPath, data);
45
+ return;
46
+ }
47
+ if (attempt === retries || !err.code || !RETRYABLE_ERRORS.has(err.code)) {
48
+ await node_fs_1.promises.rm(tempPath, { force: true });
49
+ throw err;
50
+ }
51
+ await new Promise((resolve) => setTimeout(resolve, (attempt + 1) * 25));
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,2 @@
1
+ export declare function getClockIsoString(): string;
2
+ //# sourceMappingURL=clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/storage/clock.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getClockIsoString = getClockIsoString;
4
+ function getClockIsoString() {
5
+ return new Date().toISOString();
6
+ }
@@ -0,0 +1,7 @@
1
+ export { createJournalWatcher } from "./journalWatcher";
2
+ export type { JournalWatcher, JournalWatcherOptions } from "./journalWatcher";
3
+ export { snapshotState } from "./snapshotState";
4
+ export { storeTaskArtifacts } from "./storeTaskArtifacts";
5
+ export type { SnapshotStateOptions, StoreTaskArtifactsOptions } from "./types";
6
+ export type { JournalEvent, JsonRecord } from "./types";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeTaskArtifacts = exports.snapshotState = exports.createJournalWatcher = void 0;
4
+ var journalWatcher_1 = require("./journalWatcher");
5
+ Object.defineProperty(exports, "createJournalWatcher", { enumerable: true, get: function () { return journalWatcher_1.createJournalWatcher; } });
6
+ var snapshotState_1 = require("./snapshotState");
7
+ Object.defineProperty(exports, "snapshotState", { enumerable: true, get: function () { return snapshotState_1.snapshotState; } });
8
+ var storeTaskArtifacts_1 = require("./storeTaskArtifacts");
9
+ Object.defineProperty(exports, "storeTaskArtifacts", { enumerable: true, get: function () { return storeTaskArtifacts_1.storeTaskArtifacts; } });
@@ -0,0 +1,24 @@
1
+ /**
2
+ * GAP-JSON-005: JournalWatcher — real-time event streaming from journal dir.
3
+ *
4
+ * Watches a run's journal/ directory for new .json files. Emits events
5
+ * incrementally (only seq > lastSeenSeq) in strict seq order. Supports
6
+ * fs.watch with automatic polling fallback.
7
+ */
8
+ import type { JournalEvent } from "./types";
9
+ export interface JournalWatcherOptions {
10
+ runDir: string;
11
+ afterSeq?: number;
12
+ pollIntervalMs?: number;
13
+ useFsWatch?: boolean;
14
+ onEvent: (event: JournalEvent) => void;
15
+ onError?: (error: Error) => void;
16
+ onDone?: () => void;
17
+ }
18
+ export interface JournalWatcher {
19
+ readonly lastSeenSeq: number;
20
+ onEvent: (event: JournalEvent) => void;
21
+ close(): void;
22
+ }
23
+ export declare function createJournalWatcher(options: JournalWatcherOptions): JournalWatcher;
24
+ //# sourceMappingURL=journalWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journalWatcher.d.ts","sourceRoot":"","sources":["../../src/storage/journalWatcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;CACf;AAQD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CA0InF"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-JSON-005: JournalWatcher — real-time event streaming from journal dir.
4
+ *
5
+ * Watches a run's journal/ directory for new .json files. Emits events
6
+ * incrementally (only seq > lastSeenSeq) in strict seq order. Supports
7
+ * fs.watch with automatic polling fallback.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.createJournalWatcher = createJournalWatcher;
44
+ const fsSync = __importStar(require("node:fs"));
45
+ const node_fs_1 = require("node:fs");
46
+ const path = __importStar(require("node:path"));
47
+ function parseJournalFilename(name) {
48
+ const match = name.match(/^(\d{6})\.([A-Z0-9]+)\.json$/);
49
+ if (!match)
50
+ return null;
51
+ return { seq: parseInt(match[1], 10), ulid: match[2] };
52
+ }
53
+ function createJournalWatcher(options) {
54
+ const { runDir, afterSeq = 0, pollIntervalMs = 1000, useFsWatch = true, onError, onDone, } = options;
55
+ const journalDir = path.join(runDir, "journal");
56
+ let lastSeenSeq = afterSeq;
57
+ let closed = false;
58
+ let pollTimer = null;
59
+ let fsWatcher = null;
60
+ let scanning = false;
61
+ let eventCallback = options.onEvent;
62
+ const watcher = {
63
+ get lastSeenSeq() {
64
+ return lastSeenSeq;
65
+ },
66
+ get onEvent() {
67
+ return eventCallback;
68
+ },
69
+ set onEvent(cb) {
70
+ eventCallback = cb;
71
+ },
72
+ close() {
73
+ if (closed)
74
+ return;
75
+ closed = true;
76
+ if (pollTimer) {
77
+ clearInterval(pollTimer);
78
+ pollTimer = null;
79
+ }
80
+ if (fsWatcher) {
81
+ fsWatcher.close();
82
+ fsWatcher = null;
83
+ }
84
+ },
85
+ };
86
+ async function scan() {
87
+ if (closed || scanning)
88
+ return;
89
+ scanning = true;
90
+ try {
91
+ let entries;
92
+ try {
93
+ entries = await node_fs_1.promises.readdir(journalDir);
94
+ }
95
+ catch {
96
+ return;
97
+ }
98
+ const parsed = entries
99
+ .map((name) => ({ name, parsed: parseJournalFilename(name) }))
100
+ .filter((entry) => entry.parsed !== null && entry.parsed.seq > lastSeenSeq)
101
+ .sort((a, b) => a.parsed.seq - b.parsed.seq);
102
+ for (const entry of parsed) {
103
+ if (closed)
104
+ break;
105
+ const filePath = path.join(journalDir, entry.name);
106
+ let event;
107
+ let eventType;
108
+ try {
109
+ const raw = await node_fs_1.promises.readFile(filePath, "utf-8");
110
+ const data = JSON.parse(raw);
111
+ eventType = data.type;
112
+ event = {
113
+ seq: entry.parsed.seq,
114
+ ulid: entry.parsed.ulid,
115
+ filename: entry.name,
116
+ path: `journal/${entry.name}`,
117
+ type: data.type,
118
+ recordedAt: data.recordedAt,
119
+ data: data.data,
120
+ checksum: data.checksum,
121
+ };
122
+ }
123
+ catch (error) {
124
+ if (onError) {
125
+ onError(error instanceof Error ? error : new Error(String(error)));
126
+ }
127
+ lastSeenSeq = entry.parsed.seq;
128
+ continue;
129
+ }
130
+ try {
131
+ eventCallback(event);
132
+ lastSeenSeq = entry.parsed.seq;
133
+ }
134
+ catch (error) {
135
+ if (onError) {
136
+ onError(error instanceof Error ? error : new Error(String(error)));
137
+ }
138
+ lastSeenSeq = entry.parsed.seq;
139
+ }
140
+ if (eventType === "RUN_COMPLETED" || eventType === "RUN_FAILED") {
141
+ if (onDone)
142
+ onDone();
143
+ watcher.close();
144
+ }
145
+ }
146
+ }
147
+ finally {
148
+ scanning = false;
149
+ }
150
+ }
151
+ pollTimer = setInterval(() => {
152
+ void scan();
153
+ }, pollIntervalMs);
154
+ if (useFsWatch) {
155
+ try {
156
+ fsWatcher = fsSync.watch(journalDir, () => {
157
+ void scan();
158
+ });
159
+ fsWatcher.on("error", () => {
160
+ if (fsWatcher) {
161
+ fsWatcher.close();
162
+ fsWatcher = null;
163
+ }
164
+ });
165
+ }
166
+ catch {
167
+ // Polling fallback remains active.
168
+ }
169
+ }
170
+ void scan();
171
+ return watcher;
172
+ }
@@ -0,0 +1,5 @@
1
+ export declare function getTasksDir(runDir: string): string;
2
+ export declare function getBlobsDir(runDir: string): string;
3
+ export declare function getStateDir(runDir: string): string;
4
+ export declare function getStateFile(runDir: string): string;
5
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTasksDir = getTasksDir;
7
+ exports.getBlobsDir = getBlobsDir;
8
+ exports.getStateDir = getStateDir;
9
+ exports.getStateFile = getStateFile;
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const TASKS_DIR = "tasks";
12
+ const BLOBS_DIR = "blobs";
13
+ const STATE_DIR = "state";
14
+ const STATE_FILE = "state.json";
15
+ function getTasksDir(runDir) {
16
+ return node_path_1.default.join(runDir, TASKS_DIR);
17
+ }
18
+ function getBlobsDir(runDir) {
19
+ return node_path_1.default.join(runDir, BLOBS_DIR);
20
+ }
21
+ function getStateDir(runDir) {
22
+ return node_path_1.default.join(runDir, STATE_DIR);
23
+ }
24
+ function getStateFile(runDir) {
25
+ return node_path_1.default.join(getStateDir(runDir), STATE_FILE);
26
+ }
@@ -0,0 +1,10 @@
1
+ import type { SnapshotStateOptions } from "./types";
2
+ export declare function snapshotState(options: SnapshotStateOptions): Promise<{
3
+ journalHead: {
4
+ seq: number;
5
+ ulid: string;
6
+ } | null;
7
+ savedAt: string;
8
+ state: import("@a5c-ai/babysitter-sdk/dist/storage/types").JsonRecord;
9
+ }>;
10
+ //# sourceMappingURL=snapshotState.d.ts.map