@renaiss-shipflow/cli 0.15.1 → 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 (66) hide show
  1. package/dist/commands/activity.d.ts.map +1 -1
  2. package/dist/commands/activity.js +20 -28
  3. package/dist/commands/activity.js.map +1 -1
  4. package/dist/commands/auth.d.ts.map +1 -1
  5. package/dist/commands/auth.js +6 -2
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/channels.d.ts.map +1 -1
  8. package/dist/commands/channels.js +28 -42
  9. package/dist/commands/channels.js.map +1 -1
  10. package/dist/commands/claims.d.ts.map +1 -1
  11. package/dist/commands/claims.js +14 -25
  12. package/dist/commands/claims.js.map +1 -1
  13. package/dist/commands/config.d.ts.map +1 -1
  14. package/dist/commands/config.js +23 -6
  15. package/dist/commands/config.js.map +1 -1
  16. package/dist/commands/features.d.ts.map +1 -1
  17. package/dist/commands/features.js +27 -38
  18. package/dist/commands/features.js.map +1 -1
  19. package/dist/commands/helpers.d.ts +84 -4
  20. package/dist/commands/helpers.d.ts.map +1 -1
  21. package/dist/commands/helpers.js +77 -24
  22. package/dist/commands/helpers.js.map +1 -1
  23. package/dist/commands/inbox.d.ts.map +1 -1
  24. package/dist/commands/inbox.js +17 -28
  25. package/dist/commands/inbox.js.map +1 -1
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +5 -11
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/issue.d.ts.map +1 -1
  30. package/dist/commands/issue.js +29 -52
  31. package/dist/commands/issue.js.map +1 -1
  32. package/dist/commands/issues.d.ts.map +1 -1
  33. package/dist/commands/issues.js +13 -25
  34. package/dist/commands/issues.js.map +1 -1
  35. package/dist/commands/pr.d.ts.map +1 -1
  36. package/dist/commands/pr.js +53 -118
  37. package/dist/commands/pr.js.map +1 -1
  38. package/dist/commands/regression.d.ts.map +1 -1
  39. package/dist/commands/regression.js +4 -22
  40. package/dist/commands/regression.js.map +1 -1
  41. package/dist/commands/release.d.ts.map +1 -1
  42. package/dist/commands/release.js +11 -22
  43. package/dist/commands/release.js.map +1 -1
  44. package/dist/commands/repos.d.ts.map +1 -1
  45. package/dist/commands/repos.js +45 -65
  46. package/dist/commands/repos.js.map +1 -1
  47. package/dist/commands/stats.d.ts.map +1 -1
  48. package/dist/commands/stats.js +35 -43
  49. package/dist/commands/stats.js.map +1 -1
  50. package/dist/commands/status.d.ts.map +1 -1
  51. package/dist/commands/status.js +16 -27
  52. package/dist/commands/status.js.map +1 -1
  53. package/dist/commands/test.d.ts.map +1 -1
  54. package/dist/commands/test.js +20 -5
  55. package/dist/commands/test.js.map +1 -1
  56. package/dist/commands/trigger.d.ts.map +1 -1
  57. package/dist/commands/trigger.js +11 -17
  58. package/dist/commands/trigger.js.map +1 -1
  59. package/dist/commands/workflows.d.ts.map +1 -1
  60. package/dist/commands/workflows.js +38 -67
  61. package/dist/commands/workflows.js.map +1 -1
  62. package/dist/packet.d.ts +77 -1
  63. package/dist/packet.d.ts.map +1 -1
  64. package/dist/packet.js +87 -16
  65. package/dist/packet.js.map +1 -1
  66. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC9D"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+B9D"}
@@ -1,4 +1,4 @@
1
- import { getClient, getOrg, getFormat, handleError } from "./helpers.js";
1
+ import { getApiCtx, runAction } from "./helpers.js";
2
2
  import { formatOutput, printTable } from "../output.js";
3
3
  export function registerActivityCommand(program) {
4
4
  program
@@ -7,32 +7,24 @@ export function registerActivityCommand(program) {
7
7
  .option("--last <n>", "Number of recent events to show", "10")
8
8
  .option("--json", "Output as JSON")
9
9
  .option("--yaml", "Output as YAML")
10
- .action(async function () {
11
- try {
12
- const client = getClient(this);
13
- const org = getOrg(this);
14
- const opts = this.opts();
15
- const limit = parseInt(opts.last, 10) || 10;
16
- const format = getFormat(this);
17
- const result = await client.listActivity(org, { limit });
18
- const events = result.data;
19
- formatOutput(format, events, () => {
20
- if (events.length === 0) {
21
- console.log("No recent activity.");
22
- return;
23
- }
24
- printTable(["Time", "Repo", "Workflow", "Status", "Trigger"], events.map((e) => [
25
- e.startedAt,
26
- e.repoName || e.repositoryId || "-",
27
- e.workflowType,
28
- e.status,
29
- e.triggerEvent || "-",
30
- ]));
31
- });
32
- }
33
- catch (err) {
34
- handleError(err);
35
- }
36
- });
10
+ .action(runAction(async (opts, cmd) => {
11
+ const { client, org, format } = getApiCtx(cmd);
12
+ const limit = parseInt(opts.last, 10) || 10;
13
+ const result = await client.listActivity(org, { limit });
14
+ const events = result.data;
15
+ formatOutput(format, events, () => {
16
+ if (events.length === 0) {
17
+ console.log("No recent activity.");
18
+ return;
19
+ }
20
+ printTable(["Time", "Repo", "Workflow", "Status", "Trigger"], events.map((e) => [
21
+ e.startedAt,
22
+ e.repoName || e.repositoryId || "-",
23
+ e.workflowType,
24
+ e.status,
25
+ e.triggerEvent || "-",
26
+ ]));
27
+ });
28
+ }));
37
29
  }
38
30
  //# sourceMappingURL=activity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,YAAY,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC7D,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,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAE3B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;gBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,OAAO;gBACT,CAAC;gBACD,UAAU,CACR,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EACjD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAChB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,IAAK,CAAS,CAAC,YAAY,IAAI,GAAG;oBAC5C,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,MAAM;oBACP,CAAS,CAAC,YAAY,IAAI,GAAG;iBAC/B,CAAC,CACH,CAAC;YACJ,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":"activity.js","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,YAAY,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAsB,EAAE,GAAY,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAE3B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,UAAU,CACR,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EACjD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,IAAK,CAAS,CAAC,YAAY,IAAI,GAAG;gBAC5C,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,MAAM;gBACP,CAAS,CAAC,YAAY,IAAI,GAAG;aAC/B,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D3D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8D3D"}
@@ -5,7 +5,7 @@ export function registerAuthCommands(program) {
5
5
  .description("Manage authentication");
6
6
  auth
7
7
  .command("login")
8
- .description("Authenticate with an API key")
8
+ .description("[deprecated] Authenticate with an API key — prefer `renaiss-shipflow login`")
9
9
  .argument("[api-key]", "API key (sfk_...)")
10
10
  .action(async (apiKey) => {
11
11
  if (!apiKey) {
@@ -27,6 +27,10 @@ export function registerAuthCommands(program) {
27
27
  config.apiKey = apiKey;
28
28
  saveConfig(config);
29
29
  console.log("API key saved. You can now use renaiss-shipflow commands.");
30
+ // One auth path now: `login` (GitHub-based JWT) signs you in for every
31
+ // command. Keep this alias working for existing sfk_ keys, but point users
32
+ // at the unified command.
33
+ console.log("Note: `auth login` is deprecated — prefer `renaiss-shipflow login` (GitHub sign-in, works for every command).");
30
34
  });
31
35
  auth
32
36
  .command("logout")
@@ -51,7 +55,7 @@ export function registerAuthCommands(program) {
51
55
  }
52
56
  }
53
57
  else {
54
- console.log("Not authenticated. Run: renaiss-shipflow auth login");
58
+ console.log("Not authenticated. Run: renaiss-shipflow login");
55
59
  }
56
60
  });
57
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElF,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAExC,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,MAAe,EAAE,EAAE;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,+BAA+B;YAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBAC7C,EAAE,CAAC,QAAQ,CAAC,gDAAgD,EAAE,CAAC,MAAM,EAAE,EAAE;oBACvE,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,GAAG,EAAE;QACX,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElF,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAExC,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6EAA6E,CAAC;SAC1F,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,MAAe,EAAE,EAAE;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,+BAA+B;YAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBAC7C,EAAE,CAAC,QAAQ,CAAC,gDAAgD,EAAE,CAAC,MAAM,EAAE,EAAE;oBACvE,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,+GAA+G,CAAC,CAAC;IAC/H,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,GAAG,EAAE;QACX,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8D9D"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD9D"}
@@ -1,4 +1,4 @@
1
- import { getClient, getOrg, getFormat, handleError } from "./helpers.js";
1
+ import { getApiCtx, runAction } from "./helpers.js";
2
2
  import { formatOutput, printTable } from "../output.js";
3
3
  export function registerChannelCommands(program) {
4
4
  const channels = program
@@ -9,52 +9,38 @@ export function registerChannelCommands(program) {
9
9
  .description("List notification channels")
10
10
  .option("--json", "Output as JSON")
11
11
  .option("--yaml", "Output as YAML")
12
- .action(async function () {
13
- try {
14
- const client = getClient(this);
15
- const org = getOrg(this);
16
- const data = await client.listChannels(org);
17
- const format = getFormat(this);
18
- formatOutput(format, data, () => {
19
- if (data.length === 0) {
20
- console.log("No notification channels configured.");
21
- return;
22
- }
23
- printTable(["ID", "Type", "Label", "Identifier", "Created"], data.map((c) => [
24
- c.id,
25
- c.channelType,
26
- c.label,
27
- c.channelIdentifier,
28
- c.createdAt,
29
- ]));
30
- });
31
- }
32
- catch (err) {
33
- handleError(err);
34
- }
35
- });
12
+ .action(runAction(async (_opts, cmd) => {
13
+ const { client, org, format } = getApiCtx(cmd);
14
+ const data = await client.listChannels(org);
15
+ formatOutput(format, data, () => {
16
+ if (data.length === 0) {
17
+ console.log("No notification channels configured.");
18
+ return;
19
+ }
20
+ printTable(["ID", "Type", "Label", "Identifier", "Created"], data.map((c) => [
21
+ c.id,
22
+ c.channelType,
23
+ c.label,
24
+ c.channelIdentifier,
25
+ c.createdAt,
26
+ ]));
27
+ });
28
+ }));
36
29
  channels
37
30
  .command("add")
38
31
  .description("Add a notification channel")
39
32
  .requiredOption("--type <type>", "Channel type (discord, slack, webhook, email)")
40
33
  .requiredOption("--identifier <id>", "Channel identifier (e.g. channel ID, URL)")
41
34
  .requiredOption("--label <name>", "Display label")
42
- .action(async function () {
43
- try {
44
- const client = getClient(this);
45
- const org = getOrg(this);
46
- const opts = this.opts();
47
- const channel = await client.addChannel(org, {
48
- channelType: opts.type,
49
- channelIdentifier: opts.identifier,
50
- label: opts.label,
51
- });
52
- console.log(`Channel "${channel.label}" (${channel.channelType}) added.`);
53
- console.log(` ID: ${channel.id}`);
54
- }
55
- catch (err) {
56
- handleError(err);
57
- }
58
- });
35
+ .action(runAction(async (opts, cmd) => {
36
+ const { client, org } = getApiCtx(cmd);
37
+ const channel = await client.addChannel(org, {
38
+ channelType: opts.type,
39
+ channelIdentifier: opts.identifier,
40
+ label: opts.label,
41
+ });
42
+ console.log(`Channel "${channel.label}" (${channel.channelType}) added.`);
43
+ console.log(` ID: ${channel.id}`);
44
+ }));
59
45
  }
60
46
  //# sourceMappingURL=channels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,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,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/B,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;oBACpD,OAAO;gBACT,CAAC;gBACD,UAAU,CACR,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACd,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,SAAS;iBACZ,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,eAAe,EAAE,+CAA+C,CAAC;SAChF,cAAc,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;SAChF,cAAc,CAAC,gBAAgB,EAAE,eAAe,CAAC;SACjD,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,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC3C,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,iBAAiB,EAAE,IAAI,CAAC,UAAU;gBAClC,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAc,EAAE,GAAY,EAAE,EAAE;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAE5C,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,UAAU,CACR,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACd,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,SAAS;aACZ,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEN,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,eAAe,EAAE,+CAA+C,CAAC;SAChF,cAAc,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;SAChF,cAAc,CAAC,gBAAgB,EAAE,eAAe,CAAC;SACjD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAyD,EAAE,GAAY,EAAE,EAAE;QAClG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3C,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,iBAAiB,EAAE,IAAI,CAAC,UAAU;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/commands/claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB5D"}
1
+ {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/commands/claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB5D"}
@@ -1,33 +1,22 @@
1
- import { ShipFlowClient } from "../client.js";
2
- import { resolveApiUrl, resolveAuthToken, loadCredentials, refreshOpts } from "../config.js";
3
- import { resolveProject } from "../project.js";
1
+ import { emit, loadCtx, runAction } from "./helpers.js";
4
2
  export function registerClaimsCommand(program) {
5
3
  program
6
4
  .command("claims")
7
5
  .description("List active agent claims (who is working on what)")
8
6
  .option("--json", "Output JSON")
9
- .action(async (opts) => {
10
- const auth = resolveAuthToken();
11
- const creds = loadCredentials();
12
- if (!auth || !creds) {
13
- console.error("Not signed in. Run: renaiss-shipflow login");
14
- process.exit(1);
15
- }
16
- const client = new ShipFlowClient({ baseUrl: resolveApiUrl(program.opts().apiUrl), jwt: auth.token, ...refreshOpts(creds) });
17
- const project = await resolveProject(client, creds);
7
+ .action(runAction(async (opts) => {
8
+ const { creds, client, project } = await loadCtx(program);
18
9
  const claims = await client.listClaims(creds.org, project.projectId);
19
- if (opts.json) {
20
- console.log(JSON.stringify({ claims }, null, 2));
21
- return;
22
- }
23
- if (claims.length === 0) {
24
- console.log("No active claims — every open issue is up for grabs.");
25
- return;
26
- }
27
- for (const c of claims) {
28
- const agent = c.agent ? ` (${c.agent})` : "";
29
- console.log(`#${c.issueNumber} ${c.repo} — ${c.actor}${agent}, expires ${c.expiresAt}`);
30
- }
31
- });
10
+ emit(opts, { claims }, () => {
11
+ if (claims.length === 0) {
12
+ console.log("No active claims — every open issue is up for grabs.");
13
+ return;
14
+ }
15
+ for (const c of claims) {
16
+ const agent = c.agent ? ` (${c.agent})` : "";
17
+ console.log(`#${c.issueNumber} ${c.repo} — ${c.actor}${agent}, expires ${c.expiresAt}`);
18
+ }
19
+ }, { pretty: true });
20
+ }));
32
21
  }
33
22
  //# sourceMappingURL=claims.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/commands/claims.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAG,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACtG,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7H,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,GAAG,KAAK,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/commands/claims.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACnD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzG,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,GAAG,KAAK,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyD5D"}
@@ -33,8 +33,14 @@ const SETTINGS = [
33
33
  ];
34
34
  const byKey = new Map(SETTINGS.map((s) => [s.key, s]));
35
35
  const KEYS = SETTINGS.map((s) => s.key);
36
- function unknownKey(key) {
37
- console.error(`Unknown key: ${key} (supported: ${KEYS.join(", ")})`);
36
+ // JSON-aware so `config get/set <bad-key> --json` keeps the machine-readable
37
+ // error envelope contract (PR #178 review).
38
+ function unknownKey(key, json) {
39
+ const message = `Unknown key: ${key} (supported: ${KEYS.join(", ")})`;
40
+ if (json)
41
+ console.log(JSON.stringify({ error: message }));
42
+ else
43
+ console.error(message);
38
44
  process.exit(1);
39
45
  }
40
46
  export function registerConfigCommand(program) {
@@ -42,18 +48,29 @@ export function registerConfigCommand(program) {
42
48
  config
43
49
  .command("set <key> <value>")
44
50
  .description(`Set a preference. Keys: ${KEYS.join(", ")}`)
45
- .action((key, value) => {
46
- const s = byKey.get(key) ?? unknownKey(key);
51
+ .option("--json", "Output JSON")
52
+ .action((key, value, opts) => {
53
+ const s = byKey.get(key) ?? unknownKey(key, opts.json);
47
54
  const cfg = loadConfig();
48
55
  let echo;
49
56
  try {
50
57
  echo = s.set(value, cfg);
51
58
  }
52
59
  catch (e) {
53
- console.error(e.message);
60
+ if (opts.json) {
61
+ console.log(JSON.stringify({ error: e.message }));
62
+ }
63
+ else {
64
+ console.error(e.message);
65
+ }
54
66
  process.exit(1);
55
67
  }
56
68
  saveConfig(cfg);
69
+ if (opts.json) {
70
+ // Echo the resolved (env > config > default) value — same shape as `config get --json`.
71
+ console.log(JSON.stringify({ [s.field]: s.effective() ?? null }));
72
+ return;
73
+ }
57
74
  console.log(`${key} = ${echo}`);
58
75
  });
59
76
  config
@@ -61,7 +78,7 @@ export function registerConfigCommand(program) {
61
78
  .description("Read a preference (env vars override stored config)")
62
79
  .option("--json", "Output JSON")
63
80
  .action((key, opts) => {
64
- const s = byKey.get(key) ?? unknownKey(key);
81
+ const s = byKey.get(key) ?? unknownKey(key, opts.json);
65
82
  const v = s.effective();
66
83
  if (opts.json) {
67
84
  console.log(JSON.stringify({ [s.field]: v ?? null }));
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/commands/features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C9D"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/commands/features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC9D"}
@@ -1,50 +1,39 @@
1
- import { ShipFlowClient } from "../client.js";
2
- import { resolveApiUrl, resolveAuthToken, loadCredentials, refreshOpts } from "../config.js";
3
- import { resolveProject } from "../project.js";
1
+ import { emit, loadCtx, runAction } from "./helpers.js";
4
2
  export function registerFeaturesCommand(program) {
5
3
  program
6
4
  .command("features")
7
5
  .description("ShipFlow's feature map for this project (features → file paths/test info) — the reviewer's whole-system view")
8
6
  .option("--json", "Output the raw feature map")
9
7
  .option("--category <name>", "Filter to one category")
10
- .action(async (opts) => {
11
- const auth = resolveAuthToken();
12
- const creds = loadCredentials();
13
- if (!auth || !creds) {
14
- console.error("Not signed in. Run: renaiss-shipflow login");
15
- process.exit(1);
16
- }
17
- const client = new ShipFlowClient({ baseUrl: resolveApiUrl(program.opts().apiUrl), jwt: auth.token, ...refreshOpts(creds) });
18
- const project = await resolveProject(client, creds);
8
+ .action(runAction(async (opts) => {
9
+ const { creds, client, project } = await loadCtx(program);
19
10
  const fm = await client.getFeatureMapping(creds.org, project.projectId);
20
11
  const features = fm.features ?? {};
21
12
  const keys = Object.keys(features).filter((k) => !opts.category || (features[k].category ?? "") === opts.category);
22
- if (opts.json) {
23
- const out = opts.category ? { ...fm, features: Object.fromEntries(keys.map((k) => [k, features[k]])) } : fm;
24
- console.log(JSON.stringify(out, null, 2));
25
- return;
26
- }
27
- if (!keys.length) {
28
- console.log("No feature map for this project yet. Generate it from the ShipFlow dashboard.");
29
- return;
30
- }
31
- const byCat = new Map();
32
- for (const k of keys) {
33
- const cat = features[k].category || "uncategorized";
34
- if (!byCat.has(cat))
35
- byCat.set(cat, []);
36
- byCat.get(cat).push(k);
37
- }
38
- console.log(`🗺️ Feature map — ${keys.length} feature(s)${fm.lastUpdated ? ` (updated ${fm.lastUpdated})` : ""}`);
39
- for (const [cat, ks] of [...byCat].sort((a, b) => a[0].localeCompare(b[0]))) {
40
- console.log(`\n${cat}`);
41
- for (const k of ks.sort()) {
42
- const f = features[k];
43
- const paths = f.paths ?? [];
44
- const shown = paths.slice(0, 3).join(", ");
45
- console.log(` • ${f.name || k}${f.test_priority ? ` [${f.test_priority}]` : ""}${shown ? ` — ${shown}${paths.length > 3 ? " …" : ""}` : ""}`);
13
+ const jsonOut = opts.category ? { ...fm, features: Object.fromEntries(keys.map((k) => [k, features[k]])) } : fm;
14
+ emit(opts, jsonOut, () => {
15
+ if (!keys.length) {
16
+ console.log("No feature map for this project yet. Generate it from the ShipFlow dashboard.");
17
+ return;
46
18
  }
47
- }
48
- });
19
+ const byCat = new Map();
20
+ for (const k of keys) {
21
+ const cat = features[k].category || "uncategorized";
22
+ if (!byCat.has(cat))
23
+ byCat.set(cat, []);
24
+ byCat.get(cat).push(k);
25
+ }
26
+ console.log(`🗺️ Feature map — ${keys.length} feature(s)${fm.lastUpdated ? ` (updated ${fm.lastUpdated})` : ""}`);
27
+ for (const [cat, ks] of [...byCat].sort((a, b) => a[0].localeCompare(b[0]))) {
28
+ console.log(`\n${cat}`);
29
+ for (const k of ks.sort()) {
30
+ const f = features[k];
31
+ const paths = f.paths ?? [];
32
+ const shown = paths.slice(0, 3).join(", ");
33
+ console.log(` • ${f.name || k}${f.test_priority ? ` [${f.test_priority}]` : ""}${shown ? ` — ${shown}${paths.length > 3 ? " …" : ""}` : ""}`);
34
+ }
35
+ }
36
+ }, { pretty: true });
37
+ }));
49
38
  }
50
39
  //# sourceMappingURL=features.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/commands/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/commands/features.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,42 @@
1
1
  import type { Command } from "commander";
2
- import { ShipFlowClient } from "../client.js";
2
+ import { ShipFlowClient, type RefreshedTokens } from "../client.js";
3
+ import { type StoredCredentials } from "../config.js";
3
4
  import type { OutputFormat } from "../output.js";
4
- /** Extract common options from any command that has inherited parent opts. */
5
+ /** The auth half of a ShipFlowClient's options, resolved from the one shared
6
+ * credential context. A `login` JWT wires transparent refresh so a signed-in
7
+ * session stays valid across the 30-day window; a legacy `sfk_` API key is sent
8
+ * as-is. Both go out as Bearer tokens — so `login` signs a user in for EVERY
9
+ * command, not just the JWT/loop ones. Pure + testable (no process/global reads). */
10
+ export type ClientAuth = {
11
+ jwt: string;
12
+ refreshToken: string;
13
+ onRefreshed: (t: RefreshedTokens) => void;
14
+ } | {
15
+ apiKey: string;
16
+ };
17
+ export declare function buildClientAuth(auth: {
18
+ token: string;
19
+ kind: "jwt" | "apiKey";
20
+ }, creds: StoredCredentials | null): ClientAuth;
21
+ /** A client for the API-key-style commands (repos/workflows/channels/activity/
22
+ * stats/trigger). Resolves credentials through the SAME context as the loop's
23
+ * JWT commands (resolveAuthToken → buildClientAuth), so running `login` is
24
+ * enough to use everything. Exits 1 when nothing is signed in. */
5
25
  export declare function getClient(cmd: Command): ShipFlowClient;
26
+ /** Resolve a JWT-authenticated client + the shared credential context WITHOUT
27
+ * resolving a project — the project-less core of {@link loadCtx}. For commands
28
+ * that hit an org-scoped endpoint but don't need the cwd's project (e.g.
29
+ * `regression status`), or that must run other checks before the project is
30
+ * resolved (`regression` trigger resolves the ref first). Exits 1 when not
31
+ * signed in. */
32
+ export declare function loadJwtCtx(program: Command): {
33
+ auth: {
34
+ token: string;
35
+ kind: "jwt" | "apiKey";
36
+ };
37
+ creds: StoredCredentials;
38
+ client: ShipFlowClient;
39
+ };
6
40
  /** Bootstrap a JWT-authenticated client + resolved project for the loop-facing
7
41
  * `pr`/`issue` commands. Signs in from stored credentials (JWT + refresh),
8
42
  * wiring transparent token refresh, and resolves the active project from the
@@ -12,13 +46,59 @@ export declare function loadCtx(program: Command): Promise<{
12
46
  token: string;
13
47
  kind: "jwt" | "apiKey";
14
48
  };
15
- creds: import("../config.js").StoredCredentials;
49
+ creds: StoredCredentials;
16
50
  client: ShipFlowClient;
17
51
  project: import("../project.js").ResolvedProject;
18
52
  }>;
53
+ /** Best-effort `signal`: on failure, warn (prefixing the message with `label` —
54
+ * e.g. "Merged but ShipFlow signal failed") and continue instead of throwing,
55
+ * so a transient signal blip never fails the surrounding command. Returns
56
+ * whether the signal landed. Omit `label` to swallow silently (no warning).
57
+ * The warn-and-continue semantics are load-bearing for the loop — keep exact. */
58
+ export declare function signalBestEffort(ctx: {
59
+ client: ShipFlowClient;
60
+ creds: {
61
+ org: string;
62
+ };
63
+ project: {
64
+ projectId: string;
65
+ };
66
+ }, refKind: "issues" | "prs", n: number, action: "claim" | "release-claim" | "opened" | "merged", body: Record<string, unknown>, label?: string): Promise<boolean>;
67
+ /** Resolve the shared context for the API-key-style commands in one call: an
68
+ * authenticated {@link getClient}, the target {@link getOrg}, and the requested
69
+ * {@link getFormat}. Preserves the getClient-first order so an unsigned-in
70
+ * invocation still exits 1 before anything else runs. */
71
+ export declare function getApiCtx(cmd: Command): {
72
+ client: ShipFlowClient;
73
+ org: string;
74
+ format: OutputFormat;
75
+ };
76
+ /** Unpack a `<number>` positional + optional `--repo` override into the numeric
77
+ * issue/PR number and the resolved repo (defaulting to the active project's).
78
+ * Collapses the `parseInt(numberStr, 10)` + `opts.repo ?? ctx.project.repoFullName`
79
+ * pair repeated across the `pr`/`issue` subcommands. */
80
+ export declare function resolveTarget(ctx: {
81
+ project: {
82
+ repoFullName: string;
83
+ };
84
+ }, numberStr: string, opts: {
85
+ repo?: string;
86
+ }): {
87
+ number: number;
88
+ repo: string;
89
+ };
90
+ /** Print a command's result once, honoring `--json`. In JSON mode, serializes
91
+ * `jsonValue` (compact by default; pretty-printed with 2-space indent when
92
+ * `pretty`) and returns; otherwise runs `humanPrint`. Replaces the hand-rolled
93
+ * `if (opts.json) { console.log(JSON.stringify(x)); return; }` branches across
94
+ * the commands — JSON output stays byte-identical. */
95
+ export declare function emit(opts: {
96
+ json?: boolean;
97
+ }, jsonValue: unknown, humanPrint: () => void, { pretty }?: {
98
+ pretty?: boolean;
99
+ }): void;
19
100
  export declare function getOrg(cmd: Command): string;
20
101
  export declare function getFormat(cmd: Command): OutputFormat;
21
- export declare function handleError(err: unknown): never;
22
102
  /**
23
103
  * Reserved exit code for an unexpected/transient CLI failure (an unhandled throw
24
104
  * — a network blip, a `gh`/`git` hiccup, etc.). It's deliberately distinct from
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAWtD;AAED;;;6CAG6C;AAC7C,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO;;;;;;;;GAO7C;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAKpD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAO/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,EAC3C,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAgB/B"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"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"}