@renaiss-shipflow/cli 0.9.0 → 0.11.0

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 (51) hide show
  1. package/dist/client.d.ts +19 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +5 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +3 -1
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/git-identity.d.ts +3 -0
  9. package/dist/commands/git-identity.d.ts.map +1 -0
  10. package/dist/commands/git-identity.js +77 -0
  11. package/dist/commands/git-identity.js.map +1 -0
  12. package/dist/commands/issue.d.ts.map +1 -1
  13. package/dist/commands/issue.js +49 -6
  14. package/dist/commands/issue.js.map +1 -1
  15. package/dist/commands/login.d.ts.map +1 -1
  16. package/dist/commands/login.js +16 -2
  17. package/dist/commands/login.js.map +1 -1
  18. package/dist/commands/pr.d.ts.map +1 -1
  19. package/dist/commands/pr.js +140 -2
  20. package/dist/commands/pr.js.map +1 -1
  21. package/dist/commands/stats.d.ts +7 -0
  22. package/dist/commands/stats.d.ts.map +1 -1
  23. package/dist/commands/stats.js +48 -1
  24. package/dist/commands/stats.js.map +1 -1
  25. package/dist/config.d.ts +7 -0
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +9 -0
  28. package/dist/config.js.map +1 -1
  29. package/dist/escalation-format.d.ts +35 -2
  30. package/dist/escalation-format.d.ts.map +1 -1
  31. package/dist/escalation-format.js +81 -4
  32. package/dist/escalation-format.js.map +1 -1
  33. package/dist/gh.d.ts +43 -1
  34. package/dist/gh.d.ts.map +1 -1
  35. package/dist/gh.js +93 -4
  36. package/dist/gh.js.map +1 -1
  37. package/dist/git-local.d.ts +4 -0
  38. package/dist/git-local.d.ts.map +1 -1
  39. package/dist/git-local.js +37 -0
  40. package/dist/git-local.js.map +1 -1
  41. package/dist/index.js +2 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/packet.d.ts +70 -0
  44. package/dist/packet.d.ts.map +1 -0
  45. package/dist/packet.js +261 -0
  46. package/dist/packet.js.map +1 -0
  47. package/dist/review-contract.d.ts +59 -0
  48. package/dist/review-contract.d.ts.map +1 -0
  49. package/dist/review-contract.js +129 -0
  50. package/dist/review-contract.js.map +1 -0
  51. package/package.json +1 -1
@@ -1,7 +1,11 @@
1
1
  import { execSync } from "node:child_process";
2
+ import { readFileSync } from "node:fs";
2
3
  import { resolveMergePolicy, resolveRequireCi, resolveStalePrHours, } from "../config.js";
3
- import { ghPRCreate, ghPRMerge, ghPRView, ghCurrentLogin, ghEnsureLabel, ghIssueAddLabels, ghIssueRemoveLabel, ghReviewThreads, ghResolveReviewThread } from "../gh.js";
4
- import { cleanupMergedLocalBranch } from "../git-local.js";
4
+ import { hostname } from "node:os";
5
+ import { ghPRCreate, ghPRMerge, ghPRView, ghPRDiffText, ghCurrentLogin, ghEnsureLabel, ghIssueAddLabels, ghIssueRemoveLabel, ghIssueView, ghReviewThreads, ghResolveReviewThread, ghCreateReview } from "../gh.js";
6
+ import { buildReviewPacket } from "../packet.js";
7
+ import { diffAnchors, buildReviewPayload } from "../review-contract.js";
8
+ import { cleanupMergedLocalBranch, findSuspiciousEmails } from "../git-local.js";
5
9
  import { shellQuote } from "../sh.js";
6
10
  import { classifyPR, mergeDecision } from "../pr-state.js";
7
11
  import { loadCtx, runAction } from "./helpers.js";
@@ -28,10 +32,27 @@ export function registerPRCommand(program) {
28
32
  .option("--base <ref>", "Base branch")
29
33
  .option("--draft", "Create as draft")
30
34
  .option("--preview-url <url>", "Testing/preview site for this PR (relayed to the issue reporter)")
35
+ .option("--allow-suspicious-email", "Skip the commit-email identity guard (not recommended)")
31
36
  .option("--json", "Output JSON")
32
37
  .action(runAction(async (opts) => {
33
38
  const ctx = await loadCtx(program);
34
39
  const branch = currentBranch();
40
+ // Identity guard (issue #90): a machine-derived author email
41
+ // (user@hostname) can't be matched to a GitHub account — Vercel blocks
42
+ // the deployment AFTER merge, which is the expensive place to find out.
43
+ if (!opts.allowSuspiciousEmail) {
44
+ const bad = findSuspiciousEmails(branchAuthorEmails(), hostname());
45
+ if (bad.length) {
46
+ console.error("Refusing to open a PR: commit author email(s) won't match a GitHub account (deployments will be blocked):");
47
+ for (const b of bad)
48
+ console.error(` • ${b}`);
49
+ console.error("Fix: renaiss-shipflow git-identity --fix (sets a repo-local matched identity)");
50
+ console.error("Then rewrite the offending commits: git commit --amend --reset-author --no-edit");
51
+ console.error(' (several commits: git rebase --exec "git commit --amend --reset-author --no-edit" origin/<base>)');
52
+ console.error("Bypass (not recommended): --allow-suspicious-email");
53
+ process.exit(1);
54
+ }
55
+ }
35
56
  const issueNumber = opts.issue ? parseInt(opts.issue, 10) : detectIssueFromBranch(branch);
36
57
  // Reference the issue with a link (Closes #N) — don't copy its detail into
37
58
  // the PR; GitHub renders the linked issue.
@@ -235,6 +256,96 @@ export function registerPRCommand(program) {
235
256
  }
236
257
  console.log(`🔀 PR #${number}: rebased "${head}" onto ${base}${pushed ? " and pushed" : ""}.`);
237
258
  }));
259
+ pr
260
+ .command("packet <number>")
261
+ .description("Emit the pre-baked review packet for a PR: spec/brief, description, CI, unresolved threads, evidence, and a noise-filtered budgeted diff — everything the loop reviewer needs in one call")
262
+ .option("--repo <fullname>", "Override target repo")
263
+ .action(runAction(async (numberStr, opts) => {
264
+ const ctx = await loadCtx(program);
265
+ const number = parseInt(numberStr, 10);
266
+ const repo = opts.repo ?? ctx.project.repoFullName;
267
+ const prView = ghPRView(repo, number);
268
+ let threads = [];
269
+ try {
270
+ threads = ghReviewThreads(repo, number);
271
+ }
272
+ catch {
273
+ // GraphQL blip: the packet still ships; the approve gate re-checks anyway.
274
+ }
275
+ const diff = ghPRDiffText(repo, number);
276
+ // Resolve the spec/brief source: closing references first, then a
277
+ // "Part of #N" slice link in the PR body.
278
+ let issue = null;
279
+ const closing = prView.closingIssuesReferences?.[0];
280
+ const partOf = /Part of #(\d+)/i.exec(prView.body ?? "");
281
+ const linkedNum = closing?.number ?? (partOf ? parseInt(partOf[1], 10) : 0);
282
+ if (linkedNum > 0) {
283
+ try {
284
+ issue = { ...ghIssueView(repo, linkedNum), linkKind: closing ? "closes" : "part-of" };
285
+ }
286
+ catch {
287
+ // Missing/inaccessible issue → packet warns loudly below.
288
+ }
289
+ }
290
+ // Feature map (best-effort): powers the per-feature evidence-coverage
291
+ // check — a multi-feature PR needs ≥1 proof per touched feature.
292
+ let features;
293
+ try {
294
+ const fm = await ctx.client.getFeatureMapping(ctx.creds.org, ctx.project.projectId);
295
+ features = Object.entries(fm.features ?? {}).map(([key, f]) => ({
296
+ key,
297
+ name: f.name || key,
298
+ paths: f.paths ?? [],
299
+ layer: f.layer || undefined,
300
+ description: f.description || undefined,
301
+ testPriority: f.test_priority || undefined,
302
+ }));
303
+ }
304
+ catch {
305
+ // No map (or fetch blip) → the packet simply omits the coverage lines.
306
+ }
307
+ console.log(buildReviewPacket({ pr: prView, threads, diff, issue, features }));
308
+ }));
309
+ pr
310
+ .command("post-review <number>")
311
+ .description("Post the loop reviewer's findings as a formal review with INLINE diff-anchored comments (like the server) — findings sit on the code diff, not a diff-less top-level comment")
312
+ .option("--summary <text>", "1-2 sentence verdict summary")
313
+ .option("--verdict <v>", "approve | comment | request_changes | reject", "comment")
314
+ .option("--findings <path>", "JSON file of findings (array or {findings:[...]}); '-' or omitted reads stdin")
315
+ .option("--repo <fullname>", "Override target repo")
316
+ .option("--json", "Output JSON")
317
+ .action(runAction(async (numberStr, opts) => {
318
+ const ctx = await loadCtx(program);
319
+ const number = parseInt(numberStr, 10);
320
+ const repo = opts.repo ?? ctx.project.repoFullName;
321
+ // Only block on stdin when findings are actually piped (or "-" is
322
+ // explicit). In an interactive terminal with no --findings this is the
323
+ // approve flow (empty findings) — reading stdin would hang forever.
324
+ const rawFindings = opts.findings && opts.findings !== "-"
325
+ ? readFileSync(opts.findings, "utf8")
326
+ : (opts.findings === "-" || !process.stdin.isTTY) ? await readStdin() : "";
327
+ let parsed;
328
+ try {
329
+ parsed = JSON.parse(rawFindings || "[]");
330
+ }
331
+ catch {
332
+ console.error("--findings must be valid JSON (an array, or {findings:[...]})");
333
+ process.exit(1);
334
+ }
335
+ const findings = (Array.isArray(parsed) ? parsed : parsed?.findings ?? []);
336
+ const verdict = (["approve", "comment", "request_changes", "reject"].includes(opts.verdict ?? "")
337
+ ? opts.verdict : "comment");
338
+ const anchors = diffAnchors(ghPRDiffText(repo, number));
339
+ const payload = buildReviewPayload({ summary: opts.summary ?? "", verdict, findings, anchors });
340
+ ghCreateReview(repo, number, payload);
341
+ const inlineCount = payload.comments.length;
342
+ const foldedCount = findings.length - inlineCount;
343
+ if (opts.json) {
344
+ console.log(JSON.stringify({ number, verdict, inline: inlineCount, folded: foldedCount }));
345
+ return;
346
+ }
347
+ console.log(`Posted ${verdict} review on #${number}: ${inlineCount} inline finding(s) on the diff${foldedCount ? `, ${foldedCount} folded into the body` : ""}.`);
348
+ }));
238
349
  pr
239
350
  .command("approve <number>")
240
351
  .description("Record the loop reviewer's approval: adds the shipflow-approved label (the automerge approval source) + an optional comment")
@@ -327,6 +438,33 @@ export function registerPRCommand(program) {
327
438
  console.log(`🧵 Resolved ${targets.length} review thread(s) on PR #${number}.`);
328
439
  }));
329
440
  }
441
+ /** Author emails on the branch's own commits (vs origin main/master), falling
442
+ * back to recent history when no base ref resolves. */
443
+ function branchAuthorEmails() {
444
+ for (const range of ["origin/main..HEAD", "origin/master..HEAD"]) {
445
+ try {
446
+ const out = execSync(`git log --format=%ae ${range}`, { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
447
+ if (out)
448
+ return out.split("\n");
449
+ return []; // range resolved and is empty — nothing new to check
450
+ }
451
+ catch {
452
+ /* base ref missing — try the next */
453
+ }
454
+ }
455
+ try {
456
+ return execSync("git log --format=%ae -30", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim().split("\n").filter(Boolean);
457
+ }
458
+ catch {
459
+ return [];
460
+ }
461
+ }
462
+ async function readStdin() {
463
+ const chunks = [];
464
+ for await (const c of process.stdin)
465
+ chunks.push(c);
466
+ return Buffer.concat(chunks).toString("utf8");
467
+ }
330
468
  function currentBranch() {
331
469
  return execSync("git rev-parse --abbrev-ref HEAD").toString().trim();
332
470
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,GAC1D,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACxK,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAE3C;;0EAE0E;AAC1E,SAAS,wBAAwB,CAAC,IAAY,EAAE,MAAc;IAC5D,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAErE,EAAE;SACC,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,aAAa,EAAE,oEAAoE,CAAC;SAC3F,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;SACrC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,kEAAkE,CAAC;SACjG,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC1F,2EAA2E;QAC3E,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,YAAY,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,GAAG,MAAM,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1I,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE;gBAC7F,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY;gBAC9B,MAAM;gBACN,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;gBACzD,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,yCAA0C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAmE,EAAE,EAAE;QACjH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACrF,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,+FAA+F,CAAC;SAC5G,MAAM,CAAC,cAAc,EAAE,8DAA8D,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAwD,EAAE,EAAE;QACtG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAsB,IAAI,kBAAkB,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrH,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/D,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,iBAAiB;YACtF,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ;SAChE,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,OAAO,eAAe,EAAE,CAAC,QAAQ,aAAa,MAAM,MAAM,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtL,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,6GAA6G,CAAC;SAC1H,MAAM,CAAC,cAAc,EAAE,8DAA8D,CAAC;SACtF,MAAM,CAAC,eAAe,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA8F,EAAE,EAAE;QAC5I,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAsB,IAAI,kBAAkB,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrH,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChH,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBACvF,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,qBAAqB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,2EAA2E;QAC3E,4EAA4E;QAC5E,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChI,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAChL,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC5I,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,KAAK,MAAM,CAAC,SAAS,kBAAkB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChJ,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,wIAAwI,CAAC;SACrJ,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuD,EAAE,EAAE;QACrG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,sBAAsB,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAEnF,MAAM,GAAG,GAAG,QAAQ,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,aAAa,MAAM,QAAQ,IAAI,uCAAuC,IAAI,EAAE,CAAC,CAAC;YAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,CAAC;YACH,QAAQ,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,CAAC,cAAc,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC7F,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC5F,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,iBAAiB,IAAI,qDAAqD,CAAC,CAAC;YAAC,CAAC;YACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,wEAAwE;YACxE,sEAAsE;YACtE,IAAI,CAAC;gBACH,QAAQ,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,qFAAsF,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,cAAc,IAAI,UAAU,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,6HAA6H,CAAC;SAC1I,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,SAAS,EAAE,+DAA+D,CAAC;SAClF,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA0E,EAAE,EAAE;QACxH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QAEnD,8EAA8E;QAC9E,iDAAiD;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC7G,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,KAAK,UAAU,CAAC,MAAM,kCAAkC,IAAI,mEAAmE,CAAC,CAAC;YAAC,CAAC;YACrL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,qDAAqD,CAAC,CAAC;QACrG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACjD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,qCAAqC;QACtF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,yEAAyE;YACzE,wEAAwE;YACxE,QAAQ,CAAC,iBAAiB,MAAM,WAAW,UAAU,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,yBAAyB,cAAc,mDAAmD,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC,CAAC;IAEN,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,2GAA2G,CAAC;SACxH,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuC,EAAE,EAAE;QAC3E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG;YACV,MAAM;YACN,QAAQ,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACvC,iBAAiB,EAAE,UAAU,CAAC,MAAM;YACpC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM;YAC7C,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC3G,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,iCAAiC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzH,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC,CAAC,CAAC;IAEL,EAAE;SACC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,0FAA0F,CAAC;SACvG,MAAM,CAAC,kBAAkB,EAAE,iEAAiE,CAAC;SAC7F,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAiB,EAAE,IAA0D,EAAE,EAAE;QACxG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,4BAA4B,MAAM,GAAG,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,QAAQ,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED;;+CAE+C;AAC/C,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,WAAoB,EAAE,QAAiB;IAC1F,MAAM,KAAK,GAAG,CAAC,qBAAqB,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC;IAC/D,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,WAAW,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;IAC9G,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
1
  import type { Command } from "commander";
2
+ import type { AIUsageStats } from "../client.js";
3
+ /**
4
+ * Build the per-stage table rows for `stats --tokens`, sorted by cost descending
5
+ * (most expensive stage first). Exported so the output shape can be unit-tested
6
+ * without a live server.
7
+ */
8
+ export declare function buildStageRows(stats: AIUsageStats): string[][];
2
9
  export declare function registerStatsCommand(program: Command): void;
3
10
  //# sourceMappingURL=stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B3D"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAYjD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,CAW9D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwD3D"}
@@ -1,9 +1,35 @@
1
1
  import { getClient, getOrg, getFormat, handleError } from "./helpers.js";
2
- import { formatOutput } from "../output.js";
2
+ import { formatOutput, printTable } from "../output.js";
3
+ const STAGE_TABLE_HEADERS = ["Stage", "Requests", "Tokens In", "Tokens Out", "Cost (USD)"];
4
+ function num(n) {
5
+ return (n ?? 0).toLocaleString("en-US");
6
+ }
7
+ function cost(n) {
8
+ return `$${(n ?? 0).toFixed(4)}`;
9
+ }
10
+ /**
11
+ * Build the per-stage table rows for `stats --tokens`, sorted by cost descending
12
+ * (most expensive stage first). Exported so the output shape can be unit-tested
13
+ * without a live server.
14
+ */
15
+ export function buildStageRows(stats) {
16
+ const byStage = stats.byStage ?? {};
17
+ return Object.entries(byStage)
18
+ .sort((a, b) => (b[1].costUsd ?? 0) - (a[1].costUsd ?? 0))
19
+ .map(([stage, s]) => [
20
+ stage,
21
+ num(s.requests),
22
+ num(s.tokensIn),
23
+ num(s.tokensOut),
24
+ cost(s.costUsd),
25
+ ]);
26
+ }
3
27
  export function registerStatsCommand(program) {
4
28
  program
5
29
  .command("stats")
6
30
  .description("Show usage statistics for the current billing period")
31
+ .option("--tokens", "Show per-stage AI token usage (from ai_logs) instead of execution counts")
32
+ .option("--days <n>", "Lookback window in days for --tokens (default 30)", "30")
7
33
  .option("--json", "Output as JSON")
8
34
  .option("--yaml", "Output as YAML")
9
35
  .action(async function () {
@@ -11,6 +37,27 @@ export function registerStatsCommand(program) {
11
37
  const client = getClient(this);
12
38
  const org = getOrg(this);
13
39
  const format = getFormat(this);
40
+ const opts = this.opts();
41
+ if (opts.tokens) {
42
+ const days = Number.parseInt(String(opts.days), 10);
43
+ const windowDays = Number.isFinite(days) && days > 0 ? days : 30;
44
+ const stats = await client.getTokenStats(org, windowDays);
45
+ formatOutput(format, stats, () => {
46
+ console.log(`AI Token Usage (last ${windowDays} days)`);
47
+ console.log(` Total Requests: ${num(stats.totalRequests)}`);
48
+ console.log(` Tokens In: ${num(stats.totalTokensIn)}`);
49
+ console.log(` Tokens Out: ${num(stats.totalTokensOut)}`);
50
+ console.log(` Total Cost: ${cost(stats.totalCostUsd)}`);
51
+ const rows = buildStageRows(stats);
52
+ if (rows.length === 0) {
53
+ console.log(`\nNo AI usage recorded for this period.`);
54
+ return;
55
+ }
56
+ console.log(`\nBy Stage:`);
57
+ printTable(STAGE_TABLE_HEADERS, rows);
58
+ });
59
+ return;
60
+ }
14
61
  const stats = await client.getStats(org);
15
62
  formatOutput(format, stats, () => {
16
63
  console.log(`Usage Statistics`);
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEzC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxD,IAAI,KAAK,CAAC,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/E,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBACpE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -27,6 +27,9 @@ export interface StoredConfig {
27
27
  bugHunt?: boolean;
28
28
  bugHuntCap?: number;
29
29
  requireReview?: boolean;
30
+ gitName?: string;
31
+ gitEmail?: string;
32
+ signoffOwner?: string;
30
33
  }
31
34
  /** How far the loop may drive a PR toward merge without a human. */
32
35
  export type MergePolicy = "manual" | "auto-on-green" | "auto-timeout";
@@ -91,6 +94,10 @@ export declare function resolveBugHunt(): boolean;
91
94
  export declare function resolveBugHuntCap(): number;
92
95
  /** Route every issue + PR through the reviewer first (env > config > true). */
93
96
  export declare function resolveRequireReview(): boolean;
97
+ /** Sign-off owner the loop names on escalations (env > config > undefined —
98
+ * the escalate command then falls back to the issue author). A leading @ is
99
+ * tolerated and stripped so both "gemscng" and "@gemscng" work. */
100
+ export declare function resolveSignoffOwner(): string | undefined;
94
101
  export declare function resolveApiUrl(flagUrl?: string): string;
95
102
  /** JWT first, API key fallback. */
96
103
  export declare function resolveAuthToken(): {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -2,6 +2,7 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync, unlinkSync, readdir
2
2
  import { join } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import { createHash } from "node:crypto";
5
+ import { normalizeOwner } from "./escalation-format.js";
5
6
  const DEFAULT_BASE = join(homedir(), ".config", "renaissshipflow");
6
7
  /** Base config directory before profile selection. Override entirely with
7
8
  * SHIPFLOW_CONFIG_DIR (useful for tests or wholly separate stores). */
@@ -185,6 +186,14 @@ export function resolveRequireReview() {
185
186
  const c = loadConfig().requireReview;
186
187
  return c === undefined ? true : c;
187
188
  }
189
+ /** Sign-off owner the loop names on escalations (env > config > undefined —
190
+ * the escalate command then falls back to the issue author). A leading @ is
191
+ * tolerated and stripped so both "gemscng" and "@gemscng" work. */
192
+ export function resolveSignoffOwner() {
193
+ const env = process.env.SHIPFLOW_SIGNOFF_OWNER;
194
+ const raw = env != null && env.trim() !== "" ? env : loadConfig().signoffOwner ?? "";
195
+ return normalizeOwner(raw);
196
+ }
188
197
  // ── url + auth resolution ──
189
198
  export function resolveApiUrl(flagUrl) {
190
199
  return flagUrl || process.env.SHIPFLOW_API_URL || loadConfig().apiUrl || "http://localhost:8080";
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,44 @@ export declare function bulletizeReason(reason: string): string;
21
21
  export declare function enumerateReason(reason: string, marker: RegExp, // matches "(n)"/"(x)" incl. surrounding whitespace, capturing the token
22
22
  firstMarker: string, // the token the sequence must open with ("1" / "a")
23
23
  line: (marker: string, text: string) => string): string | null;
24
+ /** Why each escalation class is gated on a human. Rendered verbatim under
25
+ * `### Why this needs a human — <category>` so the rationale is standardized
26
+ * and never depends on how verbose a given reviewer subagent felt (issue #58,
27
+ * motivated by rental-portal#121's bare "money-write risk — see the issue body"). */
28
+ export declare const ESCALATION_CATEGORIES: Record<string, string>;
29
+ export interface EscalationOptions {
30
+ /** One of ESCALATION_CATEGORIES — appends the standardized "why a human" rationale. */
31
+ category?: string;
32
+ /** GitHub login (with or without a leading @) accountable for acting on this. */
33
+ owner?: string;
34
+ }
35
+ /** Canonical GitHub login: trimmed, leading @ stripped, empty collapsed to
36
+ * undefined — so "@gemscng", " gemscng " and "gemscng" all render as one
37
+ * consistent `@gemscng` (comment body, console line, and JSON alike). */
38
+ export declare function normalizeOwner(raw?: string | null): string | undefined;
39
+ /** Deterministic quality gate on an escalation reason — pure string checks, no
40
+ * AI. Returns one message per problem (empty array = clean). The rules encode
41
+ * the loop contract: no open questions without a recommendation, no pointers
42
+ * out of the comment, structured reasons lead with the action. */
43
+ export declare function lintEscalationReason(reason: string): string[];
44
+ export interface EscalationCommentRef {
45
+ id: string;
46
+ body: string;
47
+ viewerDidAuthor?: boolean;
48
+ }
49
+ /** The loop's most recent escalation comment on an issue (input oldest-first,
50
+ * as `gh issue view --json comments` returns them), so `issue escalate
51
+ * --update` can edit it in place instead of stacking a new banner. Only
52
+ * comments that OPEN with the banner count — replies quoting it don't — and
53
+ * only ones the CLI's own account authored. */
54
+ export declare function findLatestEscalationComment(comments: EscalationCommentRef[]): EscalationCommentRef | null;
24
55
  /** Renders the escalation comment the loop posts when it hands an issue to a
25
56
  * human. Keeps a one-line banner and a state footer (lock kept, how to un-block)
26
57
  * around the reviewer's reason so the comment stays scannable. The reason is
27
58
  * rendered directly — a structured reason already leads with its own `###
28
59
  * Action needed` / `### Why it's blocked` sections, and a plain-paragraph reason
29
- * just reads as text; either way this adds no competing heading of its own. */
30
- export declare function formatEscalationBody(reason: string): string;
60
+ * just reads as text; either way this adds no competing heading of its own.
61
+ * `owner` names the accountable human right under the banner; `category` appends
62
+ * the standardized rationale for why this class of work is gated on a human. */
63
+ export declare function formatEscalationBody(reason: string, opts?: EscalationOptions): string;
31
64
  //# sourceMappingURL=escalation-format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escalation-format.d.ts","sourceRoot":"","sources":["../src/escalation-format.ts"],"names":[],"mappings":"AAIA;;;;;iCAKiC;AACjC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;;;;;;;;;;;6EAY6E;AAC7E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAO,wEAAwE;AAC7F,WAAW,EAAE,MAAM,EAAE,oDAAoD;AACzE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAC7C,MAAM,GAAG,IAAI,CAaf;AAED;;;;;gFAKgF;AAChF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU3D"}
1
+ {"version":3,"file":"escalation-format.d.ts","sourceRoot":"","sources":["../src/escalation-format.ts"],"names":[],"mappings":"AAIA;;;;;iCAKiC;AACjC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;;;;;;;;;;;6EAY6E;AAC7E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAO,wEAAwE;AAC7F,WAAW,EAAE,MAAM,EAAE,oDAAoD;AACzE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAC7C,MAAM,GAAG,IAAI,CAaf;AAED;;;sFAGsF;AACtF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBxD,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;0EAE0E;AAC1E,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAGtE;AAED;;;mEAGmE;AACnE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB7D;AAID,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;gDAIgD;AAChD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,GAAG,IAAI,CAOzG;AAED;;;;;;;iFAOiF;AACjF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,CAoBzF"}
@@ -47,21 +47,98 @@ line) {
47
47
  return null; // not a real multi-item list
48
48
  return lead ? `${lead}\n\n${items.join("\n")}` : items.join("\n");
49
49
  }
50
+ /** Why each escalation class is gated on a human. Rendered verbatim under
51
+ * `### Why this needs a human — <category>` so the rationale is standardized
52
+ * and never depends on how verbose a given reviewer subagent felt (issue #58,
53
+ * motivated by rental-portal#121's bare "money-write risk — see the issue body"). */
54
+ export const ESCALATION_CATEGORIES = {
55
+ "money-write": "Enabling this writes real money-bearing values (prices, payouts, billing) to live systems. " +
56
+ "A bad value reaches customers immediately, and transactions made at a wrong value can't be " +
57
+ "undone by reverting data. The loop never self-authorizes money writes — a human owns the go/no-go.",
58
+ "prod-config": "This changes production configuration (env vars, flags, infrastructure) whose blast radius " +
59
+ "spans everything behind it; a mistake can take production down or silently change live " +
60
+ "behavior. The loop never applies production config itself.",
61
+ security: "This touches a security- or trust-critical surface (authn/authz, secrets, injection-prone " +
62
+ "parsing) where a mistake is exploitable and autonomous validation can't establish safety.",
63
+ "missing-secret": "The work is blocked on a credential, secret, or account only a human can provision. Nothing " +
64
+ "is wrong with the code — the loop lacks access it cannot grant itself.",
65
+ "external-dependency": "Blocked on an external system or third party (vendor approval, DNS, a service outside this " +
66
+ "repo) that the loop cannot drive.",
67
+ invalid: "The issue looks invalid, duplicate, or out of scope; closing someone's issue is a judgment " +
68
+ "call the loop leaves to a human.",
69
+ };
70
+ /** Canonical GitHub login: trimmed, leading @ stripped, empty collapsed to
71
+ * undefined — so "@gemscng", " gemscng " and "gemscng" all render as one
72
+ * consistent `@gemscng` (comment body, console line, and JSON alike). */
73
+ export function normalizeOwner(raw) {
74
+ const login = (raw ?? "").trim().replace(/^@/, "");
75
+ return login || undefined;
76
+ }
77
+ /** Deterministic quality gate on an escalation reason — pure string checks, no
78
+ * AI. Returns one message per problem (empty array = clean). The rules encode
79
+ * the loop contract: no open questions without a recommendation, no pointers
80
+ * out of the comment, structured reasons lead with the action. */
81
+ export function lintEscalationReason(reason) {
82
+ const r = reason.trim();
83
+ const problems = [];
84
+ if (!r)
85
+ return ["no reason given — state the decision or action the human must take"];
86
+ // Only interrogative LINES count as questions — a "?" inside a URL query
87
+ // string or code span is not one (would otherwise force --force).
88
+ if (/\?\s*$/m.test(r) && !/\*\*recommendation:?\*\*/i.test(r)) {
89
+ problems.push('contains an open question ("?") but no **Recommendation:** line — every question put to a human must carry the loop\'s recommended answer');
90
+ }
91
+ if (/see the issue body/i.test(r)) {
92
+ problems.push('says "see the issue body" — an escalation must be self-contained; inline the substance');
93
+ }
94
+ // Tolerant match: subagents drift on heading spelling (case, emoji, colon);
95
+ // a substantively action-first reason must not be rejected.
96
+ if (r.includes("\n") && !/###\s*(?:👤\s*)?action\s+needed/i.test(r)) {
97
+ problems.push('structured reason is missing the "### 👤 Action needed" section — lead with the concrete steps');
98
+ }
99
+ return problems;
100
+ }
101
+ const ESCALATION_BANNER = "🚧 **Needs a human** — the ShipFlow loop escalated this and is skipping it for now.";
102
+ /** The loop's most recent escalation comment on an issue (input oldest-first,
103
+ * as `gh issue view --json comments` returns them), so `issue escalate
104
+ * --update` can edit it in place instead of stacking a new banner. Only
105
+ * comments that OPEN with the banner count — replies quoting it don't — and
106
+ * only ones the CLI's own account authored. */
107
+ export function findLatestEscalationComment(comments) {
108
+ for (let i = comments.length - 1; i >= 0; i--) {
109
+ const c = comments[i];
110
+ if (c.viewerDidAuthor === false)
111
+ continue;
112
+ if (c.body.trimStart().startsWith("🚧 **Needs a human**"))
113
+ return c;
114
+ }
115
+ return null;
116
+ }
50
117
  /** Renders the escalation comment the loop posts when it hands an issue to a
51
118
  * human. Keeps a one-line banner and a state footer (lock kept, how to un-block)
52
119
  * around the reviewer's reason so the comment stays scannable. The reason is
53
120
  * rendered directly — a structured reason already leads with its own `###
54
121
  * Action needed` / `### Why it's blocked` sections, and a plain-paragraph reason
55
- * just reads as text; either way this adds no competing heading of its own. */
56
- export function formatEscalationBody(reason) {
122
+ * just reads as text; either way this adds no competing heading of its own.
123
+ * `owner` names the accountable human right under the banner; `category` appends
124
+ * the standardized rationale for why this class of work is gated on a human. */
125
+ export function formatEscalationBody(reason, opts = {}) {
126
+ if (opts.category && !(opts.category in ESCALATION_CATEGORIES)) {
127
+ throw new Error(`Unknown escalation category "${opts.category}" — valid: ${Object.keys(ESCALATION_CATEGORIES).join(", ")}`);
128
+ }
57
129
  const why = bulletizeReason(reason.trim()) || "_No reason given._";
130
+ const owner = normalizeOwner(opts.owner);
58
131
  return [
59
- "🚧 **Needs a human** — the ShipFlow loop escalated this and is skipping it for now.",
132
+ ESCALATION_BANNER,
60
133
  "",
134
+ ...(owner ? [`**Owner:** @${owner} — yours to act on unless reassigned by comment.`, ""] : []),
61
135
  why,
62
136
  "",
137
+ ...(opts.category
138
+ ? [`### Why this needs a human — ${opts.category}`, ESCALATION_CATEGORIES[opts.category], ""]
139
+ : []),
63
140
  "---",
64
- "<sub>The loop kept its work lock, so it won't re-pick this issue until a human acts. Resolve the question above, then remove the **`needs-human`** label to let the loop back in.</sub>",
141
+ "<sub>The loop kept its work lock, so it won't re-pick this issue until a human acts. Reply with your decision the **`needs-human`** label clears automatically on a human reply (or remove it yourself) — and the loop takes it from there.</sub>",
65
142
  ].join("\n");
66
143
  }
67
144
  //# sourceMappingURL=escalation-format.js.map