@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,680 @@
1
+ /**
2
+ * Type definitions for the FleetManager module
3
+ *
4
+ * Provides interfaces for fleet manager configuration, state tracking,
5
+ * and event definitions.
6
+ */
7
+ import type { SchedulerLogger } from "../scheduler/types.js";
8
+ import type { WorkItem } from "../work-sources/types.js";
9
+ export type { FleetManagerEventMap, FleetManagerEventName, FleetManagerEventPayload, FleetManagerEventListener, ConfigChange, ConfigReloadedPayload, AgentStartedPayload, AgentStoppedPayload, ScheduleTriggeredPayload, ScheduleSkippedPayload, JobCreatedPayload, JobOutputPayload, JobCompletedPayload, JobFailedPayload, JobCancelledPayload, JobForkedPayload, } from "./event-types.js";
10
+ /**
11
+ * Logger interface for fleet manager operations
12
+ * Reuses the same interface as the scheduler for consistency
13
+ */
14
+ export type FleetManagerLogger = SchedulerLogger;
15
+ /**
16
+ * Options for configuring the FleetManager
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const options: FleetManagerOptions = {
21
+ * configPath: './herdctl.yaml',
22
+ * stateDir: './.herdctl',
23
+ * };
24
+ * ```
25
+ */
26
+ export interface FleetManagerOptions {
27
+ /**
28
+ * Path to the herdctl.yaml configuration file
29
+ *
30
+ * Can be:
31
+ * - An absolute path to the config file
32
+ * - A relative path to the config file
33
+ * - A directory path (will search for herdctl.yaml/herdctl.yml)
34
+ *
35
+ * If not provided, will auto-discover by searching up from cwd.
36
+ */
37
+ configPath?: string;
38
+ /**
39
+ * Path to the state directory (e.g., .herdctl)
40
+ *
41
+ * This directory stores:
42
+ * - Job artifacts and outputs
43
+ * - Session state
44
+ * - Schedule state
45
+ * - Logs
46
+ *
47
+ * Will be created if it doesn't exist.
48
+ */
49
+ stateDir: string;
50
+ /**
51
+ * Logger for fleet manager operations
52
+ *
53
+ * Default: console-based logger with [fleet-manager] prefix
54
+ */
55
+ logger?: FleetManagerLogger;
56
+ /**
57
+ * Interval in milliseconds between scheduler checks
58
+ *
59
+ * Default: 1000 (1 second)
60
+ */
61
+ checkInterval?: number;
62
+ }
63
+ /**
64
+ * Current status of the fleet manager
65
+ */
66
+ export type FleetManagerStatus = "uninitialized" | "initialized" | "starting" | "running" | "stopping" | "stopped" | "error";
67
+ /**
68
+ * Detailed fleet manager state for monitoring
69
+ */
70
+ export interface FleetManagerState {
71
+ /**
72
+ * Current fleet manager status
73
+ */
74
+ status: FleetManagerStatus;
75
+ /**
76
+ * ISO timestamp of when the fleet manager was initialized
77
+ */
78
+ initializedAt: string | null;
79
+ /**
80
+ * ISO timestamp of when the fleet manager was started
81
+ */
82
+ startedAt: string | null;
83
+ /**
84
+ * ISO timestamp of when the fleet manager was stopped
85
+ */
86
+ stoppedAt: string | null;
87
+ /**
88
+ * Number of agents loaded from configuration
89
+ */
90
+ agentCount: number;
91
+ /**
92
+ * Last error message if status is 'error'
93
+ */
94
+ lastError: string | null;
95
+ }
96
+ /**
97
+ * Events emitted by the FleetManager
98
+ *
99
+ * @deprecated Use FleetManagerEventMap from ./event-types.js for strongly-typed events.
100
+ * This interface is kept for backwards compatibility but may be removed in a future version.
101
+ */
102
+ export interface FleetManagerEvents {
103
+ /**
104
+ * Emitted when initialization completes successfully
105
+ */
106
+ initialized: [];
107
+ /**
108
+ * Emitted when the fleet manager starts running
109
+ */
110
+ started: [];
111
+ /**
112
+ * Emitted when the fleet manager stops
113
+ */
114
+ stopped: [];
115
+ /**
116
+ * Emitted when an error occurs
117
+ */
118
+ error: [error: Error];
119
+ /**
120
+ * Emitted when a schedule triggers an agent run
121
+ * @deprecated Use 'schedule:triggered' event instead
122
+ */
123
+ "schedule:trigger": [agentName: string, scheduleName: string];
124
+ /**
125
+ * Emitted when an agent run completes successfully
126
+ * @deprecated Use 'job:completed' event instead
127
+ */
128
+ "schedule:complete": [agentName: string, scheduleName: string];
129
+ /**
130
+ * Emitted when an agent run fails
131
+ * @deprecated Use 'job:failed' event instead
132
+ */
133
+ "schedule:error": [agentName: string, scheduleName: string, error: Error];
134
+ }
135
+ /**
136
+ * Schedule information within an AgentInfo
137
+ *
138
+ * Combines static schedule configuration with runtime state.
139
+ */
140
+ export interface ScheduleInfo {
141
+ /**
142
+ * Name of the schedule
143
+ */
144
+ name: string;
145
+ /**
146
+ * Name of the agent this schedule belongs to
147
+ */
148
+ agentName: string;
149
+ /**
150
+ * Schedule type (interval, cron, webhook, chat)
151
+ */
152
+ type: string;
153
+ /**
154
+ * Interval expression (e.g., "5m", "1h") for interval schedules
155
+ */
156
+ interval?: string;
157
+ /**
158
+ * Cron expression for cron schedules
159
+ */
160
+ expression?: string;
161
+ /**
162
+ * Current schedule status (idle, running, disabled)
163
+ */
164
+ status: "idle" | "running" | "disabled";
165
+ /**
166
+ * ISO timestamp of when this schedule last ran
167
+ */
168
+ lastRunAt: string | null;
169
+ /**
170
+ * ISO timestamp of when this schedule will next run
171
+ */
172
+ nextRunAt: string | null;
173
+ /**
174
+ * Last error message if the schedule encountered an error
175
+ */
176
+ lastError: string | null;
177
+ }
178
+ /**
179
+ * Information about a single agent for status queries
180
+ *
181
+ * Combines static configuration with runtime state.
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * const agent = manager.getAgent('my-agent');
186
+ * console.log(`Agent: ${agent.name}`);
187
+ * console.log(`Status: ${agent.status}`);
188
+ * console.log(`Schedules: ${agent.scheduleCount}`);
189
+ * ```
190
+ */
191
+ export interface AgentInfo {
192
+ /**
193
+ * Agent name (unique identifier)
194
+ */
195
+ name: string;
196
+ /**
197
+ * Agent description from configuration
198
+ */
199
+ description?: string;
200
+ /**
201
+ * Current agent status
202
+ */
203
+ status: "idle" | "running" | "error";
204
+ /**
205
+ * ID of the currently running job, if any
206
+ */
207
+ currentJobId: string | null;
208
+ /**
209
+ * ID of the last completed job
210
+ */
211
+ lastJobId: string | null;
212
+ /**
213
+ * Maximum concurrent instances allowed for this agent
214
+ */
215
+ maxConcurrent: number;
216
+ /**
217
+ * Number of currently running instances
218
+ */
219
+ runningCount: number;
220
+ /**
221
+ * Error message if status is 'error'
222
+ */
223
+ errorMessage: string | null;
224
+ /**
225
+ * Number of schedules configured for this agent
226
+ */
227
+ scheduleCount: number;
228
+ /**
229
+ * Detailed information about each schedule
230
+ */
231
+ schedules: ScheduleInfo[];
232
+ /**
233
+ * Model configured for this agent (if any)
234
+ */
235
+ model?: string;
236
+ /**
237
+ * Workspace path for this agent
238
+ */
239
+ workspace?: string;
240
+ }
241
+ /**
242
+ * Summary counts for quick fleet overview
243
+ */
244
+ export interface FleetCounts {
245
+ /**
246
+ * Total number of configured agents
247
+ */
248
+ totalAgents: number;
249
+ /**
250
+ * Number of agents currently idle
251
+ */
252
+ idleAgents: number;
253
+ /**
254
+ * Number of agents currently running jobs
255
+ */
256
+ runningAgents: number;
257
+ /**
258
+ * Number of agents in error state
259
+ */
260
+ errorAgents: number;
261
+ /**
262
+ * Total number of schedules across all agents
263
+ */
264
+ totalSchedules: number;
265
+ /**
266
+ * Number of schedules currently running
267
+ */
268
+ runningSchedules: number;
269
+ /**
270
+ * Total number of jobs currently running
271
+ */
272
+ runningJobs: number;
273
+ }
274
+ /**
275
+ * Overall fleet status information
276
+ *
277
+ * Provides a comprehensive snapshot of the fleet state for CLI `herdctl status`.
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * const status = manager.getStatus();
282
+ * console.log(`Fleet: ${status.state}`);
283
+ * console.log(`Uptime: ${status.uptimeSeconds}s`);
284
+ * console.log(`Agents: ${status.counts.totalAgents}`);
285
+ * console.log(`Running jobs: ${status.counts.runningJobs}`);
286
+ * ```
287
+ */
288
+ export interface FleetStatus {
289
+ /**
290
+ * Current fleet manager state
291
+ */
292
+ state: FleetManagerStatus;
293
+ /**
294
+ * Fleet uptime in seconds (time since started)
295
+ * Null if fleet has never been started
296
+ */
297
+ uptimeSeconds: number | null;
298
+ /**
299
+ * ISO timestamp of when the fleet was initialized
300
+ */
301
+ initializedAt: string | null;
302
+ /**
303
+ * ISO timestamp of when the fleet was started
304
+ */
305
+ startedAt: string | null;
306
+ /**
307
+ * ISO timestamp of when the fleet was stopped
308
+ */
309
+ stoppedAt: string | null;
310
+ /**
311
+ * Summary counts for agents and jobs
312
+ */
313
+ counts: FleetCounts;
314
+ /**
315
+ * Scheduler state information
316
+ */
317
+ scheduler: {
318
+ /**
319
+ * Scheduler status (stopped, running, stopping)
320
+ */
321
+ status: "stopped" | "running" | "stopping";
322
+ /**
323
+ * Total number of schedule checks performed
324
+ */
325
+ checkCount: number;
326
+ /**
327
+ * Total number of triggers fired
328
+ */
329
+ triggerCount: number;
330
+ /**
331
+ * ISO timestamp of last schedule check
332
+ */
333
+ lastCheckAt: string | null;
334
+ /**
335
+ * Check interval in milliseconds
336
+ */
337
+ checkIntervalMs: number;
338
+ };
339
+ /**
340
+ * Last error message if state is 'error'
341
+ */
342
+ lastError: string | null;
343
+ }
344
+ /**
345
+ * Options for manually triggering an agent
346
+ *
347
+ * These options allow overriding agent defaults and passing runtime
348
+ * configuration when triggering an agent outside its normal schedule.
349
+ *
350
+ * @example
351
+ * ```typescript
352
+ * // Trigger with default schedule settings
353
+ * const job = await manager.trigger('my-agent');
354
+ *
355
+ * // Trigger a specific schedule
356
+ * const job = await manager.trigger('my-agent', 'hourly');
357
+ *
358
+ * // Trigger with runtime options
359
+ * const job = await manager.trigger('my-agent', 'hourly', {
360
+ * prompt: 'Review the latest PR',
361
+ * workItems: [{ id: '123', title: 'Bug fix PR' }],
362
+ * });
363
+ * ```
364
+ */
365
+ export interface TriggerOptions {
366
+ /**
367
+ * Override the prompt for this trigger
368
+ *
369
+ * This prompt will be used instead of the schedule's configured prompt
370
+ * or the agent's default prompt.
371
+ */
372
+ prompt?: string;
373
+ /**
374
+ * Work items to process during this trigger
375
+ *
376
+ * These work items will be passed to the agent instead of fetching
377
+ * from the configured work source.
378
+ */
379
+ workItems?: WorkItem[];
380
+ /**
381
+ * Whether to bypass concurrency limits for this trigger
382
+ *
383
+ * When true, the agent will be triggered even if it's at max_concurrent.
384
+ * Use with caution - this can lead to resource contention.
385
+ *
386
+ * Default: false
387
+ */
388
+ bypassConcurrencyLimit?: boolean;
389
+ }
390
+ /**
391
+ * Result of a manual trigger operation
392
+ *
393
+ * Contains information about the job that was created.
394
+ */
395
+ export interface TriggerResult {
396
+ /**
397
+ * Unique identifier for the created job
398
+ */
399
+ jobId: string;
400
+ /**
401
+ * Name of the agent that was triggered
402
+ */
403
+ agentName: string;
404
+ /**
405
+ * Name of the schedule used (if any)
406
+ */
407
+ scheduleName: string | null;
408
+ /**
409
+ * ISO timestamp when the job was created
410
+ */
411
+ startedAt: string;
412
+ /**
413
+ * The prompt that was used for the trigger
414
+ */
415
+ prompt?: string;
416
+ }
417
+ /**
418
+ * Options for stopping the FleetManager gracefully
419
+ *
420
+ * These options control how the fleet manager handles running jobs
421
+ * during shutdown.
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * // Stop with default options (wait for jobs, 30s timeout)
426
+ * await manager.stop();
427
+ *
428
+ * // Stop with custom timeout
429
+ * await manager.stop({ timeout: 60000 });
430
+ *
431
+ * // Stop immediately without waiting for jobs
432
+ * await manager.stop({ waitForJobs: false });
433
+ *
434
+ * // Force cancel jobs after timeout
435
+ * await manager.stop({
436
+ * timeout: 30000,
437
+ * cancelOnTimeout: true,
438
+ * });
439
+ * ```
440
+ */
441
+ export interface FleetManagerStopOptions {
442
+ /**
443
+ * Whether to wait for running jobs to complete before stopping
444
+ *
445
+ * When true, the stop operation will wait for all currently running
446
+ * jobs to complete before finishing the shutdown. When false, the
447
+ * fleet manager will stop immediately, leaving jobs running in the
448
+ * background (not recommended).
449
+ *
450
+ * Default: true
451
+ */
452
+ waitForJobs?: boolean;
453
+ /**
454
+ * Maximum time in milliseconds to wait for running jobs to complete
455
+ *
456
+ * Only applies when waitForJobs is true. After this timeout:
457
+ * - If cancelOnTimeout is true, running jobs will be cancelled
458
+ * - If cancelOnTimeout is false (default), a FleetManagerShutdownError is thrown
459
+ *
460
+ * Default: 30000 (30 seconds)
461
+ */
462
+ timeout?: number;
463
+ /**
464
+ * Whether to cancel jobs that are still running after the timeout
465
+ *
466
+ * When true, jobs that don't complete within the timeout will be
467
+ * cancelled via the cancelJob method. The fleet manager will wait
468
+ * for the cancellation to complete before emitting 'stopped'.
469
+ *
470
+ * When false, a FleetManagerShutdownError is thrown if jobs are
471
+ * still running after timeout.
472
+ *
473
+ * Default: false
474
+ */
475
+ cancelOnTimeout?: boolean;
476
+ /**
477
+ * Timeout in milliseconds for cancelling individual jobs
478
+ *
479
+ * Only applies when cancelOnTimeout is true. This is the time
480
+ * given to each job to respond to SIGTERM before being forcefully
481
+ * killed with SIGKILL.
482
+ *
483
+ * Default: 10000 (10 seconds)
484
+ */
485
+ cancelTimeout?: number;
486
+ }
487
+ /**
488
+ * Log levels for filtering log entries
489
+ */
490
+ export type LogLevel = "debug" | "info" | "warn" | "error";
491
+ /**
492
+ * Source type for log entries
493
+ */
494
+ export type LogSource = "fleet" | "agent" | "job" | "scheduler";
495
+ /**
496
+ * A single log entry from the fleet
497
+ *
498
+ * @example
499
+ * ```typescript
500
+ * const entry: LogEntry = {
501
+ * timestamp: '2024-01-15T10:30:00.000Z',
502
+ * level: 'info',
503
+ * source: 'agent',
504
+ * agentName: 'my-agent',
505
+ * jobId: 'job-2024-01-15-abc123',
506
+ * message: 'Processing work item',
507
+ * data: { itemId: '456' },
508
+ * };
509
+ * ```
510
+ */
511
+ export interface LogEntry {
512
+ /**
513
+ * ISO timestamp when the log was generated
514
+ */
515
+ timestamp: string;
516
+ /**
517
+ * Log level
518
+ */
519
+ level: LogLevel;
520
+ /**
521
+ * Source of the log entry
522
+ */
523
+ source: LogSource;
524
+ /**
525
+ * Agent name (if applicable)
526
+ */
527
+ agentName?: string;
528
+ /**
529
+ * Job ID (if applicable)
530
+ */
531
+ jobId?: string;
532
+ /**
533
+ * Schedule name (if applicable)
534
+ */
535
+ scheduleName?: string;
536
+ /**
537
+ * Log message
538
+ */
539
+ message: string;
540
+ /**
541
+ * Additional structured data
542
+ */
543
+ data?: Record<string, unknown>;
544
+ }
545
+ /**
546
+ * Options for streaming logs
547
+ *
548
+ * @example
549
+ * ```typescript
550
+ * // Stream all logs at info level and above
551
+ * const stream = manager.streamLogs({ level: 'info' });
552
+ *
553
+ * // Stream only error logs for a specific agent
554
+ * const stream = manager.streamLogs({
555
+ * level: 'error',
556
+ * agentName: 'my-agent',
557
+ * });
558
+ * ```
559
+ */
560
+ export interface LogStreamOptions {
561
+ /**
562
+ * Minimum log level to include
563
+ *
564
+ * Filters logs to only include entries at this level or higher severity.
565
+ * Severity order: debug < info < warn < error
566
+ *
567
+ * Default: 'info'
568
+ */
569
+ level?: LogLevel;
570
+ /**
571
+ * Filter logs to a specific agent
572
+ */
573
+ agentName?: string;
574
+ /**
575
+ * Filter logs to a specific job
576
+ */
577
+ jobId?: string;
578
+ /**
579
+ * Whether to include historical logs before streaming new ones
580
+ *
581
+ * When true, completed jobs will replay their history before
582
+ * streaming ends. When false, only new logs are streamed.
583
+ *
584
+ * Default: true
585
+ */
586
+ includeHistory?: boolean;
587
+ /**
588
+ * Maximum number of historical entries to include
589
+ *
590
+ * Only applies when includeHistory is true.
591
+ *
592
+ * Default: 1000
593
+ */
594
+ historyLimit?: number;
595
+ }
596
+ /**
597
+ * Modifications to apply when forking a job
598
+ *
599
+ * Allows overriding specific configuration when creating a new job
600
+ * based on an existing one. Any field not specified will be copied
601
+ * from the original job.
602
+ *
603
+ * @example
604
+ * ```typescript
605
+ * // Fork with a modified prompt
606
+ * const newJob = await manager.forkJob('job-2024-01-15-abc123', {
607
+ * prompt: 'Retry the previous task with more detailed logging',
608
+ * });
609
+ *
610
+ * // Fork to a different schedule
611
+ * const newJob = await manager.forkJob('job-2024-01-15-abc123', {
612
+ * schedule: 'daily',
613
+ * });
614
+ * ```
615
+ */
616
+ export interface JobModifications {
617
+ /**
618
+ * Override the prompt for the forked job
619
+ */
620
+ prompt?: string;
621
+ /**
622
+ * Override the schedule name for the forked job
623
+ */
624
+ schedule?: string;
625
+ /**
626
+ * Work items to process in the forked job
627
+ * (replaces work items from the original job)
628
+ */
629
+ workItems?: WorkItem[];
630
+ }
631
+ /**
632
+ * Result of canceling a job
633
+ */
634
+ export interface CancelJobResult {
635
+ /**
636
+ * ID of the job that was canceled
637
+ */
638
+ jobId: string;
639
+ /**
640
+ * Whether the cancellation was successful
641
+ */
642
+ success: boolean;
643
+ /**
644
+ * How the job was terminated
645
+ * - 'graceful': Job responded to SIGTERM and exited cleanly
646
+ * - 'forced': Job was killed with SIGKILL after timeout
647
+ * - 'already_stopped': Job was not running when cancel was called
648
+ */
649
+ terminationType: 'graceful' | 'forced' | 'already_stopped';
650
+ /**
651
+ * ISO timestamp when the job was canceled
652
+ */
653
+ canceledAt: string;
654
+ }
655
+ /**
656
+ * Result of forking a job
657
+ */
658
+ export interface ForkJobResult {
659
+ /**
660
+ * ID of the newly created job
661
+ */
662
+ jobId: string;
663
+ /**
664
+ * ID of the job that was forked
665
+ */
666
+ forkedFromJobId: string;
667
+ /**
668
+ * Name of the agent executing the new job
669
+ */
670
+ agentName: string;
671
+ /**
672
+ * ISO timestamp when the forked job was created
673
+ */
674
+ startedAt: string;
675
+ /**
676
+ * The prompt that was used for the forked job
677
+ */
678
+ prompt?: string;
679
+ }
680
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fleet-manager/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type definitions for the FleetManager module
3
+ *
4
+ * Provides interfaces for fleet manager configuration, state tracking,
5
+ * and event definitions.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fleet-manager/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}