@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,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, t as ui } from "./keystroke.mjs";
4
- import { d as trackProject } from "./dist-CUK7yBM0.mjs";
5
- import { a as writeProjectConfig, i as readProjectConfig, r as getProjectConfigPath } from "./project-config-D1qsQlO7.mjs";
6
- import { i as requireClient } from "./context-T7HZuB97.mjs";
7
- import { t as syncKeystrokeAgentSkills } from "./sync-keystroke-agent-skills-Kx_H7UTd.mjs";
4
+ import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
+ import { a as writeProjectConfig, i as readProjectConfig, r as getProjectConfigPath } from "./project-config-opj6DsPF.mjs";
6
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
7
+ import { t as syncKeystrokeAgentSkills } from "./sync-keystroke-agent-skills-CY9h25_5.mjs";
8
8
  import { createRequire } from "node:module";
9
9
  import { accessSync, readFileSync } from "node:fs";
10
10
  import { access, mkdir, readFile, writeFile } from "node:fs/promises";
@@ -29,15 +29,15 @@ function getKeystrokeLocalNpmRegistryUrl() {
29
29
  function createKeystrokeLocalRegistryNpmrcContent() {
30
30
  return `@keystroke:registry=${getKeystrokeLocalNpmRegistryUrl()}\n`;
31
31
  }
32
- /** When the CLI cannot resolve `@keystroke/workflow-core` on disk (e.g. unusual installs). */
32
+ /** When the CLI cannot resolve `@keystrokehq/core` on disk (e.g. unusual installs). */
33
33
  const FALLBACK_WORKFLOW_CORE_VERSION_RANGE = "^0.0.1";
34
34
  /**
35
- * Semver range for scaffold `package.json` — uses the version of `@keystroke/workflow-core`
35
+ * Semver range for scaffold `package.json` — uses the version of `@keystrokehq/core`
36
36
  * installed next to this CLI (same as the Keystroke toolchain the author runs).
37
37
  */
38
38
  function workflowCoreScaffoldVersionRange() {
39
39
  try {
40
- const raw = readFileSync(createRequire(import.meta.url).resolve("@keystroke/workflow-core/package.json"), "utf-8");
40
+ const raw = readFileSync(createRequire(import.meta.url).resolve("@keystrokehq/core/package.json"), "utf-8");
41
41
  const version = JSON.parse(raw).version?.trim();
42
42
  if (version) return `^${version}`;
43
43
  } catch {}
@@ -108,7 +108,7 @@ async function ensureAgentsMarkdown(targetDir, blurb) {
108
108
  //#region src/commands/init/templates/biome-config.ts
109
109
  /**
110
110
  * Template for generating biome.json for a new Keystroke project.
111
- * Enables noProcessEnv and loads GritQL rules from @keystroke/workflow-core.
111
+ * Enables noProcessEnv and loads GritQL rules from @keystrokehq/core.
112
112
  */
113
113
  function createBiomeConfigContent() {
114
114
  return JSON.stringify({
@@ -117,7 +117,7 @@ function createBiomeConfigContent() {
117
117
  enabled: true,
118
118
  rules: { style: { noProcessEnv: "error" } }
119
119
  },
120
- plugins: ["./node_modules/@keystroke/workflow-core/biome/no-env-access.grit"]
120
+ plugins: ["./node_modules/@keystrokehq/core/biome/no-env-access.grit"]
121
121
  }, null, 2);
122
122
  }
123
123
  //#endregion
@@ -170,7 +170,7 @@ const HELLO_WORKFLOW_SCAFFOLD_FILES = {
170
170
  test: "workflows/hello/hello.test.ts"
171
171
  };
172
172
  function createGreetStepContent() {
173
- return `import { Step } from '@keystroke/workflow-core';
173
+ return `import { Step } from '@keystrokehq/core';
174
174
  import { z } from 'zod';
175
175
 
176
176
  export const greet = new Step({
@@ -186,7 +186,7 @@ export const greet = new Step({
186
186
  `;
187
187
  }
188
188
  function createShoutStepContent() {
189
- return `import { Step } from '@keystroke/workflow-core';
189
+ return `import { Step } from '@keystrokehq/core';
190
190
  import { z } from 'zod';
191
191
 
192
192
  export const shout = new Step({
@@ -202,7 +202,7 @@ export const shout = new Step({
202
202
  `;
203
203
  }
204
204
  function createHelloWorkflowContent() {
205
- return `import { Workflow } from '@keystroke/workflow-core';
205
+ return `import { Workflow } from '@keystrokehq/core';
206
206
  import { z } from 'zod';
207
207
  import { greet } from './greet.step';
208
208
  import { shout } from './shout.step';
@@ -238,7 +238,7 @@ describe('hello workflow', () => {
238
238
  /**
239
239
  * Template for generating a package.json for a new Keystroke project.
240
240
  *
241
- * `@keystroke/workflow-core` uses a semver range; installs resolve via `.npmrc` → local Verdaccio
241
+ * `@keystrokehq/core` uses a semver range; installs resolve via `.npmrc` → local Verdaccio
242
242
  * (see `pnpm publish:local` from the Keystroke monorepo).
243
243
  */
244
244
  function createPackageJsonContent(projectName, options) {
@@ -252,7 +252,7 @@ function createPackageJsonContent(projectName, options) {
252
252
  lint: "biome check ."
253
253
  },
254
254
  dependencies: {
255
- "@keystroke/workflow-core": options.workflowCoreVersionRange,
255
+ "@keystrokehq/core": options.workflowCoreVersionRange,
256
256
  zod: "^4.3.6"
257
257
  },
258
258
  devDependencies: {
@@ -295,7 +295,7 @@ function createTsconfigContent() {
295
295
  */
296
296
  function createVitestConfigContent() {
297
297
  return `import { defineConfig } from 'vitest/config';
298
- import { keystrokeTestPlugin } from '@keystroke/workflow-core/vitest';
298
+ import { keystrokeTestPlugin } from '@keystrokehq/core/vitest';
299
299
 
300
300
  export default defineConfig({
301
301
  plugins: [keystrokeTestPlugin()],
@@ -365,7 +365,7 @@ async function ensureScaffoldPackageJson(targetDir, projectName, ranges) {
365
365
  const raw = await readFile(pkgPath, "utf-8");
366
366
  const pkg = JSON.parse(raw);
367
367
  pkg.dependencies = pkg.dependencies ?? {};
368
- pkg.dependencies["@keystroke/workflow-core"] = ranges.workflowCore;
368
+ pkg.dependencies["@keystrokehq/core"] = ranges.workflowCore;
369
369
  pkg.dependencies.zod = pkg.dependencies.zod ?? "^4.3.6";
370
370
  pkg.devDependencies = pkg.devDependencies ?? {};
371
371
  pkg.devDependencies["@keystroke/skills"] = ranges.skills;
@@ -501,7 +501,7 @@ async function scaffoldProject(targetDir, projectName, workflowCoreVersionRange,
501
501
  workflowCore: workflowCoreVersionRange,
502
502
  skills: skillsVersionRange
503
503
  });
504
- ui.success(pkgAction === "created" ? `Created package.json (@keystroke/workflow-core ${workflowCoreVersionRange}, @keystroke/skills ${skillsVersionRange})` : `Updated package.json (Keystroke deps → workflow-core ${workflowCoreVersionRange}, skills ${skillsVersionRange})`);
504
+ ui.success(pkgAction === "created" ? `Created package.json (@keystrokehq/core ${workflowCoreVersionRange}, @keystroke/skills ${skillsVersionRange})` : `Updated package.json (Keystroke deps → core ${workflowCoreVersionRange}, skills ${skillsVersionRange})`);
505
505
  const registryUrl = getKeystrokeLocalNpmRegistryUrl();
506
506
  const npmrcAction = await ensureKeystrokeLocalRegistryNpmrc(targetDir);
507
507
  if (npmrcAction === "created") ui.success(`Created .npmrc (@keystroke → local registry ${registryUrl.trim()})`);
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { d as trackProject } from "./dist-CUK7yBM0.mjs";
5
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
6
- import { i as resolveTypeHint } from "./schema-display-CgmeKigW.mjs";
7
- import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-T7HZuB97.mjs";
8
- import { n as resolveLocalWorkflowManifest, r as resolveProjectContext, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-poHt27i3.mjs";
4
+ import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
6
+ import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Y1f1hGYy.mjs";
7
+ import { i as resolveTypeHint } from "./schema-display-D4A1gQEM.mjs";
8
+ import { n as resolveLocalWorkflowManifest, r as resolveProjectContext, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-M8GEIHxv.mjs";
9
9
  import dayjs from "dayjs";
10
10
  //#region src/commands/workflows/inspect/inspect-display.ts
11
11
  function formatBuildTimestamp(iso) {
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, D as throwReportedCliExit, h as toErrorMessage, m as isNetworkError, p as isAuthError, t as ui, u as REAUTH_HINT } from "./keystroke.mjs";
4
- import { a as writeJsonError } from "./output-DM4b7KgY.mjs";
5
- import { i as requireClient } from "./context-T7HZuB97.mjs";
4
+ import { a as writeJsonError } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
6
  //#region src/lib/integration-catalog.ts
7
7
  const catalogCache = /* @__PURE__ */ new WeakMap();
8
8
  function buildView(entries) {
@@ -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/integrations/integrations.command.ts
7
7
  const IntegrationsListOptionsSchema = JsonOptionSchema.extend({
@@ -46,20 +46,20 @@ function createIntegrationsCommand() {
46
46
  description: "List Keystroke integrations available to your organization",
47
47
  schema: IntegrationsListOptionsSchema,
48
48
  optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
49
- loadHandler: async () => (await import("./list.handler-lq3ZGAn4.mjs")).handleIntegrationsList,
49
+ loadHandler: async () => (await import("./list.handler-CWO6DExh.mjs")).handleIntegrationsList,
50
50
  subcommands: [createTypedCommand({
51
51
  name: "list",
52
52
  description: "List Keystroke integrations available to your organization",
53
53
  schema: IntegrationsListOptionsSchema,
54
54
  optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
55
- loadHandler: async () => (await import("./list.handler-lq3ZGAn4.mjs")).handleIntegrationsList
55
+ loadHandler: async () => (await import("./list.handler-CWO6DExh.mjs")).handleIntegrationsList
56
56
  }), createTypedCommand({
57
57
  name: "register",
58
58
  description: "Register a workspace provider app for future workspace-authored OAuth support",
59
59
  schema: IntegrationsRegisterOptionsSchema,
60
60
  optionsConfig: INTEGRATIONS_REGISTER_OPTIONS_CONFIG,
61
61
  handler: async (opts, ctx) => {
62
- const { handleIntegrationsRegister } = await import("./register.handler-BPCdor1_.mjs");
62
+ const { handleIntegrationsRegister } = await import("./register.handler-WzpvVXHx.mjs");
63
63
  await handleIntegrationsRegister({
64
64
  integrationId: opts.integrationId,
65
65
  clientAppCredentialSetId: opts.clientApp,
@@ -0,0 +1,44 @@
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 { z } from "zod";
6
+ //#region src/commands/invites/invites.command.ts
7
+ const InvitesListOptionsSchema = JsonOptionSchema;
8
+ const InvitesAcceptOptionsSchema = JsonOptionSchema.extend({ inviteId: z.string().min(1) });
9
+ const ACCEPT_OPTIONS_CONFIG = {
10
+ ...JSON_OPTION_CONFIG,
11
+ inviteId: {
12
+ flag: "",
13
+ description: ""
14
+ }
15
+ };
16
+ function createInvitesCommand() {
17
+ return createTypedCommand({
18
+ name: "invites",
19
+ description: "Manage invitations for the current user",
20
+ schema: InvitesListOptionsSchema,
21
+ optionsConfig: { ...JSON_OPTION_CONFIG },
22
+ loadHandler: async () => (await import("./list.handler-DLl8ca6F.mjs")).handleInvitesList,
23
+ subcommands: [createTypedCommand({
24
+ name: "list",
25
+ description: "List pending invites for the current user",
26
+ schema: InvitesListOptionsSchema,
27
+ optionsConfig: { ...JSON_OPTION_CONFIG },
28
+ loadHandler: async () => (await import("./list.handler-DLl8ca6F.mjs")).handleInvitesList
29
+ }), createTypedCommand({
30
+ name: "accept",
31
+ description: "Accept a pending invite",
32
+ schema: InvitesAcceptOptionsSchema,
33
+ optionsConfig: ACCEPT_OPTIONS_CONFIG,
34
+ argument: {
35
+ name: "invite-id",
36
+ description: "Invite ID to accept",
37
+ key: "inviteId"
38
+ },
39
+ loadHandler: async () => (await import("./accept.handler-DFtM0IuO.mjs")).handleInvitesAccept
40
+ })]
41
+ });
42
+ }
43
+ //#endregion
44
+ export { createInvitesCommand };
@@ -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/invites.list.handler.ts
9
+ async function handleOrgInvitesList(_options, ctx) {
10
+ const client = requireClient(ctx);
11
+ const organizationId = requireOrganizationId(ctx);
12
+ try {
13
+ const result = await client.organizations.invites.list(organizationId);
14
+ if (isIamJsonMode(_options, ctx)) {
15
+ writeJson(result);
16
+ return;
17
+ }
18
+ if (result.invites.length === 0) {
19
+ ui.hint("No invites found.");
20
+ return;
21
+ }
22
+ const table = new Table({
23
+ head: [
24
+ "Email",
25
+ "Role",
26
+ "Status",
27
+ "Invite ID"
28
+ ],
29
+ style: { head: [] }
30
+ });
31
+ for (const invite of result.invites) table.push([
32
+ invite.email,
33
+ invite.role,
34
+ invite.status,
35
+ invite.id
36
+ ]);
37
+ ui.text(table.toString());
38
+ } catch (error) {
39
+ await handleIamError(error, ctx, "Failed to list organization invites");
40
+ }
41
+ }
42
+ //#endregion
43
+ export { handleOrgInvitesList };
@@ -0,0 +1,23 @@
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
+ //#region src/commands/org/invites.resend.handler.ts
8
+ async function handleOrgInvitesResend(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ try {
12
+ const result = await client.organizations.invites.resend(organizationId, options.inviteId);
13
+ if (isIamJsonMode(options, ctx)) {
14
+ writeJson(result);
15
+ return;
16
+ }
17
+ ui.success(`Resent invite ${options.inviteId}`);
18
+ } catch (error) {
19
+ await handleIamError(error, ctx, "Failed to resend organization invite");
20
+ }
21
+ }
22
+ //#endregion
23
+ export { handleOrgInvitesResend };
@@ -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/invites.revoke.handler.ts
8
+ async function handleOrgInvitesRevoke(options, ctx) {
9
+ const client = requireClient(ctx);
10
+ const organizationId = requireOrganizationId(ctx);
11
+ requireConfirmation({
12
+ confirmed: options.confirm,
13
+ message: "Revoking an invite prevents it from being accepted.",
14
+ ctx
15
+ });
16
+ try {
17
+ const result = await client.organizations.invites.revoke(organizationId, options.inviteId);
18
+ if (isIamJsonMode(options, ctx)) {
19
+ writeJson(result);
20
+ return;
21
+ }
22
+ ui.success(`Revoked invite ${options.inviteId}`);
23
+ } catch (error) {
24
+ await handleIamError(error, ctx, "Failed to revoke organization invite");
25
+ }
26
+ }
27
+ //#endregion
28
+ export { handleOrgInvitesRevoke };
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { t as DEFAULT_CLI_SERVER_URL } from "./default-urls-BS4twrsS.mjs";
3
4
  import { Command, CommanderError, Option } from "commander";
4
5
  import * as fs from "node:fs";
5
6
  import * as fsPromises from "node:fs/promises";
@@ -8,80 +9,88 @@ import * as path$1 from "node:path";
8
9
  import { z } from "zod";
9
10
  import { log } from "@clack/prompts";
10
11
  //#region package.json
11
- var version = "0.0.1";
12
+ var version = "0.0.2";
12
13
  //#endregion
13
14
  //#region src/command-registry.ts
14
15
  const ROOT_OPTIONS_WITH_VALUES = new Set([
15
16
  "--api-key",
16
- "--base-url",
17
+ "--server-url",
17
18
  "--org"
18
19
  ]);
19
20
  const ROOT_VERSION_FLAGS = new Set(["-V", "--version"]);
20
21
  const lazyCommandDefinitions = [
21
22
  {
22
23
  name: "agents",
23
- loadCommand: async () => (await import("./agents-CZJGxVqV.mjs")).createAgentsCommand()
24
+ loadCommand: async () => (await import("./agents-DMEo-6QB.mjs")).createAgentsCommand()
25
+ },
26
+ {
27
+ name: "admin",
28
+ loadCommand: async () => (await import("./admin-D_7tenRC.mjs")).createAdminCommand()
24
29
  },
25
30
  {
26
31
  name: "api-keys",
27
- loadCommand: async () => (await import("./api-keys-D2lgguuY.mjs")).createApiKeysCommand()
32
+ loadCommand: async () => (await import("./api-keys-BThGvtdn.mjs")).createApiKeysCommand()
28
33
  },
29
34
  {
30
35
  name: "auth",
31
- loadCommand: async () => (await import("./auth-DN2VusyU.mjs")).createAuthCommand()
36
+ loadCommand: async () => (await import("./auth-Byry35LJ.mjs")).createAuthCommand()
32
37
  },
33
38
  {
34
39
  name: "connect",
35
- loadCommand: async () => (await import("./connect-BUXkeH0F.mjs")).createConnectCommand()
40
+ loadCommand: async () => (await import("./connect-DpQgYg8z.mjs")).createConnectCommand()
36
41
  },
37
42
  {
38
43
  name: "credentials",
39
- loadCommand: async () => (await import("./credentials-CvmjU0lK.mjs")).createCredentialsCommand(),
44
+ loadCommand: async () => (await import("./credentials-UpgEcaub.mjs")).createCredentialsCommand(),
40
45
  copyInheritedSettings: true
41
46
  },
42
47
  {
43
48
  name: "org",
44
- loadCommand: async () => (await import("./org-xLzBtt2_.mjs")).createOrgCommand()
49
+ loadCommand: async () => (await import("./org-CkRr-f3S.mjs")).createOrgCommand()
45
50
  },
46
51
  {
47
52
  name: "deploy",
48
- loadCommand: async () => (await import("./deploy-BOPIpRWm.mjs")).createDeployCommand()
53
+ loadCommand: async () => (await import("./deploy-Gw0KPrkf.mjs")).createDeployCommand()
49
54
  },
50
55
  {
51
56
  name: "init",
52
- loadCommand: async () => (await import("./init-DpMCotSK.mjs")).createInitCommand()
57
+ loadCommand: async () => (await import("./init-C0sps8R7.mjs")).createInitCommand()
53
58
  },
54
59
  {
55
60
  name: "integrations",
56
- loadCommand: async () => (await import("./integrations-DlatPK4W.mjs")).createIntegrationsCommand()
61
+ loadCommand: async () => (await import("./integrations-Dcadds2b.mjs")).createIntegrationsCommand()
62
+ },
63
+ {
64
+ name: "invites",
65
+ loadCommand: async () => (await import("./invites-DvsxTRAb.mjs")).createInvitesCommand()
57
66
  },
58
67
  {
59
68
  name: "logs",
60
- loadCommand: async () => (await import("./logs-BEg9L5l8.mjs")).createLogsCommand()
69
+ loadCommand: async () => (await import("./logs-D_48skmi.mjs")).createLogsCommand()
61
70
  },
62
71
  {
63
72
  name: "projects",
64
- loadCommand: async () => (await import("./projects-Cjb7sovS.mjs")).createProjectsCommand()
73
+ loadCommand: async () => (await import("./projects-yA9AAaDM.mjs")).createProjectsCommand()
65
74
  },
66
75
  {
67
76
  name: "runs",
68
- loadCommand: async () => (await import("./runs-D9hNLb9A.mjs")).createRunsCommand()
77
+ loadCommand: async () => (await import("./runs-B8mW4PqP.mjs")).createRunsCommand()
69
78
  },
70
79
  {
71
80
  name: "skills",
72
- loadCommand: async () => (await import("./skills.command-CrjI2dN9.mjs")).createSkillsCommand()
81
+ loadCommand: async () => (await import("./skills.command-DWxcc3Ui.mjs")).createSkillsCommand()
73
82
  },
74
83
  {
75
84
  name: "sync",
76
- loadCommand: async () => (await import("./sync-BL_Mo5st.mjs")).createSyncCommand()
85
+ loadCommand: async () => (await import("./sync-CL6zXiiA.mjs")).createSyncCommand()
77
86
  },
78
87
  {
79
88
  name: "test",
80
- loadCommand: async () => (await import("./test-BHTgR3UA.mjs")).createTestCommand()
89
+ loadCommand: async () => (await import("./test-BsTLXIPB.mjs")).createTestCommand()
81
90
  },
82
91
  {
83
92
  name: "workflows",
84
- loadCommand: async () => (await import("./workflows-g9z87AJJ.mjs")).createWorkflowsCommand()
93
+ loadCommand: async () => (await import("./workflows-S-gbfw8f.mjs")).createWorkflowsCommand()
85
94
  }
86
95
  ];
87
96
  function selectCommandRegistration(argv, commandNames = new Set(lazyCommandDefinitions.map((definition) => definition.name))) {
@@ -568,7 +577,7 @@ async function flushCliTelemetryForExit(exitCode) {
568
577
  }
569
578
  z.object({
570
579
  apiKey: z.string().optional(),
571
- baseUrl: z.string().optional(),
580
+ serverUrl: z.string().optional(),
572
581
  debug: z.boolean().optional(),
573
582
  org: z.string().optional()
574
583
  });
@@ -577,9 +586,9 @@ const GLOBAL_OPTIONS_CONFIG = {
577
586
  flag: "--api-key <key>",
578
587
  description: "Keystroke API Key (overrides KEYSTROKE_API_KEY env)"
579
588
  },
580
- baseUrl: {
581
- flag: "--base-url <url>",
582
- description: "Keystroke API URL (overrides SERVER_URL env)"
589
+ serverUrl: {
590
+ flag: "--server-url <url>",
591
+ description: `Keystroke API URL (default: SERVER_URL env or ${DEFAULT_CLI_SERVER_URL})`
583
592
  },
584
593
  debug: {
585
594
  flag: "--debug",
@@ -1,7 +1,7 @@
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 { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-OfVHOtG3.mjs";
4
+ import { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-DHlK_O4L.mjs";
5
5
  import { readFile } from "node:fs/promises";
6
6
  import path from "node:path";
7
7
  import { parse } from "dotenv";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { t as ui } from "./keystroke.mjs";
4
- import { i as requireClient } from "./context-T7HZuB97.mjs";
4
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
5
5
  //#region src/commands/org/list.handler.ts
6
6
  async function handleOrgList(_options, ctx) {
7
7
  const { user } = await requireClient(ctx).users.getMe();
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, o as ANSI, s as style, 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
  import Table from "cli-table3";
7
7
  //#region src/commands/api-keys/list.handler.ts
8
8
  async function handleApiKeysList(_options, ctx) {
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { d as trackProject } from "./dist-CUK7yBM0.mjs";
5
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
6
- import { t as requireWorkflowsDir } from "./resolve-project-DDJ29sCF.mjs";
7
- import { t as createSpinnerProgress } from "./spinner-progress-DMVwgqO9.mjs";
8
- import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-DBQaBfnn.mjs";
4
+ import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
6
+ import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
7
+ import { t as createSpinnerProgress } from "./spinner-progress-bvKd1jXc.mjs";
8
+ import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-BcaIdRR6.mjs";
9
9
  //#region src/commands/workflows/list.handler.ts
10
10
  function formatWorkflow(artifact) {
11
11
  const name = style(artifact.manifest.name, `${ANSI.bold}${ANSI.cyan}`);
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { h as toErrorMessage, m as isNetworkError, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
5
- import { i as requireClient } from "./context-T7HZuB97.mjs";
6
- import { t as getIntegrationCatalog } from "./integration-catalog-Bt-L3GjF.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { t as getIntegrationCatalog } from "./integration-catalog-DFlytKJS.mjs";
7
7
  import Table from "cli-table3";
8
8
  //#region src/commands/integrations/list.handler.ts
9
9
  function summarizeConnections(entry, connections) {
@@ -1,9 +1,9 @@
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 { s as readStoredProjects } from "./dist-CUK7yBM0.mjs";
5
- import { i as readProjectConfig } from "./project-config-D1qsQlO7.mjs";
6
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
4
+ import { s as readStoredProjects } from "./dist-BF6r1hfv.mjs";
5
+ import { i as readProjectConfig } from "./project-config-opj6DsPF.mjs";
6
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
7
7
  import { access } from "node:fs/promises";
8
8
  import Table from "cli-table3";
9
9
  //#region src/commands/projects/list.handler.ts
@@ -0,0 +1,42 @@
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/invites/list.handler.ts
9
+ async function handleInvitesList(_options, ctx) {
10
+ const client = requireClient(ctx);
11
+ try {
12
+ const result = await client.users.invites.listPending();
13
+ if (isIamJsonMode(_options, ctx)) {
14
+ writeJson(result);
15
+ return;
16
+ }
17
+ if (result.invites.length === 0) {
18
+ ui.hint("No pending invites found.");
19
+ return;
20
+ }
21
+ const table = new Table({
22
+ head: [
23
+ "Email",
24
+ "Role",
25
+ "Invite ID",
26
+ "Expires"
27
+ ],
28
+ style: { head: [] }
29
+ });
30
+ for (const invite of result.invites) table.push([
31
+ invite.email,
32
+ invite.role,
33
+ invite.id,
34
+ invite.expiresAt
35
+ ]);
36
+ ui.text(table.toString());
37
+ } catch (error) {
38
+ await handleIamError(error, ctx, "Failed to list invites");
39
+ }
40
+ }
41
+ //#endregion
42
+ export { handleInvitesList };
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, 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 { n as resolveWorkflowsDir } from "./resolve-project-DDJ29sCF.mjs";
7
- import { n as getProcessEnv } from "./env-91KwMKov.mjs";
8
- import { i as requireClient } from "./context-T7HZuB97.mjs";
9
- import { t as readCredentialEnvMap } from "./credential-env-map-CI8yWHVy.mjs";
10
- import { a as loadProjectDotenvFile, i as enrichServerCredentialRow, l as renderCredentialListBlocks, n as buildSyntheticNotOnServerRows, r as collectMergedManifestGroups, t as buildCredentialWorkflowConsumersByGroup } from "./list-enrichment-y-cwizLr.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { n as getProcessEnv } from "./env-YTZGKGIu.mjs";
6
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
7
+ import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
8
+ import { n as resolveWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
9
+ import { t as readCredentialEnvMap } from "./credential-env-map-C8P7uTD-.mjs";
10
+ import { a as loadProjectDotenvFile, i as enrichServerCredentialRow, l as renderCredentialListBlocks, n as buildSyntheticNotOnServerRows, r as collectMergedManifestGroups, t as buildCredentialWorkflowConsumersByGroup } from "./list-enrichment-CTqx0Rk_.mjs";
11
11
  import dayjs from "dayjs";
12
12
  //#region src/commands/credentials/list/fetch-all-credential-sets.ts
13
13
  /**
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as createTypedCommand } from "./commander-DfTVqQ-3.mjs";
3
+ import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/logs/logs.command.ts
6
6
  const LogsOptionsSchema = z.object({ count: z.coerce.number().int().min(1).max(1e3).default(100).describe("Number of log entries to display") });
@@ -14,13 +14,13 @@ function createLogsCommand() {
14
14
  description: "Display recent CLI log entries",
15
15
  schema: LogsOptionsSchema,
16
16
  optionsConfig: LOGS_OPTIONS_CONFIG,
17
- loadHandler: async () => (await import("./logs.handler-6hoMBzqw.mjs")).handleLogs,
17
+ loadHandler: async () => (await import("./logs.handler-C3QnSCaH.mjs")).handleLogs,
18
18
  subcommands: [createTypedCommand({
19
19
  name: "clear",
20
20
  description: "Delete the CLI log file",
21
21
  schema: z.object({}),
22
22
  optionsConfig: {},
23
- loadHandler: async () => (await import("./clear.handler-BydlX-zE.mjs")).handleLogsClear
23
+ loadHandler: async () => (await import("./clear.handler-CtOZ4aRn.mjs")).handleLogsClear
24
24
  })]
25
25
  });
26
26
  }
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
5
- import { i as requireClient } from "./context-T7HZuB97.mjs";
6
- import { n as sleep, t as TERMINAL_STATUSES } from "./run-polling-CAgFRdK3.mjs";
4
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
5
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { n as sleep, t as TERMINAL_STATUSES } from "./run-polling-CTzhTgyN.mjs";
7
7
  import Table from "cli-table3";
8
8
  //#region src/commands/workflows/_shared/run-query.ts
9
9
  async function listRunsByWorkflowRef(client, options) {