@keystrokehq/cli 0.0.1 → 0.0.3

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-CY0Gg9sN.mjs} +7 -11
  10. package/dist/{auth.handler-CT1BQUvu.mjs → auth.handler-CbhiLOG1.mjs} +83 -8
  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,8 +1,8 @@
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";
5
- import { n as CredentialScopeSchema, r as CredentialScopeValues } from "./schema-17qMfNyI.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
+ import { n as CredentialScopeSchema, r as CredentialScopeValues } from "./schema-Di90TXoX.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/credentials/list/list.command.ts
8
8
  const ListOptionsSchema = JsonOptionSchema.extend({
@@ -46,7 +46,7 @@ function createCredentialsListCommand() {
46
46
  description: "List credential sets on the server",
47
47
  schema: ListOptionsSchema,
48
48
  optionsConfig: LIST_OPTIONS_CONFIG,
49
- loadHandler: async () => (await import("./list.handler-DqbFcBW7.mjs")).handleCredentialsList
49
+ loadHandler: async () => (await import("./list.handler-DSPr0OxS.mjs")).handleCredentialsList
50
50
  });
51
51
  }
52
52
  //#endregion
@@ -65,7 +65,7 @@ function createCredentialsRequirementsCommand() {
65
65
  description: "Show what credentials built workflows need (keys, KEYSTROKE_* env names, workflows) — from dist manifests, no API call",
66
66
  schema: RequirementsOptionsSchema,
67
67
  optionsConfig: REQUIREMENTS_OPTIONS_CONFIG,
68
- loadHandler: async () => (await import("./requirements.handler-DPXdSks3.mjs")).handleCredentialsRequirements
68
+ loadHandler: async () => (await import("./requirements.handler-coArDE8x.mjs")).handleCredentialsRequirements
69
69
  });
70
70
  }
71
71
  //#endregion
@@ -121,7 +121,7 @@ function createCredentialsUploadCommand() {
121
121
  description: "Upload credentials from env vars to the server. Default: reads requirements from built workflow manifests. Use --integration for an official integration or --credential-set + --keys for a custom explicit upload.",
122
122
  schema: UploadOptionsSchema,
123
123
  optionsConfig: UPLOAD_OPTIONS_CONFIG,
124
- loadHandler: async () => (await import("./upload.handler-DCtiznQp.mjs")).handleCredentialsUpload
124
+ loadHandler: async () => (await import("./upload.handler-CqProKVJ.mjs")).handleCredentialsUpload
125
125
  });
126
126
  }
127
127
  //#endregion
@@ -152,7 +152,7 @@ function createCredentialsCommand() {
152
152
  }
153
153
  },
154
154
  handler: async (opts, ctx) => {
155
- const { handleCredentialsList } = await import("./list.handler-DqbFcBW7.mjs");
155
+ const { handleCredentialsList } = await import("./list.handler-DSPr0OxS.mjs");
156
156
  await handleCredentialsList({
157
157
  ...opts,
158
158
  scope: void 0,
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { E as WorkflowResolutionError, d as getApiErrorCode, f as getHttpStatus, t as ui } from "./keystroke.mjs";
4
- import { t as assertWorkflowProjectRoot } from "./project-config-D1qsQlO7.mjs";
5
- import { a as readManifestsFromOutDir } from "./dist-BkJUoBiG.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 { t as assertWorkflowProjectRoot } from "./project-config-opj6DsPF.mjs";
5
+ import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.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/_shared/current-deployment-workflow.ts
10
10
  /**
11
11
  * Lightweight resolution: gets projectId from keystroke.config.ts and authoredWorkflowId
@@ -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/current.handler.ts
6
6
  async function handleOrgCurrent(_options, ctx) {
7
7
  if (!ctx.organizationId) {
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { d as schemaToJsonSchema } from "./schema-kbMHVnhm.mjs";
4
+ import "zod";
5
+ import { createHash } from "node:crypto";
6
+ //#region ../../packages/core/src/artifacts/schema-fingerprint.ts
7
+ /**
8
+ * schema-fingerprint.ts
9
+ *
10
+ * Computes a deterministic fingerprint (hash) of a credential set's schema.
11
+ * Used as a persistence-layer identity stamp: the workflow-builder stamps each
12
+ * credential requirement with its fingerprint at build time, the server stamps
13
+ * each vault row with the fingerprint at upload time, and the executor's
14
+ * credential resolver compares the two at read time so schema drift surfaces
15
+ * as a `CredentialSchemaMismatchError` rather than a silent decode into a
16
+ * stale shape.
17
+ *
18
+ * The fingerprint is deterministic: identical JSON schemas always produce the
19
+ * same hash regardless of property ordering, timestamps, or other
20
+ * non-structural differences.
21
+ *
22
+ * @remarks
23
+ * This is the *persistence* fingerprint. The construction-time registry in
24
+ * `credential-set/registry.ts` uses a different (Zod-structural) fingerprint
25
+ * purely for in-process identity collision detection; the two fingerprints
26
+ * serve different purposes and do not need to match.
27
+ */
28
+ /**
29
+ * Compute a deterministic fingerprint for a JSON schema object.
30
+ *
31
+ * The schema is the output of `schemaToJsonSchema(zodSchema)` — a plain JSON
32
+ * object describing the shape of the Zod schema.
33
+ *
34
+ * Properties are sorted recursively before hashing to ensure deterministic
35
+ * output regardless of insertion order.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const auth = schemaToJsonSchema(credentialSet.auth);
40
+ * const stored = credentialSet.stored ? schemaToJsonSchema(credentialSet.stored) : undefined;
41
+ * const fingerprint = computeSchemaFingerprint(auth, stored);
42
+ * ```
43
+ *
44
+ * @see CredentialSchemaMismatchError
45
+ */
46
+ function computeSchemaFingerprint(authSchema, storedSchema) {
47
+ const normalized = sortDeep({
48
+ auth: authSchema,
49
+ ...storedSchema ? { stored: storedSchema } : {}
50
+ });
51
+ const json = JSON.stringify(normalized);
52
+ return createHash("sha256").update(json).digest("hex").substring(0, 16);
53
+ }
54
+ function sortDeep(value) {
55
+ if (value === null || value === void 0) return value;
56
+ if (Array.isArray(value)) return value.map(sortDeep);
57
+ if (typeof value === "object") {
58
+ const sorted = {};
59
+ for (const key of Object.keys(value).sort()) sorted[key] = sortDeep(value[key]);
60
+ return sorted;
61
+ }
62
+ return value;
63
+ }
64
+ //#endregion
65
+ //#region ../../packages/core/src/shared/declared-credential-requirements.ts
66
+ function readSchemaKeys(schema, propertyKey) {
67
+ if (schema === null || typeof schema !== "object") return [];
68
+ const candidate = schema[propertyKey];
69
+ if (candidate === null || typeof candidate !== "object" || Array.isArray(candidate)) return [];
70
+ return Object.keys(candidate).sort();
71
+ }
72
+ /**
73
+ * Returns sorted keys that are NOT listed in the JSON Schema `required` array.
74
+ */
75
+ function readOptionalJsonSchemaKeys(schema) {
76
+ if (schema === null || typeof schema !== "object") return [];
77
+ const record = schema;
78
+ const properties = record.properties;
79
+ if (properties === null || typeof properties !== "object" || Array.isArray(properties)) return [];
80
+ const requiredSet = new Set(Array.isArray(record.required) ? record.required : []);
81
+ return Object.keys(properties).filter((key) => !requiredSet.has(key)).sort();
82
+ }
83
+ function toDeclaredCredentialRequirement(credentialSet) {
84
+ const optionalAuthKeys = credentialSet.optionalCredentialKeys;
85
+ const optionalStoredKeys = credentialSet.optionalStoredCredentialKeys;
86
+ const schemaFingerprint = computeSchemaFingerprint(schemaToJsonSchema(credentialSet.auth), credentialSet.stored ? schemaToJsonSchema(credentialSet.stored) : void 0);
87
+ const onCredentialRevoked = credentialSet.onCredentialRevoked;
88
+ return {
89
+ credentialSetId: credentialSet.id,
90
+ ...credentialSet.namespace ? { namespace: credentialSet.namespace } : {},
91
+ resolvedCredentialSetId: credentialSet.resolvedCredentialSetId,
92
+ credentialKeys: [...credentialSet.credentialKeys],
93
+ ...optionalAuthKeys.length > 0 ? { optionalCredentialKeys: [...optionalAuthKeys] } : {},
94
+ storedCredentialKeys: [...credentialSet.storedCredentialKeys],
95
+ ...optionalStoredKeys.length > 0 ? { optionalStoredCredentialKeys: [...optionalStoredKeys] } : {},
96
+ schemaFingerprint,
97
+ ...credentialSet.needsResolve ? { needsResolve: true } : {},
98
+ ...credentialSet.resolveCacheMs > 0 ? { resolveCacheMs: credentialSet.resolveCacheMs } : {},
99
+ ...onCredentialRevoked ? { onCredentialRevoked } : {},
100
+ ...credentialSet.proxy ? { proxy: credentialSet.proxy } : {},
101
+ ...credentialSet.needsRawSecret === true ? { needsRawSecret: true } : {}
102
+ };
103
+ }
104
+ function toDeclaredCredentialRequirements(credentialSets) {
105
+ return credentialSets.map(toDeclaredCredentialRequirement);
106
+ }
107
+ function manifestToDeclaredCredentialRequirement(credentialSet) {
108
+ const authKeys = readSchemaKeys(credentialSet.auth, "properties");
109
+ const optionalAuthKeys = readOptionalJsonSchemaKeys(credentialSet.auth);
110
+ const storedSchema = credentialSet.stored ?? credentialSet.auth;
111
+ const storedKeys = readSchemaKeys(storedSchema, "properties");
112
+ const optionalStoredKeys = readOptionalJsonSchemaKeys(storedSchema);
113
+ const schemaFingerprint = credentialSet.auth ? computeSchemaFingerprint(credentialSet.auth, credentialSet.stored) : void 0;
114
+ const onCredentialRevoked = credentialSet.onCredentialRevoked;
115
+ return {
116
+ credentialSetId: credentialSet.id,
117
+ ...credentialSet.namespace ? { namespace: credentialSet.namespace } : {},
118
+ resolvedCredentialSetId: credentialSet.resolvedCredentialSetId,
119
+ credentialKeys: authKeys,
120
+ ...optionalAuthKeys.length > 0 ? { optionalCredentialKeys: optionalAuthKeys } : {},
121
+ storedCredentialKeys: storedKeys,
122
+ ...optionalStoredKeys.length > 0 ? { optionalStoredCredentialKeys: optionalStoredKeys } : {},
123
+ ...schemaFingerprint ? { schemaFingerprint } : {},
124
+ ...credentialSet.needsResolve ? { needsResolve: true } : {},
125
+ ...typeof credentialSet.resolveCacheMs === "number" && credentialSet.resolveCacheMs > 0 ? { resolveCacheMs: credentialSet.resolveCacheMs } : {},
126
+ ...onCredentialRevoked ? { onCredentialRevoked } : {},
127
+ ...credentialSet.proxy ? { proxy: credentialSet.proxy } : {},
128
+ ...credentialSet.needsRawSecret === true ? { needsRawSecret: true } : {}
129
+ };
130
+ }
131
+ //#endregion
132
+ export { readOptionalJsonSchemaKeys as n, toDeclaredCredentialRequirements as r, manifestToDeclaredCredentialRequirement as t };
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ //#region src/lib/default-urls.ts
4
+ const DEFAULT_CLI_WEB_URL = "https://keystroke.ai";
5
+ const DEFAULT_CLI_SERVER_URL = "https://api.kestroke.ai";
6
+ //#endregion
7
+ export { DEFAULT_CLI_WEB_URL as n, DEFAULT_CLI_SERVER_URL as t };
@@ -1,7 +1,7 @@
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 requireClient } from "./context-T7HZuB97.mjs";
4
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
5
5
  //#region src/commands/api-keys/delete.handler.ts
6
6
  async function handleApiKeysDelete(options, ctx) {
7
7
  const client = requireClient(ctx);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { a as createKyInstance, n as auth, r as bundles, s as getClientEnv, t as projects } from "./projects-CHkRE9rS.mjs";
3
+ import { a as createKyInstance, n as auth, r as bundles, s as getClientEnv, t as projects } from "./projects-Bdl6-Z8l.mjs";
4
4
  //#region ../../packages/workflow-sdk/src/deploy.ts
5
5
  function createDeployClient(config = {}) {
6
6
  const env = getClientEnv();
@@ -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/deploy/deploy.command.ts
6
6
  /**
@@ -64,7 +64,7 @@ function createDeployCommand() {
64
64
  schema: DeployOptionsSchema,
65
65
  optionsConfig: DEPLOY_OPTIONS_CONFIG,
66
66
  contextMode: "auth",
67
- loadHandler: async () => (await import("./deploy.handler-BAzgiNhd.mjs")).handleDeploy
67
+ loadHandler: async () => (await import("./deploy.handler-zzFAt7pp.mjs")).handleDeploy
68
68
  });
69
69
  cmd.enablePositionalOptions();
70
70
  cmd.passThroughOptions();
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { t as ui } from "./keystroke.mjs";
4
- import { t as createSpinnerProgress } from "./spinner-progress-DMVwgqO9.mjs";
4
+ import { t as createSpinnerProgress } from "./spinner-progress-bvKd1jXc.mjs";
5
5
  //#region src/lib/deploy-progress.ts
6
6
  function renderItemFailure(event, kind, spinner) {
7
7
  if (event.result === "failure") spinner.fail(`${kind} failed (${event.name})`, void 0, event.error);
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, i as logger, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
- import { d as trackProject } from "./dist-CUK7yBM0.mjs";
5
- import { t as assertWorkflowProjectRoot } from "./project-config-D1qsQlO7.mjs";
6
- import { i as readAgentManifestsFromOutDir, o as readWorkflowsFromDisk } from "./dist-BkJUoBiG.mjs";
7
- import { t as requireWorkflowsDir } from "./resolve-project-DDJ29sCF.mjs";
8
- import { n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-DBQaBfnn.mjs";
9
- import { r as isLocalMode } from "./env-91KwMKov.mjs";
10
- import { r as requireAuthOptions, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-T7HZuB97.mjs";
11
- import { t as createBuildProgress } from "./build-progress-DgYKb4hB.mjs";
12
- import { t as createDeployProgress } from "./deploy-progress-BmGUNFKg.mjs";
13
- import { t as withErrorBoundary } from "./error-boundary-VL-JLfIa.mjs";
14
- import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-poHt27i3.mjs";
15
- import { t as computeWorkflowDiff } from "./diff-utils-NEfcjqxt.mjs";
4
+ import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
+ import { t as assertWorkflowProjectRoot } from "./project-config-opj6DsPF.mjs";
6
+ import { r as isLocalMode } from "./env-YTZGKGIu.mjs";
7
+ import { r as requireAuthOptions, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Y1f1hGYy.mjs";
8
+ import { i as readAgentManifestsFromOutDir, o as readWorkflowsFromDisk } from "./dist-C2Dq_nx3.mjs";
9
+ import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
10
+ import { n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-BcaIdRR6.mjs";
11
+ import { t as createBuildProgress } from "./build-progress-Cn2j1LqF.mjs";
12
+ import { t as createDeployProgress } from "./deploy-progress-CZ2rPlOj.mjs";
13
+ import { t as withErrorBoundary } from "./error-boundary-B9PgBkv8.mjs";
14
+ import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-M8GEIHxv.mjs";
15
+ import { t as computeWorkflowDiff } from "./diff-utils-DWNcRA8g.mjs";
16
16
  import { access } from "node:fs/promises";
17
17
  import path from "node:path";
18
18
  //#region src/commands/deploy/deploy-diff.ts
@@ -199,7 +199,7 @@ async function handleDeploy(options, ctx) {
199
199
  let outDir;
200
200
  let artifactFilter;
201
201
  try {
202
- const { runWorkflowBuild } = await import("./workflow-build-DBQaBfnn.mjs").then((n) => n.o);
202
+ const { runWorkflowBuild } = await import("./workflow-build-BcaIdRR6.mjs").then((n) => n.o);
203
203
  const buildOutcome = await runWorkflowBuild({
204
204
  workflowsDir,
205
205
  verbose: options.verbose,
@@ -234,7 +234,7 @@ async function handleDeploy(options, ctx) {
234
234
  const progress = createDeployProgress();
235
235
  let result;
236
236
  try {
237
- result = await (deployHandlerDependencies.deployFromDir ?? (await import("./dist-BkJUoBiG.mjs").then((n) => n.r)).deployFromDir)({
237
+ result = await (deployHandlerDependencies.deployFromDir ?? (await import("./dist-C2Dq_nx3.mjs").then((n) => n.r)).deployFromDir)({
238
238
  outDir,
239
239
  workflowsDir,
240
240
  client,
@@ -261,7 +261,7 @@ async function handleDeploy(options, ctx) {
261
261
  }
262
262
  async function handleTaskTargetDeploy(options) {
263
263
  renderBuildHeader(void 0);
264
- const buildResult = await (deployHandlerDependencies.buildTaskTargets ?? (await import("./task-target-build-CBeCKbu2.mjs")).buildTaskTargets)({
264
+ const buildResult = await (deployHandlerDependencies.buildTaskTargets ?? (await import("./task-target-build-DTzz4fpG.mjs")).buildTaskTargets)({
265
265
  projectRoot: options.workflowsDir,
266
266
  targetFiles: options.targetFiles,
267
267
  disableSourcemaps: options.options.disableSourcemaps
@@ -279,7 +279,7 @@ async function handleTaskTargetDeploy(options) {
279
279
  const progress = createDeployProgress();
280
280
  let result;
281
281
  try {
282
- result = await (deployHandlerDependencies.deployTaskTargets ?? (await import("./task-target-deploy-C5X-USeR.mjs")).deployTaskTargets)({
282
+ result = await (deployHandlerDependencies.deployTaskTargets ?? (await import("./task-target-deploy-BPLlP__P.mjs")).deployTaskTargets)({
283
283
  preparedTasks: buildResult.preparedTasks,
284
284
  client,
285
285
  organizationId: options.projectConfig.organizationId,
@@ -301,7 +301,7 @@ async function handleTaskTargetDeploy(options) {
301
301
  }
302
302
  async function createFullDeployClient(ctx) {
303
303
  const authOptions = requireAuthOptions(ctx);
304
- const { createClient } = await import("./src-eHwu-Gfw.mjs");
304
+ const { createClient } = await import("./src-J09NGJ6Z.mjs");
305
305
  return createClient({
306
306
  ...authOptions,
307
307
  onRequest: (info) => logger.debug(`-> ${info.method} ${info.url}`, {
@@ -316,7 +316,7 @@ async function createFullDeployClient(ctx) {
316
316
  }
317
317
  async function createTaskDeployClient(ctx) {
318
318
  const authOptions = requireAuthOptions(ctx);
319
- return (deployHandlerDependencies.createDeployClient ?? (await import("./deploy-7Jjls436.mjs")).createDeployClient)(authOptions);
319
+ return (deployHandlerDependencies.createDeployClient ?? (await import("./deploy-CdnaZY3s.mjs")).createDeployClient)(authOptions);
320
320
  }
321
321
  function renderSuccessSummary(result) {
322
322
  const tasks = result.tasks || [];
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as __exportAll } from "./chunk-CH6r78ws.mjs";
4
- import { t as __exportAll$1 } from "./rolldown-runtime-twds-ZHy-BWWzu8VG.mjs";
4
+ import { t as __exportAll$1 } from "./rolldown-runtime-twds-ZHy-8uqgIurC.mjs";
5
5
  import path from "node:path";
6
6
  //#region ../../packages/workflow-builder/dist/detect-env-access-CwkOYeYM.mjs
7
7
  var detect_env_access_CwkOYeYM_exports = /* @__PURE__ */ __exportAll({
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, D as throwReportedCliExit, h as toErrorMessage, 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 requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-T7HZuB97.mjs";
7
- import { n as resolveLocalWorkflowManifest, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-poHt27i3.mjs";
8
- import { n as renderDiff, t as computeWorkflowDiff } from "./diff-utils-NEfcjqxt.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 { n as resolveLocalWorkflowManifest, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-M8GEIHxv.mjs";
8
+ import { n as renderDiff, t as computeWorkflowDiff } from "./diff-utils-DWNcRA8g.mjs";
9
9
  //#region src/commands/workflows/diff/diff.handler.ts
10
10
  async function handleWorkflowsDiff(options, ctx) {
11
11
  const resolved = await resolveLocalWorkflowManifest(options.workflow, options.path, { jsonMode: ctx.jsonMode });
@@ -176,12 +176,12 @@ async function resolveAuthOptions(input) {
176
176
  }
177
177
  const activeOrg = storedCredentials ? findActiveOrg(storedCredentials) : void 0;
178
178
  const apiKey = input.apiKey ?? activeOrg?.apiKey;
179
- const baseUrl = input.baseUrl ?? storedCredentials?.serverUrl;
179
+ const serverUrl = input.serverUrl ?? storedCredentials?.serverUrl;
180
180
  if (!input.apiKey && activeOrg?.apiKey) input.logger?.info(`Using saved API key from ${credentialsPath}`);
181
- if (!input.baseUrl && storedCredentials?.serverUrl) input.logger?.info(`Using saved API URL from ${credentialsPath}`);
181
+ if (!input.serverUrl && storedCredentials?.serverUrl) input.logger?.info(`Using saved API URL from ${credentialsPath}`);
182
182
  return {
183
183
  apiKey,
184
- baseUrl,
184
+ serverUrl,
185
185
  credentialsPath,
186
186
  storedCredentials,
187
187
  activeOrg
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as __exportAll } from "./chunk-CH6r78ws.mjs";
4
- import { t as assertWorkflowProjectRoot } from "./project-config-D1qsQlO7.mjs";
5
- import { V as SHA256HashSchema, g as collectCredentialRequirementEntries, p as TriggerUploadDataSchema } from "./schedule-BXx3uXwr.mjs";
6
- import { c as FlowGraphSchema, s as WorkflowManifestSchema } from "./_manifest-JSRE3H8k.mjs";
7
- import { t as AgentVersionManifestSchema } from "./agent-manifest-CDnbkR2f.mjs";
8
- import { t as TaskBuildManifestSchema } from "./schemas-CDib1RhE.mjs";
9
- import "./task-B2sZMaZu.mjs";
10
- import { n as FileMetadataSchema } from "./file-metadata-D1vm-XY2.mjs";
11
- import { t as computeProjectSnapshotHash } from "./task-target-deploy-CA6elFpF-BEr4gkol.mjs";
12
- import { a as MANIFEST_FILE_NAME, d as getMetadataRoot, f as getTriggersDir, m as getWorkflowManifestPath, p as getWorkflowArtifactPaths, t as BUILD_DIR_NAME } from "./layout-CbMtQ2tm.mjs";
13
- import { n as resolveProjectBuildOutputDir } from "./utils-CywxCDM7.mjs";
14
- import { t as TriggerBuildManifestSchema } from "./trigger-manifest-CY7brZeg.mjs";
15
- import { t as batchUpload } from "./upload-CkU--iDC.mjs";
4
+ import { t as assertWorkflowProjectRoot } from "./project-config-opj6DsPF.mjs";
5
+ import { r as SHA256HashSchema } from "./common-BrVAdUyD.mjs";
6
+ import { f as collectCredentialRequirementEntries, l as TriggerUploadDataSchema } from "./credential-requirements-DjDFthio.mjs";
7
+ import { a as FlowGraphSchema, i as WorkflowManifestSchema } from "./workflow-manifest-CAW5FlX0.mjs";
8
+ import { t as AgentVersionManifestSchema } from "./agent-manifest-Bfa3DBgc.mjs";
9
+ import { n as TaskBuildManifestSchema } from "./task-DsrXI6XH.mjs";
10
+ import { n as FileMetadataSchema } from "./file-metadata-CdFXMMIw.mjs";
11
+ import { t as computeProjectSnapshotHash } from "./task-target-deploy-Bf5i3ox1-BU16VPsE.mjs";
12
+ import { a as MANIFEST_FILE_NAME, d as getMetadataRoot, f as getTriggersDir, m as getWorkflowManifestPath, p as getWorkflowArtifactPaths, t as BUILD_DIR_NAME } from "./layout-B95Tku8F.mjs";
13
+ import { n as resolveProjectBuildOutputDir } from "./utils-DlYHjGg9.mjs";
14
+ import { t as TriggerBuildManifestSchema } from "./trigger-manifest-CXD9I7Rb.mjs";
15
+ import { t as batchUpload } from "./upload-B8fiWveA.mjs";
16
16
  import { createReadStream } from "node:fs";
17
17
  import * as fs from "node:fs/promises";
18
18
  import { stat } from "node:fs/promises";
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { n as DEFAULT_CLI_WEB_URL, t as DEFAULT_CLI_SERVER_URL } from "./default-urls-BS4twrsS.mjs";
3
4
  import { existsSync, writeFileSync } from "node:fs";
4
5
  import path from "node:path";
5
6
  import { z } from "zod";
@@ -102,8 +103,8 @@ z.enum([
102
103
  //#region src/lib/env.ts
103
104
  loadRootEnv();
104
105
  const cliEnvSchema = z.object({
105
- WEB_URL: z.url().optional(),
106
- SERVER_URL: z.url().optional(),
106
+ WEB_URL: z.url().optional().default(DEFAULT_CLI_WEB_URL),
107
+ SERVER_URL: z.url().optional().default(DEFAULT_CLI_SERVER_URL),
107
108
  KEYSTROKE_API_KEY: z.string().min(1).optional(),
108
109
  KEYSTROKE_ORG_ID: z.string().min(1).optional(),
109
110
  ENVIRONMENT: EnvironmentSchema.optional().default("production")
@@ -121,20 +122,18 @@ function getEnv() {
121
122
  cachedEnv = cliEnvSchema.parse(process.env);
122
123
  return cachedEnv;
123
124
  }
124
- function resolveCliWebUrl(override) {
125
+ function resolveCliWebUrl(override, saved) {
125
126
  if (override) return override;
126
- const env = getEnv();
127
- if (!env.WEB_URL) throw new Error("WEB_URL is required (set WEB_URL env or pass --web-url)");
128
- return env.WEB_URL;
127
+ if (saved) return saved;
128
+ return getEnv().WEB_URL;
129
129
  }
130
130
  function isLocalMode() {
131
131
  return getEnv().ENVIRONMENT === "development";
132
132
  }
133
- function resolveCliServerUrl(override) {
133
+ function resolveCliServerUrl(override, saved) {
134
134
  if (override) return override;
135
- const env = getEnv();
136
- if (!env.SERVER_URL) throw new Error("SERVER_URL is required (set SERVER_URL env or pass --server-url)");
137
- return env.SERVER_URL;
135
+ if (saved) return saved;
136
+ return getEnv().SERVER_URL;
138
137
  }
139
138
  //#endregion
140
139
  export { resolveCliWebUrl as a, resolveCliServerUrl as i, getProcessEnv as n, isLocalMode as r, getEnv as t };
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, D as throwReportedCliExit, h as toErrorMessage, m as isNetworkError, o as ANSI, p as isAuthError, s as style, t as ui, u as REAUTH_HINT } from "./keystroke.mjs";
4
- import { d as trackProject } from "./dist-CUK7yBM0.mjs";
5
- import { i as writeJson } from "./output-DM4b7KgY.mjs";
6
- import { n as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-17qMfNyI.mjs";
7
- import { a as readManifestsFromOutDir } from "./dist-BkJUoBiG.mjs";
8
- import { t as requireWorkflowsDir } from "./resolve-project-DDJ29sCF.mjs";
9
- import { i as requireClient } from "./context-T7HZuB97.mjs";
10
- import { t as getIntegrationCatalog } from "./integration-catalog-Bt-L3GjF.mjs";
11
- import { t as groupCredentialRequirements } from "./credentials-OfVHOtG3.mjs";
4
+ import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
+ import { i as writeJson } from "./output-q4KljAhu.mjs";
6
+ import { i as requireClient } from "./context-Y1f1hGYy.mjs";
7
+ import { n as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-Di90TXoX.mjs";
8
+ import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
9
+ import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
10
+ import { t as groupCredentialRequirements } from "./credentials-DHlK_O4L.mjs";
11
+ import { t as getIntegrationCatalog } from "./integration-catalog-DFlytKJS.mjs";
12
12
  import { z } from "zod";
13
13
  import Table from "cli-table3";
14
14
  //#region ../../packages/shared-types/src/credentials/api/responses.ts
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { C as CliExitError, h as toErrorMessage, i as logger, m as isNetworkError, t as ui } from "./keystroke.mjs";
4
- import { r as isJsonMode } from "./output-DM4b7KgY.mjs";
5
- import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-BKo5PjcQ.mjs";
4
+ import { r as isJsonMode } from "./output-q4KljAhu.mjs";
5
+ import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-B-wwbCvw.mjs";
6
6
  //#region src/lib/error-boundary.ts
7
7
  async function withErrorBoundary(commandName, fn, options = {}) {
8
8
  const jsonMode = options.json ?? isJsonMode({});
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { S as SourceLocationSchema, b as CapturedVariableSchema } from "./schedule-BXx3uXwr.mjs";
3
+ import { a as SourceLocationSchema, r as CapturedVariableSchema } from "./source-analysis-BspLa3E5.mjs";
4
4
  import { z } from "zod";
5
5
  z.enum([
6
6
  "pending",