@fleettools/server 0.1.0

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 (308) hide show
  1. package/.flightline/checkpoints.db +0 -0
  2. package/.flightline/ctk/04a5510b-1e09-40c6-91c8-399c22138708.json +9 -0
  3. package/.flightline/ctk/0ecde721-7827-4039-995a-974e24493cc5.json +9 -0
  4. package/.flightline/ctk/268bbdbd-ddd7-46b2-845f-56a138aa518a.json +9 -0
  5. package/.flightline/ctk/6f476f2e-776c-407a-b441-b9365c0bae95.json +9 -0
  6. package/.flightline/ctk/7e10d0d5-fbc2-4661-af03-53de89e064db.json +9 -0
  7. package/.flightline/ctk/90783096-b7d4-49c5-8153-3c35018a2e61.json +9 -0
  8. package/.flightline/ctk/9a3b6d18-8a46-4728-90aa-279800a8e397.json +9 -0
  9. package/.flightline/ctk/ae30e192-b386-4ee2-899c-93f86785d3f3.json +9 -0
  10. package/.flightline/ctk/d0e9c49e-10df-413e-8cf7-37232b1838ca.json +9 -0
  11. package/.flightline/ctk/eae1a12b-2e9d-4c3f-8619-dafbb1346e96.json +9 -0
  12. package/.flightline/mailboxes/mbx_00dae6ba-0b5e-4a8d-a86d-93c8640872c3/manifest.json +6 -0
  13. package/.flightline/mailboxes/mbx_05b0bfa9-c4f5-4f68-ba75-6202820f49c3/manifest.json +6 -0
  14. package/.flightline/mailboxes/mbx_0a6b8fb2-729e-4385-8241-839c36b929d7/manifest.json +6 -0
  15. package/.flightline/mailboxes/mbx_0abca4ab-8e34-409c-997f-481e80e450dc/manifest.json +6 -0
  16. package/.flightline/mailboxes/mbx_173e5fb9-8203-418d-93c2-4f8c91f2d842/manifest.json +6 -0
  17. package/.flightline/mailboxes/mbx_22b62201-0570-4ce8-b0a7-0f4b445f6d9e/manifest.json +6 -0
  18. package/.flightline/mailboxes/mbx_2724efb1-76e1-4147-9620-4defcc65510f/manifest.json +6 -0
  19. package/.flightline/mailboxes/mbx_35b8bfcd-5a54-48f1-8759-cb1f8ffe775d/manifest.json +6 -0
  20. package/.flightline/mailboxes/mbx_3bc5193a-604d-4f52-be00-e56277643358/manifest.json +6 -0
  21. package/.flightline/mailboxes/mbx_3bd500f3-c111-427a-8cd7-a004125d6dc1/manifest.json +6 -0
  22. package/.flightline/mailboxes/mbx_45ce9ae8-5299-44dc-a1b5-4d63914a9609/manifest.json +6 -0
  23. package/.flightline/mailboxes/mbx_4779c645-1efc-4c76-ab21-ff93f973ee8f/manifest.json +6 -0
  24. package/.flightline/mailboxes/mbx_482237cf-87c8-486e-a24d-0941be2f480d/manifest.json +6 -0
  25. package/.flightline/mailboxes/mbx_4b7e23c8-5680-4edd-a276-88803dd5fb6f/manifest.json +6 -0
  26. package/.flightline/mailboxes/mbx_4dd3b945-d846-4c7a-94eb-6eeb25a0dc6b/manifest.json +6 -0
  27. package/.flightline/mailboxes/mbx_4ec41a62-62bb-4be4-b3ce-282d5a33acce/manifest.json +6 -0
  28. package/.flightline/mailboxes/mbx_4ff7ee7e-0c8a-43d6-a829-7c62c10af3b0/manifest.json +6 -0
  29. package/.flightline/mailboxes/mbx_7661e4fb-a919-4af1-86f7-3eaef22f1d81/manifest.json +6 -0
  30. package/.flightline/mailboxes/mbx_7ca872bb-69ab-4e7d-a7c6-4888ec8e7749/manifest.json +6 -0
  31. package/.flightline/mailboxes/mbx_7e6d5707-2aa5-4770-a7be-6b1be93d0d87/manifest.json +6 -0
  32. package/.flightline/mailboxes/mbx_87bef50d-3c59-429b-a995-5872f6278c37/manifest.json +6 -0
  33. package/.flightline/mailboxes/mbx_88d1ea56-0b69-48c4-9fcf-ce1e1f7527ba/manifest.json +6 -0
  34. package/.flightline/mailboxes/mbx_8bfb6bd7-07d1-4836-ae9d-3c93668c6dfe/manifest.json +6 -0
  35. package/.flightline/mailboxes/mbx_93355083-e95b-4341-b625-56fcc1e4fc0c/manifest.json +6 -0
  36. package/.flightline/mailboxes/mbx_999fd94c-ca56-4fec-8d30-8b677cf40ad6/manifest.json +6 -0
  37. package/.flightline/mailboxes/mbx_a039fd15-7ee1-4bd6-906d-55dea8d0e489/manifest.json +6 -0
  38. package/.flightline/mailboxes/mbx_a0b7363f-7cc6-4940-8e29-2dc85793a77d/manifest.json +6 -0
  39. package/.flightline/mailboxes/mbx_a31e8b61-9643-4c78-939d-d1696d0420d9/manifest.json +6 -0
  40. package/.flightline/mailboxes/mbx_acc51591-256c-4bed-9a51-514b1811f4cd/manifest.json +6 -0
  41. package/.flightline/mailboxes/mbx_b1efebd9-5981-49fa-8775-20fa00d0c902/manifest.json +6 -0
  42. package/.flightline/mailboxes/mbx_ba9d4c61-39a3-4852-95d7-bd34e3605a43/manifest.json +6 -0
  43. package/.flightline/mailboxes/mbx_c549b60f-65fd-48d5-8cd6-2f053292b112/manifest.json +6 -0
  44. package/.flightline/mailboxes/mbx_d0f839a5-3ab9-42e2-b438-df5825d049fe/manifest.json +6 -0
  45. package/.flightline/mailboxes/mbx_d826d57e-9817-4f3c-ab94-2bfafa352f6d/manifest.json +6 -0
  46. package/.flightline/mailboxes/mbx_da102f37-632c-4c0b-be4c-4270a74c06b9/manifest.json +6 -0
  47. package/.flightline/mailboxes/mbx_df4506f5-67f2-4cf6-9113-93994b76f39b/manifest.json +6 -0
  48. package/.flightline/mailboxes/mbx_e038e93b-87ea-4122-9578-6540018697b7/manifest.json +6 -0
  49. package/.flightline/mailboxes/mbx_e0c171c5-407f-44dc-9ef9-e26e8b99ceac/manifest.json +6 -0
  50. package/.flightline/mailboxes/mbx_e64770bf-7220-4d0f-848c-d751ea1c7376/manifest.json +6 -0
  51. package/.flightline/mailboxes/mbx_e7f0edda-0fab-484d-ab4d-d8a8e363cd14/manifest.json +6 -0
  52. package/.flightline/mailboxes/mbx_ec7d9118-8594-4d79-bf79-f43afdfaf156/manifest.json +6 -0
  53. package/.flightline/mailboxes/mbx_ee06ec01-03e4-485a-ae2b-d8bdb6e7a3a8/manifest.json +6 -0
  54. package/.flightline/mailboxes/mbx_fd467681-f9cf-4a54-b06a-836df6de2ccc/manifest.json +6 -0
  55. package/.flightline/progress.db +0 -0
  56. package/.flightline/recovery.log +1 -0
  57. package/.flightline/tasks.db +0 -0
  58. package/.flightline/tech-orders/to_0c93d981-6b4e-4055-8678-f39c009d1db1.json +11 -0
  59. package/.flightline/tech-orders/to_1862f8ed-c487-4914-9f1e-528af6d4f053.json +11 -0
  60. package/.flightline/tech-orders/to_2335a57d-f400-4efa-b108-e13ece57520d.json +11 -0
  61. package/.flightline/tech-orders/to_2bd8dbdd-ac57-4b84-b977-33a3637d10d1.json +11 -0
  62. package/.flightline/tech-orders/to_37057c01-39b5-403a-991f-afb186abde95.json +11 -0
  63. package/.flightline/tech-orders/to_9e7288bb-c0fd-488a-a83d-1e9337bd0f1f.json +11 -0
  64. package/.flightline/tech-orders/to_aa0fe80b-9de7-40f6-a106-353b5bca10bd.json +11 -0
  65. package/.flightline/tech-orders/to_c1a0f480-c863-4203-a070-76ad77137845.json +11 -0
  66. package/.flightline/tech-orders/to_cf1e882a-cf56-45a4-8d19-494925e5f449.json +11 -0
  67. package/.flightline/work-orders/wo_5a29168d-5fb4-41d7-8dac-1d1151d9248f/manifest.json +15 -0
  68. package/.flightline/work-orders/wo_6c8c38bb-17a1-4885-ada4-dbfc5cc12d7a/manifest.json +15 -0
  69. package/.flightline/work-orders/wo_cadeb9b2-ea42-4491-b429-e2d467942b5c/manifest.json +12 -0
  70. package/.flightline/work-orders/wo_cc7b669c-16c4-4ef7-8a76-d1813219d0be/manifest.json +15 -0
  71. package/AGENTS.md +30 -0
  72. package/dist/agent-lifecycle.js +148 -0
  73. package/dist/agent-spawner.js +460 -0
  74. package/dist/agent-validation.js +111 -0
  75. package/dist/index.js +255 -0
  76. package/dist/server/api/src/coordination/agent-lifecycle.d.ts +12 -0
  77. package/dist/server/api/src/coordination/agent-lifecycle.d.ts.map +1 -0
  78. package/dist/server/api/src/coordination/agent-lifecycle.js +12 -0
  79. package/dist/server/api/src/coordination/agent-lifecycle.js.map +1 -0
  80. package/dist/server/api/src/coordination/agent-runner.d.ts +9 -0
  81. package/dist/server/api/src/coordination/agent-runner.d.ts.map +1 -0
  82. package/dist/server/api/src/coordination/agent-runner.js +416 -0
  83. package/dist/server/api/src/coordination/agent-runner.js.map +1 -0
  84. package/dist/server/api/src/coordination/agent-spawner-routes.d.ts +7 -0
  85. package/dist/server/api/src/coordination/agent-spawner-routes.d.ts.map +1 -0
  86. package/dist/server/api/src/coordination/agent-spawner-routes.js +321 -0
  87. package/dist/server/api/src/coordination/agent-spawner-routes.js.map +1 -0
  88. package/dist/server/api/src/coordination/agent-spawner.d.ts +187 -0
  89. package/dist/server/api/src/coordination/agent-spawner.d.ts.map +1 -0
  90. package/dist/server/api/src/coordination/agent-spawner.js +712 -0
  91. package/dist/server/api/src/coordination/agent-spawner.js.map +1 -0
  92. package/dist/server/api/src/coordination/agents.d.ts +13 -0
  93. package/dist/server/api/src/coordination/agents.d.ts.map +1 -0
  94. package/dist/server/api/src/coordination/agents.js +464 -0
  95. package/dist/server/api/src/coordination/agents.js.map +1 -0
  96. package/dist/server/api/src/coordination/checkpoint-routes.d.ts +33 -0
  97. package/dist/server/api/src/coordination/checkpoint-routes.d.ts.map +1 -0
  98. package/dist/server/api/src/coordination/checkpoint-routes.js +323 -0
  99. package/dist/server/api/src/coordination/checkpoint-routes.js.map +1 -0
  100. package/dist/server/api/src/coordination/conflict-resolver.d.ts +152 -0
  101. package/dist/server/api/src/coordination/conflict-resolver.d.ts.map +1 -0
  102. package/dist/server/api/src/coordination/conflict-resolver.js +502 -0
  103. package/dist/server/api/src/coordination/conflict-resolver.js.map +1 -0
  104. package/dist/server/api/src/coordination/missions.d.ts +9 -0
  105. package/dist/server/api/src/coordination/missions.d.ts.map +1 -0
  106. package/dist/server/api/src/coordination/missions.js +148 -0
  107. package/dist/server/api/src/coordination/missions.js.map +1 -0
  108. package/dist/server/api/src/coordination/monitor.d.ts +175 -0
  109. package/dist/server/api/src/coordination/monitor.d.ts.map +1 -0
  110. package/dist/server/api/src/coordination/monitor.js +410 -0
  111. package/dist/server/api/src/coordination/monitor.js.map +1 -0
  112. package/dist/server/api/src/coordination/notifier.d.ts +160 -0
  113. package/dist/server/api/src/coordination/notifier.d.ts.map +1 -0
  114. package/dist/server/api/src/coordination/notifier.js +422 -0
  115. package/dist/server/api/src/coordination/notifier.js.map +1 -0
  116. package/dist/server/api/src/coordination/progress-tracker.d.ts +98 -0
  117. package/dist/server/api/src/coordination/progress-tracker.d.ts.map +1 -0
  118. package/dist/server/api/src/coordination/progress-tracker.js +323 -0
  119. package/dist/server/api/src/coordination/progress-tracker.js.map +1 -0
  120. package/dist/server/api/src/coordination/recovery-manager.d.ts +135 -0
  121. package/dist/server/api/src/coordination/recovery-manager.d.ts.map +1 -0
  122. package/dist/server/api/src/coordination/recovery-manager.js +435 -0
  123. package/dist/server/api/src/coordination/recovery-manager.js.map +1 -0
  124. package/dist/server/api/src/coordination/task-decomposer.d.ts +90 -0
  125. package/dist/server/api/src/coordination/task-decomposer.d.ts.map +1 -0
  126. package/dist/server/api/src/coordination/task-decomposer.js +412 -0
  127. package/dist/server/api/src/coordination/task-decomposer.js.map +1 -0
  128. package/dist/server/api/src/coordination/task-queue-routes.d.ts +7 -0
  129. package/dist/server/api/src/coordination/task-queue-routes.d.ts.map +1 -0
  130. package/dist/server/api/src/coordination/task-queue-routes.js +266 -0
  131. package/dist/server/api/src/coordination/task-queue-routes.js.map +1 -0
  132. package/dist/server/api/src/coordination/task-queue.d.ts +104 -0
  133. package/dist/server/api/src/coordination/task-queue.d.ts.map +1 -0
  134. package/dist/server/api/src/coordination/task-queue.js +378 -0
  135. package/dist/server/api/src/coordination/task-queue.js.map +1 -0
  136. package/dist/server/api/src/coordination/tasks.d.ts +7 -0
  137. package/dist/server/api/src/coordination/tasks.d.ts.map +1 -0
  138. package/dist/server/api/src/coordination/tasks.js +59 -0
  139. package/dist/server/api/src/coordination/tasks.js.map +1 -0
  140. package/dist/server/api/src/decomposition/cli.d.ts +18 -0
  141. package/dist/server/api/src/decomposition/cli.d.ts.map +1 -0
  142. package/dist/server/api/src/decomposition/cli.js +191 -0
  143. package/dist/server/api/src/decomposition/cli.js.map +1 -0
  144. package/dist/server/api/src/decomposition/codebase-analyzer.d.ts +59 -0
  145. package/dist/server/api/src/decomposition/codebase-analyzer.d.ts.map +1 -0
  146. package/dist/server/api/src/decomposition/codebase-analyzer.js +274 -0
  147. package/dist/server/api/src/decomposition/codebase-analyzer.js.map +1 -0
  148. package/dist/server/api/src/decomposition/dependency-resolver.d.ts +68 -0
  149. package/dist/server/api/src/decomposition/dependency-resolver.d.ts.map +1 -0
  150. package/dist/server/api/src/decomposition/dependency-resolver.js +261 -0
  151. package/dist/server/api/src/decomposition/dependency-resolver.js.map +1 -0
  152. package/dist/server/api/src/decomposition/index.d.ts +17 -0
  153. package/dist/server/api/src/decomposition/index.d.ts.map +1 -0
  154. package/dist/server/api/src/decomposition/index.js +19 -0
  155. package/dist/server/api/src/decomposition/index.js.map +1 -0
  156. package/dist/server/api/src/decomposition/parallelization.d.ts +40 -0
  157. package/dist/server/api/src/decomposition/parallelization.d.ts.map +1 -0
  158. package/dist/server/api/src/decomposition/parallelization.js +144 -0
  159. package/dist/server/api/src/decomposition/parallelization.js.map +1 -0
  160. package/dist/server/api/src/decomposition/planner.d.ts +84 -0
  161. package/dist/server/api/src/decomposition/planner.d.ts.map +1 -0
  162. package/dist/server/api/src/decomposition/planner.js +415 -0
  163. package/dist/server/api/src/decomposition/planner.js.map +1 -0
  164. package/dist/server/api/src/decomposition/routes.d.ts +13 -0
  165. package/dist/server/api/src/decomposition/routes.d.ts.map +1 -0
  166. package/dist/server/api/src/decomposition/routes.js +114 -0
  167. package/dist/server/api/src/decomposition/routes.js.map +1 -0
  168. package/dist/server/api/src/decomposition/strategies.d.ts +43 -0
  169. package/dist/server/api/src/decomposition/strategies.d.ts.map +1 -0
  170. package/dist/server/api/src/decomposition/strategies.js +147 -0
  171. package/dist/server/api/src/decomposition/strategies.js.map +1 -0
  172. package/dist/server/api/src/decomposition/types.d.ts +1090 -0
  173. package/dist/server/api/src/decomposition/types.d.ts.map +1 -0
  174. package/dist/server/api/src/decomposition/types.js +65 -0
  175. package/dist/server/api/src/decomposition/types.js.map +1 -0
  176. package/dist/server/api/src/decomposition/validator.d.ts +84 -0
  177. package/dist/server/api/src/decomposition/validator.d.ts.map +1 -0
  178. package/dist/server/api/src/decomposition/validator.js +314 -0
  179. package/dist/server/api/src/decomposition/validator.js.map +1 -0
  180. package/dist/server/api/src/flightline/ctk.d.ts +2 -0
  181. package/dist/server/api/src/flightline/ctk.d.ts.map +1 -0
  182. package/dist/server/api/src/flightline/ctk.js +114 -0
  183. package/dist/server/api/src/flightline/ctk.js.map +1 -0
  184. package/dist/server/api/src/flightline/tech-orders.d.ts +2 -0
  185. package/dist/server/api/src/flightline/tech-orders.d.ts.map +1 -0
  186. package/dist/server/api/src/flightline/tech-orders.js +74 -0
  187. package/dist/server/api/src/flightline/tech-orders.js.map +1 -0
  188. package/dist/server/api/src/flightline/work-orders.d.ts +2 -0
  189. package/dist/server/api/src/flightline/work-orders.d.ts.map +1 -0
  190. package/dist/server/api/src/flightline/work-orders.js +178 -0
  191. package/dist/server/api/src/flightline/work-orders.js.map +1 -0
  192. package/dist/server/api/src/index.d.ts +3 -0
  193. package/dist/server/api/src/index.d.ts.map +1 -0
  194. package/dist/server/api/src/index.js +192 -0
  195. package/dist/server/api/src/index.js.map +1 -0
  196. package/dist/server/api/src/middleware/agent-validation.d.ts +161 -0
  197. package/dist/server/api/src/middleware/agent-validation.d.ts.map +1 -0
  198. package/dist/server/api/src/middleware/agent-validation.js +112 -0
  199. package/dist/server/api/src/middleware/agent-validation.js.map +1 -0
  200. package/dist/server/api/src/middleware/error-handler.d.ts +8 -0
  201. package/dist/server/api/src/middleware/error-handler.d.ts.map +1 -0
  202. package/dist/server/api/src/middleware/error-handler.js +54 -0
  203. package/dist/server/api/src/middleware/error-handler.js.map +1 -0
  204. package/dist/server/api/src/middleware/logger.d.ts +8 -0
  205. package/dist/server/api/src/middleware/logger.d.ts.map +1 -0
  206. package/dist/server/api/src/middleware/logger.js +31 -0
  207. package/dist/server/api/src/middleware/logger.js.map +1 -0
  208. package/dist/server/api/src/middleware/validation.d.ts +322 -0
  209. package/dist/server/api/src/middleware/validation.d.ts.map +1 -0
  210. package/dist/server/api/src/middleware/validation.js +189 -0
  211. package/dist/server/api/src/middleware/validation.js.map +1 -0
  212. package/dist/server/api/src/squawk/blocker-handler.d.ts +111 -0
  213. package/dist/server/api/src/squawk/blocker-handler.d.ts.map +1 -0
  214. package/dist/server/api/src/squawk/blocker-handler.js +262 -0
  215. package/dist/server/api/src/squawk/blocker-handler.js.map +1 -0
  216. package/dist/server/api/src/squawk/coordinator.d.ts +2 -0
  217. package/dist/server/api/src/squawk/coordinator.d.ts.map +1 -0
  218. package/dist/server/api/src/squawk/coordinator.js +24 -0
  219. package/dist/server/api/src/squawk/coordinator.js.map +1 -0
  220. package/dist/server/api/src/squawk/cursor.d.ts +2 -0
  221. package/dist/server/api/src/squawk/cursor.d.ts.map +1 -0
  222. package/dist/server/api/src/squawk/cursor.js +55 -0
  223. package/dist/server/api/src/squawk/cursor.js.map +1 -0
  224. package/dist/server/api/src/squawk/dependency-resolver.d.ts +107 -0
  225. package/dist/server/api/src/squawk/dependency-resolver.d.ts.map +1 -0
  226. package/dist/server/api/src/squawk/dependency-resolver.js +324 -0
  227. package/dist/server/api/src/squawk/dependency-resolver.js.map +1 -0
  228. package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts +117 -0
  229. package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts.map +1 -0
  230. package/dist/server/api/src/squawk/dispatch-orchestrator.js +296 -0
  231. package/dist/server/api/src/squawk/dispatch-orchestrator.js.map +1 -0
  232. package/dist/server/api/src/squawk/lock-coordinator.d.ts +118 -0
  233. package/dist/server/api/src/squawk/lock-coordinator.d.ts.map +1 -0
  234. package/dist/server/api/src/squawk/lock-coordinator.js +279 -0
  235. package/dist/server/api/src/squawk/lock-coordinator.js.map +1 -0
  236. package/dist/server/api/src/squawk/lock.d.ts +2 -0
  237. package/dist/server/api/src/squawk/lock.d.ts.map +1 -0
  238. package/dist/server/api/src/squawk/lock.js +87 -0
  239. package/dist/server/api/src/squawk/lock.js.map +1 -0
  240. package/dist/server/api/src/squawk/mailbox.d.ts +2 -0
  241. package/dist/server/api/src/squawk/mailbox.d.ts.map +1 -0
  242. package/dist/server/api/src/squawk/mailbox.js +66 -0
  243. package/dist/server/api/src/squawk/mailbox.js.map +1 -0
  244. package/dist/server/api/src/squawk/spawning.d.ts +79 -0
  245. package/dist/server/api/src/squawk/spawning.d.ts.map +1 -0
  246. package/dist/server/api/src/squawk/spawning.js +226 -0
  247. package/dist/server/api/src/squawk/spawning.js.map +1 -0
  248. package/dist/server/api/src/squawk/specialist-tools.d.ts +206 -0
  249. package/dist/server/api/src/squawk/specialist-tools.d.ts.map +1 -0
  250. package/dist/server/api/src/squawk/specialist-tools.js +411 -0
  251. package/dist/server/api/src/squawk/specialist-tools.js.map +1 -0
  252. package/dist/server/api/src/types/api.d.ts +63 -0
  253. package/dist/server/api/src/types/api.d.ts.map +1 -0
  254. package/dist/server/api/src/types/api.js +5 -0
  255. package/dist/server/api/src/types/api.js.map +1 -0
  256. package/dist/squawk/src/db/index.d.ts +30 -0
  257. package/dist/squawk/src/db/index.d.ts.map +1 -0
  258. package/dist/squawk/src/db/index.js +329 -0
  259. package/dist/squawk/src/db/index.js.map +1 -0
  260. package/dist/squawk/src/db/sqlite.d.ts +31 -0
  261. package/dist/squawk/src/db/sqlite.d.ts.map +1 -0
  262. package/dist/squawk/src/db/sqlite.js +558 -0
  263. package/dist/squawk/src/db/sqlite.js.map +1 -0
  264. package/dist/squawk/src/db/types.d.ts +611 -0
  265. package/dist/squawk/src/db/types.d.ts.map +1 -0
  266. package/dist/squawk/src/db/types.js +4 -0
  267. package/dist/squawk/src/db/types.js.map +1 -0
  268. package/dist/task-queue.js +377 -0
  269. package/dist/validation.js +188 -0
  270. package/e2e-integration.test.ts +290 -0
  271. package/integration.test.ts +186 -0
  272. package/package.json +22 -0
  273. package/phase1-integration.test.ts +455 -0
  274. package/phase2-verification.test.ts +135 -0
  275. package/server.log +58 -0
  276. package/src/agent-runner.js +877 -0
  277. package/src/coordination/agent-lifecycle.ts +13 -0
  278. package/src/coordination/agent-runner.ts +479 -0
  279. package/src/coordination/agent-spawner-routes.ts +340 -0
  280. package/src/coordination/agent-spawner.ts +885 -0
  281. package/src/coordination/agents.ts +525 -0
  282. package/src/coordination/checkpoint-routes.ts +382 -0
  283. package/src/coordination/conflict-resolver.ts +640 -0
  284. package/src/coordination/missions.ts +219 -0
  285. package/src/coordination/monitor.ts +593 -0
  286. package/src/coordination/notifier.ts +547 -0
  287. package/src/coordination/progress-tracker.ts +410 -0
  288. package/src/coordination/recovery-manager.ts +531 -0
  289. package/src/coordination/task-decomposer.ts +491 -0
  290. package/src/coordination/task-queue-routes.ts +284 -0
  291. package/src/coordination/task-queue.ts +480 -0
  292. package/src/coordination/tasks.ts +72 -0
  293. package/src/flightline/ctk.ts +131 -0
  294. package/src/flightline/tech-orders.ts +85 -0
  295. package/src/flightline/work-orders.ts +202 -0
  296. package/src/index.ts +211 -0
  297. package/src/middleware/agent-validation.ts +130 -0
  298. package/src/middleware/error-handler.ts +59 -0
  299. package/src/middleware/logger.ts +37 -0
  300. package/src/middleware/validation.ts +235 -0
  301. package/src/squawk/coordinator.ts +26 -0
  302. package/src/squawk/cursor.ts +62 -0
  303. package/src/squawk/lock.ts +98 -0
  304. package/src/squawk/mailbox.ts +75 -0
  305. package/src/types/api.ts +71 -0
  306. package/test-api.ts +310 -0
  307. package/test-enhanced-agents.ts +428 -0
  308. package/tsconfig.json +30 -0
@@ -0,0 +1,428 @@
1
+ /**
2
+ * Integration Tests for Enhanced Agent Features
3
+ *
4
+ * Tests real task execution, progress tracking, heartbeat monitoring, and resource usage
5
+ */
6
+
7
+ import { AgentSpawner, AgentType } from './src/coordination/agent-spawner.js';
8
+ import { ProgressTracker } from './src/coordination/progress-tracker.js';
9
+
10
+ const API_BASE = 'http://localhost:3001';
11
+
12
+ interface TestResult {
13
+ passed: boolean;
14
+ message: string;
15
+ details?: any;
16
+ }
17
+
18
+ class EnhancedAgentTester {
19
+ private spawner: AgentSpawner;
20
+ private progressTracker: ProgressTracker;
21
+
22
+ constructor() {
23
+ this.spawner = new AgentSpawner();
24
+ this.progressTracker = new ProgressTracker();
25
+ }
26
+
27
+ async runAllTests(): Promise<void> {
28
+ console.log('🧪 Starting Enhanced Agent Tests');
29
+ console.log('='.repeat(60));
30
+
31
+ const tests = [
32
+ this.testAgentSpawnWithRealTask.bind(this),
33
+ this.testProgressTracking.bind(this),
34
+ this.testHeartbeatMonitoring.bind(this),
35
+ this.testResourceMonitoring.bind(this),
36
+ this.testAgentSpecialization.bind(this),
37
+ this.testAutomaticRecovery.bind(this),
38
+ this.testSystemHealth.bind(this)
39
+ ];
40
+
41
+ let passed = 0;
42
+ let failed = 0;
43
+
44
+ for (const test of tests) {
45
+ try {
46
+ const result = await test();
47
+ if (result.passed) {
48
+ console.log(`✅ ${result.message}`);
49
+ if (result.details) {
50
+ console.log(` Details:`, result.details);
51
+ }
52
+ passed++;
53
+ } else {
54
+ console.log(`❌ ${result.message}`);
55
+ if (result.details) {
56
+ console.log(` Error:`, result.details);
57
+ }
58
+ failed++;
59
+ }
60
+ } catch (error: any) {
61
+ console.log(`❌ Test failed: ${error.message}`);
62
+ failed++;
63
+ }
64
+ console.log('');
65
+ }
66
+
67
+ console.log('='.repeat(60));
68
+ console.log(`Test Results: ${passed} passed, ${failed} failed`);
69
+
70
+ // Cleanup
71
+ await this.cleanup();
72
+ }
73
+
74
+ private async testAgentSpawnWithRealTask(): Promise<TestResult> {
75
+ console.log('Testing agent spawn with real task execution...');
76
+
77
+ try {
78
+ const spawnRequest = {
79
+ type: AgentType.FRONTEND,
80
+ task: 'Create new UserCard component with TypeScript',
81
+ config: { timeout: 60000 }
82
+ };
83
+
84
+ const agent = await this.spawner.spawn(spawnRequest);
85
+
86
+ // Wait a moment for agent to start
87
+ await new Promise(resolve => setTimeout(resolve, 2000));
88
+
89
+ // Check agent status
90
+ const monitor = await this.spawner.monitor(agent.id);
91
+
92
+ if (agent.status === 'running' || agent.status === 'spawning') {
93
+ return {
94
+ passed: true,
95
+ message: 'Agent spawned successfully with real task',
96
+ details: {
97
+ agentId: agent.id,
98
+ type: agent.type,
99
+ task: spawnRequest.task,
100
+ status: monitor.status,
101
+ pid: agent.pid
102
+ }
103
+ };
104
+ } else {
105
+ return {
106
+ passed: false,
107
+ message: 'Agent failed to start properly',
108
+ details: { status: agent.status }
109
+ };
110
+ }
111
+ } catch (error: any) {
112
+ return {
113
+ passed: false,
114
+ message: 'Failed to spawn agent with real task',
115
+ details: error.message
116
+ };
117
+ }
118
+ }
119
+
120
+ private async testProgressTracking(): Promise<TestResult> {
121
+ console.log('Testing real-time progress tracking...');
122
+
123
+ try {
124
+ // Start a mission
125
+ const missionId = await this.progressTracker.startMission({
126
+ title: 'Test Mission',
127
+ description: 'Testing progress tracking',
128
+ status: 'planned' as any,
129
+ tasks: ['task1', 'task2'],
130
+ metadata: { test: true }
131
+ });
132
+
133
+ // Simulate progress updates
134
+ await this.progressTracker.updateProgress({
135
+ missionId,
136
+ agentId: 'test-agent',
137
+ progress: 25,
138
+ message: 'Analysis completed',
139
+ timestamp: new Date().toISOString()
140
+ });
141
+
142
+ await this.progressTracker.updateProgress({
143
+ missionId,
144
+ agentId: 'test-agent',
145
+ progress: 50,
146
+ message: 'Implementation in progress',
147
+ timestamp: new Date().toISOString()
148
+ });
149
+
150
+ // Check mission status
151
+ const mission = await this.progressTracker.getMission(missionId);
152
+
153
+ if (mission && mission.progress === 50) {
154
+ return {
155
+ passed: true,
156
+ message: 'Progress tracking working correctly',
157
+ details: {
158
+ missionId,
159
+ progress: mission.progress,
160
+ updates: await this.progressTracker.getProgressHistory(missionId)
161
+ }
162
+ };
163
+ } else {
164
+ return {
165
+ passed: false,
166
+ message: 'Progress tracking not working as expected',
167
+ details: { mission }
168
+ };
169
+ }
170
+ } catch (error: any) {
171
+ return {
172
+ passed: false,
173
+ message: 'Progress tracking test failed',
174
+ details: error.message
175
+ };
176
+ }
177
+ }
178
+
179
+ private async testHeartbeatMonitoring(): Promise<TestResult> {
180
+ console.log('Testing heartbeat monitoring...');
181
+
182
+ try {
183
+ // Spawn an agent
184
+ const agent = await this.spawner.spawn({
185
+ type: AgentType.BACKEND,
186
+ task: 'Test heartbeat monitoring',
187
+ config: { timeout: 30000 }
188
+ });
189
+
190
+ // Wait for initial heartbeat
191
+ await new Promise(resolve => setTimeout(resolve, 3000));
192
+
193
+ // Update heartbeat manually
194
+ await this.spawner.updateHeartbeat(agent.id);
195
+
196
+ // Check heartbeat status
197
+ const health = await this.spawner.getAgentHealth(agent.id);
198
+
199
+ const hasRecentHeartbeat = health.lastHeartbeat &&
200
+ (Date.now() - new Date(health.lastHeartbeat).getTime() < 60000);
201
+
202
+ return {
203
+ passed: hasRecentHeartbeat || false,
204
+ message: hasRecentHeartbeat ? 'Heartbeat monitoring working' : 'No recent heartbeat detected',
205
+ details: {
206
+ agentId: agent.id,
207
+ lastHeartbeat: health.lastHeartbeat,
208
+ isHealthy: health.isHealthy
209
+ }
210
+ };
211
+ } catch (error: any) {
212
+ return {
213
+ passed: false,
214
+ message: 'Heartbeat monitoring test failed',
215
+ details: error.message
216
+ };
217
+ }
218
+ }
219
+
220
+ private async testResourceMonitoring(): Promise<TestResult> {
221
+ console.log('Testing resource monitoring...');
222
+
223
+ try {
224
+ // Spawn an agent
225
+ const agent = await this.spawner.spawn({
226
+ type: AgentType.PERFORMANCE,
227
+ task: 'Test resource monitoring',
228
+ config: { timeout: 30000 }
229
+ });
230
+
231
+ // Wait for resource data collection
232
+ await new Promise(resolve => setTimeout(resolve, 5000));
233
+
234
+ // Get resource usage
235
+ const monitor = await this.spawner.monitor(agent.id);
236
+
237
+ const hasResourceData = monitor.resourceUsage &&
238
+ typeof monitor.resourceUsage.memory === 'number' &&
239
+ typeof monitor.resourceUsage.cpu === 'number';
240
+
241
+ if (hasResourceData) {
242
+ // Get resource history
243
+ const history = await this.spawner.getResourceHistory(agent.id);
244
+ const trends = await this.spawner.getResourceTrends(agent.id);
245
+
246
+ return {
247
+ passed: true,
248
+ message: 'Resource monitoring working',
249
+ details: {
250
+ currentUsage: monitor.resourceUsage,
251
+ historyPoints: history.length,
252
+ avgCpu: trends.avgCpu,
253
+ avgMemory: trends.avgMemory
254
+ }
255
+ };
256
+ } else {
257
+ return {
258
+ passed: false,
259
+ message: 'Resource data not available',
260
+ details: { monitor }
261
+ };
262
+ }
263
+ } catch (error: any) {
264
+ return {
265
+ passed: false,
266
+ message: 'Resource monitoring test failed',
267
+ details: error.message
268
+ };
269
+ }
270
+ }
271
+
272
+ private async testAgentSpecialization(): Promise<TestResult> {
273
+ console.log('Testing agent specialization...');
274
+
275
+ const agentTypes = [
276
+ AgentType.FRONTEND,
277
+ AgentType.BACKEND,
278
+ AgentType.TESTING,
279
+ AgentType.DOCUMENTATION,
280
+ AgentType.SECURITY,
281
+ AgentType.PERFORMANCE
282
+ ];
283
+
284
+ const results: any[] = [];
285
+
286
+ for (const type of agentTypes) {
287
+ try {
288
+ const agent = await this.spawner.spawn({
289
+ type,
290
+ task: `Test ${type} agent specialization`,
291
+ config: { timeout: 20000 }
292
+ });
293
+
294
+ await new Promise(resolve => setTimeout(resolve, 1000));
295
+
296
+ const monitor = await this.spawner.monitor(agent.id);
297
+
298
+ results.push({
299
+ type,
300
+ spawned: true,
301
+ running: monitor.status === 'running',
302
+ agentId: agent.id
303
+ });
304
+
305
+ // Cleanup
306
+ await this.spawner.terminate(agent.id, true);
307
+
308
+ } catch (error: any) {
309
+ results.push({
310
+ type,
311
+ spawned: false,
312
+ error: error.message
313
+ });
314
+ }
315
+ }
316
+
317
+ const successCount = results.filter(r => r.spawned && r.running).length;
318
+ const allSuccessful = successCount === agentTypes.length;
319
+
320
+ return {
321
+ passed: allSuccessful,
322
+ message: allSuccessful ? 'All agent types working' : 'Some agent types failed',
323
+ details: {
324
+ successCount: `${successCount}/${agentTypes.length}`,
325
+ results
326
+ }
327
+ };
328
+ }
329
+
330
+ private async testAutomaticRecovery(): Promise<TestResult> {
331
+ console.log('Testing automatic recovery...');
332
+
333
+ try {
334
+ // Spawn an agent
335
+ const agent = await this.spawner.spawn({
336
+ type: AgentType.BACKEND,
337
+ task: 'Test automatic recovery',
338
+ config: { timeout: 30000 }
339
+ });
340
+
341
+ // Wait for it to start
342
+ await new Promise(resolve => setTimeout(resolve, 2000));
343
+
344
+ // Manually kill the process to simulate failure
345
+ if (agent.pid) {
346
+ process.kill(agent.pid, 'SIGKILL');
347
+ }
348
+
349
+ // Wait for recovery detection
350
+ await new Promise(resolve => setTimeout(resolve, 5000));
351
+
352
+ // Check if recovery was attempted
353
+ const updatedAgent = this.spawner.getAgent(agent.id);
354
+ const hasRecoveryAttempt = updatedAgent?.metadata?.recoveryAttempts > 0;
355
+
356
+ return {
357
+ passed: hasRecoveryAttempt,
358
+ message: hasRecoveryAttempt ? 'Automatic recovery triggered' : 'Recovery not triggered',
359
+ details: {
360
+ agentId: agent.id,
361
+ recoveryAttempts: updatedAgent?.metadata?.recoveryAttempts || 0,
362
+ lastRecoveryAttempt: updatedAgent?.metadata?.lastRecoveryAttempt
363
+ }
364
+ };
365
+ } catch (error: any) {
366
+ return {
367
+ passed: false,
368
+ message: 'Automatic recovery test failed',
369
+ details: error.message
370
+ };
371
+ }
372
+ }
373
+
374
+ private async testSystemHealth(): Promise<TestResult> {
375
+ console.log('Testing system health monitoring...');
376
+
377
+ try {
378
+ const systemHealth = await this.spawner.getSystemHealth();
379
+
380
+ const hasRequiredFields = typeof systemHealth.totalAgents === 'number' &&
381
+ typeof systemHealth.healthyAgents === 'number' &&
382
+ typeof systemHealth.unhealthyAgents === 'number' &&
383
+ ['healthy', 'degraded', 'critical'].includes(systemHealth.overallHealth);
384
+
385
+ return {
386
+ passed: hasRequiredFields,
387
+ message: hasRequiredFields ? 'System health monitoring working' : 'Missing health data',
388
+ details: systemHealth
389
+ };
390
+ } catch (error: any) {
391
+ return {
392
+ passed: false,
393
+ message: 'System health test failed',
394
+ details: error.message
395
+ };
396
+ }
397
+ }
398
+
399
+ private async cleanup(): Promise<void> {
400
+ console.log('🧹 Cleaning up test agents...');
401
+
402
+ const activeAgents = this.spawner.getActiveAgents();
403
+
404
+ for (const agent of activeAgents) {
405
+ try {
406
+ await this.spawner.terminate(agent.id, true);
407
+ } catch (error) {
408
+ console.warn(`Failed to cleanup agent ${agent.id}:`, error);
409
+ }
410
+ }
411
+
412
+ await this.progressTracker.close();
413
+
414
+ if (this.spawner.cleanup) {
415
+ this.spawner.cleanup();
416
+ }
417
+
418
+ console.log('✓ Cleanup completed');
419
+ }
420
+ }
421
+
422
+ // Run tests if this file is executed directly
423
+ if (import.meta.main) {
424
+ const tester = new EnhancedAgentTester();
425
+ tester.runAllTests().catch(console.error);
426
+ }
427
+
428
+ export { EnhancedAgentTester };
package/tsconfig.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": ["ES2022"],
7
+ "outDir": "./dist",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "resolveJsonModule": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true,
16
+ "noImplicitAny": false,
17
+ "noUnusedLocals": false,
18
+ "noUnusedParameters": false,
19
+ "noImplicitReturns": true,
20
+ "noFallthroughCasesInSwitch": true,
21
+ "noUncheckedIndexedAccess": false
22
+ },
23
+ "include": [
24
+ "src/**/*.ts"
25
+ ],
26
+ "exclude": [
27
+ "node_modules",
28
+ "dist"
29
+ ]
30
+ }