@fleettools/server 0.1.0 → 0.1.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.
- package/package.json +1 -1
- package/.flightline/checkpoints.db +0 -0
- package/.flightline/ctk/04a5510b-1e09-40c6-91c8-399c22138708.json +0 -9
- package/.flightline/ctk/0ecde721-7827-4039-995a-974e24493cc5.json +0 -9
- package/.flightline/ctk/268bbdbd-ddd7-46b2-845f-56a138aa518a.json +0 -9
- package/.flightline/ctk/6f476f2e-776c-407a-b441-b9365c0bae95.json +0 -9
- package/.flightline/ctk/7e10d0d5-fbc2-4661-af03-53de89e064db.json +0 -9
- package/.flightline/ctk/90783096-b7d4-49c5-8153-3c35018a2e61.json +0 -9
- package/.flightline/ctk/9a3b6d18-8a46-4728-90aa-279800a8e397.json +0 -9
- package/.flightline/ctk/ae30e192-b386-4ee2-899c-93f86785d3f3.json +0 -9
- package/.flightline/ctk/d0e9c49e-10df-413e-8cf7-37232b1838ca.json +0 -9
- package/.flightline/ctk/eae1a12b-2e9d-4c3f-8619-dafbb1346e96.json +0 -9
- package/.flightline/mailboxes/mbx_00dae6ba-0b5e-4a8d-a86d-93c8640872c3/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_05b0bfa9-c4f5-4f68-ba75-6202820f49c3/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_0a6b8fb2-729e-4385-8241-839c36b929d7/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_0abca4ab-8e34-409c-997f-481e80e450dc/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_173e5fb9-8203-418d-93c2-4f8c91f2d842/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_22b62201-0570-4ce8-b0a7-0f4b445f6d9e/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_2724efb1-76e1-4147-9620-4defcc65510f/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_35b8bfcd-5a54-48f1-8759-cb1f8ffe775d/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_3bc5193a-604d-4f52-be00-e56277643358/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_3bd500f3-c111-427a-8cd7-a004125d6dc1/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_45ce9ae8-5299-44dc-a1b5-4d63914a9609/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_4779c645-1efc-4c76-ab21-ff93f973ee8f/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_482237cf-87c8-486e-a24d-0941be2f480d/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_4b7e23c8-5680-4edd-a276-88803dd5fb6f/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_4dd3b945-d846-4c7a-94eb-6eeb25a0dc6b/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_4ec41a62-62bb-4be4-b3ce-282d5a33acce/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_4ff7ee7e-0c8a-43d6-a829-7c62c10af3b0/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_7661e4fb-a919-4af1-86f7-3eaef22f1d81/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_7ca872bb-69ab-4e7d-a7c6-4888ec8e7749/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_7e6d5707-2aa5-4770-a7be-6b1be93d0d87/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_87bef50d-3c59-429b-a995-5872f6278c37/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_88d1ea56-0b69-48c4-9fcf-ce1e1f7527ba/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_8bfb6bd7-07d1-4836-ae9d-3c93668c6dfe/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_93355083-e95b-4341-b625-56fcc1e4fc0c/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_999fd94c-ca56-4fec-8d30-8b677cf40ad6/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_a039fd15-7ee1-4bd6-906d-55dea8d0e489/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_a0b7363f-7cc6-4940-8e29-2dc85793a77d/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_a31e8b61-9643-4c78-939d-d1696d0420d9/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_acc51591-256c-4bed-9a51-514b1811f4cd/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_b1efebd9-5981-49fa-8775-20fa00d0c902/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_ba9d4c61-39a3-4852-95d7-bd34e3605a43/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_c549b60f-65fd-48d5-8cd6-2f053292b112/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_d0f839a5-3ab9-42e2-b438-df5825d049fe/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_d826d57e-9817-4f3c-ab94-2bfafa352f6d/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_da102f37-632c-4c0b-be4c-4270a74c06b9/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_df4506f5-67f2-4cf6-9113-93994b76f39b/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_e038e93b-87ea-4122-9578-6540018697b7/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_e0c171c5-407f-44dc-9ef9-e26e8b99ceac/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_e64770bf-7220-4d0f-848c-d751ea1c7376/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_e7f0edda-0fab-484d-ab4d-d8a8e363cd14/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_ec7d9118-8594-4d79-bf79-f43afdfaf156/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_ee06ec01-03e4-485a-ae2b-d8bdb6e7a3a8/manifest.json +0 -6
- package/.flightline/mailboxes/mbx_fd467681-f9cf-4a54-b06a-836df6de2ccc/manifest.json +0 -6
- package/.flightline/progress.db +0 -0
- package/.flightline/recovery.log +0 -1
- package/.flightline/tasks.db +0 -0
- package/.flightline/tech-orders/to_0c93d981-6b4e-4055-8678-f39c009d1db1.json +0 -11
- package/.flightline/tech-orders/to_1862f8ed-c487-4914-9f1e-528af6d4f053.json +0 -11
- package/.flightline/tech-orders/to_2335a57d-f400-4efa-b108-e13ece57520d.json +0 -11
- package/.flightline/tech-orders/to_2bd8dbdd-ac57-4b84-b977-33a3637d10d1.json +0 -11
- package/.flightline/tech-orders/to_37057c01-39b5-403a-991f-afb186abde95.json +0 -11
- package/.flightline/tech-orders/to_9e7288bb-c0fd-488a-a83d-1e9337bd0f1f.json +0 -11
- package/.flightline/tech-orders/to_aa0fe80b-9de7-40f6-a106-353b5bca10bd.json +0 -11
- package/.flightline/tech-orders/to_c1a0f480-c863-4203-a070-76ad77137845.json +0 -11
- package/.flightline/tech-orders/to_cf1e882a-cf56-45a4-8d19-494925e5f449.json +0 -11
- package/.flightline/work-orders/wo_5a29168d-5fb4-41d7-8dac-1d1151d9248f/manifest.json +0 -15
- package/.flightline/work-orders/wo_6c8c38bb-17a1-4885-ada4-dbfc5cc12d7a/manifest.json +0 -15
- package/.flightline/work-orders/wo_cadeb9b2-ea42-4491-b429-e2d467942b5c/manifest.json +0 -12
- package/.flightline/work-orders/wo_cc7b669c-16c4-4ef7-8a76-d1813219d0be/manifest.json +0 -15
- package/dist/server/api/src/coordination/agent-lifecycle.d.ts +0 -12
- package/dist/server/api/src/coordination/agent-lifecycle.d.ts.map +0 -1
- package/dist/server/api/src/coordination/agent-lifecycle.js +0 -12
- package/dist/server/api/src/coordination/agent-lifecycle.js.map +0 -1
- package/dist/server/api/src/coordination/agent-runner.d.ts +0 -9
- package/dist/server/api/src/coordination/agent-runner.d.ts.map +0 -1
- package/dist/server/api/src/coordination/agent-runner.js +0 -416
- package/dist/server/api/src/coordination/agent-runner.js.map +0 -1
- package/dist/server/api/src/coordination/agent-spawner-routes.d.ts +0 -7
- package/dist/server/api/src/coordination/agent-spawner-routes.d.ts.map +0 -1
- package/dist/server/api/src/coordination/agent-spawner-routes.js +0 -321
- package/dist/server/api/src/coordination/agent-spawner-routes.js.map +0 -1
- package/dist/server/api/src/coordination/agent-spawner.d.ts +0 -187
- package/dist/server/api/src/coordination/agent-spawner.d.ts.map +0 -1
- package/dist/server/api/src/coordination/agent-spawner.js +0 -712
- package/dist/server/api/src/coordination/agent-spawner.js.map +0 -1
- package/dist/server/api/src/coordination/agents.d.ts +0 -13
- package/dist/server/api/src/coordination/agents.d.ts.map +0 -1
- package/dist/server/api/src/coordination/agents.js +0 -464
- package/dist/server/api/src/coordination/agents.js.map +0 -1
- package/dist/server/api/src/coordination/checkpoint-routes.d.ts +0 -33
- package/dist/server/api/src/coordination/checkpoint-routes.d.ts.map +0 -1
- package/dist/server/api/src/coordination/checkpoint-routes.js +0 -323
- package/dist/server/api/src/coordination/checkpoint-routes.js.map +0 -1
- package/dist/server/api/src/coordination/conflict-resolver.d.ts +0 -152
- package/dist/server/api/src/coordination/conflict-resolver.d.ts.map +0 -1
- package/dist/server/api/src/coordination/conflict-resolver.js +0 -502
- package/dist/server/api/src/coordination/conflict-resolver.js.map +0 -1
- package/dist/server/api/src/coordination/missions.d.ts +0 -9
- package/dist/server/api/src/coordination/missions.d.ts.map +0 -1
- package/dist/server/api/src/coordination/missions.js +0 -148
- package/dist/server/api/src/coordination/missions.js.map +0 -1
- package/dist/server/api/src/coordination/monitor.d.ts +0 -175
- package/dist/server/api/src/coordination/monitor.d.ts.map +0 -1
- package/dist/server/api/src/coordination/monitor.js +0 -410
- package/dist/server/api/src/coordination/monitor.js.map +0 -1
- package/dist/server/api/src/coordination/notifier.d.ts +0 -160
- package/dist/server/api/src/coordination/notifier.d.ts.map +0 -1
- package/dist/server/api/src/coordination/notifier.js +0 -422
- package/dist/server/api/src/coordination/notifier.js.map +0 -1
- package/dist/server/api/src/coordination/progress-tracker.d.ts +0 -98
- package/dist/server/api/src/coordination/progress-tracker.d.ts.map +0 -1
- package/dist/server/api/src/coordination/progress-tracker.js +0 -323
- package/dist/server/api/src/coordination/progress-tracker.js.map +0 -1
- package/dist/server/api/src/coordination/recovery-manager.d.ts +0 -135
- package/dist/server/api/src/coordination/recovery-manager.d.ts.map +0 -1
- package/dist/server/api/src/coordination/recovery-manager.js +0 -435
- package/dist/server/api/src/coordination/recovery-manager.js.map +0 -1
- package/dist/server/api/src/coordination/task-decomposer.d.ts +0 -90
- package/dist/server/api/src/coordination/task-decomposer.d.ts.map +0 -1
- package/dist/server/api/src/coordination/task-decomposer.js +0 -412
- package/dist/server/api/src/coordination/task-decomposer.js.map +0 -1
- package/dist/server/api/src/coordination/task-queue-routes.d.ts +0 -7
- package/dist/server/api/src/coordination/task-queue-routes.d.ts.map +0 -1
- package/dist/server/api/src/coordination/task-queue-routes.js +0 -266
- package/dist/server/api/src/coordination/task-queue-routes.js.map +0 -1
- package/dist/server/api/src/coordination/task-queue.d.ts +0 -104
- package/dist/server/api/src/coordination/task-queue.d.ts.map +0 -1
- package/dist/server/api/src/coordination/task-queue.js +0 -378
- package/dist/server/api/src/coordination/task-queue.js.map +0 -1
- package/dist/server/api/src/coordination/tasks.d.ts +0 -7
- package/dist/server/api/src/coordination/tasks.d.ts.map +0 -1
- package/dist/server/api/src/coordination/tasks.js +0 -59
- package/dist/server/api/src/coordination/tasks.js.map +0 -1
- package/dist/server/api/src/decomposition/cli.d.ts +0 -18
- package/dist/server/api/src/decomposition/cli.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/cli.js +0 -191
- package/dist/server/api/src/decomposition/cli.js.map +0 -1
- package/dist/server/api/src/decomposition/codebase-analyzer.d.ts +0 -59
- package/dist/server/api/src/decomposition/codebase-analyzer.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/codebase-analyzer.js +0 -274
- package/dist/server/api/src/decomposition/codebase-analyzer.js.map +0 -1
- package/dist/server/api/src/decomposition/dependency-resolver.d.ts +0 -68
- package/dist/server/api/src/decomposition/dependency-resolver.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/dependency-resolver.js +0 -261
- package/dist/server/api/src/decomposition/dependency-resolver.js.map +0 -1
- package/dist/server/api/src/decomposition/index.d.ts +0 -17
- package/dist/server/api/src/decomposition/index.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/index.js +0 -19
- package/dist/server/api/src/decomposition/index.js.map +0 -1
- package/dist/server/api/src/decomposition/parallelization.d.ts +0 -40
- package/dist/server/api/src/decomposition/parallelization.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/parallelization.js +0 -144
- package/dist/server/api/src/decomposition/parallelization.js.map +0 -1
- package/dist/server/api/src/decomposition/planner.d.ts +0 -84
- package/dist/server/api/src/decomposition/planner.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/planner.js +0 -415
- package/dist/server/api/src/decomposition/planner.js.map +0 -1
- package/dist/server/api/src/decomposition/routes.d.ts +0 -13
- package/dist/server/api/src/decomposition/routes.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/routes.js +0 -114
- package/dist/server/api/src/decomposition/routes.js.map +0 -1
- package/dist/server/api/src/decomposition/strategies.d.ts +0 -43
- package/dist/server/api/src/decomposition/strategies.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/strategies.js +0 -147
- package/dist/server/api/src/decomposition/strategies.js.map +0 -1
- package/dist/server/api/src/decomposition/types.d.ts +0 -1090
- package/dist/server/api/src/decomposition/types.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/types.js +0 -65
- package/dist/server/api/src/decomposition/types.js.map +0 -1
- package/dist/server/api/src/decomposition/validator.d.ts +0 -84
- package/dist/server/api/src/decomposition/validator.d.ts.map +0 -1
- package/dist/server/api/src/decomposition/validator.js +0 -314
- package/dist/server/api/src/decomposition/validator.js.map +0 -1
- package/dist/server/api/src/flightline/ctk.d.ts +0 -2
- package/dist/server/api/src/flightline/ctk.d.ts.map +0 -1
- package/dist/server/api/src/flightline/ctk.js +0 -114
- package/dist/server/api/src/flightline/ctk.js.map +0 -1
- package/dist/server/api/src/flightline/tech-orders.d.ts +0 -2
- package/dist/server/api/src/flightline/tech-orders.d.ts.map +0 -1
- package/dist/server/api/src/flightline/tech-orders.js +0 -74
- package/dist/server/api/src/flightline/tech-orders.js.map +0 -1
- package/dist/server/api/src/flightline/work-orders.d.ts +0 -2
- package/dist/server/api/src/flightline/work-orders.d.ts.map +0 -1
- package/dist/server/api/src/flightline/work-orders.js +0 -178
- package/dist/server/api/src/flightline/work-orders.js.map +0 -1
- package/dist/server/api/src/index.d.ts +0 -3
- package/dist/server/api/src/index.d.ts.map +0 -1
- package/dist/server/api/src/index.js +0 -192
- package/dist/server/api/src/index.js.map +0 -1
- package/dist/server/api/src/middleware/agent-validation.d.ts +0 -161
- package/dist/server/api/src/middleware/agent-validation.d.ts.map +0 -1
- package/dist/server/api/src/middleware/agent-validation.js +0 -112
- package/dist/server/api/src/middleware/agent-validation.js.map +0 -1
- package/dist/server/api/src/middleware/error-handler.d.ts +0 -8
- package/dist/server/api/src/middleware/error-handler.d.ts.map +0 -1
- package/dist/server/api/src/middleware/error-handler.js +0 -54
- package/dist/server/api/src/middleware/error-handler.js.map +0 -1
- package/dist/server/api/src/middleware/logger.d.ts +0 -8
- package/dist/server/api/src/middleware/logger.d.ts.map +0 -1
- package/dist/server/api/src/middleware/logger.js +0 -31
- package/dist/server/api/src/middleware/logger.js.map +0 -1
- package/dist/server/api/src/middleware/validation.d.ts +0 -322
- package/dist/server/api/src/middleware/validation.d.ts.map +0 -1
- package/dist/server/api/src/middleware/validation.js +0 -189
- package/dist/server/api/src/middleware/validation.js.map +0 -1
- package/dist/server/api/src/squawk/blocker-handler.d.ts +0 -111
- package/dist/server/api/src/squawk/blocker-handler.d.ts.map +0 -1
- package/dist/server/api/src/squawk/blocker-handler.js +0 -262
- package/dist/server/api/src/squawk/blocker-handler.js.map +0 -1
- package/dist/server/api/src/squawk/coordinator.d.ts +0 -2
- package/dist/server/api/src/squawk/coordinator.d.ts.map +0 -1
- package/dist/server/api/src/squawk/coordinator.js +0 -24
- package/dist/server/api/src/squawk/coordinator.js.map +0 -1
- package/dist/server/api/src/squawk/cursor.d.ts +0 -2
- package/dist/server/api/src/squawk/cursor.d.ts.map +0 -1
- package/dist/server/api/src/squawk/cursor.js +0 -55
- package/dist/server/api/src/squawk/cursor.js.map +0 -1
- package/dist/server/api/src/squawk/dependency-resolver.d.ts +0 -107
- package/dist/server/api/src/squawk/dependency-resolver.d.ts.map +0 -1
- package/dist/server/api/src/squawk/dependency-resolver.js +0 -324
- package/dist/server/api/src/squawk/dependency-resolver.js.map +0 -1
- package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts +0 -117
- package/dist/server/api/src/squawk/dispatch-orchestrator.d.ts.map +0 -1
- package/dist/server/api/src/squawk/dispatch-orchestrator.js +0 -296
- package/dist/server/api/src/squawk/dispatch-orchestrator.js.map +0 -1
- package/dist/server/api/src/squawk/lock-coordinator.d.ts +0 -118
- package/dist/server/api/src/squawk/lock-coordinator.d.ts.map +0 -1
- package/dist/server/api/src/squawk/lock-coordinator.js +0 -279
- package/dist/server/api/src/squawk/lock-coordinator.js.map +0 -1
- package/dist/server/api/src/squawk/lock.d.ts +0 -2
- package/dist/server/api/src/squawk/lock.d.ts.map +0 -1
- package/dist/server/api/src/squawk/lock.js +0 -87
- package/dist/server/api/src/squawk/lock.js.map +0 -1
- package/dist/server/api/src/squawk/mailbox.d.ts +0 -2
- package/dist/server/api/src/squawk/mailbox.d.ts.map +0 -1
- package/dist/server/api/src/squawk/mailbox.js +0 -66
- package/dist/server/api/src/squawk/mailbox.js.map +0 -1
- package/dist/server/api/src/squawk/spawning.d.ts +0 -79
- package/dist/server/api/src/squawk/spawning.d.ts.map +0 -1
- package/dist/server/api/src/squawk/spawning.js +0 -226
- package/dist/server/api/src/squawk/spawning.js.map +0 -1
- package/dist/server/api/src/squawk/specialist-tools.d.ts +0 -206
- package/dist/server/api/src/squawk/specialist-tools.d.ts.map +0 -1
- package/dist/server/api/src/squawk/specialist-tools.js +0 -411
- package/dist/server/api/src/squawk/specialist-tools.js.map +0 -1
- package/dist/server/api/src/types/api.d.ts +0 -63
- package/dist/server/api/src/types/api.d.ts.map +0 -1
- package/dist/server/api/src/types/api.js +0 -5
- package/dist/server/api/src/types/api.js.map +0 -1
- package/dist/squawk/src/db/index.d.ts +0 -30
- package/dist/squawk/src/db/index.d.ts.map +0 -1
- package/dist/squawk/src/db/index.js +0 -329
- package/dist/squawk/src/db/index.js.map +0 -1
- package/dist/squawk/src/db/sqlite.d.ts +0 -31
- package/dist/squawk/src/db/sqlite.d.ts.map +0 -1
- package/dist/squawk/src/db/sqlite.js +0 -558
- package/dist/squawk/src/db/sqlite.js.map +0 -1
- package/dist/squawk/src/db/types.d.ts +0 -611
- package/dist/squawk/src/db/types.d.ts.map +0 -1
- package/dist/squawk/src/db/types.js +0 -4
- package/dist/squawk/src/db/types.js.map +0 -1
- package/e2e-integration.test.ts +0 -290
- package/integration.test.ts +0 -186
- package/phase1-integration.test.ts +0 -455
- package/phase2-verification.test.ts +0 -135
- package/server.log +0 -58
- package/src/agent-runner.js +0 -877
- package/src/coordination/agent-lifecycle.ts +0 -13
- package/src/coordination/agent-runner.ts +0 -479
- package/src/coordination/agent-spawner-routes.ts +0 -340
- package/src/coordination/agent-spawner.ts +0 -885
- package/src/coordination/agents.ts +0 -525
- package/src/coordination/checkpoint-routes.ts +0 -382
- package/src/coordination/conflict-resolver.ts +0 -640
- package/src/coordination/missions.ts +0 -219
- package/src/coordination/monitor.ts +0 -593
- package/src/coordination/notifier.ts +0 -547
- package/src/coordination/progress-tracker.ts +0 -410
- package/src/coordination/recovery-manager.ts +0 -531
- package/src/coordination/task-decomposer.ts +0 -491
- package/src/coordination/task-queue-routes.ts +0 -284
- package/src/coordination/task-queue.ts +0 -480
- package/src/coordination/tasks.ts +0 -72
- package/src/flightline/ctk.ts +0 -131
- package/src/flightline/tech-orders.ts +0 -85
- package/src/flightline/work-orders.ts +0 -202
- package/src/index.ts +0 -211
- package/src/middleware/agent-validation.ts +0 -130
- package/src/middleware/error-handler.ts +0 -59
- package/src/middleware/logger.ts +0 -37
- package/src/middleware/validation.ts +0 -235
- package/src/squawk/coordinator.ts +0 -26
- package/src/squawk/cursor.ts +0 -62
- package/src/squawk/lock.ts +0 -98
- package/src/squawk/mailbox.ts +0 -75
- package/src/types/api.ts +0 -71
- package/test-api.ts +0 -310
- package/test-enhanced-agents.ts +0 -428
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { cursorOps, mailboxOps } from '../../../../squawk/src/db/index.js';
|
|
2
|
-
export function registerCursorRoutes(router, headers) {
|
|
3
|
-
router.post('/api/v1/cursor/advance', async (req) => {
|
|
4
|
-
try {
|
|
5
|
-
const body = await req.json();
|
|
6
|
-
const { stream_id, position } = body;
|
|
7
|
-
if (!stream_id || typeof position !== 'number') {
|
|
8
|
-
return new Response(JSON.stringify({ error: 'stream_id and position are required' }), {
|
|
9
|
-
status: 400,
|
|
10
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
if (!(await mailboxOps.exists(stream_id))) {
|
|
14
|
-
return new Response(JSON.stringify({ error: 'Mailbox not found' }), {
|
|
15
|
-
status: 404,
|
|
16
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
const cursor = await cursorOps.upsert({ stream_id, position, updated_at: new Date().toISOString() });
|
|
20
|
-
return new Response(JSON.stringify({ cursor }), {
|
|
21
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
console.error('Error advancing cursor:', error);
|
|
26
|
-
return new Response(JSON.stringify({ error: 'Failed to advance cursor' }), {
|
|
27
|
-
status: 500,
|
|
28
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
router.get('/api/v1/cursor/:cursorId', async (req, params) => {
|
|
33
|
-
try {
|
|
34
|
-
const cursorId = params.cursorId;
|
|
35
|
-
const cursor = cursorOps.getById(cursorId);
|
|
36
|
-
if (!cursor) {
|
|
37
|
-
return new Response(JSON.stringify({ error: 'Cursor not found' }), {
|
|
38
|
-
status: 404,
|
|
39
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return new Response(JSON.stringify({ cursor }), {
|
|
43
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error('Error getting cursor:', error);
|
|
48
|
-
return new Response(JSON.stringify({ error: 'Failed to get cursor' }), {
|
|
49
|
-
status: 500,
|
|
50
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../../src/squawk/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FleetTools Dependency Resolver
|
|
3
|
-
*
|
|
4
|
-
* Resolves dependencies between sorties to determine:
|
|
5
|
-
* - Topological ordering
|
|
6
|
-
* - Parallel groups (sorties with no inter-group dependencies)
|
|
7
|
-
* - Critical path (longest dependency chain)
|
|
8
|
-
* - Cycle detection (error if circular dependencies exist)
|
|
9
|
-
* - Duration estimation
|
|
10
|
-
*
|
|
11
|
-
* @version 1.0.0
|
|
12
|
-
* @since 2026-01-08
|
|
13
|
-
*/
|
|
14
|
-
import type { Sortie } from '../../../../squawk/src/db/types.js';
|
|
15
|
-
/**
|
|
16
|
-
* Sortie with dependency information
|
|
17
|
-
*/
|
|
18
|
-
export interface SortieWithDeps extends Sortie {
|
|
19
|
-
dependencies?: string[];
|
|
20
|
-
estimated_duration_ms?: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Dependency graph node
|
|
24
|
-
*/
|
|
25
|
-
export interface DependencyNode {
|
|
26
|
-
sortie_id: string;
|
|
27
|
-
dependencies: string[];
|
|
28
|
-
dependents: string[];
|
|
29
|
-
depth: number;
|
|
30
|
-
critical_path_length: number;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Dependency resolution result
|
|
34
|
-
*/
|
|
35
|
-
export interface DependencyResolution {
|
|
36
|
-
success: boolean;
|
|
37
|
-
topological_order: string[];
|
|
38
|
-
parallel_groups: string[][];
|
|
39
|
-
critical_path: string[];
|
|
40
|
-
estimated_duration_ms: number;
|
|
41
|
-
has_cycles: boolean;
|
|
42
|
-
cycle_nodes?: string[];
|
|
43
|
-
error?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Dependency Resolver
|
|
47
|
-
* Analyzes sortie dependencies and determines execution order
|
|
48
|
-
*/
|
|
49
|
-
export declare class DependencyResolver {
|
|
50
|
-
private sorties;
|
|
51
|
-
private graph;
|
|
52
|
-
private logger;
|
|
53
|
-
/**
|
|
54
|
-
* Create new resolver
|
|
55
|
-
*/
|
|
56
|
-
constructor(sorties: SortieWithDeps[]);
|
|
57
|
-
/**
|
|
58
|
-
* Build dependency graph
|
|
59
|
-
*/
|
|
60
|
-
private buildGraph;
|
|
61
|
-
/**
|
|
62
|
-
* Calculate depth of each node (distance from root)
|
|
63
|
-
*/
|
|
64
|
-
private calculateDepths;
|
|
65
|
-
/**
|
|
66
|
-
* Calculate critical path length for each node
|
|
67
|
-
*/
|
|
68
|
-
private calculateCriticalPaths;
|
|
69
|
-
/**
|
|
70
|
-
* Detect cycles in dependency graph
|
|
71
|
-
*/
|
|
72
|
-
private detectCycles;
|
|
73
|
-
/**
|
|
74
|
-
* Topological sort using Kahn's algorithm
|
|
75
|
-
*/
|
|
76
|
-
private topologicalSort;
|
|
77
|
-
/**
|
|
78
|
-
* Identify parallel groups
|
|
79
|
-
* Sorties in the same group have no inter-group dependencies
|
|
80
|
-
*/
|
|
81
|
-
private identifyParallelGroups;
|
|
82
|
-
/**
|
|
83
|
-
* Find critical path (longest dependency chain)
|
|
84
|
-
*/
|
|
85
|
-
private findCriticalPath;
|
|
86
|
-
/**
|
|
87
|
-
* Resolve dependencies
|
|
88
|
-
*/
|
|
89
|
-
resolve(): DependencyResolution;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Resolve dependencies for sorties
|
|
93
|
-
*/
|
|
94
|
-
export declare function resolveDependencies(sorties: SortieWithDeps[]): DependencyResolution;
|
|
95
|
-
/**
|
|
96
|
-
* Check if sorties have dependencies
|
|
97
|
-
*/
|
|
98
|
-
export declare function hasDependencies(sorties: SortieWithDeps[]): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Get sorties with no dependencies
|
|
101
|
-
*/
|
|
102
|
-
export declare function getIndependentSorties(sorties: SortieWithDeps[]): SortieWithDeps[];
|
|
103
|
-
/**
|
|
104
|
-
* Get sorties that depend on a specific sortie
|
|
105
|
-
*/
|
|
106
|
-
export declare function getDependentSorties(sorties: SortieWithDeps[], sortieId: string): SortieWithDeps[];
|
|
107
|
-
//# sourceMappingURL=dependency-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/squawk/dependency-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAAU;IAExB;;OAEG;gBACS,OAAO,EAAE,cAAc,EAAE;IAOrC;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiC9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,IAAI,oBAAoB;CAoDhC;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,oBAAoB,CAGnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAEjG"}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FleetTools Dependency Resolver
|
|
3
|
-
*
|
|
4
|
-
* Resolves dependencies between sorties to determine:
|
|
5
|
-
* - Topological ordering
|
|
6
|
-
* - Parallel groups (sorties with no inter-group dependencies)
|
|
7
|
-
* - Critical path (longest dependency chain)
|
|
8
|
-
* - Cycle detection (error if circular dependencies exist)
|
|
9
|
-
* - Duration estimation
|
|
10
|
-
*
|
|
11
|
-
* @version 1.0.0
|
|
12
|
-
* @since 2026-01-08
|
|
13
|
-
*/
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// DEPENDENCY RESOLVER CLASS
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* Dependency Resolver
|
|
19
|
-
* Analyzes sortie dependencies and determines execution order
|
|
20
|
-
*/
|
|
21
|
-
export class DependencyResolver {
|
|
22
|
-
sorties;
|
|
23
|
-
graph;
|
|
24
|
-
logger;
|
|
25
|
-
/**
|
|
26
|
-
* Create new resolver
|
|
27
|
-
*/
|
|
28
|
-
constructor(sorties) {
|
|
29
|
-
this.sorties = new Map(sorties.map(s => [s.id, s]));
|
|
30
|
-
this.graph = new Map();
|
|
31
|
-
this.logger = console;
|
|
32
|
-
this.buildGraph();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Build dependency graph
|
|
36
|
-
*/
|
|
37
|
-
buildGraph() {
|
|
38
|
-
// Initialize nodes
|
|
39
|
-
for (const sortie of this.sorties.values()) {
|
|
40
|
-
this.graph.set(sortie.id, {
|
|
41
|
-
sortie_id: sortie.id,
|
|
42
|
-
dependencies: sortie.dependencies || [],
|
|
43
|
-
dependents: [],
|
|
44
|
-
depth: 0,
|
|
45
|
-
critical_path_length: 0,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
// Build reverse edges (dependents)
|
|
49
|
-
for (const node of this.graph.values()) {
|
|
50
|
-
for (const depId of node.dependencies) {
|
|
51
|
-
const depNode = this.graph.get(depId);
|
|
52
|
-
if (depNode) {
|
|
53
|
-
depNode.dependents.push(node.sortie_id);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// Calculate depths
|
|
58
|
-
this.calculateDepths();
|
|
59
|
-
// Calculate critical path lengths
|
|
60
|
-
this.calculateCriticalPaths();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Calculate depth of each node (distance from root)
|
|
64
|
-
*/
|
|
65
|
-
calculateDepths() {
|
|
66
|
-
const visited = new Set();
|
|
67
|
-
const queue = [];
|
|
68
|
-
// Find root nodes (no dependencies)
|
|
69
|
-
for (const node of this.graph.values()) {
|
|
70
|
-
if (node.dependencies.length === 0) {
|
|
71
|
-
queue.push(node.sortie_id);
|
|
72
|
-
node.depth = 0;
|
|
73
|
-
visited.add(node.sortie_id);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// BFS to calculate depths
|
|
77
|
-
while (queue.length > 0) {
|
|
78
|
-
const nodeId = queue.shift();
|
|
79
|
-
const node = this.graph.get(nodeId);
|
|
80
|
-
for (const dependentId of node.dependents) {
|
|
81
|
-
const dependent = this.graph.get(dependentId);
|
|
82
|
-
dependent.depth = Math.max(dependent.depth, node.depth + 1);
|
|
83
|
-
if (!visited.has(dependentId)) {
|
|
84
|
-
visited.add(dependentId);
|
|
85
|
-
queue.push(dependentId);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Calculate critical path length for each node
|
|
92
|
-
*/
|
|
93
|
-
calculateCriticalPaths() {
|
|
94
|
-
const visited = new Set();
|
|
95
|
-
// DFS from leaf nodes
|
|
96
|
-
const dfs = (nodeId) => {
|
|
97
|
-
if (visited.has(nodeId)) {
|
|
98
|
-
return this.graph.get(nodeId).critical_path_length;
|
|
99
|
-
}
|
|
100
|
-
visited.add(nodeId);
|
|
101
|
-
const node = this.graph.get(nodeId);
|
|
102
|
-
const sortie = this.sorties.get(nodeId);
|
|
103
|
-
const duration = sortie.estimated_duration_ms || 1000; // Default 1 second
|
|
104
|
-
if (node.dependents.length === 0) {
|
|
105
|
-
// Leaf node
|
|
106
|
-
node.critical_path_length = duration;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// Internal node
|
|
110
|
-
const maxDependentPath = Math.max(...node.dependents.map(depId => dfs(depId)));
|
|
111
|
-
node.critical_path_length = duration + maxDependentPath;
|
|
112
|
-
}
|
|
113
|
-
return node.critical_path_length;
|
|
114
|
-
};
|
|
115
|
-
for (const nodeId of this.graph.keys()) {
|
|
116
|
-
dfs(nodeId);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Detect cycles in dependency graph
|
|
121
|
-
*/
|
|
122
|
-
detectCycles() {
|
|
123
|
-
const visited = new Set();
|
|
124
|
-
const recursionStack = new Set();
|
|
125
|
-
const cycleNodes = [];
|
|
126
|
-
const hasCycle = (nodeId) => {
|
|
127
|
-
visited.add(nodeId);
|
|
128
|
-
recursionStack.add(nodeId);
|
|
129
|
-
const node = this.graph.get(nodeId);
|
|
130
|
-
for (const depId of node.dependencies) {
|
|
131
|
-
if (!visited.has(depId)) {
|
|
132
|
-
if (hasCycle(depId)) {
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else if (recursionStack.has(depId)) {
|
|
137
|
-
cycleNodes.push(nodeId, depId);
|
|
138
|
-
return true;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
recursionStack.delete(nodeId);
|
|
142
|
-
return false;
|
|
143
|
-
};
|
|
144
|
-
for (const nodeId of this.graph.keys()) {
|
|
145
|
-
if (!visited.has(nodeId)) {
|
|
146
|
-
if (hasCycle(nodeId)) {
|
|
147
|
-
return { hasCycles: true, cycleNodes };
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return { hasCycles: false };
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Topological sort using Kahn's algorithm
|
|
155
|
-
*/
|
|
156
|
-
topologicalSort() {
|
|
157
|
-
const inDegree = new Map();
|
|
158
|
-
const queue = [];
|
|
159
|
-
// Initialize in-degrees
|
|
160
|
-
for (const node of this.graph.values()) {
|
|
161
|
-
inDegree.set(node.sortie_id, node.dependencies.length);
|
|
162
|
-
if (node.dependencies.length === 0) {
|
|
163
|
-
queue.push(node.sortie_id);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
const result = [];
|
|
167
|
-
while (queue.length > 0) {
|
|
168
|
-
const nodeId = queue.shift();
|
|
169
|
-
result.push(nodeId);
|
|
170
|
-
const node = this.graph.get(nodeId);
|
|
171
|
-
for (const dependentId of node.dependents) {
|
|
172
|
-
const degree = inDegree.get(dependentId) - 1;
|
|
173
|
-
inDegree.set(dependentId, degree);
|
|
174
|
-
if (degree === 0) {
|
|
175
|
-
queue.push(dependentId);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return result;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Identify parallel groups
|
|
183
|
-
* Sorties in the same group have no inter-group dependencies
|
|
184
|
-
*/
|
|
185
|
-
identifyParallelGroups() {
|
|
186
|
-
const groups = [];
|
|
187
|
-
const assigned = new Set();
|
|
188
|
-
// Group by depth
|
|
189
|
-
const depthGroups = new Map();
|
|
190
|
-
for (const node of this.graph.values()) {
|
|
191
|
-
if (!depthGroups.has(node.depth)) {
|
|
192
|
-
depthGroups.set(node.depth, []);
|
|
193
|
-
}
|
|
194
|
-
depthGroups.get(node.depth).push(node.sortie_id);
|
|
195
|
-
}
|
|
196
|
-
// Create groups from depth levels
|
|
197
|
-
for (let depth = 0; depth < Math.max(...Array.from(depthGroups.keys())); depth++) {
|
|
198
|
-
const group = depthGroups.get(depth) || [];
|
|
199
|
-
if (group.length > 0) {
|
|
200
|
-
groups.push(group);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return groups;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Find critical path (longest dependency chain)
|
|
207
|
-
*/
|
|
208
|
-
findCriticalPath() {
|
|
209
|
-
let maxLength = 0;
|
|
210
|
-
let criticalPathStart = null;
|
|
211
|
-
// Find root node with longest critical path
|
|
212
|
-
for (const node of this.graph.values()) {
|
|
213
|
-
if (node.dependencies.length === 0 && node.critical_path_length > maxLength) {
|
|
214
|
-
maxLength = node.critical_path_length;
|
|
215
|
-
criticalPathStart = node.sortie_id;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (!criticalPathStart) {
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
221
|
-
// Trace path
|
|
222
|
-
const path = [criticalPathStart];
|
|
223
|
-
let current = criticalPathStart;
|
|
224
|
-
while (true) {
|
|
225
|
-
const node = this.graph.get(current);
|
|
226
|
-
if (node.dependents.length === 0) {
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
// Find dependent with longest critical path
|
|
230
|
-
let nextNode = null;
|
|
231
|
-
let maxPath = 0;
|
|
232
|
-
for (const depId of node.dependents) {
|
|
233
|
-
const depNode = this.graph.get(depId);
|
|
234
|
-
if (depNode.critical_path_length > maxPath) {
|
|
235
|
-
maxPath = depNode.critical_path_length;
|
|
236
|
-
nextNode = depId;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (!nextNode) {
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
path.push(nextNode);
|
|
243
|
-
current = nextNode;
|
|
244
|
-
}
|
|
245
|
-
return path;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Resolve dependencies
|
|
249
|
-
*/
|
|
250
|
-
resolve() {
|
|
251
|
-
this.logger.log('[DependencyResolver] Resolving dependencies');
|
|
252
|
-
// Check for cycles
|
|
253
|
-
const cycleCheck = this.detectCycles();
|
|
254
|
-
if (cycleCheck.hasCycles) {
|
|
255
|
-
this.logger.error('[DependencyResolver] Circular dependencies detected:', cycleCheck.cycleNodes);
|
|
256
|
-
return {
|
|
257
|
-
success: false,
|
|
258
|
-
topological_order: [],
|
|
259
|
-
parallel_groups: [],
|
|
260
|
-
critical_path: [],
|
|
261
|
-
estimated_duration_ms: 0,
|
|
262
|
-
has_cycles: true,
|
|
263
|
-
cycle_nodes: cycleCheck.cycleNodes,
|
|
264
|
-
error: `Circular dependencies detected: ${cycleCheck.cycleNodes?.join(', ')}`,
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
// Topological sort
|
|
268
|
-
const topologicalOrder = this.topologicalSort();
|
|
269
|
-
// Identify parallel groups
|
|
270
|
-
const parallelGroups = this.identifyParallelGroups();
|
|
271
|
-
// Find critical path
|
|
272
|
-
const criticalPath = this.findCriticalPath();
|
|
273
|
-
// Calculate total duration
|
|
274
|
-
let estimatedDuration = 0;
|
|
275
|
-
for (const nodeId of criticalPath) {
|
|
276
|
-
const sortie = this.sorties.get(nodeId);
|
|
277
|
-
if (sortie) {
|
|
278
|
-
estimatedDuration += sortie.estimated_duration_ms || 1000;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
this.logger.log('[DependencyResolver] Resolution complete');
|
|
282
|
-
this.logger.log(` - Topological order: ${topologicalOrder.length} sorties`);
|
|
283
|
-
this.logger.log(` - Parallel groups: ${parallelGroups.length}`);
|
|
284
|
-
this.logger.log(` - Critical path: ${criticalPath.length} sorties`);
|
|
285
|
-
this.logger.log(` - Estimated duration: ${estimatedDuration}ms`);
|
|
286
|
-
return {
|
|
287
|
-
success: true,
|
|
288
|
-
topological_order: topologicalOrder,
|
|
289
|
-
parallel_groups: parallelGroups,
|
|
290
|
-
critical_path: criticalPath,
|
|
291
|
-
estimated_duration_ms: estimatedDuration,
|
|
292
|
-
has_cycles: false,
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
// ============================================================================
|
|
297
|
-
// HELPER FUNCTIONS
|
|
298
|
-
// ============================================================================
|
|
299
|
-
/**
|
|
300
|
-
* Resolve dependencies for sorties
|
|
301
|
-
*/
|
|
302
|
-
export function resolveDependencies(sorties) {
|
|
303
|
-
const resolver = new DependencyResolver(sorties);
|
|
304
|
-
return resolver.resolve();
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Check if sorties have dependencies
|
|
308
|
-
*/
|
|
309
|
-
export function hasDependencies(sorties) {
|
|
310
|
-
return sorties.some(s => s.dependencies && s.dependencies.length > 0);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Get sorties with no dependencies
|
|
314
|
-
*/
|
|
315
|
-
export function getIndependentSorties(sorties) {
|
|
316
|
-
return sorties.filter(s => !s.dependencies || s.dependencies.length === 0);
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Get sorties that depend on a specific sortie
|
|
320
|
-
*/
|
|
321
|
-
export function getDependentSorties(sorties, sortieId) {
|
|
322
|
-
return sorties.filter(s => s.dependencies && s.dependencies.includes(sortieId));
|
|
323
|
-
}
|
|
324
|
-
//# sourceMappingURL=dependency-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../../../../src/squawk/dependency-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FleetTools Dispatch Orchestrator
|
|
3
|
-
*
|
|
4
|
-
* The Dispatch Orchestrator manages the lifecycle of specialist agents working on sorties.
|
|
5
|
-
* It coordinates:
|
|
6
|
-
* - Specialist spawning (parallel and sequential)
|
|
7
|
-
* - Progress monitoring
|
|
8
|
-
* - Blocker resolution
|
|
9
|
-
* - File lock coordination
|
|
10
|
-
* - Checkpoint creation
|
|
11
|
-
* - Completion handling
|
|
12
|
-
*
|
|
13
|
-
* @version 1.0.0
|
|
14
|
-
* @since 2026-01-08
|
|
15
|
-
*/
|
|
16
|
-
import type { Mission, Sortie, Specialist, Checkpoint } from '../../../../squawk/src/db/types.js';
|
|
17
|
-
/**
|
|
18
|
-
* Specialist instance being managed by orchestrator
|
|
19
|
-
*/
|
|
20
|
-
export interface ManagedSpecialist {
|
|
21
|
-
id: string;
|
|
22
|
-
name: string;
|
|
23
|
-
sortie_id: string;
|
|
24
|
-
status: 'spawned' | 'registered' | 'working' | 'blocked' | 'completed' | 'failed';
|
|
25
|
-
progress_percent: number;
|
|
26
|
-
last_heartbeat: number;
|
|
27
|
-
blockers: Array<{
|
|
28
|
-
type: string;
|
|
29
|
-
description: string;
|
|
30
|
-
timestamp: number;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Orchestrator configuration
|
|
35
|
-
*/
|
|
36
|
-
export interface OrchestratorConfig {
|
|
37
|
-
/** Maximum concurrent specialists */
|
|
38
|
-
max_concurrent?: number;
|
|
39
|
-
/** Heartbeat timeout (ms) */
|
|
40
|
-
heartbeat_timeout_ms?: number;
|
|
41
|
-
/** Checkpoint interval (ms) */
|
|
42
|
-
checkpoint_interval_ms?: number;
|
|
43
|
-
/** Enable auto-recovery */
|
|
44
|
-
auto_recovery?: boolean;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Orchestrator state
|
|
48
|
-
*/
|
|
49
|
-
export interface OrchestratorState {
|
|
50
|
-
mission_id: string;
|
|
51
|
-
status: 'idle' | 'running' | 'paused' | 'completed' | 'failed';
|
|
52
|
-
specialists: Map<string, ManagedSpecialist>;
|
|
53
|
-
active_sorties: Map<string, Sortie>;
|
|
54
|
-
pending_sorties: Sortie[];
|
|
55
|
-
completed_sorties: Sortie[];
|
|
56
|
-
failed_sorties: Sortie[];
|
|
57
|
-
checkpoints: Checkpoint[];
|
|
58
|
-
last_checkpoint_time: number;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Dispatch Orchestrator
|
|
62
|
-
* Manages specialist spawning and coordination
|
|
63
|
-
*/
|
|
64
|
-
export declare class DispatchOrchestrator {
|
|
65
|
-
private state;
|
|
66
|
-
private config;
|
|
67
|
-
private logger;
|
|
68
|
-
/**
|
|
69
|
-
* Create new orchestrator
|
|
70
|
-
*/
|
|
71
|
-
constructor(missionId: string, config?: OrchestratorConfig);
|
|
72
|
-
/**
|
|
73
|
-
* Initialize orchestrator
|
|
74
|
-
*/
|
|
75
|
-
initialize(): Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* Spawn specialists for mission
|
|
78
|
-
*/
|
|
79
|
-
spawnSpecialists(mission: Mission): Promise<Specialist[]>;
|
|
80
|
-
/**
|
|
81
|
-
* Monitor specialist progress
|
|
82
|
-
*/
|
|
83
|
-
monitorProgress(): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* Resolve blocker
|
|
86
|
-
*/
|
|
87
|
-
resolveBlocker(specialistId: string, blocker: any): Promise<void>;
|
|
88
|
-
/**
|
|
89
|
-
* Coordinate file locks
|
|
90
|
-
*/
|
|
91
|
-
coordinateLocks(sorties: Sortie[]): Promise<void>;
|
|
92
|
-
/**
|
|
93
|
-
* Create checkpoint
|
|
94
|
-
*/
|
|
95
|
-
createCheckpoint(trigger: 'progress' | 'error' | 'manual'): Promise<Checkpoint | null>;
|
|
96
|
-
/**
|
|
97
|
-
* Handle specialist completion
|
|
98
|
-
*/
|
|
99
|
-
onSpecialistComplete(specialistId: string, result: any): Promise<void>;
|
|
100
|
-
/**
|
|
101
|
-
* Get orchestrator status
|
|
102
|
-
*/
|
|
103
|
-
getStatus(): OrchestratorState;
|
|
104
|
-
/**
|
|
105
|
-
* Shutdown orchestrator
|
|
106
|
-
*/
|
|
107
|
-
shutdown(): Promise<void>;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get or create orchestrator instance
|
|
111
|
-
*/
|
|
112
|
-
export declare function getOrchestrator(missionId: string, config?: OrchestratorConfig): DispatchOrchestrator;
|
|
113
|
-
/**
|
|
114
|
-
* Reset orchestrator instance
|
|
115
|
-
*/
|
|
116
|
-
export declare function resetOrchestrator(): void;
|
|
117
|
-
//# sourceMappingURL=dispatch-orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/squawk/dispatch-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,UAAU,EACV,UAAU,EAEX,MAAM,oCAAoC,CAAC;AAM5C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAClF,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAMD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAU;IAExB;;OAEG;gBACS,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAuB1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA4C/D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BtC;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvE;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BvD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA2C5F;;OAEG;IACG,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5E;;OAEG;IACH,SAAS,IAAI,iBAAiB;IAQ9B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIhC;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,oBAAoB,CAKpG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|