@keystrokehq/cli 0.0.1 → 0.0.2

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 (151) hide show
  1. package/AGENTS-blurb.md +1 -1
  2. package/LICENSE +0 -21
  3. package/README.md +14 -6
  4. package/dist/accept.handler-DFtM0IuO.mjs +22 -0
  5. package/dist/admin-D_7tenRC.mjs +208 -0
  6. package/dist/{agent-manifest-CDnbkR2f.mjs → agent-manifest-Bfa3DBgc.mjs} +4 -4
  7. package/dist/{agents-CZJGxVqV.mjs → agents-DMEo-6QB.mjs} +8 -8
  8. package/dist/api-keys-BThGvtdn.mjs +58 -0
  9. package/dist/{auth-DN2VusyU.mjs → auth-Byry35LJ.mjs} +7 -11
  10. package/dist/{auth.handler-CT1BQUvu.mjs → auth.handler-BBPObKwk.mjs} +5 -5
  11. package/dist/{build-agents-BmM_AsSd-BGi9wtzt.mjs → build-agents-DfbiMZ_e-CRnzruSu.mjs} +7 -7
  12. package/dist/{build-metadata-BWS7uhd_-DR8gJjTX.mjs → build-metadata-zidV9Cai-RgG4ndIH.mjs} +11 -11
  13. package/dist/{build-progress-DgYKb4hB.mjs → build-progress-Cn2j1LqF.mjs} +1 -1
  14. package/dist/{build-tasks-CdihpudT-D5r5HUHe.mjs → build-tasks-O1jYtlv1-Y65uGWuz.mjs} +4 -5
  15. package/dist/{build-workflows-CfxBnIWh-CdYPv8w2.mjs → build-workflows-3fdvdHHf-DJ_lH1NH.mjs} +9 -9
  16. package/dist/{build.handler-4799CjWH.mjs → build.handler-Tb3IpABI.mjs} +5 -5
  17. package/dist/{clear-cache.handler-B9tqSoSM.mjs → clear-cache.handler-BEbPz5Ej.mjs} +1 -1
  18. package/dist/{clear.handler-BydlX-zE.mjs → clear.handler-CtOZ4aRn.mjs} +1 -1
  19. package/dist/{clear.handler-BTIXXPTJ.mjs → clear.handler-YS8gPriq.mjs} +2 -2
  20. package/dist/{commander-DfTVqQ-3.mjs → commander-DZ3F3CVq.mjs} +6 -5
  21. package/dist/common-BrVAdUyD.mjs +20 -0
  22. package/dist/{connect-BUXkeH0F.mjs → connect-DpQgYg8z.mjs} +3 -3
  23. package/dist/{connect.handler-CYel9cy6.mjs → connect.handler-DuRr_yyN.mjs} +5 -5
  24. package/dist/{context-T7HZuB97.mjs → context-Y1f1hGYy.mjs} +7 -7
  25. package/dist/create.handler-uNG3I4wS.mjs +24 -0
  26. package/dist/credential-requirements-DjDFthio.mjs +480 -0
  27. package/dist/{credential-schema-mismatch-BKo5PjcQ.mjs → credential-schema-mismatch-B-wwbCvw.mjs} +2 -2
  28. package/dist/{credentials-OfVHOtG3.mjs → credentials-DHlK_O4L.mjs} +823 -14
  29. package/dist/{credentials-CvmjU0lK.mjs → credentials-UpgEcaub.mjs} +7 -7
  30. package/dist/{current-deployment-workflow-poHt27i3.mjs → current-deployment-workflow-M8GEIHxv.mjs} +5 -5
  31. package/dist/{current.handler-B8zKzfPp.mjs → current.handler-BqPUKCvn.mjs} +1 -1
  32. package/dist/declared-credential-requirements-Bwlb-KZE.mjs +132 -0
  33. package/dist/default-urls-BS4twrsS.mjs +7 -0
  34. package/dist/{delete.handler-bAu1iXVQ.mjs → delete.handler-CJTHVZaz.mjs} +1 -1
  35. package/dist/{deploy-7Jjls436.mjs → deploy-CdnaZY3s.mjs} +1 -1
  36. package/dist/{deploy-BOPIpRWm.mjs → deploy-Gw0KPrkf.mjs} +2 -2
  37. package/dist/{deploy-progress-BmGUNFKg.mjs → deploy-progress-CZ2rPlOj.mjs} +1 -1
  38. package/dist/{deploy.handler-BAzgiNhd.mjs → deploy.handler-zzFAt7pp.mjs} +18 -18
  39. package/dist/{detect-env-access-CwkOYeYM-D_BCZqV6.mjs → detect-env-access-CwkOYeYM-h2W05D_Q.mjs} +1 -1
  40. package/dist/{diff.handler-Du7SY8K4.mjs → diff.handler--zdSkUnK.mjs} +5 -5
  41. package/dist/{dist-CUK7yBM0.mjs → dist-BF6r1hfv.mjs} +3 -3
  42. package/dist/{dist-BkJUoBiG.mjs → dist-C2Dq_nx3.mjs} +12 -12
  43. package/dist/{env-91KwMKov.mjs → env-YTZGKGIu.mjs} +9 -10
  44. package/dist/{env.handler-BAzBuMzQ.mjs → env.handler-d4sJ706C.mjs} +8 -8
  45. package/dist/{error-boundary-VL-JLfIa.mjs → error-boundary-B9PgBkv8.mjs} +2 -2
  46. package/dist/{file-metadata-D1vm-XY2.mjs → file-metadata-CdFXMMIw.mjs} +1 -1
  47. package/dist/hosted-action-dispatcher-registry-TOVzMhUR.mjs +126 -0
  48. package/dist/iam-command-utils-CNC8JfZ5.mjs +72 -0
  49. package/dist/{import-module-CV84H5fZ-B_CBCmb4.mjs → import-module-DDPnzlJ1-CYJD2n2b.mjs} +395 -10
  50. package/dist/{init-DpMCotSK.mjs → init-C0sps8R7.mjs} +2 -2
  51. package/dist/{init.handler-CPRnif52.mjs → init.handler-DSW6XFZn.mjs} +17 -17
  52. package/dist/{inspect.handler-DT_cD036.mjs → inspect.handler-DbN0ZVTh.mjs} +5 -5
  53. package/dist/{integration-catalog-Bt-L3GjF.mjs → integration-catalog-DFlytKJS.mjs} +2 -2
  54. package/dist/{integrations-DlatPK4W.mjs → integrations-Dcadds2b.mjs} +5 -5
  55. package/dist/invites-DvsxTRAb.mjs +44 -0
  56. package/dist/invites.list.handler-B5quln3m.mjs +43 -0
  57. package/dist/invites.resend.handler-CSpj7bQ5.mjs +23 -0
  58. package/dist/invites.revoke.handler-_hdEkBdO.mjs +28 -0
  59. package/dist/keystroke.mjs +31 -22
  60. package/dist/{list-enrichment-y-cwizLr.mjs → list-enrichment-CTqx0Rk_.mjs} +1 -1
  61. package/dist/{list.handler-CWF_Dj15.mjs → list.handler-08GY-wnx.mjs} +1 -1
  62. package/dist/{list.handler-DWaQkJaR.mjs → list.handler-20v4uRMk.mjs} +2 -2
  63. package/dist/{list.handler-BTWvCyjA.mjs → list.handler-BRq-nScx.mjs} +5 -5
  64. package/dist/{list.handler-lq3ZGAn4.mjs → list.handler-CWO6DExh.mjs} +3 -3
  65. package/dist/{list.handler-CZ6G2x_G.mjs → list.handler-DAiJtW20.mjs} +3 -3
  66. package/dist/list.handler-DLl8ca6F.mjs +42 -0
  67. package/dist/{list.handler-DqbFcBW7.mjs → list.handler-DSPr0OxS.mjs} +7 -7
  68. package/dist/{logs-BEg9L5l8.mjs → logs-D_48skmi.mjs} +3 -3
  69. package/dist/{logs.handler-BD_dXiL1.mjs → logs.handler-4ctMVYMj.mjs} +3 -3
  70. package/dist/{logs.handler-6hoMBzqw.mjs → logs.handler-C3QnSCaH.mjs} +1 -1
  71. package/dist/members.add.handler-Dq_giQ8g.mjs +31 -0
  72. package/dist/members.invite.handler-v404bUsq.mjs +32 -0
  73. package/dist/members.list.handler-D6TE0yp8.mjs +43 -0
  74. package/dist/members.remove.handler-BhQ3cyeR.mjs +28 -0
  75. package/dist/members.update.handler-BVy2cv1K.mjs +28 -0
  76. package/dist/{metadata-layout-GUYIUo0i-_aG2zjue.mjs → metadata-layout-C6ed-9dl-aBmqqvD5.mjs} +2 -2
  77. package/dist/{normalize-path-CojS-CgQ-DLCOvnD1.mjs → normalize-path-CojS-CgQ-BKRFUzWW.mjs} +1 -1
  78. package/dist/org-CkRr-f3S.mjs +234 -0
  79. package/dist/orgs.create.handler-swGnT2ce.mjs +26 -0
  80. package/dist/orgs.get.handler-ClAqYTH0.mjs +28 -0
  81. package/dist/orgs.list.handler-D-ptz8It.mjs +41 -0
  82. package/dist/{paused.handler-BMFm9Cff.mjs → paused.handler-B3aVqw-m.mjs} +2 -2
  83. package/dist/{project-config-D1qsQlO7.mjs → project-config-opj6DsPF.mjs} +2 -2
  84. package/dist/{projects-CHkRE9rS.mjs → projects-Bdl6-Z8l.mjs} +2 -2
  85. package/dist/{projects-Cjb7sovS.mjs → projects-yA9AAaDM.mjs} +5 -5
  86. package/dist/{register.handler-BPCdor1_.mjs → register.handler-WzpvVXHx.mjs} +1 -1
  87. package/dist/{requirements.handler-DPXdSks3.mjs → requirements.handler-coArDE8x.mjs} +7 -7
  88. package/dist/{resolve-project-DDJ29sCF.mjs → resolve-project-DgfftdPm.mjs} +2 -2
  89. package/dist/{runs-D9hNLb9A.mjs → runs-B8mW4PqP.mjs} +3 -3
  90. package/dist/schedule-BRN4hzQM.mjs +505 -0
  91. package/dist/schema-_FQrHcIS.mjs +17 -0
  92. package/dist/schema-kbMHVnhm.mjs +81 -0
  93. package/dist/schemas-DsvCZfF0.mjs +42 -0
  94. package/dist/{skills-sync.handler-DIy8GR16.mjs → skills-sync.handler-C2faeat-.mjs} +2 -2
  95. package/dist/{skills.command-CrjI2dN9.mjs → skills.command-DWxcc3Ui.mjs} +4 -4
  96. package/dist/source-analysis-BspLa3E5.mjs +75 -0
  97. package/dist/{source-analysis-Cj-ADyu--BJQcFPCG.mjs → source-analysis-DEEChuND-eixwPnPP.mjs} +5 -5
  98. package/dist/{src-eHwu-Gfw.mjs → src-J09NGJ6Z.mjs} +42 -6
  99. package/dist/{switch.handler-D_9213Vf.mjs → switch.handler-C4hgbhcH.mjs} +2 -2
  100. package/dist/{sync-BL_Mo5st.mjs → sync-CL6zXiiA.mjs} +2 -2
  101. package/dist/{sync.handler-BUFPdzWz.mjs → sync.handler-D1uF8E8I.mjs} +8 -8
  102. package/dist/{schemas-CDib1RhE.mjs → task-DsrXI6XH.mjs} +10 -39
  103. package/dist/{task-target-build-CBeCKbu2.mjs → task-target-build-DTzz4fpG.mjs} +4 -4
  104. package/dist/task-target-deploy-BPLlP__P.mjs +4 -0
  105. package/dist/{task-target-deploy-CA6elFpF-BEr4gkol.mjs → task-target-deploy-Bf5i3ox1-BU16VPsE.mjs} +2 -3
  106. package/dist/task-target-deploy-runner.mjs +15 -14
  107. package/dist/{test-BHTgR3UA.mjs → test-BsTLXIPB.mjs} +31 -31
  108. package/dist/{test.handler-BcPQ8b74.mjs → test.handler-D25kziPi.mjs} +1 -1
  109. package/dist/{trigger-artifacts-DQPbQNqC-B4yeeFBY.mjs → trigger-artifacts-B3OCTX9K-DG-FGGJT.mjs} +5 -5
  110. package/dist/{trigger-manifest-CY7brZeg.mjs → trigger-manifest-CXD9I7Rb.mjs} +1 -2
  111. package/dist/{try-deploy.handler-DqybNhXx.mjs → try-deploy.handler-2aX5TmLk.mjs} +11 -11
  112. package/dist/{upload.handler-DCtiznQp.mjs → upload.handler-CqProKVJ.mjs} +10 -10
  113. package/dist/users.get.handler-C_d2GWKX.mjs +24 -0
  114. package/dist/users.list.handler-DXAsO8Yk.mjs +36 -0
  115. package/dist/users.set-role.handler-Bn_yV4RI.mjs +27 -0
  116. package/dist/{utils-CywxCDM7.mjs → utils-DlYHjGg9.mjs} +2 -2
  117. package/dist/{validate.handler-DOcTaJL0.mjs → validate.handler-CGD6GttR.mjs} +5 -5
  118. package/dist/{workflow-build-DBQaBfnn.mjs → workflow-build-BcaIdRR6.mjs} +22 -45
  119. package/dist/{workflow-bundler-BPiqVscj-X1PFFAuP.mjs → workflow-bundler-BzHk73PM-Cde7cKiU.mjs} +4 -4
  120. package/dist/{_manifest-JSRE3H8k.mjs → workflow-manifest-CAW5FlX0.mjs} +7 -131
  121. package/dist/{workflows-g9z87AJJ.mjs → workflows-S-gbfw8f.mjs} +16 -15
  122. package/dist/{writer-BG8poUm3-BbXlU2kI.mjs → writer-CtvttJdP-DrJruQgR.mjs} +8 -8
  123. package/package.json +9 -11
  124. package/THIRD_PARTY_NOTICES.md +0 -16
  125. package/dist/api-keys-D2lgguuY.mjs +0 -40
  126. package/dist/org-xLzBtt2_.mjs +0 -41
  127. package/dist/schedule-BXx3uXwr.mjs +0 -1142
  128. package/dist/src-C0X6u_Mw.mjs +0 -1340
  129. package/dist/task-B2sZMaZu.mjs +0 -8
  130. package/dist/task-target-deploy-C5X-USeR.mjs +0 -4
  131. /package/dist/{agent-bundle-package-DWV6B_5q-BtV7Xycc.mjs → agent-bundle-package-DWV6B_5q-FPT0bJaA.mjs} +0 -0
  132. /package/dist/{browser-qwFrUH82.mjs → browser-gddMccBQ.mjs} +0 -0
  133. /package/dist/{concurrency-gXn9Rw8x-DNl2YtrS.mjs → concurrency-gXn9Rw8x-BTlfau8D.mjs} +0 -0
  134. /package/dist/{constants-CPpPdSNg.mjs → constants-DHdiT5hc.mjs} +0 -0
  135. /package/dist/{credential-env-map-CI8yWHVy.mjs → credential-env-map-C8P7uTD-.mjs} +0 -0
  136. /package/dist/{diff-utils-NEfcjqxt.mjs → diff-utils-DWNcRA8g.mjs} +0 -0
  137. /package/dist/{get-intrinsic-zLxwtrLK.mjs → get-intrinsic-ZMBBjBEr.mjs} +0 -0
  138. /package/dist/{layout-CbMtQ2tm.mjs → layout-B95Tku8F.mjs} +0 -0
  139. /package/dist/{options-CeaTcFxP.mjs → options-Dn9t3K4a.mjs} +0 -0
  140. /package/dist/{output-DM4b7KgY.mjs → output-q4KljAhu.mjs} +0 -0
  141. /package/dist/{oxc-B3KI3rf_-n9d1hKNq.mjs → oxc-B3KI3rf_-BeimiQ2U.mjs} +0 -0
  142. /package/dist/{read-credential-keys-77a91T8M-KA0Iw0Z1.mjs → read-credential-keys-77a91T8M-CAJLnMRi.mjs} +0 -0
  143. /package/dist/{rolldown-runtime-twds-ZHy-BWWzu8VG.mjs → rolldown-runtime-twds-ZHy-8uqgIurC.mjs} +0 -0
  144. /package/dist/{run-polling-CAgFRdK3.mjs → run-polling-CTzhTgyN.mjs} +0 -0
  145. /package/dist/{schema-17qMfNyI.mjs → schema-Di90TXoX.mjs} +0 -0
  146. /package/dist/{schema-display-CgmeKigW.mjs → schema-display-D4A1gQEM.mjs} +0 -0
  147. /package/dist/{skills.handler-Bz8bJKql.mjs → skills.handler-8KCSF7wp.mjs} +0 -0
  148. /package/dist/{spinner-progress-DMVwgqO9.mjs → spinner-progress-bvKd1jXc.mjs} +0 -0
  149. /package/dist/{status.handler-BO4nwvWn.mjs → status.handler-D9GBEmao.mjs} +0 -0
  150. /package/dist/{sync-keystroke-agent-skills-Kx_H7UTd.mjs → sync-keystroke-agent-skills-CY9h25_5.mjs} +0 -0
  151. /package/dist/{upload-CkU--iDC.mjs → upload-B8fiWveA.mjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { a as originalConsole, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { o as readLogFile } from "./dist-CUK7yBM0.mjs";
4
+ import { o as readLogFile } from "./dist-BF6r1hfv.mjs";
5
5
  //#region src/commands/logs/logs.handler.ts
6
6
  const LEVEL_STYLES = {
7
7
  debug: ANSI.dim,
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireOrganizationId, n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/org/members.add.handler.ts
8
+ async function handleMembersAdd(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ if (options.role === "owner") requireConfirmation({
12
+ confirmed: options.confirm,
13
+ message: "Adding an owner grants full organization control.",
14
+ ctx
15
+ });
16
+ try {
17
+ const result = await client.organizations.members.add(organizationId, {
18
+ userId: options.userId,
19
+ role: options.role
20
+ });
21
+ if (isIamJsonMode(options, ctx)) {
22
+ writeJson(result);
23
+ return;
24
+ }
25
+ ui.success(`Added ${options.userId} as ${options.role}`);
26
+ } catch (error) {
27
+ await handleIamError(error, ctx, "Failed to add organization member");
28
+ }
29
+ }
30
+ //#endregion
31
+ export { handleMembersAdd };
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireOrganizationId, n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/org/members.invite.handler.ts
8
+ async function handleMembersInvite(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ if (options.role === "owner") requireConfirmation({
12
+ confirmed: options.confirm,
13
+ message: "Inviting an owner grants full organization control.",
14
+ ctx
15
+ });
16
+ try {
17
+ const result = await client.organizations.members.invite({
18
+ organizationId,
19
+ emails: [options.email],
20
+ role: options.role
21
+ });
22
+ if (isIamJsonMode(options, ctx)) {
23
+ writeJson(result);
24
+ return;
25
+ }
26
+ ui.success(`Invited ${options.email} as ${options.role}`);
27
+ } catch (error) {
28
+ await handleIamError(error, ctx, "Failed to invite organization member");
29
+ }
30
+ }
31
+ //#endregion
32
+ export { handleMembersInvite };
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireOrganizationId, n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ import Table from "cli-table3";
8
+ //#region src/commands/org/members.list.handler.ts
9
+ async function handleMembersList(_options, ctx) {
10
+ const client = requireClient(ctx);
11
+ const organizationId = requireOrganizationId(ctx);
12
+ try {
13
+ const result = await client.organizations.members.list(organizationId);
14
+ if (isIamJsonMode(_options, ctx)) {
15
+ writeJson(result);
16
+ return;
17
+ }
18
+ if (result.members.length === 0) {
19
+ ui.hint("No members found.");
20
+ return;
21
+ }
22
+ const table = new Table({
23
+ head: [
24
+ "Email",
25
+ "User ID",
26
+ "Role",
27
+ "Status"
28
+ ],
29
+ style: { head: [] }
30
+ });
31
+ for (const member of result.members) table.push([
32
+ member.user.email,
33
+ member.user.id,
34
+ member.membership.role,
35
+ member.membership.status
36
+ ]);
37
+ ui.text(table.toString());
38
+ } catch (error) {
39
+ await handleIamError(error, ctx, "Failed to list organization members");
40
+ }
41
+ }
42
+ //#endregion
43
+ export { handleMembersList };
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireOrganizationId, n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/org/members.remove.handler.ts
8
+ async function handleMembersRemove(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ requireConfirmation({
12
+ confirmed: options.confirm,
13
+ message: "Removing a member revokes organization access.",
14
+ ctx
15
+ });
16
+ try {
17
+ const result = await client.organizations.members.remove(organizationId, options.userId);
18
+ if (isIamJsonMode(options, ctx)) {
19
+ writeJson(result);
20
+ return;
21
+ }
22
+ ui.success(`Removed ${options.userId}`);
23
+ } catch (error) {
24
+ await handleIamError(error, ctx, "Failed to remove organization member");
25
+ }
26
+ }
27
+ //#endregion
28
+ export { handleMembersRemove };
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireOrganizationId, n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/org/members.update.handler.ts
8
+ async function handleMembersUpdate(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ if (options.role === "owner") requireConfirmation({
12
+ confirmed: options.confirm,
13
+ message: "Promoting a member to owner grants full organization control.",
14
+ ctx
15
+ });
16
+ try {
17
+ const result = await client.organizations.members.update(organizationId, options.userId, { role: options.role });
18
+ if (isIamJsonMode(options, ctx)) {
19
+ writeJson(result);
20
+ return;
21
+ }
22
+ ui.success(`Updated ${options.userId} to ${result.membership.role}`);
23
+ } catch (error) {
24
+ await handleIamError(error, ctx, "Failed to update organization member");
25
+ }
26
+ }
27
+ //#endregion
28
+ export { handleMembersUpdate };
@@ -5738,7 +5738,7 @@ var require_out = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5738
5738
  module.exports = FastGlob;
5739
5739
  }));
5740
5740
  //#endregion
5741
- //#region ../../packages/workflow-builder/dist/metadata-layout-GUYIUo0i.mjs
5741
+ //#region ../../packages/workflow-builder/dist/metadata-layout-C6ed-9dl.mjs
5742
5742
  var import_out = /* @__PURE__ */ __toESM(require_out(), 1);
5743
5743
  createRequire(import.meta.url);
5744
5744
  async function computeBuilderFingerprint(packageRoot) {
@@ -5837,7 +5837,7 @@ async function collectDependencySensitiveBuilderFiles(workspaceRoot, _packageRoo
5837
5837
  await readFile(filePath);
5838
5838
  files.add(filePath);
5839
5839
  } catch {}
5840
- for (const packageName of ["workflow-core", "shared-types"]) {
5840
+ for (const packageName of ["core", "shared-types"]) {
5841
5841
  const packageFiles = await (0, import_out.default)(["package.json", "src/**/*.ts"], {
5842
5842
  cwd: path$1.join(workspaceRoot, "packages", packageName),
5843
5843
  absolute: true,
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { r as RelativeFilePathSchema } from "./file-metadata-D1vm-XY2.mjs";
3
+ import { r as RelativeFilePathSchema } from "./file-metadata-CdFXMMIw.mjs";
4
4
  import path from "node:path";
5
5
  //#region ../../packages/workflow-builder/dist/normalize-path-CojS-CgQ.mjs
6
6
  function normalizeRelativeFilePath(relativePath) {
@@ -0,0 +1,234 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
+ import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
5
+ import { t as OrgRoleSchema } from "./schema-_FQrHcIS.mjs";
6
+ import { z } from "zod";
7
+ //#region src/commands/org/invites.command.ts
8
+ const ConfirmJsonSchema$1 = JsonOptionSchema.extend({ confirm: z.boolean().optional() });
9
+ const CONFIRM_JSON_CONFIG$1 = {
10
+ ...JSON_OPTION_CONFIG,
11
+ confirm: {
12
+ flag: "--confirm",
13
+ description: "Confirm this mutation"
14
+ }
15
+ };
16
+ const OrgInvitesListOptionsSchema = JsonOptionSchema;
17
+ const OrgInvitesByIdOptionsSchema = JsonOptionSchema.extend({ inviteId: z.string().min(1) });
18
+ const BY_ID_OPTIONS_CONFIG = {
19
+ ...JSON_OPTION_CONFIG,
20
+ inviteId: {
21
+ flag: "",
22
+ description: ""
23
+ }
24
+ };
25
+ const OrgInvitesRevokeOptionsSchema = ConfirmJsonSchema$1.extend({ inviteId: z.string().min(1) });
26
+ const REVOKE_OPTIONS_CONFIG = {
27
+ ...CONFIRM_JSON_CONFIG$1,
28
+ inviteId: {
29
+ flag: "",
30
+ description: ""
31
+ }
32
+ };
33
+ function createOrgInvitesCommand() {
34
+ return createTypedCommand({
35
+ name: "invites",
36
+ description: "Manage organization invitations",
37
+ schema: OrgInvitesListOptionsSchema,
38
+ optionsConfig: { ...JSON_OPTION_CONFIG },
39
+ loadHandler: async () => (await import("./invites.list.handler-B5quln3m.mjs")).handleOrgInvitesList,
40
+ subcommands: [
41
+ createTypedCommand({
42
+ name: "list",
43
+ description: "List organization invites",
44
+ schema: OrgInvitesListOptionsSchema,
45
+ optionsConfig: { ...JSON_OPTION_CONFIG },
46
+ loadHandler: async () => (await import("./invites.list.handler-B5quln3m.mjs")).handleOrgInvitesList
47
+ }),
48
+ createTypedCommand({
49
+ name: "resend",
50
+ description: "Resend an organization invite",
51
+ schema: OrgInvitesByIdOptionsSchema,
52
+ optionsConfig: BY_ID_OPTIONS_CONFIG,
53
+ argument: {
54
+ name: "invite-id",
55
+ description: "Invite ID to resend",
56
+ key: "inviteId"
57
+ },
58
+ loadHandler: async () => (await import("./invites.resend.handler-CSpj7bQ5.mjs")).handleOrgInvitesResend
59
+ }),
60
+ createTypedCommand({
61
+ name: "revoke",
62
+ description: "Revoke an organization invite",
63
+ schema: OrgInvitesRevokeOptionsSchema,
64
+ optionsConfig: REVOKE_OPTIONS_CONFIG,
65
+ argument: {
66
+ name: "invite-id",
67
+ description: "Invite ID to revoke",
68
+ key: "inviteId"
69
+ },
70
+ loadHandler: async () => (await import("./invites.revoke.handler-_hdEkBdO.mjs")).handleOrgInvitesRevoke
71
+ })
72
+ ]
73
+ });
74
+ }
75
+ //#endregion
76
+ //#region src/commands/org/members.command.ts
77
+ const ConfirmJsonSchema = JsonOptionSchema.extend({ confirm: z.boolean().optional() });
78
+ const CONFIRM_JSON_CONFIG = {
79
+ ...JSON_OPTION_CONFIG,
80
+ confirm: {
81
+ flag: "--confirm",
82
+ description: "Confirm this high-impact mutation"
83
+ }
84
+ };
85
+ const MembersListOptionsSchema = JsonOptionSchema;
86
+ const MembersInviteOptionsSchema = ConfirmJsonSchema.extend({
87
+ email: z.email(),
88
+ role: OrgRoleSchema
89
+ });
90
+ const INVITE_OPTIONS_CONFIG = {
91
+ ...CONFIRM_JSON_CONFIG,
92
+ email: {
93
+ flag: "--email <email>",
94
+ description: "Invitee email address"
95
+ },
96
+ role: {
97
+ flag: "--role <role>",
98
+ description: "Role: owner, admin, or builder"
99
+ }
100
+ };
101
+ const MembersAddOptionsSchema = ConfirmJsonSchema.extend({
102
+ userId: z.string().min(1),
103
+ role: OrgRoleSchema
104
+ });
105
+ const ADD_OPTIONS_CONFIG = {
106
+ ...CONFIRM_JSON_CONFIG,
107
+ userId: {
108
+ flag: "--user-id <id>",
109
+ description: "Existing user ID"
110
+ },
111
+ role: {
112
+ flag: "--role <role>",
113
+ description: "Role: owner, admin, or builder"
114
+ }
115
+ };
116
+ const MembersUpdateOptionsSchema = ConfirmJsonSchema.extend({
117
+ userId: z.string().min(1),
118
+ role: OrgRoleSchema
119
+ });
120
+ const UPDATE_OPTIONS_CONFIG = {
121
+ ...CONFIRM_JSON_CONFIG,
122
+ userId: {
123
+ flag: "",
124
+ description: ""
125
+ },
126
+ role: {
127
+ flag: "--role <role>",
128
+ description: "Role: owner, admin, or builder"
129
+ }
130
+ };
131
+ const MembersRemoveOptionsSchema = ConfirmJsonSchema.extend({ userId: z.string().min(1) });
132
+ const REMOVE_OPTIONS_CONFIG = {
133
+ ...CONFIRM_JSON_CONFIG,
134
+ userId: {
135
+ flag: "",
136
+ description: ""
137
+ }
138
+ };
139
+ function createOrgMembersCommand() {
140
+ return createTypedCommand({
141
+ name: "members",
142
+ description: "Manage organization members",
143
+ schema: MembersListOptionsSchema,
144
+ optionsConfig: { ...JSON_OPTION_CONFIG },
145
+ loadHandler: async () => (await import("./members.list.handler-D6TE0yp8.mjs")).handleMembersList,
146
+ subcommands: [
147
+ createTypedCommand({
148
+ name: "list",
149
+ description: "List organization members",
150
+ schema: MembersListOptionsSchema,
151
+ optionsConfig: { ...JSON_OPTION_CONFIG },
152
+ loadHandler: async () => (await import("./members.list.handler-D6TE0yp8.mjs")).handleMembersList
153
+ }),
154
+ createTypedCommand({
155
+ name: "invite",
156
+ description: "Invite a user to the current organization",
157
+ schema: MembersInviteOptionsSchema,
158
+ optionsConfig: INVITE_OPTIONS_CONFIG,
159
+ loadHandler: async () => (await import("./members.invite.handler-v404bUsq.mjs")).handleMembersInvite
160
+ }),
161
+ createTypedCommand({
162
+ name: "add",
163
+ description: "Add an existing user to the current organization",
164
+ schema: MembersAddOptionsSchema,
165
+ optionsConfig: ADD_OPTIONS_CONFIG,
166
+ loadHandler: async () => (await import("./members.add.handler-Dq_giQ8g.mjs")).handleMembersAdd
167
+ }),
168
+ createTypedCommand({
169
+ name: "update",
170
+ description: "Update an organization member role",
171
+ schema: MembersUpdateOptionsSchema,
172
+ optionsConfig: UPDATE_OPTIONS_CONFIG,
173
+ argument: {
174
+ name: "user-id",
175
+ description: "User ID to update",
176
+ key: "userId"
177
+ },
178
+ loadHandler: async () => (await import("./members.update.handler-BVy2cv1K.mjs")).handleMembersUpdate
179
+ }),
180
+ createTypedCommand({
181
+ name: "remove",
182
+ description: "Remove an organization member",
183
+ schema: MembersRemoveOptionsSchema,
184
+ optionsConfig: REMOVE_OPTIONS_CONFIG,
185
+ argument: {
186
+ name: "user-id",
187
+ description: "User ID to remove",
188
+ key: "userId"
189
+ },
190
+ loadHandler: async () => (await import("./members.remove.handler-BhQ3cyeR.mjs")).handleMembersRemove
191
+ })
192
+ ]
193
+ });
194
+ }
195
+ //#endregion
196
+ //#region src/commands/org/org.command.ts
197
+ const OrgOptionsSchema = z.object({});
198
+ const ORG_OPTIONS_CONFIG = {};
199
+ function createOrgCommand() {
200
+ return createTypedCommand({
201
+ name: "org",
202
+ description: "Manage organization context",
203
+ schema: OrgOptionsSchema,
204
+ optionsConfig: ORG_OPTIONS_CONFIG,
205
+ loadHandler: async () => (await import("./list.handler-08GY-wnx.mjs")).handleOrgList,
206
+ subcommands: [
207
+ createTypedCommand({
208
+ name: "list",
209
+ description: "List your organizations",
210
+ schema: OrgOptionsSchema,
211
+ optionsConfig: ORG_OPTIONS_CONFIG,
212
+ loadHandler: async () => (await import("./list.handler-08GY-wnx.mjs")).handleOrgList
213
+ }),
214
+ createTypedCommand({
215
+ name: "current",
216
+ description: "Show the current organization",
217
+ schema: OrgOptionsSchema,
218
+ optionsConfig: ORG_OPTIONS_CONFIG,
219
+ loadHandler: async () => (await import("./current.handler-BqPUKCvn.mjs")).handleOrgCurrent
220
+ }),
221
+ createTypedCommand({
222
+ name: "switch",
223
+ description: "Switch to a different organization",
224
+ schema: OrgOptionsSchema,
225
+ optionsConfig: ORG_OPTIONS_CONFIG,
226
+ loadHandler: async () => (await import("./switch.handler-C4hgbhcH.mjs")).handleOrgSwitch
227
+ }),
228
+ createOrgMembersCommand(),
229
+ createOrgInvitesCommand()
230
+ ]
231
+ });
232
+ }
233
+ //#endregion
234
+ export { createOrgCommand };
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/admin/orgs.create.handler.ts
8
+ async function handleAdminOrgsCreate(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ try {
11
+ const result = await client.admin.orgs.create({
12
+ name: options.name,
13
+ restrictInvitations: false
14
+ });
15
+ if (isIamJsonMode(options, ctx)) {
16
+ writeJson(result);
17
+ return;
18
+ }
19
+ ui.success(`Created organization ${result.organization.name}`);
20
+ ui.text(`ID: ${result.organization.id}`);
21
+ } catch (error) {
22
+ await handleIamError(error, ctx, "Failed to create organization");
23
+ }
24
+ }
25
+ //#endregion
26
+ export { handleAdminOrgsCreate };
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ //#region src/commands/admin/orgs.get.handler.ts
8
+ async function handleAdminOrgsGet(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ try {
11
+ const result = await client.admin.orgs.get(options.orgId);
12
+ if (isIamJsonMode(options, ctx)) {
13
+ writeJson(result);
14
+ return;
15
+ }
16
+ const org = result.organization;
17
+ ui.text(`Organization: ${org.name}`);
18
+ ui.text(`ID: ${org.id}`);
19
+ ui.text(`Allowed domains: ${(org.allowedDomains ?? []).join(", ") || "(none)"}`);
20
+ ui.text(`Restrict invitations: ${org.restrictInvitations ? "yes" : "no"}`);
21
+ ui.text(`Created: ${org.createdAt}`);
22
+ ui.text(`Updated: ${org.updatedAt}`);
23
+ } catch (error) {
24
+ await handleIamError(error, ctx, "Failed to get admin org");
25
+ }
26
+ }
27
+ //#endregion
28
+ export { handleAdminOrgsGet };
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { t as ui } from "./keystroke.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
+ import Table from "cli-table3";
8
+ //#region src/commands/admin/orgs.list.handler.ts
9
+ async function handleAdminOrgsList(_options, ctx) {
10
+ const client = requireClient(ctx);
11
+ try {
12
+ const result = await client.admin.orgs.list();
13
+ if (isIamJsonMode(_options, ctx)) {
14
+ writeJson(result);
15
+ return;
16
+ }
17
+ if (result.organizations.length === 0) {
18
+ ui.hint("No organizations found.");
19
+ return;
20
+ }
21
+ const table = new Table({
22
+ head: [
23
+ "Name",
24
+ "ID",
25
+ "Created"
26
+ ],
27
+ style: { head: [] }
28
+ });
29
+ for (const org of result.organizations) table.push([
30
+ org.name,
31
+ org.id,
32
+ new Date(org.createdAt).toLocaleDateString()
33
+ ]);
34
+ ui.text(table.toString());
35
+ ui.hint(`${result.organizations.length} organization(s) shown`);
36
+ } catch (error) {
37
+ await handleIamError(error, ctx, "Failed to list admin orgs");
38
+ }
39
+ }
40
+ //#endregion
41
+ export { handleAdminOrgsList };
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, t as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
5
- import { i as requireClient } from "./context-T7HZuB97.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
6
  //#region src/commands/workflows/paused/paused.handler.ts
7
7
  async function handleWorkflowsPaused(options, ctx) {
8
8
  const client = requireClient(ctx);
@@ -4,7 +4,7 @@ import { access, mkdir, stat, writeFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { z } from "zod";
6
6
  import { pathToFileURL } from "node:url";
7
- //#region ../../packages/workflow-core/src/config.ts
7
+ //#region ../../packages/core/src/config.ts
8
8
  /**
9
9
  * Canonical schema for the `build` field of a `keystroke.config.ts` file.
10
10
  *
@@ -35,7 +35,7 @@ function serializeConfigObject(config) {
35
35
  }
36
36
  function createProjectConfigContent(config) {
37
37
  return [
38
- "import { defineConfig } from '@keystroke/workflow-core/config';",
38
+ "import { defineConfig } from '@keystrokehq/core/config';",
39
39
  "",
40
40
  `export default defineConfig(${serializeConfigObject(config)});`,
41
41
  ""
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-CH6r78ws.mjs";
4
- import { a as require_type, r as require_call_bind_apply_helpers, t as require_get_intrinsic } from "./get-intrinsic-zLxwtrLK.mjs";
4
+ import { a as require_type, r as require_call_bind_apply_helpers, t as require_get_intrinsic } from "./get-intrinsic-ZMBBjBEr.mjs";
5
5
  import { ZodError, z } from "zod";
6
6
  import ky from "ky";
7
7
  z.object({
@@ -1551,7 +1551,7 @@ const bundles = (api) => ({
1551
1551
  })),
1552
1552
  purpose
1553
1553
  } }).json();
1554
- const { batchUpload } = await import("./upload-CkU--iDC.mjs").then((n) => n.n);
1554
+ const { batchUpload } = await import("./upload-B8fiWveA.mjs").then((n) => n.n);
1555
1555
  return batchUpload(workflows.map((wf) => ({
1556
1556
  name: wf.workflowName,
1557
1557
  bundle: wf.bundle,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-DM4b7KgY.mjs";
4
- import { t as createTypedCommand } from "./commander-DfTVqQ-3.mjs";
3
+ import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
+ import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/projects/projects.command.ts
7
7
  function createProjectsCommand() {
@@ -10,19 +10,19 @@ function createProjectsCommand() {
10
10
  description: "List tracked Keystroke projects",
11
11
  schema: JsonOptionSchema,
12
12
  optionsConfig: { ...JSON_OPTION_CONFIG },
13
- loadHandler: async () => (await import("./list.handler-CZ6G2x_G.mjs")).handleProjectsList,
13
+ loadHandler: async () => (await import("./list.handler-DAiJtW20.mjs")).handleProjectsList,
14
14
  subcommands: [createTypedCommand({
15
15
  name: "list",
16
16
  description: "List all tracked Keystroke projects",
17
17
  schema: JsonOptionSchema,
18
18
  optionsConfig: { ...JSON_OPTION_CONFIG },
19
- loadHandler: async () => (await import("./list.handler-CZ6G2x_G.mjs")).handleProjectsList
19
+ loadHandler: async () => (await import("./list.handler-DAiJtW20.mjs")).handleProjectsList
20
20
  }), createTypedCommand({
21
21
  name: "clear-cache",
22
22
  description: "Clear the stored projects cache (projects.json)",
23
23
  schema: z.object({}),
24
24
  optionsConfig: {},
25
- loadHandler: async () => (await import("./clear-cache.handler-B9tqSoSM.mjs")).handleProjectsClearCache
25
+ loadHandler: async () => (await import("./clear-cache.handler-BEbPz5Ej.mjs")).handleProjectsClearCache
26
26
  })]
27
27
  });
28
28
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, l as AUTH_HINT, m as isNetworkError, t as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
5
  //#region src/commands/integrations/register.handler.ts
6
6
  function exitWithError(ctx, message, opts) {
7
7
  if (ctx.jsonMode) {
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
5
- import { a as readManifestsFromOutDir } from "./dist-BkJUoBiG.mjs";
6
- import { t as requireWorkflowsDir } from "./resolve-project-DDJ29sCF.mjs";
7
- import { n as getProcessEnv } from "./env-91KwMKov.mjs";
8
- import { t as readCredentialEnvMap } from "./credential-env-map-CI8yWHVy.mjs";
9
- import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-y-cwizLr.mjs";
10
- import { t as groupCredentialRequirements } from "./credentials-OfVHOtG3.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { n as getProcessEnv } from "./env-YTZGKGIu.mjs";
6
+ import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
7
+ import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
8
+ import { t as groupCredentialRequirements } from "./credentials-DHlK_O4L.mjs";
9
+ import { t as readCredentialEnvMap } from "./credential-env-map-C8P7uTD-.mjs";
10
+ import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-CTqx0Rk_.mjs";
11
11
  //#region src/commands/credentials/requirements/requirements-display.ts
12
12
  function dimLabel(label, width = 10) {
13
13
  return style(label.padEnd(width), ANSI.dim);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { T as ProjectNotFoundError, t as ui } from "./keystroke.mjs";
4
- import { s as readStoredProjects } from "./dist-CUK7yBM0.mjs";
5
- import { n as findProjectRoot } from "./project-config-D1qsQlO7.mjs";
4
+ import { s as readStoredProjects } from "./dist-BF6r1hfv.mjs";
5
+ import { n as findProjectRoot } from "./project-config-opj6DsPF.mjs";
6
6
  import path from "node:path";
7
7
  //#region src/lib/resolve-project.ts
8
8
  /**