@telora/factory 0.4.5
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/audit.d.ts +69 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +376 -0
- package/dist/audit.js.map +1 -0
- package/dist/builder-completion.d.ts +35 -0
- package/dist/builder-completion.d.ts.map +1 -0
- package/dist/builder-completion.js +375 -0
- package/dist/builder-completion.js.map +1 -0
- package/dist/builder-spawner.d.ts +40 -0
- package/dist/builder-spawner.d.ts.map +1 -0
- package/dist/builder-spawner.js +493 -0
- package/dist/builder-spawner.js.map +1 -0
- package/dist/completion-gate.d.ts +52 -0
- package/dist/completion-gate.d.ts.map +1 -0
- package/dist/completion-gate.js +336 -0
- package/dist/completion-gate.js.map +1 -0
- package/dist/completion-report.d.ts +36 -0
- package/dist/completion-report.d.ts.map +1 -0
- package/dist/completion-report.js +348 -0
- package/dist/completion-report.js.map +1 -0
- package/dist/completion.d.ts +58 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +287 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +57 -0
- package/dist/config.js.map +1 -0
- package/dist/context-manager.d.ts +152 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +421 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/crash-detection.d.ts +70 -0
- package/dist/crash-detection.d.ts.map +1 -0
- package/dist/crash-detection.js +123 -0
- package/dist/crash-detection.js.map +1 -0
- package/dist/crash-recovery.d.ts +83 -0
- package/dist/crash-recovery.d.ts.map +1 -0
- package/dist/crash-recovery.js +522 -0
- package/dist/crash-recovery.js.map +1 -0
- package/dist/crash-resolution.d.ts +34 -0
- package/dist/crash-resolution.d.ts.map +1 -0
- package/dist/crash-resolution.js +382 -0
- package/dist/crash-resolution.js.map +1 -0
- package/dist/escalation.d.ts +150 -0
- package/dist/escalation.d.ts.map +1 -0
- package/dist/escalation.js +352 -0
- package/dist/escalation.js.map +1 -0
- package/dist/execution-target.d.ts +31 -0
- package/dist/execution-target.d.ts.map +1 -0
- package/dist/execution-target.js +71 -0
- package/dist/execution-target.js.map +1 -0
- package/dist/execution-unit-init.d.ts +28 -0
- package/dist/execution-unit-init.d.ts.map +1 -0
- package/dist/execution-unit-init.js +115 -0
- package/dist/execution-unit-init.js.map +1 -0
- package/dist/execution.d.ts +17 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +20 -0
- package/dist/execution.js.map +1 -0
- package/dist/factory-engine.d.ts +100 -0
- package/dist/factory-engine.d.ts.map +1 -0
- package/dist/factory-engine.js +243 -0
- package/dist/factory-engine.js.map +1 -0
- package/dist/gap-detection.d.ts +43 -0
- package/dist/gap-detection.d.ts.map +1 -0
- package/dist/gap-detection.js +149 -0
- package/dist/gap-detection.js.map +1 -0
- package/dist/gate-context.d.ts +23 -0
- package/dist/gate-context.d.ts.map +1 -0
- package/dist/gate-context.js +63 -0
- package/dist/gate-context.js.map +1 -0
- package/dist/gate-engine.d.ts +55 -0
- package/dist/gate-engine.d.ts.map +1 -0
- package/dist/gate-engine.js +191 -0
- package/dist/gate-engine.js.map +1 -0
- package/dist/gates/adversarial.d.ts +59 -0
- package/dist/gates/adversarial.d.ts.map +1 -0
- package/dist/gates/adversarial.js +426 -0
- package/dist/gates/adversarial.js.map +1 -0
- package/dist/gates/adversary-spawner.d.ts +35 -0
- package/dist/gates/adversary-spawner.d.ts.map +1 -0
- package/dist/gates/adversary-spawner.js +286 -0
- package/dist/gates/adversary-spawner.js.map +1 -0
- package/dist/gates/adversary-test-dir.d.ts +41 -0
- package/dist/gates/adversary-test-dir.d.ts.map +1 -0
- package/dist/gates/adversary-test-dir.js +150 -0
- package/dist/gates/adversary-test-dir.js.map +1 -0
- package/dist/gates/behavioral-parser.d.ts +32 -0
- package/dist/gates/behavioral-parser.d.ts.map +1 -0
- package/dist/gates/behavioral-parser.js +190 -0
- package/dist/gates/behavioral-parser.js.map +1 -0
- package/dist/gates/behavioral-runner.d.ts +36 -0
- package/dist/gates/behavioral-runner.d.ts.map +1 -0
- package/dist/gates/behavioral-runner.js +306 -0
- package/dist/gates/behavioral-runner.js.map +1 -0
- package/dist/gates/behavioral.d.ts +37 -0
- package/dist/gates/behavioral.d.ts.map +1 -0
- package/dist/gates/behavioral.js +485 -0
- package/dist/gates/behavioral.js.map +1 -0
- package/dist/gates/deterministic.d.ts +24 -0
- package/dist/gates/deterministic.d.ts.map +1 -0
- package/dist/gates/deterministic.js +186 -0
- package/dist/gates/deterministic.js.map +1 -0
- package/dist/git-factory.d.ts +59 -0
- package/dist/git-factory.d.ts.map +1 -0
- package/dist/git-factory.js +102 -0
- package/dist/git-factory.js.map +1 -0
- package/dist/guard-evaluation.d.ts +48 -0
- package/dist/guard-evaluation.d.ts.map +1 -0
- package/dist/guard-evaluation.js +416 -0
- package/dist/guard-evaluation.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-completion.d.ts +34 -0
- package/dist/instance-completion.d.ts.map +1 -0
- package/dist/instance-completion.js +366 -0
- package/dist/instance-completion.js.map +1 -0
- package/dist/instance-lifecycle.d.ts +15 -0
- package/dist/instance-lifecycle.d.ts.map +1 -0
- package/dist/instance-lifecycle.js +18 -0
- package/dist/instance-lifecycle.js.map +1 -0
- package/dist/instance-phase-dispatch.d.ts +75 -0
- package/dist/instance-phase-dispatch.d.ts.map +1 -0
- package/dist/instance-phase-dispatch.js +674 -0
- package/dist/instance-phase-dispatch.js.map +1 -0
- package/dist/instance-poll-loop.d.ts +43 -0
- package/dist/instance-poll-loop.d.ts.map +1 -0
- package/dist/instance-poll-loop.js +360 -0
- package/dist/instance-poll-loop.js.map +1 -0
- package/dist/instance-state-machine.d.ts +52 -0
- package/dist/instance-state-machine.d.ts.map +1 -0
- package/dist/instance-state-machine.js +235 -0
- package/dist/instance-state-machine.js.map +1 -0
- package/dist/log-manager.d.ts +28 -0
- package/dist/log-manager.d.ts.map +1 -0
- package/dist/log-manager.js +71 -0
- package/dist/log-manager.js.map +1 -0
- package/dist/pipeline-evaluator.d.ts +61 -0
- package/dist/pipeline-evaluator.d.ts.map +1 -0
- package/dist/pipeline-evaluator.js +107 -0
- package/dist/pipeline-evaluator.js.map +1 -0
- package/dist/pipeline-metrics.d.ts +52 -0
- package/dist/pipeline-metrics.d.ts.map +1 -0
- package/dist/pipeline-metrics.js +40 -0
- package/dist/pipeline-metrics.js.map +1 -0
- package/dist/pipeline-traversal.d.ts +43 -0
- package/dist/pipeline-traversal.d.ts.map +1 -0
- package/dist/pipeline-traversal.js +68 -0
- package/dist/pipeline-traversal.js.map +1 -0
- package/dist/plan-parser.d.ts +76 -0
- package/dist/plan-parser.d.ts.map +1 -0
- package/dist/plan-parser.js +223 -0
- package/dist/plan-parser.js.map +1 -0
- package/dist/planning-phase.d.ts +52 -0
- package/dist/planning-phase.d.ts.map +1 -0
- package/dist/planning-phase.js +444 -0
- package/dist/planning-phase.js.map +1 -0
- package/dist/planning-prompt.d.ts +64 -0
- package/dist/planning-prompt.d.ts.map +1 -0
- package/dist/planning-prompt.js +251 -0
- package/dist/planning-prompt.js.map +1 -0
- package/dist/planning.d.ts +16 -0
- package/dist/planning.d.ts.map +1 -0
- package/dist/planning.js +17 -0
- package/dist/planning.js.map +1 -0
- package/dist/process-runner.d.ts +41 -0
- package/dist/process-runner.d.ts.map +1 -0
- package/dist/process-runner.js +81 -0
- package/dist/process-runner.js.map +1 -0
- package/dist/product-config.d.ts +34 -0
- package/dist/product-config.d.ts.map +1 -0
- package/dist/product-config.js +43 -0
- package/dist/product-config.js.map +1 -0
- package/dist/queries/cycle-evaluations.d.ts +23 -0
- package/dist/queries/cycle-evaluations.d.ts.map +1 -0
- package/dist/queries/cycle-evaluations.js +37 -0
- package/dist/queries/cycle-evaluations.js.map +1 -0
- package/dist/queries/escalations.d.ts +30 -0
- package/dist/queries/escalations.d.ts.map +1 -0
- package/dist/queries/escalations.js +42 -0
- package/dist/queries/escalations.js.map +1 -0
- package/dist/queries/execution-units.d.ts +76 -0
- package/dist/queries/execution-units.d.ts.map +1 -0
- package/dist/queries/execution-units.js +109 -0
- package/dist/queries/execution-units.js.map +1 -0
- package/dist/queries/gate-results.d.ts +32 -0
- package/dist/queries/gate-results.d.ts.map +1 -0
- package/dist/queries/gate-results.js +44 -0
- package/dist/queries/gate-results.js.map +1 -0
- package/dist/queries/instances.d.ts +51 -0
- package/dist/queries/instances.d.ts.map +1 -0
- package/dist/queries/instances.js +77 -0
- package/dist/queries/instances.js.map +1 -0
- package/dist/queries/sessions.d.ts +50 -0
- package/dist/queries/sessions.d.ts.map +1 -0
- package/dist/queries/sessions.js +81 -0
- package/dist/queries/sessions.js.map +1 -0
- package/dist/queries/shared.d.ts +38 -0
- package/dist/queries/shared.d.ts.map +1 -0
- package/dist/queries/shared.js +119 -0
- package/dist/queries/shared.js.map +1 -0
- package/dist/queries/specs.d.ts +12 -0
- package/dist/queries/specs.d.ts.map +1 -0
- package/dist/queries/specs.js +21 -0
- package/dist/queries/specs.js.map +1 -0
- package/dist/queries/strategies.d.ts +14 -0
- package/dist/queries/strategies.d.ts.map +1 -0
- package/dist/queries/strategies.js +18 -0
- package/dist/queries/strategies.js.map +1 -0
- package/dist/queries/work-units.d.ts +42 -0
- package/dist/queries/work-units.d.ts.map +1 -0
- package/dist/queries/work-units.js +57 -0
- package/dist/queries/work-units.js.map +1 -0
- package/dist/queries/workflows.d.ts +29 -0
- package/dist/queries/workflows.d.ts.map +1 -0
- package/dist/queries/workflows.js +103 -0
- package/dist/queries/workflows.js.map +1 -0
- package/dist/remediation-units.d.ts +40 -0
- package/dist/remediation-units.d.ts.map +1 -0
- package/dist/remediation-units.js +263 -0
- package/dist/remediation-units.js.map +1 -0
- package/dist/replanning.d.ts +72 -0
- package/dist/replanning.d.ts.map +1 -0
- package/dist/replanning.js +403 -0
- package/dist/replanning.js.map +1 -0
- package/dist/resource-limits.d.ts +62 -0
- package/dist/resource-limits.d.ts.map +1 -0
- package/dist/resource-limits.js +322 -0
- package/dist/resource-limits.js.map +1 -0
- package/dist/scheduler.d.ts +98 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +203 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/session-adapter.d.ts +89 -0
- package/dist/session-adapter.d.ts.map +1 -0
- package/dist/session-adapter.js +108 -0
- package/dist/session-adapter.js.map +1 -0
- package/dist/sop-generator.d.ts +29 -0
- package/dist/sop-generator.d.ts.map +1 -0
- package/dist/sop-generator.js +235 -0
- package/dist/sop-generator.js.map +1 -0
- package/dist/spec-profiles.d.ts +41 -0
- package/dist/spec-profiles.d.ts.map +1 -0
- package/dist/spec-profiles.js +131 -0
- package/dist/spec-profiles.js.map +1 -0
- package/dist/strategy-design-graph.d.ts +23 -0
- package/dist/strategy-design-graph.d.ts.map +1 -0
- package/dist/strategy-design-graph.js +205 -0
- package/dist/strategy-design-graph.js.map +1 -0
- package/dist/strategy-design-prompt.d.ts +28 -0
- package/dist/strategy-design-prompt.d.ts.map +1 -0
- package/dist/strategy-design-prompt.js +108 -0
- package/dist/strategy-design-prompt.js.map +1 -0
- package/dist/strategy-design-schema.d.ts +767 -0
- package/dist/strategy-design-schema.d.ts.map +1 -0
- package/dist/strategy-design-schema.js +126 -0
- package/dist/strategy-design-schema.js.map +1 -0
- package/dist/strategy-design.d.ts +69 -0
- package/dist/strategy-design.d.ts.map +1 -0
- package/dist/strategy-design.js +411 -0
- package/dist/strategy-design.js.map +1 -0
- package/dist/strategy-gating.d.ts +31 -0
- package/dist/strategy-gating.d.ts.map +1 -0
- package/dist/strategy-gating.js +276 -0
- package/dist/strategy-gating.js.map +1 -0
- package/dist/team-prompt-builder.d.ts +47 -0
- package/dist/team-prompt-builder.d.ts.map +1 -0
- package/dist/team-prompt-builder.js +362 -0
- package/dist/team-prompt-builder.js.map +1 -0
- package/dist/trace-engine.d.ts +40 -0
- package/dist/trace-engine.d.ts.map +1 -0
- package/dist/trace-engine.js +344 -0
- package/dist/trace-engine.js.map +1 -0
- package/dist/types.d.ts +612 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/unit-session-lifecycle.d.ts +78 -0
- package/dist/unit-session-lifecycle.d.ts.map +1 -0
- package/dist/unit-session-lifecycle.js +141 -0
- package/dist/unit-session-lifecycle.js.map +1 -0
- package/dist/unit-session.d.ts +30 -0
- package/dist/unit-session.d.ts.map +1 -0
- package/dist/unit-session.js +370 -0
- package/dist/unit-session.js.map +1 -0
- package/dist/watchdogs.d.ts +33 -0
- package/dist/watchdogs.d.ts.map +1 -0
- package/dist/watchdogs.js +170 -0
- package/dist/watchdogs.js.map +1 -0
- package/dist/work-unit-scheduler.d.ts +34 -0
- package/dist/work-unit-scheduler.d.ts.map +1 -0
- package/dist/work-unit-scheduler.js +91 -0
- package/dist/work-unit-scheduler.js.map +1 -0
- package/dist/workflow-transition.d.ts +90 -0
- package/dist/workflow-transition.d.ts.map +1 -0
- package/dist/workflow-transition.js +340 -0
- package/dist/workflow-transition.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-design.js","sourceRoot":"","sources":["../src/strategy-design.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAC;AAGtG,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AA0BtG,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AAErC,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAElG,kBAAkB;AAClB,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAEtG,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAE1D,kFAAkF;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,kCAAkC;AAClC,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,MAAc,EACd,MAAqB,EACrB,YAAoB,EACpB,SAA4B;IAE5B,MAAM,SAAS,GAAG,SAAS,EAAE,uBAAuB,IAAI,kCAAkC,CAAC;IAC3F,0BAA0B;IAC1B,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,yDAAyD,CAAC,CAAC;QAEpF,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE;YACxD,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,YAAY;YACjB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAMf,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,SAAS,GAAG,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B,OAAO,CAAC,MAAM,IAAI,SAAS,MAAM,OAAO,CAAC,OAAO,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/I,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IAED,uFAAuF;IACvF,MAAM,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAExD,iDAAiD;IACjD,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACpG,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/F,UAAU;SACX,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,2DAA2D;IAC3D,oEAAoE;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5H,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;QAC/G,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,gGAAgG;QAChG,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,GAAG,GAAG,UAAqC,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI;YACpG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAA4B,CAAC;YACvD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,wCAAwC,OAAO,wBAAwB,UAAU,CAAC,MAAM,uBAAuB,SAAS,GAAG,CAAC,CAAC;QACxJ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,yBAAyB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC;IAC/F,CAAC;IAED,MAAM,cAAc,GAAuB,UAAU,CAAC,IAAI,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,+BAA+B,cAAc,CAAC,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAE1G,gDAAgD;IAChD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC;IACzF,CAAC;IAED,qEAAqE;IACrE,6EAA6E;IAC7E,gFAAgF;IAChF,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,mCAAmC;QACvF,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtD,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS;yBACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;yBAC/E,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,CAAC,IAAI,cAAc,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,OAAO;wBACnE,6BAA6B,QAAQ,IAAI,MAAM,cAAc,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yCAAyC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC3E,UAAU;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAA2B,EAC3B,cAAkC;IAElC,+BAA+B;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9D,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAE;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,sBAAsB,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;KAC9C,CAAC,CAAC,CAAC;IAEJ,iDAAiD;IACjD,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;QAC9C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,2BAA2B,EAC3B,8BAA8B,EAC9B;QACE,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU;QACV,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,QAAQ,sBAAsB,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,QAAQ,sBAAsB,CAAC,CAAC;YAC5G,CAAC;YACD,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACtC,CAAC,CAAC;KACH,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,cAAc,MAAM,CAAC,UAAU,CAAC,MAAM,4BAA4B,KAAK,CAAC,UAAU,EAAE,CAClG,CAAC;IAEF,kBAAkB;IAClB,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAGD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,iCAAiC,EACjC,mCAAmC,EACnC,EAAE,UAAU,EAAE,CACf,CAAC;IACF,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAA2B,EAC3B,MAAqB,EACrB,QAAkC;IAElC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,gDAAgD,UAAU,EAAE,CAAC,CAAC;IAEvF,yCAAyC;IACzC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,kEAAkE,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,mCAAmC;IACnC,mFAAmF;IACnF,6CAA6C;IAC7C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,6DAA6D,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,iDAAiD;IACjD,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAM,gBAAgB,CACxC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAC/D,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,eAAe,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,6BAA6B;gBAC1C,GAAG,WAAW,CAAC,uBAAuB,CAAC,MAAM,aAAa;gBAC1D,GAAG,WAAW,CAAC,sBAAsB,CAAC,MAAM,YAAY;gBACxD,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,OAAO,CAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,uCAAuC,UAAU,EAAE,CACjE,CAAC;QACF,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACxE,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE;gBACnD,iBAAiB,EAAE,6CAA6C,UAAU,qCAAqC;aAChH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,+CAA+C;gBAC5D,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,cAAc,GAAG,yBAAyB,CAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9H,IAAI,aAAa,GAAG,cAAc,CAAC;IACnC,IAAI,cAAc,GAA8B,IAAI,CAAC;IACrD,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,MAAM,cAAc,GAAgC,EAAE,CAAC;IAEvD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,2BAA2B,EAAE,OAAO,EAAE,EAAE,CAAC;QACxE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,2EAA2E;YAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;YACvC,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,UAAU,OAAO,IAAI,2BAA2B,UAAU,OAAO,gBAAgB;gBAC9F,mBAAmB,SAAS,EAAE,CAC/B,CAAC;YACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,aAAa,GAAG,wBAAwB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,QAAQ;YAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,SAAmC,CAAC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,iCAAiC,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClH,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ;gBAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;YAC1C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kDAAkD,OAAO,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM;QACR,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,4BAA4B,OAAO,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,gCAAgC,2BAA2B,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC;QACzG,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACtE,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAA2B,CAAC;IAChC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,YAAY,QAAQ,CAAC,MAAM,+BAA+B,UAAU,IAAI;YACrF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClG,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACtE,CAAC;IAED,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5D,OAAO;oBACL,UAAU,EAAE,OAAQ,CAAC,UAAU;oBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAE,CAAC,UAAU,CAAC;oBACvF,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;iBACvC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,sBAAsB,KAAK,CAAC,cAAc,CAAC,MAAM,UAAU;gBACxE,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,0BAA0B,CAC/D,CAAC;YAEF,+BAA+B;YAC/B,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM;qBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,gCAAgC,YAAY,EAAE,CAAC,CAAC;gBAC3E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,YAAY,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;YAC/H,CAAC;YAED,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,uCAAuC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxG,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy-level gate evaluation orchestrator.
|
|
3
|
+
*
|
|
4
|
+
* Detects strategies in gating states and runs the gate engine against them.
|
|
5
|
+
* Gates run once per strategy (not per work unit) because gate commands
|
|
6
|
+
* (npm test, typecheck, lint) are project-wide.
|
|
7
|
+
*
|
|
8
|
+
* On gate failure, sends feedback (including full gate output) to the team
|
|
9
|
+
* session via stdin, cycles work units from completed back to in_progress
|
|
10
|
+
* (incrementing their iteration count), and transitions the strategy to
|
|
11
|
+
* gate_fix_pending. The agent fixes the issues and re-signals completion
|
|
12
|
+
* via MCP tool call for each unit; detectStrategyCompletion() then
|
|
13
|
+
* auto-transitions the strategy back to gating.
|
|
14
|
+
*
|
|
15
|
+
* Serializes evaluation: at most one strategy gates per poll cycle per
|
|
16
|
+
* instance, since strategies share a worktree.
|
|
17
|
+
*/
|
|
18
|
+
import type { ResourceGovernor } from '@telora/daemon-core';
|
|
19
|
+
import type { FactoryConfig, FactoryInstanceState } from './types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Evaluate strategy-level gates for any strategies in gating state.
|
|
22
|
+
*
|
|
23
|
+
* Called from checkBuilding() after the execution cycle. Detects strategies
|
|
24
|
+
* that have transitioned to a gating state (all work units terminal) and
|
|
25
|
+
* runs the gate engine against them.
|
|
26
|
+
*
|
|
27
|
+
* Serialization: processes at most ONE gating strategy per invocation.
|
|
28
|
+
* Strategies share a worktree, so concurrent gate commands would collide.
|
|
29
|
+
*/
|
|
30
|
+
export declare function evaluateStrategyGates(state: FactoryInstanceState, config: FactoryConfig, governor?: ResourceGovernor | null): Promise<boolean>;
|
|
31
|
+
//# sourceMappingURL=strategy-gating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-gating.d.ts","sourceRoot":"","sources":["../src/strategy-gating.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAuBpB;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC,OAAO,CAAC,CAiPlB"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy-level gate evaluation orchestrator.
|
|
3
|
+
*
|
|
4
|
+
* Detects strategies in gating states and runs the gate engine against them.
|
|
5
|
+
* Gates run once per strategy (not per work unit) because gate commands
|
|
6
|
+
* (npm test, typecheck, lint) are project-wide.
|
|
7
|
+
*
|
|
8
|
+
* On gate failure, sends feedback (including full gate output) to the team
|
|
9
|
+
* session via stdin, cycles work units from completed back to in_progress
|
|
10
|
+
* (incrementing their iteration count), and transitions the strategy to
|
|
11
|
+
* gate_fix_pending. The agent fixes the issues and re-signals completion
|
|
12
|
+
* via MCP tool call for each unit; detectStrategyCompletion() then
|
|
13
|
+
* auto-transitions the strategy back to gating.
|
|
14
|
+
*
|
|
15
|
+
* Serializes evaluation: at most one strategy gates per poll cycle per
|
|
16
|
+
* instance, since strategies share a worktree.
|
|
17
|
+
*/
|
|
18
|
+
import { evaluateGates } from './gate-engine.js';
|
|
19
|
+
import { updateStrategyExecutionStatus } from './queries/strategies.js';
|
|
20
|
+
import { getInstanceWorkUnits, updateWorkUnitStatus, updateWorkUnitWorkflowStage } from './queries/work-units.js';
|
|
21
|
+
import { getGateResultsByInstance } from './queries/gate-results.js';
|
|
22
|
+
import { buildStrategyGateResultsMessage } from './team-prompt-builder.js';
|
|
23
|
+
import { releaseUnitForStrategy } from './scheduler.js';
|
|
24
|
+
import { terminateUnitSession } from './unit-session-lifecycle.js';
|
|
25
|
+
import { getOrResolveWorkflow } from './workflow-transition.js';
|
|
26
|
+
import { createFactoryEscalation } from './queries/escalations.js';
|
|
27
|
+
const LOG_PREFIX = '[strategy-gating]';
|
|
28
|
+
/** Strategy execution statuses that indicate gates should run. */
|
|
29
|
+
const GATING_STATUSES = new Set([
|
|
30
|
+
'gating_deterministic',
|
|
31
|
+
'gating_behavioral',
|
|
32
|
+
'gating_adversarial',
|
|
33
|
+
]);
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate strategy-level gates for any strategies in gating state.
|
|
36
|
+
*
|
|
37
|
+
* Called from checkBuilding() after the execution cycle. Detects strategies
|
|
38
|
+
* that have transitioned to a gating state (all work units terminal) and
|
|
39
|
+
* runs the gate engine against them.
|
|
40
|
+
*
|
|
41
|
+
* Serialization: processes at most ONE gating strategy per invocation.
|
|
42
|
+
* Strategies share a worktree, so concurrent gate commands would collide.
|
|
43
|
+
*/
|
|
44
|
+
export async function evaluateStrategyGates(state, config, governor) {
|
|
45
|
+
// Fetch current strategies
|
|
46
|
+
let strategies;
|
|
47
|
+
try {
|
|
48
|
+
const { getStrategiesByFactoryInstance } = await import('./strategy-design.js');
|
|
49
|
+
strategies = await getStrategiesByFactoryInstance(state.instanceId);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
console.warn(`${LOG_PREFIX} Failed to fetch strategies for instance ${state.instanceId}:`, err.message);
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
// Find strategies in gating states
|
|
56
|
+
const gatingStrategies = strategies.filter((s) => s.executionStatus && GATING_STATUSES.has(s.executionStatus));
|
|
57
|
+
if (gatingStrategies.length === 0)
|
|
58
|
+
return false;
|
|
59
|
+
// Guard: if any execution unit is actively building for an in-progress strategy,
|
|
60
|
+
// skip gating. Builders may still be writing to the shared worktree.
|
|
61
|
+
const hasRunningBuilders = strategies.some((s) => s.executionStatus === 'in_progress' &&
|
|
62
|
+
[...state.executionUnits.values()].some((u) => u.assignedStrategyId === s.id && u.status === 'running'));
|
|
63
|
+
if (hasRunningBuilders) {
|
|
64
|
+
console.log(`${LOG_PREFIX} Skipping gate evaluation -- running builders for in-progress strategies`);
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
// Serialize: pick the first gating strategy (by priority/order)
|
|
68
|
+
const strategy = gatingStrategies[0];
|
|
69
|
+
console.log(`${LOG_PREFIX} Running gate evaluation for strategy "${strategy.name}" ` +
|
|
70
|
+
`(${strategy.id}, status: ${strategy.executionStatus})`);
|
|
71
|
+
// Determine iteration number from previous gate runs for this strategy
|
|
72
|
+
let iteration = 1;
|
|
73
|
+
try {
|
|
74
|
+
const priorResults = await getGateResultsByInstance(state.instanceId);
|
|
75
|
+
const priorIterations = new Set(priorResults
|
|
76
|
+
.filter((r) => r.strategyId === strategy.id)
|
|
77
|
+
.map((r) => r.iteration));
|
|
78
|
+
if (priorIterations.size > 0) {
|
|
79
|
+
iteration = Math.max(...priorIterations) + 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Best effort -- default to 1
|
|
84
|
+
}
|
|
85
|
+
// Check max gate iterations limit BEFORE evaluating gates
|
|
86
|
+
const maxGateIterations = state.blueprint.maxGateIterations
|
|
87
|
+
?? state.blueprint.maxInstanceIterations
|
|
88
|
+
?? null;
|
|
89
|
+
if (maxGateIterations !== null && iteration > maxGateIterations) {
|
|
90
|
+
console.log(`${LOG_PREFIX} Strategy "${strategy.name}" failed: max gate iterations ` +
|
|
91
|
+
`(${maxGateIterations}) exceeded (current: ${iteration})`);
|
|
92
|
+
await updateStrategyExecutionStatus(strategy.id, 'failed', { gateFixStartedAt: null });
|
|
93
|
+
// Fail the infrastructure-owned gate work unit
|
|
94
|
+
await resolveGateWorkUnit(state.instanceId, strategy.id, false);
|
|
95
|
+
// Create escalation with gate history summary
|
|
96
|
+
try {
|
|
97
|
+
const priorResults = await getGateResultsByInstance(state.instanceId);
|
|
98
|
+
const strategyResults = priorResults.filter((r) => r.strategyId === strategy.id);
|
|
99
|
+
const failedGates = strategyResults.filter((r) => !r.passed);
|
|
100
|
+
const gateTypes = [...new Set(failedGates.map((r) => r.gateType))];
|
|
101
|
+
const summary = `Strategy "${strategy.name}" exceeded max gate iterations (${maxGateIterations}). ` +
|
|
102
|
+
`${failedGates.length} gate failure(s) across ${iteration - 1} iteration(s). ` +
|
|
103
|
+
`Failed gate types: ${gateTypes.join(', ') || 'none'}.`;
|
|
104
|
+
await createFactoryEscalation(state.instanceId, 'gate_iterations_exceeded', summary);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Best effort -- escalation creation is non-critical
|
|
108
|
+
}
|
|
109
|
+
// Terminate the execution unit session
|
|
110
|
+
terminateStrategyUnit(state, strategy.id);
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
// Build gate context
|
|
114
|
+
const ctx = {
|
|
115
|
+
strategyId: strategy.id,
|
|
116
|
+
instanceId: state.instanceId,
|
|
117
|
+
iteration,
|
|
118
|
+
};
|
|
119
|
+
let strategyCompleted = false;
|
|
120
|
+
try {
|
|
121
|
+
const result = await evaluateGates(ctx, state, config, governor);
|
|
122
|
+
// Fetch work units for this strategy (needed for feedback message)
|
|
123
|
+
const allWorkUnits = await getInstanceWorkUnits(state.instanceId);
|
|
124
|
+
const strategyWorkUnits = allWorkUnits.filter((wu) => wu.strategyId === strategy.id);
|
|
125
|
+
// Resolve the infrastructure-owned gate verification work unit based on
|
|
126
|
+
// gate results (completed if passed, failed if failed).
|
|
127
|
+
await resolveGateWorkUnit(state.instanceId, strategy.id, result.passed);
|
|
128
|
+
if (result.passed) {
|
|
129
|
+
// Gates passed -- mark strategy completed, clear gate_fix_started_at
|
|
130
|
+
await updateStrategyExecutionStatus(strategy.id, 'completed', { gateFixStartedAt: null });
|
|
131
|
+
// Clear any stored gate feedback for this strategy (no longer needed)
|
|
132
|
+
state.gateFailureFeedback.delete(strategy.id);
|
|
133
|
+
// Send confirmation to the execution unit's session
|
|
134
|
+
const passMessage = buildStrategyGateResultsMessage(strategy.name, strategy.id, true, null, strategyWorkUnits.map((wu) => ({ id: wu.id, title: wu.title })));
|
|
135
|
+
sendMessageToStrategyUnit(state, strategy.id, passMessage);
|
|
136
|
+
// Terminate the unit session (strategy is done, free up the unit)
|
|
137
|
+
terminateStrategyUnit(state, strategy.id);
|
|
138
|
+
// Eagerly release the unit back to idle in DB + memory so the scheduler
|
|
139
|
+
// can assign downstream strategies on the same poll cycle rather than
|
|
140
|
+
// waiting for the process to fully exit.
|
|
141
|
+
try {
|
|
142
|
+
await releaseUnitForStrategy(state, strategy.id);
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
console.warn(`${LOG_PREFIX} Eager unit release failed for strategy ${strategy.id.slice(0, 8)}: ` +
|
|
146
|
+
`${err.message}`);
|
|
147
|
+
}
|
|
148
|
+
strategyCompleted = true;
|
|
149
|
+
// Find downstream strategies that may now be unblocked
|
|
150
|
+
const downstream = strategies
|
|
151
|
+
.filter((s) => s.dependsOn.includes(strategy.id))
|
|
152
|
+
.map((s) => s.name);
|
|
153
|
+
console.log(`${LOG_PREFIX} Strategy "${strategy.name}" gates PASSED -> completed` +
|
|
154
|
+
(downstream.length > 0
|
|
155
|
+
? `. Unblocking downstream: ${downstream.join(', ')}`
|
|
156
|
+
: ''));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Gates failed -- send feedback to unit, cycle work units back to in_progress
|
|
160
|
+
console.log(`${LOG_PREFIX} Strategy "${strategy.name}" gates FAILED -- ` +
|
|
161
|
+
'sending feedback and cycling work units back to in_progress');
|
|
162
|
+
// Send gate failure feedback through the execution unit's adapter
|
|
163
|
+
const failMessage = buildStrategyGateResultsMessage(strategy.name, strategy.id, false, result.failureFeedback, strategyWorkUnits.map((wu) => ({ id: wu.id, title: wu.title })));
|
|
164
|
+
sendMessageToStrategyUnit(state, strategy.id, failMessage);
|
|
165
|
+
// Store feedback for re-delivery if the session dies and respawns
|
|
166
|
+
state.gateFailureFeedback.set(strategy.id, failMessage);
|
|
167
|
+
// Cycle completed work units back to in_progress so the agent can
|
|
168
|
+
// re-signal completion via MCP after fixing gate failures.
|
|
169
|
+
// detectStrategyCompletion() will auto-transition the strategy back
|
|
170
|
+
// to gating once all units are completed again.
|
|
171
|
+
// Only cycle agent-owned units back -- infrastructure-owned units are
|
|
172
|
+
// resolved by the engine and should not be touched by gate failure cycling.
|
|
173
|
+
const completedUnits = strategyWorkUnits.filter((wu) => wu.status === 'completed' && !wu.infrastructureOwned);
|
|
174
|
+
const wuWorkflow = await getOrResolveWorkflow('factory_work_unit');
|
|
175
|
+
const inProgressStageId = wuWorkflow?.stageByName.get('in_progress')?.id ?? null;
|
|
176
|
+
for (const unit of completedUnits) {
|
|
177
|
+
await updateWorkUnitStatus(unit.id, 'in_progress', {
|
|
178
|
+
iterationCount: unit.iterationCount + 1,
|
|
179
|
+
});
|
|
180
|
+
if (inProgressStageId) {
|
|
181
|
+
await updateWorkUnitWorkflowStage(unit.id, inProgressStageId);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Transition strategy to gate_fix_pending -- the unit's session
|
|
185
|
+
// fixes the issues and re-signals completion via MCP for each unit.
|
|
186
|
+
// Set gate_fix_started_at for timeout tracking.
|
|
187
|
+
await updateStrategyExecutionStatus(strategy.id, 'gate_fix_pending', {
|
|
188
|
+
gateFixStartedAt: new Date().toISOString(),
|
|
189
|
+
});
|
|
190
|
+
console.log(`${LOG_PREFIX} Strategy "${strategy.name}" -> gate_fix_pending ` +
|
|
191
|
+
`(cycled ${completedUnits.length} work unit(s) to in_progress, iteration incremented)`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
// Gate evaluation threw -- mark strategy failed (unrecoverable)
|
|
196
|
+
console.error(`${LOG_PREFIX} Gate evaluation error for strategy "${strategy.name}":`, err.message);
|
|
197
|
+
// Mark gate work unit as failed (unrecoverable error)
|
|
198
|
+
await resolveGateWorkUnit(state.instanceId, strategy.id, false);
|
|
199
|
+
try {
|
|
200
|
+
await updateStrategyExecutionStatus(strategy.id, 'failed', { gateFixStartedAt: null });
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Best effort
|
|
204
|
+
}
|
|
205
|
+
// Terminate the execution unit session
|
|
206
|
+
terminateStrategyUnit(state, strategy.id);
|
|
207
|
+
}
|
|
208
|
+
return strategyCompleted;
|
|
209
|
+
}
|
|
210
|
+
// ============================================================================
|
|
211
|
+
// Helpers
|
|
212
|
+
// ============================================================================
|
|
213
|
+
/**
|
|
214
|
+
* Send a message to the execution unit currently assigned to a strategy.
|
|
215
|
+
*
|
|
216
|
+
* Finds the unit whose assignedStrategyId matches, then sends through
|
|
217
|
+
* the unit's SessionCommunicationAdapter.
|
|
218
|
+
*/
|
|
219
|
+
function sendMessageToStrategyUnit(state, strategyId, content) {
|
|
220
|
+
for (const unit of state.executionUnits.values()) {
|
|
221
|
+
if (unit.assignedStrategyId === strategyId && unit.adapter) {
|
|
222
|
+
return unit.adapter.sendMessage(content);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
console.warn(`${LOG_PREFIX} No active unit found for strategy ${strategyId} -- message not sent`);
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Terminate the execution unit session assigned to a strategy.
|
|
230
|
+
*
|
|
231
|
+
* Used when a strategy reaches a terminal state (gates passed, failed).
|
|
232
|
+
* The close handler in spawnUnitSession releases the unit back to idle.
|
|
233
|
+
*/
|
|
234
|
+
function terminateStrategyUnit(state, strategyId) {
|
|
235
|
+
for (const unit of state.executionUnits.values()) {
|
|
236
|
+
if (unit.assignedStrategyId === strategyId) {
|
|
237
|
+
terminateUnitSession(unit);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Resolve the infrastructure-owned gate verification work unit for a strategy.
|
|
244
|
+
*
|
|
245
|
+
* Finds the gate verification work unit (infrastructureOwned = true) for the
|
|
246
|
+
* given strategy and updates its status to 'completed' if gates passed, or
|
|
247
|
+
* 'failed' if gates failed.
|
|
248
|
+
*
|
|
249
|
+
* On normal gate failure (strategy transitions to gate_fix_pending), the unit
|
|
250
|
+
* is marked 'failed'. The agent fixes the issues, units re-complete, and
|
|
251
|
+
* detectStrategyCompletion() transitions the strategy back to gating --
|
|
252
|
+
* at which point this function is called again. The infrastructure-owned
|
|
253
|
+
* unit is excluded from strategy completion detection, so its failed status
|
|
254
|
+
* does not block the gate retry cycle.
|
|
255
|
+
*/
|
|
256
|
+
async function resolveGateWorkUnit(instanceId, strategyId, passed) {
|
|
257
|
+
try {
|
|
258
|
+
const allWorkUnits = await getInstanceWorkUnits(instanceId);
|
|
259
|
+
const gateUnit = allWorkUnits.find((wu) => wu.strategyId === strategyId && wu.infrastructureOwned);
|
|
260
|
+
if (!gateUnit) {
|
|
261
|
+
console.log(`${LOG_PREFIX} No infrastructure-owned gate unit found for strategy ` +
|
|
262
|
+
`${strategyId.slice(0, 8)} -- skipping resolve`);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const targetStatus = passed ? 'completed' : 'failed';
|
|
266
|
+
await updateWorkUnitStatus(gateUnit.id, targetStatus);
|
|
267
|
+
console.log(`${LOG_PREFIX} Gate verification unit ${gateUnit.id.slice(0, 8)} -> ${targetStatus} ` +
|
|
268
|
+
`(strategy ${strategyId.slice(0, 8)})`);
|
|
269
|
+
}
|
|
270
|
+
catch (err) {
|
|
271
|
+
// Non-fatal -- gate unit resolution failure should not disrupt the flow
|
|
272
|
+
console.warn(`${LOG_PREFIX} Failed to resolve gate verification unit for strategy ` +
|
|
273
|
+
`${strategyId.slice(0, 8)}: ${err.message}`);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=strategy-gating.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-gating.js","sourceRoot":"","sources":["../src/strategy-gating.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team prompt builder for the persistent team session execution model.
|
|
3
|
+
*
|
|
4
|
+
* When a factory instance uses executionModel='team', a single persistent
|
|
5
|
+
* Claude Code session acts as the team lead. The factory engine sends work
|
|
6
|
+
* batch directives via stdin. The agent signals work unit completion by
|
|
7
|
+
* calling the `telora_factory_work_unit_update` MCP tool with
|
|
8
|
+
* status='completed'. The daemon polls for these DB status changes.
|
|
9
|
+
*
|
|
10
|
+
* This module builds three types of prompts:
|
|
11
|
+
* 1. The initial system prompt when spawning the team session
|
|
12
|
+
* 2. Work batch directives for ready work units
|
|
13
|
+
* 3. Gate results messages (pass/fail feedback)
|
|
14
|
+
*/
|
|
15
|
+
import type { FactoryInstanceState, FactoryWorkUnit } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Build the initial system prompt for the persistent team session.
|
|
18
|
+
*
|
|
19
|
+
* This prompt is sent once when the team session is spawned. It establishes
|
|
20
|
+
* the protocol, provides the factory specification and operational context,
|
|
21
|
+
* and explains how the team lead should coordinate work.
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildTeamLeadPrompt(state: FactoryInstanceState): string;
|
|
24
|
+
/**
|
|
25
|
+
* Format a batch of ready work units as a directive for the team session.
|
|
26
|
+
*
|
|
27
|
+
* Sent via stdin when the factory engine has identified work units that are
|
|
28
|
+
* ready to be built (all dependencies satisfied). Groups independent units
|
|
29
|
+
* and suggests parallelization.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildWorkBatchDirective(workUnits: FactoryWorkUnit[], state: FactoryInstanceState): string;
|
|
32
|
+
/**
|
|
33
|
+
* Format strategy-level gate pass/fail results for the team session.
|
|
34
|
+
*
|
|
35
|
+
* Sent after the factory engine runs external gate evaluations on a strategy
|
|
36
|
+
* whose work units are all complete. On failure, includes the formatted gate
|
|
37
|
+
* output so the team knows what to fix. On pass, confirms the strategy is done.
|
|
38
|
+
*
|
|
39
|
+
* For failures, work units are cycled back to in_progress. The team makes
|
|
40
|
+
* a targeted fix and re-signals completion via MCP tool call for the affected
|
|
41
|
+
* work units to trigger automatic re-gating.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildStrategyGateResultsMessage(strategyName: string, strategyId: string, passed: boolean, failureFeedback: string | null, workUnits: Array<{
|
|
44
|
+
id: string;
|
|
45
|
+
title: string;
|
|
46
|
+
}>): string;
|
|
47
|
+
//# sourceMappingURL=team-prompt-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-prompt-builder.d.ts","sourceRoot":"","sources":["../src/team-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOxE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CA0LvE;AAMD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAAE,EAC5B,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CA0GR;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,SAAS,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,MAAM,CAuDR"}
|