@renaiss-shipflow/cli 0.16.0 → 0.16.1

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 (53) hide show
  1. package/dist/commands/activity.d.ts.map +1 -1
  2. package/dist/commands/activity.js +2 -4
  3. package/dist/commands/activity.js.map +1 -1
  4. package/dist/commands/channels.d.ts.map +1 -1
  5. package/dist/commands/channels.js +3 -6
  6. package/dist/commands/channels.js.map +1 -1
  7. package/dist/commands/claims.d.ts.map +1 -1
  8. package/dist/commands/claims.js +12 -24
  9. package/dist/commands/claims.js.map +1 -1
  10. package/dist/commands/features.d.ts.map +1 -1
  11. package/dist/commands/features.js +25 -37
  12. package/dist/commands/features.js.map +1 -1
  13. package/dist/commands/helpers.d.ts +61 -0
  14. package/dist/commands/helpers.d.ts.map +1 -1
  15. package/dist/commands/helpers.js +60 -6
  16. package/dist/commands/helpers.js.map +1 -1
  17. package/dist/commands/inbox.d.ts.map +1 -1
  18. package/dist/commands/inbox.js +17 -28
  19. package/dist/commands/inbox.js.map +1 -1
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +3 -10
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/issue.d.ts.map +1 -1
  24. package/dist/commands/issue.js +22 -51
  25. package/dist/commands/issue.js.map +1 -1
  26. package/dist/commands/issues.d.ts.map +1 -1
  27. package/dist/commands/issues.js +9 -21
  28. package/dist/commands/issues.js.map +1 -1
  29. package/dist/commands/pr.d.ts.map +1 -1
  30. package/dist/commands/pr.js +44 -121
  31. package/dist/commands/pr.js.map +1 -1
  32. package/dist/commands/regression.d.ts.map +1 -1
  33. package/dist/commands/regression.js +4 -22
  34. package/dist/commands/regression.js.map +1 -1
  35. package/dist/commands/release.d.ts.map +1 -1
  36. package/dist/commands/release.js +9 -21
  37. package/dist/commands/release.js.map +1 -1
  38. package/dist/commands/repos.d.ts.map +1 -1
  39. package/dist/commands/repos.js +4 -9
  40. package/dist/commands/repos.js.map +1 -1
  41. package/dist/commands/stats.d.ts.map +1 -1
  42. package/dist/commands/stats.js +2 -4
  43. package/dist/commands/stats.js.map +1 -1
  44. package/dist/commands/status.d.ts.map +1 -1
  45. package/dist/commands/status.js +14 -26
  46. package/dist/commands/status.js.map +1 -1
  47. package/dist/commands/trigger.d.ts.map +1 -1
  48. package/dist/commands/trigger.js +3 -8
  49. package/dist/commands/trigger.js.map +1 -1
  50. package/dist/commands/workflows.d.ts.map +1 -1
  51. package/dist/commands/workflows.js +5 -10
  52. package/dist/commands/workflows.js.map +1 -1
  53. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { resolveSignoffOwner } from "../config.js";
8
8
  import { sortIssuesForPickup, isActionableForPickup, IN_PROGRESS_LABEL, NEEDS_HUMAN_LABEL } from "../issue-order.js";
9
9
  import { validateEvidenceSelection } from "../evidence.js";
10
10
  import { promptText } from "../prompts.js";
11
- import { loadCtx, runAction } from "./helpers.js";
11
+ import { emit, loadCtx, resolveTarget, runAction, signalBestEffort } from "./helpers.js";
12
12
  export function registerIssueCommand(program) {
13
13
  const issue = program.command("issue").description("Issue actions");
14
14
  issue
@@ -30,11 +30,7 @@ export function registerIssueCommand(program) {
30
30
  const created = ghIssueCreate(repo, title, body, labels);
31
31
  // Note: creating an issue does NOT claim it — claims are exclusive
32
32
  // work locks now; run `issue work <n>` to pick it up.
33
- if (opts.json) {
34
- console.log(JSON.stringify({ number: created.number, url: created.url, labels }));
35
- return;
36
- }
37
- console.log(created.url);
33
+ emit(opts, { number: created.number, url: created.url, labels }, () => console.log(created.url));
38
34
  }));
39
35
  issue
40
36
  .command("work <number>")
@@ -45,8 +41,7 @@ export function registerIssueCommand(program) {
45
41
  .option("--json", "Output JSON")
46
42
  .action(runAction(async (numberStr, opts) => {
47
43
  const ctx = await loadCtx(program);
48
- const number = parseInt(numberStr, 10);
49
- const repo = opts.repo ?? ctx.project.repoFullName;
44
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
50
45
  const agent = opts.agent ?? process.env.SHIPFLOW_AGENT ?? hostname();
51
46
  // Take the exclusive claim FIRST — if another agent holds the issue,
52
47
  // skip it without doing any work.
@@ -105,12 +100,7 @@ export function registerIssueCommand(program) {
105
100
  printIssueContext(issueData, triage, repo, ctx.project, opts.json);
106
101
  return;
107
102
  }
108
- if (opts.json) {
109
- console.log(JSON.stringify({ issue: null, reason: "no_actionable_issues" }, null, 2));
110
- }
111
- else {
112
- console.log("✅ No actionable issues — every open issue is claimed or filtered out.");
113
- }
103
+ emit(opts, { issue: null, reason: "no_actionable_issues" }, () => console.log("✅ No actionable issues — every open issue is claimed or filtered out."), { pretty: true });
114
104
  process.exit(4);
115
105
  }));
116
106
  issue
@@ -121,15 +111,10 @@ export function registerIssueCommand(program) {
121
111
  .option("--json", "Output JSON")
122
112
  .action(runAction(async (numberStr, opts) => {
123
113
  const ctx = await loadCtx(program);
124
- const number = parseInt(numberStr, 10);
125
- const repo = opts.repo ?? ctx.project.repoFullName;
114
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
126
115
  const reason = opts.reason ?? "";
127
116
  await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "issues", number, "release-claim", { repo, reason });
128
- if (opts.json) {
129
- console.log(JSON.stringify({ number, released: true, reason }));
130
- return;
131
- }
132
- console.log(`Released #${number}.`);
117
+ emit(opts, { number, released: true, reason }, () => console.log(`Released #${number}.`));
133
118
  }));
134
119
  issue
135
120
  .command("escalate <number>")
@@ -162,8 +147,7 @@ export function registerIssueCommand(program) {
162
147
  }
163
148
  }
164
149
  const ctx = await loadCtx(program);
165
- const number = parseInt(numberStr, 10);
166
- const repo = opts.repo ?? ctx.project.repoFullName;
150
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
167
151
  // Normalize once so the comment body, console line, and JSON all agree
168
152
  // (a raw "--owner @x" would otherwise print "owner @@x" / leak the @).
169
153
  const owner = normalizeOwner(opts.owner ?? resolveSignoffOwner() ?? ghIssueAuthor(repo, number));
@@ -193,19 +177,9 @@ export function registerIssueCommand(program) {
193
177
  ghIssueComment(repo, number, body);
194
178
  let released = false;
195
179
  if (opts.release) {
196
- try {
197
- await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "issues", number, "release-claim", { repo, reason: `escalated: ${reason}` });
198
- released = true;
199
- }
200
- catch (e) {
201
- console.warn(`Escalated, but the release signal failed: ${e.message}`);
202
- }
180
+ released = await signalBestEffort(ctx, "issues", number, "release-claim", { repo, reason: `escalated: ${reason}` }, "Escalated, but the release signal failed");
203
181
  }
204
- if (opts.json) {
205
- console.log(JSON.stringify({ number, escalated: true, label: NEEDS_HUMAN_LABEL, released, reason, owner: owner ?? null, category: opts.category ?? null, updated }));
206
- return;
207
- }
208
- console.log(`🚧 #${number} escalated${updated ? " (existing 🚧 comment updated)" : ""} → labelled "${NEEDS_HUMAN_LABEL}"${owner ? `, owner @${owner}` : ""}${released ? " and claim released" : " (claim kept — loop skips it this run)"}.`);
182
+ emit(opts, { number, escalated: true, label: NEEDS_HUMAN_LABEL, released, reason, owner: owner ?? null, category: opts.category ?? null, updated }, () => console.log(`🚧 #${number} escalated${updated ? " (existing 🚧 comment updated)" : ""} → labelled "${NEEDS_HUMAN_LABEL}"${owner ? `, owner @${owner}` : ""}${released ? " and claim released" : " (claim kept — loop skips it this run)"}.`));
209
183
  }));
210
184
  issue
211
185
  .command("evidence <number>")
@@ -229,8 +203,7 @@ export function registerIssueCommand(program) {
229
203
  process.exit(1);
230
204
  }
231
205
  const ctx = await loadCtx(program);
232
- const number = parseInt(numberStr, 10);
233
- const repo = opts.repo ?? ctx.project.repoFullName;
206
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
234
207
  const toImg = (p) => ({ filename: basename(p), data: new Uint8Array(readFileSync(p)) });
235
208
  const res = await ctx.client.attachEvidence(ctx.creds.org, ctx.project.projectId, number, {
236
209
  repo,
@@ -241,20 +214,18 @@ export function registerIssueCommand(program) {
241
214
  after: after.map(toImg),
242
215
  images: misc.map(toImg),
243
216
  });
244
- if (opts.json) {
245
- console.log(JSON.stringify(res, null, 2));
246
- return;
247
- }
248
- const where = [];
249
- if (res.threadNotified)
250
- where.push("reporter thread");
251
- if (res.prCommented)
252
- where.push("PR comment");
253
- if (res.githubCommented)
254
- where.push("GitHub issue comment");
255
- console.log(`🧪 Evidence delivered to: ${where.join(" + ") || "nowhere (check server logs)"}`);
256
- for (const u of res.threadImageUrls ?? [])
257
- console.log(` ${u}`);
217
+ emit(opts, res, () => {
218
+ const where = [];
219
+ if (res.threadNotified)
220
+ where.push("reporter thread");
221
+ if (res.prCommented)
222
+ where.push("PR comment");
223
+ if (res.githubCommented)
224
+ where.push("GitHub issue comment");
225
+ console.log(`🧪 Evidence delivered to: ${where.join(" + ") || "nowhere (check server logs)"}`);
226
+ for (const u of res.threadImageUrls ?? [])
227
+ console.log(` ${u}`);
228
+ }, { pretty: true });
258
229
  }));
259
230
  }
260
231
  function printIssueContext(issueData, triage, repo, project, json) {
@@ -1 +1 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6D5D"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D5D"}
@@ -1,11 +1,8 @@
1
1
  import { writeFileSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
- import { ShipFlowClient } from "../client.js";
4
- import { resolveApiUrl, resolveAuthToken, loadCredentials, refreshOpts } from "../config.js";
5
- import { resolveProject } from "../project.js";
6
3
  import { ghIssueList, ghIssueListFiltered } from "../gh.js";
7
4
  import { buildXlsx } from "../xlsx.js";
8
- import { loadCtx, runAction } from "./helpers.js";
5
+ import { emit, loadCtx, runAction } from "./helpers.js";
9
6
  const collect = (v, prev) => prev.concat([v]);
10
7
  export function registerIssuesCommand(program) {
11
8
  const issues = program.command("issues").description("Issue listing");
@@ -16,24 +13,15 @@ export function registerIssuesCommand(program) {
16
13
  .option("--limit <n>", "Max results", "30")
17
14
  .option("--json", "Output JSON")
18
15
  .action(runAction(async (opts) => {
19
- const auth = resolveAuthToken();
20
- const creds = loadCredentials();
21
- if (!auth || !creds) {
22
- console.error("Not signed in. Run: renaiss-shipflow login");
23
- process.exit(1);
24
- }
25
- const client = new ShipFlowClient({ baseUrl: resolveApiUrl(program.opts().apiUrl), jwt: auth.token, ...refreshOpts(creds) });
26
- const project = await resolveProject(client, creds);
16
+ const { project } = await loadCtx(program);
27
17
  const list = ghIssueList(project.repoFullName, opts.state, parseInt(opts.limit, 10));
28
- if (opts.json) {
29
- console.log(JSON.stringify({ project, issues: list }, null, 2));
30
- return;
31
- }
32
- for (const i of list) {
33
- console.log(`#${i.number} ${i.title}`);
34
- if (i.labels.length)
35
- console.log(` ${i.labels.map((l) => l.name).join(", ")}`);
36
- }
18
+ emit(opts, { project, issues: list }, () => {
19
+ for (const i of list) {
20
+ console.log(`#${i.number} ${i.title}`);
21
+ if (i.labels.length)
22
+ console.log(` ${i.labels.map((l) => l.name).join(", ")}`);
23
+ }
24
+ }, { pretty: true });
37
25
  }));
38
26
  issues
39
27
  .command("export")
@@ -1 +1 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAsB,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAsD,EAAE,EAAE;QACjF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YACzC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uFAAuF,CAAC;SACpG,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,MAAM,CAAC;SACrE,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,OAAO,EAAE,EAAc,CAAC;SAClF,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC9C,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+DAA+D,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,sBAAsB,EAAE,MAAM,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,2DAA2D,CAAC;SACnF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAGxB,EAAE,EAAE;QACH,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CACjB,IAAI,CAAC,GAAG;YACN,mBAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAC5F,CAAC;QACF,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAC3D,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;CACpE,CAAC;AAEF,SAAS,QAAQ,CAAC,CAAgB;IAChC,OAAO;QACL,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACrB,CAAC,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,IAAI,EAAE;QAChB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI;KACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiYxD;AAoCD;;+CAE+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpG"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4WxD;AAoCD;;+CAE+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpG"}
@@ -8,7 +8,7 @@ import { diffAnchors, buildReviewPayload } from "../review-contract.js";
8
8
  import { cleanupMergedLocalBranch, findSuspiciousEmails } from "../git-local.js";
9
9
  import { shellQuote } from "../sh.js";
10
10
  import { classifyPR, mergeDecision } from "../pr-state.js";
11
- import { loadCtx, runAction } from "./helpers.js";
11
+ import { emit, loadCtx, resolveTarget, runAction, signalBestEffort } from "./helpers.js";
12
12
  const APPROVED_LABEL = "shipflow-approved";
13
13
  /** Count a PR's unresolved review threads, failing *closed* on a transient
14
14
  * GraphQL blip: return `unavailable` so ready/automerge treat it as a blocker
@@ -60,23 +60,14 @@ export function registerPRCommand(program) {
60
60
  const header = buildShipFlowHeader(ctx.project.projectName, issueNumber, issueUrl);
61
61
  const body = `${header}\n\n${opts.body ?? ""}`;
62
62
  const created = ghPRCreate({ repo: ctx.project.repoFullName, body, title: opts.title, base: opts.base, head: branch, draft: opts.draft });
63
- try {
64
- await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "prs", created.number, "opened", {
65
- repo: ctx.project.repoFullName,
66
- branch,
67
- headSha: execSync("git rev-parse HEAD").toString().trim(),
68
- issueRefs: issueNumber ? [issueNumber] : [],
69
- previewUrl: opts.previewUrl ?? "",
70
- });
71
- }
72
- catch (e) {
73
- console.warn(`PR opened but ShipFlow signal failed: ${e.message}`);
74
- }
75
- if (opts.json) {
76
- console.log(JSON.stringify(created));
77
- return;
78
- }
79
- console.log(created.url);
63
+ await signalBestEffort(ctx, "prs", created.number, "opened", {
64
+ repo: ctx.project.repoFullName,
65
+ branch,
66
+ headSha: execSync("git rev-parse HEAD").toString().trim(),
67
+ issueRefs: issueNumber ? [issueNumber] : [],
68
+ previewUrl: opts.previewUrl ?? "",
69
+ }, "PR opened but ShipFlow signal failed");
70
+ emit(opts, created, () => console.log(created.url));
80
71
  }));
81
72
  pr
82
73
  .command("merge <number>")
@@ -86,26 +77,15 @@ export function registerPRCommand(program) {
86
77
  .option("--json", "Output JSON")
87
78
  .action(runAction(async (numberStr, opts) => {
88
79
  const ctx = await loadCtx(program);
89
- const number = parseInt(numberStr, 10);
90
- const result = ghPRMerge(ctx.project.repoFullName, number, opts.mode, !opts.keepBranch);
80
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
81
+ const result = ghPRMerge(repo, number, opts.mode, !opts.keepBranch);
91
82
  if (!opts.keepBranch)
92
83
  cleanupMergedLocalBranch(result.headBranch);
93
- let signalOk = true;
94
- try {
95
- await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "prs", number, "merged", {
96
- repo: ctx.project.repoFullName,
97
- mergedSha: result.mergedSha,
98
- });
99
- }
100
- catch (e) {
101
- signalOk = false;
102
- console.warn(`Merged but ShipFlow signal failed: ${e.message}`);
103
- }
104
- if (opts.json) {
105
- console.log(JSON.stringify({ number, merged: true, mergedSha: result.mergedSha, mode: opts.mode, signalOk }));
106
- return;
107
- }
108
- console.log(`merged: ${result.mergedSha}`);
84
+ const signalOk = await signalBestEffort(ctx, "prs", number, "merged", {
85
+ repo,
86
+ mergedSha: result.mergedSha,
87
+ }, "Merged but ShipFlow signal failed");
88
+ emit(opts, { number, merged: true, mergedSha: result.mergedSha, mode: opts.mode, signalOk }, () => console.log(`merged: ${result.mergedSha}`));
109
89
  }));
110
90
  pr
111
91
  .command("ready <number>")
@@ -115,8 +95,7 @@ export function registerPRCommand(program) {
115
95
  .option("--json", "Output JSON")
116
96
  .action(runAction(async (numberStr, opts) => {
117
97
  const ctx = await loadCtx(program);
118
- const number = parseInt(numberStr, 10);
119
- const repo = opts.repo ?? ctx.project.repoFullName;
98
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
120
99
  const policy = opts.policy ?? resolveMergePolicy();
121
100
  const staleHours = resolveStalePrHours();
122
101
  const me = ghCurrentLogin();
@@ -133,11 +112,7 @@ export function registerPRCommand(program) {
133
112
  number, state: cl.state, ciState: cl.ciState, approved: cl.approved, unresolvedThreads,
134
113
  ageHours: Math.round(cl.ageHours), policy, wouldMerge, blockers,
135
114
  };
136
- if (opts.json) {
137
- console.log(JSON.stringify(out, null, 2));
138
- return;
139
- }
140
- console.log(`PR #${number}: ${cl.state} · ci=${cl.ciState} · approved=${cl.approved} · policy=${policy} → ${wouldMerge ? "READY TO MERGE" : `not ready (${blockers.join("; ")})`}`);
115
+ emit(opts, out, () => console.log(`PR #${number}: ${cl.state} · ci=${cl.ciState} · approved=${cl.approved} · policy=${policy} → ${wouldMerge ? "READY TO MERGE" : `not ready (${blockers.join("; ")})`}`), { pretty: true });
141
116
  }));
142
117
  pr
143
118
  .command("automerge <number>")
@@ -148,8 +123,7 @@ export function registerPRCommand(program) {
148
123
  .option("--json", "Output JSON")
149
124
  .action(runAction(async (numberStr, opts) => {
150
125
  const ctx = await loadCtx(program);
151
- const number = parseInt(numberStr, 10);
152
- const repo = opts.repo ?? ctx.project.repoFullName;
126
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
153
127
  const policy = opts.policy ?? resolveMergePolicy();
154
128
  const staleHours = resolveStalePrHours();
155
129
  const me = ghCurrentLogin();
@@ -162,36 +136,19 @@ export function registerPRCommand(program) {
162
136
  const blockers = threads.unavailable ? ["review threads unavailable", ...decision.blockers] : decision.blockers;
163
137
  const wouldMerge = decision.wouldMerge && !threads.unavailable;
164
138
  if (!wouldMerge) {
165
- if (opts.json) {
166
- console.log(JSON.stringify({ number, merged: false, policy, blockers }));
167
- }
168
- else {
169
- console.log(`⏸️ PR #${number} not auto-merged: ${blockers.join("; ")}`);
170
- }
139
+ emit(opts, { number, merged: false, policy, blockers }, () => console.log(`⏸️ PR #${number} not auto-merged: ${blockers.join("; ")}`));
171
140
  process.exit(5);
172
141
  }
173
142
  const result = ghPRMerge(repo, number, opts.mode ?? "squash", true);
174
143
  // The loop runs in a reusable worktree; drop the merged local branch so it
175
144
  // doesn't accumulate stale branches across issues (remote is gone already).
176
145
  cleanupMergedLocalBranch(result.headBranch);
177
- try {
178
- await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "prs", number, "merged", { repo, mergedSha: result.mergedSha });
179
- }
180
- catch (e) {
181
- console.warn(`Merged but ShipFlow signal failed: ${e.message}`);
182
- }
146
+ await signalBestEffort(ctx, "prs", number, "merged", { repo, mergedSha: result.mergedSha }, "Merged but ShipFlow signal failed");
183
147
  const closed = (prView.closingIssuesReferences ?? []).map((i) => i.number);
184
148
  for (const n of closed) {
185
- try {
186
- await ctx.client.signal(ctx.creds.org, ctx.project.projectId, "issues", n, "release-claim", { repo, reason: `merged via PR #${number}` });
187
- }
188
- catch { /* best-effort */ }
149
+ await signalBestEffort(ctx, "issues", n, "release-claim", { repo, reason: `merged via PR #${number}` });
189
150
  }
190
- if (opts.json) {
191
- console.log(JSON.stringify({ number, merged: true, mergedSha: result.mergedSha, policy, closedIssues: closed }));
192
- return;
193
- }
194
- console.log(`✅ Merged PR #${number} (${result.mergedSha}) under policy=${policy}${closed.length ? ` — closes #${closed.join(", #")}` : ""}.`);
151
+ emit(opts, { number, merged: true, mergedSha: result.mergedSha, policy, closedIssues: closed }, () => console.log(`✅ Merged PR #${number} (${result.mergedSha}) under policy=${policy}${closed.length ? ` — closes #${closed.join(", #")}` : ""}.`));
195
152
  }));
196
153
  pr
197
154
  .command("sync <number>")
@@ -201,8 +158,7 @@ export function registerPRCommand(program) {
201
158
  .option("--json", "Output JSON")
202
159
  .action(runAction(async (numberStr, opts) => {
203
160
  const ctx = await loadCtx(program);
204
- const number = parseInt(numberStr, 10);
205
- const repo = opts.repo ?? ctx.project.repoFullName;
161
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
206
162
  const prView = ghPRView(repo, number);
207
163
  const base = prView.baseRefName;
208
164
  const head = prView.headRefName;
@@ -237,12 +193,7 @@ export function registerPRCommand(program) {
237
193
  conflicted = true;
238
194
  }
239
195
  if (conflicted) {
240
- if (opts.json) {
241
- console.log(JSON.stringify({ number, rebased: false, conflict: true, base }));
242
- }
243
- else {
244
- console.log(`🔀 PR #${number}: rebase onto ${base} conflicts — aborted. Resolve manually or escalate.`);
245
- }
196
+ emit(opts, { number, rebased: false, conflict: true, base }, () => console.log(`🔀 PR #${number}: rebase onto ${base} conflicts — aborted. Resolve manually or escalate.`));
246
197
  process.exit(6);
247
198
  }
248
199
  let pushed = false;
@@ -257,11 +208,7 @@ export function registerPRCommand(program) {
257
208
  }
258
209
  pushed = true;
259
210
  }
260
- if (opts.json) {
261
- console.log(JSON.stringify({ number, rebased: true, conflict: false, base, pushed }));
262
- return;
263
- }
264
- console.log(`🔀 PR #${number}: rebased "${head}" onto ${base}${pushed ? " and pushed" : ""}.`);
211
+ emit(opts, { number, rebased: true, conflict: false, base, pushed }, () => console.log(`🔀 PR #${number}: rebased "${head}" onto ${base}${pushed ? " and pushed" : ""}.`));
265
212
  }));
266
213
  pr
267
214
  .command("packet <number>")
@@ -270,8 +217,7 @@ export function registerPRCommand(program) {
270
217
  .option("--json", "Emit the packet as a structured object instead of markdown")
271
218
  .action(runAction(async (numberStr, opts) => {
272
219
  const ctx = await loadCtx(program);
273
- const number = parseInt(numberStr, 10);
274
- const repo = opts.repo ?? ctx.project.repoFullName;
220
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
275
221
  const prView = ghPRView(repo, number);
276
222
  let threads = [];
277
223
  try {
@@ -328,8 +274,7 @@ export function registerPRCommand(program) {
328
274
  .option("--json", "Output JSON")
329
275
  .action(runAction(async (numberStr, opts) => {
330
276
  const ctx = await loadCtx(program);
331
- const number = parseInt(numberStr, 10);
332
- const repo = opts.repo ?? ctx.project.repoFullName;
277
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
333
278
  // Only block on stdin when findings are actually piped (or "-" is
334
279
  // explicit). In an interactive terminal with no --findings this is the
335
280
  // approve flow (empty findings) — reading stdin would hang forever.
@@ -352,11 +297,7 @@ export function registerPRCommand(program) {
352
297
  ghCreateReview(repo, number, payload);
353
298
  const inlineCount = payload.comments.length;
354
299
  const foldedCount = findings.length - inlineCount;
355
- if (opts.json) {
356
- console.log(JSON.stringify({ number, verdict, inline: inlineCount, folded: foldedCount }));
357
- return;
358
- }
359
- console.log(`Posted ${verdict} review on #${number}: ${inlineCount} inline finding(s) on the diff${foldedCount ? `, ${foldedCount} folded into the body` : ""}.`);
300
+ emit(opts, { number, verdict, inline: inlineCount, folded: foldedCount }, () => console.log(`Posted ${verdict} review on #${number}: ${inlineCount} inline finding(s) on the diff${foldedCount ? `, ${foldedCount} folded into the body` : ""}.`));
360
301
  }));
361
302
  pr
362
303
  .command("approve <number>")
@@ -367,19 +308,13 @@ export function registerPRCommand(program) {
367
308
  .option("--json", "Output JSON")
368
309
  .action(runAction(async (numberStr, opts) => {
369
310
  const ctx = await loadCtx(program);
370
- const number = parseInt(numberStr, 10);
371
- const repo = opts.repo ?? ctx.project.repoFullName;
311
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
372
312
  // Gate: don't approve while external review threads (e.g. gemini-code-assist)
373
313
  // are still open — address + resolve them first.
374
314
  const unresolved = ghReviewThreads(repo, number).filter((t) => !t.isResolved);
375
315
  if (unresolved.length && !opts.force) {
376
316
  const list = unresolved.map((t) => ` • ${t.author} ${t.path}:${t.line ?? "?"} — ${t.body.split("\n")[0].slice(0, 80)}`).join("\n");
377
- if (opts.json) {
378
- console.log(JSON.stringify({ number, approved: false, unresolvedThreads: unresolved.length }));
379
- }
380
- else {
381
- console.error(`⛔ Not approving PR #${number}: ${unresolved.length} unresolved review thread(s):\n${list}\nAddress + resolve them (pr resolve), then approve (or --force).`);
382
- }
317
+ emit(opts, { number, approved: false, unresolvedThreads: unresolved.length }, () => console.error(`⛔ Not approving PR #${number}: ${unresolved.length} unresolved review thread(s):\n${list}\nAddress + resolve them (pr resolve), then approve (or --force).`));
383
318
  process.exit(7);
384
319
  }
385
320
  ghEnsureLabel(repo, APPROVED_LABEL, "0e8a16", "Reviewed and approved by the ShipFlow loop reviewer");
@@ -390,11 +325,7 @@ export function registerPRCommand(program) {
390
325
  // header; no extra prefix (keeps the PR comment short + non-redundant).
391
326
  execSync(`gh pr comment ${number} --repo ${shellQuote(repo)} --body ${shellQuote(opts.comment)}`, { stdio: "ignore" });
392
327
  }
393
- if (opts.json) {
394
- console.log(JSON.stringify({ number, approved: true, label: APPROVED_LABEL }));
395
- return;
396
- }
397
- console.log(`✅ PR #${number} approved — labelled "${APPROVED_LABEL}" (automerge can proceed under an auto-* policy).`);
328
+ emit(opts, { number, approved: true, label: APPROVED_LABEL }, () => console.log(`✅ PR #${number} approved — labelled "${APPROVED_LABEL}" (automerge can proceed under an auto-* policy).`));
398
329
  }));
399
330
  pr
400
331
  .command("reviews <number>")
@@ -403,8 +334,7 @@ export function registerPRCommand(program) {
403
334
  .option("--json", "Output JSON")
404
335
  .action(runAction(async (numberStr, opts) => {
405
336
  const ctx = await loadCtx(program);
406
- const number = parseInt(numberStr, 10);
407
- const repo = opts.repo ?? ctx.project.repoFullName;
337
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
408
338
  const me = ghCurrentLogin();
409
339
  const threads = ghReviewThreads(repo, number);
410
340
  const unresolved = threads.filter((t) => !t.isResolved);
@@ -417,17 +347,15 @@ export function registerPRCommand(program) {
417
347
  reviewers: [...new Set(threads.map((t) => t.author).filter(Boolean))],
418
348
  threads: unresolved.map((t) => ({ id: t.id, author: t.author, path: t.path, line: t.line, body: t.body })),
419
349
  };
420
- if (opts.json) {
421
- console.log(JSON.stringify(out, null, 2));
422
- return;
423
- }
424
- if (!unresolved.length) {
425
- console.log(`✅ PR #${number}: no unresolved review threads.`);
426
- return;
427
- }
428
- console.log(`PR #${number}: ${unresolved.length} unresolved thread(s)${out.blocking ? " — BLOCKS approval/merge" : ""}`);
429
- for (const t of unresolved)
430
- console.log(` • ${t.author} ${t.path}:${t.line ?? "?"} — ${t.body.split("\n")[0].slice(0, 90)}`);
350
+ emit(opts, out, () => {
351
+ if (!unresolved.length) {
352
+ console.log(`✅ PR #${number}: no unresolved review threads.`);
353
+ return;
354
+ }
355
+ console.log(`PR #${number}: ${unresolved.length} unresolved thread(s)${out.blocking ? " — BLOCKS approval/merge" : ""}`);
356
+ for (const t of unresolved)
357
+ console.log(` • ${t.author} ${t.path}:${t.line ?? "?"} — ${t.body.split("\n")[0].slice(0, 90)}`);
358
+ }, { pretty: true });
431
359
  }));
432
360
  pr
433
361
  .command("resolve <number>")
@@ -437,17 +365,12 @@ export function registerPRCommand(program) {
437
365
  .option("--json", "Output JSON")
438
366
  .action(runAction(async (numberStr, opts) => {
439
367
  const ctx = await loadCtx(program);
440
- const number = parseInt(numberStr, 10);
441
- const repo = opts.repo ?? ctx.project.repoFullName;
368
+ const { number, repo } = resolveTarget(ctx, numberStr, opts);
442
369
  const unresolved = ghReviewThreads(repo, number).filter((t) => !t.isResolved);
443
370
  const targets = opts.thread?.length ? unresolved.filter((t) => opts.thread.includes(t.id)) : unresolved;
444
371
  for (const t of targets)
445
372
  ghResolveReviewThread(t.id);
446
- if (opts.json) {
447
- console.log(JSON.stringify({ number, resolved: targets.length }));
448
- return;
449
- }
450
- console.log(`🧵 Resolved ${targets.length} review thread(s) on PR #${number}.`);
373
+ emit(opts, { number, resolved: targets.length }, () => console.log(`🧵 Resolved ${targets.length} review thread(s) on PR #${number}.`));
451
374
  }));
452
375
  }
453
376
  /** Author emails on the branch's own commits (vs origin main/master), falling