@runcofactor/cli 0.10.0 → 0.15.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 (166) hide show
  1. package/dist/account-22LMP5PX.js +255 -0
  2. package/dist/account-22LMP5PX.js.map +1 -0
  3. package/dist/{api-catalog-GFGCLVS4.js → api-catalog-WTFQNLK6.js} +5 -4
  4. package/dist/{api-catalog-GFGCLVS4.js.map → api-catalog-WTFQNLK6.js.map} +1 -1
  5. package/dist/{attachment-SJC7D7FY.js → attachment-U3NKVPEY.js} +5 -4
  6. package/dist/{attachment-SJC7D7FY.js.map → attachment-U3NKVPEY.js.map} +1 -1
  7. package/dist/augmentor-5GMNAX4M.js +198 -0
  8. package/dist/augmentor-5GMNAX4M.js.map +1 -0
  9. package/dist/{auth-EN6NQCJY.js → auth-VQG2CDUD.js} +3 -2
  10. package/dist/{chunk-A4OFTUVV.js → chunk-3X3NW7QA.js} +7 -4
  11. package/dist/chunk-3X3NW7QA.js.map +1 -0
  12. package/dist/{chunk-N7HFALX3.js → chunk-46IUJXSD.js} +2 -2
  13. package/dist/{chunk-IMPZAX6L.js → chunk-5GD47G2D.js} +37 -1
  14. package/dist/{chunk-IMPZAX6L.js.map → chunk-5GD47G2D.js.map} +1 -1
  15. package/dist/{chunk-B2VISN2V.js → chunk-7VMO2WOZ.js} +238 -68
  16. package/dist/chunk-7VMO2WOZ.js.map +1 -0
  17. package/dist/{chunk-QFDOWABX.js → chunk-CMGI7UZD.js} +6 -3
  18. package/dist/chunk-CMGI7UZD.js.map +1 -0
  19. package/dist/{chunk-XQXVG7RA.js → chunk-FNPMWDUQ.js} +3 -3
  20. package/dist/chunk-G4UYGRZR.js +2 -0
  21. package/dist/{chunk-I4QLI3JO.js → chunk-HDFYUFBI.js} +2 -2
  22. package/dist/chunk-JMJVGMXI.js +92 -0
  23. package/dist/chunk-JMJVGMXI.js.map +1 -0
  24. package/dist/{chunk-SJJW77WN.js → chunk-JYGNMKZ5.js} +129 -38
  25. package/dist/chunk-JYGNMKZ5.js.map +1 -0
  26. package/dist/{chunk-52IO7ACJ.js → chunk-KCHKFYVX.js} +68 -10
  27. package/dist/{chunk-52IO7ACJ.js.map → chunk-KCHKFYVX.js.map} +1 -1
  28. package/dist/{chunk-ZD3KHESI.js → chunk-KRWRUU6R.js} +27 -7
  29. package/dist/chunk-KRWRUU6R.js.map +1 -0
  30. package/dist/{chunk-CLAWT7BJ.js → chunk-NHTEKEYE.js} +3 -3
  31. package/dist/{chunk-WOHL4FTB.js → chunk-PRBRSIZP.js} +16 -10
  32. package/dist/chunk-PRBRSIZP.js.map +1 -0
  33. package/dist/{chunk-GKY2KXO5.js → chunk-UETBLPKM.js} +154 -37
  34. package/dist/chunk-UETBLPKM.js.map +1 -0
  35. package/dist/{chunk-4PNOV7OV.js → chunk-VGYN2KU2.js} +9284 -1421
  36. package/dist/chunk-VGYN2KU2.js.map +1 -0
  37. package/dist/{chunk-Q4BO4Z5V.js → chunk-XJ5YYYGC.js} +4 -4
  38. package/dist/{credential-COLTBV6D.js → credential-E6KUHRGU.js} +24 -20
  39. package/dist/credential-E6KUHRGU.js.map +1 -0
  40. package/dist/{credential-template-EEPYFG7R.js → credential-template-4GPOPBGD.js} +30 -28
  41. package/dist/credential-template-4GPOPBGD.js.map +1 -0
  42. package/dist/{debug-workflow-KOVH5GOP.js → debug-workflow-XCLCY6S7.js} +5 -4
  43. package/dist/{debug-workflow-KOVH5GOP.js.map → debug-workflow-XCLCY6S7.js.map} +1 -1
  44. package/dist/{docs-3SSORHB5.js → docs-COCZYMW6.js} +95 -10
  45. package/dist/docs-COCZYMW6.js.map +1 -0
  46. package/dist/{doctor-OTSIWV6G.js → doctor-ERIVTCQS.js} +9 -5
  47. package/dist/doctor-ERIVTCQS.js.map +1 -0
  48. package/dist/environment-7Y4BV6XY.js +221 -0
  49. package/dist/environment-7Y4BV6XY.js.map +1 -0
  50. package/dist/{feature-flag-T2LRZME3.js → feature-flag-MHONEX6T.js} +164 -16
  51. package/dist/feature-flag-MHONEX6T.js.map +1 -0
  52. package/dist/index.js +123 -58
  53. package/dist/index.js.map +1 -1
  54. package/dist/{init-TGWRECT2.js → init-OROOM4HF.js} +5 -4
  55. package/dist/{init-TGWRECT2.js.map → init-OROOM4HF.js.map} +1 -1
  56. package/dist/{install-DXSNWZKO.js → install-OJFXHY6U.js} +7 -7
  57. package/dist/{issues-XIZOPX6T.js → issues-32GONR6C.js} +5 -4
  58. package/dist/{issues-XIZOPX6T.js.map → issues-32GONR6C.js.map} +1 -1
  59. package/dist/{knobs-NBINZIUB.js → knobs-UQGGY3CP.js} +7 -5
  60. package/dist/knobs-UQGGY3CP.js.map +1 -0
  61. package/dist/{list-3TDHK637.js → list-ZMIKEC5P.js} +5 -4
  62. package/dist/{list-3TDHK637.js.map → list-ZMIKEC5P.js.map} +1 -1
  63. package/dist/{local-HICVD6PU.js → local-PUD24GGQ.js} +7 -6
  64. package/dist/{local-HICVD6PU.js.map → local-PUD24GGQ.js.map} +1 -1
  65. package/dist/{login-UOIUXVUK.js → login-BSO7YX2D.js} +5 -4
  66. package/dist/{login-UOIUXVUK.js.map → login-BSO7YX2D.js.map} +1 -1
  67. package/dist/{mcp-54IJEOUA.js → mcp-4LS7OJUT.js} +24 -25
  68. package/dist/mcp-4LS7OJUT.js.map +1 -0
  69. package/dist/{pdf-extract-ABWV3L5X.js → pdf-extract-YHE54XU4.js} +2 -2
  70. package/dist/product-3JKSJCBC.js +346 -0
  71. package/dist/product-3JKSJCBC.js.map +1 -0
  72. package/dist/{property-UXLOLPTD.js → property-K5DBL4UE.js} +76 -4
  73. package/dist/property-K5DBL4UE.js.map +1 -0
  74. package/dist/{psql-BYUUNLGG.js → psql-PQFUFTSE.js} +3 -2
  75. package/dist/{psql-BYUUNLGG.js.map → psql-PQFUFTSE.js.map} +1 -1
  76. package/dist/{record-4TR2UIIS.js → record-EIIYLFJ4.js} +16 -17
  77. package/dist/record-EIIYLFJ4.js.map +1 -0
  78. package/dist/{redis-35VBUYW7.js → redis-BU36EZZI.js} +3 -2
  79. package/dist/redis-BU36EZZI.js.map +1 -0
  80. package/dist/{release-OOLTUBUT.js → release-LYC2P7DZ.js} +5 -4
  81. package/dist/{release-OOLTUBUT.js.map → release-LYC2P7DZ.js.map} +1 -1
  82. package/dist/{sandbox-XGSUU6G7.js → sandbox-CKHXXZHU.js} +55 -10
  83. package/dist/sandbox-CKHXXZHU.js.map +1 -0
  84. package/dist/{scenarios-GWLJEGHA.js → scenarios-2XJ2G3KR.js} +5 -4
  85. package/dist/{scenarios-GWLJEGHA.js.map → scenarios-2XJ2G3KR.js.map} +1 -1
  86. package/dist/{session-MYFNZPRP.js → session-UTOD5ZYH.js} +77 -10
  87. package/dist/session-UTOD5ZYH.js.map +1 -0
  88. package/dist/{skill-KM34LDMO.js → skill-GMAERMQL.js} +220 -70
  89. package/dist/skill-GMAERMQL.js.map +1 -0
  90. package/dist/skills/debug-run/SKILL.md +40 -23
  91. package/dist/skills/debug-run/history/1.2.0.md +262 -0
  92. package/dist/skills/debug-run/history/1.3.0.md +273 -0
  93. package/dist/skills/debug-run/history/1.3.1.md +279 -0
  94. package/dist/skills/debug-run/version.json +1 -1
  95. package/dist/skills/optimize-cache/SKILL.md +233 -0
  96. package/dist/{spec-RA3CFEKG.js → spec-2NP36U3Y.js} +54 -25
  97. package/dist/spec-2NP36U3Y.js.map +1 -0
  98. package/dist/{src-LB4HBTJQ.js → src-4T6GHXVO.js} +19 -11
  99. package/dist/src-4T6GHXVO.js.map +1 -0
  100. package/dist/{src-N3TPKGTY.js → src-CG52HEE7.js} +10 -7
  101. package/dist/{src-UVDX5UP6.js → src-PK5OZXCM.js} +4 -2
  102. package/dist/src-UEOOC425.js +5941 -0
  103. package/dist/src-UEOOC425.js.map +1 -0
  104. package/dist/{start-PSEQSQA3.js → start-3C7EEFW2.js} +5 -4
  105. package/dist/{start-PSEQSQA3.js.map → start-3C7EEFW2.js.map} +1 -1
  106. package/dist/{tag-YY6YAABQ.js → tag-JSHOMLBR.js} +6 -5
  107. package/dist/{task-IQC3YR5K.js → task-YGWVYTBJ.js} +5 -4
  108. package/dist/{task-IQC3YR5K.js.map → task-YGWVYTBJ.js.map} +1 -1
  109. package/dist/{test-suite-DZNJFXDW.js → test-suite-LI7ZH367.js} +12 -7
  110. package/dist/{test-suite-DZNJFXDW.js.map → test-suite-LI7ZH367.js.map} +1 -1
  111. package/dist/trace-UMLOSIIR.js +16 -0
  112. package/dist/{triage-ORG45R5W.js → triage-ZWJG4NBJ.js} +6 -5
  113. package/dist/triage-ZWJG4NBJ.js.map +1 -0
  114. package/dist/{upgrade-L2VYMP2V.js → upgrade-S7CGEK6H.js} +3 -3
  115. package/dist/{workflow-XYFH5LTP.js → workflow-T4HSAOGW.js} +316 -241
  116. package/dist/workflow-T4HSAOGW.js.map +1 -0
  117. package/dist/{workflow-cache-NQJQFWMV.js → workflow-cache-XVEZ36KF.js} +140 -7
  118. package/dist/workflow-cache-XVEZ36KF.js.map +1 -0
  119. package/dist/{workflow-debug-BGD4UIXU.js → workflow-debug-T2BULXZ7.js} +9 -8
  120. package/dist/{workflow-debug-BGD4UIXU.js.map → workflow-debug-T2BULXZ7.js.map} +1 -1
  121. package/dist/{workflow-proposals-MTUDX46O.js → workflow-proposals-XXEZICN2.js} +5 -6
  122. package/dist/workflow-proposals-XXEZICN2.js.map +1 -0
  123. package/package.json +2 -1
  124. package/dist/chunk-4PNOV7OV.js.map +0 -1
  125. package/dist/chunk-A4OFTUVV.js.map +0 -1
  126. package/dist/chunk-B2VISN2V.js.map +0 -1
  127. package/dist/chunk-GKY2KXO5.js.map +0 -1
  128. package/dist/chunk-JICSYFRJ.js +0 -46
  129. package/dist/chunk-JICSYFRJ.js.map +0 -1
  130. package/dist/chunk-QFDOWABX.js.map +0 -1
  131. package/dist/chunk-SJJW77WN.js.map +0 -1
  132. package/dist/chunk-WOHL4FTB.js.map +0 -1
  133. package/dist/chunk-ZD3KHESI.js.map +0 -1
  134. package/dist/credential-COLTBV6D.js.map +0 -1
  135. package/dist/credential-template-EEPYFG7R.js.map +0 -1
  136. package/dist/docs-3SSORHB5.js.map +0 -1
  137. package/dist/doctor-OTSIWV6G.js.map +0 -1
  138. package/dist/feature-flag-T2LRZME3.js.map +0 -1
  139. package/dist/knobs-NBINZIUB.js.map +0 -1
  140. package/dist/mcp-54IJEOUA.js.map +0 -1
  141. package/dist/property-UXLOLPTD.js.map +0 -1
  142. package/dist/record-4TR2UIIS.js.map +0 -1
  143. package/dist/redis-35VBUYW7.js.map +0 -1
  144. package/dist/sandbox-XGSUU6G7.js.map +0 -1
  145. package/dist/session-MYFNZPRP.js.map +0 -1
  146. package/dist/skill-KM34LDMO.js.map +0 -1
  147. package/dist/spec-RA3CFEKG.js.map +0 -1
  148. package/dist/src-LB4HBTJQ.js.map +0 -1
  149. package/dist/trace-HXIW7U2D.js +0 -14
  150. package/dist/workflow-XYFH5LTP.js.map +0 -1
  151. package/dist/workflow-cache-NQJQFWMV.js.map +0 -1
  152. package/dist/workflow-proposals-MTUDX46O.js.map +0 -1
  153. /package/dist/{auth-EN6NQCJY.js.map → auth-VQG2CDUD.js.map} +0 -0
  154. /package/dist/{chunk-N7HFALX3.js.map → chunk-46IUJXSD.js.map} +0 -0
  155. /package/dist/{chunk-XQXVG7RA.js.map → chunk-FNPMWDUQ.js.map} +0 -0
  156. /package/dist/{pdf-extract-ABWV3L5X.js.map → chunk-G4UYGRZR.js.map} +0 -0
  157. /package/dist/{chunk-I4QLI3JO.js.map → chunk-HDFYUFBI.js.map} +0 -0
  158. /package/dist/{chunk-CLAWT7BJ.js.map → chunk-NHTEKEYE.js.map} +0 -0
  159. /package/dist/{chunk-Q4BO4Z5V.js.map → chunk-XJ5YYYGC.js.map} +0 -0
  160. /package/dist/{install-DXSNWZKO.js.map → install-OJFXHY6U.js.map} +0 -0
  161. /package/dist/{src-N3TPKGTY.js.map → pdf-extract-YHE54XU4.js.map} +0 -0
  162. /package/dist/{src-UVDX5UP6.js.map → src-CG52HEE7.js.map} +0 -0
  163. /package/dist/{tag-YY6YAABQ.js.map → src-PK5OZXCM.js.map} +0 -0
  164. /package/dist/{trace-HXIW7U2D.js.map → tag-JSHOMLBR.js.map} +0 -0
  165. /package/dist/{triage-ORG45R5W.js.map → trace-UMLOSIIR.js.map} +0 -0
  166. /package/dist/{upgrade-L2VYMP2V.js.map → upgrade-S7CGEK6H.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,20 +1,15 @@
1
1
  import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
2
2
  import {
3
3
  runRemoteTest
4
- } from "./chunk-GKY2KXO5.js";
4
+ } from "./chunk-UETBLPKM.js";
5
5
  import {
6
6
  runLogin
7
- } from "./chunk-QFDOWABX.js";
7
+ } from "./chunk-CMGI7UZD.js";
8
8
  import {
9
9
  checkForUpdate
10
- } from "./chunk-N7HFALX3.js";
11
- import {
12
- installConsoleBranding,
13
- version
14
- } from "./chunk-JICSYFRJ.js";
15
- import "./chunk-CLAWT7BJ.js";
16
- import "./chunk-WOHL4FTB.js";
17
- import "./chunk-SJJW77WN.js";
10
+ } from "./chunk-46IUJXSD.js";
11
+ import "./chunk-NHTEKEYE.js";
12
+ import "./chunk-PRBRSIZP.js";
18
13
  import {
19
14
  fetchOrExit,
20
15
  isSuperadminToken
@@ -27,8 +22,15 @@ import {
27
22
  readStoredAuth,
28
23
  resolveConfig,
29
24
  resolveOptionalConfig
30
- } from "./chunk-A4OFTUVV.js";
25
+ } from "./chunk-3X3NW7QA.js";
26
+ import {
27
+ installConsoleBranding,
28
+ readBrandEnv,
29
+ specExtension,
30
+ version
31
+ } from "./chunk-JMJVGMXI.js";
31
32
  import "./chunk-JWHYXEA2.js";
33
+ import "./chunk-JYGNMKZ5.js";
32
34
  import "./chunk-VKVL7WBN.js";
33
35
 
34
36
  // src/index.ts
@@ -390,6 +392,10 @@ function errorMetadata(error) {
390
392
  errorMessage: error instanceof Error ? error.message : String(error)
391
393
  };
392
394
  }
395
+ function isExpectedCliInputError(error) {
396
+ if (!(error instanceof Error)) return false;
397
+ return /^Action index \d+ out of range \(0-\d+\)$/.test(error.message);
398
+ }
393
399
  async function createCliUserEventRecorder(argv, cliVersion) {
394
400
  if (!shouldTrack(argv)) return null;
395
401
  const config = await resolveOptionalConfig(argv);
@@ -436,11 +442,11 @@ async function recordCliInstrumentationFailure(argv, cliVersion, stage, error) {
436
442
  }
437
443
 
438
444
  // src/index.ts
439
- var loadMcp = () => import("./mcp-54IJEOUA.js").then((m) => m.runMcp);
440
- var loadDebugWorkflow = () => import("./debug-workflow-KOVH5GOP.js").then((m) => m.runDebugWorkflow);
441
- var loadRecord = () => import("./record-4TR2UIIS.js").then((m) => m.runRecord);
442
- var loadSession = () => import("./session-MYFNZPRP.js").then((m) => m.runSession);
443
- var loadLocal = () => import("./local-HICVD6PU.js").then((m) => m.runLocal);
445
+ var loadMcp = () => import("./mcp-4LS7OJUT.js").then((m) => m.runMcp);
446
+ var loadDebugWorkflow = () => import("./debug-workflow-XCLCY6S7.js").then((m) => m.runDebugWorkflow);
447
+ var loadRecord = () => import("./record-EIIYLFJ4.js").then((m) => m.runRecord);
448
+ var loadSession = () => import("./session-UTOD5ZYH.js").then((m) => m.runSession);
449
+ var loadLocal = () => import("./local-PUD24GGQ.js").then((m) => m.runLocal);
444
450
  function printVersion() {
445
451
  console.log(`canary v${version}`);
446
452
  }
@@ -460,15 +466,16 @@ function printHelp({ isSuperadmin }) {
460
466
  " canary session <sub-command> Manage local browser sessions",
461
467
  " canary issues <sub-command> Search and view issues",
462
468
  " canary credential <sub-command> List, create, update, and test credentials",
463
- " canary credential-template <sub-command> Manage per-application credential templates",
469
+ " canary persona <sub-command> Manage per-application personas",
464
470
  " canary workflow <sub-command> Inspect workflow definitions",
465
- " canary spec <sub-command> Author workflows from .canary.md spec files",
471
+ ` canary spec <sub-command> Author workflows from ${specExtension} spec files`,
466
472
  " canary api-catalog <sub-command> Manage API catalog sources and endpoints",
467
- " canary skill <name> Install an AI agent skill template"
473
+ " canary skill <name> Install an AI agent skill template (--name to rename)"
468
474
  ];
469
475
  lines.push(" canary release <sub-command> Release QA gate (CI/CD)");
470
476
  lines.push(
471
477
  " canary application <sub-command> List and create applications, view linked repos (alias: property)",
478
+ " canary environment <sub-command> List, create, and default environments (alias: env)",
472
479
  " canary task <sub-command> Manage agent tasks (requires feature flag)",
473
480
  " canary sandbox <sub-command> Manage sandbox templates and instances",
474
481
  " canary attachment <sub-command> List, upload, and manage attachments",
@@ -482,7 +489,9 @@ function printHelp({ isSuperadmin }) {
482
489
  " canary redis <command> [--json] Execute read-only Redis commands",
483
490
  " canary docs <sub-command> Manage documentation pages",
484
491
  " canary feature-flag <sub-command> Manage feature flags",
485
- " canary knobs <sub-command> Manage knobs (global config)"
492
+ " canary knobs <sub-command> Manage knobs (global config)",
493
+ " canary product <sub-command> Manage the Product board (cards, fields, flag links)",
494
+ " canary account <sub-command> Manage the Accounts board (accounts, org links)"
486
495
  );
487
496
  }
488
497
  lines.push(
@@ -578,7 +587,27 @@ function printHelp({ isSuperadmin }) {
578
587
  " delete <key> Delete a knob",
579
588
  " toggle <key> Toggle a boolean knob",
580
589
  " lifecycle <key> --stage <stage> [--final-value <value>]",
581
- " Set lifecycle metadata"
590
+ " Set lifecycle metadata",
591
+ "",
592
+ "Product board sub-commands (org you are logged into):",
593
+ " list [--search <t>] [--priority p0,p1] [--include-deprecated] List items",
594
+ " create <title> [--description <t>] [--stage <s>] [--priority <p0-p3>] Create item",
595
+ " set <id> [--title <t>] [--description <t>] [--priority <p0-p3|null>] Update fields",
596
+ " move <id> --stage <s> [--before <id>] [--after <id>] Move card to a column",
597
+ " delete <id> Delete item",
598
+ " customer add <id> (--account-card <id> | --org <orgId>) [--name <t>] Link customer",
599
+ " customer remove <id> <customerId> Unlink customer",
600
+ " link-flag <cardId> --flag <name> | --flag <name> --clear Link/unlink a feature flag",
601
+ " flags <cardId> List flags linked to a card",
602
+ "",
603
+ "Account board sub-commands (org you are logged into):",
604
+ " list [--search <t>] [--stage <s>] List accounts",
605
+ " create <name> [--description <t>] [--stage <s>] Create account (default stage=prospect)",
606
+ " set <id> [--title <t>] [--description <t>] [--stage <s>] Update fields",
607
+ " delete <id> Delete account",
608
+ " link-org <id> --org <customerOrgId> Bind account to a customer org",
609
+ " unlink-org <id> Remove org link",
610
+ " linked-org <id> Show linked org"
582
611
  );
583
612
  }
584
613
  lines.push("", "Flags:", " -h, --help Show help", " -V, --version Show version");
@@ -656,7 +685,7 @@ var COMMANDS_WITH_HELP = /* @__PURE__ */ new Set([
656
685
  "api-catalog"
657
686
  ]);
658
687
  async function resolveIsSuperadmin() {
659
- const envToken = process4.env.CANARY_API_TOKEN;
688
+ const envToken = readBrandEnv("CANARY_API_TOKEN");
660
689
  if (envToken) return isSuperadminToken(envToken);
661
690
  const tokens = await readAllStoredTokens();
662
691
  return tokens.some((t) => isSuperadminToken(t));
@@ -671,7 +700,7 @@ function normalizeExitCode(value) {
671
700
  }
672
701
  async function executeCommand(command, rest) {
673
702
  if (command === "upgrade") {
674
- const { runUpgrade } = await import("./upgrade-L2VYMP2V.js");
703
+ const { runUpgrade } = await import("./upgrade-S7CGEK6H.js");
675
704
  await runUpgrade();
676
705
  return;
677
706
  }
@@ -700,7 +729,7 @@ async function executeCommand(command, rest) {
700
729
  return;
701
730
  }
702
731
  if (command === "install") {
703
- const { runInstall } = await import("./install-DXSNWZKO.js");
732
+ const { runInstall } = await import("./install-OJFXHY6U.js");
704
733
  await runInstall(rest);
705
734
  return;
706
735
  }
@@ -737,63 +766,74 @@ async function executeCommand(command, rest) {
737
766
  return;
738
767
  }
739
768
  if (command === "psql") {
740
- const { runPsql } = await import("./psql-BYUUNLGG.js");
769
+ const { runPsql } = await import("./psql-PQFUFTSE.js");
741
770
  await runPsql(rest);
742
771
  return;
743
772
  }
744
773
  if (command === "redis") {
745
- const { runRedis } = await import("./redis-35VBUYW7.js");
774
+ const { runRedis } = await import("./redis-BU36EZZI.js");
746
775
  await runRedis(rest);
747
776
  return;
748
777
  }
749
778
  if (command === "release") {
750
- const { runRelease } = await import("./release-OOLTUBUT.js");
779
+ const { runRelease } = await import("./release-LYC2P7DZ.js");
751
780
  await runRelease(rest);
752
781
  return;
753
782
  }
754
783
  if (command === "docs") {
755
- const { runDocs } = await import("./docs-3SSORHB5.js");
784
+ const { runDocs } = await import("./docs-COCZYMW6.js");
756
785
  await runDocs(rest);
757
786
  return;
758
787
  }
759
788
  if (command === "feature-flag") {
760
- const { runFeatureFlag } = await import("./feature-flag-T2LRZME3.js");
789
+ const { runFeatureFlag } = await import("./feature-flag-MHONEX6T.js");
761
790
  await runFeatureFlag(rest);
762
791
  return;
763
792
  }
793
+ if (command === "product") {
794
+ const { runProduct } = await import("./product-3JKSJCBC.js");
795
+ await runProduct(rest);
796
+ return;
797
+ }
798
+ if (command === "account") {
799
+ const { runAccount } = await import("./account-22LMP5PX.js");
800
+ await runAccount(rest);
801
+ return;
802
+ }
764
803
  if (command === "scenarios" || command === "scenario") {
765
- const { runScenarios } = await import("./scenarios-GWLJEGHA.js");
804
+ const { runScenarios } = await import("./scenarios-2XJ2G3KR.js");
766
805
  await runScenarios(rest);
767
806
  return;
768
807
  }
769
808
  if (command === "knobs") {
770
- const { runKnobs } = await import("./knobs-NBINZIUB.js");
809
+ const { runKnobs } = await import("./knobs-UQGGY3CP.js");
771
810
  await runKnobs(rest);
772
811
  return;
773
812
  }
774
813
  if (command === "issues") {
775
- const { runIssues } = await import("./issues-XIZOPX6T.js");
814
+ const { runIssues } = await import("./issues-32GONR6C.js");
776
815
  await runIssues(rest);
777
816
  return;
778
817
  }
779
818
  if (command === "credential") {
780
- const { runCredential } = await import("./credential-COLTBV6D.js");
819
+ const { runCredential } = await import("./credential-E6KUHRGU.js");
781
820
  await runCredential(rest);
782
821
  return;
783
822
  }
784
- if (command === "credential-template" || command === "credential-templates") {
785
- const { runCredentialTemplate } = await import("./credential-template-EEPYFG7R.js");
823
+ if (command === "persona" || command === "personas" || // Backwards-compat aliases for the former "credential template" name.
824
+ command === "credential-template" || command === "credential-templates") {
825
+ const { runCredentialTemplate } = await import("./credential-template-4GPOPBGD.js");
786
826
  await runCredentialTemplate(rest);
787
827
  return;
788
828
  }
789
829
  if (command === "workflow") {
790
- const { runWorkflow } = await import("./workflow-XYFH5LTP.js");
830
+ const { runWorkflow } = await import("./workflow-T4HSAOGW.js");
791
831
  await runWorkflow(rest);
792
832
  return;
793
833
  }
794
834
  if (command === "spec") {
795
- const { resolveConfig: resolveConfig2 } = await import("./auth-EN6NQCJY.js");
796
- const { handleSpec } = await import("./spec-RA3CFEKG.js");
835
+ const { resolveConfig: resolveConfig2 } = await import("./auth-VQG2CDUD.js");
836
+ const { handleSpec } = await import("./spec-2NP36U3Y.js");
797
837
  const wantsAuth = rest[0] === "compile" || rest[0] === "pull" || rest[0] === "diff";
798
838
  if (wantsAuth) {
799
839
  const { apiUrl, token } = await resolveConfig2(rest);
@@ -803,62 +843,78 @@ async function executeCommand(command, rest) {
803
843
  }
804
844
  return;
805
845
  }
846
+ if (command === "augmentor" || command === "augmentors") {
847
+ const { resolveConfig: resolveConfig2 } = await import("./auth-VQG2CDUD.js");
848
+ const { runAugmentor } = await import("./augmentor-5GMNAX4M.js");
849
+ if (rest[0] === void 0 || rest[0] === "help" || rest[0] === "--help") {
850
+ await runAugmentor(rest, "", "");
851
+ } else {
852
+ const { apiUrl, token } = await resolveConfig2(rest);
853
+ await runAugmentor(rest, apiUrl, token);
854
+ }
855
+ return;
856
+ }
806
857
  if (command === "api-catalog") {
807
- const { resolveConfig: resolveConfig2 } = await import("./auth-EN6NQCJY.js");
808
- const { runApiCatalog } = await import("./api-catalog-GFGCLVS4.js");
858
+ const { resolveConfig: resolveConfig2 } = await import("./auth-VQG2CDUD.js");
859
+ const { runApiCatalog } = await import("./api-catalog-WTFQNLK6.js");
809
860
  const { apiUrl, token } = await resolveConfig2(rest);
810
861
  await runApiCatalog(rest, apiUrl, token);
811
862
  return;
812
863
  }
813
864
  if (command === "skill" || command === "skills") {
814
- const { runSkill } = await import("./skill-KM34LDMO.js");
865
+ const { runSkill } = await import("./skill-GMAERMQL.js");
815
866
  await runSkill(rest);
816
867
  return;
817
868
  }
818
869
  if (command === "task") {
819
- const { runTask } = await import("./task-IQC3YR5K.js");
870
+ const { runTask } = await import("./task-YGWVYTBJ.js");
820
871
  await runTask(rest);
821
872
  return;
822
873
  }
823
874
  if (command === "test-suite") {
824
- const { runTestSuite } = await import("./test-suite-DZNJFXDW.js");
875
+ const { runTestSuite } = await import("./test-suite-LI7ZH367.js");
825
876
  await runTestSuite(rest);
826
877
  return;
827
878
  }
828
879
  if (command === "triage") {
829
- const { runTriage } = await import("./triage-ORG45R5W.js");
880
+ const { runTriage } = await import("./triage-ZWJG4NBJ.js");
830
881
  await runTriage(rest);
831
882
  return;
832
883
  }
833
884
  if (command === "application" || command === "applications" || command === "property" || command === "properties") {
834
- const { runProperty } = await import("./property-UXLOLPTD.js");
885
+ const { runProperty } = await import("./property-K5DBL4UE.js");
835
886
  await runProperty(rest);
836
887
  return;
837
888
  }
889
+ if (command === "environment" || command === "env") {
890
+ const { runEnvironment } = await import("./environment-7Y4BV6XY.js");
891
+ await runEnvironment(rest);
892
+ return;
893
+ }
838
894
  if (command === "sandbox") {
839
- const { runSandbox } = await import("./sandbox-XGSUU6G7.js");
895
+ const { runSandbox } = await import("./sandbox-CKHXXZHU.js");
840
896
  await runSandbox(rest);
841
897
  return;
842
898
  }
843
899
  if (command === "attachment" || command === "attachments") {
844
- const { runAttachment } = await import("./attachment-SJC7D7FY.js");
900
+ const { runAttachment } = await import("./attachment-U3NKVPEY.js");
845
901
  await runAttachment(rest);
846
902
  return;
847
903
  }
848
904
  if (command === "tag" || command === "tags") {
849
- const { runTag } = await import("./tag-YY6YAABQ.js");
905
+ const { runTag } = await import("./tag-JSHOMLBR.js");
850
906
  await runTag(rest);
851
907
  return;
852
908
  }
853
909
  if (command === "trace") {
854
- const { runTrace } = await import("./trace-HXIW7U2D.js");
910
+ const { runTrace } = await import("./trace-UMLOSIIR.js");
855
911
  await runTrace(rest);
856
912
  return;
857
913
  }
858
914
  if (command === "auth") {
859
915
  const sub = rest[0];
860
916
  if (sub === "doctor") {
861
- const { runAuthDoctor } = await import("./doctor-OTSIWV6G.js");
917
+ const { runAuthDoctor } = await import("./doctor-ERIVTCQS.js");
862
918
  await runAuthDoctor(rest.slice(1));
863
919
  return;
864
920
  }
@@ -904,6 +960,7 @@ async function main(argv) {
904
960
  const startedAt = Date.now();
905
961
  const originalExit = process4.exit.bind(process4);
906
962
  let finalExitCode = 0;
963
+ let handledExpectedInputError = false;
907
964
  if (tracking) {
908
965
  await tracking.recorder.recordCommandStarted(tracking.metadata);
909
966
  }
@@ -948,6 +1005,7 @@ async function main(argv) {
948
1005
  }
949
1006
  } else {
950
1007
  finalExitCode = normalizeExitCode(process4.exitCode) || 1;
1008
+ const expectedInputError = isExpectedCliInputError(error);
951
1009
  if (tracking) {
952
1010
  await tracking.recorder.recordCommandFailed({
953
1011
  ...tracking.metadata,
@@ -956,20 +1014,27 @@ async function main(argv) {
956
1014
  errorKind: error instanceof Error ? error.name : typeof error,
957
1015
  errorName: error instanceof Error ? error.name : void 0,
958
1016
  errorMessage: error instanceof Error ? error.message : String(error),
959
- reportToSentry: true,
960
- sentryFingerprint: [
961
- "canary-cli",
962
- tracking.metadata.commandPath,
963
- error instanceof Error ? error.name : typeof error
964
- ]
1017
+ ...expectedInputError ? {} : {
1018
+ reportToSentry: true,
1019
+ sentryFingerprint: [
1020
+ "canary-cli",
1021
+ tracking.metadata.commandPath,
1022
+ error instanceof Error ? error.name : typeof error
1023
+ ]
1024
+ }
965
1025
  });
966
1026
  }
967
- throw error;
1027
+ if (expectedInputError) {
1028
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
1029
+ handledExpectedInputError = true;
1030
+ } else {
1031
+ throw error;
1032
+ }
968
1033
  }
969
1034
  } finally {
970
1035
  process4.exit = originalExit;
971
1036
  }
972
- if (finalExitCode !== 0) {
1037
+ if (finalExitCode !== 0 || handledExpectedInputError) {
973
1038
  originalExit(finalExitCode);
974
1039
  }
975
1040
  }