@keystrokehq/cli 0.0.19 → 0.0.21

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 (142) hide show
  1. package/dist/{accept.handler-BVmNNAgL.mjs → accept.handler-C6KBLKmW.mjs} +1 -1
  2. package/dist/{admin-DQlHFuXn.mjs → admin-D2CQoZAN.mjs} +9 -9
  3. package/dist/{agents-Dd7UeQCw.mjs → agents-Bn0g5o0o.mjs} +7 -7
  4. package/dist/{api-nR61stdq.mjs → api-J9UL8pqZ.mjs} +1 -1
  5. package/dist/{api-keys-BsMBFiD_.mjs → api-keys-BixCnZJW.mjs} +5 -5
  6. package/dist/{auth-ZTuuEoD6.mjs → auth-yCNMT8sJ.mjs} +14 -7
  7. package/dist/{auth.handler-C1dZBdaG.mjs → auth.handler-BedGpKh1.mjs} +7 -12
  8. package/dist/{build-agents-DseUtzd4-CthuIecx.mjs → build-agents-DseUtzd4-DFh2e5Cn.mjs} +5 -5
  9. package/dist/{build-metadata-C8Ra_Gi--L3l8w0rh.mjs → build-metadata-BB_L45ZS-BtGGjHIV.mjs} +9 -9
  10. package/dist/{build-progress-AR8xow4_.mjs → build-progress-nYa14iBP.mjs} +1 -1
  11. package/dist/{build-tasks-GVuMLS0h-BaPhhGXO.mjs → build-tasks-C09SdfjC-B0F7BZZG.mjs} +4 -4
  12. package/dist/{build-workflows-CV4tBo6S-szwrAGWT.mjs → build-workflows-BZ_m97Pr-DKANy85L.mjs} +9 -9
  13. package/dist/{build.handler-DJrEMCBw.mjs → build.handler-CyDc8jiZ.mjs} +5 -5
  14. package/dist/{clear-cache.handler-CTLQ1PIN.mjs → clear-cache.handler-FmJPHdWG.mjs} +1 -1
  15. package/dist/{clear.handler-BgeAg2de.mjs → clear.handler-Cvb9chs4.mjs} +27 -13
  16. package/dist/{commander-C5qcOo8m.mjs → commander-9Kro0Dl3.mjs} +4 -7
  17. package/dist/{connect-BtBKoXpi.mjs → connect-DzVxjeYr.mjs} +2 -2
  18. package/dist/{connect.handler-E8CmLRSF.mjs → connect.handler-DFQdxkWZ.mjs} +3 -3
  19. package/dist/{context-BydAGTiB.mjs → context-B2cQ-Nt3.mjs} +29 -3
  20. package/dist/{create.handler-CBxIPC3r.mjs → create.handler-v9B0Z9Yf.mjs} +1 -1
  21. package/dist/{credential-env-map-BA4LNI7x.mjs → credential-env-map-Dvp00a4M.mjs} +1 -1
  22. package/dist/credential-requirements-D0mavK8j-CFMf0Xwu.mjs +619 -0
  23. package/dist/{credentials-jRiXEr6P.mjs → credentials-DQW8xxof.mjs} +1 -1
  24. package/dist/{credentials-BGaRMclS.mjs → credentials-Dr5lD7Hm.mjs} +6 -6
  25. package/dist/{current-deployment-workflow-BVliROAz.mjs → current-deployment-workflow-qMfOrRIu.mjs} +4 -4
  26. package/dist/{current.handler-DBl9S67d.mjs → current.handler-Cm_-JLyZ.mjs} +1 -1
  27. package/dist/{delete.handler-Buu7Ip0D.mjs → delete.handler-DtP_zUaq.mjs} +1 -1
  28. package/dist/{deploy-BPDUTKZD.mjs → deploy-BURTx92e.mjs} +1 -1
  29. package/dist/{deploy-CzTlgAFj.mjs → deploy-CB6pfCuB.mjs} +2 -2
  30. package/dist/{deploy-progress-DK87VKJ-.mjs → deploy-progress-Dlp9aBDW.mjs} +1 -1
  31. package/dist/{deploy.handler-CCcJ7y3A.mjs → deploy.handler-Bg0dpSTj.mjs} +28 -16
  32. package/dist/{detect-env-access-CwkOYeYM-CNTyUzme.mjs → detect-env-access-CwkOYeYM-D4aTZv4R.mjs} +1 -1
  33. package/dist/{diff.handler-DUVFixeG.mjs → diff.handler-CJPrszL1.mjs} +4 -4
  34. package/dist/{dist-Cx0RV8s7.mjs → dist-Br4m3sFZ.mjs} +30 -33
  35. package/dist/{dist-CIInPRGh.mjs → dist-DuJjDZIf.mjs} +25 -2
  36. package/dist/{env.handler-C8kNFz2U.mjs → env.handler-6TrLd3fo.mjs} +7 -7
  37. package/dist/{error-boundary-B8cmSwJH.mjs → error-boundary-DVZipk-A.mjs} +1 -1
  38. package/dist/{file-metadata-lrX05iRt.mjs → file-metadata-DQVDjr7M.mjs} +2 -7
  39. package/dist/{import-module--8x5SLum-DjPUZr4i.mjs → import-module-y0glInUe-DxX0-BRO.mjs} +74 -620
  40. package/dist/{init-DeeOVc9m.mjs → init-DBMtY3eO.mjs} +3 -3
  41. package/dist/{init.handler-BMdhpusQ.mjs → init.handler-BoYbE-6H.mjs} +3 -3
  42. package/dist/{inspect.handler-QyTo8rWO.mjs → inspect.handler-Juu2vGbB.mjs} +4 -4
  43. package/dist/{integration-catalog-CmvYPvI6.mjs → integration-catalog-cYlTmOSb.mjs} +1 -1
  44. package/dist/{integrations-tXZM-84g.mjs → integrations-cwRfplNG.mjs} +5 -5
  45. package/dist/{invites-ClyAatBW.mjs → invites-DHyHZOY_.mjs} +4 -4
  46. package/dist/{invites.list.handler-CPkK_tPM.mjs → invites.list.handler-C-QpsG2J.mjs} +1 -1
  47. package/dist/{invites.resend.handler-DIRI7tS2.mjs → invites.resend.handler-KFKbSPzR.mjs} +1 -1
  48. package/dist/{invites.revoke.handler-CcXcDBlU.mjs → invites.revoke.handler-Cuz7jrGC.mjs} +1 -1
  49. package/dist/keystroke.mjs +21 -21
  50. package/dist/{list-enrichment-B9238wom.mjs → list-enrichment-CCRHYslm.mjs} +1 -1
  51. package/dist/{list.handler-Xl_F89kq.mjs → list.handler-6x3GVumu.mjs} +1 -1
  52. package/dist/{list.handler-tnsRn-Rj.mjs → list.handler-BWsl4iYw.mjs} +4 -4
  53. package/dist/{list.handler-DdFGHkqt.mjs → list.handler-CLGQDuo5.mjs} +5 -5
  54. package/dist/{list.handler-BLkQKiV1.mjs → list.handler-Cc-V1TNz.mjs} +1 -1
  55. package/dist/{list.handler-ClPAPSWm.mjs → list.handler-DRe38pAj.mjs} +2 -2
  56. package/dist/{list.handler-BB-Dcm5B.mjs → list.handler-Do2tVOnu.mjs} +1 -1
  57. package/dist/{list.handler-Cbc9rlBx.mjs → list.handler-RtHhrTZ3.mjs} +1 -1
  58. package/dist/{listen-ksMVpdNa.mjs → listen-DZdSevsB.mjs} +2 -2
  59. package/dist/{listen.handler-DEJSBg8y.mjs → listen.handler-BccHe1jh.mjs} +2 -2
  60. package/dist/{logs-C-JxXsgc.mjs → logs-Bh_PBnu6.mjs} +3 -3
  61. package/dist/{logs.handler-BIegqc2p.mjs → logs.handler-DItDS1zw.mjs} +2 -2
  62. package/dist/{members.add.handler-D4ggN2Xi.mjs → members.add.handler-D3nQ_Ln6.mjs} +1 -1
  63. package/dist/{members.invite.handler-BYIt6Oib.mjs → members.invite.handler-rKhg5n_C.mjs} +1 -1
  64. package/dist/{members.list.handler-CvpeYKC4.mjs → members.list.handler-C9Yh469k.mjs} +1 -1
  65. package/dist/{members.remove.handler-C4GBUVYE.mjs → members.remove.handler-Dnrck-E6.mjs} +1 -1
  66. package/dist/{members.update.handler-TpM1oi0L.mjs → members.update.handler-qo5r6arJ.mjs} +1 -1
  67. package/dist/{normalize-path-CojS-CgQ-D4wSBHgG.mjs → normalize-path-CojS-CgQ-aOM0agxS.mjs} +1 -1
  68. package/dist/{org-DIGyb7XZ.mjs → org-DnES84sS.mjs} +15 -15
  69. package/dist/{orgs.create.handler-RIYhse_Q.mjs → orgs.create.handler-DF4eEL-2.mjs} +1 -1
  70. package/dist/{orgs.get.handler-BfOpbSom.mjs → orgs.get.handler-BmJnseQa.mjs} +1 -1
  71. package/dist/{orgs.list.handler-BMgj9yTD.mjs → orgs.list.handler-DDVvSbsT.mjs} +1 -1
  72. package/dist/{paused.handler-DAZ1EaLN.mjs → paused.handler-BLUchSMD.mjs} +1 -1
  73. package/dist/{projects-Cy6CH3fI.mjs → projects-Cv14bBGy.mjs} +4 -4
  74. package/dist/{projects-BndElPAx.mjs → projects-ZNcKwds2.mjs} +1 -1
  75. package/dist/{requirements.handler-C5vobjdJ.mjs → requirements.handler-BKFocUof.mjs} +5 -5
  76. package/dist/{resolve-cli-credentials-DytxgMwn.mjs → resolve-cli-credentials-DaMDaamj.mjs} +1 -1
  77. package/dist/{resolve-project-CNQtOWE4.mjs → resolve-project-Cj3MFnU0.mjs} +1 -1
  78. package/dist/{run-polling-BhOdFyh3.mjs → run-polling-3XOGl4hh.mjs} +3 -3
  79. package/dist/{run.handler-BpLmwF_a.mjs → run.handler-DZuUx0fi.mjs} +5 -5
  80. package/dist/{runs-DaSd4eXn.mjs → runs-BOo3j297.mjs} +2 -2
  81. package/dist/{cron-parser-Dw_cWzFu.mjs → schemas-D2zfmyC-.mjs} +279 -1
  82. package/dist/{skills-sync.handler-DOxudKmV.mjs → skills-sync.handler-09mDbx5q.mjs} +1 -1
  83. package/dist/{skills.command-DQc_qGAF.mjs → skills.command-B-MhRN3J.mjs} +4 -4
  84. package/dist/{source-analysis-BBg2E_6G-Ut7kYHOz.mjs → source-analysis-BBg2E_6G-wPP9mjQx.mjs} +3 -3
  85. package/dist/{src-0XVwHXNp.mjs → src-DNhUmpSl.mjs} +1 -1
  86. package/dist/{switch.handler-CCjMrRZN.mjs → switch.handler-BFGvj5c6.mjs} +2 -2
  87. package/dist/{sync-BdTQDZjP.mjs → sync-CZ3iUPTA.mjs} +2 -2
  88. package/dist/{sync.handler-DjY8nqbB.mjs → sync.handler-B1L8I9lF.mjs} +7 -7
  89. package/dist/{task-BRmL2lmw.mjs → task-BWuIKWh4.mjs} +103 -34
  90. package/dist/{task-target-build-DCV0UDaz.mjs → task-target-build-CTgl4L42.mjs} +42 -56
  91. package/dist/task-target-deploy-DeUyfi9H.mjs +4 -0
  92. package/dist/{task-target-deploy-CZBGNC0H-I-tvkGCC.mjs → task-target-deploy-dQYnMO8n-d2vdeqXH.mjs} +14 -16
  93. package/dist/task-target-deploy-runner.mjs +6 -6
  94. package/dist/{test-TTQXrhHm.mjs → test-Byq4hG3C.mjs} +2 -2
  95. package/dist/{test.handler-B7Ahe9ta.mjs → test.handler-BsrMMj5O.mjs} +9 -9
  96. package/dist/{test.handler-CkkplyX6.mjs → test.handler-CAsVgOpT.mjs} +1 -1
  97. package/dist/{tool.handler-DMfFZCRg.mjs → tool.handler-BHS5Z4J_.mjs} +8 -8
  98. package/dist/{trigger-artifacts-RizI57RC-DjhOsdOm.mjs → trigger-artifacts-BcRScRSp-C-JBJ6y8.mjs} +53 -119
  99. package/dist/trigger-manifest-C07EM-b2.mjs +43 -0
  100. package/dist/{upgrade-Cx-bUWUc.mjs → upgrade-bZVjVXnu.mjs} +2 -2
  101. package/dist/{upload.handler-_d2WZwxd.mjs → upload.handler-DXVx2u3A.mjs} +7 -7
  102. package/dist/{users.get.handler-DIooG7Wy.mjs → users.get.handler-DqD2ELK2.mjs} +1 -1
  103. package/dist/{users.list.handler-DdGW-DSg.mjs → users.list.handler-DZSPvpGF.mjs} +1 -1
  104. package/dist/{users.set-role.handler-Ek-kntLp.mjs → users.set-role.handler-73smNUVF.mjs} +1 -1
  105. package/dist/{utils-BMUWnz1P.mjs → utils-BaxDlCsW.mjs} +1 -1
  106. package/dist/{validate.handler-Cq2uJjXY.mjs → validate.handler-CmfcMX0t.mjs} +5 -5
  107. package/dist/{workflow-build-C8AiYxqp.mjs → workflow-build-Bi1Aacc5.mjs} +22 -22
  108. package/dist/{workflow-build-manifest-BKKW9D05.mjs → workflow-build-manifest-1sC52TIG.mjs} +4 -4
  109. package/dist/{workflow-bundler-BzHk73PM-WI31RJjH.mjs → workflow-bundler-BzHk73PM-xQwAF08W.mjs} +2 -2
  110. package/dist/{workflows-K6zetcqI.mjs → workflows-C_C13Zr0.mjs} +19 -19
  111. package/dist/{writer-B-SpZ0G2-CLh7sXRd.mjs → writer-byNNUjRm-B-on1n6c.mjs} +23 -32
  112. package/package.json +12 -12
  113. package/dist/credential-requirements-Ob-7H-0F.mjs +0 -250
  114. package/dist/schemas-BxFPUGWT.mjs +0 -281
  115. package/dist/task-target-deploy-DmpCWE3u.mjs +0 -4
  116. package/dist/trigger-manifest-DxdCjGz_.mjs +0 -29
  117. /package/dist/{agent-bundle-package-DWV6B_5q-FPT0bJaA.mjs → agent-bundle-package-DWV6B_5q-B-qzc3zC.mjs} +0 -0
  118. /package/dist/{agent-manifest-tIsqF2OP.mjs → agent-manifest-Pg0aURo7.mjs} +0 -0
  119. /package/dist/{browser-BpJ8ut9z.mjs → browser-Dvv5OQrt.mjs} +0 -0
  120. /package/dist/{clear.handler-C_pXAeBG.mjs → clear.handler-BdR56Cok.mjs} +0 -0
  121. /package/dist/{concurrency-gXn9Rw8x-BTlfau8D.mjs → concurrency-gXn9Rw8x-CnBnF2cg.mjs} +0 -0
  122. /package/dist/{credential-schema-mismatch-z74ud-YZ.mjs → credential-schema-mismatch-kfGeiSB1.mjs} +0 -0
  123. /package/dist/{declared-credential-requirements-D6KT-r-e.mjs → declared-credential-requirements-B6h4WRv4.mjs} +0 -0
  124. /package/dist/{diff-utils-B0ED-Igv.mjs → diff-utils-CXKNQUXO.mjs} +0 -0
  125. /package/dist/{layout-P1v-Gssz.mjs → layout-B95Tku8F.mjs} +0 -0
  126. /package/dist/{logs.handler-DyRoevtO.mjs → logs.handler-Bs1DVMaO.mjs} +0 -0
  127. /package/dist/{metadata-layout-Bv-B0nHj-B1c5giJ7.mjs → metadata-layout-Bv-B0nHj-CO8mjjSl.mjs} +0 -0
  128. /package/dist/{oxc-B3KI3rf_-Cvx4Z-4H.mjs → oxc-B3KI3rf_-B9omBIuN.mjs} +0 -0
  129. /package/dist/{read-credential-keys-77a91T8M-B0eiobOd.mjs → read-credential-keys-77a91T8M-aLuQvlIq.mjs} +0 -0
  130. /package/dist/{register.handler-BXeh5mdb.mjs → register.handler-C_NqMLir.mjs} +0 -0
  131. /package/dist/{rolldown-runtime-twds-ZHy-8uqgIurC.mjs → rolldown-runtime-twds-ZHy-RuJszab7.mjs} +0 -0
  132. /package/dist/{run-polling-DARidqo-.mjs → run-polling-DKWPGLyF.mjs} +0 -0
  133. /package/dist/{schema-BjH_e4Fo.mjs → schema-DFJiNWyd.mjs} +0 -0
  134. /package/dist/{schema-display-NVEl_DFY.mjs → schema-display-XrRCdFL0.mjs} +0 -0
  135. /package/dist/{skill-installer-BBgN2tzW.mjs → skill-installer-Cm9hF6OB.mjs} +0 -0
  136. /package/dist/{skills.handler-Do9I3dQS.mjs → skills.handler-KEUkV5NH.mjs} +0 -0
  137. /package/dist/{source-analysis-Cs0CTBQk.mjs → source-analysis-z2RSZw6X.mjs} +0 -0
  138. /package/dist/{spinner-progress-Bx-fYItP.mjs → spinner-progress-BtEIJRX4.mjs} +0 -0
  139. /package/dist/{status.handler-BsVtDW_V.mjs → status.handler-CW-EFhy3.mjs} +0 -0
  140. /package/dist/{types-BMBuhHhW.mjs → types-D1cVpE7_.mjs} +0 -0
  141. /package/dist/{upgrade.handler-5qSzPC7D.mjs → upgrade.handler-C7KvNL0x.mjs} +0 -0
  142. /package/dist/{upload-BbcMkyVl.mjs → upload-CE4H5R1h.mjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
4
- import { t as createTypedCommand } from "./commander-C5qcOo8m.mjs";
4
+ import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
5
5
  import { t as OrgRoleSchema } from "./schema-Lbp5lGJu.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/org/invites.command.ts
@@ -36,14 +36,14 @@ function createOrgInvitesCommand() {
36
36
  description: "Manage organization invitations",
37
37
  schema: OrgInvitesListOptionsSchema,
38
38
  optionsConfig: { ...JSON_OPTION_CONFIG },
39
- loadHandler: async () => (await import("./invites.list.handler-CPkK_tPM.mjs")).handleOrgInvitesList,
39
+ loadHandler: async () => (await import("./invites.list.handler-C-QpsG2J.mjs")).handleOrgInvitesList,
40
40
  subcommands: [
41
41
  createTypedCommand({
42
42
  name: "list",
43
43
  description: "List organization invites",
44
44
  schema: OrgInvitesListOptionsSchema,
45
45
  optionsConfig: { ...JSON_OPTION_CONFIG },
46
- loadHandler: async () => (await import("./invites.list.handler-CPkK_tPM.mjs")).handleOrgInvitesList
46
+ loadHandler: async () => (await import("./invites.list.handler-C-QpsG2J.mjs")).handleOrgInvitesList
47
47
  }),
48
48
  createTypedCommand({
49
49
  name: "resend",
@@ -55,7 +55,7 @@ function createOrgInvitesCommand() {
55
55
  description: "Invite ID to resend",
56
56
  key: "inviteId"
57
57
  },
58
- loadHandler: async () => (await import("./invites.resend.handler-DIRI7tS2.mjs")).handleOrgInvitesResend
58
+ loadHandler: async () => (await import("./invites.resend.handler-KFKbSPzR.mjs")).handleOrgInvitesResend
59
59
  }),
60
60
  createTypedCommand({
61
61
  name: "revoke",
@@ -67,7 +67,7 @@ function createOrgInvitesCommand() {
67
67
  description: "Invite ID to revoke",
68
68
  key: "inviteId"
69
69
  },
70
- loadHandler: async () => (await import("./invites.revoke.handler-CcXcDBlU.mjs")).handleOrgInvitesRevoke
70
+ loadHandler: async () => (await import("./invites.revoke.handler-Cuz7jrGC.mjs")).handleOrgInvitesRevoke
71
71
  })
72
72
  ]
73
73
  });
@@ -142,28 +142,28 @@ function createOrgMembersCommand() {
142
142
  description: "Manage organization members",
143
143
  schema: MembersListOptionsSchema,
144
144
  optionsConfig: { ...JSON_OPTION_CONFIG },
145
- loadHandler: async () => (await import("./members.list.handler-CvpeYKC4.mjs")).handleMembersList,
145
+ loadHandler: async () => (await import("./members.list.handler-C9Yh469k.mjs")).handleMembersList,
146
146
  subcommands: [
147
147
  createTypedCommand({
148
148
  name: "list",
149
149
  description: "List organization members",
150
150
  schema: MembersListOptionsSchema,
151
151
  optionsConfig: { ...JSON_OPTION_CONFIG },
152
- loadHandler: async () => (await import("./members.list.handler-CvpeYKC4.mjs")).handleMembersList
152
+ loadHandler: async () => (await import("./members.list.handler-C9Yh469k.mjs")).handleMembersList
153
153
  }),
154
154
  createTypedCommand({
155
155
  name: "invite",
156
156
  description: "Invite a user to the current organization",
157
157
  schema: MembersInviteOptionsSchema,
158
158
  optionsConfig: INVITE_OPTIONS_CONFIG,
159
- loadHandler: async () => (await import("./members.invite.handler-BYIt6Oib.mjs")).handleMembersInvite
159
+ loadHandler: async () => (await import("./members.invite.handler-rKhg5n_C.mjs")).handleMembersInvite
160
160
  }),
161
161
  createTypedCommand({
162
162
  name: "add",
163
163
  description: "Add an existing user to the current organization",
164
164
  schema: MembersAddOptionsSchema,
165
165
  optionsConfig: ADD_OPTIONS_CONFIG,
166
- loadHandler: async () => (await import("./members.add.handler-D4ggN2Xi.mjs")).handleMembersAdd
166
+ loadHandler: async () => (await import("./members.add.handler-D3nQ_Ln6.mjs")).handleMembersAdd
167
167
  }),
168
168
  createTypedCommand({
169
169
  name: "update",
@@ -175,7 +175,7 @@ function createOrgMembersCommand() {
175
175
  description: "User ID to update",
176
176
  key: "userId"
177
177
  },
178
- loadHandler: async () => (await import("./members.update.handler-TpM1oi0L.mjs")).handleMembersUpdate
178
+ loadHandler: async () => (await import("./members.update.handler-qo5r6arJ.mjs")).handleMembersUpdate
179
179
  }),
180
180
  createTypedCommand({
181
181
  name: "remove",
@@ -187,7 +187,7 @@ function createOrgMembersCommand() {
187
187
  description: "User ID to remove",
188
188
  key: "userId"
189
189
  },
190
- loadHandler: async () => (await import("./members.remove.handler-C4GBUVYE.mjs")).handleMembersRemove
190
+ loadHandler: async () => (await import("./members.remove.handler-Dnrck-E6.mjs")).handleMembersRemove
191
191
  })
192
192
  ]
193
193
  });
@@ -202,28 +202,28 @@ function createOrgCommand() {
202
202
  description: "Manage organization context",
203
203
  schema: OrgOptionsSchema,
204
204
  optionsConfig: ORG_OPTIONS_CONFIG,
205
- loadHandler: async () => (await import("./list.handler-Cbc9rlBx.mjs")).handleOrgList,
205
+ loadHandler: async () => (await import("./list.handler-RtHhrTZ3.mjs")).handleOrgList,
206
206
  subcommands: [
207
207
  createTypedCommand({
208
208
  name: "list",
209
209
  description: "List your organizations",
210
210
  schema: OrgOptionsSchema,
211
211
  optionsConfig: ORG_OPTIONS_CONFIG,
212
- loadHandler: async () => (await import("./list.handler-Cbc9rlBx.mjs")).handleOrgList
212
+ loadHandler: async () => (await import("./list.handler-RtHhrTZ3.mjs")).handleOrgList
213
213
  }),
214
214
  createTypedCommand({
215
215
  name: "current",
216
216
  description: "Show the current organization",
217
217
  schema: OrgOptionsSchema,
218
218
  optionsConfig: ORG_OPTIONS_CONFIG,
219
- loadHandler: async () => (await import("./current.handler-DBl9S67d.mjs")).handleOrgCurrent
219
+ loadHandler: async () => (await import("./current.handler-Cm_-JLyZ.mjs")).handleOrgCurrent
220
220
  }),
221
221
  createTypedCommand({
222
222
  name: "switch",
223
223
  description: "Switch to a different organization",
224
224
  schema: OrgOptionsSchema,
225
225
  optionsConfig: ORG_OPTIONS_CONFIG,
226
- loadHandler: async () => (await import("./switch.handler-CCjMrRZN.mjs")).handleOrgSwitch
226
+ loadHandler: async () => (await import("./switch.handler-BFGvj5c6.mjs")).handleOrgSwitch
227
227
  }),
228
228
  createOrgMembersCommand(),
229
229
  createOrgInvitesCommand()
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { a as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
5
- import { i as requireClient } from "./context-BydAGTiB.mjs";
5
+ import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
6
6
  import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
7
7
  //#region src/commands/admin/orgs.create.handler.ts
8
8
  async function handleAdminOrgsCreate(options, ctx) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { a as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
5
- import { i as requireClient } from "./context-BydAGTiB.mjs";
5
+ import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
6
6
  import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
7
7
  //#region src/commands/admin/orgs.get.handler.ts
8
8
  async function handleAdminOrgsGet(options, ctx) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { a as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
5
- import { i as requireClient } from "./context-BydAGTiB.mjs";
5
+ import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
6
6
  import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
7
7
  import Table from "cli-table3";
8
8
  //#region src/commands/admin/orgs.list.handler.ts
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { a as ui, j as throwReportedCliExit, y as toErrorMessage } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
5
- import { i as requireClient } from "./context-BydAGTiB.mjs";
5
+ import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
6
6
  //#region src/commands/workflows/paused/paused.handler.ts
7
7
  async function handleWorkflowsPaused(options, ctx) {
8
8
  const client = requireClient(ctx);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
4
- import { t as createTypedCommand } from "./commander-C5qcOo8m.mjs";
4
+ import { t as createTypedCommand } from "./commander-9Kro0Dl3.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-BLkQKiV1.mjs")).handleProjectsList,
13
+ loadHandler: async () => (await import("./list.handler-Cc-V1TNz.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-BLkQKiV1.mjs")).handleProjectsList
19
+ loadHandler: async () => (await import("./list.handler-Cc-V1TNz.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-CTLQ1PIN.mjs")).handleProjectsClearCache
25
+ loadHandler: async () => (await import("./clear-cache.handler-FmJPHdWG.mjs")).handleProjectsClearCache
26
26
  })]
27
27
  });
28
28
  }
@@ -2206,7 +2206,7 @@ const bundles = (api) => ({
2206
2206
  })),
2207
2207
  purpose
2208
2208
  } }).json();
2209
- const { batchUpload } = await import("./upload-BbcMkyVl.mjs").then((n) => n.n);
2209
+ const { batchUpload } = await import("./upload-CE4H5R1h.mjs").then((n) => n.n);
2210
2210
  return batchUpload(workflows.map((wf) => ({
2211
2211
  name: wf.workflowName,
2212
2212
  bundle: wf.bundle,
@@ -2,11 +2,11 @@
2
2
 
3
3
  import { a as ui, c as getProcessEnv, n as style, t as ANSI } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
5
- import { a as readManifestsFromOutDir } from "./dist-Cx0RV8s7.mjs";
6
- import { t as requireWorkflowsDir } from "./resolve-project-CNQtOWE4.mjs";
7
- import { t as readCredentialEnvMap } from "./credential-env-map-BA4LNI7x.mjs";
8
- import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-B9238wom.mjs";
9
- import { t as groupCredentialRequirements } from "./credentials-jRiXEr6P.mjs";
5
+ import { a as readManifestsFromOutDir } from "./dist-Br4m3sFZ.mjs";
6
+ import { t as requireWorkflowsDir } from "./resolve-project-Cj3MFnU0.mjs";
7
+ import { t as readCredentialEnvMap } from "./credential-env-map-Dvp00a4M.mjs";
8
+ import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-CCRHYslm.mjs";
9
+ import { t as groupCredentialRequirements } from "./credentials-DQW8xxof.mjs";
10
10
  //#region src/commands/credentials/requirements/requirements-display.ts
11
11
  function dimLabel(label, width = 10) {
12
12
  return style(label.padEnd(width), ANSI.dim);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { n as credentials } from "./dist-CIInPRGh.mjs";
3
+ import { n as credentials } from "./dist-DuJjDZIf.mjs";
4
4
  //#region src/lib/resolve-cli-credentials.ts
5
5
  /**
6
6
  * Resolves CLI credential inputs using explicit overrides first, then stored
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { a as ui, k as ProjectNotFoundError } from "./keystroke.mjs";
4
- import { i as projects } from "./dist-CIInPRGh.mjs";
4
+ import { i as projects } from "./dist-DuJjDZIf.mjs";
5
5
  import { n as findProjectRoot } from "./project-config-DudGRFPO.mjs";
6
6
  import path from "node:path";
7
7
  //#region src/lib/resolve-project.ts
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { O as InputValidationError, a as ui, y as toErrorMessage } from "./keystroke.mjs";
4
- import { a as readManifestsFromOutDir } from "./dist-Cx0RV8s7.mjs";
5
- import { a as validateRequiredFields, n as formatValidationError, t as formatMissingInputError } from "./schema-display-NVEl_DFY.mjs";
6
- import { n as sleep, t as TERMINAL_STATUSES } from "./run-polling-DARidqo-.mjs";
4
+ import { a as readManifestsFromOutDir } from "./dist-Br4m3sFZ.mjs";
5
+ import { a as validateRequiredFields, n as formatValidationError, t as formatMissingInputError } from "./schema-display-XrRCdFL0.mjs";
6
+ import { n as sleep, t as TERMINAL_STATUSES } from "./run-polling-DKWPGLyF.mjs";
7
7
  import * as path$1 from "node:path";
8
8
  import * as fs from "node:fs/promises";
9
9
  import { z } from "zod";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as CliExitError, a as ui, j as throwReportedCliExit, y as toErrorMessage } from "./keystroke.mjs";
4
- import { i as projects } from "./dist-CIInPRGh.mjs";
4
+ import { i as projects } from "./dist-DuJjDZIf.mjs";
5
5
  import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
6
6
  import { i as writeJson } from "./output-BWcVRt-T.mjs";
7
- import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-BydAGTiB.mjs";
8
- import { n as resolveWorkflowsDir } from "./resolve-project-CNQtOWE4.mjs";
9
- import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-BVliROAz.mjs";
10
- import { i as resolveWorkflowGlobals, o as validateInputOrExit, r as resolveRunInput, s as validateWorkflowGlobalsOrExit, t as pollForCompletion } from "./run-polling-BhOdFyh3.mjs";
7
+ import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-B2cQ-Nt3.mjs";
8
+ import { n as resolveWorkflowsDir } from "./resolve-project-Cj3MFnU0.mjs";
9
+ import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-qMfOrRIu.mjs";
10
+ import { i as resolveWorkflowGlobals, o as validateInputOrExit, r as resolveRunInput, s as validateWorkflowGlobalsOrExit, t as pollForCompletion } from "./run-polling-3XOGl4hh.mjs";
11
11
  //#region src/commands/workflows/run.handler.ts
12
12
  async function handleWorkflowsRun(options, ctx) {
13
13
  const client = requireClient(ctx);
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { a as ui, j as throwReportedCliExit, n as style, t as ANSI, y as toErrorMessage } from "./keystroke.mjs";
4
4
  import { i as writeJson, n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
5
- import { t as createTypedCommand } from "./commander-C5qcOo8m.mjs";
6
- import { i as requireClient } from "./context-BydAGTiB.mjs";
5
+ import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
6
+ import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
7
7
  import { z } from "zod";
8
8
  //#region src/commands/runs/inspect-display.ts
9
9
  function renderRunInspect(input) {
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { z } from "zod";
3
4
  //#region ../../node_modules/.pnpm/cron-schedule@6.0.0/node_modules/cron-schedule/dist/utils.js
4
5
  function extractDateElements(date) {
5
6
  return {
@@ -390,4 +391,281 @@ function parseCronExpression(cronExpression) {
390
391
  });
391
392
  }
392
393
  //#endregion
393
- export { parseCronExpression as t };
394
+ //#region ../../packages/core/src/shared/schema.ts
395
+ const MAX_JSON_DEPTH = 20;
396
+ function buildJsonValueSchema(depth) {
397
+ const primitives = z.union([
398
+ z.string(),
399
+ z.number(),
400
+ z.boolean(),
401
+ z.null()
402
+ ]);
403
+ if (depth <= 0) return primitives;
404
+ const nested = buildJsonValueSchema(depth - 1);
405
+ return z.union([
406
+ primitives,
407
+ z.array(nested),
408
+ z.record(z.string(), nested)
409
+ ]);
410
+ }
411
+ const jsonValueSchema = buildJsonValueSchema(MAX_JSON_DEPTH);
412
+ const jsonSchemaObject = z.record(z.string(), jsonValueSchema);
413
+ const anyZodSchemaSchema = z.custom((value) => value instanceof z.ZodType, "Expected a Zod schema");
414
+ const zodObjectSchema = z.custom((value) => value instanceof z.ZodObject, "Expected a Zod object schema");
415
+ /**
416
+ * Creates a Zod schema that validates an object structurally by checking
417
+ * for required properties. This avoids `instanceof` checks which fail
418
+ * when class definitions are duplicated across bundle boundaries.
419
+ */
420
+ function createStructuralSchema(requiredKeys, label) {
421
+ return z.custom((value) => value != null && (typeof value === "object" || typeof value === "function") && requiredKeys.every((key) => key in value), `Expected ${label}`);
422
+ }
423
+ function trimmedNonEmptyString(fieldName) {
424
+ return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` });
425
+ }
426
+ /** Trimmed string with at least one character; no upper length limit. */
427
+ function trimmedNonEmptyStringUnbounded(fieldName) {
428
+ return z.string().trim().min(1, { error: `${fieldName} cannot be empty` });
429
+ }
430
+ /**
431
+ * Non-empty trimmed string restricted to URL-safe characters.
432
+ * Use for IDs (workflow, step, etc.) that must be safe in URLs, env vars, and as object keys.
433
+ */
434
+ function idNoSpacesString(fieldName) {
435
+ return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` }).refine((s) => /^[a-zA-Z0-9_-]+$/.test(s), { error: `${fieldName} must only contain letters, numbers, hyphens, and underscores` });
436
+ }
437
+ /**
438
+ * Non-empty trimmed string for credential definition ids.
439
+ * Allows namespaced ids such as `keystroke:slack` plus letters, numbers,
440
+ * hyphens, and underscores.
441
+ */
442
+ function credentialSetIdString(fieldName) {
443
+ return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` }).refine((s) => /^[a-zA-Z0-9_:-]+$/.test(s), { error: `${fieldName} must only contain letters, numbers, hyphens, underscores, and colons` });
444
+ }
445
+ function optionalTrimmedNonEmptyString(fieldName) {
446
+ return trimmedNonEmptyString(fieldName).optional();
447
+ }
448
+ function descriptionString(fieldName) {
449
+ return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(1024, { error: `${fieldName} cannot exceed 1024 characters` });
450
+ }
451
+ function optionalDescriptionString(fieldName) {
452
+ return descriptionString(fieldName).optional();
453
+ }
454
+ //#endregion
455
+ //#region ../../packages/core/src/credential-set/constants.ts
456
+ /**
457
+ * Shared constants for the credential/connection system.
458
+ * Defined in core (bottom of dependency chain) so all packages can import them.
459
+ */
460
+ const CREDENTIAL_EXPOSURES = {
461
+ "user-runtime": "user-runtime",
462
+ "platform-only": "platform-only"
463
+ };
464
+ //#endregion
465
+ //#region ../../packages/core/src/credential-set/schemas.ts
466
+ const credentialSetProxyInjectionSchema = z.object({
467
+ /** Substitute placeholder in HTTP headers (default: true). */
468
+ headers: z.boolean().optional(),
469
+ /** Substitute placeholder in the HTTP Basic Auth credential (default: true). */
470
+ basicAuth: z.boolean().optional(),
471
+ /** Substitute placeholder in URL query params (default: false).
472
+ * Use for APIs that authenticate via `?api_key=...` (Google Maps, OWM, etc.). */
473
+ queryParams: z.boolean().optional(),
474
+ /** Substitute placeholder in the HTTP request body (default: false).
475
+ * Use for form-encoded auth payloads (Stripe, AWS SigV4 query, etc.). */
476
+ body: z.boolean().optional()
477
+ });
478
+ const credentialSetProxyConfigSchema = z.object({
479
+ /** Exact-match host allowlist (forwarded to SecretBuilder.allowHost). */
480
+ hosts: z.array(z.string().min(1)).optional(),
481
+ /** Wildcard host allowlist (forwarded to SecretBuilder.allowHostPattern).
482
+ * Example: `["*.browserbase.com"]` covers any subdomain. */
483
+ hostPatterns: z.array(z.string().min(1)).optional(),
484
+ /** Per-scope substitution toggles. Omit to use SDK defaults. */
485
+ injection: credentialSetProxyInjectionSchema.optional()
486
+ });
487
+ const onCredentialRevokedSchema = z.enum(["fail", "retry-once"]);
488
+ const credentialExposureSchema = z.enum([CREDENTIAL_EXPOSURES["user-runtime"], CREDENTIAL_EXPOSURES["platform-only"]]);
489
+ const connectionMetadataConfigSchema = z.object({
490
+ id: credentialSetIdString("Credential connection id").optional(),
491
+ label: optionalTrimmedNonEmptyString("Credential connection label"),
492
+ description: optionalDescriptionString("Credential connection description"),
493
+ recommended: z.boolean().optional(),
494
+ advanced: z.boolean().optional(),
495
+ needsRawSecret: z.boolean().optional()
496
+ });
497
+ const connectionMetadataManifestSchema = connectionMetadataConfigSchema;
498
+ const registeredDescriptorSchema = z.object({
499
+ id: trimmedNonEmptyString("Registered descriptor id"),
500
+ config: z.record(z.string(), z.unknown()).optional()
501
+ });
502
+ const registeredResolverDescriptorSchema = registeredDescriptorSchema.extend({ cacheMs: z.number().int().nonnegative().optional() });
503
+ const manualConnectionConfigSchema = connectionMetadataConfigSchema.extend({
504
+ kind: z.literal("manual"),
505
+ input: zodObjectSchema.optional(),
506
+ instructions: z.string().min(1).optional(),
507
+ validate: z.function().optional()
508
+ });
509
+ const manualConnectionFieldManifestSchema = z.object({
510
+ key: z.string().min(1),
511
+ label: z.string().min(1),
512
+ description: z.string().min(1).optional(),
513
+ optional: z.boolean(),
514
+ secret: z.literal(true)
515
+ });
516
+ const manualConnectionConfigManifestSchema = connectionMetadataManifestSchema.extend({
517
+ kind: z.literal("manual"),
518
+ input: jsonSchemaObject.optional(),
519
+ fields: z.array(manualConnectionFieldManifestSchema).optional(),
520
+ generated: z.boolean().optional(),
521
+ instructions: z.string().min(1).optional()
522
+ });
523
+ /** Declarative form of `Vault` — strings typed against the credential set's
524
+ * stored/auth schema keys at the {@link CredentialSetConfig} boundary; the Zod
525
+ * schema here enforces non-empty strings only. `CredentialSet` itself performs
526
+ * the schema-key membership check at construction time. */
527
+ const vaultMappingSchema = z.object({
528
+ accessToken: z.string().min(1),
529
+ refreshToken: z.string().min(1).optional(),
530
+ instanceUrl: z.string().min(1).optional(),
531
+ raw: z.record(z.string().min(1), z.string().min(1)).optional()
532
+ });
533
+ /** Function form of `Vault` — an object pairing the access-token vault key
534
+ * (`accessTokenKey`) with the `build` function that computes the full vault
535
+ * write map. The explicit key keeps the disconnect path's revocation read
536
+ * reliable even when `build` transforms the access token. */
537
+ const vaultMappingFnSchema = z.object({
538
+ accessTokenKey: z.string().min(1),
539
+ build: z.custom((val) => typeof val === "function", { message: "vault.build must be a function." })
540
+ });
541
+ /** Runtime shape of `Vault`. Accepts either the declarative mapping or the
542
+ * function-form object `{ accessTokenKey, build }`. */
543
+ const vaultConfigSchema = z.union([vaultMappingSchema, vaultMappingFnSchema], { error: "vault must be a declarative mapping object or a `{ accessTokenKey, build }` object." });
544
+ /** Manifest projection of `Vault` — declarative mappings serialize verbatim;
545
+ * function-form mappings serialize as `{ kind: 'function', accessTokenKey }`
546
+ * since closures are not manifest-safe but the access-token key is. */
547
+ const vaultManifestSchema = z.discriminatedUnion("kind", [z.object({
548
+ kind: z.literal("declarative"),
549
+ accessToken: z.string().min(1),
550
+ refreshToken: z.string().min(1).optional(),
551
+ instanceUrl: z.string().min(1).optional(),
552
+ raw: z.record(z.string().min(1), z.string().min(1)).optional()
553
+ }), z.object({
554
+ kind: z.literal("function"),
555
+ accessTokenKey: z.string().min(1)
556
+ })]);
557
+ const oauthConnectionConfigBaseSchema = z.object({
558
+ kind: z.literal("oauth"),
559
+ authUrl: z.string().url(),
560
+ tokenUrl: z.string().url(),
561
+ scopes: z.array(z.string()).readonly(),
562
+ revokeUrl: z.string().url().nullable().optional(),
563
+ tokenType: z.enum(["long-lived", "refreshable"]),
564
+ pkce: z.boolean().optional(),
565
+ /** Fallback token lifetime when the provider omits `expires_in`. Positive
566
+ * integer seconds. Shared between config + manifest schemas (both extend
567
+ * this base). */
568
+ defaultExpiresInSeconds: z.number().int().positive().optional()
569
+ });
570
+ const oauthConnectionConfigSchema = oauthConnectionConfigBaseSchema.extend({
571
+ ...connectionMetadataConfigSchema.shape,
572
+ vault: vaultConfigSchema,
573
+ oauth: registeredDescriptorSchema.optional(),
574
+ buildAuthUrl: z.function().optional(),
575
+ exchangeCode: z.function().optional(),
576
+ refreshToken: z.function().optional(),
577
+ extractInstallationInfo: z.function().optional(),
578
+ validate: z.function().optional()
579
+ });
580
+ const oauthConnectionConfigManifestSchema = oauthConnectionConfigBaseSchema.extend({
581
+ ...connectionMetadataManifestSchema.shape,
582
+ vault: vaultManifestSchema,
583
+ oauth: registeredDescriptorSchema.optional()
584
+ });
585
+ const credentialsExchangeConnectionConfigSchema = connectionMetadataConfigSchema.extend({
586
+ kind: z.literal("credentials-exchange"),
587
+ instructions: z.string().min(1).optional(),
588
+ input: zodObjectSchema
589
+ }).extend({
590
+ exchange: z.function(),
591
+ rotate: z.function().optional(),
592
+ validate: z.function().optional()
593
+ });
594
+ /** Manifest projection of `CredentialsExchangeConnectionConfig` — only the
595
+ * declarative `input` schema (rendered as JSON Schema) and `instructions`
596
+ * copy survive serialization. The three hooks (`exchange`, `rotate`,
597
+ * `validate`) are runtime closures and are stripped. */
598
+ const credentialsExchangeConnectionConfigManifestSchema = z.object({
599
+ kind: z.literal("credentials-exchange"),
600
+ ...connectionMetadataManifestSchema.shape,
601
+ instructions: z.string().min(1).optional(),
602
+ input: jsonSchemaObject
603
+ });
604
+ const exchangeCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({
605
+ kind: z.literal("exchange"),
606
+ input: zodObjectSchema,
607
+ exchange: registeredDescriptorSchema
608
+ });
609
+ const exchangeCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({
610
+ kind: z.literal("exchange"),
611
+ input: jsonSchemaObject,
612
+ exchange: registeredDescriptorSchema
613
+ });
614
+ const dynamicCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({
615
+ kind: z.literal("dynamic"),
616
+ input: zodObjectSchema.optional(),
617
+ resolver: registeredResolverDescriptorSchema
618
+ });
619
+ const dynamicCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({
620
+ kind: z.literal("dynamic"),
621
+ input: jsonSchemaObject.optional(),
622
+ resolver: registeredResolverDescriptorSchema
623
+ });
624
+ const platformCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({ kind: z.literal("platform") });
625
+ const platformCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({ kind: z.literal("platform") });
626
+ const connectionConfigSchema = z.discriminatedUnion("kind", [
627
+ manualConnectionConfigSchema,
628
+ oauthConnectionConfigSchema,
629
+ credentialsExchangeConnectionConfigSchema,
630
+ exchangeCredentialConnectionConfigSchema,
631
+ dynamicCredentialConnectionConfigSchema,
632
+ platformCredentialConnectionConfigSchema
633
+ ]);
634
+ /** Manifest projection of `ConnectionConfig` — declarative metadata only. */
635
+ const connectionConfigManifestSchema = z.discriminatedUnion("kind", [
636
+ manualConnectionConfigManifestSchema,
637
+ oauthConnectionConfigManifestSchema,
638
+ credentialsExchangeConnectionConfigManifestSchema,
639
+ exchangeCredentialConnectionManifestSchema,
640
+ dynamicCredentialConnectionManifestSchema,
641
+ platformCredentialConnectionManifestSchema
642
+ ]);
643
+ const CredentialSetManifestSchema = z.object({
644
+ manifestVersion: z.literal(1),
645
+ type: z.literal("credentialSet"),
646
+ id: credentialSetIdString("Credential set id"),
647
+ name: trimmedNonEmptyString("Credential set name"),
648
+ description: optionalDescriptionString("Credential set description"),
649
+ auth: jsonSchemaObject,
650
+ exposure: credentialExposureSchema.optional(),
651
+ proxy: credentialSetProxyConfigSchema.optional(),
652
+ /** When true, resolved values are passed into execution as raw secrets (no ref-token proxy). */
653
+ needsRawSecret: z.boolean().optional(),
654
+ /** Policy when a step throws `CredentialRevokedError` against this credential set. */
655
+ onCredentialRevoked: onCredentialRevokedSchema.optional(),
656
+ connections: z.array(connectionConfigManifestSchema).optional()
657
+ });
658
+ z.object({
659
+ id: credentialSetIdString("Credential set id"),
660
+ name: optionalTrimmedNonEmptyString("Credential set name"),
661
+ description: optionalDescriptionString("Credential set description"),
662
+ auth: zodObjectSchema,
663
+ exposure: credentialExposureSchema.optional(),
664
+ proxy: credentialSetProxyConfigSchema.optional(),
665
+ /** When true, resolved values are passed into execution as raw secrets (no ref-token proxy). */
666
+ needsRawSecret: z.boolean().optional(),
667
+ onCredentialRevoked: onCredentialRevokedSchema.optional(),
668
+ connections: z.array(connectionConfigSchema).readonly().optional()
669
+ });
670
+ //#endregion
671
+ export { descriptionString as a, optionalDescriptionString as c, trimmedNonEmptyStringUnbounded as d, parseCronExpression as f, createStructuralSchema as i, optionalTrimmedNonEmptyString as l, credentialSetProxyConfigSchema as n, idNoSpacesString as o, anyZodSchemaSchema as r, jsonSchemaObject as s, CredentialSetManifestSchema as t, trimmedNonEmptyString as u };
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { D as CliExitError, a as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson, r as isJsonMode } from "./output-BWcVRt-T.mjs";
5
- import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-BBgN2tzW.mjs";
5
+ import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-Cm9hF6OB.mjs";
6
6
  import path from "node:path";
7
7
  //#region src/commands/skills/skills-sync.handler.ts
8
8
  async function handleSkillsSync(options, _ctx) {
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
4
- import { t as createTypedCommand } from "./commander-C5qcOo8m.mjs";
5
- import { t as SKILL_INSTALL_METHODS } from "./types-BMBuhHhW.mjs";
4
+ import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
5
+ import { t as SKILL_INSTALL_METHODS } from "./types-D1cVpE7_.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/skills/skills.command.ts
8
8
  const SkillsCommandOptionsSchema = JsonOptionSchema.extend({
@@ -32,13 +32,13 @@ function createSkillsCommand() {
32
32
  description: "Sync Keystroke agent skills (SKILL.md) from @keystrokehq/skills",
33
33
  schema: SkillsCommandOptionsSchema,
34
34
  optionsConfig: SKILLS_OPTIONS_CONFIG,
35
- loadHandler: async () => (await import("./skills.handler-Do9I3dQS.mjs")).handleSkillsParent,
35
+ loadHandler: async () => (await import("./skills.handler-KEUkV5NH.mjs")).handleSkillsParent,
36
36
  subcommands: [createTypedCommand({
37
37
  name: "sync",
38
38
  description: "Install bundled Keystroke skills into selected agent skill directories",
39
39
  schema: SkillsCommandOptionsSchema,
40
40
  optionsConfig: SKILLS_OPTIONS_CONFIG,
41
- loadHandler: async () => (await import("./skills-sync.handler-DOxudKmV.mjs")).handleSkillsSync
41
+ loadHandler: async () => (await import("./skills-sync.handler-09mDbx5q.mjs")).handleSkillsSync
42
42
  })]
43
43
  });
44
44
  cmd.enablePositionalOptions();
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { d as getMetadataRoot } from "./layout-P1v-Gssz.mjs";
4
- import { t as BASE_IGNORE_PATTERNS } from "./metadata-layout-Bv-B0nHj-B1c5giJ7.mjs";
5
- import { a as literalString, l as unwrapExpression, n as identifierName, r as isNode } from "./oxc-B3KI3rf_-Cvx4Z-4H.mjs";
3
+ import { d as getMetadataRoot } from "./layout-B95Tku8F.mjs";
4
+ import { t as BASE_IGNORE_PATTERNS } from "./metadata-layout-Bv-B0nHj-CO8mjjSl.mjs";
5
+ import { a as literalString, l as unwrapExpression, n as identifierName, r as isNode } from "./oxc-B3KI3rf_-B9omBIuN.mjs";
6
6
  import path from "node:path";
7
7
  import { readFile, readdir, rm } from "node:fs/promises";
8
8
  //#region ../../packages/workflow-builder/dist/source-analysis-BBg2E_6G.mjs
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { a as createKyInstance, i as buildSearchParams, n as auth, r as bundles, s as getClientEnv, t as projects$1 } from "./projects-BndElPAx.mjs";
3
+ import { a as createKyInstance, i as buildSearchParams, n as auth, r as bundles, s as getClientEnv, t as projects$1 } from "./projects-ZNcKwds2.mjs";
4
4
  //#region ../../packages/workflow-sdk/src/v1/admin.ts
5
5
  const admin = (api) => ({
6
6
  orgs: {