@keystrokehq/cli 0.0.37 → 0.0.39

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 (105) hide show
  1. package/README.md +5 -1
  2. package/dist/{accept.handler-DCsud1s5.mjs → accept.handler-CykuBpt6.mjs} +3 -3
  3. package/dist/{admin-BaOtHeZ2.mjs → admin-gRjPC3eD.mjs} +10 -10
  4. package/dist/{agents-BVAVfMR_.mjs → agents-BpyuvM9p.mjs} +6 -6
  5. package/dist/{api-keys-BhEEsHUh.mjs → api-keys-BSKhdD_x.mjs} +6 -6
  6. package/dist/{auth-BnsitjzT.mjs → auth-DCgToFf5.mjs} +6 -6
  7. package/dist/{auth.handler-W_xk14TL.mjs → auth.handler-QRQAEUJC.mjs} +1 -1
  8. package/dist/{authored-workflow-ref-fkHEEVnd.mjs → authored-workflow-ref-BRCQgyWl.mjs} +4 -4
  9. package/dist/{build-progress-CM-b6Bby.mjs → build-progress-D_SQqdHA.mjs} +2 -2
  10. package/dist/{build.handler-CpAsAsBc.mjs → build.handler-DGQn_clk.mjs} +6 -6
  11. package/dist/{clear.handler-_sR33Hp8.mjs → clear.handler-CuXYvUj2.mjs} +1 -1
  12. package/dist/{clear.handler-CDyG6-dk.mjs → clear.handler-DnjvgyMj.mjs} +1 -1
  13. package/dist/{commander-C6SSTQJ2.mjs → commander-B_8QwPpe.mjs} +3 -3
  14. package/dist/{connect-27EgnljZ.mjs → connect-DV9lhP6C.mjs} +3 -3
  15. package/dist/{connect.handler-COM1LnNg.mjs → connect.handler-D6JzuFuT.mjs} +4 -4
  16. package/dist/{context-ebZssGCY.mjs → context-Brc9VGV9.mjs} +2 -2
  17. package/dist/{create.handler-CAWJAGzQ.mjs → create.handler-D_tmjANR.mjs} +3 -3
  18. package/dist/{credential-schema-mismatch-c17ktoNU.mjs → credential-schema-mismatch-CStYUB2h.mjs} +1 -1
  19. package/dist/{credentials-C0ssbMlp.mjs → credentials-UDrvrKj-.mjs} +9 -9
  20. package/dist/{current-deployment-workflow-C6x65imE.mjs → current-deployment-workflow-CknsHF5T.mjs} +1 -1
  21. package/dist/{current.handler-DP1L_hm3.mjs → current.handler-Cy91EeLU.mjs} +3 -3
  22. package/dist/{delete.handler-C-5XFkgN.mjs → delete.handler-rUDDUrDQ.mjs} +2 -2
  23. package/dist/{deploy-BcVQJza8.mjs → deploy-DgWPlEKO.mjs} +2 -2
  24. package/dist/{deploy-progress-Bt86Yc1r.mjs → deploy-progress-BDOCSm_U.mjs} +1 -1
  25. package/dist/{deploy.handler-GPS9lxGk.mjs → deploy.handler-BDCHCk_A.mjs} +9 -9
  26. package/dist/{diff.handler-DkM5dhaN.mjs → diff.handler-CGERP-Qn.mjs} +5 -5
  27. package/dist/{env.handler-V_isbSi2.mjs → env.handler--8FRrSlJ.mjs} +6 -6
  28. package/dist/{error-boundary-BRxUsPi7.mjs → error-boundary-D2DiCLAp.mjs} +3 -3
  29. package/dist/{iam-command-utils-DNDN0wT6.mjs → iam-command-utils-D01Gw8-M.mjs} +2 -2
  30. package/dist/{init-D1OmmclX.mjs → init-Mpe_8lA_.mjs} +2 -2
  31. package/dist/{init.handler-CUbYlUgP.mjs → init.handler-BjLAIAmm.mjs} +4 -4
  32. package/dist/{inspect.handler-BE6coOuW.mjs → inspect.handler-CXCi7fhH.mjs} +5 -5
  33. package/dist/{integration-catalog-pSmWHFLQ.mjs → integration-catalog-mZs6EAlN.mjs} +3 -3
  34. package/dist/{integrations-DZD5t8n2.mjs → integrations-D_IH5Ud1.mjs} +6 -6
  35. package/dist/{invites-BuR1H-tA.mjs → invites-CWWz4wmY.mjs} +5 -5
  36. package/dist/{invites.list.handler-Dj4a6XOg.mjs → invites.list.handler-CQLWSoWo.mjs} +4 -4
  37. package/dist/{invites.resend.handler-DEGF4vlB.mjs → invites.resend.handler-CeIGE_qM.mjs} +4 -4
  38. package/dist/{invites.revoke.handler-Dg4ZvlFS.mjs → invites.revoke.handler-9K6jkym_.mjs} +4 -4
  39. package/dist/keystroke.mjs +41 -29
  40. package/dist/{list.handler-Choc4SZz.mjs → list.handler-BvuxTFLe.mjs} +5 -5
  41. package/dist/{list.handler-BTYVIn6z.mjs → list.handler-CDWPmiMy.mjs} +3 -3
  42. package/dist/{list.handler-DYE48apa.mjs → list.handler-Co32_F3n.mjs} +4 -4
  43. package/dist/{list.handler-D47C1z3m.mjs → list.handler-Cuw1fWO_.mjs} +41 -12
  44. package/dist/{list.handler-7MkJfkak.mjs → list.handler-D-rSyrX0.mjs} +4 -4
  45. package/dist/{list.handler-KcCaG3PZ.mjs → list.handler-DMvq96UA.mjs} +2 -2
  46. package/dist/{list.handler-2g1CZAvB.mjs → list.handler-DUTNS8du.mjs} +3 -3
  47. package/dist/{list.handler-Bchcr3-e.mjs → list.handler-Dz-Yeijp.mjs} +3 -3
  48. package/dist/{list2.handler-BIaIyrQf.mjs → list2.handler-BpqKZTZk.mjs} +1 -1
  49. package/dist/{listen-CVY-_F29.mjs → listen-CeNwufij.mjs} +3 -3
  50. package/dist/{listen.handler-D_nEvXRn.mjs → listen.handler-CfRoaOwu.mjs} +3 -3
  51. package/dist/{logs-CZ2qnsSH.mjs → logs-B7k2_W1R.mjs} +3 -3
  52. package/dist/{logs.handler-Wk6mYyAZ.mjs → logs.handler-BIqJ0FED.mjs} +1 -1
  53. package/dist/{logs.handler-BRUzZC9Z.mjs → logs.handler-CSqOzxCU.mjs} +5 -5
  54. package/dist/{members.add.handler-BJ0wr6rP.mjs → members.add.handler-CBjoA6vG.mjs} +4 -4
  55. package/dist/{members.invite.handler-DyveDMuq.mjs → members.invite.handler-D8KcKJ9Y.mjs} +4 -4
  56. package/dist/{members.list.handler-CyQxH_zS.mjs → members.list.handler-CB_qSJK0.mjs} +4 -4
  57. package/dist/{members.remove.handler-Dtv9PooY.mjs → members.remove.handler-DNhO81mo.mjs} +4 -4
  58. package/dist/{members.update.handler-CeK-tCjT.mjs → members.update.handler-Bjdk_uz4.mjs} +4 -4
  59. package/dist/{operations-CxQlt0S0.mjs → operations-HHwoArwE.mjs} +5 -5
  60. package/dist/{org-context-BI9OSpbb.mjs → org-context-CNh2p2DP.mjs} +3 -3
  61. package/dist/{org-B8MPHJJu.mjs → org-f-qo68Em.mjs} +16 -16
  62. package/dist/{org-output-DffU7DKn.mjs → org-output-BcI17Uan.mjs} +2 -2
  63. package/dist/{orgs.create.handler-BKvSmkU3.mjs → orgs.create.handler-DOE9ZIed.mjs} +3 -3
  64. package/dist/{orgs.get.handler-BA-CexIY.mjs → orgs.get.handler-sWErVI7r.mjs} +3 -3
  65. package/dist/{orgs.list.handler-eCEg5kC1.mjs → orgs.list.handler-Cp-mXsA0.mjs} +3 -3
  66. package/dist/{output-DnIFEmi5.mjs → output-BPydP5tG.mjs} +1 -1
  67. package/dist/{package-manager-BP3-q8hh.mjs → package-manager-BwJ6muas.mjs} +1 -1
  68. package/dist/{paused.handler-4wKMTKZ-.mjs → paused.handler-DWdoKYY8.mjs} +5 -5
  69. package/dist/{projects-Wu_2fB_x.mjs → projects-CCC36zbJ.mjs} +3 -3
  70. package/dist/{register.handler-BvAkXCwE.mjs → register.handler-Dxae5iq8.mjs} +3 -3
  71. package/dist/{render-operation-VdEPhoII.mjs → render-operation-iF7Wblv2.mjs} +1 -1
  72. package/dist/{requirements.handler-Bab4kBtw.mjs → requirements.handler-Bg3mRnER.mjs} +2 -2
  73. package/dist/{resolve-project-DLKlAy0z.mjs → resolve-project-CoCN9xfi.mjs} +1 -1
  74. package/dist/{run-polling-C5fI7xTp.mjs → run-polling-htHWhG0T.mjs} +1 -1
  75. package/dist/{run.handler-BKD5Xu0A.mjs → run.handler-C-CM-xZG.mjs} +7 -7
  76. package/dist/{runs-CT31dczt.mjs → runs-BRJPNq4B.mjs} +4 -4
  77. package/dist/{search-BeQW_pf4.mjs → search-DdJpxHEs.mjs} +15 -6
  78. package/dist/search.handler-dsvkAHFo.mjs +112 -0
  79. package/dist/show.handler-CdZF0aao.mjs +79 -0
  80. package/dist/{show.handler-Cqe_hCqU.mjs → show.handler-D3nDc1MJ.mjs} +2 -2
  81. package/dist/{show.handler-DB8xl5FU.mjs → show.handler-DUDxnNiZ.mjs} +4 -4
  82. package/dist/{skill-installer-DuMhavmM.mjs → skill-installer-DYNH_MJT.mjs} +1 -1
  83. package/dist/{skills-sync.handler-BGs-_YD9.mjs → skills-sync.handler-_LVhIMRH.mjs} +3 -3
  84. package/dist/{skills.command-DUWn6FbL.mjs → skills.command-DSHGwXPX.mjs} +3 -3
  85. package/dist/{spinner-progress-BYxlr3lY.mjs → spinner-progress-fLaD0sjH.mjs} +1 -1
  86. package/dist/{status.handler-DAId4bVU.mjs → status.handler-1hEzX5oB.mjs} +1 -1
  87. package/dist/{switch.handler-Cd4Yg2n8.mjs → switch.handler-D135WwfB.mjs} +3 -3
  88. package/dist/{sync-DgC4lcxh.mjs → sync-CFScllh3.mjs} +2 -2
  89. package/dist/{sync.handler-Cm_WtGmH.mjs → sync.handler-x8v53-TT.mjs} +6 -6
  90. package/dist/{test-4V7nh67i.mjs → test-Dx4RXoLZ.mjs} +3 -3
  91. package/dist/{test.handler-Bo4YTs2Z.mjs → test.handler-BmvL5vF8.mjs} +8 -8
  92. package/dist/{test.handler-BdCYcwR4.mjs → test.handler-Mz_XOnJl.mjs} +1 -1
  93. package/dist/{tool.handler-CPCrSDq2.mjs → tool.handler-DsbpocYI.mjs} +7 -7
  94. package/dist/{upgrade-2qUOcjxb.mjs → upgrade-C9G6HksL.mjs} +3 -3
  95. package/dist/{upgrade.handler-PqlKSuUE.mjs → upgrade.handler-DsFeAFF4.mjs} +2 -2
  96. package/dist/{upload.handler-CS-vLpzC.mjs → upload.handler-DscKDQ63.mjs} +6 -6
  97. package/dist/{users.get.handler-CH1c6Lnj.mjs → users.get.handler-CaUv_maM.mjs} +3 -3
  98. package/dist/{users.list.handler-CxbZFgjO.mjs → users.list.handler-DzsOvAtd.mjs} +3 -3
  99. package/dist/{users.set-role.handler-CBRE-Ws6.mjs → users.set-role.handler-koRzA0V9.mjs} +3 -3
  100. package/dist/{validate.handler-1d-UmtXB.mjs → validate.handler-BkBsS8BL.mjs} +6 -6
  101. package/dist/{workflow-build-Bm8JoVv4.mjs → workflow-build-Db6at6IA.mjs} +1 -1
  102. package/dist/{workflows-ny7rOdeH.mjs → workflows-B8VG6nKg.mjs} +13 -13
  103. package/package.json +7 -7
  104. package/dist/search.handler-BJ-ZlDL4.mjs +0 -79
  105. package/dist/show.handler-BrIHUH28.mjs +0 -31
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { p as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { t as renderCredential } from "./render-credential-D-H1ECDt.mjs";
7
+ import { i as formatPackageInstallCommand, r as detectPackageManager } from "./package-manager-BwJ6muas.mjs";
8
+ import { t as renderOperation } from "./render-operation-iF7Wblv2.mjs";
9
+ //#region src/lib/render-integration.ts
10
+ function renderIntegration(i, { full = false, packageManager } = {}) {
11
+ ui.br();
12
+ ui.text(i.publicId);
13
+ ui.text(` ${i.name}`);
14
+ if (i.description) ui.text(` ${i.description}`);
15
+ if (i.score !== void 0) ui.text(` score: ${i.score.toFixed(2)}`);
16
+ const npmPackageName = i.npmPackageName ?? `@keystrokehq/${i.publicId}`;
17
+ ui.text(` install: ${formatPackageInstallCommand(npmPackageName, { packageManager })}`);
18
+ if (full) {
19
+ const withOps = i;
20
+ if (Array.isArray(withOps.operations) && withOps.operations.length > 0) {
21
+ ui.text(` operations (${withOps.operations.length}):`);
22
+ for (const op of withOps.operations) ui.text(` ${op.id} — ${op.name}`);
23
+ }
24
+ }
25
+ }
26
+ //#endregion
27
+ //#region src/commands/search/search.params.ts
28
+ function buildSearchParams(type, options) {
29
+ const base = {
30
+ q: options.query,
31
+ ...options.limit !== void 0 ? { limit: options.limit } : {},
32
+ ...options.full ? { include: "full" } : {}
33
+ };
34
+ if (type === "integrations") return base;
35
+ return {
36
+ ...base,
37
+ ...options.integration ? { integrationId: options.integration } : {}
38
+ };
39
+ }
40
+ //#endregion
41
+ //#region src/commands/search/search.presentation.ts
42
+ function integrationFilterSuffix(integration, style) {
43
+ if (!integration) return "";
44
+ if (style === "empty") return ` (integration=${integration})`;
45
+ return ` · integration=${integration}`;
46
+ }
47
+ function typeLabel(type, count) {
48
+ if (type === "operations") return count === 1 ? "operation" : "operations";
49
+ if (type === "integrations") return count === 1 ? "integration" : "integrations";
50
+ return count === 1 ? "credential definition" : "credential definitions";
51
+ }
52
+ function browseCommand(type) {
53
+ if (type === "operations") return "operations list";
54
+ if (type === "integrations") return "integrations list";
55
+ return "credentials definitions list";
56
+ }
57
+ function filteredBrowseHint(type, integration) {
58
+ if (type === "operations") return `Or run \`keystroke operations list --integration ${integration}\` to browse that integration.`;
59
+ if (type === "credentials") return `Or run \`keystroke credentials definitions list --integration ${integration}\` to browse that integration.`;
60
+ return null;
61
+ }
62
+ function renderSearchEmptyState(type, options) {
63
+ ui.hint(`No ${typeLabel(type, 2)} matched "${options.query}"${integrationFilterSuffix(options.integration, "empty")}.`);
64
+ ui.hint(`Try a different query, or run \`keystroke ${browseCommand(type)}\` to browse.`);
65
+ if (options.integration) {
66
+ const filteredHint = filteredBrowseHint(type, options.integration);
67
+ if (filteredHint) ui.hint(filteredHint);
68
+ }
69
+ }
70
+ function formatSearchResultCountHint(type, options, count) {
71
+ return `\n${count} ${typeLabel(type, count)} matched "${options.query}"${integrationFilterSuffix(options.integration, "count")}`;
72
+ }
73
+ //#endregion
74
+ //#region src/commands/search/search.handler.ts
75
+ async function handleSearch(options, ctx) {
76
+ const type = options.type ?? "operations";
77
+ const result = await dispatchSearch(requireClient(ctx), type, buildSearchParams(type, options));
78
+ if (ctx.jsonMode) {
79
+ writeJson(result);
80
+ return;
81
+ }
82
+ if (result.results.length === 0) {
83
+ renderSearchEmptyState(type, options);
84
+ return;
85
+ }
86
+ const packageManager = detectPackageManager();
87
+ for (const hit of result.results) renderHit(type, hit, {
88
+ full: Boolean(options.full),
89
+ packageManager
90
+ });
91
+ ui.hint(formatSearchResultCountHint(type, options, result.results.length));
92
+ }
93
+ function dispatchSearch(client, type, params) {
94
+ if (type === "operations") return client.search.operations(params);
95
+ if (type === "integrations") return client.search.integrations(params);
96
+ if (type === "credentials") return client.search.credentials(params);
97
+ throw new Error(`Unsupported search type: ${type}`);
98
+ }
99
+ function renderHit(type, hit, { full, packageManager }) {
100
+ if (type === "operations") renderOperation(hit, {
101
+ showSchemas: full,
102
+ packageManager
103
+ });
104
+ else if (type === "integrations") renderIntegration(hit, {
105
+ full,
106
+ packageManager
107
+ });
108
+ else if (type === "credentials") renderCredential(hit, { full });
109
+ else throw new Error(`Unsupported search type: ${type}`);
110
+ }
111
+ //#endregion
112
+ export { handleSearch };
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { P as throwReportedCliExit, S as toErrorMessage, b as isAuthError, g as REAUTH_HINT, p as ui, v as getApiErrorMessage, x as isNetworkError, y as getHttpStatus } from "./keystroke.mjs";
4
+ import { a as writeJsonError, i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { i as formatPackageInstallCommand, r as detectPackageManager } from "./package-manager-BwJ6muas.mjs";
7
+ //#region src/commands/integrations/show.handler.ts
8
+ async function reportIntegrationShowFailure(ctx, integrationId, error) {
9
+ if (getHttpStatus(error) === 404) {
10
+ const message = await getApiErrorMessage(error) ?? `Integration "${integrationId}" was not found.`;
11
+ if (ctx.jsonMode) writeJsonError(message, {
12
+ code: "NOT_FOUND",
13
+ cause: error
14
+ });
15
+ else ui.error(message);
16
+ throwReportedCliExit(message, { cause: error });
17
+ }
18
+ if (isAuthError(error)) {
19
+ const message = `Not authenticated. ${REAUTH_HINT}`;
20
+ if (ctx.jsonMode) writeJsonError(message, {
21
+ code: "AUTH_ERROR",
22
+ hint: REAUTH_HINT,
23
+ cause: error
24
+ });
25
+ else ui.error(message);
26
+ throwReportedCliExit(message, { cause: error });
27
+ }
28
+ if (isNetworkError(error)) {
29
+ const url = ctx.baseUrl ?? "the Keystroke server";
30
+ const message = `Could not reach ${url} to load integration "${integrationId}".`;
31
+ const hint = `Check that your local services are running and that the CLI is pointed at ${url}.`;
32
+ if (ctx.jsonMode) writeJsonError(message, {
33
+ code: "NETWORK_ERROR",
34
+ hint,
35
+ cause: error
36
+ });
37
+ else {
38
+ ui.error(message);
39
+ ui.hint(hint);
40
+ }
41
+ throwReportedCliExit(message, { cause: error });
42
+ }
43
+ const message = `Failed to load integration "${integrationId}": ${toErrorMessage(error)}`;
44
+ if (ctx.jsonMode) writeJsonError(message, {
45
+ code: "INTEGRATION_SHOW_FAILED",
46
+ cause: error
47
+ });
48
+ else ui.error(message);
49
+ throwReportedCliExit(message, { cause: error });
50
+ }
51
+ async function handleIntegrationShow(options, ctx) {
52
+ const client = requireClient(ctx);
53
+ const integrationId = options.id;
54
+ try {
55
+ const [integration, operations] = await Promise.all([client.integrations.get(integrationId), client.integrations.listOperations(integrationId)]);
56
+ if (ctx.jsonMode) {
57
+ writeJson({
58
+ integration: integration.integration,
59
+ operations: operations.operations
60
+ });
61
+ return;
62
+ }
63
+ const entry = integration.integration;
64
+ const packageManager = detectPackageManager();
65
+ const npmPackageName = entry.npmPackageName ?? `@keystrokehq/${entry.publicId}`;
66
+ ui.text(entry.publicId);
67
+ ui.text(` ${entry.name}`);
68
+ if (entry.description) ui.text(` ${entry.description}`);
69
+ ui.text(` install: ${formatPackageInstallCommand(npmPackageName, { packageManager })}`);
70
+ ui.text(` operations (${operations.operations.length}):`);
71
+ for (const op of operations.operations) ui.text(` ${op.id} — ${op.name}`);
72
+ ui.br();
73
+ ui.hint(`Usage examples are in ${entry.npmPackageName ?? `@keystrokehq/${entry.publicId}`}'s TSDoc — open in your IDE for hover docs.`);
74
+ } catch (error) {
75
+ await reportIntegrationShowFailure(ctx, integrationId, error);
76
+ }
77
+ }
78
+ //#endregion
79
+ export { handleIntegrationShow };
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
6
  import { o as renderJsonSchema } from "./schema-display-sZ6ConJd.mjs";
7
7
  import { t as renderCredential } from "./render-credential-D-H1ECDt.mjs";
8
8
  //#region src/commands/credentials/definitions/show.handler.ts
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
6
  import { o as renderJsonSchema } from "./schema-display-sZ6ConJd.mjs";
7
- import { r as detectPackageManager } from "./package-manager-BP3-q8hh.mjs";
8
- import { t as renderOperation } from "./render-operation-VdEPhoII.mjs";
7
+ import { r as detectPackageManager } from "./package-manager-BwJ6muas.mjs";
8
+ import { t as renderOperation } from "./render-operation-iF7Wblv2.mjs";
9
9
  //#region src/commands/operations/show.handler.ts
10
10
  async function handleOperationShow(options, ctx) {
11
11
  const { operation } = await requireClient(ctx).operations.get(options.id);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { k as CliExitError, p as ui } from "./keystroke.mjs";
3
+ import { A as CliExitError, p as ui } from "./keystroke.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import path from "node:path";
6
6
  import { access, cp, mkdir, readFile, readdir, rm, symlink, writeFile } from "node:fs/promises";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { k as CliExitError } from "./keystroke.mjs";
4
- import { a as writeJsonError, i as writeJson, r as isJsonMode } from "./output-DnIFEmi5.mjs";
5
- import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-DuMhavmM.mjs";
3
+ import { A as CliExitError } from "./keystroke.mjs";
4
+ import { a as writeJsonError, i as writeJson, r as isJsonMode } from "./output-BPydP5tG.mjs";
5
+ import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-DYNH_MJT.mjs";
6
6
  import path from "node:path";
7
7
  //#region src/commands/skills/skills-sync.handler.ts
8
8
  async function handleSkillsSync(options, _ctx) {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-DnIFEmi5.mjs";
4
- import { t as createTypedCommand } from "./commander-C6SSTQJ2.mjs";
3
+ import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BPydP5tG.mjs";
4
+ import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
5
5
  import { t as SKILL_INSTALL_METHODS } from "./types-Cb0eWmUU.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/skills/skills.command.ts
@@ -38,7 +38,7 @@ function createSkillsCommand() {
38
38
  description: "Install bundled Keystroke skills into selected agent skill directories",
39
39
  schema: SkillsCommandOptionsSchema,
40
40
  optionsConfig: SKILLS_OPTIONS_CONFIG,
41
- loadHandler: async () => (await import("./skills-sync.handler-BGs-_YD9.mjs")).handleSkillsSync
41
+ loadHandler: async () => (await import("./skills-sync.handler-_LVhIMRH.mjs")).handleSkillsSync
42
42
  })]
43
43
  });
44
44
  cmd.enablePositionalOptions();
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { I as logger, L as originalConsole, n as style, r as isTTY, t as ANSI } from "./keystroke.mjs";
3
+ import { L as logger, R as originalConsole, n as style, r as isTTY, t as ANSI } from "./keystroke.mjs";
4
4
  import { writeSync } from "node:fs";
5
5
  import { Worker } from "node:worker_threads";
6
6
  //#region src/lib/spinner-progress.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { g as REAUTH_HINT, h as AUTH_HINT, p as ui } from "./keystroke.mjs";
4
- import { a as getApiKeyValidationStatus, c as resolveEffectiveOrganization, i as formatOrgSourceLabel, t as ORG_CONTEXT_HINT } from "./org-context-BI9OSpbb.mjs";
4
+ import { a as getApiKeyValidationStatus, c as resolveEffectiveOrganization, i as formatOrgSourceLabel, t as ORG_CONTEXT_HINT } from "./org-context-CNh2p2DP.mjs";
5
5
  //#region src/commands/auth/status.handler.ts
6
6
  async function getLiveUser(ctx, validation) {
7
7
  if (!ctx.client || validation.kind !== "valid") return;
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { N as throwReportedCliExit, p as ui } from "./keystroke.mjs";
3
+ import { P as throwReportedCliExit, p as ui } from "./keystroke.mjs";
4
4
  import { n as credentials } from "./dist-B5jy238v.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
6
- import { c as resolveEffectiveOrganization, n as ORG_STORED_KEYS_HINT, t as ORG_CONTEXT_HINT } from "./org-context-BI9OSpbb.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { c as resolveEffectiveOrganization, n as ORG_STORED_KEYS_HINT, t as ORG_CONTEXT_HINT } from "./org-context-CNh2p2DP.mjs";
7
7
  import { select } from "@clack/prompts";
8
8
  //#region src/commands/org/switch.handler.ts
9
9
  async function handleOrgSwitch(_options, ctx) {
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as createTypedCommand } from "./commander-C6SSTQJ2.mjs";
3
+ import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/sync/sync.command.ts
6
6
  /**
@@ -32,7 +32,7 @@ function createSyncCommand() {
32
32
  description: "Sync local workflows with Keystroke",
33
33
  schema: SyncOptionsSchema,
34
34
  optionsConfig: SYNC_OPTIONS_CONFIG,
35
- loadHandler: async () => (await import("./sync.handler-Cm_WtGmH.mjs")).handleSync
35
+ loadHandler: async () => (await import("./sync.handler-x8v53-TT.mjs")).handleSync
36
36
  });
37
37
  }
38
38
  //#endregion
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { I as logger, N as throwReportedCliExit, l as isLocalMode, p as ui, x as toErrorMessage } from "./keystroke.mjs";
3
+ import { L as logger, P as throwReportedCliExit, S as toErrorMessage, l as isLocalMode, p as ui } from "./keystroke.mjs";
4
4
  import { i as projects } from "./dist-B5jy238v.mjs";
5
- import { a as validateApiKey, i as requireClient } from "./context-ebZssGCY.mjs";
5
+ import { a as validateApiKey, i as requireClient } from "./context-Brc9VGV9.mjs";
6
6
  import { n as deployFromDir } from "./dist-BmbFJq8U.mjs";
7
- import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
8
- import { a as runWorkflowBuild, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-Bm8JoVv4.mjs";
9
- import { t as createBuildProgress } from "./build-progress-CM-b6Bby.mjs";
10
- import { t as createDeployProgress } from "./deploy-progress-Bt86Yc1r.mjs";
7
+ import { t as requireWorkflowsDir } from "./resolve-project-CoCN9xfi.mjs";
8
+ import { a as runWorkflowBuild, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-Db6at6IA.mjs";
9
+ import { t as createBuildProgress } from "./build-progress-D_SQqdHA.mjs";
10
+ import { t as createDeployProgress } from "./deploy-progress-BDOCSm_U.mjs";
11
11
  //#region src/commands/sync/sync.handler.ts
12
12
  async function handleSync(options, ctx) {
13
13
  try {
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-DnIFEmi5.mjs";
5
- import { t as createTypedCommand } from "./commander-C6SSTQJ2.mjs";
4
+ import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BPydP5tG.mjs";
5
+ import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/test/test.command.ts
8
8
  const TestOptionsSchema = JsonOptionSchema;
@@ -63,7 +63,7 @@ function createTestCommand() {
63
63
  description: "Agent tool name from the built manifest",
64
64
  key: "toolName"
65
65
  },
66
- loadHandler: async () => (await import("./tool.handler-CPCrSDq2.mjs")).handleTestTool
66
+ loadHandler: async () => (await import("./tool.handler-DsbpocYI.mjs")).handleTestTool
67
67
  })]
68
68
  });
69
69
  cmd.enablePositionalOptions();
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { k as CliExitError, l as isLocalMode, p as ui, x as toErrorMessage } from "./keystroke.mjs";
3
+ import { A as CliExitError, S as toErrorMessage, l as isLocalMode, p as ui } from "./keystroke.mjs";
4
4
  import { i as projects } from "./dist-B5jy238v.mjs";
5
5
  import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
6
- import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-ebZssGCY.mjs";
6
+ import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Brc9VGV9.mjs";
7
7
  import { o as readWorkflowsFromDisk, s as uploadTestBundle } from "./dist-BmbFJq8U.mjs";
8
- import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
9
- import { a as runWorkflowBuild, t as WorkflowNotFoundError } from "./workflow-build-Bm8JoVv4.mjs";
8
+ import { t as requireWorkflowsDir } from "./resolve-project-CoCN9xfi.mjs";
9
+ import { a as runWorkflowBuild, t as WorkflowNotFoundError } from "./workflow-build-Db6at6IA.mjs";
10
10
  import { a as isUnknownSchema } from "./schema-display-sZ6ConJd.mjs";
11
- import { t as createBuildProgress } from "./build-progress-CM-b6Bby.mjs";
12
- import { t as withErrorBoundary } from "./error-boundary-BRxUsPi7.mjs";
13
- import { a as tryReadExistingInputSchema, n as resolveInput, o as validateInputOrExit, t as pollForCompletion } from "./run-polling-C5fI7xTp.mjs";
14
- import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-fkHEEVnd.mjs";
11
+ import { t as createBuildProgress } from "./build-progress-D_SQqdHA.mjs";
12
+ import { t as withErrorBoundary } from "./error-boundary-D2DiCLAp.mjs";
13
+ import { a as tryReadExistingInputSchema, n as resolveInput, o as validateInputOrExit, t as pollForCompletion } from "./run-polling-htHWhG0T.mjs";
14
+ import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-BRCQgyWl.mjs";
15
15
  //#region src/lib/format.ts
16
16
  function formatBytes(bytes) {
17
17
  if (bytes < 1024) return `${bytes} B`;
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { a as validateApiKey, i as requireClient } from "./context-ebZssGCY.mjs";
4
+ import { a as validateApiKey, i as requireClient } from "./context-Brc9VGV9.mjs";
5
5
  //#region src/commands/auth/test.handler.ts
6
6
  async function handleAuthTest(_options, ctx) {
7
7
  const result = await validateApiKey(requireClient(ctx));
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { N as throwReportedCliExit, c as getProcessEnv, k as CliExitError, p as ui, x as toErrorMessage } from "./keystroke.mjs";
3
+ import { A as CliExitError, P as throwReportedCliExit, S as toErrorMessage, c as getProcessEnv, p as ui } from "./keystroke.mjs";
4
4
  import { t as Credentials } from "./dist-B5jy238v.mjs";
5
5
  import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
6
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
7
- import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-ebZssGCY.mjs";
6
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
7
+ import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Brc9VGV9.mjs";
8
8
  import { a as readManifestsFromOutDir } from "./dist-BmbFJq8U.mjs";
9
- import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
10
- import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-Bm8JoVv4.mjs";
11
- import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-C6x65imE.mjs";
12
- import { n as resolveInput, o as validateInputOrExit, t as pollForCompletion } from "./run-polling-C5fI7xTp.mjs";
9
+ import { t as requireWorkflowsDir } from "./resolve-project-CoCN9xfi.mjs";
10
+ import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-Db6at6IA.mjs";
11
+ import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-CknsHF5T.mjs";
12
+ import { n as resolveInput, o as validateInputOrExit, t as pollForCompletion } from "./run-polling-htHWhG0T.mjs";
13
13
  import * as path$1 from "node:path";
14
14
  import path from "node:path";
15
15
  import * as os from "node:os";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as createTypedCommand } from "./commander-C6SSTQJ2.mjs";
4
- import { t as PackageManagerValues } from "./package-manager-BP3-q8hh.mjs";
3
+ import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
4
+ import { t as PackageManagerValues } from "./package-manager-BwJ6muas.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/upgrade/upgrade.command.ts
7
7
  const PackageManagerSchema = z.enum(PackageManagerValues);
@@ -30,7 +30,7 @@ function createUpgradeCommand() {
30
30
  description: "Upgrade the Keystroke CLI to the latest published version",
31
31
  schema: UpgradeOptionsSchema,
32
32
  optionsConfig: UPGRADE_OPTIONS_CONFIG,
33
- loadHandler: async () => (await import("./upgrade.handler-PqlKSuUE.mjs")).handleUpgrade
33
+ loadHandler: async () => (await import("./upgrade.handler-DsFeAFF4.mjs")).handleUpgrade
34
34
  });
35
35
  }
36
36
  //#endregion
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { N as throwReportedCliExit, a as CLI_PACKAGE_NAME, k as CliExitError, p as ui, x as toErrorMessage } from "./keystroke.mjs";
4
- import { a as readYarnMajorVersion } from "./package-manager-BP3-q8hh.mjs";
3
+ import { A as CliExitError, P as throwReportedCliExit, S as toErrorMessage, a as CLI_PACKAGE_NAME, p as ui } from "./keystroke.mjs";
4
+ import { a as readYarnMajorVersion } from "./package-manager-BwJ6muas.mjs";
5
5
  import { spawn } from "node:child_process";
6
6
  //#region src/commands/upgrade/upgrade.handler.ts
7
7
  function buildUpgradeCommand(options) {
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { N as throwReportedCliExit, c as getProcessEnv, p as ui, x as toErrorMessage } from "./keystroke.mjs";
3
+ import { P as throwReportedCliExit, S as toErrorMessage, c as getProcessEnv, p as ui } from "./keystroke.mjs";
4
4
  import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
5
- import { a as writeJsonError, i as writeJson } from "./output-DnIFEmi5.mjs";
6
- import { i as requireClient } from "./context-ebZssGCY.mjs";
5
+ import { a as writeJsonError, i as writeJson } from "./output-BPydP5tG.mjs";
6
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
7
7
  import { a as readManifestsFromOutDir, t as collectCredentialFingerprintMapFromProjectDist } from "./dist-BmbFJq8U.mjs";
8
- import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
9
- import { t as getIntegrationCatalog } from "./integration-catalog-pSmWHFLQ.mjs";
8
+ import { t as requireWorkflowsDir } from "./resolve-project-CoCN9xfi.mjs";
9
+ import { t as getIntegrationCatalog } from "./integration-catalog-mZs6EAlN.mjs";
10
10
  import { t as readCredentialEnvMap } from "./credential-env-map-5a41jLwM.mjs";
11
11
  import { a as verifyCredentialResolvable, i as validateManualCredentialWithHook, n as resolveCredentialValuesFromEnv, r as uploadCredential, t as groupCredentialRequirements } from "./credentials-DtwLbee6.mjs";
12
- import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-c17ktoNU.mjs";
12
+ import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-CStYUB2h.mjs";
13
13
  import * as path$1 from "node:path";
14
14
  import { confirm, isCancel } from "@clack/prompts";
15
15
  //#region src/commands/credentials/upload/upload.handler.ts
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
6
- import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
7
7
  //#region src/commands/admin/users.get.handler.ts
8
8
  async function handleAdminUsersGet(options, ctx) {
9
9
  const client = requireClient(ctx);
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
6
- import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
7
7
  import Table from "cli-table3";
8
8
  //#region src/commands/admin/users.list.handler.ts
9
9
  async function handleAdminUsersList(options, ctx) {
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { p as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
- import { i as requireClient } from "./context-ebZssGCY.mjs";
6
- import { n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
4
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
5
+ import { i as requireClient } from "./context-Brc9VGV9.mjs";
6
+ import { n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
7
7
  //#region src/commands/admin/users.set-role.handler.ts
8
8
  async function handleAdminUsersSetRole(options, ctx) {
9
9
  const client = requireClient(ctx);
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { N as throwReportedCliExit, p as ui, x as toErrorMessage } from "./keystroke.mjs";
3
+ import { P as throwReportedCliExit, S as toErrorMessage, p as ui } from "./keystroke.mjs";
4
4
  import { i as projects } from "./dist-B5jy238v.mjs";
5
- import { i as writeJson } from "./output-DnIFEmi5.mjs";
5
+ import { i as writeJson } from "./output-BPydP5tG.mjs";
6
6
  import { a as readManifestsFromOutDir } from "./dist-BmbFJq8U.mjs";
7
- import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
8
- import { c as build, s as typecheckWorkflows, t as WorkflowNotFoundError } from "./workflow-build-Bm8JoVv4.mjs";
9
- import { t as createBuildProgress } from "./build-progress-CM-b6Bby.mjs";
10
- import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-fkHEEVnd.mjs";
7
+ import { t as requireWorkflowsDir } from "./resolve-project-CoCN9xfi.mjs";
8
+ import { c as build, s as typecheckWorkflows, t as WorkflowNotFoundError } from "./workflow-build-Db6at6IA.mjs";
9
+ import { t as createBuildProgress } from "./build-progress-D_SQqdHA.mjs";
10
+ import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-BRCQgyWl.mjs";
11
11
  import * as path$1 from "node:path";
12
12
  import * as os from "node:os";
13
13
  import { mkdtemp, readFile, readdir, rm } from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { i as __toESM, n as __exportAll } from "./chunk-CH6r78ws.mjs";
4
- import { I as logger, L as originalConsole, n as style, p as ui, t as ANSI, x as toErrorMessage } from "./keystroke.mjs";
4
+ import { L as logger, R as originalConsole, S as toErrorMessage, n as style, p as ui, t as ANSI } from "./keystroke.mjs";
5
5
  import { r as getKeystrokeTmpDir } from "./dist-B5jy238v.mjs";
6
6
  import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
7
7
  import { a as FlowGraphSchema, r as WorkflowBuildManifestSchema } from "./workflow-build-manifest-CV6bBmDO.mjs";