@litmers/cursorflow-orchestrator 0.1.40 → 0.2.2
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/CHANGELOG.md +0 -2
- package/README.md +7 -3
- package/commands/cursorflow-init.md +0 -4
- package/dist/cli/logs.js +108 -9
- package/dist/cli/logs.js.map +1 -1
- package/dist/cli/models.js +20 -3
- package/dist/cli/models.js.map +1 -1
- package/dist/cli/monitor.d.ts +7 -10
- package/dist/cli/monitor.js +1088 -1240
- package/dist/cli/monitor.js.map +1 -1
- package/dist/cli/resume.js +21 -1
- package/dist/cli/resume.js.map +1 -1
- package/dist/cli/run.js +28 -9
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/signal.d.ts +6 -1
- package/dist/cli/signal.js +94 -12
- package/dist/cli/signal.js.map +1 -1
- package/dist/cli/tasks.js +3 -46
- package/dist/cli/tasks.js.map +1 -1
- package/dist/core/agent-supervisor.d.ts +23 -0
- package/dist/core/agent-supervisor.js +42 -0
- package/dist/core/agent-supervisor.js.map +1 -0
- package/dist/core/auto-recovery.d.ts +2 -1
- package/dist/core/auto-recovery.js +6 -1
- package/dist/core/auto-recovery.js.map +1 -1
- package/dist/core/failure-policy.d.ts +0 -1
- package/dist/core/failure-policy.js +0 -1
- package/dist/core/failure-policy.js.map +1 -1
- package/dist/core/git-lifecycle-manager.d.ts +284 -0
- package/dist/core/git-lifecycle-manager.js +778 -0
- package/dist/core/git-lifecycle-manager.js.map +1 -0
- package/dist/core/git-pipeline-coordinator.d.ts +21 -0
- package/dist/core/git-pipeline-coordinator.js +205 -0
- package/dist/core/git-pipeline-coordinator.js.map +1 -0
- package/dist/core/intervention.d.ts +176 -0
- package/dist/core/intervention.js +424 -0
- package/dist/core/intervention.js.map +1 -0
- package/dist/core/lane-state-machine.d.ts +423 -0
- package/dist/core/lane-state-machine.js +890 -0
- package/dist/core/lane-state-machine.js.map +1 -0
- package/dist/core/orchestrator.d.ts +4 -1
- package/dist/core/orchestrator.js +29 -62
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/runner/agent.d.ts +7 -1
- package/dist/core/runner/agent.js +45 -30
- package/dist/core/runner/agent.js.map +1 -1
- package/dist/core/runner/pipeline.js +283 -123
- package/dist/core/runner/pipeline.js.map +1 -1
- package/dist/core/runner/task.d.ts +4 -5
- package/dist/core/runner/task.js +6 -80
- package/dist/core/runner/task.js.map +1 -1
- package/dist/core/runner.js +8 -2
- package/dist/core/runner.js.map +1 -1
- package/dist/core/stall-detection.d.ts +11 -4
- package/dist/core/stall-detection.js +62 -27
- package/dist/core/stall-detection.js.map +1 -1
- package/dist/hooks/contexts/index.d.ts +104 -0
- package/dist/hooks/contexts/index.js +134 -0
- package/dist/hooks/contexts/index.js.map +1 -0
- package/dist/hooks/data-accessor.d.ts +86 -0
- package/dist/hooks/data-accessor.js +410 -0
- package/dist/hooks/data-accessor.js.map +1 -0
- package/dist/hooks/flow-controller.d.ts +136 -0
- package/dist/hooks/flow-controller.js +351 -0
- package/dist/hooks/flow-controller.js.map +1 -0
- package/dist/hooks/index.d.ts +68 -0
- package/dist/hooks/index.js +105 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/manager.d.ts +129 -0
- package/dist/hooks/manager.js +389 -0
- package/dist/hooks/manager.js.map +1 -0
- package/dist/hooks/types.d.ts +463 -0
- package/dist/hooks/types.js +45 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/services/logging/buffer.d.ts +2 -2
- package/dist/services/logging/buffer.js +95 -42
- package/dist/services/logging/buffer.js.map +1 -1
- package/dist/services/logging/console.js +6 -1
- package/dist/services/logging/console.js.map +1 -1
- package/dist/services/logging/formatter.d.ts +9 -4
- package/dist/services/logging/formatter.js +64 -18
- package/dist/services/logging/formatter.js.map +1 -1
- package/dist/services/logging/index.d.ts +0 -1
- package/dist/services/logging/index.js +0 -1
- package/dist/services/logging/index.js.map +1 -1
- package/dist/services/logging/paths.d.ts +8 -0
- package/dist/services/logging/paths.js +48 -0
- package/dist/services/logging/paths.js.map +1 -0
- package/dist/services/logging/raw-log.d.ts +6 -0
- package/dist/services/logging/raw-log.js +37 -0
- package/dist/services/logging/raw-log.js.map +1 -0
- package/dist/services/process/index.js +1 -1
- package/dist/services/process/index.js.map +1 -1
- package/dist/types/agent.d.ts +15 -0
- package/dist/types/config.d.ts +22 -1
- package/dist/types/event-categories.d.ts +601 -0
- package/dist/types/event-categories.js +233 -0
- package/dist/types/event-categories.js.map +1 -0
- package/dist/types/events.d.ts +0 -20
- package/dist/types/flow.d.ts +10 -6
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +17 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/lane.d.ts +1 -1
- package/dist/types/logging.d.ts +1 -1
- package/dist/types/task.d.ts +12 -1
- package/dist/ui/log-viewer.d.ts +3 -0
- package/dist/ui/log-viewer.js +3 -0
- package/dist/ui/log-viewer.js.map +1 -1
- package/dist/utils/config.js +10 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/cursor-agent.d.ts +11 -1
- package/dist/utils/cursor-agent.js +63 -16
- package/dist/utils/cursor-agent.js.map +1 -1
- package/dist/utils/enhanced-logger.d.ts +5 -1
- package/dist/utils/enhanced-logger.js +98 -19
- package/dist/utils/enhanced-logger.js.map +1 -1
- package/dist/utils/event-registry.d.ts +222 -0
- package/dist/utils/event-registry.js +463 -0
- package/dist/utils/event-registry.js.map +1 -0
- package/dist/utils/events.d.ts +1 -13
- package/dist/utils/events.js.map +1 -1
- package/dist/utils/flow.d.ts +10 -0
- package/dist/utils/flow.js +75 -0
- package/dist/utils/flow.js.map +1 -1
- package/dist/utils/log-constants.d.ts +1 -0
- package/dist/utils/log-constants.js +2 -1
- package/dist/utils/log-constants.js.map +1 -1
- package/dist/utils/log-formatter.d.ts +2 -1
- package/dist/utils/log-formatter.js +10 -10
- package/dist/utils/log-formatter.js.map +1 -1
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.js +82 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/repro-thinking-logs.js +0 -13
- package/dist/utils/repro-thinking-logs.js.map +1 -1
- package/dist/utils/run-service.js +1 -1
- package/dist/utils/run-service.js.map +1 -1
- package/examples/README.md +0 -2
- package/examples/demo-project/README.md +1 -2
- package/package.json +18 -28
- package/scripts/setup-security.sh +0 -1
- package/scripts/test-log-parser.ts +171 -0
- package/scripts/verify-change.sh +272 -0
- package/src/cli/logs.ts +121 -10
- package/src/cli/models.ts +20 -3
- package/src/cli/monitor.ts +1257 -1342
- package/src/cli/resume.ts +27 -1
- package/src/cli/run.ts +29 -11
- package/src/cli/signal.ts +115 -17
- package/src/cli/tasks.ts +2 -59
- package/src/core/agent-supervisor.ts +64 -0
- package/src/core/auto-recovery.ts +7 -1
- package/src/core/failure-policy.ts +0 -1
- package/src/core/git-lifecycle-manager.ts +1011 -0
- package/src/core/git-pipeline-coordinator.ts +221 -0
- package/src/core/intervention.ts +481 -0
- package/src/core/lane-state-machine.ts +1097 -0
- package/src/core/orchestrator.ts +35 -61
- package/src/core/runner/agent.ts +66 -33
- package/src/core/runner/pipeline.ts +318 -138
- package/src/core/runner/task.ts +12 -97
- package/src/core/runner.ts +8 -2
- package/src/core/stall-detection.ts +72 -27
- package/src/hooks/contexts/index.ts +256 -0
- package/src/hooks/data-accessor.ts +488 -0
- package/src/hooks/flow-controller.ts +425 -0
- package/src/hooks/index.ts +154 -0
- package/src/hooks/manager.ts +434 -0
- package/src/hooks/types.ts +544 -0
- package/src/services/logging/buffer.ts +104 -43
- package/src/services/logging/console.ts +7 -1
- package/src/services/logging/formatter.ts +74 -18
- package/src/services/logging/index.ts +0 -2
- package/src/services/logging/paths.ts +14 -0
- package/src/services/logging/raw-log.ts +43 -0
- package/src/services/process/index.ts +1 -1
- package/src/types/agent.ts +15 -0
- package/src/types/config.ts +23 -1
- package/src/types/event-categories.ts +663 -0
- package/src/types/events.ts +0 -25
- package/src/types/flow.ts +10 -6
- package/src/types/index.ts +50 -4
- package/src/types/lane.ts +1 -2
- package/src/types/logging.ts +2 -1
- package/src/types/task.ts +12 -1
- package/src/ui/log-viewer.ts +3 -0
- package/src/utils/config.ts +11 -1
- package/src/utils/cursor-agent.ts +68 -16
- package/src/utils/enhanced-logger.ts +105 -19
- package/src/utils/event-registry.ts +595 -0
- package/src/utils/events.ts +0 -16
- package/src/utils/flow.ts +83 -0
- package/src/utils/log-constants.ts +2 -1
- package/src/utils/log-formatter.ts +10 -11
- package/src/utils/logger.ts +49 -3
- package/src/utils/repro-thinking-logs.ts +0 -15
- package/src/utils/run-service.ts +1 -1
- package/dist/services/logging/file-writer.d.ts +0 -71
- package/dist/services/logging/file-writer.js +0 -516
- package/dist/services/logging/file-writer.js.map +0 -1
- package/dist/types/review.d.ts +0 -17
- package/dist/types/review.js +0 -6
- package/dist/types/review.js.map +0 -1
- package/scripts/ai-security-check.js +0 -233
- package/src/services/logging/file-writer.ts +0 -526
- package/src/types/review.ts +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-lifecycle-manager.js","sourceRoot":"","sources":["../../src/core/git-lifecycle-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAq9BH,wDAEC;AAKD,4DAEC;AA59BD,uCAAyB;AACzB,2CAA6B;AAE7B,kDAAoC;AACpC,wDAA0C;AAC1C,4CAAyC;AAEzC,gEAAyD;AAEzD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAC3B,YAAY;IACZ,kCAAa,CAAA;IACb,oBAAoB;IACpB,4CAAuB,CAAA;IACvB,cAAc;IACd,wCAAmB,CAAA;IACnB,WAAW;IACX,8CAAyB,CAAA;IACzB,WAAW;IACX,wCAAmB,CAAA;IACnB,WAAW;IACX,wCAAmB,CAAA;IACnB,YAAY;IACZ,oCAAe,CAAA;AACjB,CAAC,EAfW,iBAAiB,iCAAjB,iBAAiB,QAe5B;AAED;;GAEG;AACH,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,8BAA8B;IAC9B,mCAAqB,CAAA;IACrB,0BAA0B;IAC1B,2BAAa,CAAA;IACb,uBAAuB;IACvB,2BAAa,CAAA;AACf,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAoGD,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAa,mBAAmB;IACtB,MAAM,CAAC,QAAQ,GAA+B,IAAI,CAAC;IAE3D,kBAAkB;IACV,UAAU,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE1D,aAAa;IACL,OAAO,GAAY,KAAK,CAAC;IAEjC;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,6EAA6E;IAC7E,wBAAwB;IACxB,6EAA6E;IAE7E;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,cAAsB,EAAE,WAAoB;QAC3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC5B,QAAQ;YACR,KAAK,EAAE,iBAAiB,CAAC,IAAI;YAC7B,aAAa,EAAE,IAAI;YACnB,cAAc;YACd,WAAW,EAAE,WAAW,IAAI,IAAI;YAChC,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,sCAAsC,cAAc,GAAG,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAAgB,EAAE,OAA8B;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,wBAAwB;IACxB,6EAA6E;IAE7E;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,OAAyB;QACvC,MAAM,EACJ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,GAAG,SAAS,EACpB,QAAQ,EACR,UAAU,GAAG,UAAU,CAAC,IAAI,EAC5B,kBAAkB,GAAG,EAAE,GACxB,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC7B,KAAK,EAAE,iBAAiB,CAAC,SAAS;YAClC,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,gBAAgB;YAChB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1G,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,cAAc,CAAC;YACxB,CAAC;YAED,cAAc;YACd,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,0BAA0B,UAAU,EAAE,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAE3D,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,kBAAyB,EAAE;gBAClD,QAAQ;gBACR,UAAU;aACX,CAAC,CAAC;YAEH,wBAAwB;YACxB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;oBAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACnG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;wBACzB,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,yCAAyC,SAAS,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;wBACjG,0BAA0B;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,aAAa;YACb,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO;gBAChC,aAAa,EAAE,UAAU;gBACzB,WAAW;gBACX,kBAAkB,EAAE,KAAK;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,6BAA6B,UAAU,EAAE,CAAC,CAAC;YAEhE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QAEhE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,KAAY,EAAE;gBACrC,QAAQ;gBACR,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,WAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,QAAgB,EAChB,QAAgB;QAEhB,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,cAAc,IAAI,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE3E,IAAI,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,6CAA6C,WAAW,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,GAAG,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,wBAAwB,WAAW,aAAa,UAAU,GAAG,CAAC,CAAC;YAEpF,aAAa;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,SAAS;YACT,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,SAAS,GAAiB,IAAI,CAAC;YAEnC,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,EAAE;wBACrD,UAAU;wBACV,GAAG,EAAE,QAAQ;qBACd,CAAC,CAAC;oBAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,gBAAuB,EAAE;wBAChD,QAAQ;wBACR,WAAW;wBACX,UAAU;qBACX,CAAC,CAAC;oBAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,cAAqB,EAAE;wBAC9C,QAAQ;wBACR,UAAU;wBACV,UAAU;wBACV,WAAW;qBACZ,CAAC,CAAC;oBAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,SAAS,GAAG,CAAC,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;wBACrD,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,2CAA2C,KAAK,UAAU,OAAO,gBAAgB,CAAC,CAAC;wBACxG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;QACrG,CAAC;QAED,cAAc;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,gCAAgC,WAAW,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,WAAmB,EACnB,SAAiB,EACjB,aAAqB,EACrB,QAAgB;QAEhB,IAAI,CAAC;YACH,aAAa;YACb,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/E,MAAM,YAAY,GAAG,UAAU,SAAS,EAAE,CAAC;YAE3C,WAAW;YACX,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAEjF,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC/B,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,cAAqB,EAAE;oBAC9C,QAAQ;oBACR,YAAY,EAAE,SAAS;oBACvB,YAAY,EAAE,aAAa;oBAC3B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;oBAChD,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,4BAA4B,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC/E,CAAC;YACJ,CAAC;YAED,QAAQ;YACR,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC9C,GAAG,EAAE,WAAW;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,gCAAgC,SAAS,EAAE;gBACpD,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;YACxE,CAAC;YAED,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,iBAAwB,EAAE;gBACjD,QAAQ;gBACR,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,aAAa;aAC5B,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,oCAAoC;IACpC,6EAA6E;IAE7E;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,OAAe,EACf,WAAmB,SAAS;QAE5B,IAAI,CAAC;YACH,UAAU;YACV,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,sBAAsB,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,UAAU;gBACnC,aAAa,EAAE,cAAc;aAC9B,CAAC,CAAC;YAEH,oBAAoB;YACpB,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAEhD,SAAS;YACT,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAElF,cAAc;YACd,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CACnC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EACpC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CACnC,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YAE/E,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO;gBAChC,cAAc,EAAE,UAAU;gBAC1B,kBAAkB,EAAE,KAAK;aAC1B,CAAC,CAAC;YAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,SAAgB,EAAE;gBACzC,QAAQ;gBACR,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,aAAa,IAAI,SAAS;gBACnE,UAAU;gBACV,OAAO;gBACP,YAAY;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,qBAAqB,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAExE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QAErD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY;gBAC9C,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,2BAA2B;IAC3B,6EAA6E;IAE7E;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,EACJ,WAAW,EACX,UAAU,EACV,aAAa,GAAG,sBAAsB,EACtC,QAAQ,GAAG,SAAS,EACpB,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,QAAQ,EACjB,WAAW,GAAG,KAAK,GACpB,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC;YACH,aAAa;YACb,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,oCAAoC,CAAC,CAAC;gBAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC5C,CAAC;YAED,IAAI,UAA8B,CAAC;YACnC,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,kBAAkB;YAClB,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;oBAC7B,KAAK,EAAE,iBAAiB,CAAC,UAAU;oBACnC,aAAa,EAAE,cAAc;iBAC9B,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAEhD,SAAS;gBACT,MAAM,WAAW,GAAG,QAAQ;oBAC1B,CAAC,CAAC,GAAG,aAAa,aAAa,QAAQ,EAAE;oBACzC,CAAC,CAAC,aAAa,CAAC;gBAElB,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAEhE,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE5E,cAAc;gBACd,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CACnC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EACpC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CACnC,CAAC;gBACF,YAAY,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBAEzE,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,SAAgB,EAAE;oBACzC,QAAQ;oBACR,UAAU;oBACV,UAAU;oBACV,OAAO,EAAE,aAAa;oBACtB,YAAY;iBACb,CAAC,CAAC;gBAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,wBAAwB,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;YACrG,CAAC;YAED,QAAQ;YACR,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;oBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO;iBACjC,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE9D,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,MAAa,EAAE;wBACtC,QAAQ;wBACR,UAAU;wBACV,MAAM;wBACN,UAAU,EAAE,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;qBACzF,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,eAAe,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;gBAE9D,CAAC;gBAAC,OAAO,SAAc,EAAE,CAAC;oBACxB,WAAW;oBACX,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,aAAoB,EAAE;wBAC7C,QAAQ;wBACR,UAAU;wBACV,MAAM,EAAE,SAAS,CAAC,OAAO;wBACzB,IAAI,EAAE,kCAAkC;qBACzC,CAAC,CAAC;oBAEH,8BAA8B;oBAC9B,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,gBAAgB,SAAS,CAAC,OAAO,EAAE;wBAC1C,UAAU;wBACV,YAAY;wBACZ,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;qBAC9B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,aAAa;YACb,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,IAAI;gBAC7B,cAAc,EAAE,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc;gBACzE,kBAAkB,EAAE,KAAK;gBACzB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QAErD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,KAAY,EAAE;gBACrC,QAAQ;gBACR,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,0BAA0B;IAC1B,6EAA6E;IAE7E;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,OAAqB;QACvC,MAAM,EACJ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,QAAQ,GAAG,SAAS,EACpB,SAAS,GAAG,kBAAkB,EAC9B,eAAe,GAAG,IAAI,EACtB,IAAI,GAAG,IAAI,GACZ,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO;YAChC,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,kBAAkB;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,kBAAkB,YAAY,YAAY,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAE7D,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,aAAoB,EAAE;gBAC7C,QAAQ;gBACR,YAAY;gBACZ,YAAY;gBACZ,SAAS;aACV,CAAC,CAAC;YAEH,cAAc;YACd,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAEjF,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC/B,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,cAAqB,EAAE;oBAC9C,QAAQ;oBACR,YAAY;oBACZ,YAAY;oBACZ,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;oBAChD,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;wBAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK;wBAC9B,KAAK,EAAE,mBAAmB,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACtE,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,4BAA4B,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC9E,OAAO,EAAE,EAAE,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,EAAE;qBAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,WAAW;YACX,MAAM,QAAQ,GAAG,aAAa,IAAI,gBAAgB,YAAY,SAAS,YAAY,EAAE,CAAC;YAEtF,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC9C,GAAG,EAAE,WAAW;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,QAAQ;gBACjB,eAAe;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACzB,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,cAAqB,EAAE;wBAC9C,QAAQ;wBACR,YAAY;wBACZ,YAAY;wBACZ,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;wBAC9C,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;oBAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK;oBAC9B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,cAAc;iBAC3C,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,cAAc;oBAC1C,OAAO,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE;iBAC5D,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnF,cAAc;YACd,MAAM,KAAK,GAAG,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjF,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,eAAsB,EAAE;gBAC/C,QAAQ;gBACR,YAAY;gBACZ,YAAY;gBACZ,WAAW;gBACX,YAAY;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,YAAY,YAAY,MAAM,YAAY,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAEpG,QAAQ;YACR,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;oBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO;iBACjC,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEhE,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,MAAa,EAAE;wBACtC,QAAQ;wBACR,UAAU,EAAE,YAAY;wBACxB,MAAM,EAAE,QAAQ;wBAChB,UAAU,EAAE,WAAW;qBACxB,CAAC,CAAC;gBAEL,CAAC;gBAAC,OAAO,SAAc,EAAE,CAAC;oBACxB,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,aAAoB,EAAE;wBAC7C,QAAQ;wBACR,UAAU,EAAE,YAAY;wBACxB,MAAM,EAAE,SAAS,CAAC,OAAO;qBAC1B,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,oCAAoC,SAAS,CAAC,OAAO,EAAE;wBAC9D,UAAU,EAAE,WAAW;wBACvB,YAAY;wBACZ,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;qBAC9B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,aAAa;YACb,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,IAAI;gBAC7B,aAAa,EAAE,YAAY;gBAC3B,cAAc,EAAE,WAAW;gBAC3B,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QAElE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,KAAY,EAAE;gBACrC,QAAQ;gBACR,SAAS,EAAE,eAAe;gBAC1B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,WAAmB,SAAS;QACrE,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,GAAG,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAE3C,eAAM,CAAC,IAAI,CAAC,+BAAY,CAAC,gBAAuB,EAAE;gBAChD,QAAQ;gBACR,WAAW;aACZ,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,uBAAuB,WAAW,EAAE,CAAC,CAAC;YAE3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,wBAAwB,CAAC,CAAC;IACjD,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;OAEG;IACH,qBAAqB,CAAC,WAAmB;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,OAAe,EACf,WAAmB,SAAS;QAE5B,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC5C,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAE3E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAElF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAEvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,aAAa;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;QACxD,IAAI,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAlxBH,kDAmxBC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO,mBAAmB,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,mBAAmB,CAAC,aAAa,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface WorktreeSetupOptions {
|
|
2
|
+
worktreeDir: string;
|
|
3
|
+
pipelineBranch: string;
|
|
4
|
+
repoRoot: string;
|
|
5
|
+
baseBranch: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class GitPipelineCoordinator {
|
|
8
|
+
ensureWorktree(options: WorktreeSetupOptions): Promise<void>;
|
|
9
|
+
mergeDependencyBranches(deps: string[], runDir: string, worktreeDir: string, pipelineBranch: string): Promise<void>;
|
|
10
|
+
mergeTaskIntoPipeline({ taskName, taskBranch, pipelineBranch, worktreeDir, }: {
|
|
11
|
+
taskName: string;
|
|
12
|
+
taskBranch: string;
|
|
13
|
+
pipelineBranch: string;
|
|
14
|
+
worktreeDir: string;
|
|
15
|
+
}): void;
|
|
16
|
+
finalizeFlowBranch({ flowBranch, pipelineBranch, worktreeDir, }: {
|
|
17
|
+
flowBranch: string;
|
|
18
|
+
pipelineBranch: string;
|
|
19
|
+
worktreeDir: string;
|
|
20
|
+
}): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.GitPipelineCoordinator = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const git = __importStar(require("../utils/git"));
|
|
40
|
+
const logger = __importStar(require("../utils/logger"));
|
|
41
|
+
const events_1 = require("../utils/events");
|
|
42
|
+
const path_1 = require("../utils/path");
|
|
43
|
+
const state_1 = require("../utils/state");
|
|
44
|
+
class GitPipelineCoordinator {
|
|
45
|
+
async ensureWorktree(options) {
|
|
46
|
+
const { worktreeDir, pipelineBranch, repoRoot, baseBranch } = options;
|
|
47
|
+
const worktreeNeedsCreation = !fs.existsSync(worktreeDir);
|
|
48
|
+
const worktreeIsInvalid = !worktreeNeedsCreation && !git.isValidWorktree(worktreeDir);
|
|
49
|
+
if (worktreeIsInvalid) {
|
|
50
|
+
logger.warn(`⚠️ Directory exists but is not a valid worktree: ${worktreeDir}`);
|
|
51
|
+
logger.info(` Cleaning up invalid directory and recreating worktree...`);
|
|
52
|
+
try {
|
|
53
|
+
git.cleanupInvalidWorktreeDir(worktreeDir);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
logger.error(`Failed to cleanup invalid worktree directory: ${e.message}`);
|
|
57
|
+
throw new Error(`Cannot proceed: worktree directory is invalid and cleanup failed`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (worktreeNeedsCreation || worktreeIsInvalid) {
|
|
61
|
+
let retries = 3;
|
|
62
|
+
let lastError = null;
|
|
63
|
+
while (retries > 0) {
|
|
64
|
+
try {
|
|
65
|
+
const worktreeParent = path.dirname(worktreeDir);
|
|
66
|
+
if (!fs.existsSync(worktreeParent)) {
|
|
67
|
+
fs.mkdirSync(worktreeParent, { recursive: true });
|
|
68
|
+
}
|
|
69
|
+
await git.createWorktreeAsync(worktreeDir, pipelineBranch, {
|
|
70
|
+
baseBranch,
|
|
71
|
+
cwd: repoRoot,
|
|
72
|
+
});
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
lastError = e;
|
|
77
|
+
retries--;
|
|
78
|
+
if (retries > 0) {
|
|
79
|
+
const delay = Math.floor(Math.random() * 1000) + 500;
|
|
80
|
+
logger.warn(`Worktree creation failed, retrying in ${delay}ms... (${retries} retries left)`);
|
|
81
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (retries === 0 && lastError) {
|
|
86
|
+
throw new Error(`Failed to create Git worktree after retries: ${lastError.message}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
logger.info(`Reusing existing worktree: ${worktreeDir}`);
|
|
91
|
+
try {
|
|
92
|
+
git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
logger.warn(`Failed to checkout branch ${pipelineBranch} in existing worktree: ${e}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async mergeDependencyBranches(deps, runDir, worktreeDir, pipelineBranch) {
|
|
100
|
+
if (!deps || deps.length === 0)
|
|
101
|
+
return;
|
|
102
|
+
const lanesRoot = path.dirname(runDir);
|
|
103
|
+
const lanesToMerge = new Set(deps.map(d => d.split(':')[0]));
|
|
104
|
+
logger.info(`🔄 Syncing with ${pipelineBranch} before merging dependencies`);
|
|
105
|
+
git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
|
|
106
|
+
for (const laneName of lanesToMerge) {
|
|
107
|
+
const depStatePath = (0, path_1.safeJoin)(lanesRoot, laneName, 'state.json');
|
|
108
|
+
if (!fs.existsSync(depStatePath))
|
|
109
|
+
continue;
|
|
110
|
+
try {
|
|
111
|
+
const state = (0, state_1.loadState)(depStatePath);
|
|
112
|
+
if (!state?.pipelineBranch)
|
|
113
|
+
continue;
|
|
114
|
+
logger.info(`Merging branch from ${laneName}: ${state.pipelineBranch}`);
|
|
115
|
+
git.runGit(['fetch', 'origin', state.pipelineBranch], { cwd: worktreeDir, silent: true });
|
|
116
|
+
const remoteBranchRef = `origin/${state.pipelineBranch}`;
|
|
117
|
+
const conflictCheck = git.checkMergeConflict(remoteBranchRef, { cwd: worktreeDir });
|
|
118
|
+
if (conflictCheck.willConflict) {
|
|
119
|
+
logger.warn(`⚠️ Pre-check: Merge conflict detected with ${laneName}`);
|
|
120
|
+
logger.warn(` Conflicting files: ${conflictCheck.conflictingFiles.join(', ')}`);
|
|
121
|
+
events_1.events.emit('merge.conflict_detected', {
|
|
122
|
+
laneName,
|
|
123
|
+
targetBranch: state.pipelineBranch,
|
|
124
|
+
conflictingFiles: conflictCheck.conflictingFiles,
|
|
125
|
+
preCheck: true,
|
|
126
|
+
});
|
|
127
|
+
throw new Error(`Pre-merge conflict check failed: ${conflictCheck.conflictingFiles.join(', ')}. ` +
|
|
128
|
+
'Consider rebasing or resolving conflicts manually.');
|
|
129
|
+
}
|
|
130
|
+
const mergeResult = git.safeMerge(remoteBranchRef, {
|
|
131
|
+
cwd: worktreeDir,
|
|
132
|
+
noFf: true,
|
|
133
|
+
message: `chore: merge task dependency from ${laneName}`,
|
|
134
|
+
abortOnConflict: true,
|
|
135
|
+
});
|
|
136
|
+
if (!mergeResult.success) {
|
|
137
|
+
if (mergeResult.conflict) {
|
|
138
|
+
logger.error(`Merge conflict with ${laneName}: ${mergeResult.conflictingFiles.join(', ')}`);
|
|
139
|
+
throw new Error(`Merge conflict: ${mergeResult.conflictingFiles.join(', ')}`);
|
|
140
|
+
}
|
|
141
|
+
throw new Error(mergeResult.error || 'Merge failed');
|
|
142
|
+
}
|
|
143
|
+
logger.success(`✓ Merged ${laneName}`);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
logger.error(`Failed to merge branch from ${laneName}: ${e}`);
|
|
147
|
+
throw e;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
mergeTaskIntoPipeline({ taskName, taskBranch, pipelineBranch, worktreeDir, }) {
|
|
152
|
+
logger.info(`Merging ${taskBranch} → ${pipelineBranch}`);
|
|
153
|
+
logger.info(`🔄 Switching to pipeline branch ${pipelineBranch} to integrate changes`);
|
|
154
|
+
git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
|
|
155
|
+
const conflictCheck = git.checkMergeConflict(taskBranch, { cwd: worktreeDir });
|
|
156
|
+
if (conflictCheck.willConflict) {
|
|
157
|
+
logger.warn(`⚠️ Unexpected conflict detected when merging ${taskBranch}`);
|
|
158
|
+
logger.warn(` Conflicting files: ${conflictCheck.conflictingFiles.join(', ')}`);
|
|
159
|
+
logger.warn(` This may indicate concurrent modifications to ${pipelineBranch}`);
|
|
160
|
+
events_1.events.emit('merge.conflict_detected', {
|
|
161
|
+
taskName,
|
|
162
|
+
taskBranch,
|
|
163
|
+
pipelineBranch,
|
|
164
|
+
conflictingFiles: conflictCheck.conflictingFiles,
|
|
165
|
+
preCheck: true,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
logger.info(`🔀 Merging task ${taskName} (${taskBranch}) into ${pipelineBranch}`);
|
|
169
|
+
const mergeResult = git.safeMerge(taskBranch, {
|
|
170
|
+
cwd: worktreeDir,
|
|
171
|
+
noFf: true,
|
|
172
|
+
message: `chore: merge task ${taskName} into pipeline`,
|
|
173
|
+
abortOnConflict: true,
|
|
174
|
+
});
|
|
175
|
+
if (!mergeResult.success) {
|
|
176
|
+
if (mergeResult.conflict) {
|
|
177
|
+
logger.error(`❌ Merge conflict: ${mergeResult.conflictingFiles.join(', ')}`);
|
|
178
|
+
throw new Error(`Merge conflict when integrating task ${taskName}: ${mergeResult.conflictingFiles.join(', ')}`);
|
|
179
|
+
}
|
|
180
|
+
throw new Error(mergeResult.error || 'Merge failed');
|
|
181
|
+
}
|
|
182
|
+
const stats = git.getLastOperationStats(worktreeDir);
|
|
183
|
+
if (stats) {
|
|
184
|
+
logger.info('Changed files:\n' + stats);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
finalizeFlowBranch({ flowBranch, pipelineBranch, worktreeDir, }) {
|
|
188
|
+
if (flowBranch === pipelineBranch)
|
|
189
|
+
return;
|
|
190
|
+
logger.info(`🌿 Creating final flow branch: ${flowBranch}`);
|
|
191
|
+
try {
|
|
192
|
+
git.runGit(['checkout', '-B', flowBranch, pipelineBranch], { cwd: worktreeDir });
|
|
193
|
+
git.push(flowBranch, { cwd: worktreeDir, setUpstream: true });
|
|
194
|
+
logger.info(`🗑️ Deleting local pipeline branch: ${pipelineBranch}`);
|
|
195
|
+
git.runGit(['checkout', flowBranch], { cwd: worktreeDir });
|
|
196
|
+
git.deleteBranch(pipelineBranch, { cwd: worktreeDir, force: true });
|
|
197
|
+
logger.success(`✓ Flow branch '${flowBranch}' created. Remote pipeline branch preserved for dependencies.`);
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
logger.error(`❌ Failed during final consolidation: ${e}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.GitPipelineCoordinator = GitPipelineCoordinator;
|
|
205
|
+
//# sourceMappingURL=git-pipeline-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-pipeline-coordinator.js","sourceRoot":"","sources":["../../src/core/git-pipeline-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intervention Executor - 즉각적인 에이전트 개입을 위한 통합 모듈
|
|
3
|
+
*
|
|
4
|
+
* 핵심 기능:
|
|
5
|
+
* - 실행 중인 cursor-agent 프로세스 종료
|
|
6
|
+
* - 개입 메시지와 함께 세션 resume
|
|
7
|
+
* - signal, stall-detection에서 일관된 방식으로 사용
|
|
8
|
+
*
|
|
9
|
+
* 동작 원리:
|
|
10
|
+
* 1. 개입 요청 시 pending-intervention.json 파일 생성
|
|
11
|
+
* 2. 현재 프로세스 SIGTERM으로 종료
|
|
12
|
+
* 3. Orchestrator/Runner가 프로세스 종료 감지
|
|
13
|
+
* 4. pending-intervention.json 읽어서 개입 메시지 포함하여 resume
|
|
14
|
+
*/
|
|
15
|
+
import { ChildProcess } from 'child_process';
|
|
16
|
+
/**
|
|
17
|
+
* 개입 요청 타입
|
|
18
|
+
*/
|
|
19
|
+
export declare enum InterventionType {
|
|
20
|
+
/** 사용자가 직접 보낸 메시지 */
|
|
21
|
+
USER_MESSAGE = "user_message",
|
|
22
|
+
/** Stall 감지로 인한 continue 신호 */
|
|
23
|
+
CONTINUE_SIGNAL = "continue_signal",
|
|
24
|
+
/** Stall 감지로 인한 stronger prompt */
|
|
25
|
+
STRONGER_PROMPT = "stronger_prompt",
|
|
26
|
+
/** 시스템 재시작 요청 */
|
|
27
|
+
SYSTEM_RESTART = "system_restart",
|
|
28
|
+
/** Git 에러 가이던스 */
|
|
29
|
+
GIT_GUIDANCE = "git_guidance"
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 개입 요청 데이터
|
|
33
|
+
*/
|
|
34
|
+
export interface InterventionRequest {
|
|
35
|
+
/** 개입 유형 */
|
|
36
|
+
type: InterventionType;
|
|
37
|
+
/** 개입 메시지 (에이전트에게 전달될 프롬프트) */
|
|
38
|
+
message: string;
|
|
39
|
+
/** 요청 시간 */
|
|
40
|
+
timestamp: number;
|
|
41
|
+
/** 요청자 (user, system, stall-detector) */
|
|
42
|
+
source: 'user' | 'system' | 'stall-detector';
|
|
43
|
+
/** 우선순위 (높을수록 먼저 처리) */
|
|
44
|
+
priority?: number;
|
|
45
|
+
/** 현재 태스크 인덱스 (resume 시 사용) */
|
|
46
|
+
taskIndex?: number;
|
|
47
|
+
/** 추가 메타데이터 */
|
|
48
|
+
metadata?: Record<string, any>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 개입 실행 결과
|
|
52
|
+
*/
|
|
53
|
+
export interface InterventionResult {
|
|
54
|
+
/** 성공 여부 */
|
|
55
|
+
success: boolean;
|
|
56
|
+
/** 종료된 프로세스 PID */
|
|
57
|
+
killedPid?: number;
|
|
58
|
+
/** 오류 메시지 */
|
|
59
|
+
error?: string;
|
|
60
|
+
/** pending-intervention.json 경로 */
|
|
61
|
+
pendingFile?: string;
|
|
62
|
+
}
|
|
63
|
+
/** 개입 요청 파일명 */
|
|
64
|
+
export declare const PENDING_INTERVENTION_FILE = "pending-intervention.json";
|
|
65
|
+
/** 기존 intervention.txt 파일명 (호환성 유지) */
|
|
66
|
+
export declare const LEGACY_INTERVENTION_FILE = "intervention.txt";
|
|
67
|
+
/**
|
|
68
|
+
* Continue 신호 메시지 생성
|
|
69
|
+
*/
|
|
70
|
+
export declare function createContinueMessage(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Stronger prompt 메시지 생성
|
|
73
|
+
*/
|
|
74
|
+
export declare function createStrongerPromptMessage(): string;
|
|
75
|
+
/**
|
|
76
|
+
* 시스템 재시작 메시지 생성
|
|
77
|
+
*/
|
|
78
|
+
export declare function createRestartMessage(reason: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* 사용자 개입 메시지 래핑
|
|
81
|
+
*/
|
|
82
|
+
export declare function wrapUserIntervention(message: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* 개입 요청 파일 경로 가져오기
|
|
85
|
+
*/
|
|
86
|
+
export declare function getPendingInterventionPath(laneRunDir: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* 기존 intervention.txt 경로 가져오기 (호환성)
|
|
89
|
+
*/
|
|
90
|
+
export declare function getLegacyInterventionPath(laneRunDir: string): string;
|
|
91
|
+
/**
|
|
92
|
+
* 개입 요청 생성 및 저장
|
|
93
|
+
*
|
|
94
|
+
* @param laneRunDir Lane 실행 디렉토리
|
|
95
|
+
* @param request 개입 요청 데이터
|
|
96
|
+
* @returns 저장된 파일 경로
|
|
97
|
+
*/
|
|
98
|
+
export declare function createInterventionRequest(laneRunDir: string, request: Omit<InterventionRequest, 'timestamp'>): string;
|
|
99
|
+
/**
|
|
100
|
+
* 대기 중인 개입 요청 읽기
|
|
101
|
+
*/
|
|
102
|
+
export declare function readPendingIntervention(laneRunDir: string): InterventionRequest | null;
|
|
103
|
+
/**
|
|
104
|
+
* 대기 중인 개입 요청 삭제 (처리 완료 후)
|
|
105
|
+
*/
|
|
106
|
+
export declare function clearPendingIntervention(laneRunDir: string): void;
|
|
107
|
+
/**
|
|
108
|
+
* 대기 중인 개입 요청이 있는지 확인
|
|
109
|
+
*/
|
|
110
|
+
export declare function hasPendingIntervention(laneRunDir: string): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* PID로 프로세스 종료
|
|
113
|
+
*
|
|
114
|
+
* @param pid 종료할 프로세스 PID
|
|
115
|
+
* @param signal 종료 시그널 (기본: SIGTERM)
|
|
116
|
+
* @returns 성공 여부
|
|
117
|
+
*/
|
|
118
|
+
export declare function killProcess(pid: number, signal?: NodeJS.Signals): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* 프로세스가 살아있는지 확인
|
|
121
|
+
*/
|
|
122
|
+
export declare function isProcessAlive(pid: number): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* 프로세스 종료 후 대기
|
|
125
|
+
*
|
|
126
|
+
* @param pid 종료할 프로세스 PID
|
|
127
|
+
* @param timeoutMs 최대 대기 시간
|
|
128
|
+
* @returns 종료 성공 여부
|
|
129
|
+
*/
|
|
130
|
+
export declare function killAndWait(pid: number, timeoutMs?: number): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* ChildProcess 종료
|
|
133
|
+
*/
|
|
134
|
+
export declare function killChildProcess(child: ChildProcess): Promise<boolean>;
|
|
135
|
+
/**
|
|
136
|
+
* 즉각 개입 실행 - 프로세스 종료 및 개입 요청 생성
|
|
137
|
+
*
|
|
138
|
+
* 이 함수는 다음을 수행합니다:
|
|
139
|
+
* 1. 개입 요청 파일 생성 (pending-intervention.json)
|
|
140
|
+
* 2. 현재 프로세스 종료 (SIGTERM → SIGKILL)
|
|
141
|
+
* 3. 결과 반환 (Orchestrator가 resume 처리)
|
|
142
|
+
*
|
|
143
|
+
* @param laneRunDir Lane 실행 디렉토리
|
|
144
|
+
* @param request 개입 요청 데이터
|
|
145
|
+
* @param pid 종료할 프로세스 PID (없으면 state.json에서 읽음)
|
|
146
|
+
*/
|
|
147
|
+
export declare function executeIntervention(laneRunDir: string, request: Omit<InterventionRequest, 'timestamp'>, pid?: number): Promise<InterventionResult>;
|
|
148
|
+
/**
|
|
149
|
+
* 사용자 개입 실행 (cursorflow signal 명령용)
|
|
150
|
+
*/
|
|
151
|
+
export declare function executeUserIntervention(laneRunDir: string, message: string, pid?: number): Promise<InterventionResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Continue 신호 실행 (stall-detection용)
|
|
154
|
+
*/
|
|
155
|
+
export declare function executeContinueSignal(laneRunDir: string, pid?: number): Promise<InterventionResult>;
|
|
156
|
+
/**
|
|
157
|
+
* Stronger prompt 실행 (stall-detection용)
|
|
158
|
+
*/
|
|
159
|
+
export declare function executeStrongerPrompt(laneRunDir: string, pid?: number): Promise<InterventionResult>;
|
|
160
|
+
/**
|
|
161
|
+
* Git 가이던스 실행
|
|
162
|
+
*/
|
|
163
|
+
export declare function executeGitGuidance(laneRunDir: string, guidance: string, pid?: number): Promise<InterventionResult>;
|
|
164
|
+
/**
|
|
165
|
+
* 개입 메시지를 포함한 resume 프롬프트 생성
|
|
166
|
+
*
|
|
167
|
+
* Runner가 resume 시 호출하여 개입 메시지를 프롬프트에 포함
|
|
168
|
+
*/
|
|
169
|
+
export declare function buildResumePromptWithIntervention(laneRunDir: string, originalPrompt: string): {
|
|
170
|
+
prompt: string;
|
|
171
|
+
hadIntervention: boolean;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* 개입으로 인한 재시작인지 확인
|
|
175
|
+
*/
|
|
176
|
+
export declare function isInterventionRestart(laneRunDir: string): boolean;
|