@on-par/factory-cli 0.9.18-next.2 → 0.9.18-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/cli/awaiting-ci-recheck.d.ts +31 -0
  2. package/dist/cli/awaiting-ci-recheck.d.ts.map +1 -0
  3. package/dist/cli/awaiting-ci-recheck.js +61 -0
  4. package/dist/cli/awaiting-ci-recheck.js.map +1 -0
  5. package/dist/cli/awaiting-ci-wiring.d.ts +6 -0
  6. package/dist/cli/awaiting-ci-wiring.d.ts.map +1 -0
  7. package/dist/cli/awaiting-ci-wiring.js +45 -0
  8. package/dist/cli/awaiting-ci-wiring.js.map +1 -0
  9. package/dist/cli/daemon.d.ts.map +1 -1
  10. package/dist/cli/daemon.js +3 -3
  11. package/dist/cli/daemon.js.map +1 -1
  12. package/dist/cli/detect-checks.d.ts +2 -0
  13. package/dist/cli/detect-checks.d.ts.map +1 -1
  14. package/dist/cli/detect-checks.js +13 -2
  15. package/dist/cli/detect-checks.js.map +1 -1
  16. package/dist/cli/doctor-verify.d.ts +3 -1
  17. package/dist/cli/doctor-verify.d.ts.map +1 -1
  18. package/dist/cli/doctor-verify.js +13 -8
  19. package/dist/cli/doctor-verify.js.map +1 -1
  20. package/dist/cli/errors.d.ts +6 -0
  21. package/dist/cli/errors.d.ts.map +1 -0
  22. package/dist/cli/errors.js +11 -0
  23. package/dist/cli/errors.js.map +1 -0
  24. package/dist/cli/host-claim-guards.d.ts +9 -0
  25. package/dist/cli/host-claim-guards.d.ts.map +1 -0
  26. package/dist/cli/host-claim-guards.js +11 -0
  27. package/dist/cli/host-claim-guards.js.map +1 -0
  28. package/dist/cli/host-slot.d.ts +15 -2
  29. package/dist/cli/host-slot.d.ts.map +1 -1
  30. package/dist/cli/host-slot.js +33 -3
  31. package/dist/cli/host-slot.js.map +1 -1
  32. package/dist/cli/index.d.ts +6 -16
  33. package/dist/cli/index.d.ts.map +1 -1
  34. package/dist/cli/index.js +52 -78
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/json-contract.d.ts +7 -0
  37. package/dist/cli/json-contract.d.ts.map +1 -1
  38. package/dist/cli/json-contract.js +3 -0
  39. package/dist/cli/json-contract.js.map +1 -1
  40. package/dist/cli/land-behind.d.ts +8 -0
  41. package/dist/cli/land-behind.d.ts.map +1 -0
  42. package/dist/cli/land-behind.js +21 -0
  43. package/dist/cli/land-behind.js.map +1 -0
  44. package/dist/cli/land-pr.d.ts +24 -0
  45. package/dist/cli/land-pr.d.ts.map +1 -1
  46. package/dist/cli/land-pr.js +143 -51
  47. package/dist/cli/land-pr.js.map +1 -1
  48. package/dist/cli/land.d.ts +9 -0
  49. package/dist/cli/land.d.ts.map +1 -1
  50. package/dist/cli/land.js +23 -22
  51. package/dist/cli/land.js.map +1 -1
  52. package/dist/cli/lane-heartbeat.d.ts +31 -3
  53. package/dist/cli/lane-heartbeat.d.ts.map +1 -1
  54. package/dist/cli/lane-heartbeat.js +74 -6
  55. package/dist/cli/lane-heartbeat.js.map +1 -1
  56. package/dist/cli/lane-pause.d.ts +6 -1
  57. package/dist/cli/lane-pause.d.ts.map +1 -1
  58. package/dist/cli/lane-pause.js +30 -0
  59. package/dist/cli/lane-pause.js.map +1 -1
  60. package/dist/cli/model-override-messages.d.ts +5 -1
  61. package/dist/cli/model-override-messages.d.ts.map +1 -1
  62. package/dist/cli/model-override-messages.js +9 -1
  63. package/dist/cli/model-override-messages.js.map +1 -1
  64. package/dist/cli/notify.d.ts +12 -0
  65. package/dist/cli/notify.d.ts.map +1 -1
  66. package/dist/cli/notify.js +28 -0
  67. package/dist/cli/notify.js.map +1 -1
  68. package/dist/cli/queue-preflight.d.ts +4 -2
  69. package/dist/cli/queue-preflight.d.ts.map +1 -1
  70. package/dist/cli/queue-preflight.js +1 -1
  71. package/dist/cli/queue-preflight.js.map +1 -1
  72. package/dist/cli/queue-startup.d.ts +57 -0
  73. package/dist/cli/queue-startup.d.ts.map +1 -1
  74. package/dist/cli/queue-startup.js +64 -1
  75. package/dist/cli/queue-startup.js.map +1 -1
  76. package/dist/cli/repo-live-run-lock.d.ts +7 -0
  77. package/dist/cli/repo-live-run-lock.d.ts.map +1 -0
  78. package/dist/cli/repo-live-run-lock.js +14 -0
  79. package/dist/cli/repo-live-run-lock.js.map +1 -0
  80. package/dist/cli/repo-run-lock.d.ts +14 -0
  81. package/dist/cli/repo-run-lock.d.ts.map +1 -0
  82. package/dist/cli/repo-run-lock.js +27 -0
  83. package/dist/cli/repo-run-lock.js.map +1 -0
  84. package/dist/cli/reset.d.ts.map +1 -1
  85. package/dist/cli/reset.js +2 -2
  86. package/dist/cli/reset.js.map +1 -1
  87. package/dist/cli/run-lane-deps.d.ts +16 -1
  88. package/dist/cli/run-lane-deps.d.ts.map +1 -1
  89. package/dist/cli/run-lane-disk-hold.d.ts +14 -0
  90. package/dist/cli/run-lane-disk-hold.d.ts.map +1 -0
  91. package/dist/cli/run-lane-disk-hold.js +25 -0
  92. package/dist/cli/run-lane-disk-hold.js.map +1 -0
  93. package/dist/cli/run-lane-load-hold.d.ts +14 -0
  94. package/dist/cli/run-lane-load-hold.d.ts.map +1 -0
  95. package/dist/cli/run-lane-load-hold.js +22 -0
  96. package/dist/cli/run-lane-load-hold.js.map +1 -0
  97. package/dist/cli/run-lane-restack.d.ts +13 -0
  98. package/dist/cli/run-lane-restack.d.ts.map +1 -0
  99. package/dist/cli/run-lane-restack.js +21 -0
  100. package/dist/cli/run-lane-restack.js.map +1 -0
  101. package/dist/cli/run-lane.d.ts.map +1 -1
  102. package/dist/cli/run-lane.js +73 -58
  103. package/dist/cli/run-lane.js.map +1 -1
  104. package/dist/cli/run.d.ts +1 -0
  105. package/dist/cli/run.d.ts.map +1 -1
  106. package/dist/cli/run.js +16 -12
  107. package/dist/cli/run.js.map +1 -1
  108. package/dist/cli/self-update-apply.d.ts +1 -1
  109. package/dist/cli/self-update-apply.d.ts.map +1 -1
  110. package/dist/cli/self-update-apply.js +4 -5
  111. package/dist/cli/self-update-apply.js.map +1 -1
  112. package/dist/cli/ship-run-state.d.ts +5 -0
  113. package/dist/cli/ship-run-state.d.ts.map +1 -1
  114. package/dist/cli/ship-run-state.js +18 -1
  115. package/dist/cli/ship-run-state.js.map +1 -1
  116. package/dist/cli/ship-steps.d.ts +4 -2
  117. package/dist/cli/ship-steps.d.ts.map +1 -1
  118. package/dist/cli/ship-steps.js +3 -1
  119. package/dist/cli/ship-steps.js.map +1 -1
  120. package/dist/cli/ship.d.ts +4 -2
  121. package/dist/cli/ship.d.ts.map +1 -1
  122. package/dist/cli/ship.js +11 -17
  123. package/dist/cli/ship.js.map +1 -1
  124. package/dist/cli/status-json.d.ts +1 -0
  125. package/dist/cli/status-json.d.ts.map +1 -1
  126. package/dist/cli/status-json.js +1 -0
  127. package/dist/cli/status-json.js.map +1 -1
  128. package/dist/cli/status.d.ts.map +1 -1
  129. package/dist/cli/status.js +16 -1
  130. package/dist/cli/status.js.map +1 -1
  131. package/dist/cli/steer.js +3 -3
  132. package/dist/cli/steer.js.map +1 -1
  133. package/package.json +4 -4
  134. package/schemas/logs-line.schema.json +10 -0
  135. package/schemas/status.schema.json +24 -0
@@ -0,0 +1,25 @@
1
+ // packages/cli/src/cli/run-lane-disk-hold.ts — runLane's host disk claim gate (#2284)
2
+ import { formatDiskHold } from '@on-par/factory-core/internal';
3
+ const decide = (guard) => {
4
+ try {
5
+ return guard();
6
+ }
7
+ catch {
8
+ return { kind: 'claim' };
9
+ }
10
+ };
11
+ /** Holds the claim while disk is low: one `disk_low` event per episode, `warn` per retry, until space recovers or STOP appears. */
12
+ export async function holdForDisk(guard, io) {
13
+ let first = true;
14
+ for (let d = decide(guard); d.kind === 'hold'; d = decide(guard)) {
15
+ const retryAt = new Date(io.now().getTime() + d.retryMs);
16
+ const line = formatDiskHold(`lane '${io.lane}' not claiming:`, d, retryAt);
17
+ io.emitEvent(io.paths.events, first ? 'disk_low' : 'warn', io.lane, line, { lane: io.lane });
18
+ first = false;
19
+ await io.sleep(d.retryMs);
20
+ if (io.pathExists(io.paths.stop))
21
+ return 'stopped';
22
+ }
23
+ return 'claim';
24
+ }
25
+ //# sourceMappingURL=run-lane-disk-hold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-lane-disk-hold.js","sourceRoot":"","sources":["../../src/cli/run-lane-disk-hold.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAY/D,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAqB,EAAE;IACnE,IAAI,CAAC;QACH,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF,mIAAmI;AACnI,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAA8B,EAAE,EAAc;IAC9E,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,KAAK,GAAG,KAAK,CAAC;QACd,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { getFactoryPaths } from '@on-par/factory-core';
2
+ import type { LoadGuardDecision, logEvent } from '@on-par/factory-core/internal';
3
+ interface LoadHoldIo {
4
+ lane: string;
5
+ paths: Pick<ReturnType<typeof getFactoryPaths>, 'events' | 'stop'>;
6
+ emitEvent: typeof logEvent;
7
+ now: () => Date;
8
+ sleep: (ms: number) => Promise<void>;
9
+ pathExists: (path: string) => boolean;
10
+ }
11
+ /** Holds the claim while the host is loaded: one `warn` per retry until load recovers or STOP appears. */
12
+ export declare function holdForLoad(guard: () => LoadGuardDecision, io: LoadHoldIo): Promise<'claim' | 'stopped'>;
13
+ export {};
14
+ //# sourceMappingURL=run-lane-load-hold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-lane-load-hold.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane-load-hold.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEjF,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;IACnE,SAAS,EAAE,OAAO,QAAQ,CAAC;IAC3B,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC;AAUD,0GAA0G;AAC1G,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,iBAAiB,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAQ9G"}
@@ -0,0 +1,22 @@
1
+ // packages/cli/src/cli/run-lane-load-hold.ts — runLane's host load claim gate (#3048)
2
+ import { formatLoadHold } from '@on-par/factory-core/internal';
3
+ const decide = (guard) => {
4
+ try {
5
+ return guard();
6
+ }
7
+ catch {
8
+ return { kind: 'claim' };
9
+ }
10
+ };
11
+ /** Holds the claim while the host is loaded: one `warn` per retry until load recovers or STOP appears. */
12
+ export async function holdForLoad(guard, io) {
13
+ for (let d = decide(guard); d.kind === 'hold'; d = decide(guard)) {
14
+ const retryAt = new Date(io.now().getTime() + d.retryMs);
15
+ io.emitEvent(io.paths.events, 'warn', io.lane, formatLoadHold(io.lane, d, retryAt), { lane: io.lane });
16
+ await io.sleep(d.retryMs);
17
+ if (io.pathExists(io.paths.stop))
18
+ return 'stopped';
19
+ }
20
+ return 'claim';
21
+ }
22
+ //# sourceMappingURL=run-lane-load-hold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-lane-load-hold.js","sourceRoot":"","sources":["../../src/cli/run-lane-load-hold.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAY/D,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAqB,EAAE;IACnE,IAAI,CAAC;QACH,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF,0GAA0G;AAC1G,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAA8B,EAAE,EAAc;IAC9E,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { StackRestackOutcome } from '@on-par/factory-core/internal';
2
+ /** Restacks the open layers above a merged slice while keeping the claim lease fresh; a failure comes back as a park reason. */
3
+ export declare function restackUnderHeartbeat(issue: number, heartbeat: ((issue: number) => Promise<unknown>) | undefined, restack: (issue: number, merged: {
4
+ index: number;
5
+ prNumber: number;
6
+ }) => Promise<StackRestackOutcome>, merged: {
7
+ index: number;
8
+ prNumber: number;
9
+ }): Promise<{
10
+ parkReason?: string;
11
+ note: string;
12
+ }>;
13
+ //# sourceMappingURL=run-lane-restack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-lane-restack.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane-restack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,gIAAgI;AAChI,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,mBAAmB,CAAC,EACrG,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAchD"}
@@ -0,0 +1,21 @@
1
+ // packages/cli/src/cli/run-lane-restack.ts — runLane's model-free restack step, split out of run-lane.ts (ADR-0161)
2
+ import { withHeartbeat } from './lane-heartbeat.js';
3
+ import { shipRuntime } from './ship-runtime.js';
4
+ /** Restacks the open layers above a merged slice while keeping the claim lease fresh; a failure comes back as a park reason. */
5
+ export async function restackUnderHeartbeat(issue, heartbeat, restack, merged) {
6
+ try {
7
+ const out = await withHeartbeat(issue, heartbeat, () => restack(issue, merged));
8
+ if (out.status === 'park')
9
+ return { parkReason: out.reason, note: out.reason };
10
+ return {
11
+ note: out.status === 'restacked'
12
+ ? `restacked slice(s) ${out.slices.map((r) => r.index).join(', ')} onto main after slice ${merged.index} merged`
13
+ : out.reason,
14
+ };
15
+ }
16
+ catch (err) {
17
+ const reason = `restack failed: ${shipRuntime().errorDetail(err)}`;
18
+ return { parkReason: reason, note: reason };
19
+ }
20
+ }
21
+ //# sourceMappingURL=run-lane-restack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-lane-restack.js","sourceRoot":"","sources":["../../src/cli/run-lane-restack.ts"],"names":[],"mappings":"AAAA,oHAAoH;AAIpH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,gIAAgI;AAChI,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAa,EACb,SAA4D,EAC5D,OAAqG,EACrG,MAA2C;IAE3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/E,OAAO;YACL,IAAI,EACF,GAAG,CAAC,MAAM,KAAK,WAAW;gBACxB,CAAC,CAAC,sBAAsB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,KAAK,SAAS;gBAChH,CAAC,CAAC,GAAG,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,mBAAmB,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-lane.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAqBrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACzC,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAwZf"}
1
+ {"version":3,"file":"run-lane.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAgChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACzC,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAicf"}
@@ -1,20 +1,23 @@
1
1
  // packages/cli/src/cli/run-lane.ts — the lane loop, moved out of index.ts (#2800)
2
2
  import { existsSync, statSync } from 'node:fs';
3
3
  import { parkReasonFor } from '@on-par/factory-core';
4
- import { formatLoadHold, logEvent, PARKED_LABEL, parkPayload } from '@on-par/factory-core/internal';
4
+ import { DEFAULT_CLAIM_LEASE_MS, defaultClaimantId, logEvent, nextRecheckAt, PARKED_LABEL, parkPayload, } from '@on-par/factory-core/internal';
5
5
  import { formatBaseHoldKept } from './base-hold.js';
6
+ import { holdForDisk } from './run-lane-disk-hold.js';
7
+ import { holdForLoad } from './run-lane-load-hold.js';
6
8
  import { laneParkCommenter } from './lane-park-comment.js';
7
9
  import { pauseLaneForAllProvidersDown, pauseLaneForBrokenBase, pauseLaneForProviderCap, tripLaneBreaker, waitForProviderReset, waitForProvidersRestored, } from './lane-pause.js';
8
10
  import { waitForMerge } from './land.js';
9
- import { AwaitingReviewError } from './land-pr.js';
11
+ import { AwaitMergeStoppedError, AwaitingCiError, AwaitingReviewError } from './land-pr.js';
10
12
  import { restoredLoggingBreaker } from './provider-restored-log.js';
11
13
  import { releaseKeepOnRequeue } from './worktree-keep.js';
12
14
  import { shipIssue } from './ship.js';
13
- import { withHeartbeat } from './lane-heartbeat.js';
15
+ import { ClaimLostError, createClaimLease, laneRenewLogger, onClaimLost, withHeartbeat } from './lane-heartbeat.js';
16
+ import { restackUnderHeartbeat } from './run-lane-restack.js';
14
17
  import { queueDecomposedChildren } from './run-lane-decompose.js';
15
18
  import { shipRuntime } from './ship-runtime.js';
16
19
  export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {}) {
17
- const { ship = shipIssue, waitMerge = waitForMerge, recordStackMerge = async () => { }, restack = async () => ({ status: 'nothing', reason: 'restack not wired' }), pathExists = existsSync, emitEvent = logEvent, claimNext = async () => null, pollReviewRework, releaseIssue = async () => { }, queueChildren, heartbeat, reapWorktree = async () => { }, closeParkedPr = async () => { }, sweepFinished = async () => { }, activeIssues = new Set(), countRemaining, baseHoldGate, loadGuard, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), now = () => new Date(), laneBreakerThreshold = 0, commentIssue = async () => { }, octokit: getOctokit, runId = '-', readParkSha = () => Promise.reject(new Error('no park sha reader')), providerBreaker = restoredLoggingBreaker(paths.breaker, paths.events, '-', lane, emitEvent), configStamp = () => {
20
+ const { ship = shipIssue, waitMerge = waitForMerge, recordStackMerge = async () => { }, restack = async () => ({ status: 'nothing', reason: 'restack not wired' }), pathExists = existsSync, emitEvent = logEvent, claimNext = async () => null, pollReviewRework, recordAwaitingCi, recheckAwaitingCi, releaseIssue = async () => { }, queueChildren, heartbeat, leaseMs = DEFAULT_CLAIM_LEASE_MS, hostId = defaultClaimantId(), reapWorktree = async () => { }, closeParkedPr = async () => { }, sweepFinished = async () => { }, activeIssues = new Set(), countRemaining, baseHoldGate, loadGuard, diskGuard, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), now = () => new Date(), laneBreakerThreshold = 0, commentIssue = async () => { }, octokit: getOctokit, runId = '-', readParkSha = () => Promise.reject(new Error('no park sha reader')), providerBreaker = restoredLoggingBreaker(paths.breaker, paths.events, '-', lane, emitEvent), configStamp = () => {
18
21
  try {
19
22
  const st = statSync(paths.config);
20
23
  return `${st.mtimeMs}:${st.size}`;
@@ -38,9 +41,8 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
38
41
  // Issues still pending on this lane after `index`, in queue order (#3511).
39
42
  const queuedBehind = (index) => pending.slice(index + 1).map((c) => c.issue);
40
43
  const seen = new Set(issues);
41
- // Truthful park-time remaining count (#1222): local pending plus the lane's still-queued
42
- // remote issues. Fail-closed — a count lookup may never change the message beyond the
43
- // local truth, and never lane flow.
44
+ // Truthful park-time remaining count (#1222): local pending plus the lane's still-queued remote issues.
45
+ // Fail-closed — a count lookup may never change the message beyond the local truth, nor lane flow.
44
46
  const remainingAfter = async (index) => {
45
47
  const local = pending.length - index - 1;
46
48
  if (!countRemaining)
@@ -52,8 +54,7 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
52
54
  return local;
53
55
  }
54
56
  };
55
- // Every terminal outcome releases the claim, then gives finished worktrees a GC pass before
56
- // the lane moves on (#1757). The pass is fail-closed and must never change lane flow.
57
+ // Every terminal outcome releases the claim, then GCs finished worktrees (#1757); fail-closed, never changes flow.
57
58
  const settle = async (issue, outcome) => {
58
59
  // Drop the in-flight mark first so this lane's own finished worktree stays reapable.
59
60
  activeIssues.delete(issue);
@@ -64,9 +65,8 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
64
65
  };
65
66
  // A park raised outside runIssue upserts the issue park comment (#3534); fail-closed, never changes lane flow.
66
67
  const postParkComment = laneParkCommenter({ getOctokit, ghRepo, repoRoot, runId, lane, readParkSha }, (issue, m) => emitEvent(paths.events, 'warn', issue, m, { lane }));
67
- const pauseCtx = { lane, paths, emitEvent };
68
- // A parked release adds factory:parked (#3424). Log the clean park only once the label
69
- // landed; a rejected add is surfaced as a fail event naming the issue and label (#3425).
68
+ const pauseCtx = { lane, paths, emitEvent, now };
69
+ // A parked release adds factory:parked (#3424). Log the clean park once the label landed; a rejected add fails (#3425).
70
70
  const parkAndSettle = async (issue, parkedMsg, park) => {
71
71
  activeIssues.delete(issue);
72
72
  try {
@@ -81,24 +81,19 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
81
81
  await sweepFinished(issue).catch(() => { });
82
82
  return true;
83
83
  };
84
- const decide = (guard) => {
85
- try {
86
- return guard();
87
- }
88
- catch {
89
- return { kind: 'claim' };
84
+ const emitAwaitingCi = (kind, issue, message) => emitEvent(paths.events, kind, issue, message, { lane });
85
+ // #3208: parks an awaiting-ci PR through the lane's park path: reason event, issue comment, worktree reap, label.
86
+ const parkAwaitingCi = async (rec, reason, message) => {
87
+ emitAwaitingCi(reason, rec.issue, message);
88
+ await postParkComment(rec.issue, reason, message, rec.branch);
89
+ await reapWorktree(rec.issue).catch(() => { });
90
+ const msg = `issue #${rec.issue} parked (${reason}); lane '${lane}' continuing`;
91
+ if (!(await parkAndSettle(rec.issue, msg, parkPayload(reason, rec.issue, lane, [])))) {
92
+ throw new Error(`could not park issue #${rec.issue}`);
90
93
  }
94
+ parked++;
91
95
  };
92
- const holdForLoad = async (guard) => {
93
- for (let d = decide(guard); d.kind === 'hold'; d = decide(guard)) {
94
- const retryAt = new Date(now().getTime() + d.retryMs);
95
- emitEvent(paths.events, 'warn', lane, formatLoadHold(lane, d, retryAt), { lane });
96
- await sleep(d.retryMs);
97
- if (pathExists(paths.stop))
98
- return 'stopped';
99
- }
100
- return 'claim';
101
- };
96
+ const diskIo = { lane, paths, emitEvent, now, sleep, pathExists };
102
97
  for (let i = 0;; i++) {
103
98
  if (await waitForProviderReset(pauseCtx, providerPauseUntil, now, sleep, pathExists))
104
99
  return;
@@ -110,20 +105,27 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
110
105
  }
111
106
  providersDownWatch = undefined;
112
107
  if (i >= pending.length) {
113
- // A persisted base hold on the unchanged origin/main SHA means the base is still broken
114
- // (#2349): claiming would just cycle an issue again, so stop this lane without claiming.
108
+ // A persisted base hold on the unchanged origin/main SHA means the base is still broken (#2349):
109
+ // stop this lane without claiming.
115
110
  const gate = baseHoldGate ? await baseHoldGate().catch(() => ({ kind: 'claim' })) : null;
116
111
  if (gate?.kind === 'hold') {
117
112
  emitEvent(paths.events, 'warn', lane, formatBaseHoldKept(lane, gate), { lane });
118
113
  return;
119
114
  }
120
- if (loadGuard && (await holdForLoad(loadGuard)) === 'stopped')
115
+ if (loadGuard && (await holdForLoad(loadGuard, diskIo)) === 'stopped')
116
+ break;
117
+ if (diskGuard && (await holdForDisk(diskGuard, diskIo)) === 'stopped')
121
118
  break;
122
119
  if (pollReviewRework) {
123
120
  await pollReviewRework().catch((err) => emitEvent(paths.events, 'warn', lane, `review-rework poll failed: ${shipRuntime().errorDetail(err)}`, {
124
121
  lane,
125
122
  }));
126
123
  }
124
+ if (recheckAwaitingCi) {
125
+ await recheckAwaitingCi({ park: parkAwaitingCi, emit: emitAwaitingCi }).catch((err) => emitEvent(paths.events, 'warn', lane, `awaiting-ci recheck failed: ${shipRuntime().errorDetail(err)}`, {
126
+ lane,
127
+ }));
128
+ }
127
129
  const claimed = await claimNext();
128
130
  if (claimed === null)
129
131
  break;
@@ -138,6 +140,11 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
138
140
  await releaseIssue(issue, 'queued');
139
141
  return;
140
142
  }
143
+ const lease = createClaimLease(issue, {
144
+ leaseMs,
145
+ now: () => now().getTime(),
146
+ onRenewFailed: laneRenewLogger(emitEvent, paths.events, lane, issue),
147
+ });
141
148
  const parkIssue = async (reason) => {
142
149
  emitEvent(paths.events, 'escalate', issue, reason, { lane });
143
150
  const msg = `issue #${issue} parked (${reason}); lane '${lane}' continuing, ${await remainingAfter(i)} issue(s) remaining`;
@@ -149,22 +156,7 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
149
156
  parked++;
150
157
  streak = null;
151
158
  };
152
- const runRestack = async (merged) => {
153
- try {
154
- const out = await withHeartbeat(issue, heartbeat, () => restack(issue, merged));
155
- if (out.status === 'park')
156
- return { parkReason: out.reason, note: out.reason };
157
- return {
158
- note: out.status === 'restacked'
159
- ? `restacked slice(s) ${out.slices.map((r) => r.index).join(', ')} onto main after slice ${merged.index} merged`
160
- : out.reason,
161
- };
162
- }
163
- catch (err) {
164
- const reason = `restack failed: ${shipRuntime().errorDetail(err)}`;
165
- return { parkReason: reason, note: reason };
166
- }
167
- };
159
+ const runRestack = (merged) => restackUnderHeartbeat(issue, heartbeat, restack, merged);
168
160
  if (decision.kind === 'park') {
169
161
  await parkIssue(decision.reason);
170
162
  continue;
@@ -187,7 +179,7 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
187
179
  try {
188
180
  const branch = decision.kind === 'adopt'
189
181
  ? decision.branch
190
- : await withHeartbeat(issue, heartbeat, () => ship(issue, {}, {
182
+ : await withHeartbeat(issue, heartbeat, (signal) => ship(issue, {}, {
191
183
  repoRoot,
192
184
  ghRepo,
193
185
  paths,
@@ -196,7 +188,8 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
196
188
  onOutcome: (o) => {
197
189
  sliceOutcome.value = o;
198
190
  },
199
- }));
191
+ signal,
192
+ }), lease);
200
193
  landBranch = branch;
201
194
  const shipped = sliceOutcome.value;
202
195
  if (shipped?.state === 'released' && shipped.reason === 'stack-wait') {
@@ -237,7 +230,7 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
237
230
  if (layer) {
238
231
  // ADR-0161: land exactly this layer's branch, record it, and re-queue for the next layer.
239
232
  landing = branch;
240
- await withHeartbeat(issue, heartbeat, () => waitMerge(issue, branch, repoRoot, ghRepo, paths, { landBranch: branch }));
233
+ await withHeartbeat(issue, heartbeat, (signal) => waitMerge(issue, branch, repoRoot, ghRepo, paths, { landBranch: branch, signal }), lease);
241
234
  await recordStackMerge(issue, layer.prNumber).catch((err) => emitEvent(paths.events, 'warn', issue, `slice ${layer.index}/${layer.count} merged but recording it failed: ${shipRuntime().errorDetail(err)}`, { lane }));
242
235
  merged++;
243
236
  if (layer.index < layer.count) {
@@ -253,23 +246,47 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
253
246
  continue;
254
247
  }
255
248
  landing = branch;
256
- await withHeartbeat(issue, heartbeat, () => waitMerge(issue, branch, repoRoot, ghRepo, paths, {
249
+ await withHeartbeat(issue, heartbeat, (signal) => waitMerge(issue, branch, repoRoot, ghRepo, paths, {
257
250
  syncMain: decision.kind === 'adopt' && decision.syncMain === true,
258
- }));
251
+ signal,
252
+ }), lease);
259
253
  merged++;
260
254
  streak = null;
261
255
  await settle(issue, 'done');
262
256
  }
263
257
  catch (err) {
264
258
  const { LaneParkError, LaneEnvironmentPauseError, IssueSkippedError, IssueDecomposedError } = shipRuntime();
259
+ if (err instanceof ClaimLostError) {
260
+ // #3146: another host owns the claim. Keep the worktree; never release, reap, comment or park.
261
+ onClaimLost(err, emitEvent, paths.events, lane, hostId, runId);
262
+ activeIssues.delete(issue);
263
+ streak = null;
264
+ continue;
265
+ }
265
266
  if (err instanceof AwaitingReviewError) {
266
- // The land path already emitted the awaiting-review event and cleaned the
267
- // worktree — this is a clean outcome, not a park; move to the next issue.
267
+ // The land path already emitted awaiting-review and cleaned the worktree: a clean outcome, not a park.
268
268
  awaitingReview++;
269
269
  streak = null;
270
270
  await settle(issue, layer && layer.index < layer.count ? 'queued' : 'done');
271
271
  continue;
272
272
  }
273
+ if (err instanceof AwaitingCiError) {
274
+ // #3208: no CI run ever registered. Keep the PR open and record it for the backoff re-check; never a park.
275
+ const firstSeenAt = now().getTime();
276
+ const rec = { issue, prNumber: err.prNumber, branch: landBranch ?? '', headSha: err.headSha, firstSeenAt };
277
+ await recordAwaitingCi?.({ ...rec, attempts: 0, nextRecheckAt: nextRecheckAt(firstSeenAt, 0) }).catch((e) => emitAwaitingCi('warn', issue, `could not record awaiting-ci for PR #${err.prNumber}: ${shipRuntime().errorDetail(e)}`));
278
+ emitAwaitingCi('awaiting-ci', issue, `PR #${err.prNumber} awaiting CI on ${err.headSha}; re-checking soon`);
279
+ awaitingReview++;
280
+ streak = null;
281
+ await settle(issue, 'done');
282
+ continue;
283
+ }
284
+ if (err instanceof AwaitMergeStoppedError) {
285
+ emitEvent(paths.events, 'await-merge-stopped', issue, `${err.message}; re-queued (#3291)`, { lane });
286
+ streak = null;
287
+ await settle(issue, 'queued');
288
+ continue;
289
+ }
273
290
  if (err instanceof IssueSkippedError) {
274
291
  // shipIssue already emitted skipped-already-closed; nothing was attempted.
275
292
  skipped++;
@@ -311,10 +328,8 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
311
328
  }
312
329
  const reason = parkReasonFor(err);
313
330
  const logSuffix = /(?:^|\n)(Run logs: [^\r\n]+)$/.exec(String(err instanceof Error ? err.message : ''))?.[1];
314
- // Terminal reason events (escalate/timeout/fail/conflict) are emitted exactly
315
- // once by the layer that detects the failure — shipIssue for pipeline failures,
316
- // the land path for merge failures. runLane owns only lane-lifecycle events
317
- // (stopped/parked/lane-done), so injected ship functions never change ownership.
331
+ // Terminal reason events (escalate/timeout/fail/conflict) are emitted once by the detecting layer (shipIssue
332
+ // for pipeline failures, the land path for merge failures); runLane owns only lane-lifecycle events.
318
333
  // A blocked park waits on a filed blocker (#2315); it never counts toward the lane breaker.
319
334
  const signature = err instanceof LaneParkError && err.reason !== 'blocked' ? err.failureSignature : undefined;
320
335
  const checks = err instanceof LaneParkError ? (err.failingChecks ?? []) : [];
@@ -1 +1 @@
1
- {"version":3,"file":"run-lane.js","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-lane.js","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAyB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAY,EACZ,MAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,KAAyC,EACzC,IAAI,GAAgB,EAAE;IAEtB,MAAM,EACJ,IAAI,GAAG,SAAS,EAChB,SAAS,GAAG,YAAY,EACxB,gBAAgB,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EACjC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAC1E,UAAU,GAAG,UAAU,EACvB,SAAS,GAAG,QAAQ,EACpB,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAC7B,aAAa,EACb,SAAS,EACT,OAAO,GAAG,sBAAsB,EAChC,MAAM,GAAG,iBAAiB,EAAE,EAC5B,YAAY,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAC7B,aAAa,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAC9B,aAAa,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAC9B,YAAY,GAAG,IAAI,GAAG,EAAU,EAChC,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EACjE,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACtB,oBAAoB,GAAG,CAAC,EACxB,YAAY,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAC7B,OAAO,EAAE,UAAU,EACnB,KAAK,GAAG,GAAG,EACX,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,EACnE,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,EAC3F,WAAW,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,GACF,GAAG,IAAI,CAAC;IACT,uHAAuH;IACvH,IAAI,kBAAsC,CAAC;IAC3C,iJAAiJ;IACjJ,IAAI,kBAA4E,CAAC;IACjF,IAAI,MAAM,GAA6F,IAAI,CAAC;IAC5G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,UAAU,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAiB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,2EAA2E;IAC3E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,wGAAwG;IACxG,mGAAmG;IACnG,MAAM,cAAc,GAAG,KAAK,EAAE,KAAa,EAAmB,EAAE;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,KAAK,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,mHAAmH;IACnH,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,OAA4B,EAAiB,EAAE;QAClF,qFAAqF;QACrF,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,QAAQ;YACtB,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/G,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,+GAA+G;IAC/G,MAAM,eAAe,GAAG,iBAAiB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACjH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CACpD,CAAC;IACF,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACjD,wHAAwH;IACxH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,SAAiB,EAAE,IAAiB,EAAoB,EAAE;QACpG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,EACL,UAAU,KAAK,sCAAsC,YAAY,MAAM,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,IAAI,cAAc,EACnI,EAAE,IAAI,EAAE,CACT,CAAC;YACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,IAAe,EAAE,KAAa,EAAE,OAAe,EAAQ,EAAE,CAC/E,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,kHAAkH;IAClH,MAAM,cAAc,GAAG,KAAK,EAC1B,GAAqB,EACrB,MAA4B,EAC5B,OAAe,EACA,EAAE;QACjB,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,KAAK,YAAY,MAAM,YAAY,IAAI,cAAc,CAAC;QAChF,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE,EAAE,CAAC;QACtB,IAAI,MAAM,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;YAAE,OAAO;QAC7F,kBAAkB,GAAG,SAAS,CAAC;QAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC;QACjC,IACE,KAAK;YACL,CAAC,MAAM,wBAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,EAC/G,CAAC;YACD,OAAO;QACT,CAAC;QACD,kBAAkB,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,iGAAiG;YACjG,mCAAmC;YACnC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,KAAK,CAAC,GAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3G,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YACD,IAAI,SAAS,IAAI,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS;gBAAE,MAAM;YAC7E,IAAI,SAAS,IAAI,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS;gBAAE,MAAM;YAC7E,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBACpG,IAAI;iBACL,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACpF,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBACrG,IAAI;iBACL,CAAC,CACH,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE;YACpC,OAAO;YACP,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC1B,aAAa,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;SACrE,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;YACxD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,UAAU,KAAK,YAAY,MAAM,YAAY,IAAI,iBAAiB,MAAM,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAC3H,MAAM,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1G,sFAAsF;YACtF,kDAAkD;YAClD,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,MAAM,EAAE,CAAC;YACrG,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,MAA2C,EAAE,EAAE,CACjE,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;YAClG,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GACV,QAAQ,CAAC,IAAI,KAAK,OAAO;gBACvB,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,MAAM,aAAa,CACjB,KAAK,EACL,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CACF,KAAK,EACL,EAAE,EACF;oBACE,QAAQ;oBACR,MAAM;oBACN,KAAK;oBACL,IAAI;oBACJ,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;oBAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;oBACzB,CAAC;oBACD,MAAM;iBACP,CACF,EACH,KAAK,CACN,CAAC;YACR,UAAU,GAAG,MAAM,CAAC;YACpB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;YACnC,IAAI,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACrE,yFAAyF;gBACzF,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvE,oFAAoF;gBACpF,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvE,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClD,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,+DAA+D;gBACjH,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC7F,mFAAmF;gBACnF,oCAAoC;gBACpC,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChD,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,EACL,OAAO,OAAO,CAAC,QAAQ,kGAAkG,EACzH,EAAE,IAAI,EAAE,CACT,CAAC;gBACF,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,0FAA0F;gBAC1F,OAAO,GAAG,MAAM,CAAC;gBACjB,MAAM,aAAa,CACjB,KAAK,EACL,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAC7F,KAAK,CACN,CAAC;gBACF,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1D,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,EACL,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,oCAAoC,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EACvG,EAAE,IAAI,EAAE,CACT,CACF,CAAC;gBACF,MAAM,EAAE,CAAC;gBACT,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBAClC,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACjC,SAAS;oBACX,CAAC;oBACD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YACD,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,aAAa,CACjB,KAAK,EACL,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CACT,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;gBAChD,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;gBACjE,MAAM;aACP,CAAC,EACJ,KAAK,CACN,CAAC;YACF,MAAM,EAAE,CAAC;YACT,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;YAC5G,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,+FAA+F;gBAC/F,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC/D,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACvC,uGAAuG;gBACvG,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5E,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,2GAA2G;gBAC3G,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC3G,MAAM,gBAAgB,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1G,cAAc,CACZ,MAAM,EACN,KAAK,EACL,wCAAwC,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CACxF,CACF,CAAC;gBACF,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,QAAQ,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC;gBAC5G,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,sBAAsB,EAAE,CAAC;gBAC1C,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrG,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;gBACrC,2EAA2E;gBAC3E,OAAO,EAAE,CAAC;gBACV,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;gBACxC,yEAAyE;gBACzE,gFAAgF;gBAChF,wFAAwF;gBACxF,4FAA4F;gBAC5F,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC;gBAChC,IAAI,aAAa,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACnD,aAAa,EACb,KAAK,EACL,GAAG,CAAC,WAAW,EACf,IAAI,EACJ,KAAK,CAAC,MAAM,EACZ,SAAS,CACV,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACnD,IAAI,KAAK,EAAE,CAAC;oBACV,UAAU,EAAE,CAAC;oBACb,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,iBAAiB,EACjB,KAAK,EACL,SAAS,IAAI,qBAAqB,KAAK,CAAC,MAAM,gCAAgC,KAAK,EAAE,EACrF,EAAE,IAAI,EAAE,CACT,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,+EAA+E;gBAC/E,sEAAsE;gBACtE,MAAM,GAAG,IAAI,CAAC;gBACd,uEAAuE;gBACvE,IAAI,CAAC,GAAG,CAAC,cAAc;oBAAE,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACnE,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9B,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1D,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7G,6GAA6G;YAC7G,qGAAqG;YACrG,4FAA4F;YAC5F,MAAM,SAAS,GAAG,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9G,MAAM,MAAM,GAAG,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,SAAS;gBAAE,MAAM,GAAG,IAAI,CAAC;iBACzB,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;;gBAC7D,MAAM,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,oBAAoB,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,oBAAoB,CAAC;YACpG,MAAM,GAAG,GAAG,UAAU,KAAK,YAAY,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAChF,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC,CAAC,SAAS,IAAI,cAClE,KAAK,MAAM,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAClD,mFAAmF;YACnF,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YACrG,CAAC;YACD,kFAAkF;YAClF,8EAA8E;YAC9E,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvF,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,MAAM,EAAE,CAAC;YACjG,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACnG,IAAI,MAAM,KAAK,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBAC5C,4BAA4B,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpD,kBAAkB,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC;gBAC/E,SAAS;YACX,CAAC;YACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YACD,SAAS;QACX,CAAC;IACH,CAAC;IACD,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,WAAW,EACX,IAAI,EACJ,kBAAkB,MAAM,YAAY,cAAc,qBAAqB,OAAO,aAAa,UAAU,gBAAgB,MAAM,UAAU,EACrI,EAAE,IAAI,EAAE,CACT,CAAC;AACJ,CAAC"}
package/dist/cli/run.d.ts CHANGED
@@ -27,6 +27,7 @@ export interface RunRuntime {
27
27
  runAutoWorktreeGc: (repoRoot: string, paths: ReturnType<typeof getFactoryPaths>, ghRepo: string, eventScope: string | number) => Promise<void>;
28
28
  sweepStaleLaneClaims: (paths: ReturnType<typeof getFactoryPaths>, ghRepo: string) => Promise<void>;
29
29
  sweepOrphanDrafts: (paths: ReturnType<typeof getFactoryPaths>, ghRepo: string) => Promise<void>;
30
+ reapExpiredClaims: (paths: ReturnType<typeof getFactoryPaths>, ghRepo: string) => Promise<void>;
30
31
  planRunLanes: typeof planRunLanes;
31
32
  preflightQueuedIssue: typeof preflightQueuedIssue;
32
33
  createQueuePreflightOps: typeof createQueuePreflightOps;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
package/dist/cli/run.js CHANGED
@@ -3,14 +3,17 @@ import { randomUUID } from 'node:crypto';
3
3
  import { existsSync, readFileSync } from 'node:fs';
4
4
  import { styleText } from 'node:util';
5
5
  import { LaneFileGuard, applyRepoConfig, clearProxyState, getFactoryPaths, provisionLaneContainer, resolveCodexDisabled, resolveEffectiveBuildRoute, resolveEnvironmentProxy, resolveLaneBreakerThreshold, resolveMergePolicy, resolveSizeGateMode, } from '@on-par/factory-core';
6
- import { createDockerEngine, createGithubQueue, createFileIterateStore, createFileReviewReworkStore, createOctokitCollaboratorPermissionClient, createOctokitQueueClient, createOctokitIterateGitHub, createOctokitReviewReworkGitHub, evaluateLoadGuard, formatQueueOrderConflict, logEvent, parkPayload, pollIterateCommands, pollReviewRework, publishParkComment, readHostLoad, recordSliceMerged, resolveBaseHealthChecks, resolveHostLoadGuard, resolveLocalOnly, resolveMaxReviewReworkRuns, resolveQueueClaimSettleMs, resolveRunUsageHarness, settleParkedPullRequest, slugify, withAdmissionGuard, } from '@on-par/factory-core/internal';
6
+ import { createDockerEngine, createGithubQueue, createFileIterateStore, createFileReviewReworkStore, createOctokitCollaboratorPermissionClient, createOctokitQueueClient, createOctokitIterateGitHub, createOctokitReviewReworkGitHub, formatQueueOrderConflict, logEvent, parkPayload, pollIterateCommands, pollReviewRework, publishParkComment, recordSliceMerged, resolveBaseHealthChecks, resolveLocalOnly, resolveMaxReviewReworkRuns, resolveQueueClaimSettleMs, resolveRunUsageHarness, settleParkedPullRequest, slugify, withAdmissionGuard, } from '@on-par/factory-core/internal';
7
7
  import { admissionStateReaderFor } from './admission.js';
8
8
  import { baseChecksVerdict } from './base-health-ci.js';
9
9
  import { createBaseHoldGate, formatBaseHoldCleared } from './base-hold.js';
10
10
  import { keychainPreflightError } from './doctor.js';
11
+ import { awaitingCiLaneDeps } from './awaiting-ci-wiring.js';
11
12
  import { runEndOfRunKpiSnapshot } from './kpi-sweep.js';
12
13
  import { waitForMerge } from './land.js';
13
- import { DRAIN_MESSAGE, createNotifier, resolveNotifyCommand, withParkNotify } from './notify.js';
14
+ import { hostClaimGuards } from './host-claim-guards.js';
15
+ import { DRAIN_MESSAGE, createNotifier, resolveNotifyCommand, withDiskLowNotify, withParkNotify } from './notify.js';
16
+ import { createDeferralTracker, settleDeferredOnly } from './queue-startup.js';
14
17
  import { runLane } from './run-lane.js';
15
18
  import { restackFromSlicePlan } from './run-restack.js';
16
19
  import { writeRunFlagOverrides } from './run-flags.js';
@@ -21,7 +24,7 @@ export async function cmdRun(opts, rt) {
21
24
  const paths = getFactoryPaths(repoRoot);
22
25
  const branchPrefix = rt.branchPrefixOrExit(opts.branchPrefix);
23
26
  return rt.withRepoRunLock(paths, 'factory run', async () => {
24
- const deferredIssues = new Set();
27
+ const deferrals = createDeferralTracker(paths.events);
25
28
  const runStartedAt = new Date().toISOString();
26
29
  const stopStatus = readStopFileStatus(paths);
27
30
  if (stopStatus.present) {
@@ -43,6 +46,8 @@ export async function cmdRun(opts, rt) {
43
46
  }
44
47
  await rt.runAutoWorktreeGc(repoRoot, paths, ghRepo, 'all');
45
48
  await rt.sweepStaleLaneClaims(paths, ghRepo);
49
+ if (opts.localQueue !== true)
50
+ await rt.reapExpiredClaims(paths, ghRepo);
46
51
  await rt.sweepOrphanDrafts(paths, ghRepo);
47
52
  const { lanes, diagnostics } = await rt.planRunLanes({
48
53
  localQueue: opts.localQueue === true,
@@ -62,12 +67,7 @@ export async function cmdRun(opts, rt) {
62
67
  resolveMergePolicy(factoryConfig, process.env, { auto: opts.autoMerge }).auto,
63
68
  stackMode: resolveSizeGateMode(factoryConfig) === 'stack',
64
69
  laneFileHold: (n) => new LaneFileGuard(paths.laneFiles).liveHold(ghRepo, n),
65
- onDeferred: (issue, message) => {
66
- if (deferredIssues.has(issue))
67
- return;
68
- deferredIssues.add(issue);
69
- logEvent(paths.events, 'issue_deferred', issue, message);
70
- },
70
+ onDeferred: deferrals.onDeferred,
71
71
  })),
72
72
  onConflict: (issue, verdict) => {
73
73
  const line = `#${issue} refused — ${verdict.reason} | repair: ${verdict.repair}`;
@@ -84,7 +84,6 @@ export async function cmdRun(opts, rt) {
84
84
  },
85
85
  });
86
86
  rt.warnQueueDiagnostics(diagnostics);
87
- const loadGuardPolicy = resolveHostLoadGuard(factoryConfig);
88
87
  let knobs;
89
88
  let laneBreakerThreshold;
90
89
  let baseHealthChecks;
@@ -233,16 +232,19 @@ export async function cmdRun(opts, rt) {
233
232
  }
234
233
  pids.push(runLane(planned.lane, planned.issues, repoRoot, ghRepo, paths, {
235
234
  ...planned.deps,
236
- ...(notifier ? { emitEvent: withParkNotify(logEvent, notifier) } : {}),
235
+ ...(notifier ? { emitEvent: withDiskLowNotify(withParkNotify(logEvent, notifier), notifier) } : {}),
237
236
  laneBreakerThreshold,
238
237
  octokit: opts.localQueue === true ? undefined : () => rt.getOctokit(),
239
238
  pollReviewRework: opts.localQueue === true ? undefined : pollReviewReworkOnce,
239
+ ...(opts.localQueue === true
240
+ ? {}
241
+ : awaitingCiLaneDeps(() => rt.getOctokit(), ghRepo, paths, factoryConfig)),
240
242
  runId,
241
243
  readParkSha: (branch) => rt.shellOps
242
244
  .exec(`git rev-parse --verify ${JSON.stringify(`refs/remotes/origin/${branch}`)}`, { cwd: repoRoot })
243
245
  .then((r) => r.stdout.trim()),
244
246
  activeIssues: inFlightIssues,
245
- loadGuard: opts.localQueue === true ? undefined : () => evaluateLoadGuard(loadGuardPolicy, readHostLoad()),
247
+ ...hostClaimGuards(factoryConfig, { repoRoot, ghRepo, stateRoot: paths.root }, opts.localQueue === true),
246
248
  baseHoldGate: opts.localQueue === true
247
249
  ? undefined
248
250
  : createBaseHoldGate({
@@ -289,6 +291,8 @@ export async function cmdRun(opts, rt) {
289
291
  await Promise.allSettled(pids);
290
292
  controller.abort();
291
293
  await watchdog;
294
+ if (opts.localQueue !== true)
295
+ await settleDeferredOnly(paths, ghRepo, rt.getOctokit, lanes, deferrals.prerequisite);
292
296
  logEvent(paths.events, 'run-done', 'all', 'all lanes finished');
293
297
  if (notifier) {
294
298
  notifier.notify({