@fleettools/server 0.1.0 → 0.2.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 (307) hide show
  1. package/package.json +6 -2
  2. package/tsconfig.json +7 -1
  3. package/.flightline/checkpoints.db +0 -0
  4. package/.flightline/ctk/04a5510b-1e09-40c6-91c8-399c22138708.json +0 -9
  5. package/.flightline/ctk/0ecde721-7827-4039-995a-974e24493cc5.json +0 -9
  6. package/.flightline/ctk/268bbdbd-ddd7-46b2-845f-56a138aa518a.json +0 -9
  7. package/.flightline/ctk/6f476f2e-776c-407a-b441-b9365c0bae95.json +0 -9
  8. package/.flightline/ctk/7e10d0d5-fbc2-4661-af03-53de89e064db.json +0 -9
  9. package/.flightline/ctk/90783096-b7d4-49c5-8153-3c35018a2e61.json +0 -9
  10. package/.flightline/ctk/9a3b6d18-8a46-4728-90aa-279800a8e397.json +0 -9
  11. package/.flightline/ctk/ae30e192-b386-4ee2-899c-93f86785d3f3.json +0 -9
  12. package/.flightline/ctk/d0e9c49e-10df-413e-8cf7-37232b1838ca.json +0 -9
  13. package/.flightline/ctk/eae1a12b-2e9d-4c3f-8619-dafbb1346e96.json +0 -9
  14. package/.flightline/mailboxes/mbx_00dae6ba-0b5e-4a8d-a86d-93c8640872c3/manifest.json +0 -6
  15. package/.flightline/mailboxes/mbx_05b0bfa9-c4f5-4f68-ba75-6202820f49c3/manifest.json +0 -6
  16. package/.flightline/mailboxes/mbx_0a6b8fb2-729e-4385-8241-839c36b929d7/manifest.json +0 -6
  17. package/.flightline/mailboxes/mbx_0abca4ab-8e34-409c-997f-481e80e450dc/manifest.json +0 -6
  18. package/.flightline/mailboxes/mbx_173e5fb9-8203-418d-93c2-4f8c91f2d842/manifest.json +0 -6
  19. package/.flightline/mailboxes/mbx_22b62201-0570-4ce8-b0a7-0f4b445f6d9e/manifest.json +0 -6
  20. package/.flightline/mailboxes/mbx_2724efb1-76e1-4147-9620-4defcc65510f/manifest.json +0 -6
  21. package/.flightline/mailboxes/mbx_35b8bfcd-5a54-48f1-8759-cb1f8ffe775d/manifest.json +0 -6
  22. package/.flightline/mailboxes/mbx_3bc5193a-604d-4f52-be00-e56277643358/manifest.json +0 -6
  23. package/.flightline/mailboxes/mbx_3bd500f3-c111-427a-8cd7-a004125d6dc1/manifest.json +0 -6
  24. package/.flightline/mailboxes/mbx_45ce9ae8-5299-44dc-a1b5-4d63914a9609/manifest.json +0 -6
  25. package/.flightline/mailboxes/mbx_4779c645-1efc-4c76-ab21-ff93f973ee8f/manifest.json +0 -6
  26. package/.flightline/mailboxes/mbx_482237cf-87c8-486e-a24d-0941be2f480d/manifest.json +0 -6
  27. package/.flightline/mailboxes/mbx_4b7e23c8-5680-4edd-a276-88803dd5fb6f/manifest.json +0 -6
  28. package/.flightline/mailboxes/mbx_4dd3b945-d846-4c7a-94eb-6eeb25a0dc6b/manifest.json +0 -6
  29. package/.flightline/mailboxes/mbx_4ec41a62-62bb-4be4-b3ce-282d5a33acce/manifest.json +0 -6
  30. package/.flightline/mailboxes/mbx_4ff7ee7e-0c8a-43d6-a829-7c62c10af3b0/manifest.json +0 -6
  31. package/.flightline/mailboxes/mbx_7661e4fb-a919-4af1-86f7-3eaef22f1d81/manifest.json +0 -6
  32. package/.flightline/mailboxes/mbx_7ca872bb-69ab-4e7d-a7c6-4888ec8e7749/manifest.json +0 -6
  33. package/.flightline/mailboxes/mbx_7e6d5707-2aa5-4770-a7be-6b1be93d0d87/manifest.json +0 -6
  34. package/.flightline/mailboxes/mbx_87bef50d-3c59-429b-a995-5872f6278c37/manifest.json +0 -6
  35. package/.flightline/mailboxes/mbx_88d1ea56-0b69-48c4-9fcf-ce1e1f7527ba/manifest.json +0 -6
  36. package/.flightline/mailboxes/mbx_8bfb6bd7-07d1-4836-ae9d-3c93668c6dfe/manifest.json +0 -6
  37. package/.flightline/mailboxes/mbx_93355083-e95b-4341-b625-56fcc1e4fc0c/manifest.json +0 -6
  38. package/.flightline/mailboxes/mbx_999fd94c-ca56-4fec-8d30-8b677cf40ad6/manifest.json +0 -6
  39. package/.flightline/mailboxes/mbx_a039fd15-7ee1-4bd6-906d-55dea8d0e489/manifest.json +0 -6
  40. package/.flightline/mailboxes/mbx_a0b7363f-7cc6-4940-8e29-2dc85793a77d/manifest.json +0 -6
  41. package/.flightline/mailboxes/mbx_a31e8b61-9643-4c78-939d-d1696d0420d9/manifest.json +0 -6
  42. package/.flightline/mailboxes/mbx_acc51591-256c-4bed-9a51-514b1811f4cd/manifest.json +0 -6
  43. package/.flightline/mailboxes/mbx_b1efebd9-5981-49fa-8775-20fa00d0c902/manifest.json +0 -6
  44. package/.flightline/mailboxes/mbx_ba9d4c61-39a3-4852-95d7-bd34e3605a43/manifest.json +0 -6
  45. package/.flightline/mailboxes/mbx_c549b60f-65fd-48d5-8cd6-2f053292b112/manifest.json +0 -6
  46. package/.flightline/mailboxes/mbx_d0f839a5-3ab9-42e2-b438-df5825d049fe/manifest.json +0 -6
  47. package/.flightline/mailboxes/mbx_d826d57e-9817-4f3c-ab94-2bfafa352f6d/manifest.json +0 -6
  48. package/.flightline/mailboxes/mbx_da102f37-632c-4c0b-be4c-4270a74c06b9/manifest.json +0 -6
  49. package/.flightline/mailboxes/mbx_df4506f5-67f2-4cf6-9113-93994b76f39b/manifest.json +0 -6
  50. package/.flightline/mailboxes/mbx_e038e93b-87ea-4122-9578-6540018697b7/manifest.json +0 -6
  51. package/.flightline/mailboxes/mbx_e0c171c5-407f-44dc-9ef9-e26e8b99ceac/manifest.json +0 -6
  52. package/.flightline/mailboxes/mbx_e64770bf-7220-4d0f-848c-d751ea1c7376/manifest.json +0 -6
  53. package/.flightline/mailboxes/mbx_e7f0edda-0fab-484d-ab4d-d8a8e363cd14/manifest.json +0 -6
  54. package/.flightline/mailboxes/mbx_ec7d9118-8594-4d79-bf79-f43afdfaf156/manifest.json +0 -6
  55. package/.flightline/mailboxes/mbx_ee06ec01-03e4-485a-ae2b-d8bdb6e7a3a8/manifest.json +0 -6
  56. package/.flightline/mailboxes/mbx_fd467681-f9cf-4a54-b06a-836df6de2ccc/manifest.json +0 -6
  57. package/.flightline/progress.db +0 -0
  58. package/.flightline/recovery.log +0 -1
  59. package/.flightline/tasks.db +0 -0
  60. package/.flightline/tech-orders/to_0c93d981-6b4e-4055-8678-f39c009d1db1.json +0 -11
  61. package/.flightline/tech-orders/to_1862f8ed-c487-4914-9f1e-528af6d4f053.json +0 -11
  62. package/.flightline/tech-orders/to_2335a57d-f400-4efa-b108-e13ece57520d.json +0 -11
  63. package/.flightline/tech-orders/to_2bd8dbdd-ac57-4b84-b977-33a3637d10d1.json +0 -11
  64. package/.flightline/tech-orders/to_37057c01-39b5-403a-991f-afb186abde95.json +0 -11
  65. package/.flightline/tech-orders/to_9e7288bb-c0fd-488a-a83d-1e9337bd0f1f.json +0 -11
  66. package/.flightline/tech-orders/to_aa0fe80b-9de7-40f6-a106-353b5bca10bd.json +0 -11
  67. package/.flightline/tech-orders/to_c1a0f480-c863-4203-a070-76ad77137845.json +0 -11
  68. package/.flightline/tech-orders/to_cf1e882a-cf56-45a4-8d19-494925e5f449.json +0 -11
  69. package/.flightline/work-orders/wo_5a29168d-5fb4-41d7-8dac-1d1151d9248f/manifest.json +0 -15
  70. package/.flightline/work-orders/wo_6c8c38bb-17a1-4885-ada4-dbfc5cc12d7a/manifest.json +0 -15
  71. package/.flightline/work-orders/wo_cadeb9b2-ea42-4491-b429-e2d467942b5c/manifest.json +0 -12
  72. package/.flightline/work-orders/wo_cc7b669c-16c4-4ef7-8a76-d1813219d0be/manifest.json +0 -15
  73. package/dist/agent-lifecycle.js +0 -148
  74. package/dist/agent-spawner.js +0 -460
  75. package/dist/agent-validation.js +0 -111
  76. package/dist/index.js +0 -255
  77. package/dist/server/api/src/coordination/agent-lifecycle.d.ts +0 -12
  78. package/dist/server/api/src/coordination/agent-lifecycle.d.ts.map +0 -1
  79. package/dist/server/api/src/coordination/agent-lifecycle.js +0 -12
  80. package/dist/server/api/src/coordination/agent-lifecycle.js.map +0 -1
  81. package/dist/server/api/src/coordination/agent-runner.d.ts +0 -9
  82. package/dist/server/api/src/coordination/agent-runner.d.ts.map +0 -1
  83. package/dist/server/api/src/coordination/agent-runner.js +0 -416
  84. package/dist/server/api/src/coordination/agent-runner.js.map +0 -1
  85. package/dist/server/api/src/coordination/agent-spawner-routes.d.ts +0 -7
  86. package/dist/server/api/src/coordination/agent-spawner-routes.d.ts.map +0 -1
  87. package/dist/server/api/src/coordination/agent-spawner-routes.js +0 -321
  88. package/dist/server/api/src/coordination/agent-spawner-routes.js.map +0 -1
  89. package/dist/server/api/src/coordination/agent-spawner.d.ts +0 -187
  90. package/dist/server/api/src/coordination/agent-spawner.d.ts.map +0 -1
  91. package/dist/server/api/src/coordination/agent-spawner.js +0 -712
  92. package/dist/server/api/src/coordination/agent-spawner.js.map +0 -1
  93. package/dist/server/api/src/coordination/agents.d.ts +0 -13
  94. package/dist/server/api/src/coordination/agents.d.ts.map +0 -1
  95. package/dist/server/api/src/coordination/agents.js +0 -464
  96. package/dist/server/api/src/coordination/agents.js.map +0 -1
  97. package/dist/server/api/src/coordination/checkpoint-routes.d.ts +0 -33
  98. package/dist/server/api/src/coordination/checkpoint-routes.d.ts.map +0 -1
  99. package/dist/server/api/src/coordination/checkpoint-routes.js +0 -323
  100. package/dist/server/api/src/coordination/checkpoint-routes.js.map +0 -1
  101. package/dist/server/api/src/coordination/conflict-resolver.d.ts +0 -152
  102. package/dist/server/api/src/coordination/conflict-resolver.d.ts.map +0 -1
  103. package/dist/server/api/src/coordination/conflict-resolver.js +0 -502
  104. package/dist/server/api/src/coordination/conflict-resolver.js.map +0 -1
  105. package/dist/server/api/src/coordination/missions.d.ts +0 -9
  106. package/dist/server/api/src/coordination/missions.d.ts.map +0 -1
  107. package/dist/server/api/src/coordination/missions.js +0 -148
  108. package/dist/server/api/src/coordination/missions.js.map +0 -1
  109. package/dist/server/api/src/coordination/monitor.d.ts +0 -175
  110. package/dist/server/api/src/coordination/monitor.d.ts.map +0 -1
  111. package/dist/server/api/src/coordination/monitor.js +0 -410
  112. package/dist/server/api/src/coordination/monitor.js.map +0 -1
  113. package/dist/server/api/src/coordination/notifier.d.ts +0 -160
  114. package/dist/server/api/src/coordination/notifier.d.ts.map +0 -1
  115. package/dist/server/api/src/coordination/notifier.js +0 -422
  116. package/dist/server/api/src/coordination/notifier.js.map +0 -1
  117. package/dist/server/api/src/coordination/progress-tracker.d.ts +0 -98
  118. package/dist/server/api/src/coordination/progress-tracker.d.ts.map +0 -1
  119. package/dist/server/api/src/coordination/progress-tracker.js +0 -323
  120. package/dist/server/api/src/coordination/progress-tracker.js.map +0 -1
  121. package/dist/server/api/src/coordination/recovery-manager.d.ts +0 -135
  122. package/dist/server/api/src/coordination/recovery-manager.d.ts.map +0 -1
  123. package/dist/server/api/src/coordination/recovery-manager.js +0 -435
  124. package/dist/server/api/src/coordination/recovery-manager.js.map +0 -1
  125. package/dist/server/api/src/coordination/task-decomposer.d.ts +0 -90
  126. package/dist/server/api/src/coordination/task-decomposer.d.ts.map +0 -1
  127. package/dist/server/api/src/coordination/task-decomposer.js +0 -412
  128. package/dist/server/api/src/coordination/task-decomposer.js.map +0 -1
  129. package/dist/server/api/src/coordination/task-queue-routes.d.ts +0 -7
  130. package/dist/server/api/src/coordination/task-queue-routes.d.ts.map +0 -1
  131. package/dist/server/api/src/coordination/task-queue-routes.js +0 -266
  132. package/dist/server/api/src/coordination/task-queue-routes.js.map +0 -1
  133. package/dist/server/api/src/coordination/task-queue.d.ts +0 -104
  134. package/dist/server/api/src/coordination/task-queue.d.ts.map +0 -1
  135. package/dist/server/api/src/coordination/task-queue.js +0 -378
  136. package/dist/server/api/src/coordination/task-queue.js.map +0 -1
  137. package/dist/server/api/src/coordination/tasks.d.ts +0 -7
  138. package/dist/server/api/src/coordination/tasks.d.ts.map +0 -1
  139. package/dist/server/api/src/coordination/tasks.js +0 -59
  140. package/dist/server/api/src/coordination/tasks.js.map +0 -1
  141. package/dist/server/api/src/decomposition/cli.d.ts +0 -18
  142. package/dist/server/api/src/decomposition/cli.d.ts.map +0 -1
  143. package/dist/server/api/src/decomposition/cli.js +0 -191
  144. package/dist/server/api/src/decomposition/cli.js.map +0 -1
  145. package/dist/server/api/src/decomposition/codebase-analyzer.d.ts +0 -59
  146. package/dist/server/api/src/decomposition/codebase-analyzer.d.ts.map +0 -1
  147. package/dist/server/api/src/decomposition/codebase-analyzer.js +0 -274
  148. package/dist/server/api/src/decomposition/codebase-analyzer.js.map +0 -1
  149. package/dist/server/api/src/decomposition/dependency-resolver.d.ts +0 -68
  150. package/dist/server/api/src/decomposition/dependency-resolver.d.ts.map +0 -1
  151. package/dist/server/api/src/decomposition/dependency-resolver.js +0 -261
  152. package/dist/server/api/src/decomposition/dependency-resolver.js.map +0 -1
  153. package/dist/server/api/src/decomposition/index.d.ts +0 -17
  154. package/dist/server/api/src/decomposition/index.d.ts.map +0 -1
  155. package/dist/server/api/src/decomposition/index.js +0 -19
  156. package/dist/server/api/src/decomposition/index.js.map +0 -1
  157. package/dist/server/api/src/decomposition/parallelization.d.ts +0 -40
  158. package/dist/server/api/src/decomposition/parallelization.d.ts.map +0 -1
  159. package/dist/server/api/src/decomposition/parallelization.js +0 -144
  160. package/dist/server/api/src/decomposition/parallelization.js.map +0 -1
  161. package/dist/server/api/src/decomposition/planner.d.ts +0 -84
  162. package/dist/server/api/src/decomposition/planner.d.ts.map +0 -1
  163. package/dist/server/api/src/decomposition/planner.js +0 -415
  164. package/dist/server/api/src/decomposition/planner.js.map +0 -1
  165. package/dist/server/api/src/decomposition/routes.d.ts +0 -13
  166. package/dist/server/api/src/decomposition/routes.d.ts.map +0 -1
  167. package/dist/server/api/src/decomposition/routes.js +0 -114
  168. package/dist/server/api/src/decomposition/routes.js.map +0 -1
  169. package/dist/server/api/src/decomposition/strategies.d.ts +0 -43
  170. package/dist/server/api/src/decomposition/strategies.d.ts.map +0 -1
  171. package/dist/server/api/src/decomposition/strategies.js +0 -147
  172. package/dist/server/api/src/decomposition/strategies.js.map +0 -1
  173. package/dist/server/api/src/decomposition/types.d.ts +0 -1090
  174. package/dist/server/api/src/decomposition/types.d.ts.map +0 -1
  175. package/dist/server/api/src/decomposition/types.js +0 -65
  176. package/dist/server/api/src/decomposition/types.js.map +0 -1
  177. package/dist/server/api/src/decomposition/validator.d.ts +0 -84
  178. package/dist/server/api/src/decomposition/validator.d.ts.map +0 -1
  179. package/dist/server/api/src/decomposition/validator.js +0 -314
  180. package/dist/server/api/src/decomposition/validator.js.map +0 -1
  181. package/dist/server/api/src/flightline/ctk.d.ts +0 -2
  182. package/dist/server/api/src/flightline/ctk.d.ts.map +0 -1
  183. package/dist/server/api/src/flightline/ctk.js +0 -114
  184. package/dist/server/api/src/flightline/ctk.js.map +0 -1
  185. package/dist/server/api/src/flightline/tech-orders.d.ts +0 -2
  186. package/dist/server/api/src/flightline/tech-orders.d.ts.map +0 -1
  187. package/dist/server/api/src/flightline/tech-orders.js +0 -74
  188. package/dist/server/api/src/flightline/tech-orders.js.map +0 -1
  189. package/dist/server/api/src/flightline/work-orders.d.ts +0 -2
  190. package/dist/server/api/src/flightline/work-orders.d.ts.map +0 -1
  191. package/dist/server/api/src/flightline/work-orders.js +0 -178
  192. package/dist/server/api/src/flightline/work-orders.js.map +0 -1
  193. package/dist/server/api/src/index.d.ts +0 -3
  194. package/dist/server/api/src/index.d.ts.map +0 -1
  195. package/dist/server/api/src/index.js +0 -192
  196. package/dist/server/api/src/index.js.map +0 -1
  197. package/dist/server/api/src/middleware/agent-validation.d.ts +0 -161
  198. package/dist/server/api/src/middleware/agent-validation.d.ts.map +0 -1
  199. package/dist/server/api/src/middleware/agent-validation.js +0 -112
  200. package/dist/server/api/src/middleware/agent-validation.js.map +0 -1
  201. package/dist/server/api/src/middleware/error-handler.d.ts +0 -8
  202. package/dist/server/api/src/middleware/error-handler.d.ts.map +0 -1
  203. package/dist/server/api/src/middleware/error-handler.js +0 -54
  204. package/dist/server/api/src/middleware/error-handler.js.map +0 -1
  205. package/dist/server/api/src/middleware/logger.d.ts +0 -8
  206. package/dist/server/api/src/middleware/logger.d.ts.map +0 -1
  207. package/dist/server/api/src/middleware/logger.js +0 -31
  208. package/dist/server/api/src/middleware/logger.js.map +0 -1
  209. package/dist/server/api/src/middleware/validation.d.ts +0 -322
  210. package/dist/server/api/src/middleware/validation.d.ts.map +0 -1
  211. package/dist/server/api/src/middleware/validation.js +0 -189
  212. package/dist/server/api/src/middleware/validation.js.map +0 -1
  213. package/dist/server/api/src/squawk/blocker-handler.d.ts +0 -111
  214. package/dist/server/api/src/squawk/blocker-handler.d.ts.map +0 -1
  215. package/dist/server/api/src/squawk/blocker-handler.js +0 -262
  216. package/dist/server/api/src/squawk/blocker-handler.js.map +0 -1
  217. package/dist/server/api/src/squawk/coordinator.d.ts +0 -2
  218. package/dist/server/api/src/squawk/coordinator.d.ts.map +0 -1
  219. package/dist/server/api/src/squawk/coordinator.js +0 -24
  220. package/dist/server/api/src/squawk/coordinator.js.map +0 -1
  221. package/dist/server/api/src/squawk/cursor.d.ts +0 -2
  222. package/dist/server/api/src/squawk/cursor.d.ts.map +0 -1
  223. package/dist/server/api/src/squawk/cursor.js +0 -55
  224. package/dist/server/api/src/squawk/cursor.js.map +0 -1
  225. package/dist/server/api/src/squawk/dependency-resolver.d.ts +0 -107
  226. package/dist/server/api/src/squawk/dependency-resolver.d.ts.map +0 -1
  227. package/dist/server/api/src/squawk/dependency-resolver.js +0 -324
  228. package/dist/server/api/src/squawk/dependency-resolver.js.map +0 -1
  229. package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts +0 -117
  230. package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts.map +0 -1
  231. package/dist/server/api/src/squawk/dispatch-orchestrator.js +0 -296
  232. package/dist/server/api/src/squawk/dispatch-orchestrator.js.map +0 -1
  233. package/dist/server/api/src/squawk/lock-coordinator.d.ts +0 -118
  234. package/dist/server/api/src/squawk/lock-coordinator.d.ts.map +0 -1
  235. package/dist/server/api/src/squawk/lock-coordinator.js +0 -279
  236. package/dist/server/api/src/squawk/lock-coordinator.js.map +0 -1
  237. package/dist/server/api/src/squawk/lock.d.ts +0 -2
  238. package/dist/server/api/src/squawk/lock.d.ts.map +0 -1
  239. package/dist/server/api/src/squawk/lock.js +0 -87
  240. package/dist/server/api/src/squawk/lock.js.map +0 -1
  241. package/dist/server/api/src/squawk/mailbox.d.ts +0 -2
  242. package/dist/server/api/src/squawk/mailbox.d.ts.map +0 -1
  243. package/dist/server/api/src/squawk/mailbox.js +0 -66
  244. package/dist/server/api/src/squawk/mailbox.js.map +0 -1
  245. package/dist/server/api/src/squawk/spawning.d.ts +0 -79
  246. package/dist/server/api/src/squawk/spawning.d.ts.map +0 -1
  247. package/dist/server/api/src/squawk/spawning.js +0 -226
  248. package/dist/server/api/src/squawk/spawning.js.map +0 -1
  249. package/dist/server/api/src/squawk/specialist-tools.d.ts +0 -206
  250. package/dist/server/api/src/squawk/specialist-tools.d.ts.map +0 -1
  251. package/dist/server/api/src/squawk/specialist-tools.js +0 -411
  252. package/dist/server/api/src/squawk/specialist-tools.js.map +0 -1
  253. package/dist/server/api/src/types/api.d.ts +0 -63
  254. package/dist/server/api/src/types/api.d.ts.map +0 -1
  255. package/dist/server/api/src/types/api.js +0 -5
  256. package/dist/server/api/src/types/api.js.map +0 -1
  257. package/dist/squawk/src/db/index.d.ts +0 -30
  258. package/dist/squawk/src/db/index.d.ts.map +0 -1
  259. package/dist/squawk/src/db/index.js +0 -329
  260. package/dist/squawk/src/db/index.js.map +0 -1
  261. package/dist/squawk/src/db/sqlite.d.ts +0 -31
  262. package/dist/squawk/src/db/sqlite.d.ts.map +0 -1
  263. package/dist/squawk/src/db/sqlite.js +0 -558
  264. package/dist/squawk/src/db/sqlite.js.map +0 -1
  265. package/dist/squawk/src/db/types.d.ts +0 -611
  266. package/dist/squawk/src/db/types.d.ts.map +0 -1
  267. package/dist/squawk/src/db/types.js +0 -4
  268. package/dist/squawk/src/db/types.js.map +0 -1
  269. package/dist/task-queue.js +0 -377
  270. package/dist/validation.js +0 -188
  271. package/e2e-integration.test.ts +0 -290
  272. package/integration.test.ts +0 -186
  273. package/phase1-integration.test.ts +0 -455
  274. package/phase2-verification.test.ts +0 -135
  275. package/server.log +0 -58
  276. package/src/agent-runner.js +0 -877
  277. package/src/coordination/agent-lifecycle.ts +0 -13
  278. package/src/coordination/agent-runner.ts +0 -479
  279. package/src/coordination/agent-spawner-routes.ts +0 -340
  280. package/src/coordination/agent-spawner.ts +0 -885
  281. package/src/coordination/agents.ts +0 -525
  282. package/src/coordination/checkpoint-routes.ts +0 -382
  283. package/src/coordination/conflict-resolver.ts +0 -640
  284. package/src/coordination/missions.ts +0 -219
  285. package/src/coordination/monitor.ts +0 -593
  286. package/src/coordination/notifier.ts +0 -547
  287. package/src/coordination/progress-tracker.ts +0 -410
  288. package/src/coordination/recovery-manager.ts +0 -531
  289. package/src/coordination/task-decomposer.ts +0 -491
  290. package/src/coordination/task-queue-routes.ts +0 -284
  291. package/src/coordination/task-queue.ts +0 -480
  292. package/src/coordination/tasks.ts +0 -72
  293. package/src/flightline/ctk.ts +0 -131
  294. package/src/flightline/tech-orders.ts +0 -85
  295. package/src/flightline/work-orders.ts +0 -202
  296. package/src/index.ts +0 -211
  297. package/src/middleware/agent-validation.ts +0 -130
  298. package/src/middleware/error-handler.ts +0 -59
  299. package/src/middleware/logger.ts +0 -37
  300. package/src/middleware/validation.ts +0 -235
  301. package/src/squawk/coordinator.ts +0 -26
  302. package/src/squawk/cursor.ts +0 -62
  303. package/src/squawk/lock.ts +0 -98
  304. package/src/squawk/mailbox.ts +0 -75
  305. package/src/types/api.ts +0 -71
  306. package/test-api.ts +0 -310
  307. package/test-enhanced-agents.ts +0 -428
@@ -1,640 +0,0 @@
1
- /**
2
- * Conflict Resolver for FleetTools Coordination System
3
- *
4
- * Detects and resolves conflicts between agents
5
- * Handles resource, task, and data conflicts
6
- */
7
-
8
- import { randomUUID } from 'node:crypto';
9
-
10
- export enum ConflictType {
11
- RESOURCE = 'resource',
12
- TASK = 'task',
13
- DATA = 'data'
14
- }
15
-
16
- export enum ConflictSeverity {
17
- LOW = 'low',
18
- MEDIUM = 'medium',
19
- HIGH = 'high',
20
- CRITICAL = 'critical'
21
- }
22
-
23
- export enum ConflictResolution {
24
- FIRST_COME_FIRST_SERVE = 'first_come_first_serve',
25
- PRIORITY_BASED = 'priority_based',
26
- RESOURCE_SHARING = 'resource_sharing',
27
- TASK_SPLITTING = 'task_splitting',
28
- AGENT_COOPERATION = 'agent_cooperation',
29
- ARBITRATION = 'arbitration'
30
- }
31
-
32
- export interface Conflict {
33
- id: string;
34
- type: ConflictType;
35
- agents: string[];
36
- description: string;
37
- severity: ConflictSeverity;
38
- detectedAt: string;
39
- resolvedAt?: string;
40
- resolution?: ConflictResolution;
41
- resolutionDetails?: string;
42
- metadata: Record<string, any>;
43
- }
44
-
45
- export interface Resource {
46
- id: string;
47
- type: 'file' | 'directory' | 'port' | 'memory' | 'cpu' | 'database_connection';
48
- name: string;
49
- lockedBy?: string;
50
- lockType?: 'exclusive' | 'shared';
51
- lockExpiry?: string;
52
- }
53
-
54
- export interface ConflictResolutionStrategy {
55
- conflictType: ConflictType;
56
- severity: ConflictSeverity;
57
- strategy: ConflictResolution;
58
- conditions?: Record<string, any>;
59
- priority: number; // Higher number = higher priority
60
- }
61
-
62
- export interface ConflictResolverConfig {
63
- strategies: ConflictResolutionStrategy[];
64
- autoResolveThreshold: ConflictSeverity;
65
- arbitrationRequired: boolean;
66
- conflictRetentionDays: number;
67
- }
68
-
69
- export class ConflictResolver {
70
- private config: ConflictResolverConfig;
71
- private conflicts: Map<string, Conflict> = new Map();
72
- private resources: Map<string, Resource> = new Map();
73
-
74
- constructor(config: Partial<ConflictResolverConfig> = {}) {
75
- this.config = {
76
- strategies: this.getDefaultStrategies(),
77
- autoResolveThreshold: ConflictSeverity.MEDIUM,
78
- arbitrationRequired: false,
79
- conflictRetentionDays: 7,
80
- ...config
81
- };
82
-
83
- console.log('✓ ConflictResolver initialized');
84
- }
85
-
86
- /**
87
- * Detect potential conflicts between agents
88
- */
89
- async detectConflicts(agents: Array<{
90
- id: string;
91
- type: string;
92
- currentTask?: string;
93
- resources?: string[];
94
- metadata?: Record<string, any>;
95
- }>): Promise<Conflict[]> {
96
- const detectedConflicts: Conflict[] = [];
97
-
98
- // Check for resource conflicts
99
- const resourceConflicts = await this.detectResourceConflicts(agents);
100
- detectedConflicts.push(...resourceConflicts);
101
-
102
- // Check for task conflicts
103
- const taskConflicts = await this.detectTaskConflicts(agents);
104
- detectedConflicts.push(...taskConflicts);
105
-
106
- // Check for data conflicts
107
- const dataConflicts = await this.detectDataConflicts(agents);
108
- detectedConflicts.push(...dataConflicts);
109
-
110
- // Store detected conflicts
111
- detectedConflicts.forEach(conflict => {
112
- this.conflicts.set(conflict.id, conflict);
113
- });
114
-
115
- if (detectedConflicts.length > 0) {
116
- console.log(`⚠️ Detected ${detectedConflicts.length} conflicts`);
117
- }
118
-
119
- return detectedConflicts;
120
- }
121
-
122
- /**
123
- * Detect resource conflicts between agents
124
- */
125
- private async detectResourceConflicts(agents: Array<{
126
- id: string;
127
- resources?: string[];
128
- }>): Promise<Conflict[]> {
129
- const conflicts: Conflict[] = [];
130
- const resourceUsage = new Map<string, string[]>(); // resource -> agents
131
-
132
- // Map resource usage
133
- agents.forEach(agent => {
134
- if (agent.resources) {
135
- agent.resources.forEach(resource => {
136
- if (!resourceUsage.has(resource)) {
137
- resourceUsage.set(resource, []);
138
- }
139
- resourceUsage.get(resource)!.push(agent.id);
140
- });
141
- }
142
- });
143
-
144
- // Find conflicts (multiple agents using same resource)
145
- for (const [resource, agentIds] of resourceUsage.entries()) {
146
- if (agentIds.length > 1) {
147
- const conflict: Conflict = {
148
- id: `cfl_${randomUUID()}`,
149
- type: ConflictType.RESOURCE,
150
- agents: agentIds,
151
- description: `Multiple agents accessing resource: ${resource}`,
152
- severity: this.assessResourceConflictSeverity(resource, agentIds),
153
- detectedAt: new Date().toISOString(),
154
- metadata: {
155
- resource,
156
- resourceType: this.inferResourceType(resource),
157
- conflictingAgents: agentIds
158
- }
159
- };
160
- conflicts.push(conflict);
161
- }
162
- }
163
-
164
- return conflicts;
165
- }
166
-
167
- /**
168
- * Detect task conflicts between agents
169
- */
170
- private async detectTaskConflicts(agents: Array<{
171
- id: string;
172
- currentTask?: string;
173
- metadata?: Record<string, any>;
174
- }>): Promise<Conflict[]> {
175
- const conflicts: Conflict[] = [];
176
- const taskAssignments = new Map<string, string[]>(); // task -> agents
177
-
178
- // Map task assignments
179
- agents.forEach(agent => {
180
- if (agent.currentTask) {
181
- if (!taskAssignments.has(agent.currentTask)) {
182
- taskAssignments.set(agent.currentTask, []);
183
- }
184
- taskAssignments.get(agent.currentTask)!.push(agent.id);
185
- }
186
- });
187
-
188
- // Find conflicts (multiple agents working on same task)
189
- for (const [task, agentIds] of taskAssignments.entries()) {
190
- if (agentIds.length > 1) {
191
- const conflict: Conflict = {
192
- id: `cfl_${randomUUID()}`,
193
- type: ConflictType.TASK,
194
- agents: agentIds,
195
- description: `Multiple agents working on task: ${task}`,
196
- severity: ConflictSeverity.HIGH,
197
- detectedAt: new Date().toISOString(),
198
- metadata: {
199
- task,
200
- conflictingAgents: agentIds,
201
- taskType: this.inferTaskType(task)
202
- }
203
- };
204
- conflicts.push(conflict);
205
- }
206
- }
207
-
208
- return conflicts;
209
- }
210
-
211
- /**
212
- * Detect data conflicts between agents
213
- */
214
- private async detectDataConflicts(agents: Array<{
215
- id: string;
216
- metadata?: Record<string, any>;
217
- }>): Promise<Conflict[]> {
218
- const conflicts: Conflict[] = [];
219
- const dataAccess = new Map<string, string[]>(); // data -> agents
220
-
221
- // Map data access based on metadata
222
- agents.forEach(agent => {
223
- if (agent.metadata) {
224
- const accessedData = this.extractAccessedData(agent.metadata);
225
- accessedData.forEach(data => {
226
- if (!dataAccess.has(data)) {
227
- dataAccess.set(data, []);
228
- }
229
- dataAccess.get(data)!.push(agent.id);
230
- });
231
- }
232
- });
233
-
234
- // Find conflicts (simultaneous write access)
235
- for (const [data, agentIds] of dataAccess.entries()) {
236
- if (agentIds.length > 1) {
237
- const conflict: Conflict = {
238
- id: `cfl_${randomUUID()}`,
239
- type: ConflictType.DATA,
240
- agents: agentIds,
241
- description: `Concurrent data access: ${data}`,
242
- severity: this.assessDataConflictSeverity(data, agentIds),
243
- detectedAt: new Date().toISOString(),
244
- metadata: {
245
- data,
246
- conflictingAgents: agentIds,
247
- accessType: 'write'
248
- }
249
- };
250
- conflicts.push(conflict);
251
- }
252
- }
253
-
254
- return conflicts;
255
- }
256
-
257
- /**
258
- * Resolve detected conflicts
259
- */
260
- async resolveConflict(conflictId: string): Promise<Conflict> {
261
- const conflict = this.conflicts.get(conflictId);
262
- if (!conflict) {
263
- throw new Error(`Conflict not found: ${conflictId}`);
264
- }
265
-
266
- // Check if already resolved
267
- if (conflict.resolvedAt) {
268
- return conflict;
269
- }
270
-
271
- // Find applicable resolution strategy
272
- const strategy = this.findResolutionStrategy(conflict);
273
-
274
- // Apply resolution
275
- const resolutionResult = await this.applyResolution(conflict, strategy);
276
-
277
- // Update conflict
278
- conflict.resolvedAt = new Date().toISOString();
279
- conflict.resolution = strategy;
280
- conflict.resolutionDetails = resolutionResult.description;
281
- this.conflicts.set(conflictId, conflict);
282
-
283
- console.log(`✓ Resolved conflict ${conflictId} using ${strategy} strategy`);
284
- return conflict;
285
- }
286
-
287
- /**
288
- * Find appropriate resolution strategy for conflict
289
- */
290
- private findResolutionStrategy(conflict: Conflict): ConflictResolution {
291
- // Find matching strategies
292
- const applicableStrategies = this.config.strategies.filter(strategy =>
293
- strategy.conflictType === conflict.type &&
294
- (strategy.severity === conflict.severity || strategy.severity === ConflictSeverity.CRITICAL)
295
- );
296
-
297
- if (applicableStrategies.length === 0) {
298
- return ConflictResolution.FIRST_COME_FIRST_SERVE;
299
- }
300
-
301
- // Sort by priority and return highest priority
302
- applicableStrategies.sort((a, b) => b.priority - a.priority);
303
- return applicableStrategies[0].strategy;
304
- }
305
-
306
- /**
307
- * Apply resolution strategy to conflict
308
- */
309
- private async applyResolution(conflict: Conflict, strategy: ConflictResolution): Promise<{
310
- description: string;
311
- actions: string[];
312
- }> {
313
- switch (strategy) {
314
- case ConflictResolution.FIRST_COME_FIRST_SERVE:
315
- return this.applyFirstComeFirstServe(conflict);
316
-
317
- case ConflictResolution.PRIORITY_BASED:
318
- return this.applyPriorityBased(conflict);
319
-
320
- case ConflictResolution.RESOURCE_SHARING:
321
- return this.applyResourceSharing(conflict);
322
-
323
- case ConflictResolution.TASK_SPLITTING:
324
- return this.applyTaskSplitting(conflict);
325
-
326
- case ConflictResolution.AGENT_COOPERATION:
327
- return this.applyAgentCooperation(conflict);
328
-
329
- case ConflictResolution.ARBITRATION:
330
- return this.applyArbitration(conflict);
331
-
332
- default:
333
- return this.applyFirstComeFirstServe(conflict);
334
- }
335
- }
336
-
337
- /**
338
- * Apply first-come-first-serve resolution
339
- */
340
- private applyFirstComeFirstServe(conflict: Conflict): {
341
- description: string;
342
- actions: string[];
343
- } {
344
- const winner = conflict.agents[0]; // First agent gets priority
345
- const losers = conflict.agents.slice(1);
346
-
347
- return {
348
- description: `Agent ${winner} retains access, others must wait`,
349
- actions: [
350
- `Grant continued access to agent ${winner}`,
351
- `Request ${losers.join(', ')} to release resources`,
352
- `Queue ${losers.join(', ')} for later access`
353
- ]
354
- };
355
- }
356
-
357
- /**
358
- * Apply priority-based resolution
359
- */
360
- private applyPriorityBased(conflict: Conflict): {
361
- description: string;
362
- actions: string[];
363
- } {
364
- // For now, use agent order as priority (in real implementation, this would use agent priorities)
365
- const winner = conflict.agents[0];
366
- const losers = conflict.agents.slice(1);
367
-
368
- return {
369
- description: `Higher priority agent ${winner} wins conflict`,
370
- actions: [
371
- `Assign priority to agent ${winner}`,
372
- `Suspend work for ${losers.join(', ')}`,
373
- `Resume suspended agents when resource available`
374
- ]
375
- };
376
- }
377
-
378
- /**
379
- * Apply resource sharing resolution
380
- */
381
- private applyResourceSharing(conflict: Conflict): {
382
- description: string;
383
- actions: string[];
384
- } {
385
- return {
386
- description: `Enable resource sharing between agents ${conflict.agents.join(', ')}`,
387
- actions: [
388
- `Convert resource locks to shared mode`,
389
- `Coordinate access between all agents`,
390
- `Monitor for additional conflicts`
391
- ]
392
- };
393
- }
394
-
395
- /**
396
- * Apply task splitting resolution
397
- */
398
- private applyTaskSplitting(conflict: Conflict): {
399
- description: string;
400
- actions: string[];
401
- } {
402
- return {
403
- description: `Split task to avoid agent conflicts`,
404
- actions: [
405
- `Divide task into subtasks`,
406
- `Assign subtasks to different agents`,
407
- `Coordinate subtask integration`
408
- ]
409
- };
410
- }
411
-
412
- /**
413
- * Apply agent cooperation resolution
414
- */
415
- private applyAgentCooperation(conflict: Conflict): {
416
- description: string;
417
- actions: string[];
418
- } {
419
- return {
420
- description: `Enable cooperation between agents ${conflict.agents.join(', ')}`,
421
- actions: [
422
- `Establish communication channel between agents`,
423
- `Define shared responsibility areas`,
424
- `Create cooperation protocol`
425
- ]
426
- };
427
- }
428
-
429
- /**
430
- * Apply arbitration resolution
431
- */
432
- private applyArbitration(conflict: Conflict): {
433
- description: string;
434
- actions: string[];
435
- } {
436
- // Simple arbitration based on agent ID (in real implementation, this would be more sophisticated)
437
- const winner = conflict.agents.sort()[0];
438
-
439
- return {
440
- description: `Arbitration awards resource to agent ${winner}`,
441
- actions: [
442
- `Conduct arbitration between agents`,
443
- `Award resource access to agent ${winner}`,
444
- `Document arbitration decision`
445
- ]
446
- };
447
- }
448
-
449
- /**
450
- * Get all conflicts
451
- */
452
- getConflicts(): Conflict[] {
453
- return Array.from(this.conflicts.values());
454
- }
455
-
456
- /**
457
- * Get unresolved conflicts
458
- */
459
- getUnresolvedConflicts(): Conflict[] {
460
- return Array.from(this.conflicts.values()).filter(conflict => !conflict.resolvedAt);
461
- }
462
-
463
- /**
464
- * Auto-resolve conflicts below threshold
465
- */
466
- async autoResolveConflicts(): Promise<Conflict[]> {
467
- const unresolvedConflicts = this.getUnresolvedConflicts();
468
- const autoResolvable = unresolvedConflicts.filter(conflict =>
469
- this.isSeverityBelowThreshold(conflict.severity)
470
- );
471
-
472
- const resolved: Conflict[] = [];
473
- for (const conflict of autoResolvable) {
474
- try {
475
- const resolvedConflict = await this.resolveConflict(conflict.id);
476
- resolved.push(resolvedConflict);
477
- } catch (error) {
478
- console.error(`Failed to auto-resolve conflict ${conflict.id}:`, error);
479
- }
480
- }
481
-
482
- if (resolved.length > 0) {
483
- console.log(`🤖 Auto-resolved ${resolved.length} conflicts`);
484
- }
485
-
486
- return resolved;
487
- }
488
-
489
- /**
490
- * Helper methods
491
- */
492
- private assessResourceConflictSeverity(resource: string, agentIds: string[]): ConflictSeverity {
493
- if (resource.includes('critical') || resource.includes('system')) {
494
- return ConflictSeverity.CRITICAL;
495
- }
496
- if (resource.includes('database') || resource.includes('auth')) {
497
- return ConflictSeverity.HIGH;
498
- }
499
- if (agentIds.length > 3) {
500
- return ConflictSeverity.HIGH;
501
- }
502
- return ConflictSeverity.MEDIUM;
503
- }
504
-
505
- private assessDataConflictSeverity(data: string, agentIds: string[]): ConflictSeverity {
506
- if (data.includes('sensitive') || data.includes('critical')) {
507
- return ConflictSeverity.CRITICAL;
508
- }
509
- if (agentIds.length > 2) {
510
- return ConflictSeverity.HIGH;
511
- }
512
- return ConflictSeverity.MEDIUM;
513
- }
514
-
515
- private inferResourceType(resource: string): string {
516
- if (resource.includes('file')) return 'file';
517
- if (resource.includes('port')) return 'port';
518
- if (resource.includes('memory') || resource.includes('cpu')) return 'system';
519
- return 'unknown';
520
- }
521
-
522
- private inferTaskType(task: string): string {
523
- if (task.includes('api')) return 'api_development';
524
- if (task.includes('test')) return 'testing';
525
- if (task.includes('doc')) return 'documentation';
526
- return 'general';
527
- }
528
-
529
- private extractAccessedData(metadata: Record<string, any>): string[] {
530
- const accessedData: string[] = [];
531
-
532
- if (metadata.files) {
533
- accessedData.push(...metadata.files);
534
- }
535
- if (metadata.databases) {
536
- accessedData.push(...metadata.databases);
537
- }
538
- if (metadata.endpoints) {
539
- accessedData.push(...metadata.endpoints);
540
- }
541
-
542
- return accessedData;
543
- }
544
-
545
- private isSeverityBelowThreshold(severity: ConflictSeverity): boolean {
546
- const severityOrder = [
547
- ConflictSeverity.LOW,
548
- ConflictSeverity.MEDIUM,
549
- ConflictSeverity.HIGH,
550
- ConflictSeverity.CRITICAL
551
- ];
552
-
553
- const thresholdIndex = severityOrder.indexOf(this.config.autoResolveThreshold);
554
- const severityIndex = severityOrder.indexOf(severity);
555
-
556
- return severityIndex <= thresholdIndex;
557
- }
558
-
559
- /**
560
- * Get default resolution strategies
561
- */
562
- private getDefaultStrategies(): ConflictResolutionStrategy[] {
563
- return [
564
- {
565
- conflictType: ConflictType.RESOURCE,
566
- severity: ConflictSeverity.LOW,
567
- strategy: ConflictResolution.RESOURCE_SHARING,
568
- priority: 1
569
- },
570
- {
571
- conflictType: ConflictType.RESOURCE,
572
- severity: ConflictSeverity.MEDIUM,
573
- strategy: ConflictResolution.PRIORITY_BASED,
574
- priority: 2
575
- },
576
- {
577
- conflictType: ConflictType.RESOURCE,
578
- severity: ConflictSeverity.HIGH,
579
- strategy: ConflictResolution.FIRST_COME_FIRST_SERVE,
580
- priority: 3
581
- },
582
- {
583
- conflictType: ConflictType.RESOURCE,
584
- severity: ConflictSeverity.CRITICAL,
585
- strategy: ConflictResolution.ARBITRATION,
586
- priority: 4
587
- },
588
- {
589
- conflictType: ConflictType.TASK,
590
- severity: ConflictSeverity.MEDIUM,
591
- strategy: ConflictResolution.TASK_SPLITTING,
592
- priority: 2
593
- },
594
- {
595
- conflictType: ConflictType.TASK,
596
- severity: ConflictSeverity.HIGH,
597
- strategy: ConflictResolution.AGENT_COOPERATION,
598
- priority: 3
599
- },
600
- {
601
- conflictType: ConflictType.DATA,
602
- severity: ConflictSeverity.LOW,
603
- strategy: ConflictResolution.RESOURCE_SHARING,
604
- priority: 1
605
- },
606
- {
607
- conflictType: ConflictType.DATA,
608
- severity: ConflictSeverity.MEDIUM,
609
- strategy: ConflictResolution.FIRST_COME_FIRST_SERVE,
610
- priority: 2
611
- },
612
- {
613
- conflictType: ConflictType.DATA,
614
- severity: ConflictSeverity.HIGH,
615
- strategy: ConflictResolution.ARBITRATION,
616
- priority: 3
617
- }
618
- ];
619
- }
620
-
621
- /**
622
- * Clean up old resolved conflicts
623
- */
624
- cleanupOldConflicts(): void {
625
- const cutoffDate = new Date();
626
- cutoffDate.setDate(cutoffDate.getDate() - this.config.conflictRetentionDays);
627
-
628
- let cleanedCount = 0;
629
- for (const [conflictId, conflict] of this.conflicts.entries()) {
630
- if (conflict.resolvedAt && new Date(conflict.resolvedAt) < cutoffDate) {
631
- this.conflicts.delete(conflictId);
632
- cleanedCount++;
633
- }
634
- }
635
-
636
- if (cleanedCount > 0) {
637
- console.log(`🧹 Cleaned up ${cleanedCount} old conflicts`);
638
- }
639
- }
640
- }