@herdctl/core 0.0.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 (520) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test.log +219 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/coverage-final.json +51 -0
  7. package/coverage/favicon.png +0 -0
  8. package/coverage/index.html +251 -0
  9. package/coverage/prettify.css +1 -0
  10. package/coverage/prettify.js +2 -0
  11. package/coverage/sort-arrow-sprite.png +0 -0
  12. package/coverage/sorter.js +210 -0
  13. package/coverage/src/config/index.html +191 -0
  14. package/coverage/src/config/index.ts.html +442 -0
  15. package/coverage/src/config/interpolate.ts.html +652 -0
  16. package/coverage/src/config/loader.ts.html +1501 -0
  17. package/coverage/src/config/merge.ts.html +823 -0
  18. package/coverage/src/config/parser.ts.html +1213 -0
  19. package/coverage/src/config/schema.ts.html +1123 -0
  20. package/coverage/src/fleet-manager/errors.ts.html +2326 -0
  21. package/coverage/src/fleet-manager/event-types.ts.html +1219 -0
  22. package/coverage/src/fleet-manager/fleet-manager.ts.html +7030 -0
  23. package/coverage/src/fleet-manager/index.html +206 -0
  24. package/coverage/src/fleet-manager/index.ts.html +469 -0
  25. package/coverage/src/fleet-manager/job-manager.ts.html +2074 -0
  26. package/coverage/src/fleet-manager/job-queue.ts.html +2479 -0
  27. package/coverage/src/fleet-manager/types.ts.html +2602 -0
  28. package/coverage/src/index.html +116 -0
  29. package/coverage/src/index.ts.html +181 -0
  30. package/coverage/src/runner/errors.ts.html +1006 -0
  31. package/coverage/src/runner/index.html +191 -0
  32. package/coverage/src/runner/index.ts.html +256 -0
  33. package/coverage/src/runner/job-executor.ts.html +1429 -0
  34. package/coverage/src/runner/message-processor.ts.html +1150 -0
  35. package/coverage/src/runner/sdk-adapter.ts.html +658 -0
  36. package/coverage/src/runner/types.ts.html +559 -0
  37. package/coverage/src/scheduler/errors.ts.html +388 -0
  38. package/coverage/src/scheduler/index.html +206 -0
  39. package/coverage/src/scheduler/index.ts.html +244 -0
  40. package/coverage/src/scheduler/interval.ts.html +652 -0
  41. package/coverage/src/scheduler/schedule-runner.ts.html +1411 -0
  42. package/coverage/src/scheduler/schedule-state.ts.html +718 -0
  43. package/coverage/src/scheduler/scheduler.ts.html +1795 -0
  44. package/coverage/src/scheduler/types.ts.html +733 -0
  45. package/coverage/src/state/directory.ts.html +736 -0
  46. package/coverage/src/state/errors.ts.html +376 -0
  47. package/coverage/src/state/fleet-state.ts.html +937 -0
  48. package/coverage/src/state/index.html +221 -0
  49. package/coverage/src/state/index.ts.html +322 -0
  50. package/coverage/src/state/job-metadata.ts.html +1420 -0
  51. package/coverage/src/state/job-output.ts.html +1033 -0
  52. package/coverage/src/state/schemas/fleet-state.ts.html +445 -0
  53. package/coverage/src/state/schemas/index.html +176 -0
  54. package/coverage/src/state/schemas/index.ts.html +286 -0
  55. package/coverage/src/state/schemas/job-metadata.ts.html +628 -0
  56. package/coverage/src/state/schemas/job-output.ts.html +616 -0
  57. package/coverage/src/state/schemas/session-info.ts.html +361 -0
  58. package/coverage/src/state/session.ts.html +844 -0
  59. package/coverage/src/state/types.ts.html +262 -0
  60. package/coverage/src/state/utils/atomic.ts.html +748 -0
  61. package/coverage/src/state/utils/index.html +146 -0
  62. package/coverage/src/state/utils/index.ts.html +103 -0
  63. package/coverage/src/state/utils/reads.ts.html +1621 -0
  64. package/coverage/src/work-sources/adapters/github.ts.html +3583 -0
  65. package/coverage/src/work-sources/adapters/index.html +131 -0
  66. package/coverage/src/work-sources/adapters/index.ts.html +277 -0
  67. package/coverage/src/work-sources/errors.ts.html +298 -0
  68. package/coverage/src/work-sources/index.html +176 -0
  69. package/coverage/src/work-sources/index.ts.html +529 -0
  70. package/coverage/src/work-sources/manager.ts.html +1324 -0
  71. package/coverage/src/work-sources/registry.ts.html +619 -0
  72. package/coverage/src/work-sources/types.ts.html +568 -0
  73. package/dist/config/__tests__/agent.test.d.ts +2 -0
  74. package/dist/config/__tests__/agent.test.d.ts.map +1 -0
  75. package/dist/config/__tests__/agent.test.js +752 -0
  76. package/dist/config/__tests__/agent.test.js.map +1 -0
  77. package/dist/config/__tests__/interpolate.test.d.ts +2 -0
  78. package/dist/config/__tests__/interpolate.test.d.ts.map +1 -0
  79. package/dist/config/__tests__/interpolate.test.js +509 -0
  80. package/dist/config/__tests__/interpolate.test.js.map +1 -0
  81. package/dist/config/__tests__/loader.test.d.ts +2 -0
  82. package/dist/config/__tests__/loader.test.d.ts.map +1 -0
  83. package/dist/config/__tests__/loader.test.js +631 -0
  84. package/dist/config/__tests__/loader.test.js.map +1 -0
  85. package/dist/config/__tests__/merge.test.d.ts +2 -0
  86. package/dist/config/__tests__/merge.test.d.ts.map +1 -0
  87. package/dist/config/__tests__/merge.test.js +672 -0
  88. package/dist/config/__tests__/merge.test.js.map +1 -0
  89. package/dist/config/__tests__/parser.test.d.ts +2 -0
  90. package/dist/config/__tests__/parser.test.d.ts.map +1 -0
  91. package/dist/config/__tests__/parser.test.js +476 -0
  92. package/dist/config/__tests__/parser.test.js.map +1 -0
  93. package/dist/config/__tests__/schema.test.d.ts +2 -0
  94. package/dist/config/__tests__/schema.test.d.ts.map +1 -0
  95. package/dist/config/__tests__/schema.test.js +776 -0
  96. package/dist/config/__tests__/schema.test.js.map +1 -0
  97. package/dist/config/index.d.ts +11 -0
  98. package/dist/config/index.d.ts.map +1 -0
  99. package/dist/config/index.js +26 -0
  100. package/dist/config/index.js.map +1 -0
  101. package/dist/config/interpolate.d.ts +76 -0
  102. package/dist/config/interpolate.d.ts.map +1 -0
  103. package/dist/config/interpolate.js +143 -0
  104. package/dist/config/interpolate.js.map +1 -0
  105. package/dist/config/loader.d.ts +147 -0
  106. package/dist/config/loader.d.ts.map +1 -0
  107. package/dist/config/loader.js +336 -0
  108. package/dist/config/loader.js.map +1 -0
  109. package/dist/config/merge.d.ts +84 -0
  110. package/dist/config/merge.d.ts.map +1 -0
  111. package/dist/config/merge.js +138 -0
  112. package/dist/config/merge.js.map +1 -0
  113. package/dist/config/parser.d.ts +143 -0
  114. package/dist/config/parser.d.ts.map +1 -0
  115. package/dist/config/parser.js +316 -0
  116. package/dist/config/parser.js.map +1 -0
  117. package/dist/config/schema.d.ts +1906 -0
  118. package/dist/config/schema.d.ts.map +1 -0
  119. package/dist/config/schema.js +268 -0
  120. package/dist/config/schema.js.map +1 -0
  121. package/dist/fleet-manager/__tests__/coverage.test.d.ts +13 -0
  122. package/dist/fleet-manager/__tests__/coverage.test.d.ts.map +1 -0
  123. package/dist/fleet-manager/__tests__/coverage.test.js +2282 -0
  124. package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -0
  125. package/dist/fleet-manager/__tests__/errors.test.d.ts +7 -0
  126. package/dist/fleet-manager/__tests__/errors.test.d.ts.map +1 -0
  127. package/dist/fleet-manager/__tests__/errors.test.js +557 -0
  128. package/dist/fleet-manager/__tests__/errors.test.js.map +1 -0
  129. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +7 -0
  130. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +1 -0
  131. package/dist/fleet-manager/__tests__/event-helpers.test.js +368 -0
  132. package/dist/fleet-manager/__tests__/event-helpers.test.js.map +1 -0
  133. package/dist/fleet-manager/__tests__/integration.test.d.ts +11 -0
  134. package/dist/fleet-manager/__tests__/integration.test.d.ts.map +1 -0
  135. package/dist/fleet-manager/__tests__/integration.test.js +949 -0
  136. package/dist/fleet-manager/__tests__/integration.test.js.map +1 -0
  137. package/dist/fleet-manager/__tests__/job-control.test.d.ts +7 -0
  138. package/dist/fleet-manager/__tests__/job-control.test.d.ts.map +1 -0
  139. package/dist/fleet-manager/__tests__/job-control.test.js +215 -0
  140. package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -0
  141. package/dist/fleet-manager/__tests__/job-manager.test.d.ts +7 -0
  142. package/dist/fleet-manager/__tests__/job-manager.test.d.ts.map +1 -0
  143. package/dist/fleet-manager/__tests__/job-manager.test.js +659 -0
  144. package/dist/fleet-manager/__tests__/job-manager.test.js.map +1 -0
  145. package/dist/fleet-manager/__tests__/job-queue.test.d.ts +5 -0
  146. package/dist/fleet-manager/__tests__/job-queue.test.d.ts.map +1 -0
  147. package/dist/fleet-manager/__tests__/job-queue.test.js +315 -0
  148. package/dist/fleet-manager/__tests__/job-queue.test.js.map +1 -0
  149. package/dist/fleet-manager/__tests__/reload.test.d.ts +7 -0
  150. package/dist/fleet-manager/__tests__/reload.test.d.ts.map +1 -0
  151. package/dist/fleet-manager/__tests__/reload.test.js +609 -0
  152. package/dist/fleet-manager/__tests__/reload.test.js.map +1 -0
  153. package/dist/fleet-manager/__tests__/status-queries.test.d.ts +7 -0
  154. package/dist/fleet-manager/__tests__/status-queries.test.d.ts.map +1 -0
  155. package/dist/fleet-manager/__tests__/status-queries.test.js +488 -0
  156. package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -0
  157. package/dist/fleet-manager/__tests__/trigger.test.d.ts +7 -0
  158. package/dist/fleet-manager/__tests__/trigger.test.d.ts.map +1 -0
  159. package/dist/fleet-manager/__tests__/trigger.test.js +471 -0
  160. package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -0
  161. package/dist/fleet-manager/errors.d.ts +407 -0
  162. package/dist/fleet-manager/errors.d.ts.map +1 -0
  163. package/dist/fleet-manager/errors.js +569 -0
  164. package/dist/fleet-manager/errors.js.map +1 -0
  165. package/dist/fleet-manager/event-types.d.ts +302 -0
  166. package/dist/fleet-manager/event-types.d.ts.map +1 -0
  167. package/dist/fleet-manager/event-types.js +9 -0
  168. package/dist/fleet-manager/event-types.js.map +1 -0
  169. package/dist/fleet-manager/fleet-manager.d.ts +699 -0
  170. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -0
  171. package/dist/fleet-manager/fleet-manager.js +1906 -0
  172. package/dist/fleet-manager/fleet-manager.js.map +1 -0
  173. package/dist/fleet-manager/index.d.ts +17 -0
  174. package/dist/fleet-manager/index.d.ts.map +1 -0
  175. package/dist/fleet-manager/index.js +29 -0
  176. package/dist/fleet-manager/index.js.map +1 -0
  177. package/dist/fleet-manager/job-manager.d.ts +271 -0
  178. package/dist/fleet-manager/job-manager.d.ts.map +1 -0
  179. package/dist/fleet-manager/job-manager.js +443 -0
  180. package/dist/fleet-manager/job-manager.js.map +1 -0
  181. package/dist/fleet-manager/job-queue.d.ts +422 -0
  182. package/dist/fleet-manager/job-queue.d.ts.map +1 -0
  183. package/dist/fleet-manager/job-queue.js +448 -0
  184. package/dist/fleet-manager/job-queue.js.map +1 -0
  185. package/dist/fleet-manager/types.d.ts +680 -0
  186. package/dist/fleet-manager/types.d.ts.map +1 -0
  187. package/dist/fleet-manager/types.js +8 -0
  188. package/dist/fleet-manager/types.js.map +1 -0
  189. package/dist/index.d.ts +20 -0
  190. package/dist/index.d.ts.map +1 -0
  191. package/dist/index.js +26 -0
  192. package/dist/index.js.map +1 -0
  193. package/dist/runner/__tests__/errors.test.d.ts +2 -0
  194. package/dist/runner/__tests__/errors.test.d.ts.map +1 -0
  195. package/dist/runner/__tests__/errors.test.js +264 -0
  196. package/dist/runner/__tests__/errors.test.js.map +1 -0
  197. package/dist/runner/__tests__/job-executor.test.d.ts +2 -0
  198. package/dist/runner/__tests__/job-executor.test.d.ts.map +1 -0
  199. package/dist/runner/__tests__/job-executor.test.js +1345 -0
  200. package/dist/runner/__tests__/job-executor.test.js.map +1 -0
  201. package/dist/runner/__tests__/message-processor.test.d.ts +2 -0
  202. package/dist/runner/__tests__/message-processor.test.d.ts.map +1 -0
  203. package/dist/runner/__tests__/message-processor.test.js +768 -0
  204. package/dist/runner/__tests__/message-processor.test.js.map +1 -0
  205. package/dist/runner/__tests__/sdk-adapter.test.d.ts +2 -0
  206. package/dist/runner/__tests__/sdk-adapter.test.d.ts.map +1 -0
  207. package/dist/runner/__tests__/sdk-adapter.test.js +554 -0
  208. package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -0
  209. package/dist/runner/errors.d.ts +121 -0
  210. package/dist/runner/errors.d.ts.map +1 -0
  211. package/dist/runner/errors.js +212 -0
  212. package/dist/runner/errors.js.map +1 -0
  213. package/dist/runner/index.d.ts +12 -0
  214. package/dist/runner/index.d.ts.map +1 -0
  215. package/dist/runner/index.js +15 -0
  216. package/dist/runner/index.js.map +1 -0
  217. package/dist/runner/job-executor.d.ts +98 -0
  218. package/dist/runner/job-executor.d.ts.map +1 -0
  219. package/dist/runner/job-executor.js +333 -0
  220. package/dist/runner/job-executor.js.map +1 -0
  221. package/dist/runner/message-processor.d.ts +45 -0
  222. package/dist/runner/message-processor.d.ts.map +1 -0
  223. package/dist/runner/message-processor.js +294 -0
  224. package/dist/runner/message-processor.js.map +1 -0
  225. package/dist/runner/sdk-adapter.d.ts +60 -0
  226. package/dist/runner/sdk-adapter.d.ts.map +1 -0
  227. package/dist/runner/sdk-adapter.js +138 -0
  228. package/dist/runner/sdk-adapter.js.map +1 -0
  229. package/dist/runner/types.d.ts +135 -0
  230. package/dist/runner/types.d.ts.map +1 -0
  231. package/dist/runner/types.js +7 -0
  232. package/dist/runner/types.js.map +1 -0
  233. package/dist/scheduler/__tests__/errors.test.d.ts +2 -0
  234. package/dist/scheduler/__tests__/errors.test.d.ts.map +1 -0
  235. package/dist/scheduler/__tests__/errors.test.js +101 -0
  236. package/dist/scheduler/__tests__/errors.test.js.map +1 -0
  237. package/dist/scheduler/__tests__/interval.test.d.ts +2 -0
  238. package/dist/scheduler/__tests__/interval.test.d.ts.map +1 -0
  239. package/dist/scheduler/__tests__/interval.test.js +419 -0
  240. package/dist/scheduler/__tests__/interval.test.js.map +1 -0
  241. package/dist/scheduler/__tests__/schedule-runner.test.d.ts +2 -0
  242. package/dist/scheduler/__tests__/schedule-runner.test.d.ts.map +1 -0
  243. package/dist/scheduler/__tests__/schedule-runner.test.js +634 -0
  244. package/dist/scheduler/__tests__/schedule-runner.test.js.map +1 -0
  245. package/dist/scheduler/__tests__/schedule-state.test.d.ts +2 -0
  246. package/dist/scheduler/__tests__/schedule-state.test.d.ts.map +1 -0
  247. package/dist/scheduler/__tests__/schedule-state.test.js +572 -0
  248. package/dist/scheduler/__tests__/schedule-state.test.js.map +1 -0
  249. package/dist/scheduler/__tests__/scheduler.test.d.ts +2 -0
  250. package/dist/scheduler/__tests__/scheduler.test.d.ts.map +1 -0
  251. package/dist/scheduler/__tests__/scheduler.test.js +987 -0
  252. package/dist/scheduler/__tests__/scheduler.test.js.map +1 -0
  253. package/dist/scheduler/errors.d.ts +61 -0
  254. package/dist/scheduler/errors.d.ts.map +1 -0
  255. package/dist/scheduler/errors.js +81 -0
  256. package/dist/scheduler/errors.js.map +1 -0
  257. package/dist/scheduler/index.d.ts +13 -0
  258. package/dist/scheduler/index.d.ts.map +1 -0
  259. package/dist/scheduler/index.js +17 -0
  260. package/dist/scheduler/index.js.map +1 -0
  261. package/dist/scheduler/interval.d.ts +64 -0
  262. package/dist/scheduler/interval.d.ts.map +1 -0
  263. package/dist/scheduler/interval.js +139 -0
  264. package/dist/scheduler/interval.js.map +1 -0
  265. package/dist/scheduler/schedule-runner.d.ts +149 -0
  266. package/dist/scheduler/schedule-runner.d.ts.map +1 -0
  267. package/dist/scheduler/schedule-runner.js +277 -0
  268. package/dist/scheduler/schedule-runner.js.map +1 -0
  269. package/dist/scheduler/schedule-state.d.ts +105 -0
  270. package/dist/scheduler/schedule-state.d.ts.map +1 -0
  271. package/dist/scheduler/schedule-state.js +151 -0
  272. package/dist/scheduler/schedule-state.js.map +1 -0
  273. package/dist/scheduler/scheduler.d.ts +138 -0
  274. package/dist/scheduler/scheduler.d.ts.map +1 -0
  275. package/dist/scheduler/scheduler.js +423 -0
  276. package/dist/scheduler/scheduler.js.map +1 -0
  277. package/dist/scheduler/types.d.ts +160 -0
  278. package/dist/scheduler/types.d.ts.map +1 -0
  279. package/dist/scheduler/types.js +8 -0
  280. package/dist/scheduler/types.js.map +1 -0
  281. package/dist/state/__tests__/directory.test.d.ts +2 -0
  282. package/dist/state/__tests__/directory.test.d.ts.map +1 -0
  283. package/dist/state/__tests__/directory.test.js +414 -0
  284. package/dist/state/__tests__/directory.test.js.map +1 -0
  285. package/dist/state/__tests__/fleet-state.test.d.ts +2 -0
  286. package/dist/state/__tests__/fleet-state.test.d.ts.map +1 -0
  287. package/dist/state/__tests__/fleet-state.test.js +696 -0
  288. package/dist/state/__tests__/fleet-state.test.js.map +1 -0
  289. package/dist/state/__tests__/job-metadata-schema.test.d.ts +2 -0
  290. package/dist/state/__tests__/job-metadata-schema.test.d.ts.map +1 -0
  291. package/dist/state/__tests__/job-metadata-schema.test.js +329 -0
  292. package/dist/state/__tests__/job-metadata-schema.test.js.map +1 -0
  293. package/dist/state/__tests__/job-metadata.test.d.ts +2 -0
  294. package/dist/state/__tests__/job-metadata.test.d.ts.map +1 -0
  295. package/dist/state/__tests__/job-metadata.test.js +667 -0
  296. package/dist/state/__tests__/job-metadata.test.js.map +1 -0
  297. package/dist/state/__tests__/job-output.test.d.ts +2 -0
  298. package/dist/state/__tests__/job-output.test.d.ts.map +1 -0
  299. package/dist/state/__tests__/job-output.test.js +672 -0
  300. package/dist/state/__tests__/job-output.test.js.map +1 -0
  301. package/dist/state/__tests__/session-schema.test.d.ts +2 -0
  302. package/dist/state/__tests__/session-schema.test.d.ts.map +1 -0
  303. package/dist/state/__tests__/session-schema.test.js +323 -0
  304. package/dist/state/__tests__/session-schema.test.js.map +1 -0
  305. package/dist/state/__tests__/session.test.d.ts +2 -0
  306. package/dist/state/__tests__/session.test.d.ts.map +1 -0
  307. package/dist/state/__tests__/session.test.js +468 -0
  308. package/dist/state/__tests__/session.test.js.map +1 -0
  309. package/dist/state/directory.d.ts +42 -0
  310. package/dist/state/directory.d.ts.map +1 -0
  311. package/dist/state/directory.js +170 -0
  312. package/dist/state/directory.js.map +1 -0
  313. package/dist/state/errors.d.ts +44 -0
  314. package/dist/state/errors.d.ts.map +1 -0
  315. package/dist/state/errors.js +82 -0
  316. package/dist/state/errors.js.map +1 -0
  317. package/dist/state/fleet-state.d.ts +126 -0
  318. package/dist/state/fleet-state.d.ts.map +1 -0
  319. package/dist/state/fleet-state.js +196 -0
  320. package/dist/state/fleet-state.js.map +1 -0
  321. package/dist/state/index.d.ts +21 -0
  322. package/dist/state/index.d.ts.map +1 -0
  323. package/dist/state/index.js +30 -0
  324. package/dist/state/index.js.map +1 -0
  325. package/dist/state/job-metadata.d.ts +151 -0
  326. package/dist/state/job-metadata.d.ts.map +1 -0
  327. package/dist/state/job-metadata.js +287 -0
  328. package/dist/state/job-metadata.js.map +1 -0
  329. package/dist/state/job-output.d.ts +116 -0
  330. package/dist/state/job-output.d.ts.map +1 -0
  331. package/dist/state/job-output.js +218 -0
  332. package/dist/state/job-output.js.map +1 -0
  333. package/dist/state/schemas/__tests__/job-output.test.d.ts +2 -0
  334. package/dist/state/schemas/__tests__/job-output.test.d.ts.map +1 -0
  335. package/dist/state/schemas/__tests__/job-output.test.js +279 -0
  336. package/dist/state/schemas/__tests__/job-output.test.js.map +1 -0
  337. package/dist/state/schemas/fleet-state.d.ts +249 -0
  338. package/dist/state/schemas/fleet-state.d.ts.map +1 -0
  339. package/dist/state/schemas/fleet-state.js +97 -0
  340. package/dist/state/schemas/fleet-state.js.map +1 -0
  341. package/dist/state/schemas/index.d.ts +10 -0
  342. package/dist/state/schemas/index.d.ts.map +1 -0
  343. package/dist/state/schemas/index.js +10 -0
  344. package/dist/state/schemas/index.js.map +1 -0
  345. package/dist/state/schemas/job-metadata.d.ts +118 -0
  346. package/dist/state/schemas/job-metadata.d.ts.map +1 -0
  347. package/dist/state/schemas/job-metadata.js +123 -0
  348. package/dist/state/schemas/job-metadata.js.map +1 -0
  349. package/dist/state/schemas/job-output.d.ts +291 -0
  350. package/dist/state/schemas/job-output.d.ts.map +1 -0
  351. package/dist/state/schemas/job-output.js +132 -0
  352. package/dist/state/schemas/job-output.js.map +1 -0
  353. package/dist/state/schemas/session-info.d.ts +65 -0
  354. package/dist/state/schemas/session-info.d.ts.map +1 -0
  355. package/dist/state/schemas/session-info.js +58 -0
  356. package/dist/state/schemas/session-info.js.map +1 -0
  357. package/dist/state/session.d.ts +92 -0
  358. package/dist/state/session.d.ts.map +1 -0
  359. package/dist/state/session.js +173 -0
  360. package/dist/state/session.js.map +1 -0
  361. package/dist/state/types.d.ts +54 -0
  362. package/dist/state/types.d.ts.map +1 -0
  363. package/dist/state/types.js +18 -0
  364. package/dist/state/types.js.map +1 -0
  365. package/dist/state/utils/__tests__/atomic.test.d.ts +2 -0
  366. package/dist/state/utils/__tests__/atomic.test.d.ts.map +1 -0
  367. package/dist/state/utils/__tests__/atomic.test.js +537 -0
  368. package/dist/state/utils/__tests__/atomic.test.js.map +1 -0
  369. package/dist/state/utils/__tests__/reads.test.d.ts +2 -0
  370. package/dist/state/utils/__tests__/reads.test.d.ts.map +1 -0
  371. package/dist/state/utils/__tests__/reads.test.js +792 -0
  372. package/dist/state/utils/__tests__/reads.test.js.map +1 -0
  373. package/dist/state/utils/atomic.d.ts +89 -0
  374. package/dist/state/utils/atomic.d.ts.map +1 -0
  375. package/dist/state/utils/atomic.js +157 -0
  376. package/dist/state/utils/atomic.js.map +1 -0
  377. package/dist/state/utils/index.d.ts +6 -0
  378. package/dist/state/utils/index.d.ts.map +1 -0
  379. package/dist/state/utils/index.js +6 -0
  380. package/dist/state/utils/index.js.map +1 -0
  381. package/dist/state/utils/reads.d.ts +196 -0
  382. package/dist/state/utils/reads.d.ts.map +1 -0
  383. package/dist/state/utils/reads.js +346 -0
  384. package/dist/state/utils/reads.js.map +1 -0
  385. package/dist/work-sources/__tests__/github.test.d.ts +2 -0
  386. package/dist/work-sources/__tests__/github.test.d.ts.map +1 -0
  387. package/dist/work-sources/__tests__/github.test.js +1334 -0
  388. package/dist/work-sources/__tests__/github.test.js.map +1 -0
  389. package/dist/work-sources/__tests__/manager.test.d.ts +2 -0
  390. package/dist/work-sources/__tests__/manager.test.d.ts.map +1 -0
  391. package/dist/work-sources/__tests__/manager.test.js +424 -0
  392. package/dist/work-sources/__tests__/manager.test.js.map +1 -0
  393. package/dist/work-sources/__tests__/registry.test.d.ts +2 -0
  394. package/dist/work-sources/__tests__/registry.test.d.ts.map +1 -0
  395. package/dist/work-sources/__tests__/registry.test.js +381 -0
  396. package/dist/work-sources/__tests__/registry.test.js.map +1 -0
  397. package/dist/work-sources/__tests__/types.test.d.ts +2 -0
  398. package/dist/work-sources/__tests__/types.test.d.ts.map +1 -0
  399. package/dist/work-sources/__tests__/types.test.js +406 -0
  400. package/dist/work-sources/__tests__/types.test.js.map +1 -0
  401. package/dist/work-sources/adapters/github.d.ts +290 -0
  402. package/dist/work-sources/adapters/github.d.ts.map +1 -0
  403. package/dist/work-sources/adapters/github.js +803 -0
  404. package/dist/work-sources/adapters/github.js.map +1 -0
  405. package/dist/work-sources/adapters/index.d.ts +10 -0
  406. package/dist/work-sources/adapters/index.d.ts.map +1 -0
  407. package/dist/work-sources/adapters/index.js +31 -0
  408. package/dist/work-sources/adapters/index.js.map +1 -0
  409. package/dist/work-sources/errors.d.ts +40 -0
  410. package/dist/work-sources/errors.d.ts.map +1 -0
  411. package/dist/work-sources/errors.js +54 -0
  412. package/dist/work-sources/errors.js.map +1 -0
  413. package/dist/work-sources/index.d.ts +105 -0
  414. package/dist/work-sources/index.d.ts.map +1 -0
  415. package/dist/work-sources/index.js +24 -0
  416. package/dist/work-sources/index.js.map +1 -0
  417. package/dist/work-sources/manager.d.ts +370 -0
  418. package/dist/work-sources/manager.d.ts.map +1 -0
  419. package/dist/work-sources/manager.js +61 -0
  420. package/dist/work-sources/manager.js.map +1 -0
  421. package/dist/work-sources/registry.d.ts +128 -0
  422. package/dist/work-sources/registry.d.ts.map +1 -0
  423. package/dist/work-sources/registry.js +132 -0
  424. package/dist/work-sources/registry.js.map +1 -0
  425. package/dist/work-sources/types.d.ts +127 -0
  426. package/dist/work-sources/types.d.ts.map +1 -0
  427. package/dist/work-sources/types.js +8 -0
  428. package/dist/work-sources/types.js.map +1 -0
  429. package/package.json +23 -0
  430. package/src/config/__tests__/agent.test.ts +864 -0
  431. package/src/config/__tests__/interpolate.test.ts +644 -0
  432. package/src/config/__tests__/loader.test.ts +784 -0
  433. package/src/config/__tests__/merge.test.ts +751 -0
  434. package/src/config/__tests__/parser.test.ts +533 -0
  435. package/src/config/__tests__/schema.test.ts +873 -0
  436. package/src/config/index.ts +119 -0
  437. package/src/config/interpolate.ts +189 -0
  438. package/src/config/loader.ts +472 -0
  439. package/src/config/merge.ts +246 -0
  440. package/src/config/parser.ts +376 -0
  441. package/src/config/schema.ts +346 -0
  442. package/src/fleet-manager/__tests__/coverage.test.ts +2869 -0
  443. package/src/fleet-manager/__tests__/errors.test.ts +660 -0
  444. package/src/fleet-manager/__tests__/event-helpers.test.ts +448 -0
  445. package/src/fleet-manager/__tests__/integration.test.ts +1209 -0
  446. package/src/fleet-manager/__tests__/job-control.test.ts +283 -0
  447. package/src/fleet-manager/__tests__/job-manager.test.ts +869 -0
  448. package/src/fleet-manager/__tests__/job-queue.test.ts +401 -0
  449. package/src/fleet-manager/__tests__/reload.test.ts +751 -0
  450. package/src/fleet-manager/__tests__/status-queries.test.ts +595 -0
  451. package/src/fleet-manager/__tests__/trigger.test.ts +601 -0
  452. package/src/fleet-manager/errors.ts +747 -0
  453. package/src/fleet-manager/event-types.ts +378 -0
  454. package/src/fleet-manager/fleet-manager.ts +2315 -0
  455. package/src/fleet-manager/index.ts +128 -0
  456. package/src/fleet-manager/job-manager.ts +663 -0
  457. package/src/fleet-manager/job-queue.ts +798 -0
  458. package/src/fleet-manager/types.ts +839 -0
  459. package/src/index.ts +32 -0
  460. package/src/runner/__tests__/errors.test.ts +382 -0
  461. package/src/runner/__tests__/job-executor.test.ts +1708 -0
  462. package/src/runner/__tests__/message-processor.test.ts +960 -0
  463. package/src/runner/__tests__/sdk-adapter.test.ts +626 -0
  464. package/src/runner/errors.ts +307 -0
  465. package/src/runner/index.ts +57 -0
  466. package/src/runner/job-executor.ts +448 -0
  467. package/src/runner/message-processor.ts +355 -0
  468. package/src/runner/sdk-adapter.ts +191 -0
  469. package/src/runner/types.ts +158 -0
  470. package/src/scheduler/__tests__/errors.test.ts +159 -0
  471. package/src/scheduler/__tests__/interval.test.ts +515 -0
  472. package/src/scheduler/__tests__/schedule-runner.test.ts +798 -0
  473. package/src/scheduler/__tests__/schedule-state.test.ts +671 -0
  474. package/src/scheduler/__tests__/scheduler.test.ts +1280 -0
  475. package/src/scheduler/errors.ts +101 -0
  476. package/src/scheduler/index.ts +53 -0
  477. package/src/scheduler/interval.ts +189 -0
  478. package/src/scheduler/schedule-runner.ts +442 -0
  479. package/src/scheduler/schedule-state.ts +211 -0
  480. package/src/scheduler/scheduler.ts +570 -0
  481. package/src/scheduler/types.ts +216 -0
  482. package/src/state/__tests__/directory.test.ts +595 -0
  483. package/src/state/__tests__/fleet-state.test.ts +868 -0
  484. package/src/state/__tests__/job-metadata-schema.test.ts +414 -0
  485. package/src/state/__tests__/job-metadata.test.ts +831 -0
  486. package/src/state/__tests__/job-output.test.ts +856 -0
  487. package/src/state/__tests__/session-schema.test.ts +378 -0
  488. package/src/state/__tests__/session.test.ts +604 -0
  489. package/src/state/directory.ts +217 -0
  490. package/src/state/errors.ts +97 -0
  491. package/src/state/fleet-state.ts +284 -0
  492. package/src/state/index.ts +79 -0
  493. package/src/state/job-metadata.ts +445 -0
  494. package/src/state/job-output.ts +316 -0
  495. package/src/state/schemas/__tests__/job-output.test.ts +338 -0
  496. package/src/state/schemas/fleet-state.ts +120 -0
  497. package/src/state/schemas/index.ts +67 -0
  498. package/src/state/schemas/job-metadata.ts +181 -0
  499. package/src/state/schemas/job-output.ts +177 -0
  500. package/src/state/schemas/session-info.ts +92 -0
  501. package/src/state/session.ts +253 -0
  502. package/src/state/types.ts +59 -0
  503. package/src/state/utils/__tests__/atomic.test.ts +723 -0
  504. package/src/state/utils/__tests__/reads.test.ts +1071 -0
  505. package/src/state/utils/atomic.ts +221 -0
  506. package/src/state/utils/index.ts +6 -0
  507. package/src/state/utils/reads.ts +512 -0
  508. package/src/work-sources/__tests__/github.test.ts +1800 -0
  509. package/src/work-sources/__tests__/manager.test.ts +529 -0
  510. package/src/work-sources/__tests__/registry.test.ts +477 -0
  511. package/src/work-sources/__tests__/types.test.ts +479 -0
  512. package/src/work-sources/adapters/github.ts +1166 -0
  513. package/src/work-sources/adapters/index.ts +64 -0
  514. package/src/work-sources/errors.ts +71 -0
  515. package/src/work-sources/index.ts +148 -0
  516. package/src/work-sources/manager.ts +413 -0
  517. package/src/work-sources/registry.ts +178 -0
  518. package/src/work-sources/types.ts +161 -0
  519. package/tsconfig.json +9 -0
  520. package/vitest.config.ts +19 -0
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Zod schemas for fleet state (state.yaml)
3
+ *
4
+ * Defines the schema for tracking fleet-wide state including agent status
5
+ */
6
+ import { z } from "zod";
7
+ /**
8
+ * Possible states for a schedule
9
+ */
10
+ export declare const ScheduleStatusSchema: z.ZodEnum<["idle", "running", "disabled"]>;
11
+ /**
12
+ * State information for a single schedule
13
+ */
14
+ export declare const ScheduleStateSchema: z.ZodObject<{
15
+ /** ISO timestamp of when this schedule last ran */
16
+ last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
+ /** ISO timestamp of when this schedule will next run */
18
+ next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
+ /** Current status of the schedule */
20
+ status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
21
+ /** Last error message if the schedule encountered an error */
22
+ last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ status: "idle" | "running" | "disabled";
25
+ last_run_at?: string | null | undefined;
26
+ next_run_at?: string | null | undefined;
27
+ last_error?: string | null | undefined;
28
+ }, {
29
+ status?: "idle" | "running" | "disabled" | undefined;
30
+ last_run_at?: string | null | undefined;
31
+ next_run_at?: string | null | undefined;
32
+ last_error?: string | null | undefined;
33
+ }>;
34
+ /**
35
+ * Possible states for an agent
36
+ */
37
+ export declare const AgentStatusSchema: z.ZodEnum<["idle", "running", "error"]>;
38
+ /**
39
+ * State information for a single agent
40
+ */
41
+ export declare const AgentStateSchema: z.ZodObject<{
42
+ /** Current status of the agent */
43
+ status: z.ZodDefault<z.ZodEnum<["idle", "running", "error"]>>;
44
+ /** ID of the currently running job, if any */
45
+ current_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
+ /** ID of the last completed job */
47
+ last_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ /** Name of the schedule that will trigger the next run */
49
+ next_schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ /** ISO timestamp of when the next scheduled run will occur */
51
+ next_trigger_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ /** Docker container ID if running in container */
53
+ container_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ /** Error message if status is 'error' */
55
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ /** Map of schedule names to their state */
57
+ schedules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
58
+ /** ISO timestamp of when this schedule last ran */
59
+ last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
+ /** ISO timestamp of when this schedule will next run */
61
+ next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
62
+ /** Current status of the schedule */
63
+ status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
64
+ /** Last error message if the schedule encountered an error */
65
+ last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ status: "idle" | "running" | "disabled";
68
+ last_run_at?: string | null | undefined;
69
+ next_run_at?: string | null | undefined;
70
+ last_error?: string | null | undefined;
71
+ }, {
72
+ status?: "idle" | "running" | "disabled" | undefined;
73
+ last_run_at?: string | null | undefined;
74
+ next_run_at?: string | null | undefined;
75
+ last_error?: string | null | undefined;
76
+ }>>>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ status: "error" | "idle" | "running";
79
+ schedules?: Record<string, {
80
+ status: "idle" | "running" | "disabled";
81
+ last_run_at?: string | null | undefined;
82
+ next_run_at?: string | null | undefined;
83
+ last_error?: string | null | undefined;
84
+ }> | undefined;
85
+ current_job?: string | null | undefined;
86
+ last_job?: string | null | undefined;
87
+ next_schedule?: string | null | undefined;
88
+ next_trigger_at?: string | null | undefined;
89
+ container_id?: string | null | undefined;
90
+ error_message?: string | null | undefined;
91
+ }, {
92
+ status?: "error" | "idle" | "running" | undefined;
93
+ schedules?: Record<string, {
94
+ status?: "idle" | "running" | "disabled" | undefined;
95
+ last_run_at?: string | null | undefined;
96
+ next_run_at?: string | null | undefined;
97
+ last_error?: string | null | undefined;
98
+ }> | undefined;
99
+ current_job?: string | null | undefined;
100
+ last_job?: string | null | undefined;
101
+ next_schedule?: string | null | undefined;
102
+ next_trigger_at?: string | null | undefined;
103
+ container_id?: string | null | undefined;
104
+ error_message?: string | null | undefined;
105
+ }>;
106
+ /**
107
+ * Fleet metadata stored in state.yaml
108
+ */
109
+ export declare const FleetMetadataSchema: z.ZodObject<{
110
+ /** ISO timestamp of when the fleet was first started */
111
+ started_at: z.ZodOptional<z.ZodString>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ started_at?: string | undefined;
114
+ }, {
115
+ started_at?: string | undefined;
116
+ }>;
117
+ /**
118
+ * Top-level fleet state schema (state.yaml)
119
+ */
120
+ export declare const FleetStateSchema: z.ZodObject<{
121
+ /** Fleet metadata */
122
+ fleet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
123
+ /** ISO timestamp of when the fleet was first started */
124
+ started_at: z.ZodOptional<z.ZodString>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ started_at?: string | undefined;
127
+ }, {
128
+ started_at?: string | undefined;
129
+ }>>>;
130
+ /** Map of agent names to their current state */
131
+ agents: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
132
+ /** Current status of the agent */
133
+ status: z.ZodDefault<z.ZodEnum<["idle", "running", "error"]>>;
134
+ /** ID of the currently running job, if any */
135
+ current_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
136
+ /** ID of the last completed job */
137
+ last_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
138
+ /** Name of the schedule that will trigger the next run */
139
+ next_schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
140
+ /** ISO timestamp of when the next scheduled run will occur */
141
+ next_trigger_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
+ /** Docker container ID if running in container */
143
+ container_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
144
+ /** Error message if status is 'error' */
145
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
146
+ /** Map of schedule names to their state */
147
+ schedules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
148
+ /** ISO timestamp of when this schedule last ran */
149
+ last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
150
+ /** ISO timestamp of when this schedule will next run */
151
+ next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ /** Current status of the schedule */
153
+ status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
154
+ /** Last error message if the schedule encountered an error */
155
+ last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ status: "idle" | "running" | "disabled";
158
+ last_run_at?: string | null | undefined;
159
+ next_run_at?: string | null | undefined;
160
+ last_error?: string | null | undefined;
161
+ }, {
162
+ status?: "idle" | "running" | "disabled" | undefined;
163
+ last_run_at?: string | null | undefined;
164
+ next_run_at?: string | null | undefined;
165
+ last_error?: string | null | undefined;
166
+ }>>>;
167
+ }, "strip", z.ZodTypeAny, {
168
+ status: "error" | "idle" | "running";
169
+ schedules?: Record<string, {
170
+ status: "idle" | "running" | "disabled";
171
+ last_run_at?: string | null | undefined;
172
+ next_run_at?: string | null | undefined;
173
+ last_error?: string | null | undefined;
174
+ }> | undefined;
175
+ current_job?: string | null | undefined;
176
+ last_job?: string | null | undefined;
177
+ next_schedule?: string | null | undefined;
178
+ next_trigger_at?: string | null | undefined;
179
+ container_id?: string | null | undefined;
180
+ error_message?: string | null | undefined;
181
+ }, {
182
+ status?: "error" | "idle" | "running" | undefined;
183
+ schedules?: Record<string, {
184
+ status?: "idle" | "running" | "disabled" | undefined;
185
+ last_run_at?: string | null | undefined;
186
+ next_run_at?: string | null | undefined;
187
+ last_error?: string | null | undefined;
188
+ }> | undefined;
189
+ current_job?: string | null | undefined;
190
+ last_job?: string | null | undefined;
191
+ next_schedule?: string | null | undefined;
192
+ next_trigger_at?: string | null | undefined;
193
+ container_id?: string | null | undefined;
194
+ error_message?: string | null | undefined;
195
+ }>>>>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ fleet: {
198
+ started_at?: string | undefined;
199
+ };
200
+ agents: Record<string, {
201
+ status: "error" | "idle" | "running";
202
+ schedules?: Record<string, {
203
+ status: "idle" | "running" | "disabled";
204
+ last_run_at?: string | null | undefined;
205
+ next_run_at?: string | null | undefined;
206
+ last_error?: string | null | undefined;
207
+ }> | undefined;
208
+ current_job?: string | null | undefined;
209
+ last_job?: string | null | undefined;
210
+ next_schedule?: string | null | undefined;
211
+ next_trigger_at?: string | null | undefined;
212
+ container_id?: string | null | undefined;
213
+ error_message?: string | null | undefined;
214
+ }>;
215
+ }, {
216
+ fleet?: {
217
+ started_at?: string | undefined;
218
+ } | undefined;
219
+ agents?: Record<string, {
220
+ status?: "error" | "idle" | "running" | undefined;
221
+ schedules?: Record<string, {
222
+ status?: "idle" | "running" | "disabled" | undefined;
223
+ last_run_at?: string | null | undefined;
224
+ next_run_at?: string | null | undefined;
225
+ last_error?: string | null | undefined;
226
+ }> | undefined;
227
+ current_job?: string | null | undefined;
228
+ last_job?: string | null | undefined;
229
+ next_schedule?: string | null | undefined;
230
+ next_trigger_at?: string | null | undefined;
231
+ container_id?: string | null | undefined;
232
+ error_message?: string | null | undefined;
233
+ }> | undefined;
234
+ }>;
235
+ export type ScheduleStatus = z.infer<typeof ScheduleStatusSchema>;
236
+ export type ScheduleState = z.infer<typeof ScheduleStateSchema>;
237
+ export type AgentStatus = z.infer<typeof AgentStatusSchema>;
238
+ export type AgentState = z.infer<typeof AgentStateSchema>;
239
+ export type FleetMetadata = z.infer<typeof FleetMetadataSchema>;
240
+ export type FleetState = z.infer<typeof FleetStateSchema>;
241
+ /**
242
+ * Create a new empty fleet state
243
+ */
244
+ export declare function createInitialFleetState(): FleetState;
245
+ /**
246
+ * Create a default schedule state
247
+ */
248
+ export declare function createDefaultScheduleState(): ScheduleState;
249
+ //# sourceMappingURL=fleet-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-state.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/fleet-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,eAAO,MAAM,oBAAoB,4CAA0C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mDAAmD;;IAEnD,wDAAwD;;IAExD,qCAAqC;;IAErC,8DAA8D;;;;;;;;;;;;EAE9D,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,iBAAiB,yCAAuC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,kCAAkC;;IAElC,8CAA8C;;IAE9C,mCAAmC;;IAEnC,0DAA0D;;IAE1D,8DAA8D;;IAE9D,kDAAkD;;IAElD,yCAAyC;;IAEzC,2CAA2C;;QArC3C,mDAAmD;;QAEnD,wDAAwD;;QAExD,qCAAqC;;QAErC,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC9D,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,wDAAwD;;;;;;EAExD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qBAAqB;;QARrB,wDAAwD;;;;;;;IAUxD,gDAAgD;;QApChD,kCAAkC;;QAElC,8CAA8C;;QAE9C,mCAAmC;;QAEnC,0DAA0D;;QAE1D,8DAA8D;;QAE9D,kDAAkD;;QAElD,yCAAyC;;QAEzC,2CAA2C;;YArC3C,mDAAmD;;YAEnD,wDAAwD;;YAExD,qCAAqC;;YAErC,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD9D,CAAC;AAMH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,UAAU,CAKpD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,CAO1D"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Zod schemas for fleet state (state.yaml)
3
+ *
4
+ * Defines the schema for tracking fleet-wide state including agent status
5
+ */
6
+ import { z } from "zod";
7
+ // =============================================================================
8
+ // Schedule State Schemas
9
+ // =============================================================================
10
+ /**
11
+ * Possible states for a schedule
12
+ */
13
+ export const ScheduleStatusSchema = z.enum(["idle", "running", "disabled"]);
14
+ /**
15
+ * State information for a single schedule
16
+ */
17
+ export const ScheduleStateSchema = z.object({
18
+ /** ISO timestamp of when this schedule last ran */
19
+ last_run_at: z.string().nullable().optional(),
20
+ /** ISO timestamp of when this schedule will next run */
21
+ next_run_at: z.string().nullable().optional(),
22
+ /** Current status of the schedule */
23
+ status: ScheduleStatusSchema.default("idle"),
24
+ /** Last error message if the schedule encountered an error */
25
+ last_error: z.string().nullable().optional(),
26
+ });
27
+ // =============================================================================
28
+ // Agent Status Schemas
29
+ // =============================================================================
30
+ /**
31
+ * Possible states for an agent
32
+ */
33
+ export const AgentStatusSchema = z.enum(["idle", "running", "error"]);
34
+ /**
35
+ * State information for a single agent
36
+ */
37
+ export const AgentStateSchema = z.object({
38
+ /** Current status of the agent */
39
+ status: AgentStatusSchema.default("idle"),
40
+ /** ID of the currently running job, if any */
41
+ current_job: z.string().nullable().optional(),
42
+ /** ID of the last completed job */
43
+ last_job: z.string().nullable().optional(),
44
+ /** Name of the schedule that will trigger the next run */
45
+ next_schedule: z.string().nullable().optional(),
46
+ /** ISO timestamp of when the next scheduled run will occur */
47
+ next_trigger_at: z.string().nullable().optional(),
48
+ /** Docker container ID if running in container */
49
+ container_id: z.string().nullable().optional(),
50
+ /** Error message if status is 'error' */
51
+ error_message: z.string().nullable().optional(),
52
+ /** Map of schedule names to their state */
53
+ schedules: z.record(z.string(), ScheduleStateSchema).optional(),
54
+ });
55
+ // =============================================================================
56
+ // Fleet State Schemas
57
+ // =============================================================================
58
+ /**
59
+ * Fleet metadata stored in state.yaml
60
+ */
61
+ export const FleetMetadataSchema = z.object({
62
+ /** ISO timestamp of when the fleet was first started */
63
+ started_at: z.string().optional(),
64
+ });
65
+ /**
66
+ * Top-level fleet state schema (state.yaml)
67
+ */
68
+ export const FleetStateSchema = z.object({
69
+ /** Fleet metadata */
70
+ fleet: FleetMetadataSchema.optional().default({}),
71
+ /** Map of agent names to their current state */
72
+ agents: z.record(z.string(), AgentStateSchema).optional().default({}),
73
+ });
74
+ // =============================================================================
75
+ // Default State
76
+ // =============================================================================
77
+ /**
78
+ * Create a new empty fleet state
79
+ */
80
+ export function createInitialFleetState() {
81
+ return {
82
+ fleet: {},
83
+ agents: {},
84
+ };
85
+ }
86
+ /**
87
+ * Create a default schedule state
88
+ */
89
+ export function createDefaultScheduleState() {
90
+ return {
91
+ last_run_at: null,
92
+ next_run_at: null,
93
+ status: "idle",
94
+ last_error: null,
95
+ };
96
+ }
97
+ //# sourceMappingURL=fleet-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-state.js","sourceRoot":"","sources":["../../../src/state/schemas/fleet-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * State management schemas
3
+ *
4
+ * Re-exports all Zod schemas for state management
5
+ */
6
+ export { ScheduleStatusSchema, ScheduleStateSchema, AgentStatusSchema, AgentStateSchema, FleetMetadataSchema, FleetStateSchema, createInitialFleetState, createDefaultScheduleState, type ScheduleStatus, type ScheduleState, type AgentStatus, type AgentState, type FleetMetadata, type FleetState, } from "./fleet-state.js";
7
+ export { JobStatusSchema, TriggerTypeSchema, ExitReasonSchema, JobMetadataSchema, generateJobId, createJobMetadata, type JobStatus, type TriggerType, type ExitReason, type JobMetadata, type CreateJobOptions, } from "./job-metadata.js";
8
+ export { JobOutputTypeSchema, JobOutputBaseSchema, SystemMessageSchema, AssistantMessageSchema, ToolUseMessageSchema, ToolResultMessageSchema, ErrorMessageSchema, JobOutputMessageSchema, validateJobOutputMessage, isValidJobOutputInput, type JobOutputType, type JobOutputBase, type SystemMessage, type AssistantMessage, type ToolUseMessage, type ToolResultMessage, type ErrorMessage, type JobOutputMessage, type JobOutputInput, } from "./job-output.js";
9
+ export { SessionModeSchema, SessionInfoSchema, createSessionInfo, type SessionMode, type SessionInfo, type CreateSessionOptions, } from "./session-info.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * State management schemas
3
+ *
4
+ * Re-exports all Zod schemas for state management
5
+ */
6
+ export { ScheduleStatusSchema, ScheduleStateSchema, AgentStatusSchema, AgentStateSchema, FleetMetadataSchema, FleetStateSchema, createInitialFleetState, createDefaultScheduleState, } from "./fleet-state.js";
7
+ export { JobStatusSchema, TriggerTypeSchema, ExitReasonSchema, JobMetadataSchema, generateJobId, createJobMetadata, } from "./job-metadata.js";
8
+ export { JobOutputTypeSchema, JobOutputBaseSchema, SystemMessageSchema, AssistantMessageSchema, ToolUseMessageSchema, ToolResultMessageSchema, ErrorMessageSchema, JobOutputMessageSchema, validateJobOutputMessage, isValidJobOutputInput, } from "./job-output.js";
9
+ export { SessionModeSchema, SessionInfoSchema, createSessionInfo, } from "./session-info.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAO3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GAUtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Zod schemas for job metadata (job-<id>.yaml)
3
+ *
4
+ * Defines the schema for tracking individual job execution metadata
5
+ * including timing, status, and execution context.
6
+ */
7
+ import { z } from "zod";
8
+ /**
9
+ * Possible states for a job
10
+ */
11
+ export declare const JobStatusSchema: z.ZodEnum<["pending", "running", "completed", "failed", "cancelled"]>;
12
+ /**
13
+ * How the job was triggered
14
+ */
15
+ export declare const TriggerTypeSchema: z.ZodEnum<["manual", "schedule", "webhook", "chat", "fork"]>;
16
+ /**
17
+ * Reason why a job exited
18
+ */
19
+ export declare const ExitReasonSchema: z.ZodEnum<["success", "error", "timeout", "cancelled", "max_turns"]>;
20
+ /**
21
+ * Job metadata schema for individual job files
22
+ *
23
+ * Each job is stored as .herdctl/jobs/job-<id>.yaml
24
+ */
25
+ export declare const JobMetadataSchema: z.ZodObject<{
26
+ /** Unique job identifier (format: job-YYYY-MM-DD-<random6>) */
27
+ id: z.ZodString;
28
+ /** Name of the agent that executed this job */
29
+ agent: z.ZodString;
30
+ /** Schedule name that triggered the job (if applicable) */
31
+ schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ /** How the job was triggered */
33
+ trigger_type: z.ZodEnum<["manual", "schedule", "webhook", "chat", "fork"]>;
34
+ /** Current status of the job */
35
+ status: z.ZodEnum<["pending", "running", "completed", "failed", "cancelled"]>;
36
+ /** Reason the job exited (only set when status is completed/failed/cancelled) */
37
+ exit_reason: z.ZodOptional<z.ZodNullable<z.ZodEnum<["success", "error", "timeout", "cancelled", "max_turns"]>>>;
38
+ /** Session ID for the Claude agent session */
39
+ session_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
+ /** Job ID this was forked from (if trigger_type is 'fork') */
41
+ forked_from: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
+ /** ISO timestamp when the job started */
43
+ started_at: z.ZodString;
44
+ /** ISO timestamp when the job finished (null if still running) */
45
+ finished_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
+ /** Duration of the job in seconds (calculated when finished) */
47
+ duration_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
48
+ /** The prompt that was given to the agent */
49
+ prompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ /** Brief summary of what the job accomplished */
51
+ summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ /** Path to the output file containing full session output */
53
+ output_file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ status: "running" | "pending" | "completed" | "failed" | "cancelled";
56
+ started_at: string;
57
+ id: string;
58
+ agent: string;
59
+ trigger_type: "webhook" | "chat" | "manual" | "schedule" | "fork";
60
+ prompt?: string | null | undefined;
61
+ schedule?: string | null | undefined;
62
+ exit_reason?: "max_turns" | "timeout" | "error" | "success" | "cancelled" | null | undefined;
63
+ session_id?: string | null | undefined;
64
+ forked_from?: string | null | undefined;
65
+ finished_at?: string | null | undefined;
66
+ duration_seconds?: number | null | undefined;
67
+ summary?: string | null | undefined;
68
+ output_file?: string | null | undefined;
69
+ }, {
70
+ status: "running" | "pending" | "completed" | "failed" | "cancelled";
71
+ started_at: string;
72
+ id: string;
73
+ agent: string;
74
+ trigger_type: "webhook" | "chat" | "manual" | "schedule" | "fork";
75
+ prompt?: string | null | undefined;
76
+ schedule?: string | null | undefined;
77
+ exit_reason?: "max_turns" | "timeout" | "error" | "success" | "cancelled" | null | undefined;
78
+ session_id?: string | null | undefined;
79
+ forked_from?: string | null | undefined;
80
+ finished_at?: string | null | undefined;
81
+ duration_seconds?: number | null | undefined;
82
+ summary?: string | null | undefined;
83
+ output_file?: string | null | undefined;
84
+ }>;
85
+ export type JobStatus = z.infer<typeof JobStatusSchema>;
86
+ export type TriggerType = z.infer<typeof TriggerTypeSchema>;
87
+ export type ExitReason = z.infer<typeof ExitReasonSchema>;
88
+ export type JobMetadata = z.infer<typeof JobMetadataSchema>;
89
+ /**
90
+ * Options for creating a new job
91
+ */
92
+ export interface CreateJobOptions {
93
+ /** Name of the agent executing the job */
94
+ agent: string;
95
+ /** How the job was triggered */
96
+ trigger_type: TriggerType;
97
+ /** Schedule name (for scheduled jobs) */
98
+ schedule?: string | null;
99
+ /** The prompt given to the agent */
100
+ prompt?: string | null;
101
+ /** Parent job ID (for forked jobs) */
102
+ forked_from?: string | null;
103
+ }
104
+ /**
105
+ * Generate a unique job ID with format: job-YYYY-MM-DD-<random6>
106
+ *
107
+ * @param date - Optional date to use (defaults to now)
108
+ * @param randomFn - Optional random function for testing
109
+ */
110
+ export declare function generateJobId(date?: Date, randomFn?: () => string): string;
111
+ /**
112
+ * Create initial job metadata for a new job
113
+ *
114
+ * @param options - Job creation options
115
+ * @param idGenerator - Optional function to generate job ID (for testing)
116
+ */
117
+ export declare function createJobMetadata(options: CreateJobOptions, idGenerator?: () => string): JobMetadata;
118
+ //# sourceMappingURL=job-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-metadata.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/job-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,eAAO,MAAM,eAAe,uEAM1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,8DAM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,sEAM3B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;IAC5B,+DAA+D;;IAK/D,+CAA+C;;IAG/C,2DAA2D;;IAG3D,gCAAgC;;IAGhC,gCAAgC;;IAGhC,iFAAiF;;IAGjF,8CAA8C;;IAG9C,8DAA8D;;IAO9D,yCAAyC;;IAGzC,kEAAkE;;IAGlE,gEAAgE;;IAGhE,6CAA6C;;IAG7C,iDAAiD;;IAGjD,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7D,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,YAAY,EAAE,WAAW,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE,IAAiB,EACvB,QAAQ,GAAE,MAAM,MAAqD,GACpE,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,WAAW,GAAE,MAAM,MAAsB,GACxC,WAAW,CAmBb"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Zod schemas for job metadata (job-<id>.yaml)
3
+ *
4
+ * Defines the schema for tracking individual job execution metadata
5
+ * including timing, status, and execution context.
6
+ */
7
+ import { z } from "zod";
8
+ // =============================================================================
9
+ // Job Status Schemas
10
+ // =============================================================================
11
+ /**
12
+ * Possible states for a job
13
+ */
14
+ export const JobStatusSchema = z.enum([
15
+ "pending",
16
+ "running",
17
+ "completed",
18
+ "failed",
19
+ "cancelled",
20
+ ]);
21
+ /**
22
+ * How the job was triggered
23
+ */
24
+ export const TriggerTypeSchema = z.enum([
25
+ "manual",
26
+ "schedule",
27
+ "webhook",
28
+ "chat",
29
+ "fork",
30
+ ]);
31
+ /**
32
+ * Reason why a job exited
33
+ */
34
+ export const ExitReasonSchema = z.enum([
35
+ "success",
36
+ "error",
37
+ "timeout",
38
+ "cancelled",
39
+ "max_turns",
40
+ ]);
41
+ // =============================================================================
42
+ // Job Metadata Schema
43
+ // =============================================================================
44
+ /**
45
+ * Job metadata schema for individual job files
46
+ *
47
+ * Each job is stored as .herdctl/jobs/job-<id>.yaml
48
+ */
49
+ export const JobMetadataSchema = z.object({
50
+ /** Unique job identifier (format: job-YYYY-MM-DD-<random6>) */
51
+ id: z.string().regex(/^job-\d{4}-\d{2}-\d{2}-[a-z0-9]{6}$/, {
52
+ message: "Job ID must match format: job-YYYY-MM-DD-<random6>",
53
+ }),
54
+ /** Name of the agent that executed this job */
55
+ agent: z.string().min(1),
56
+ /** Schedule name that triggered the job (if applicable) */
57
+ schedule: z.string().nullable().optional(),
58
+ /** How the job was triggered */
59
+ trigger_type: TriggerTypeSchema,
60
+ /** Current status of the job */
61
+ status: JobStatusSchema,
62
+ /** Reason the job exited (only set when status is completed/failed/cancelled) */
63
+ exit_reason: ExitReasonSchema.nullable().optional(),
64
+ /** Session ID for the Claude agent session */
65
+ session_id: z.string().nullable().optional(),
66
+ /** Job ID this was forked from (if trigger_type is 'fork') */
67
+ forked_from: z
68
+ .string()
69
+ .regex(/^job-\d{4}-\d{2}-\d{2}-[a-z0-9]{6}$/)
70
+ .nullable()
71
+ .optional(),
72
+ /** ISO timestamp when the job started */
73
+ started_at: z.string(),
74
+ /** ISO timestamp when the job finished (null if still running) */
75
+ finished_at: z.string().nullable().optional(),
76
+ /** Duration of the job in seconds (calculated when finished) */
77
+ duration_seconds: z.number().nonnegative().nullable().optional(),
78
+ /** The prompt that was given to the agent */
79
+ prompt: z.string().nullable().optional(),
80
+ /** Brief summary of what the job accomplished */
81
+ summary: z.string().nullable().optional(),
82
+ /** Path to the output file containing full session output */
83
+ output_file: z.string().nullable().optional(),
84
+ });
85
+ /**
86
+ * Generate a unique job ID with format: job-YYYY-MM-DD-<random6>
87
+ *
88
+ * @param date - Optional date to use (defaults to now)
89
+ * @param randomFn - Optional random function for testing
90
+ */
91
+ export function generateJobId(date = new Date(), randomFn = () => Math.random().toString(36).slice(2, 8)) {
92
+ const year = date.getFullYear();
93
+ const month = String(date.getMonth() + 1).padStart(2, "0");
94
+ const day = String(date.getDate()).padStart(2, "0");
95
+ const random = randomFn().slice(0, 6).padEnd(6, "0");
96
+ return `job-${year}-${month}-${day}-${random}`;
97
+ }
98
+ /**
99
+ * Create initial job metadata for a new job
100
+ *
101
+ * @param options - Job creation options
102
+ * @param idGenerator - Optional function to generate job ID (for testing)
103
+ */
104
+ export function createJobMetadata(options, idGenerator = generateJobId) {
105
+ const now = new Date().toISOString();
106
+ return {
107
+ id: idGenerator(),
108
+ agent: options.agent,
109
+ schedule: options.schedule ?? null,
110
+ trigger_type: options.trigger_type,
111
+ status: "pending",
112
+ exit_reason: null,
113
+ session_id: null,
114
+ forked_from: options.forked_from ?? null,
115
+ started_at: now,
116
+ finished_at: null,
117
+ duration_seconds: null,
118
+ prompt: options.prompt ?? null,
119
+ summary: null,
120
+ output_file: null,
121
+ };
122
+ }
123
+ //# sourceMappingURL=job-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-metadata.js","sourceRoot":"","sources":["../../../src/state/schemas/job-metadata.ts"],"names":[],"mappings":"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"}