@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,569 @@
1
+ /**
2
+ * Error classes for fleet manager operations
3
+ *
4
+ * Provides typed errors with descriptive messages and error codes for fleet manager failures.
5
+ * All errors extend FleetManagerError and include relevant context for debugging.
6
+ */
7
+ // =============================================================================
8
+ // Error Codes
9
+ // =============================================================================
10
+ /**
11
+ * Error codes for fleet manager errors
12
+ * These codes provide a stable identifier for error types that can be used
13
+ * for programmatic error handling.
14
+ */
15
+ export const FleetManagerErrorCode = {
16
+ // Base error
17
+ FLEET_MANAGER_ERROR: "FLEET_MANAGER_ERROR",
18
+ // Configuration errors
19
+ CONFIGURATION_ERROR: "CONFIGURATION_ERROR",
20
+ CONFIG_LOAD_ERROR: "CONFIG_LOAD_ERROR",
21
+ // Not found errors
22
+ AGENT_NOT_FOUND: "AGENT_NOT_FOUND",
23
+ JOB_NOT_FOUND: "JOB_NOT_FOUND",
24
+ SCHEDULE_NOT_FOUND: "SCHEDULE_NOT_FOUND",
25
+ // State errors
26
+ INVALID_STATE: "INVALID_STATE",
27
+ STATE_DIR_ERROR: "STATE_DIR_ERROR",
28
+ // Operational errors
29
+ CONCURRENCY_LIMIT: "CONCURRENCY_LIMIT",
30
+ SHUTDOWN_ERROR: "SHUTDOWN_ERROR",
31
+ // Job control errors (US-6)
32
+ JOB_CANCEL_ERROR: "JOB_CANCEL_ERROR",
33
+ JOB_FORK_ERROR: "JOB_FORK_ERROR",
34
+ };
35
+ // =============================================================================
36
+ // Base Error Class
37
+ // =============================================================================
38
+ /**
39
+ * Base error class for all fleet manager errors
40
+ *
41
+ * All fleet manager errors extend this class and include:
42
+ * - A unique error code for programmatic handling
43
+ * - Descriptive error messages
44
+ * - Optional cause for error chaining
45
+ */
46
+ export class FleetManagerError extends Error {
47
+ /** Error code for programmatic handling */
48
+ code;
49
+ constructor(message, options) {
50
+ super(message);
51
+ this.name = "FleetManagerError";
52
+ this.cause = options?.cause;
53
+ this.code = options?.code ?? FleetManagerErrorCode.FLEET_MANAGER_ERROR;
54
+ }
55
+ }
56
+ /**
57
+ * Error thrown when configuration is invalid or cannot be loaded
58
+ *
59
+ * This error is thrown when:
60
+ * - The configuration file cannot be found or read
61
+ * - The configuration YAML is malformed
62
+ * - The configuration fails schema validation
63
+ * - Agent definitions are invalid
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * try {
68
+ * await fleetManager.initialize();
69
+ * } catch (error) {
70
+ * if (error instanceof ConfigurationError) {
71
+ * console.error(`Config error at ${error.configPath}:`);
72
+ * for (const ve of error.validationErrors) {
73
+ * console.error(` - ${ve.path}: ${ve.message}`);
74
+ * }
75
+ * }
76
+ * }
77
+ * ```
78
+ */
79
+ export class ConfigurationError extends FleetManagerError {
80
+ /** The path to the configuration file that failed */
81
+ configPath;
82
+ /** Detailed validation errors, if any */
83
+ validationErrors;
84
+ constructor(message, options) {
85
+ const validationErrors = options?.validationErrors ?? [];
86
+ const fullMessage = ConfigurationError.buildMessage(message, options?.configPath, validationErrors);
87
+ super(fullMessage, {
88
+ cause: options?.cause,
89
+ code: FleetManagerErrorCode.CONFIGURATION_ERROR,
90
+ });
91
+ this.name = "ConfigurationError";
92
+ this.configPath = options?.configPath;
93
+ this.validationErrors = validationErrors;
94
+ }
95
+ /**
96
+ * Build a detailed error message including validation errors
97
+ */
98
+ static buildMessage(message, configPath, validationErrors) {
99
+ const parts = [message];
100
+ if (configPath) {
101
+ parts.push(`Config file: ${configPath}`);
102
+ }
103
+ if (validationErrors && validationErrors.length > 0) {
104
+ parts.push("Validation errors:");
105
+ for (const ve of validationErrors) {
106
+ parts.push(` - ${ve.path}: ${ve.message}`);
107
+ }
108
+ }
109
+ return parts.join("\n");
110
+ }
111
+ /**
112
+ * Check if this error has validation errors
113
+ */
114
+ hasValidationErrors() {
115
+ return this.validationErrors.length > 0;
116
+ }
117
+ }
118
+ // =============================================================================
119
+ // Not Found Errors
120
+ // =============================================================================
121
+ /**
122
+ * Error thrown when a requested agent is not found
123
+ *
124
+ * This error is thrown when:
125
+ * - Attempting to run an agent that doesn't exist in the configuration
126
+ * - Attempting to get status for an unknown agent
127
+ * - Referencing an agent name that hasn't been defined
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * try {
132
+ * await fleetManager.runAgent('nonexistent-agent');
133
+ * } catch (error) {
134
+ * if (error instanceof AgentNotFoundError) {
135
+ * console.error(`Agent "${error.agentName}" not found`);
136
+ * console.log('Available agents:', fleetManager.getAgentNames());
137
+ * }
138
+ * }
139
+ * ```
140
+ */
141
+ export class AgentNotFoundError extends FleetManagerError {
142
+ /** The name of the agent that was not found */
143
+ agentName;
144
+ /** Optional list of available agent names for helpful error messages */
145
+ availableAgents;
146
+ constructor(agentName, options) {
147
+ const message = AgentNotFoundError.buildMessage(agentName, options?.availableAgents);
148
+ super(message, {
149
+ cause: options?.cause,
150
+ code: FleetManagerErrorCode.AGENT_NOT_FOUND,
151
+ });
152
+ this.name = "AgentNotFoundError";
153
+ this.agentName = agentName;
154
+ this.availableAgents = options?.availableAgents;
155
+ }
156
+ static buildMessage(agentName, availableAgents) {
157
+ let message = `Agent "${agentName}" not found`;
158
+ if (availableAgents && availableAgents.length > 0) {
159
+ message += `. Available agents: ${availableAgents.join(", ")}`;
160
+ }
161
+ else if (availableAgents && availableAgents.length === 0) {
162
+ message += ". No agents are configured.";
163
+ }
164
+ return message;
165
+ }
166
+ }
167
+ /**
168
+ * Error thrown when a requested job is not found
169
+ *
170
+ * This error is thrown when:
171
+ * - Attempting to get status for a job that doesn't exist
172
+ * - Attempting to cancel a job that has already completed or doesn't exist
173
+ * - Referencing a job ID that is unknown
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * try {
178
+ * const status = await fleetManager.getJobStatus('unknown-job-id');
179
+ * } catch (error) {
180
+ * if (error instanceof JobNotFoundError) {
181
+ * console.error(`Job "${error.jobId}" not found`);
182
+ * }
183
+ * }
184
+ * ```
185
+ */
186
+ export class JobNotFoundError extends FleetManagerError {
187
+ /** The ID of the job that was not found */
188
+ jobId;
189
+ constructor(jobId, options) {
190
+ super(`Job "${jobId}" not found`, {
191
+ cause: options?.cause,
192
+ code: FleetManagerErrorCode.JOB_NOT_FOUND,
193
+ });
194
+ this.name = "JobNotFoundError";
195
+ this.jobId = jobId;
196
+ }
197
+ }
198
+ /**
199
+ * Error thrown when a requested schedule is not found
200
+ *
201
+ * This error is thrown when:
202
+ * - Attempting to trigger a schedule that doesn't exist
203
+ * - Attempting to enable/disable a schedule that doesn't exist
204
+ * - Referencing a schedule name that hasn't been defined for an agent
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * try {
209
+ * await fleetManager.triggerSchedule('my-agent', 'nonexistent-schedule');
210
+ * } catch (error) {
211
+ * if (error instanceof ScheduleNotFoundError) {
212
+ * console.error(
213
+ * `Schedule "${error.scheduleName}" not found for agent "${error.agentName}"`
214
+ * );
215
+ * }
216
+ * }
217
+ * ```
218
+ */
219
+ export class ScheduleNotFoundError extends FleetManagerError {
220
+ /** The name of the agent the schedule was expected to belong to */
221
+ agentName;
222
+ /** The name of the schedule that was not found */
223
+ scheduleName;
224
+ /** Optional list of available schedule names for helpful error messages */
225
+ availableSchedules;
226
+ constructor(agentName, scheduleName, options) {
227
+ const message = ScheduleNotFoundError.buildMessage(agentName, scheduleName, options?.availableSchedules);
228
+ super(message, {
229
+ cause: options?.cause,
230
+ code: FleetManagerErrorCode.SCHEDULE_NOT_FOUND,
231
+ });
232
+ this.name = "ScheduleNotFoundError";
233
+ this.agentName = agentName;
234
+ this.scheduleName = scheduleName;
235
+ this.availableSchedules = options?.availableSchedules;
236
+ }
237
+ static buildMessage(agentName, scheduleName, availableSchedules) {
238
+ let message = `Schedule "${scheduleName}" not found for agent "${agentName}"`;
239
+ if (availableSchedules && availableSchedules.length > 0) {
240
+ message += `. Available schedules: ${availableSchedules.join(", ")}`;
241
+ }
242
+ else if (availableSchedules && availableSchedules.length === 0) {
243
+ message += `. Agent "${agentName}" has no schedules configured.`;
244
+ }
245
+ return message;
246
+ }
247
+ }
248
+ // =============================================================================
249
+ // State Errors
250
+ // =============================================================================
251
+ /**
252
+ * Error thrown when an operation is attempted in an invalid state
253
+ *
254
+ * This error is thrown when:
255
+ * - start() is called before initialize()
256
+ * - initialize() is called when already initialized
257
+ * - Operations are attempted while in an incompatible state
258
+ * - State transitions are invalid
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * try {
263
+ * await fleetManager.start(); // without calling initialize() first
264
+ * } catch (error) {
265
+ * if (error instanceof InvalidStateError) {
266
+ * console.error(
267
+ * `Cannot ${error.operation}: current state is "${error.currentState}", ` +
268
+ * `expected "${error.expectedState}"`
269
+ * );
270
+ * }
271
+ * }
272
+ * ```
273
+ */
274
+ export class InvalidStateError extends FleetManagerError {
275
+ /** The current state of the fleet manager */
276
+ currentState;
277
+ /** The state(s) expected/required for the operation */
278
+ expectedState;
279
+ /** The operation that was attempted */
280
+ operation;
281
+ constructor(operation, currentState, expectedState, options) {
282
+ const expected = Array.isArray(expectedState)
283
+ ? expectedState.join(" or ")
284
+ : expectedState;
285
+ super(`Cannot ${operation}: fleet manager is in "${currentState}" state, must be "${expected}"`, {
286
+ cause: options?.cause,
287
+ code: FleetManagerErrorCode.INVALID_STATE,
288
+ });
289
+ this.name = "InvalidStateError";
290
+ this.operation = operation;
291
+ this.currentState = currentState;
292
+ this.expectedState = expectedState;
293
+ }
294
+ }
295
+ /**
296
+ * Error thrown when the fleet manager is not in the correct state for an operation
297
+ *
298
+ * @deprecated Use InvalidStateError instead. This class is kept for backwards compatibility.
299
+ */
300
+ export class FleetManagerStateError extends InvalidStateError {
301
+ constructor(operation, currentState, requiredState) {
302
+ super(operation, currentState, requiredState);
303
+ this.name = "FleetManagerStateError";
304
+ }
305
+ /**
306
+ * Alias for expectedState for backwards compatibility
307
+ */
308
+ get requiredState() {
309
+ return this.expectedState;
310
+ }
311
+ }
312
+ // =============================================================================
313
+ // Operational Errors
314
+ // =============================================================================
315
+ /**
316
+ * Error thrown when an operation would exceed concurrency limits
317
+ *
318
+ * This error is thrown when:
319
+ * - Attempting to start a new job when the agent has reached its concurrent job limit
320
+ * - Attempting to run more jobs than the system allows
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * try {
325
+ * await fleetManager.runAgent('my-agent');
326
+ * } catch (error) {
327
+ * if (error instanceof ConcurrencyLimitError) {
328
+ * console.error(
329
+ * `Agent "${error.agentName}" has ${error.currentJobs}/${error.limit} jobs running. ` +
330
+ * `Please wait for a job to complete.`
331
+ * );
332
+ * }
333
+ * }
334
+ * ```
335
+ */
336
+ export class ConcurrencyLimitError extends FleetManagerError {
337
+ /** The name of the agent that hit the concurrency limit */
338
+ agentName;
339
+ /** The current number of running jobs for this agent */
340
+ currentJobs;
341
+ /** The maximum allowed concurrent jobs for this agent */
342
+ limit;
343
+ constructor(agentName, currentJobs, limit, options) {
344
+ super(`Agent "${agentName}" has reached its concurrency limit: ${currentJobs}/${limit} jobs running`, {
345
+ cause: options?.cause,
346
+ code: FleetManagerErrorCode.CONCURRENCY_LIMIT,
347
+ });
348
+ this.name = "ConcurrencyLimitError";
349
+ this.agentName = agentName;
350
+ this.currentJobs = currentJobs;
351
+ this.limit = limit;
352
+ }
353
+ /**
354
+ * Check if the limit is completely maxed out (no room for more jobs)
355
+ */
356
+ isAtLimit() {
357
+ return this.currentJobs >= this.limit;
358
+ }
359
+ }
360
+ // =============================================================================
361
+ // Configuration Loading Errors (kept for backwards compatibility)
362
+ // =============================================================================
363
+ /**
364
+ * Error thrown when configuration loading fails
365
+ *
366
+ * @deprecated Use ConfigurationError instead for new code.
367
+ * This class is kept for backwards compatibility.
368
+ */
369
+ export class FleetManagerConfigError extends FleetManagerError {
370
+ /** The path that was being loaded */
371
+ configPath;
372
+ constructor(message, configPath, options) {
373
+ super(message, {
374
+ cause: options?.cause,
375
+ code: FleetManagerErrorCode.CONFIG_LOAD_ERROR,
376
+ });
377
+ this.name = "FleetManagerConfigError";
378
+ this.configPath = configPath;
379
+ }
380
+ }
381
+ // =============================================================================
382
+ // State Directory Errors
383
+ // =============================================================================
384
+ /**
385
+ * Error thrown when state directory initialization fails
386
+ *
387
+ * This wraps state directory errors with fleet manager context.
388
+ */
389
+ export class FleetManagerStateDirError extends FleetManagerError {
390
+ /** The state directory path */
391
+ stateDir;
392
+ constructor(message, stateDir, options) {
393
+ super(message, {
394
+ cause: options?.cause,
395
+ code: FleetManagerErrorCode.STATE_DIR_ERROR,
396
+ });
397
+ this.name = "FleetManagerStateDirError";
398
+ this.stateDir = stateDir;
399
+ }
400
+ }
401
+ // =============================================================================
402
+ // Shutdown Errors
403
+ // =============================================================================
404
+ /**
405
+ * Error thrown when fleet manager shutdown fails
406
+ *
407
+ * This is thrown when the fleet manager cannot shut down cleanly.
408
+ */
409
+ export class FleetManagerShutdownError extends FleetManagerError {
410
+ /** Whether the shutdown timed out */
411
+ timedOut;
412
+ constructor(message, options) {
413
+ super(message, {
414
+ cause: options.cause,
415
+ code: FleetManagerErrorCode.SHUTDOWN_ERROR,
416
+ });
417
+ this.name = "FleetManagerShutdownError";
418
+ this.timedOut = options.timedOut;
419
+ }
420
+ /**
421
+ * Check if the shutdown failed due to timeout
422
+ */
423
+ isTimeout() {
424
+ return this.timedOut;
425
+ }
426
+ }
427
+ // =============================================================================
428
+ // Job Control Errors (US-6)
429
+ // =============================================================================
430
+ /**
431
+ * Error thrown when job cancellation fails
432
+ *
433
+ * This error is thrown when:
434
+ * - The job process cannot be terminated
435
+ * - The job is in an invalid state for cancellation
436
+ * - An error occurs during the cancellation process
437
+ *
438
+ * @example
439
+ * ```typescript
440
+ * try {
441
+ * await manager.cancelJob('job-2024-01-15-abc123');
442
+ * } catch (error) {
443
+ * if (error instanceof JobCancelError) {
444
+ * console.error(`Failed to cancel job: ${error.message}`);
445
+ * console.error(`Job ID: ${error.jobId}`);
446
+ * }
447
+ * }
448
+ * ```
449
+ */
450
+ export class JobCancelError extends FleetManagerError {
451
+ /** The ID of the job that failed to cancel */
452
+ jobId;
453
+ /** The reason the cancellation failed */
454
+ reason;
455
+ constructor(jobId, reason, options) {
456
+ const defaultMessages = {
457
+ not_running: `Job "${jobId}" is not running and cannot be cancelled`,
458
+ process_error: `Failed to terminate process for job "${jobId}"`,
459
+ timeout: `Timeout waiting for job "${jobId}" to terminate`,
460
+ unknown: `Unknown error cancelling job "${jobId}"`,
461
+ };
462
+ super(options?.message ?? defaultMessages[reason], {
463
+ cause: options?.cause,
464
+ code: FleetManagerErrorCode.JOB_CANCEL_ERROR,
465
+ });
466
+ this.name = "JobCancelError";
467
+ this.jobId = jobId;
468
+ this.reason = reason;
469
+ }
470
+ }
471
+ /**
472
+ * Error thrown when job forking fails
473
+ *
474
+ * This error is thrown when:
475
+ * - The original job cannot be found
476
+ * - The original job has no session to fork
477
+ * - An error occurs during the fork process
478
+ *
479
+ * @example
480
+ * ```typescript
481
+ * try {
482
+ * await manager.forkJob('job-2024-01-15-abc123');
483
+ * } catch (error) {
484
+ * if (error instanceof JobForkError) {
485
+ * console.error(`Failed to fork job: ${error.message}`);
486
+ * console.error(`Original Job ID: ${error.originalJobId}`);
487
+ * }
488
+ * }
489
+ * ```
490
+ */
491
+ export class JobForkError extends FleetManagerError {
492
+ /** The ID of the original job that failed to fork */
493
+ originalJobId;
494
+ /** The reason the fork failed */
495
+ reason;
496
+ constructor(originalJobId, reason, options) {
497
+ const defaultMessages = {
498
+ no_session: `Job "${originalJobId}" has no session ID and cannot be forked`,
499
+ job_not_found: `Job "${originalJobId}" not found`,
500
+ agent_not_found: `Agent for job "${originalJobId}" not found`,
501
+ unknown: `Unknown error forking job "${originalJobId}"`,
502
+ };
503
+ super(options?.message ?? defaultMessages[reason], {
504
+ cause: options?.cause,
505
+ code: FleetManagerErrorCode.JOB_FORK_ERROR,
506
+ });
507
+ this.name = "JobForkError";
508
+ this.originalJobId = originalJobId;
509
+ this.reason = reason;
510
+ }
511
+ }
512
+ // =============================================================================
513
+ // Type Guards
514
+ // =============================================================================
515
+ /**
516
+ * Type guard to check if an error is a FleetManagerError
517
+ */
518
+ export function isFleetManagerError(error) {
519
+ return error instanceof FleetManagerError;
520
+ }
521
+ /**
522
+ * Type guard to check if an error is a ConfigurationError
523
+ */
524
+ export function isConfigurationError(error) {
525
+ return error instanceof ConfigurationError;
526
+ }
527
+ /**
528
+ * Type guard to check if an error is an AgentNotFoundError
529
+ */
530
+ export function isAgentNotFoundError(error) {
531
+ return error instanceof AgentNotFoundError;
532
+ }
533
+ /**
534
+ * Type guard to check if an error is a JobNotFoundError
535
+ */
536
+ export function isJobNotFoundError(error) {
537
+ return error instanceof JobNotFoundError;
538
+ }
539
+ /**
540
+ * Type guard to check if an error is a ScheduleNotFoundError
541
+ */
542
+ export function isScheduleNotFoundError(error) {
543
+ return error instanceof ScheduleNotFoundError;
544
+ }
545
+ /**
546
+ * Type guard to check if an error is an InvalidStateError
547
+ */
548
+ export function isInvalidStateError(error) {
549
+ return error instanceof InvalidStateError;
550
+ }
551
+ /**
552
+ * Type guard to check if an error is a ConcurrencyLimitError
553
+ */
554
+ export function isConcurrencyLimitError(error) {
555
+ return error instanceof ConcurrencyLimitError;
556
+ }
557
+ /**
558
+ * Type guard to check if an error is a JobCancelError
559
+ */
560
+ export function isJobCancelError(error) {
561
+ return error instanceof JobCancelError;
562
+ }
563
+ /**
564
+ * Type guard to check if an error is a JobForkError
565
+ */
566
+ export function isJobForkError(error) {
567
+ return error instanceof JobForkError;
568
+ }
569
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/fleet-manager/errors.ts"],"names":[],"mappings":"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"}