@mclawnet/swarm 0.1.13 → 0.1.14
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/dist/__tests__/always-on-activity-reader.test.d.ts +2 -0
- package/dist/__tests__/always-on-activity-reader.test.d.ts.map +1 -0
- package/dist/__tests__/always-on-activity-reader.test.js +193 -0
- package/dist/__tests__/always-on-activity-reader.test.js.map +1 -0
- package/dist/__tests__/always-on-config.test.d.ts +2 -0
- package/dist/__tests__/always-on-config.test.d.ts.map +1 -0
- package/dist/__tests__/always-on-config.test.js +285 -0
- package/dist/__tests__/always-on-config.test.js.map +1 -0
- package/dist/__tests__/always-on-manager.test.d.ts +2 -0
- package/dist/__tests__/always-on-manager.test.d.ts.map +1 -0
- package/dist/__tests__/always-on-manager.test.js +797 -0
- package/dist/__tests__/always-on-manager.test.js.map +1 -0
- package/dist/__tests__/always-on-parity.test.d.ts +2 -0
- package/dist/__tests__/always-on-parity.test.d.ts.map +1 -0
- package/dist/__tests__/always-on-parity.test.js +20 -0
- package/dist/__tests__/always-on-parity.test.js.map +1 -0
- package/dist/__tests__/cascade-picker.test.d.ts +2 -0
- package/dist/__tests__/cascade-picker.test.d.ts.map +1 -0
- package/dist/__tests__/cascade-picker.test.js +122 -0
- package/dist/__tests__/cascade-picker.test.js.map +1 -0
- package/dist/__tests__/coordinator-shipment.test.d.ts +2 -0
- package/dist/__tests__/coordinator-shipment.test.d.ts.map +1 -0
- package/dist/__tests__/coordinator-shipment.test.js +280 -0
- package/dist/__tests__/coordinator-shipment.test.js.map +1 -0
- package/dist/__tests__/coordinator-workspace-recover.test.d.ts +2 -0
- package/dist/__tests__/coordinator-workspace-recover.test.d.ts.map +1 -0
- package/dist/__tests__/coordinator-workspace-recover.test.js +140 -0
- package/dist/__tests__/coordinator-workspace-recover.test.js.map +1 -0
- package/dist/__tests__/coordinator-workspace.test.d.ts +2 -0
- package/dist/__tests__/coordinator-workspace.test.d.ts.map +1 -0
- package/dist/__tests__/coordinator-workspace.test.js +135 -0
- package/dist/__tests__/coordinator-workspace.test.js.map +1 -0
- package/dist/__tests__/default-runner-epipe.test.d.ts +2 -0
- package/dist/__tests__/default-runner-epipe.test.d.ts.map +1 -0
- package/dist/__tests__/default-runner-epipe.test.js +43 -0
- package/dist/__tests__/default-runner-epipe.test.js.map +1 -0
- package/dist/__tests__/discovery-scheduler.test.d.ts +2 -0
- package/dist/__tests__/discovery-scheduler.test.d.ts.map +1 -0
- package/dist/__tests__/discovery-scheduler.test.js +367 -0
- package/dist/__tests__/discovery-scheduler.test.js.map +1 -0
- package/dist/__tests__/env-forward-e2e.test.d.ts +2 -0
- package/dist/__tests__/env-forward-e2e.test.d.ts.map +1 -0
- package/dist/__tests__/env-forward-e2e.test.js +57 -0
- package/dist/__tests__/env-forward-e2e.test.js.map +1 -0
- package/dist/__tests__/gh-pr-creator.test.d.ts +2 -0
- package/dist/__tests__/gh-pr-creator.test.d.ts.map +1 -0
- package/dist/__tests__/gh-pr-creator.test.js +107 -0
- package/dist/__tests__/gh-pr-creator.test.js.map +1 -0
- package/dist/__tests__/git-worktree-provider.test.d.ts +2 -0
- package/dist/__tests__/git-worktree-provider.test.d.ts.map +1 -0
- package/dist/__tests__/git-worktree-provider.test.js +98 -0
- package/dist/__tests__/git-worktree-provider.test.js.map +1 -0
- package/dist/__tests__/gitignore-check.test.d.ts +2 -0
- package/dist/__tests__/gitignore-check.test.d.ts.map +1 -0
- package/dist/__tests__/gitignore-check.test.js +39 -0
- package/dist/__tests__/gitignore-check.test.js.map +1 -0
- package/dist/__tests__/idea-research-source.test.d.ts +2 -0
- package/dist/__tests__/idea-research-source.test.d.ts.map +1 -0
- package/dist/__tests__/idea-research-source.test.js +425 -0
- package/dist/__tests__/idea-research-source.test.js.map +1 -0
- package/dist/__tests__/idea-todo-source.test.d.ts +2 -0
- package/dist/__tests__/idea-todo-source.test.d.ts.map +1 -0
- package/dist/__tests__/idea-todo-source.test.js +258 -0
- package/dist/__tests__/idea-todo-source.test.js.map +1 -0
- package/dist/__tests__/introspection-dedupe.test.d.ts +2 -0
- package/dist/__tests__/introspection-dedupe.test.d.ts.map +1 -0
- package/dist/__tests__/introspection-dedupe.test.js +484 -0
- package/dist/__tests__/introspection-dedupe.test.js.map +1 -0
- package/dist/__tests__/introspection-source.test.d.ts +2 -0
- package/dist/__tests__/introspection-source.test.d.ts.map +1 -0
- package/dist/__tests__/introspection-source.test.js +1051 -0
- package/dist/__tests__/introspection-source.test.js.map +1 -0
- package/dist/__tests__/migration-roles.test.js +1 -22
- package/dist/__tests__/migration-roles.test.js.map +1 -1
- package/dist/__tests__/reconcile-researching.test.d.ts +2 -0
- package/dist/__tests__/reconcile-researching.test.d.ts.map +1 -0
- package/dist/__tests__/reconcile-researching.test.js +224 -0
- package/dist/__tests__/reconcile-researching.test.js.map +1 -0
- package/dist/__tests__/role-loader-preamble-all.test.js +3 -1
- package/dist/__tests__/role-loader-preamble-all.test.js.map +1 -1
- package/dist/__tests__/role-loader.test.js +95 -0
- package/dist/__tests__/role-loader.test.js.map +1 -1
- package/dist/__tests__/role-prompt-no-legacy-protocol.test.js +3 -1
- package/dist/__tests__/role-prompt-no-legacy-protocol.test.js.map +1 -1
- package/dist/__tests__/secret-scrub.test.d.ts +2 -0
- package/dist/__tests__/secret-scrub.test.d.ts.map +1 -0
- package/dist/__tests__/secret-scrub.test.js +55 -0
- package/dist/__tests__/secret-scrub.test.js.map +1 -0
- package/dist/__tests__/shipment-actions.test.d.ts +2 -0
- package/dist/__tests__/shipment-actions.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-actions.test.js +378 -0
- package/dist/__tests__/shipment-actions.test.js.map +1 -0
- package/dist/__tests__/shipment-persistence.test.d.ts +2 -0
- package/dist/__tests__/shipment-persistence.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-persistence.test.js +120 -0
- package/dist/__tests__/shipment-persistence.test.js.map +1 -0
- package/dist/__tests__/shipment-pipeline.test.d.ts +2 -0
- package/dist/__tests__/shipment-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-pipeline.test.js +392 -0
- package/dist/__tests__/shipment-pipeline.test.js.map +1 -0
- package/dist/__tests__/shipment-report.test.d.ts +2 -0
- package/dist/__tests__/shipment-report.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-report.test.js +78 -0
- package/dist/__tests__/shipment-report.test.js.map +1 -0
- package/dist/__tests__/shipment-stdin-integration.test.d.ts +2 -0
- package/dist/__tests__/shipment-stdin-integration.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-stdin-integration.test.js +49 -0
- package/dist/__tests__/shipment-stdin-integration.test.js.map +1 -0
- package/dist/__tests__/shipment-type-parity.test.d.ts +2 -0
- package/dist/__tests__/shipment-type-parity.test.d.ts.map +1 -0
- package/dist/__tests__/shipment-type-parity.test.js +10 -0
- package/dist/__tests__/shipment-type-parity.test.js.map +1 -0
- package/dist/__tests__/snapshot-copy-provider.test.d.ts +2 -0
- package/dist/__tests__/snapshot-copy-provider.test.d.ts.map +1 -0
- package/dist/__tests__/snapshot-copy-provider.test.js +88 -0
- package/dist/__tests__/snapshot-copy-provider.test.js.map +1 -0
- package/dist/__tests__/swarm-coordinator-backend.test.js +153 -0
- package/dist/__tests__/swarm-coordinator-backend.test.js.map +1 -1
- package/dist/__tests__/swarm-coordinator-complete-intercept.test.d.ts +2 -0
- package/dist/__tests__/swarm-coordinator-complete-intercept.test.d.ts.map +1 -0
- package/dist/__tests__/swarm-coordinator-complete-intercept.test.js +111 -0
- package/dist/__tests__/swarm-coordinator-complete-intercept.test.js.map +1 -0
- package/dist/__tests__/task-store-source.test.d.ts +2 -0
- package/dist/__tests__/task-store-source.test.d.ts.map +1 -0
- package/dist/__tests__/task-store-source.test.js +56 -0
- package/dist/__tests__/task-store-source.test.js.map +1 -0
- package/dist/__tests__/transport-detect.test.d.ts +2 -0
- package/dist/__tests__/transport-detect.test.d.ts.map +1 -0
- package/dist/__tests__/transport-detect.test.js +92 -0
- package/dist/__tests__/transport-detect.test.js.map +1 -0
- package/dist/__tests__/workcycle-runner-cascade.test.d.ts +2 -0
- package/dist/__tests__/workcycle-runner-cascade.test.d.ts.map +1 -0
- package/dist/__tests__/workcycle-runner-cascade.test.js +203 -0
- package/dist/__tests__/workcycle-runner-cascade.test.js.map +1 -0
- package/dist/__tests__/workcycle-runner.test.d.ts +2 -0
- package/dist/__tests__/workcycle-runner.test.d.ts.map +1 -0
- package/dist/__tests__/workcycle-runner.test.js +369 -0
- package/dist/__tests__/workcycle-runner.test.js.map +1 -0
- package/dist/__tests__/workspace-diff.test.d.ts +2 -0
- package/dist/__tests__/workspace-diff.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-diff.test.js +62 -0
- package/dist/__tests__/workspace-diff.test.js.map +1 -0
- package/dist/__tests__/workspace-manager.test.d.ts +2 -0
- package/dist/__tests__/workspace-manager.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-manager.test.js +120 -0
- package/dist/__tests__/workspace-manager.test.js.map +1 -0
- package/dist/__tests__/workspace-types.test.d.ts +2 -0
- package/dist/__tests__/workspace-types.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-types.test.js +37 -0
- package/dist/__tests__/workspace-types.test.js.map +1 -0
- package/dist/__tests__/worktree-gc.test.d.ts +2 -0
- package/dist/__tests__/worktree-gc.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-gc.test.js +183 -0
- package/dist/__tests__/worktree-gc.test.js.map +1 -0
- package/dist/always-on/activity-reader.d.ts +27 -0
- package/dist/always-on/activity-reader.d.ts.map +1 -0
- package/dist/always-on/activity-reader.js +95 -0
- package/dist/always-on/activity-reader.js.map +1 -0
- package/dist/always-on/always-on-manager.d.ts +170 -0
- package/dist/always-on/always-on-manager.d.ts.map +1 -0
- package/dist/always-on/always-on-manager.js +538 -0
- package/dist/always-on/always-on-manager.js.map +1 -0
- package/dist/always-on/config.d.ts +141 -0
- package/dist/always-on/config.d.ts.map +1 -0
- package/dist/always-on/config.js +324 -0
- package/dist/always-on/config.js.map +1 -0
- package/dist/always-on/discovery-scheduler.d.ts +60 -0
- package/dist/always-on/discovery-scheduler.d.ts.map +1 -0
- package/dist/always-on/discovery-scheduler.js +287 -0
- package/dist/always-on/discovery-scheduler.js.map +1 -0
- package/dist/always-on/ideas-client.d.ts +23 -0
- package/dist/always-on/ideas-client.d.ts.map +1 -0
- package/dist/always-on/ideas-client.js +13 -0
- package/dist/always-on/ideas-client.js.map +1 -0
- package/dist/always-on/reconcile-researching.d.ts +42 -0
- package/dist/always-on/reconcile-researching.d.ts.map +1 -0
- package/dist/always-on/reconcile-researching.js +133 -0
- package/dist/always-on/reconcile-researching.js.map +1 -0
- package/dist/always-on/task-sources/cascade-picker.d.ts +42 -0
- package/dist/always-on/task-sources/cascade-picker.d.ts.map +1 -0
- package/dist/always-on/task-sources/cascade-picker.js +65 -0
- package/dist/always-on/task-sources/cascade-picker.js.map +1 -0
- package/dist/always-on/task-sources/idea-dedupe.d.ts +62 -0
- package/dist/always-on/task-sources/idea-dedupe.d.ts.map +1 -0
- package/dist/always-on/task-sources/idea-dedupe.js +130 -0
- package/dist/always-on/task-sources/idea-dedupe.js.map +1 -0
- package/dist/always-on/task-sources/idea-research-source.d.ts +46 -0
- package/dist/always-on/task-sources/idea-research-source.d.ts.map +1 -0
- package/dist/always-on/task-sources/idea-research-source.js +308 -0
- package/dist/always-on/task-sources/idea-research-source.js.map +1 -0
- package/dist/always-on/task-sources/idea-sort.d.ts +3 -0
- package/dist/always-on/task-sources/idea-sort.d.ts.map +1 -0
- package/dist/always-on/task-sources/idea-sort.js +25 -0
- package/dist/always-on/task-sources/idea-sort.js.map +1 -0
- package/dist/always-on/task-sources/idea-todo-source.d.ts +48 -0
- package/dist/always-on/task-sources/idea-todo-source.d.ts.map +1 -0
- package/dist/always-on/task-sources/idea-todo-source.js +226 -0
- package/dist/always-on/task-sources/idea-todo-source.js.map +1 -0
- package/dist/always-on/task-sources/introspection-source.d.ts +101 -0
- package/dist/always-on/task-sources/introspection-source.d.ts.map +1 -0
- package/dist/always-on/task-sources/introspection-source.js +695 -0
- package/dist/always-on/task-sources/introspection-source.js.map +1 -0
- package/dist/always-on/task-sources/task-store-source.d.ts +15 -0
- package/dist/always-on/task-sources/task-store-source.d.ts.map +1 -0
- package/dist/always-on/task-sources/task-store-source.js +59 -0
- package/dist/always-on/task-sources/task-store-source.js.map +1 -0
- package/dist/always-on/task-sources/types.d.ts +108 -0
- package/dist/always-on/task-sources/types.d.ts.map +1 -0
- package/dist/always-on/task-sources/types.js +13 -0
- package/dist/always-on/task-sources/types.js.map +1 -0
- package/dist/always-on/types.d.ts +76 -0
- package/dist/always-on/types.d.ts.map +1 -0
- package/dist/always-on/types.js +17 -0
- package/dist/always-on/types.js.map +1 -0
- package/dist/always-on/workcycle-runner.d.ts +115 -0
- package/dist/always-on/workcycle-runner.d.ts.map +1 -0
- package/dist/always-on/workcycle-runner.js +285 -0
- package/dist/always-on/workcycle-runner.js.map +1 -0
- package/dist/always-on/worktree-gc.d.ts +41 -0
- package/dist/always-on/worktree-gc.d.ts.map +1 -0
- package/dist/always-on/worktree-gc.js +167 -0
- package/dist/always-on/worktree-gc.js.map +1 -0
- package/dist/index.d.ts +26 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/persistence.d.ts +37 -1
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +48 -0
- package/dist/persistence.js.map +1 -1
- package/dist/retrospective.d.ts.map +1 -1
- package/dist/retrospective.js +6 -0
- package/dist/retrospective.js.map +1 -1
- package/dist/roles/role-loader.d.ts +1 -1
- package/dist/roles/role-loader.d.ts.map +1 -1
- package/dist/roles/role-loader.js +18 -0
- package/dist/roles/role-loader.js.map +1 -1
- package/dist/roles/types.d.ts +12 -0
- package/dist/roles/types.d.ts.map +1 -1
- package/dist/shipment/gh-pr-creator.d.ts +28 -0
- package/dist/shipment/gh-pr-creator.d.ts.map +1 -0
- package/dist/shipment/gh-pr-creator.js +80 -0
- package/dist/shipment/gh-pr-creator.js.map +1 -0
- package/dist/shipment/report.d.ts +27 -0
- package/dist/shipment/report.d.ts.map +1 -0
- package/dist/shipment/report.js +41 -0
- package/dist/shipment/report.js.map +1 -0
- package/dist/shipment/secret-scrub.d.ts +12 -0
- package/dist/shipment/secret-scrub.d.ts.map +1 -0
- package/dist/shipment/secret-scrub.js +30 -0
- package/dist/shipment/secret-scrub.js.map +1 -0
- package/dist/shipment/shipment-actions.d.ts +85 -0
- package/dist/shipment/shipment-actions.d.ts.map +1 -0
- package/dist/shipment/shipment-actions.js +190 -0
- package/dist/shipment/shipment-actions.js.map +1 -0
- package/dist/shipment/shipment-pipeline.d.ts +48 -0
- package/dist/shipment/shipment-pipeline.d.ts.map +1 -0
- package/dist/shipment/shipment-pipeline.js +256 -0
- package/dist/shipment/shipment-pipeline.js.map +1 -0
- package/dist/shipment/transport-detect.d.ts +16 -0
- package/dist/shipment/transport-detect.d.ts.map +1 -0
- package/dist/shipment/transport-detect.js +54 -0
- package/dist/shipment/transport-detect.js.map +1 -0
- package/dist/shipment/workspace-diff.d.ts +39 -0
- package/dist/shipment/workspace-diff.d.ts.map +1 -0
- package/dist/shipment/workspace-diff.js +64 -0
- package/dist/shipment/workspace-diff.js.map +1 -0
- package/dist/swarm-coordinator.d.ts +20 -1
- package/dist/swarm-coordinator.d.ts.map +1 -1
- package/dist/swarm-coordinator.js +193 -10
- package/dist/swarm-coordinator.js.map +1 -1
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/workspace/git-worktree-provider.d.ts +11 -0
- package/dist/workspace/git-worktree-provider.d.ts.map +1 -0
- package/dist/workspace/git-worktree-provider.js +123 -0
- package/dist/workspace/git-worktree-provider.js.map +1 -0
- package/dist/workspace/gitignore-check.d.ts +10 -0
- package/dist/workspace/gitignore-check.d.ts.map +1 -0
- package/dist/workspace/gitignore-check.js +25 -0
- package/dist/workspace/gitignore-check.js.map +1 -0
- package/dist/workspace/index.d.ts +5 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +5 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/snapshot-copy-provider.d.ts +11 -0
- package/dist/workspace/snapshot-copy-provider.d.ts.map +1 -0
- package/dist/workspace/snapshot-copy-provider.js +66 -0
- package/dist/workspace/snapshot-copy-provider.js.map +1 -0
- package/dist/workspace/types.d.ts +36 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/dist/workspace/types.js +2 -0
- package/dist/workspace/types.js.map +1 -0
- package/dist/workspace/workspace-manager.d.ts +30 -0
- package/dist/workspace/workspace-manager.d.ts.map +1 -0
- package/dist/workspace/workspace-manager.js +104 -0
- package/dist/workspace/workspace-manager.js.map +1 -0
- package/package.json +4 -4
- package/roles/queen.md +1 -0
- package/templates/introspection.md +64 -0
- package/templates/research-only.md +58 -0
- package/roles/preset-analyst-simons.md +0 -39
- package/roles/preset-architect-knuth.md +0 -39
- package/roles/preset-designer-norman.md +0 -39
- package/roles/preset-designer.md +0 -39
- package/roles/preset-dev-carmack.md +0 -39
- package/roles/preset-dev-gosling.md +0 -39
- package/roles/preset-developer.md +0 -52
- package/roles/preset-manager-grove.md +0 -39
- package/roles/preset-manager-musk.md +0 -39
- package/roles/preset-pm.md +0 -78
- package/roles/preset-researcher-feynman.md +0 -39
- package/roles/preset-reviewer.md +0 -46
- package/roles/preset-strategist-buffett.md +0 -39
- package/roles/preset-strategist-munger.md +0 -39
- package/roles/preset-strategist-sunzi.md +0 -39
- package/roles/preset-tester-beck.md +0 -40
- package/roles/preset-tester.md +0 -47
- package/roles/preset-writer-orwell.md +0 -39
- package/roles/preset-writer.md +0 -39
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection-source.js","sourceRoot":"","sources":["../../../src/always-on/task-sources/introspection-source.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,sDAAsD;AACtD,EAAE;AACF,yEAAyE;AACzE,+CAA+C;AAC/C,0EAA0E;AAC1E,qCAAqC;AACrC,4EAA4E;AAC5E,2EAA2E;AAC3E,sBAAsB;AACtB,oCAAoC;AACpC,wDAAwD;AACxD,4EAA4E;AAC5E,4EAA4E;AAC5E,iCAAiC;AACjC,qEAAqE;AACrE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAyC;AACzC,4EAA4E;AAC5E,qEAAqE;AACrE,8BAA8B;AAC9B,EAAE;AACF,mCAAmC;AACnC,0EAA0E;AAC1E,iEAAiE;AACjE,uEAAuE;AACvE,yEAAyE;AACzE,sEAAsE;AACtE,2EAA2E;AAC3E,gEAAgE;AAChE,EAAE;AACF,yDAAyD;AACzD,yEAAyE;AACzE,0DAA0D;AAC1D,wEAAwE;AACxE,0EAA0E;AAC1E,wEAAwE;AACxE,0BAA0B;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,OAAO,EACL,oCAAoC,EACpC,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AACrD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA8DnE;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/C,qCAAqC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,yEAAyE;IACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5B,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,GAAG,GAAG,CAAC,CAAC;gBACR,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAc;IACtC,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QAC9C,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAAmB,EACnB,kBAA0B;IAE1B,OAAO;QACL,oEAAoE,WAAW,EAAE;QACjF,EAAE;QACF,oEAAoE;QACpE,gHAAgH;QAChH,kIAAkI;QAClI,EAAE;QACF,qFAAqF;QACrF,KAAK,kBAAkB,EAAE;QACzB,uFAAuF;QACvF,EAAE;QACF,+BAA+B;QAC/B,mFAAmF;QACnF,EAAE;QACF,6FAA6F;QAC7F,uXAAuX;KACxX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,4FAA4F;AAC5F,SAAS,eAAe,CACtB,KAAuB,EACvB,OAAe;IAEf,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjF,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAgC;IAEhC,MAAM,EACJ,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,yBAAyB,GAAG,2BAA2B,EACvD,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACxB,IAAI,EACJ,IAAI,EACJ,eAAe,GAAG,GAAG,EAAE,CAAC,iBAAiB,UAAU,EAAE,EAAE,EACvD,iBAAiB,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAC3C,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,OAAO,CAAC,GACpE,GAAG,IAAI,CAAC;IAET;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,uBAAuB,CAC9B,WAAmB,EACnB,OAAe,EACf,YAAqB;QAErB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,YAAY,IAAI,WAAW,CAAC;QAClE,qEAAqE;QACrE,yDAAyD;QACzD,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,SAAS,kBAAkB,CAAC,OAAe;QACzC,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,eAAe,CACtB,WAAmB,EACnB,SAAiB,EACjB,GAA4B;QAE5B,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9B,wEAAwE;QACxE,0EAA0E;QAC1E,sEAAsE;QACtE,oCAAoC;QACpC,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,SAAS,GAAG,gCAAgC,EAAE,CAAC;gBACrF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACzG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,+BAA+B,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,SAAiB,EACjB,GAA4B;QAE5B,IAAI,KAAK,GAAG,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAEzD,uEAAuE;QACvE,4DAA4D;QAC5D,6DAA6D;QAC7D,qEAAqE;QACrE,uEAAuE;QACvE,uEAAuE;QACvE,yEAAyE;QACzE,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACzG,IAAI,UAAU,GAA6B,EAAE,CAAC;QAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,aAAa,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC9C,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAChF,wEAAwE,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;gBAClD,IAAI,EAAE,CACJ,EAAE,SAAS,EAAE,WAAW,EAAE,EAC1B,0EAA0E,CAC3E,CAAC;gBACF,OAAO;YACT,CAAC;YACD,sEAAsE;YACtE,oEAAoE;YACpE,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,EAAE,CACJ,EAAE,SAAS,EAAE,WAAW,EAAE,EAC1B,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iEAAiE;gBACjE,oEAAoE;gBACpE,yDAAyD;gBACzD,kEAAkE;gBAClE,gEAAgE;gBAChE,6DAA6D;gBAC7D,gEAAgE;gBAChE,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EACpE,+EAA+E,CAChF,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;YACH,CAAC;YACD,KAAK,GAAG,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,EAAE,CACJ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,EACpD,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5D,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,gDAAgD;QAChD,IAAI,WAAW,GAAuB,EAAE,CAAC;QACzC,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;oBACtC,SAAS;oBACT,GAAG,EAAE,wBAAwB;oBAC7B,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;gBACH,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,4CAA4C;gBAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;gBAC/D,WAAW,GAAG,gBAAgB,CAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CACtE,CAAC;gBACF,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EACpE,mFAAmF,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,aAAa,CACzB,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,EACtC,WAAW,CACZ,CAAC;gBACF,IAAI,KAAK,EAAE,CAAC;oBACV,oBAAoB,EAAE,CAAC;oBACvB,IAAI,EAAE,CACJ;wBACE,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,SAAS;wBACT,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC/D,EACD,4CAA4C,CAC7C,CAAC;oBACF,SAAS;gBACX,CAAC;YACH,CAAC;YACD,MAAM,KAAK,GAAoB;gBAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC5B,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;gBACrC,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,CAAC,wBAAwB,CAAC;gBAChC,UAAU,EAAE,yBAAyB;gBACrC,aAAa,EAAE,SAAS;gBACxB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,mEAAmE;gBACnE,oEAAoE;gBACpE,oEAAoE;gBACpE,gBAAgB;gBAChB,IAAI,eAAe,EAAE,CAAC;oBACpB,aAAa,CAAC,WAAW,EAAE;wBACzB,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EACzE,2CAA2C,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,0DAA0D;QAC1D,sEAAsE;QACtE,yEAAyE;QACzE,oCAAoC;QACpC,oEAAoE;QACpE,yEAAyE;QACzE,gEAAgE;QAChE,iEAAiE;QACjE,oEAAoE;QACpE,wBAAwB;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EACpE,iEAAiE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EACpE,6DAA6D,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,mEAAmE;QACnE,yEAAyE;QACzE,mEAAmE;QAEnE,IAAI,EAAE,CACJ;YACE,SAAS;YACT,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,QAAQ,EAAE,UAAU,CAAC,MAAM;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,uBAAuB,CAAC;YACzE,oBAAoB;SACrB,EACD,uCAAuC,CACxC,CAAC;QAEF,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,oEAAoE;QACpE,EAAE;QACF,sEAAsE;QACtE,uEAAuE;QACvE,wCAAwC;QACxC,MAAM,KAAK,GAAuC;YAChD,2BAA2B,EAAE,IAAI;YACjC,gCAAgC,EAAE,IAAI;SACvC,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC;QACvD,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,aAAa,GACjB,GAAG,CAAC,0BAA0B,IAAI,oCAAoC,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;YAC3D,KAAK,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACjF,IAAI,EAAE,CACJ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EACxE,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,qBAAqB;QAC3B;;;;;;;WAOG;QACH,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAe;YACnD,OAAO,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,CAAC;QACD;;;;;;;;;;;WAWG;QACH,KAAK,CAAC,YAAY,CAAC,WAAmB;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,2BAA2B;gBAAE,OAAO;YAC7C,MAAM,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,WAAmB;YAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,mEAAmE;gBACnE,qDAAqD;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,iEAAiE;YACjE,kEAAkE;YAClE,mEAAmE;YACnE,qEAAqE;YACrE,mEAAmE;YACnE,iEAAiE;YACjE,yDAAyD;YACzD,EAAE;YACF,qEAAqE;YACrE,qEAAqE;YACrE,oEAAoE;YACpE,oEAAoE;YACpE,mEAAmE;YACnE,iEAAiE;YACjE,6DAA6D;YAC7D,IAAI,GAAG,CAAC,2BAA2B,EAAE,CAAC;gBACpC,MAAM,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,oEAAoE;YACpE,kEAAkE;YAClE,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;oBACzC,yDAAyD;oBACzD,iEAAiE;oBACjE,kCAAkC;oBAClC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;wBACpC,SAAS;wBACT,GAAG,EAAE,wBAAwB;wBAC7B,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,gCAAgC;oBAC1D,kEAAkE;oBAClE,0DAA0D;oBAC1D,+DAA+D;oBAC/D,8DAA8D;oBAC9D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,KAAK,yBAAyB;wBAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,SAAS,CACvD,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;wBACjE,MAAM,OAAO,GAAG,WAAW,CAAC;wBAC5B,IAAI,GAAG,CAAC,yBAAyB,KAAK,OAAO,EAAE,CAAC;4BAC9C,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC1E,CAAC;wBACD,IAAI,WAAW,EAAE,CAAC;4BAChB,IAAI,EAAE,CACJ,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EACxC,kEAAkE,CACnE,CAAC;4BACF,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,uEAAuE;oBACvE,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACzD,kEAAkE,CACnE,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,yBAAyB,EAAE,CAAC;gBACzC,mEAAmE;gBACnE,iDAAiD;gBACjD,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,qEAAqE;YACrE,wDAAwD;YACxD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,yBAAyB,KAAK,IAAI,EAAE,CAAC;gBAC5C,IAAI,EAAE,CACJ,EAAE,WAAW,EAAE,EACf,iEAAiE,CAClE,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,MAAM,aAAa,GACjB,IAAI,CAAC,0BAA0B,IAAI,oCAAoC,CAAC;YAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC;YACzD,IAAI,IAAI,CAAC,mBAAmB,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC/C,mEAAmE;gBACnE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjF,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,IAAI,EAAE,CACJ,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,EACtE,uDAAuD,CACxD,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,mEAAmE;YACnE,mEAAmE;YACnE,iEAAiE;YACjE,iEAAiE;YACjE,sCAAsC;YACtC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC;gBACH,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YAED,oEAAoE;YACpE,sEAAsE;YACtE,mEAAmE;YACnE,2DAA2D;YAC3D,8DAA8D;YAC9D,MAAM,UAAU,GAAG,4BAA4B,CAAC,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YAE1F,oEAAoE;YACpE,iEAAiE;YACjE,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE;oBACrC,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,yBAAyB;oBACvC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,yBAAyB;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAClE,yFAAyF,CAC1F,CAAC;gBACF,MAAM,YAAY,CAAC,WAAW,EAAE;oBAC9B,mBAAmB,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE;oBAC1C,yBAAyB,EAAE,KAAK;iBACjC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,oEAAoE;YACpE,mEAAmE;YACnE,EAAE;YACF,yDAAyD;YACzD,qEAAqE;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,6DAA6D;YAC7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC;YAC7C,MAAM,YAAY,CAAC,WAAW,EAAE;gBAC9B,mBAAmB,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE;gBAC1C,yBAAyB,EAAE,KAAK;gBAChC,2BAA2B,EAAE,OAAO;gBACpC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,gCAAgC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC,CAAC;YAEH,IAAI,EAAE,CACJ,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,yBAAyB,EAAE,EACjE,4FAA4F,CAC7F,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,oBAAoB;QACpB,KAAK,CAAC,OAAO;YACX,WAAW;QACb,CAAC;QACD,KAAK,CAAC,SAAS;YACb,WAAW;QACb,CAAC;QACD,KAAK,CAAC,SAAS;YACb,WAAW;QACb,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TaskStore } from "@mclawnet/task";
|
|
2
|
+
import type { TaskSource } from "./types.js";
|
|
3
|
+
export interface TaskStoreSourceOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Returns the TaskStore for a project. Factory rather than instance so the
|
|
6
|
+
* agent's per-workDir TaskStore can be re-resolved each cycle without the
|
|
7
|
+
* source caching a stale instance (matches the M7 pickNextTask closure
|
|
8
|
+
* which built a fresh TaskStore on each call).
|
|
9
|
+
*/
|
|
10
|
+
taskStore: (projectRoot: string) => TaskStore | undefined;
|
|
11
|
+
/** Optional warn logger; defaults to console.warn. */
|
|
12
|
+
warn?: (obj: Record<string, unknown>, msg?: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createTaskStoreSource(opts: TaskStoreSourceOptions): TaskSource;
|
|
15
|
+
//# sourceMappingURL=task-store-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-store-source.d.ts","sourceRoot":"","sources":["../../../src/always-on/task-sources/task-store-source.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC1D,sDAAsD;IACtD,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU,CAuD9E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// M8.0 — TaskStoreSource: M7's existing pickNextTask body extracted into a
|
|
2
|
+
// composable source so the cascade picker can layer ideas / introspection
|
|
3
|
+
// behind it without behaviour change.
|
|
4
|
+
//
|
|
5
|
+
// No `onSuccess` / `onFailure` hooks: the TaskStore status flow is driven by
|
|
6
|
+
// the swarm's task_set_status calls during the cycle. There's no
|
|
7
|
+
// post-terminal patch the picker needs to apply on this source's behalf.
|
|
8
|
+
export function createTaskStoreSource(opts) {
|
|
9
|
+
const { taskStore, warn } = opts;
|
|
10
|
+
return {
|
|
11
|
+
name: "task-store",
|
|
12
|
+
kind: "task-store",
|
|
13
|
+
async pick(projectRoot) {
|
|
14
|
+
let store;
|
|
15
|
+
try {
|
|
16
|
+
store = taskStore(projectRoot);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
warn?.({ err: err instanceof Error ? err.message : String(err), projectRoot }, "task-store-source: taskStore factory threw");
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
if (!store)
|
|
23
|
+
return null;
|
|
24
|
+
let open;
|
|
25
|
+
try {
|
|
26
|
+
open = store
|
|
27
|
+
.list()
|
|
28
|
+
.filter((t) => t.status === "pending" && !t.owner);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
warn?.({ err: err instanceof Error ? err.message : String(err), projectRoot }, "task-store-source: store.list threw");
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
if (open.length === 0)
|
|
35
|
+
return null;
|
|
36
|
+
// Stable selection: lowest displayId first so cycles drain the backlog
|
|
37
|
+
// in user-visible order rather than randomly (preserves M7 behaviour).
|
|
38
|
+
open.sort((a, b) => (a.displayId ?? "").localeCompare(b.displayId ?? ""));
|
|
39
|
+
const head = open[0];
|
|
40
|
+
let description;
|
|
41
|
+
try {
|
|
42
|
+
const full = store.tryGet(head.id);
|
|
43
|
+
if (full?.description)
|
|
44
|
+
description = full.description;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// tryGet is best-effort; missing description is fine.
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
id: head.id,
|
|
51
|
+
title: head.subject,
|
|
52
|
+
...(description ? { description } : {}),
|
|
53
|
+
sourceKind: "task-store",
|
|
54
|
+
sourceId: head.id,
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=task-store-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-store-source.js","sourceRoot":"","sources":["../../../src/always-on/task-sources/task-store-source.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,sCAAsC;AACtC,EAAE;AACF,6EAA6E;AAC7E,iEAAiE;AACjE,yEAAyE;AAiBzE,MAAM,UAAU,qBAAqB,CAAC,IAA4B;IAChE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACjC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,KAAK,CAAC,IAAI,CAAC,WAAmB;YAC5B,IAAI,KAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,EACtE,4CAA4C,CAC7C,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,KAAK;qBACT,IAAI,EAAE;qBACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CACJ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,EACtE,qCAAqC,CACtC,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEnC,uEAAuE;YACvE,uEAAuE;YACvE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjB,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CACrD,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,WAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,IAAI,EAAE,WAAW;oBAAE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,OAAO;gBACnB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,UAAU,EAAE,YAAY;gBACxB,QAAQ,EAAE,IAAI,CAAC,EAAE;aAClB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { TaskRef as BaseTaskRef } from "../workcycle-runner.js";
|
|
2
|
+
/**
|
|
3
|
+
* Identifier for the source kind a task came from. Open-ended `string` so
|
|
4
|
+
* future sub-PRs (M8.1 IdeaResearchSource, M8.2 QueenIntrospectionSource) can
|
|
5
|
+
* extend without touching this file.
|
|
6
|
+
*/
|
|
7
|
+
export type TaskSourceKind = "task-store" | "idea-todo" | "idea-research" | "queen-introspection" | (string & {
|
|
8
|
+
readonly __taskSourceKindBrand?: unique symbol;
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Lightweight extension of the base TaskRef with optional source provenance.
|
|
12
|
+
* The base `id`/`title`/`description` shape stays identical so existing M7
|
|
13
|
+
* callers continue to work unchanged.
|
|
14
|
+
*
|
|
15
|
+
* `cycleKind` lives on the base TaskRef (workcycle-runner.ts) because the
|
|
16
|
+
* runner reads it to override the template name — keeping it there avoids a
|
|
17
|
+
* cascade-side cast in runner code. Sources that produce research-cycle
|
|
18
|
+
* tasks (IdeaResearchSource) stamp it on pick.
|
|
19
|
+
*/
|
|
20
|
+
export interface TaskRef extends BaseTaskRef {
|
|
21
|
+
/** Which source rung produced this task. Optional for back-compat. */
|
|
22
|
+
sourceKind?: TaskSourceKind;
|
|
23
|
+
/**
|
|
24
|
+
* Source-specific id — for IdeaTodoSource this is the idea id, distinct
|
|
25
|
+
* from the synthetic in-cycle TaskRef.id. Used by onSuccess/onFailure to
|
|
26
|
+
* patch the underlying record.
|
|
27
|
+
*/
|
|
28
|
+
sourceId?: string;
|
|
29
|
+
/**
|
|
30
|
+
* M8.1 — projectRoot the task was picked for. Sources that need it in
|
|
31
|
+
* onSuccess/onFailure (IdeaResearchSource scans
|
|
32
|
+
* `<projectRoot>/.clawnet/ideas/<id>/`) stamp it on pick. Optional so the
|
|
33
|
+
* existing M8.0 sources don't have to fill it.
|
|
34
|
+
*/
|
|
35
|
+
projectRoot?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface TaskSource {
|
|
38
|
+
/** Stable name for logging / debugging. */
|
|
39
|
+
readonly name: string;
|
|
40
|
+
/**
|
|
41
|
+
* S6 hotfix — the cascade kind used by cascade-picker.resolveSource() to
|
|
42
|
+
* map a TaskRef back to its producing source. Existing sources happen to
|
|
43
|
+
* use the same string for both `name` (free-form) and `kind` (one of the
|
|
44
|
+
* `TaskSourceKind` union), but the two are conceptually distinct: `name`
|
|
45
|
+
* is a debug label and `kind` is the stable wire identifier. New sources
|
|
46
|
+
* should set both. Optional only so older sources without it still
|
|
47
|
+
* compile; resolveSource falls back to `name` for those.
|
|
48
|
+
*/
|
|
49
|
+
readonly kind?: TaskSourceKind;
|
|
50
|
+
/**
|
|
51
|
+
* Try to pick the next task for the given project. Resolve to null when
|
|
52
|
+
* this source has nothing actionable; the cascade picker will fall through
|
|
53
|
+
* to the next source.
|
|
54
|
+
*/
|
|
55
|
+
pick(projectRoot: string): Promise<TaskRef | null>;
|
|
56
|
+
/**
|
|
57
|
+
* R3 I-B — pre-cascade maintenance hook. Called by AlwaysOnManager on
|
|
58
|
+
* every tick BEFORE the cascade runs, regardless of whether the source's
|
|
59
|
+
* toggle is on or off. Sources use this to reap stale in-flight work
|
|
60
|
+
* (e.g. IntrospectionSource ingests a pending fire-and-forget swarm and
|
|
61
|
+
* releases its coordinator slot). Decoupled from `pick()` because the
|
|
62
|
+
* cascade-picker skips disabled sources entirely; without this hook, the
|
|
63
|
+
* "user toggled introspection off while a swarm was mid-flight" scenario
|
|
64
|
+
* leaked the pending swarmId + registry entry forever. Best-effort:
|
|
65
|
+
* failures must be swallowed by the source, never thrown back to the
|
|
66
|
+
* manager (a single source's outage must not break the tick loop).
|
|
67
|
+
* Optional — sources with no maintenance work omit it.
|
|
68
|
+
*/
|
|
69
|
+
drainPending?(projectRoot: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Called by the runner immediately after it mints the swarmId and spawns
|
|
72
|
+
* the swarm — i.e. when the task is "claimed" for this cycle. IdeaTodoSource
|
|
73
|
+
* uses it to PATCH the idea to status=researching + linkedSwarmTaskId so
|
|
74
|
+
* the UI reflects the in-flight state. Best-effort: failures are logged,
|
|
75
|
+
* never thrown. Optional.
|
|
76
|
+
*/
|
|
77
|
+
onClaim?(taskRef: TaskRef, swarmId: string): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Called by the runner after the swarm completed AND the shipment landed
|
|
80
|
+
* (strategy !== "skipped"). Best-effort: failures should be logged, not
|
|
81
|
+
* thrown. Optional — sources without a flow can omit.
|
|
82
|
+
*/
|
|
83
|
+
onSuccess?(taskRef: TaskRef, swarmId: string): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Called by the runner when the swarm failed/cancelled OR the shipment was
|
|
86
|
+
* skipped. Best-effort. Optional.
|
|
87
|
+
*/
|
|
88
|
+
onFailure?(taskRef: TaskRef, swarmId: string, error?: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* M8.2c — spawner-owned completion signal. When a source spawns a
|
|
91
|
+
* fire-and-forget swarm whose terminal transition the coordinator's
|
|
92
|
+
* idle-fallback can't be trusted to deliver (single-queen introspection
|
|
93
|
+
* swarms get stuck in `paused` because there's no non-queen worker to
|
|
94
|
+
* watch), the source can implement `isComplete` to observe its own
|
|
95
|
+
* stronger signal — typically "queen wrote the output file and the
|
|
96
|
+
* mtime has been stable for N seconds" or "hard timeout elapsed". The
|
|
97
|
+
* source's own `drainPending` calls `coordinator.complete()` when this
|
|
98
|
+
* returns true, bypassing the auto-pause that would otherwise leave the
|
|
99
|
+
* swarm stranded.
|
|
100
|
+
*
|
|
101
|
+
* Pure inspection: implementations MUST be idempotent and side-effect-
|
|
102
|
+
* free; this is consulted on every `drainPending` tick and must not
|
|
103
|
+
* mutate any backing store. Optional — only spawner-driven sources
|
|
104
|
+
* (today: introspection) need it.
|
|
105
|
+
*/
|
|
106
|
+
isComplete?(projectRoot: string, swarmId: string): Promise<boolean>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/always-on/task-sources/types.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,CAAC,MAAM,GAAG;IAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,sEAAsE;IACtE,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACnD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;OAIG;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D;;;OAGG;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// M8.0 — multi-source cascade picker primitives.
|
|
2
|
+
//
|
|
3
|
+
// A `TaskSource` is one rung in the WorkCycleRunner picker cascade. Each
|
|
4
|
+
// source decides whether it has a task this cycle (returns a TaskRef) or not
|
|
5
|
+
// (returns null). The cascade picker tries sources in priority order and
|
|
6
|
+
// stops at the first hit.
|
|
7
|
+
//
|
|
8
|
+
// Optional onSuccess/onFailure hooks let a source implement its own bookkeeping
|
|
9
|
+
// after the swarm reaches a terminal state — e.g. IdeaTodoSource flips the
|
|
10
|
+
// idea status to `developed` on success and reverts to `todo` on failure.
|
|
11
|
+
// Sources that have no flow (TaskStore) can omit them.
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/always-on/task-sources/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AACzE,0BAA0B;AAC1B,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,0EAA0E;AAC1E,uDAAuD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export type AlwaysOnMode = "off" | "quiet" | "active" | "aggressive";
|
|
2
|
+
/**
|
|
3
|
+
* Decision returned by a single gate. Drives the next action:
|
|
4
|
+
* - "fire": this gate passed, proceed to the next gate (or fire if last).
|
|
5
|
+
* - "skip": this tick is gated; record reason; do not fire; reschedule.
|
|
6
|
+
* - "halt": fatal — disable the scheduler entirely (e.g. unrecoverable config).
|
|
7
|
+
*/
|
|
8
|
+
export type GateDecision = {
|
|
9
|
+
kind: "fire";
|
|
10
|
+
} | {
|
|
11
|
+
kind: "skip";
|
|
12
|
+
reason: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "halt";
|
|
15
|
+
reason: string;
|
|
16
|
+
};
|
|
17
|
+
/** Context passed to every gate during a tick. `now` is injectable for tests. */
|
|
18
|
+
export interface GateContext {
|
|
19
|
+
now: Date;
|
|
20
|
+
mode: AlwaysOnMode;
|
|
21
|
+
/** Cycles already fired this local day (resets at local midnight). */
|
|
22
|
+
ticksToday: number;
|
|
23
|
+
lastFireAt: Date | null;
|
|
24
|
+
}
|
|
25
|
+
export interface Gate {
|
|
26
|
+
name: string;
|
|
27
|
+
evaluate(ctx: GateContext): GateDecision | Promise<GateDecision>;
|
|
28
|
+
}
|
|
29
|
+
export interface TickRecord {
|
|
30
|
+
at: Date;
|
|
31
|
+
decision: "fired" | "skipped" | "halted";
|
|
32
|
+
/**
|
|
33
|
+
* Gates evaluated this tick, in order. On a skip/halt, the last entry is the
|
|
34
|
+
* gate that returned the non-fire decision; gates after it were short-circuited
|
|
35
|
+
* and are not included.
|
|
36
|
+
*/
|
|
37
|
+
gateBreakdown: Array<{
|
|
38
|
+
gate: string;
|
|
39
|
+
decision: GateDecision;
|
|
40
|
+
}>;
|
|
41
|
+
durationMs: number;
|
|
42
|
+
}
|
|
43
|
+
export interface DiscoverySchedulerOptions {
|
|
44
|
+
mode: AlwaysOnMode;
|
|
45
|
+
/**
|
|
46
|
+
* Override tick interval (ms) for ALL modes except "off". When unset, defaults
|
|
47
|
+
* apply per mode: quiet=24h, active=30min, aggressive=10min. M7.0 intentionally
|
|
48
|
+
* keeps this a single number; per-mode overrides can be added later.
|
|
49
|
+
*/
|
|
50
|
+
tickInterval?: number;
|
|
51
|
+
/** Daily cycle budget; null = unlimited. Default 3. */
|
|
52
|
+
dailyBudget?: number | null;
|
|
53
|
+
/** Gates evaluated AFTER built-in gates (dailyBudget, modeNotOff). */
|
|
54
|
+
gates?: Gate[];
|
|
55
|
+
/** Called when scheduler decides to fire. Awaited before scheduling the next tick. */
|
|
56
|
+
onFire?: (ctx: GateContext) => Promise<void>;
|
|
57
|
+
/** Optional clock injection for tests. */
|
|
58
|
+
now?: () => Date;
|
|
59
|
+
/** Optional tick observer (tests, UI streaming later). */
|
|
60
|
+
onTick?: (record: TickRecord) => void;
|
|
61
|
+
}
|
|
62
|
+
export interface DiscoverySchedulerSnapshot {
|
|
63
|
+
mode: AlwaysOnMode;
|
|
64
|
+
ticksToday: number;
|
|
65
|
+
lastFireAt: Date | null;
|
|
66
|
+
/** null when mode === "off" or scheduler is halted/stopped. */
|
|
67
|
+
nextTickAt: Date | null;
|
|
68
|
+
/** Last 10 TickRecord entries; oldest dropped silently. */
|
|
69
|
+
recentTicks: TickRecord[];
|
|
70
|
+
}
|
|
71
|
+
/** Default tick interval per mode in milliseconds. */
|
|
72
|
+
export declare const DEFAULT_TICK_INTERVAL_MS: Record<Exclude<AlwaysOnMode, "off">, number>;
|
|
73
|
+
export declare const DEFAULT_DAILY_BUDGET = 3;
|
|
74
|
+
/** Max entries kept in DiscoverySchedulerSnapshot.recentTicks. */
|
|
75
|
+
export declare const RECENT_TICKS_CAP = 10;
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/always-on/types.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAErE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,YAAY,CAAC;IACnB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC;;;;OAIG;IACH,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sEAAsE;IACtE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,+DAA+D;IAC/D,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,2DAA2D;IAC3D,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,KAAK,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Always-on (M7) shared types.
|
|
2
|
+
//
|
|
3
|
+
// M7.0 introduces the standalone DiscoveryScheduler primitive. The scheduler
|
|
4
|
+
// fires on a per-mode interval; before each fire it walks a "gate cascade"
|
|
5
|
+
// (sequential short-circuit). Only when every gate returns `fire` does the
|
|
6
|
+
// scheduler invoke `onFire`. This file defines the small surface those gates
|
|
7
|
+
// + the scheduler share, with no swarm wiring (that lands in M7.1).
|
|
8
|
+
/** Default tick interval per mode in milliseconds. */
|
|
9
|
+
export const DEFAULT_TICK_INTERVAL_MS = {
|
|
10
|
+
quiet: 24 * 60 * 60 * 1000,
|
|
11
|
+
active: 30 * 60 * 1000,
|
|
12
|
+
aggressive: 10 * 60 * 1000,
|
|
13
|
+
};
|
|
14
|
+
export const DEFAULT_DAILY_BUDGET = 3;
|
|
15
|
+
/** Max entries kept in DiscoverySchedulerSnapshot.recentTicks. */
|
|
16
|
+
export const RECENT_TICKS_CAP = 10;
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/always-on/types.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,oEAAoE;AAuEpE,sDAAsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAiD;IACpF,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACtB,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { SwarmCoordinator } from "../swarm-coordinator.js";
|
|
2
|
+
import type { ShipmentResult } from "../shipment/shipment-pipeline.js";
|
|
3
|
+
import type { TaskSource } from "./task-sources/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Minimal logger surface used by the runner. Matches the subset of pino we
|
|
6
|
+
* actually call so callers can pass a pino logger directly without an
|
|
7
|
+
* adapter; tests can pass a vi.fn() stub.
|
|
8
|
+
*/
|
|
9
|
+
export interface Logger {
|
|
10
|
+
info: (obj: Record<string, unknown>, msg?: string) => void;
|
|
11
|
+
warn: (obj: Record<string, unknown>, msg?: string) => void;
|
|
12
|
+
error: (obj: Record<string, unknown>, msg?: string) => void;
|
|
13
|
+
debug?: (obj: Record<string, unknown>, msg?: string) => void;
|
|
14
|
+
}
|
|
15
|
+
/** Lightweight reference to a TaskStore entry. */
|
|
16
|
+
export interface TaskRef {
|
|
17
|
+
id: string;
|
|
18
|
+
title: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
/**
|
|
21
|
+
* M8.1 — when set to "research", the runner overrides the default template
|
|
22
|
+
* with the research-only template so the swarm produces a markdown report
|
|
23
|
+
* instead of code. Source-stamped (IdeaResearchSource sets this on pick).
|
|
24
|
+
* Default behaviour (omitted / "execute") preserves M7 + M8.0 paths.
|
|
25
|
+
*/
|
|
26
|
+
cycleKind?: "execute" | "research";
|
|
27
|
+
}
|
|
28
|
+
export interface WorkCycleInput {
|
|
29
|
+
projectRoot: string;
|
|
30
|
+
/**
|
|
31
|
+
* Template (team) name passed to SwarmCoordinator.create. Falls back to
|
|
32
|
+
* `"minimal"` when omitted — a template the swarm package always ships,
|
|
33
|
+
* unlike the legacy `"default"` literal that was hardcoded pre-hotfix and
|
|
34
|
+
* crashed every cycle (C1).
|
|
35
|
+
*/
|
|
36
|
+
templateName?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface WorkCycleResult {
|
|
39
|
+
cycleId: string;
|
|
40
|
+
swarmId: string;
|
|
41
|
+
/** null when no task was available (status=skipped); otherwise the task picked. */
|
|
42
|
+
taskRef: TaskRef | null;
|
|
43
|
+
status: "completed" | "failed" | "skipped";
|
|
44
|
+
shipment?: ShipmentResult;
|
|
45
|
+
error?: string;
|
|
46
|
+
startedAt: string;
|
|
47
|
+
endedAt: string;
|
|
48
|
+
}
|
|
49
|
+
export interface WorkCycleRunnerOptions {
|
|
50
|
+
/** Picks the next task; return null when nothing actionable is available. */
|
|
51
|
+
pickNextTask: (projectRoot: string) => Promise<TaskRef | null>;
|
|
52
|
+
/**
|
|
53
|
+
* M8.0 cascade hook. When set, the runner uses this to resolve which
|
|
54
|
+
* TaskSource produced the picked task and invokes its onClaim / onSuccess /
|
|
55
|
+
* onFailure lifecycle hooks. Optional — when omitted the runner behaves
|
|
56
|
+
* exactly like M7 (no source-side flow).
|
|
57
|
+
*/
|
|
58
|
+
resolveTaskSource?: (taskRef: TaskRef) => TaskSource | null;
|
|
59
|
+
/** Existing SwarmCoordinator. The runner does not own its lifecycle. */
|
|
60
|
+
swarmCoordinator: SwarmCoordinator;
|
|
61
|
+
/** Optional logger override (defaults to a module logger). */
|
|
62
|
+
log?: Logger;
|
|
63
|
+
/**
|
|
64
|
+
* Max time to wait for the swarm to reach a terminal state before forcing
|
|
65
|
+
* coordinator.cancel and returning a failed result. Defaults to 30 min.
|
|
66
|
+
*/
|
|
67
|
+
pollTimeoutMs?: number;
|
|
68
|
+
/** Interval between polling probes. Default 5s. */
|
|
69
|
+
pollIntervalMs?: number;
|
|
70
|
+
/**
|
|
71
|
+
* Initial settle wait after create() before the first poll. Default 5s.
|
|
72
|
+
* Pulled out so tests with fake timers can shorten it deterministically.
|
|
73
|
+
*/
|
|
74
|
+
initialSettleMs?: number;
|
|
75
|
+
/** Test injection: replaces the default setTimeout-based sleep. */
|
|
76
|
+
sleep?: (ms: number) => Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
export declare class WorkCycleRunner {
|
|
79
|
+
private readonly pickNextTask;
|
|
80
|
+
private readonly resolveTaskSource?;
|
|
81
|
+
private readonly coordinator;
|
|
82
|
+
private readonly log;
|
|
83
|
+
private readonly pollTimeoutMs;
|
|
84
|
+
private readonly pollIntervalMs;
|
|
85
|
+
private readonly initialSettleMs;
|
|
86
|
+
private readonly sleep;
|
|
87
|
+
constructor(opts: WorkCycleRunnerOptions);
|
|
88
|
+
/**
|
|
89
|
+
* Run one work cycle. Never throws — every failure is folded into the
|
|
90
|
+
* returned WorkCycleResult so DiscoveryScheduler.onFire can stay shape-
|
|
91
|
+
* stable across success and failure paths.
|
|
92
|
+
*/
|
|
93
|
+
run(input: WorkCycleInput): Promise<WorkCycleResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Best-effort invocation of a source lifecycle hook. Swallows the source's
|
|
96
|
+
* exceptions so a misbehaving hook never crashes the runner — the cycle
|
|
97
|
+
* already reached its terminal state and the result is locked in.
|
|
98
|
+
*/
|
|
99
|
+
private invokeHook;
|
|
100
|
+
/**
|
|
101
|
+
* Poll coordinator.getSwarm(swarmId) until the swarm enters a terminal
|
|
102
|
+
* state or the swarm is removed from the registry (cleanup already ran).
|
|
103
|
+
*
|
|
104
|
+
* Returns {status, error?} so the caller can build the full result.
|
|
105
|
+
* Status interpretation:
|
|
106
|
+
* - "completed" → swarm.status flipped to completed (we then call
|
|
107
|
+
* coordinator.complete to release resources if it's still in the map)
|
|
108
|
+
* - "failed" → swarm.status flipped to failed (we then call .fail)
|
|
109
|
+
* - "completed" (gone from map) → cleanup already happened externally;
|
|
110
|
+
* treat as completed without re-calling complete()
|
|
111
|
+
* - "failed" (timeout exceeded) → cancel via destroy and return failed
|
|
112
|
+
*/
|
|
113
|
+
private waitForTerminal;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=workcycle-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workcycle-runner.d.ts","sourceRoot":"","sources":["../../src/always-on/workcycle-runner.ts"],"names":[],"mappings":"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"}
|