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

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 (143) 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 +24 -23
  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-park-comment.d.ts.map +1 -1
  57. package/dist/cli/lane-park-comment.js +2 -1
  58. package/dist/cli/lane-park-comment.js.map +1 -1
  59. package/dist/cli/lane-pause.d.ts +6 -1
  60. package/dist/cli/lane-pause.d.ts.map +1 -1
  61. package/dist/cli/lane-pause.js +30 -0
  62. package/dist/cli/lane-pause.js.map +1 -1
  63. package/dist/cli/model-override-messages.d.ts +5 -1
  64. package/dist/cli/model-override-messages.d.ts.map +1 -1
  65. package/dist/cli/model-override-messages.js +9 -1
  66. package/dist/cli/model-override-messages.js.map +1 -1
  67. package/dist/cli/notify.d.ts +12 -0
  68. package/dist/cli/notify.d.ts.map +1 -1
  69. package/dist/cli/notify.js +28 -0
  70. package/dist/cli/notify.js.map +1 -1
  71. package/dist/cli/queue-preflight.d.ts +4 -2
  72. package/dist/cli/queue-preflight.d.ts.map +1 -1
  73. package/dist/cli/queue-preflight.js +1 -1
  74. package/dist/cli/queue-preflight.js.map +1 -1
  75. package/dist/cli/queue-startup.d.ts +57 -0
  76. package/dist/cli/queue-startup.d.ts.map +1 -1
  77. package/dist/cli/queue-startup.js +64 -1
  78. package/dist/cli/queue-startup.js.map +1 -1
  79. package/dist/cli/repo-live-run-lock.d.ts +7 -0
  80. package/dist/cli/repo-live-run-lock.d.ts.map +1 -0
  81. package/dist/cli/repo-live-run-lock.js +14 -0
  82. package/dist/cli/repo-live-run-lock.js.map +1 -0
  83. package/dist/cli/repo-run-lock.d.ts +14 -0
  84. package/dist/cli/repo-run-lock.d.ts.map +1 -0
  85. package/dist/cli/repo-run-lock.js +27 -0
  86. package/dist/cli/repo-run-lock.js.map +1 -0
  87. package/dist/cli/reset.d.ts.map +1 -1
  88. package/dist/cli/reset.js +2 -2
  89. package/dist/cli/reset.js.map +1 -1
  90. package/dist/cli/run-branch.js +1 -1
  91. package/dist/cli/run-branch.js.map +1 -1
  92. package/dist/cli/run-lane-deps.d.ts +16 -1
  93. package/dist/cli/run-lane-deps.d.ts.map +1 -1
  94. package/dist/cli/run-lane-disk-hold.d.ts +14 -0
  95. package/dist/cli/run-lane-disk-hold.d.ts.map +1 -0
  96. package/dist/cli/run-lane-disk-hold.js +25 -0
  97. package/dist/cli/run-lane-disk-hold.js.map +1 -0
  98. package/dist/cli/run-lane-load-hold.d.ts +14 -0
  99. package/dist/cli/run-lane-load-hold.d.ts.map +1 -0
  100. package/dist/cli/run-lane-load-hold.js +22 -0
  101. package/dist/cli/run-lane-load-hold.js.map +1 -0
  102. package/dist/cli/run-lane-restack.d.ts +13 -0
  103. package/dist/cli/run-lane-restack.d.ts.map +1 -0
  104. package/dist/cli/run-lane-restack.js +21 -0
  105. package/dist/cli/run-lane-restack.js.map +1 -0
  106. package/dist/cli/run-lane.d.ts.map +1 -1
  107. package/dist/cli/run-lane.js +77 -61
  108. package/dist/cli/run-lane.js.map +1 -1
  109. package/dist/cli/run.d.ts +1 -0
  110. package/dist/cli/run.d.ts.map +1 -1
  111. package/dist/cli/run.js +19 -15
  112. package/dist/cli/run.js.map +1 -1
  113. package/dist/cli/self-update-apply.d.ts +1 -1
  114. package/dist/cli/self-update-apply.d.ts.map +1 -1
  115. package/dist/cli/self-update-apply.js +4 -5
  116. package/dist/cli/self-update-apply.js.map +1 -1
  117. package/dist/cli/ship-run-state.d.ts +5 -0
  118. package/dist/cli/ship-run-state.d.ts.map +1 -1
  119. package/dist/cli/ship-run-state.js +18 -1
  120. package/dist/cli/ship-run-state.js.map +1 -1
  121. package/dist/cli/ship-steps.d.ts +4 -2
  122. package/dist/cli/ship-steps.d.ts.map +1 -1
  123. package/dist/cli/ship-steps.js +3 -1
  124. package/dist/cli/ship-steps.js.map +1 -1
  125. package/dist/cli/ship.d.ts +4 -2
  126. package/dist/cli/ship.d.ts.map +1 -1
  127. package/dist/cli/ship.js +11 -17
  128. package/dist/cli/ship.js.map +1 -1
  129. package/dist/cli/status-json.d.ts +1 -0
  130. package/dist/cli/status-json.d.ts.map +1 -1
  131. package/dist/cli/status-json.js +1 -0
  132. package/dist/cli/status-json.js.map +1 -1
  133. package/dist/cli/status.d.ts.map +1 -1
  134. package/dist/cli/status.js +16 -1
  135. package/dist/cli/status.js.map +1 -1
  136. package/dist/cli/steer.js +3 -3
  137. package/dist/cli/steer.js.map +1 -1
  138. package/dist/cli/unpark.d.ts.map +1 -1
  139. package/dist/cli/unpark.js +4 -2
  140. package/dist/cli/unpark.js.map +1 -1
  141. package/package.json +4 -4
  142. package/schemas/logs-line.schema.json +10 -0
  143. package/schemas/status.schema.json +24 -0
@@ -1 +1 @@
1
- {"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
package/dist/cli/land.js CHANGED
@@ -1,11 +1,12 @@
1
1
  // packages/cli/src/cli/land.ts — issue-level land flow: resolve the PR, honor the merge gate, land it (#2784)
2
2
  import { existsSync } from 'node:fs';
3
- import { LaneFileGuard, phaseSnapshotFile, resolveMergePolicy, resolveSandboxPolicy, touchRunActivity, workKeyFromIssue, } from '@on-par/factory-core';
3
+ import { LaneFileGuard, resolveMergePolicy, resolveSandboxPolicy, workKeyFromIssue } from '@on-par/factory-core';
4
4
  import { branchFor, factoryBranchPrefixes, getIssueTitle, isAutoMergeBlocked, LEGACY_BRANCH_PREFIX, logEvent, lookupOpenPrByBranch, lookupOpenPrByIssue, publishRiskReceipt, releaseLaneClaim, resolveEffectiveConfig, resolveFilingPolicy, resolveTrustTier, withFileLock, withGitLock, worktreeSandboxFor, } from '@on-par/factory-core/internal';
5
- import { AwaitingReviewError, CiFailedError, LandConflictError, LandFailureError, MergeGatedError, landOpenPullRequest, } from './land-pr.js';
5
+ import { AwaitMergeStoppedError, AwaitingReviewError, LandConflictError, LandFailureError, MergeGatedError, defaultListIssueLabels, isLandLeftOpen, landOpenPullRequest, } from './land-pr.js';
6
6
  import { enforceRiskAtLand } from './land-risk.js';
7
7
  import { landRuntime } from './land-runtime.js';
8
8
  import { riskPolicyLines } from './risk-policy.js';
9
+ import { touchIssueActivity } from './ship-run-state.js';
9
10
  async function releaseLandedClaim(paths, ghRepo, issue, log) {
10
11
  if (!paths.laneFiles)
11
12
  return;
@@ -41,7 +42,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
41
42
  };
42
43
  [, lookup] = await Promise.all([gitOps.gitFetch(repoRoot), findByGuess()]);
43
44
  if (lookup.status === 'none' && !opts.branch) {
44
- lookup = await lookupOpenPrByIssue({ octokit, repo: ghRepo, issue: issueNum });
45
+ lookup = await lookupOpenPrByIssue({ octokit, repo: ghRepo, issue: workKeyFromIssue(issueNum) });
45
46
  }
46
47
  if (lookup.status === 'error')
47
48
  throw new Error(lookup.detail);
@@ -153,6 +154,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
153
154
  log,
154
155
  skipCI,
155
156
  syncMain: opts.syncMain,
157
+ signal: opts.signal,
156
158
  adminMerge: resolveMergePolicy(landFactoryConfig).admin,
157
159
  withLock: withLandLock,
158
160
  ensureWorktree: async () => {
@@ -163,7 +165,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
163
165
  });
164
166
  }
165
167
  catch (err) {
166
- if (err instanceof AwaitingReviewError || err instanceof CiFailedError) {
168
+ if (isLandLeftOpen(err)) {
167
169
  await withLandLock(() => gitOps.cleanupWorktree(repoRoot, worktree, log, worktreeSandbox));
168
170
  }
169
171
  throw err;
@@ -173,7 +175,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
173
175
  await withLandLock(() => gitOps.cleanupWorktree(repoRoot, worktree, log, worktreeSandbox));
174
176
  }
175
177
  catch (err) {
176
- if (err instanceof LandConflictError || err instanceof AwaitingReviewError || err instanceof CiFailedError)
178
+ if (err instanceof LandConflictError || isLandLeftOpen(err) || opts.signal?.aborted)
177
179
  throw err;
178
180
  log('fail', `merge failed: ${err.message}`);
179
181
  throw new LandFailureError(`merge failed for issue #${issueNum}: ${err.message}`, 5);
@@ -183,7 +185,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
183
185
  export function prLookupFailure(issueNum, branch, err) {
184
186
  return new LandFailureError(`PR lookup failed for issue #${issueNum} (${branch}): ${landRuntime().errorDetail(err)}`, 5);
185
187
  }
186
- export async function isPrMerged(octokit, owner, repoName, branch) {
188
+ export async function latestPrForBranch(octokit, owner, repoName, branch) {
187
189
  const { data: prs } = await octokit.rest.pulls.list({
188
190
  owner,
189
191
  repo: repoName,
@@ -191,18 +193,14 @@ export async function isPrMerged(octokit, owner, repoName, branch) {
191
193
  head: `${owner}:${branch}`,
192
194
  });
193
195
  if (prs.length === 0)
194
- return false;
195
- // Ship-it branch names get reused across separate runs for the same issue
196
- // (e.g. a "verify-and-close" pass recreates the exact branch name an
197
- // earlier, already-merged PR used) — GitHub PR numbers only increase, so
198
- // the highest-numbered PR under this head is always the current one.
199
- // Checking "was ANY PR ever merged under this branch name" (the old
200
- // `state: 'closed'` + `.some()` behavior) matched the stale prior PR and
201
- // falsely reported a brand-new, still-open PR under the same name as
202
- // merged — waitForMerge then logged "landed" and skipped calling land(),
203
- // leaving the real PR open forever while the lane believed it was done.
196
+ return null;
197
+ // Branch names get reused across runs; PR numbers only increase, so the highest-numbered PR is the current one
198
+ // (a stale merged PR under the same name must not make a new open PR look merged).
204
199
  const latest = prs.reduce((newest, pr) => (pr.number > newest.number ? pr : newest));
205
- return Boolean(latest.merged_at);
200
+ return { number: latest.number, merged: Boolean(latest.merged_at) };
201
+ }
202
+ export async function isPrMerged(octokit, owner, repoName, branch) {
203
+ return (await latestPrForBranch(octokit, owner, repoName, branch))?.merged ?? false;
206
204
  }
207
205
  /** queue-preflight only (it must see fork PRs to park them); land uses the core lookup (#3439). */
208
206
  export async function findOpenPRForIssue(octokit, owner, repoName, issueNum) {
@@ -258,12 +256,8 @@ export function isPermanentMergeCheckError(err) {
258
256
  return false;
259
257
  return !looksRateLimited(err);
260
258
  }
261
- async function defaultListIssueLabels(octokit, owner, repo, issue) {
262
- const { data } = await octokit.rest.issues.listLabelsOnIssue({ owner, repo, issue_number: issue });
263
- return data.map((label) => label.name);
264
- }
265
259
  export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps = {}) {
266
- const { createOctokit = landRuntime().getOctokit, pathExists = existsSync, checkMerged = isPrMerged, loadConfig = landRuntime().configLoaders.loadFactoryConfigForRepo, land = landIssue, listIssueLabels = defaultListIssueLabels, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), emitEvent = logEvent, mergeEnabled, writeLine = (line) => console.log(line), now = () => Date.now(), mergeOverrides, landBranch, syncMain, } = deps;
260
+ const { createOctokit = landRuntime().getOctokit, pathExists = existsSync, checkMerged = isPrMerged, lookupPr = latestPrForBranch, loadConfig = landRuntime().configLoaders.loadFactoryConfigForRepo, land = landIssue, listIssueLabels = defaultListIssueLabels, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), emitEvent = logEvent, mergeEnabled, writeLine = (line) => console.log(line), now = () => Date.now(), mergeOverrides, landBranch, syncMain, signal, } = deps;
267
261
  const { configLoaders, errorDetail, LaneParkError } = landRuntime();
268
262
  const factoryConfig = loadConfig(paths.config);
269
263
  const isMergeEnabled = mergeEnabled ?? (() => resolveMergePolicy(factoryConfig, process.env, mergeOverrides).auto);
@@ -275,10 +269,11 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
275
269
  let consecutiveFailures = 0;
276
270
  let firstFailureAt = null;
277
271
  while (!pathExists(paths.stop)) {
272
+ signal?.throwIfAborted();
278
273
  // The merge wait logs nothing on its happy path, so each poll bumps the per-issue heartbeat:
279
274
  // status/TUI staleness rules (ADR-0086, ADR-0093) otherwise read a live wait as a dead run.
280
275
  if (paths.runs)
281
- touchRunActivity(phaseSnapshotFile(paths.runs, issue), new Date().toISOString()).catch(() => { });
276
+ touchIssueActivity(paths.runs, issue).catch(() => { });
282
277
  let merged = false;
283
278
  try {
284
279
  merged = await checkMerged(octokit, owner, repoName, branch);
@@ -326,6 +321,7 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
326
321
  ...(landBranch ? { branch: landBranch } : {}),
327
322
  enforceRisk: true,
328
323
  ...(syncMain ? { syncMain } : {}),
324
+ ...(signal ? { signal } : {}),
329
325
  });
330
326
  await releaseLandedClaim(paths, ghRepo, issue, (type, msg) => emitEvent(paths.events, type, issue, msg));
331
327
  return;
@@ -333,5 +329,10 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
333
329
  writeLine(`[factory] #${issue} awaiting human merge (poll 120s)`);
334
330
  await sleep(120_000);
335
331
  }
332
+ // STOP ended the wait (#3291): a merged PR still lands; an open one goes back to the queue, never released as done.
333
+ const pr = await lookupPr(octokit, owner, repoName, branch).catch(() => null);
334
+ if (!pr?.merged)
335
+ throw new AwaitMergeStoppedError(`STOP during await-merge: PR on ${branch} left open`, branch, pr?.number ?? null);
336
+ emitEvent(paths.events, 'landed', issue, 'PR merged');
336
337
  }
337
338
  //# sourceMappingURL=land.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAE9G,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAWrC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,KAAK,UAAU,kBAAkB,CAC/B,KAAyC,EACzC,MAAc,EACd,KAAa,EACb,GAA2C;IAE3C,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO;IAC7B,MAAM,gBAAgB,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,KAAyC,EACzC,OAAgB,EAChB,MAAgB,EAChB,YAAqB,EACrB,IAAI,GAA+G,EAAE;IAErH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,CACV,IAAe,EACf,GAAW,EACX,KAAkF,EAClF,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAExD,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,oGAAoG;IACpG,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,YAAY,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,4GAA4G;IAC5G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;QACzB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACf,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,MAAM,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,KAAK,IAA2B,EAAE;YACpD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnF,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;YAC5C,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC9D,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,gBAAgB,MAAM,iBAAiB,QAAQ,KAAK,IAAI,4BAA4B,QAAQ,kCAAkC,CAAC;QAC/J,GAAG,CAAC,MAAM,EAAE,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,QAAQ,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,EAAE,kBAAkB,aAAa,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,QAAQ,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,MAAM,iBAAiB,GAAG,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/E,oHAAoH;IACpH,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;IAC5C,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,uBAAuB,QAAQ,0CAA0C,QAAQ,aAAa,SAAS,OAAO,CAC/G,CAAC;QACF,GAAG,CAAC,sBAAsB,EAAE,8BAA8B,QAAQ,SAAS,SAAS,wBAAwB,CAAC,CAAC;IAChH,CAAC;SAAM,CAAC;QACN,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChD,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAC1D,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;aAC3D,CAAC,CAAC;YACH,UAAU,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;YAC3C,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC;gBAAE,KAAK,GAAG,UAAU,QAAQ,gBAAgB,SAAS,EAAE,CAAC;iBACpG,IAAI,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAAE,KAAK,GAAG,OAAO,QAAQ,gBAAgB,SAAS,EAAE,CAAC;QAC1G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,GAAG,6BAA6B,WAAW,CAAC,GAAG,CAAC,6BAA6B,SAAS,OAAO,CAAC;QACrG,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,aAAa,EAAE,iBAAiB,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,IAAI,eAAe,CACvB,mBAAmB,QAAQ,eAAe,QAAQ,KAAK,KAAK,qDAAqD,QAAQ,4CAA4C,EACrK,QAAQ,EACR,QAAQ,EACR,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,OAAO;YACP,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ;YACR,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,GAAG,CACD,MAAM,EACN,gBAAgB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,WAAW,QAAQ,UAAU,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAClH,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,EAAE,6CAA6C,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAC9B,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,MAAM,CAAC,UAAU,CAAC,GAAG,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAChF,CAAC;IACF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,OAAO,EAAE;QACxE,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,eAAe,GAAgC,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,EAAE;QAClG,UAAU,EAAE,iBAAiB,EAAE,UAAU,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,YAAY,GAAa,CAAC,EAAE,EAAE,EAAE,CACpC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CACzB,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE;QAChC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,KAAK,CAAC,SAAS,yBAAyB,GAAG,IAAI,SAAS,EAAE,CAAC;KAC1G,CAAC,CACH,CAAC;IAEJ,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC;YACnC,OAAO;YACP,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,QAAQ;YACf,QAAQ;YACR,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB,CAAC,UAAU,CAAC;YACvC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;YAC3F,MAAM,IAAI,mBAAmB,CAAC,OAAO,QAAQ,sBAAsB,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC;gBACxB,OAAO;gBACP,KAAK;gBACL,QAAQ;gBACR,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,GAAG;gBACH,MAAM;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,KAAK;gBACvD,QAAQ,EAAE,YAAY;gBACtB,cAAc,EAAE,KAAK,IAAI,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1B,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,MAAM,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,QAAQ,EAAE,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC/C,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,YAAY,iBAAiB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,GAAG,CAAC;QAC/F,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,QAAQ,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc,EAAE,GAAY;IAC5E,OAAO,IAAI,gBAAgB,CACzB,+BAA+B,QAAQ,KAAK,MAAM,MAAM,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EACxF,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,MAAc;IAEd,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClD,KAAK;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;KAC3B,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,+GAA+G;IAC/G,mFAAmF;IACnF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,EAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAgB,EAAE,KAAa,EAAE,QAAgB,EAAE,MAAc;IAChG,OAAO,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;AACtF,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,QAAgB;IAEhB,MAAM,OAAO,GAAG,GAAG,CAAC;IACpB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,iBAAiB,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC;IAChE,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClD,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,OAAO;YACjB,IAAI;SACL,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,EAAE,EAAE,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;gBACnB,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;gBACpB,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI;aAClD,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO;YAAE,OAAO,SAAS,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;kGACkG;AAClG,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD;mGACmG;AACnG,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE;iGACiG;AACjG,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,OAAO,GAAI,GAAmE,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;IAC9G,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,4CAA4C,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;+EAC+E;AAC/E,MAAM,UAAU,0BAA0B,CAAC,GAAY;IACrD,MAAM,MAAM,GAAI,GAAmC,EAAE,MAAM,CAAC;IAC5D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAqCD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,MAAc,EACd,KAAyC,EACzC,IAAI,GAAqB,EAAE;IAE3B,MAAM,EACJ,aAAa,GAAG,WAAW,EAAE,CAAC,UAAU,EACxC,UAAU,GAAG,UAAU,EACvB,WAAW,GAAG,UAAU,EACxB,QAAQ,GAAG,iBAAiB,EAC5B,UAAU,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,wBAAwB,EACjE,IAAI,GAAG,SAAS,EAChB,eAAe,GAAG,sBAAsB,EACxC,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAC/E,SAAS,GAAG,QAAQ,EACpB,YAAY,EACZ,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACvC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EACtB,cAAc,EACd,UAAU,EACV,QAAQ,EACR,MAAM,GACP,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,CAAC;IACpE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;IACnH,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5C,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAC5E,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,KAAK,CAAC,IAAI;YAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,mBAAmB,GAAG,CAAC,CAAC;YACxB,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,EAAE,CAAC;YACtB,cAAc,KAAK,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,uDAAuD,MAAM,EAAE,CAAC,CAAC;YAExG,MAAM,SAAS,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,EAAE,GAAG,cAAc,CAAC;YACzC,MAAM,WAAW,GAAG,SAAS,IAAI,6BAA6B,CAAC;YAC/D,MAAM,WAAW,GAAG,mBAAmB,IAAI,oCAAoC,CAAC;YAChF,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,SAAS;oBACvB,CAAC,CAAC,qDAAqD;oBACvD,CAAC,CAAC,GAAG,mBAAmB,8BAA8B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;gBACxF,MAAM,GAAG,GAAG,0BAA0B,MAAM,2CAA2C,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC5G,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAChD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,IAAI,MAAM,GAAa,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,6CAA6C,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxG,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC7C,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,aAAa,EACb,KAAK,EACL,yBAAyB,YAAY,CAAC,YAAY,4BAA4B,CAC/E,CAAC;gBACF,SAAS,CACP,cAAc,KAAK,sBAAsB,YAAY,CAAC,YAAY,qCAAqC,CACxG,CAAC;gBACF,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;gBACrE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,WAAW,EAAE,IAAI;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QAED,SAAS,CAAC,cAAc,KAAK,mCAAmC,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,oHAAoH;IACpH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,EAAE,MAAM;QACb,MAAM,IAAI,sBAAsB,CAAC,kCAAkC,MAAM,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IACrH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC"}
@@ -1,7 +1,35 @@
1
+ import type { logEvent } from '@on-par/factory-core/internal';
2
+ /** The issue's claim is no longer ours: the queue said it is gone ('released'), or renewals
3
+ * kept failing past the last confirmed expiry ('lapsed') (#3146). */
4
+ export declare class ClaimLostError extends Error {
5
+ readonly issue: number;
6
+ readonly kind: 'released' | 'lapsed';
7
+ constructor(issue: number, kind: 'released' | 'lapsed');
8
+ }
9
+ /** Lease health of one in-flight issue. `signal` aborts (with the ClaimLostError) once the claim is lost. */
10
+ export interface ClaimLease {
11
+ readonly signal: AbortSignal;
12
+ readonly lost: ClaimLostError | undefined;
13
+ renewed(result: unknown): void;
14
+ renewFailed(err: unknown): void;
15
+ }
16
+ /** Tracks one issue's lease. Only a strict `false` heartbeat result means lost; a thrown renewal is
17
+ * counted and logged, and the lease is lost once `now()` passes the last confirmed expiry. */
18
+ export declare function createClaimLease(issue: number, opts: {
19
+ leaseMs: number;
20
+ now: () => number;
21
+ onRenewFailed: (failures: number, err: unknown) => void;
22
+ }): ClaimLease;
23
+ /** The `onRenewFailed` for a lane's lease: one `lease_renew_failed` event per failed renewal, with the consecutive count. */
24
+ export declare function laneRenewLogger(emit: typeof logEvent, eventsFile: string, lane: string, issue: number): (failures: number, err: unknown) => void;
25
+ /** Emits `claim_lost` for a lane that no longer holds `err.issue`'s claim (#3146). The caller must not release,
26
+ * park or reap: another host owns the issue now, and the worktree is kept. */
27
+ export declare function onClaimLost(err: ClaimLostError, emit: typeof logEvent, eventsFile: string, lane: string, hostId: string, runId: string): void;
1
28
  /** Runs `work` while periodically calling `heartbeat(issue)` so a long-running ship or
2
- * merge wait keeps this claimant's lease fresh. A heartbeat failure is swallowed — losing
3
- * one refresh must never abort the work it is protecting. Before returning or rethrowing, the
29
+ * merge wait keeps this claimant's lease fresh. With a `lease`, every tick result feeds it: a single
30
+ * failed refresh is logged but does not abort, while a lost claim aborts `work`'s signal and
31
+ * surfaces as ClaimLostError (#3146). Before returning or rethrowing, the
4
32
  * timer is cleared and any in-flight tick is awaited, so no heartbeat write overlaps the
5
33
  * caller's release of the claim (#3423). */
6
- export declare function withHeartbeat<T>(issue: number, heartbeat: ((issue: number) => Promise<unknown>) | undefined, work: () => Promise<T>): Promise<T>;
34
+ export declare function withHeartbeat<T>(issue: number, heartbeat: ((issue: number) => Promise<unknown>) | undefined, work: (signal: AbortSignal) => Promise<T>, lease?: ClaimLease): Promise<T>;
7
35
  //# sourceMappingURL=lane-heartbeat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lane-heartbeat.d.ts","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"AAOA;;;;6CAI6C;AAC7C,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAC5D,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
1
+ {"version":3,"file":"lane-heartbeat.d.ts","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAS9D;sEACsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ;IAFtC,YACW,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GAAG,QAAQ,EAIrC;CACF;AAED,6GAA6G;AAC7G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED;+FAC+F;AAC/F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACpG,UAAU,CA4BZ;AAED,6HAA6H;AAC7H,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAS1C;AAED;+EAC+E;AAC/E,wBAAgB,WAAW,CACzB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,OAAO,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CASN;AAED;;;;;6CAK6C;AAC7C,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAC5D,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,KAAK,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
@@ -1,29 +1,97 @@
1
1
  // src/cli/lane-heartbeat.ts — claim-lease heartbeat around an in-flight issue, split from run-lane.ts
2
+ import { shipRuntime } from './ship-runtime.js';
2
3
  /** How often an in-flight issue's claim lease is refreshed (#1500). Well inside the
3
4
  * 15-minute default lease (github-queue.ts's DEFAULT_CLAIM_LEASE_MS) so a normal poll
4
5
  * cadence never lets the lease lapse mid-ship. */
5
6
  const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000;
7
+ /** The issue's claim is no longer ours: the queue said it is gone ('released'), or renewals
8
+ * kept failing past the last confirmed expiry ('lapsed') (#3146). */
9
+ export class ClaimLostError extends Error {
10
+ issue;
11
+ kind;
12
+ constructor(issue, kind) {
13
+ super(`claim on #${issue} lost (${kind})`);
14
+ this.issue = issue;
15
+ this.kind = kind;
16
+ this.name = 'ClaimLostError';
17
+ }
18
+ }
19
+ /** Tracks one issue's lease. Only a strict `false` heartbeat result means lost; a thrown renewal is
20
+ * counted and logged, and the lease is lost once `now()` passes the last confirmed expiry. */
21
+ export function createClaimLease(issue, opts) {
22
+ const controller = new AbortController();
23
+ let confirmedExpiry = opts.now() + opts.leaseMs;
24
+ let failures = 0;
25
+ let lost;
26
+ const lose = (kind) => {
27
+ if (lost)
28
+ return;
29
+ lost = new ClaimLostError(issue, kind);
30
+ controller.abort(lost);
31
+ };
32
+ return {
33
+ signal: controller.signal,
34
+ get lost() {
35
+ return lost;
36
+ },
37
+ renewed(result) {
38
+ if (lost)
39
+ return;
40
+ if (result === false)
41
+ return lose('released');
42
+ confirmedExpiry = opts.now() + opts.leaseMs;
43
+ failures = 0;
44
+ },
45
+ renewFailed(err) {
46
+ if (lost)
47
+ return;
48
+ failures++;
49
+ opts.onRenewFailed(failures, err);
50
+ if (opts.now() >= confirmedExpiry)
51
+ lose('lapsed');
52
+ },
53
+ };
54
+ }
55
+ /** The `onRenewFailed` for a lane's lease: one `lease_renew_failed` event per failed renewal, with the consecutive count. */
56
+ export function laneRenewLogger(emit, eventsFile, lane, issue) {
57
+ return (failures, err) => emit(eventsFile, 'lease_renew_failed', issue, `claim lease renewal for #${issue} failed (${failures} consecutive): ${shipRuntime().errorDetail(err)}`, { lane });
58
+ }
59
+ /** Emits `claim_lost` for a lane that no longer holds `err.issue`'s claim (#3146). The caller must not release,
60
+ * park or reap: another host owns the issue now, and the worktree is kept. */
61
+ export function onClaimLost(err, emit, eventsFile, lane, hostId, runId) {
62
+ const { issue, kind } = err;
63
+ emit(eventsFile, 'claim_lost', issue, `claim on #${issue} lost (${kind}) for host ${hostId}, run ${runId}; stopped before push/PR/merge; worktree kept, issue not released`, { lane, claimLost: { hostId, issue, runId, kind } });
64
+ }
6
65
  /** Runs `work` while periodically calling `heartbeat(issue)` so a long-running ship or
7
- * merge wait keeps this claimant's lease fresh. A heartbeat failure is swallowed — losing
8
- * one refresh must never abort the work it is protecting. Before returning or rethrowing, the
66
+ * merge wait keeps this claimant's lease fresh. With a `lease`, every tick result feeds it: a single
67
+ * failed refresh is logged but does not abort, while a lost claim aborts `work`'s signal and
68
+ * surfaces as ClaimLostError (#3146). Before returning or rethrowing, the
9
69
  * timer is cleared and any in-flight tick is awaited, so no heartbeat write overlaps the
10
70
  * caller's release of the claim (#3423). */
11
- export async function withHeartbeat(issue, heartbeat, work) {
71
+ export async function withHeartbeat(issue, heartbeat, work, lease) {
72
+ if (lease?.lost)
73
+ throw lease.lost;
74
+ const signal = lease?.signal ?? new AbortController().signal;
12
75
  if (!heartbeat)
13
- return work();
76
+ return work(signal);
14
77
  let inFlight;
15
78
  const timer = setInterval(() => {
16
79
  if (inFlight)
17
80
  return;
18
81
  inFlight = Promise.resolve()
19
82
  .then(() => heartbeat(issue))
20
- .then(() => { }, () => { })
83
+ .then((result) => lease?.renewed(result), (err) => lease?.renewFailed(err))
21
84
  .finally(() => {
22
85
  inFlight = undefined;
23
86
  });
24
87
  }, HEARTBEAT_INTERVAL_MS);
25
88
  try {
26
- return await work();
89
+ return await work(signal);
90
+ }
91
+ catch (err) {
92
+ if (lease?.lost)
93
+ throw lease.lost;
94
+ throw err;
27
95
  }
28
96
  finally {
29
97
  clearInterval(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"lane-heartbeat.js","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG;;mDAEmD;AACnD,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5C;;;;6CAI6C;AAC7C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,SAA4D,EAC5D,IAAsB;IAEtB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAmC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE;aACzB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC5B,IAAI,CACH,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,QAAQ,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"lane-heartbeat.js","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lane-park-comment.d.ts","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C;kGACkG;AAClG,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACvD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAED,KAAK,sBAAsB,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF;gEACgE;AAChE,eAAO,MAAM,iBAAiB,SACrB,sBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,aAC/D,MAAM,UAAU,UAAU,WAAW,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAOxF,CAAC"}
1
+ {"version":3,"file":"lane-park-comment.d.ts","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C;kGACkG;AAClG,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACvD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAED,KAAK,sBAAsB,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF;gEACgE;AAChE,eAAO,MAAM,iBAAiB,SACrB,sBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,aAC/D,MAAM,UAAU,UAAU,WAAW,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAOxF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // packages/cli/src/cli/lane-park-comment.ts — upsert the issue park comment for a park raised outside runIssue (#3534)
2
+ import { workKeyFromIssue } from '@on-par/factory-core';
2
3
  import { publishParkComment } from '@on-par/factory-core/internal';
3
4
  const failure = (issue, detail) => `could not post the issue park comment for #${issue}: ${detail}`;
4
5
  /** Upserts the single `factory-issue-state` comment. Fail-closed: returns the warning text
@@ -19,7 +20,7 @@ export const laneParkCommenter = (opts, warn) => async (issue, reason, message,
19
20
  if (!getOctokit)
20
21
  return;
21
22
  const readHead = () => (branch ? readParkSha(branch) : Promise.reject(new Error('no branch')));
22
- const input = { issue, reason, message, runId, branch: branch || '-', lane, blockers: [] };
23
+ const input = { issue: workKeyFromIssue(issue), reason, message, runId, branch: branch || '-', lane, blockers: [] };
23
24
  const failed = await tryPublishParkComment(getOctokit, ghRepo, repoRoot, readHead, input);
24
25
  if (failed)
25
26
  warn(issue, failed);
@@ -1 +1 @@
1
- {"version":3,"file":"lane-park-comment.js","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CACxD,8CAA8C,KAAK,KAAK,MAAM,EAAE,CAAC;AAEnE;kGACkG;AAClG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,QAA+B,EAC/B,KAAwD;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAWD;gEACgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,IAA4B,EAAE,IAA8C,EAAE,EAAE,CACjF,KAAK,EAAE,KAAa,EAAE,MAAkB,EAAE,OAAe,EAAE,MAAe,EAAiB,EAAE;IAC3F,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"lane-park-comment.js","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAEvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,MAAc,EAAU,EAAE,CACzD,8CAA8C,KAAK,KAAK,MAAM,EAAE,CAAC;AAEnE;kGACkG;AAClG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,QAA+B,EAC/B,KAAwD;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAWD;gEACgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,IAA4B,EAAE,IAA8C,EAAE,EAAE,CACjF,KAAK,EAAE,KAAa,EAAE,MAAkB,EAAE,OAAe,EAAE,MAAe,EAAiB,EAAE;IAC3F,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACpH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -1,10 +1,14 @@
1
- import type { getFactoryPaths, LanePausedPayload, ProviderBreaker } from '@on-par/factory-core';
1
+ import type { getFactoryPaths, LanePausedPayload, ProviderBreaker, RunOutcome } from '@on-par/factory-core';
2
2
  import type { logEvent } from '@on-par/factory-core/internal';
3
3
  import type { LaneEnvironmentPauseError } from './lane-environment-pause-error.js';
4
+ type AllProvidersDownPayload = NonNullable<Extract<RunOutcome, {
5
+ reason: 'provider-cap';
6
+ }>['allProvidersDown']>;
4
7
  type LanePauseContext = {
5
8
  lane: string;
6
9
  paths: ReturnType<typeof getFactoryPaths>;
7
10
  emitEvent: typeof logEvent;
11
+ now?: () => Date;
8
12
  };
9
13
  export declare function renderLanePausedComment(payload: LanePausedPayload): string;
10
14
  /** Persists the base hold and emits the environment lane-paused event for a broken base (#1928). */
@@ -13,6 +17,7 @@ export declare function pauseLaneForBrokenBase(ctx: LanePauseContext, issue: num
13
17
  export declare function pauseLaneForProviderCap(ctx: LanePauseContext, issue: number, cap: {
14
18
  providers: string[];
15
19
  resetAt: string;
20
+ allProvidersDown?: AllProvidersDownPayload;
16
21
  }): void;
17
22
  /** Waits (STOP-aware, in slices) until `until` epoch ms; true when the STOP file ended the wait (#3226). */
18
23
  export declare function waitForProviderReset(ctx: LanePauseContext, until: number | undefined, now: () => Date, sleep: (ms: number) => Promise<void>, pathExists: (path: string) => boolean): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC1C,SAAS,EAAE,OAAO,QAAQ,CAAC;CAC5B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAU1E;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,IAAI,GACd,IAAI,CA8BN;AAED,yHAAyH;AACzH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CAmBN;AAED,4GAA4G;AAC5G,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,IAAI,EACf,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACpC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACpC,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,gGAAgG;AAChG,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,wIAAwI;AACxI,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D,IAAI,CAkBN;AAED;2FAC2F;AAC3F,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACnD,IAAI,EAAE;IACJ,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,GACA,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,iGAAiG;AACjG,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,EAC1E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  // packages/cli/src/cli/lane-pause.ts — the lane-paused event, base hold, and comment, moved out of run-lane.ts
2
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
2
4
  import { BASE_HOLD_CI_RECHECK_MS, writeBaseHold } from './base-hold.js';
3
5
  export function renderLanePausedComment(payload) {
4
6
  const checks = payload.failingChecks.length
@@ -38,9 +40,37 @@ export function pauseLaneForBrokenBase(ctx, issue, err, ghRepo, now) {
38
40
  };
39
41
  emitEvent(paths.events, 'lane-paused', lane, `lane '${lane}' paused: #${issue} failed only on checkers that also fail on base ${err.baseSha.slice(0, 8)} (${err.failingChecks.join(', ')}); #${issue} released to queued`, { lane, lanePaused: payload });
40
42
  }
43
+ /** Latch for the all_providers_down alert (#3340): false only when the same reset is already announced and still ahead.
44
+ * Any read or parse error fails open (emit); the write is best-effort. */
45
+ function shouldAlertAllProvidersDown(file, nextAvailableAt, nowMs) {
46
+ try {
47
+ const stored = JSON.parse(readFileSync(file, 'utf8'));
48
+ const prior = typeof stored === 'object' && stored !== null
49
+ ? stored.nextAvailableAt
50
+ : undefined;
51
+ if (prior === nextAvailableAt && Date.parse(nextAvailableAt) > nowMs)
52
+ return false;
53
+ }
54
+ catch { }
55
+ try {
56
+ mkdirSync(dirname(file), { recursive: true });
57
+ writeFileSync(file, JSON.stringify({ nextAvailableAt, at: new Date(nowMs).toISOString() }));
58
+ }
59
+ catch { }
60
+ return true;
61
+ }
41
62
  /** Emits the provider-cap lane-paused event: the issue went back to queued and claiming resumes at `resetAt` (#3226). */
42
63
  export function pauseLaneForProviderCap(ctx, issue, cap) {
43
64
  const { lane, paths, emitEvent } = ctx;
65
+ const down = cap.allProvidersDown;
66
+ const nowMs = (ctx.now ?? (() => new Date()))().getTime();
67
+ if (down?.nextAvailableAt &&
68
+ shouldAlertAllProvidersDown(join(paths.state, 'all-providers-down.json'), down.nextAvailableAt, nowMs)) {
69
+ const list = down.providers
70
+ .map((p) => `${p.provider} (${p.reason}${p.until ? `, until ${p.until}` : ''})`)
71
+ .join(', ');
72
+ emitEvent(paths.events, 'all_providers_down', issue, `every ${down.stage.toUpperCase()} provider is down (${down.detail}): ${list} — no model call; #${issue} released to queued until ${down.nextAvailableAt}`, { lane, allProvidersDown: down });
73
+ }
44
74
  const payload = {
45
75
  lane,
46
76
  signature: '',
@@ -1 +1 @@
1
- {"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- import type { EffectiveModelPins, ModelRouter, RepoFactoryConfig } from '@on-par/factory-core';
1
+ import type { EffectiveModelPins, ModelRouter, ModelsConfig, RepoFactoryConfig } from '@on-par/factory-core';
2
+ import { type ProviderOrder, type SubscriptionLoginDeps } from '@on-par/factory-core/internal';
2
3
  /** One `model-override` message per pinned phase, naming the file or env var it came from (#2497). */
3
4
  export declare function modelOverrideMessages(pins: EffectiveModelPins, repo: RepoFactoryConfig | null, repoConfigLabel: string): string[];
4
5
  /** Turn on the metered failover guard and log one `metered_primary_route` warning per metered plan/build pin (#3234). */
5
6
  export declare function applyMeteredGuard(router: ModelRouter, pins: EffectiveModelPins, log: (type: 'warn', msg: string) => void): void;
7
+ /** The run's provider order (#3338): only when the repo file sets `models.providerOrder`, with refused providers
8
+ * filtered out (#3335); undefined leaves every phase on today's routing. */
9
+ export declare function resolveProviderOrder(repo: RepoFactoryConfig | null, models: ModelsConfig, log: SubscriptionLoginDeps['log']): ProviderOrder | undefined;
6
10
  //# sourceMappingURL=model-override-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-override-messages.d.ts","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/F,sGAAsG;AACtG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAWV;AAED,yHAAyH;AACzH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvC,IAAI,CAQN"}
1
+ {"version":3,"file":"model-override-messages.d.ts","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,sGAAsG;AACtG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAWV;AAED,yHAAyH;AACzH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvC,IAAI,CAQN;AAED;6EAC6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAChC,aAAa,GAAG,SAAS,CAI3B"}
@@ -1,5 +1,5 @@
1
1
  // packages/cli/src/cli/model-override-messages.ts — the `model-override` lines shipIssue logs, split from ship.ts
2
- import { meteredPrimaryRouteWarnings } from '@on-par/factory-core/internal';
2
+ import { filterRefusedProviders, meteredPrimaryRouteWarnings, } from '@on-par/factory-core/internal';
3
3
  /** One `model-override` message per pinned phase, naming the file or env var it came from (#2497). */
4
4
  export function modelOverrideMessages(pins, repo, repoConfigLabel) {
5
5
  const label = (source, envVar) => (source === 'repo' ? repoConfigLabel : envVar);
@@ -24,4 +24,12 @@ export function applyMeteredGuard(router, pins, log) {
24
24
  for (const msg of meteredPrimaryRouteWarnings(pins, lookup))
25
25
  log('warn', msg);
26
26
  }
27
+ /** The run's provider order (#3338): only when the repo file sets `models.providerOrder`, with refused providers
28
+ * filtered out (#3335); undefined leaves every phase on today's routing. */
29
+ export function resolveProviderOrder(repo, models, log) {
30
+ // applyRepoConfig merges the repo's override over the derived order, so it is set whenever the repo file sets the key.
31
+ if (!repo?.models?.providerOrder || !models.providerOrder)
32
+ return undefined;
33
+ return filterRefusedProviders(models.providerOrder, models.models, { log }).order;
34
+ }
27
35
  //# sourceMappingURL=model-override-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-override-messages.js","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAGlH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,IAA8B,EAC9B,eAAuB;IAEvB,MAAM,KAAK,GAAG,CAAC,MAAkC,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;IACpC,OAAO;QACL,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,QAAQ,CAAC,MAAM,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,QAAQ,CAAC,OAAO,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,IAAwB,EACxB,GAAwC;IAExC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"model-override-messages.js","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAGlH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAG5B,MAAM,+BAA+B,CAAC;AAEvC,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,IAA8B,EAC9B,eAAuB;IAEvB,MAAM,KAAK,GAAG,CAAC,MAAkC,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;IACpC,OAAO;QACL,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,QAAQ,CAAC,MAAM,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,QAAQ,CAAC,OAAO,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,IAAwB,EACxB,GAAwC;IAExC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,oBAAoB,CAClC,IAA8B,EAC9B,MAAoB,EACpB,GAAiC;IAEjC,uHAAuH;IACvH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,sBAAsB,CAAC,MAAM,CAAC,aAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;AACrG,CAAC"}
@@ -10,6 +10,12 @@ export type NotifySummary = {
10
10
  lane: string;
11
11
  message: string;
12
12
  park: ParkPayload;
13
+ } | {
14
+ kind: 'disk_low';
15
+ ts: string;
16
+ host: string;
17
+ lane: string;
18
+ message: string;
13
19
  } | {
14
20
  kind: 'drain';
15
21
  ts: string;
@@ -34,4 +40,10 @@ export declare function resolveNotifyCommand(flag: string | undefined, env: Node
34
40
  export declare function createNotifier(cmd: string | undefined, deps?: NotifierDeps): Notifier | undefined;
35
41
  /** Wraps an event emitter so each lane `parked` event with a park payload also fires a park summary. */
36
42
  export declare function withParkNotify(emit: typeof logEvent, notifier: Notifier): typeof logEvent;
43
+ /** Wraps an event emitter so a `disk_low` event also fires one alert per host per hour (#2284). */
44
+ export declare function withDiskLowNotify(emit: typeof logEvent, notifier: Notifier, opts?: {
45
+ alertFile?: string;
46
+ now?: () => Date;
47
+ host?: string;
48
+ }): typeof logEvent;
37
49
  //# sourceMappingURL=notify.d.ts.map