@keystrokehq/cli 0.0.32 → 0.0.37
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.
- package/README.md +25 -4
- package/dist/{accept.handler-DNfIXPSP.mjs → accept.handler-DCsud1s5.mjs} +4 -4
- package/dist/{admin-CJp8XksD.mjs → admin-BaOtHeZ2.mjs} +10 -10
- package/dist/{agent-manifest-De5TCxZq.mjs → agent-manifest-DfWD5tvv.mjs} +17 -27
- package/dist/{agents-G37PM35Z.mjs → agents-BVAVfMR_.mjs} +9 -9
- package/dist/{api-keys-4igNHJ_W.mjs → api-keys-BhEEsHUh.mjs} +6 -6
- package/dist/{api-BK3EhPvs.mjs → api-sWkB_Wta.mjs} +1 -1
- package/dist/{auth-CIOmmV4x.mjs → auth-BnsitjzT.mjs} +6 -6
- package/dist/{auth.handler-CznN_vfz.mjs → auth.handler-W_xk14TL.mjs} +3 -3
- package/dist/authored-workflow-ref-fkHEEVnd.mjs +113 -0
- package/dist/{build-agents-DseUtzd4-CSGpNXur.mjs → build-agents-CUzBnlAG-3ePFZiJ6.mjs} +12 -11
- package/dist/{build-progress-DLM1Bt4T.mjs → build-progress-CM-b6Bby.mjs} +2 -2
- package/dist/{build-tasks-C09SdfjC-BmAVLTtQ.mjs → build-tasks-5eOvI19S-tbN6CRx9.mjs} +4 -4
- package/dist/{build-workflows-BZ_m97Pr-BiyptCrn.mjs → build-workflows-C-gQM3l5-_zcBHE3M.mjs} +14 -9
- package/dist/{build.handler-zHimoO7c.mjs → build.handler-CpAsAsBc.mjs} +12 -9
- package/dist/{clear-cache.handler-BP0K1-uN.mjs → clear-cache.handler-gJpwslkK.mjs} +2 -2
- package/dist/{clear.handler-T27GpgSu.mjs → clear.handler-CDyG6-dk.mjs} +1 -1
- package/dist/{clear.handler-PsA5QKHx.mjs → clear.handler-_sR33Hp8.mjs} +2 -2
- package/dist/{commander-BlrSdFcu.mjs → commander-C6SSTQJ2.mjs} +22 -3
- package/dist/{connect-BbLJhlIA.mjs → connect-27EgnljZ.mjs} +3 -3
- package/dist/{connect.handler-BthE-7Wg.mjs → connect.handler-COM1LnNg.mjs} +5 -5
- package/dist/{context-sgKhRc5v.mjs → context-ebZssGCY.mjs} +4 -4
- package/dist/{create.handler-BovbO_g0.mjs → create.handler-CAWJAGzQ.mjs} +3 -3
- package/dist/{credential-env-map-CRs0llf0.mjs → credential-env-map-5a41jLwM.mjs} +1 -1
- package/dist/{credential-requirements-D0mavK8j-CFMf0Xwu.mjs → credential-requirements-B5Alhu1v-DanlSKnT.mjs} +3 -3
- package/dist/{credential-schema-mismatch-ClQgEVtO.mjs → credential-schema-mismatch-c17ktoNU.mjs} +1 -1
- package/dist/{credentials-CsncZ52a.mjs → credentials-C0ssbMlp.mjs} +10 -10
- package/dist/{credentials-DKrSaaLw.mjs → credentials-DtwLbee6.mjs} +1 -1
- package/dist/current-deployment-workflow-C6x65imE.mjs +20 -0
- package/dist/current.handler-DP1L_hm3.mjs +19 -0
- package/dist/{delete.handler-DkAK396w.mjs → delete.handler-C-5XFkgN.mjs} +2 -2
- package/dist/{deploy-DvPfR9fC.mjs → deploy-BcVQJza8.mjs} +2 -2
- package/dist/{deploy-progress-BsUH7fGE.mjs → deploy-progress-Bt86Yc1r.mjs} +2 -2
- package/dist/{deploy.handler-BW3f2N2G.mjs → deploy.handler-GPS9lxGk.mjs} +16 -16
- package/dist/{diff-utils-Bs--xmoV.mjs → diff-utils-YEUYtSRs.mjs} +1 -1
- package/dist/{diff.handler-BwhsoAg0.mjs → diff.handler-DkM5dhaN.mjs} +15 -9
- package/dist/{dist-Dw7gCE7y.mjs → dist-B5jy238v.mjs} +37 -11
- package/dist/{dist-CTEtWDW4.mjs → dist-BmbFJq8U.mjs} +8 -27
- package/dist/{env.handler-Dks6ZQh-.mjs → env.handler-V_isbSi2.mjs} +52 -29
- package/dist/{error-boundary-0veZ_RDS.mjs → error-boundary-BRxUsPi7.mjs} +3 -3
- package/dist/{iam-command-utils-CSZj4XlH.mjs → iam-command-utils-DNDN0wT6.mjs} +3 -13
- package/dist/{import-module-y0glInUe-DV_3dsU0.mjs → import-module-y0glInUe-EuAWaw9g.mjs} +506 -128
- package/dist/{init-BOCDwqKR.mjs → init-D1OmmclX.mjs} +3 -3
- package/dist/{init.handler-B3T4J6u_.mjs → init.handler-CUbYlUgP.mjs} +5 -5
- package/dist/{inspect.handler-v9snxDLi.mjs → inspect.handler-BE6coOuW.mjs} +24 -13
- package/dist/{integration-catalog-CiZ62hb_.mjs → integration-catalog-pSmWHFLQ.mjs} +3 -3
- package/dist/{integrations-m7_tb3GV.mjs → integrations-DZD5t8n2.mjs} +7 -7
- package/dist/{invites-BuatfJmN.mjs → invites-BuR1H-tA.mjs} +5 -5
- package/dist/{invites.list.handler-CK6mL10z.mjs → invites.list.handler-Dj4a6XOg.mjs} +6 -5
- package/dist/{invites.resend.handler-CKZouK1Z.mjs → invites.resend.handler-DEGF4vlB.mjs} +6 -5
- package/dist/{invites.revoke.handler-H0VI-3sp.mjs → invites.revoke.handler-Dg4ZvlFS.mjs} +6 -5
- package/dist/keystroke.mjs +122 -77
- package/dist/{list-enrichment-DP1wEyBZ.mjs → list-enrichment-dqbkXJzy.mjs} +2 -2
- package/dist/{list.handler-LxZInip2.mjs → list.handler-2g1CZAvB.mjs} +4 -4
- package/dist/{list.handler-DbYUk6ko.mjs → list.handler-7MkJfkak.mjs} +5 -5
- package/dist/list.handler-BTYVIn6z.mjs +39 -0
- package/dist/{list.handler-BiY5NFWd.mjs → list.handler-Bchcr3-e.mjs} +3 -3
- package/dist/list.handler-Choc4SZz.mjs +64 -0
- package/dist/{list.handler-CMRQKH4b.mjs → list.handler-D47C1z3m.mjs} +4 -4
- package/dist/{list.handler-DVnFrlis.mjs → list.handler-DYE48apa.mjs} +7 -7
- package/dist/{list.handler-DIMWZx78.mjs → list.handler-KcCaG3PZ.mjs} +4 -4
- package/dist/list2.handler-BIaIyrQf.mjs +99 -0
- package/dist/{listen-C_7Rgwkb.mjs → listen-CVY-_F29.mjs} +3 -3
- package/dist/{listen.handler-dJgorIzr.mjs → listen.handler-D_nEvXRn.mjs} +4 -4
- package/dist/{logs-B9YMhUGt.mjs → logs-CZ2qnsSH.mjs} +3 -3
- package/dist/{logs.handler-BfjCsAyq.mjs → logs.handler-BRUzZC9Z.mjs} +26 -29
- package/dist/{logs.handler-DGGVPMOX.mjs → logs.handler-Wk6mYyAZ.mjs} +1 -1
- package/dist/{members.add.handler-DSRCRxsI.mjs → members.add.handler-BJ0wr6rP.mjs} +6 -5
- package/dist/{members.invite.handler-BNpHn1dY.mjs → members.invite.handler-DyveDMuq.mjs} +6 -5
- package/dist/{members.list.handler-Bn9LJEPG.mjs → members.list.handler-CyQxH_zS.mjs} +6 -5
- package/dist/{members.remove.handler-Dkr2t_tX.mjs → members.remove.handler-Dtv9PooY.mjs} +6 -5
- package/dist/{members.update.handler-DBtUYuAY.mjs → members.update.handler-CeK-tCjT.mjs} +6 -5
- package/dist/{operations-CF2nUiBs.mjs → operations-CxQlt0S0.mjs} +5 -5
- package/dist/{org-DOH7YHk2.mjs → org-B8MPHJJu.mjs} +35 -28
- package/dist/org-context-BI9OSpbb.mjs +112 -0
- package/dist/org-output-DffU7DKn.mjs +64 -0
- package/dist/{orgs.create.handler-BO70zIdp.mjs → orgs.create.handler-BKvSmkU3.mjs} +4 -4
- package/dist/{orgs.get.handler-BuGg5bc9.mjs → orgs.get.handler-BA-CexIY.mjs} +4 -4
- package/dist/{orgs.list.handler--5HutMkl.mjs → orgs.list.handler-eCEg5kC1.mjs} +4 -4
- package/dist/{output-BWcVRt-T.mjs → output-DnIFEmi5.mjs} +1 -1
- package/dist/{package-manager-CvY4IW7X.mjs → package-manager-BP3-q8hh.mjs} +27 -2
- package/dist/{paused.handler-DHvxz-cC.mjs → paused.handler-4wKMTKZ-.mjs} +20 -33
- package/dist/{projects-C5GZ5Jrf.mjs → projects-Wu_2fB_x.mjs} +11 -9
- package/dist/{register.handler-CKMZ2WmD.mjs → register.handler-BvAkXCwE.mjs} +2 -2
- package/dist/{render-credential-Bn15FEUC.mjs → render-credential-D-H1ECDt.mjs} +1 -1
- package/dist/{render-operation-DWbMwhfc.mjs → render-operation-VdEPhoII.mjs} +2 -2
- package/dist/{requirements.handler-B5rqCjMu.mjs → requirements.handler-Bab4kBtw.mjs} +7 -7
- package/dist/{resolve-cli-credentials-CAOSVMJP.mjs → resolve-cli-credentials-GVOOedoQ.mjs} +1 -1
- package/dist/{resolve-project-E9mrh_el.mjs → resolve-project-DLKlAy0z.mjs} +24 -8
- package/dist/{run-polling-DawiBus-.mjs → run-polling-C5fI7xTp.mjs} +97 -14
- package/dist/{run.handler-BG7xitEK.mjs → run.handler-BKD5Xu0A.mjs} +42 -30
- package/dist/{runs-swYYBT6C.mjs → runs-CT31dczt.mjs} +4 -4
- package/dist/{schema-display-FvI8QjOQ.mjs → schema-display-sZ6ConJd.mjs} +33 -26
- package/dist/schemas-ClAIoIrX.mjs +281 -0
- package/dist/{search-CA0J5NOY.mjs → search-BeQW_pf4.mjs} +3 -3
- package/dist/{search.handler-BVDsYZlJ.mjs → search.handler-BJ-ZlDL4.mjs} +6 -6
- package/dist/{show.handler-nkK6Erbb.mjs → show.handler-BrIHUH28.mjs} +4 -4
- package/dist/{show.handler-CsidInW8.mjs → show.handler-Cqe_hCqU.mjs} +5 -5
- package/dist/{show.handler-CwwnCmbp.mjs → show.handler-DB8xl5FU.mjs} +6 -6
- package/dist/{skill-installer-DG8kTaQR.mjs → skill-installer-DuMhavmM.mjs} +3 -1
- package/dist/{skills-sync.handler-yRmi3OgP.mjs → skills-sync.handler-BGs-_YD9.mjs} +13 -7
- package/dist/{skills.command-COYd3k4Z.mjs → skills.command-DUWn6FbL.mjs} +5 -5
- package/dist/skills.handler-DqLXJepA.mjs +9 -0
- package/dist/{spinner-progress-lrKDs4YF.mjs → spinner-progress-BYxlr3lY.mjs} +1 -1
- package/dist/status.handler-DAId4bVU.mjs +72 -0
- package/dist/{switch.handler-BwYndsP-.mjs → switch.handler-Cd4Yg2n8.mjs} +17 -4
- package/dist/{sync-6fZkIUtn.mjs → sync-DgC4lcxh.mjs} +2 -2
- package/dist/{sync.handler-Ctr-cN9X.mjs → sync.handler-Cm_WtGmH.mjs} +8 -8
- package/dist/{task-BWuIKWh4.mjs → task-DTvLzUkA.mjs} +2 -88
- package/dist/{task-target-build-QllcCfoN.mjs → task-target-build-CtvRyVjH.mjs} +5 -5
- package/dist/task-target-deploy-runner.mjs +6 -6
- package/dist/{test-C8VIZe9V.mjs → test-4V7nh67i.mjs} +5 -5
- package/dist/{test.handler-BCW0YBPd.mjs → test.handler-BdCYcwR4.mjs} +2 -2
- package/dist/{test.handler-DLaxrJ9V.mjs → test.handler-Bo4YTs2Z.mjs} +19 -16
- package/dist/{tool.handler-8qNmgdRe.mjs → tool.handler-CPCrSDq2.mjs} +12 -12
- package/dist/{trigger-artifacts-BcRScRSp-BiD2h6do.mjs → trigger-artifacts-BcRScRSp-BRpU-He5.mjs} +2 -2
- package/dist/{trigger-manifest-C07EM-b2.mjs → trigger-manifest-BVqjDhxU.mjs} +1 -1
- package/dist/{upgrade-DgOcc8IT.mjs → upgrade-2qUOcjxb.mjs} +4 -8
- package/dist/upgrade.handler-PqlKSuUE.mjs +99 -0
- package/dist/{upload.handler-B7xle1oX.mjs → upload.handler-CS-vLpzC.mjs} +9 -9
- package/dist/{users.get.handler-C4t1vXwi.mjs → users.get.handler-CH1c6Lnj.mjs} +4 -4
- package/dist/{users.list.handler-Dvl90grq.mjs → users.list.handler-CxbZFgjO.mjs} +4 -4
- package/dist/{users.set-role.handler-Djw1_VGf.mjs → users.set-role.handler-CBRE-Ws6.mjs} +4 -4
- package/dist/{validate.handler-Drf_lssw.mjs → validate.handler-1d-UmtXB.mjs} +171 -26
- package/dist/{workflow-build-Begvjfq8.mjs → workflow-build-Bm8JoVv4.mjs} +234 -32
- package/dist/{workflow-build-manifest-1sC52TIG.mjs → workflow-build-manifest-CV6bBmDO.mjs} +1 -1
- package/dist/{workflow-bundler-BzHk73PM-muPv1yGG.mjs → workflow-bundler-Bs3zQNQv-Dy7lXxy3.mjs} +15 -4
- package/dist/{workflows-DjMlxuBX.mjs → workflows-ny7rOdeH.mjs} +34 -37
- package/dist/{writer-byNNUjRm-B-on1n6c.mjs → writer-BLg0RuZa-Y6ExdYH9.mjs} +6 -4
- package/package.json +10 -10
- package/dist/current-deployment-workflow-B1VQCYC-.mjs +0 -94
- package/dist/current.handler-BaGaCLzB.mjs +0 -21
- package/dist/list.handler-BEMj3FyH.mjs +0 -76
- package/dist/list.handler-Cq_oQY5B.mjs +0 -52
- package/dist/list.handler-htR9TeiS.mjs +0 -24
- package/dist/schemas-D2zfmyC-.mjs +0 -671
- package/dist/skills.handler-DYIQK0Vu.mjs +0 -9
- package/dist/status.handler-Ch_DtyBp.mjs +0 -109
- package/dist/upgrade.handler-DSZuw7-9.mjs +0 -80
- /package/dist/{build-metadata-BB_L45ZS-DSJL7dTy.mjs → build-metadata-BB_L45ZS-DRQsV6JK.mjs} +0 -0
- /package/dist/{deploy-DhCbYFc7.mjs → deploy-BiKBH25R.mjs} +0 -0
- /package/dist/{detect-env-access-CwkOYeYM-COq4U-4Y.mjs → detect-env-access-CwkOYeYM-r4aynBU0.mjs} +0 -0
- /package/dist/{read-credential-keys-77a91T8M-DGK5XTQp.mjs → read-credential-keys-77a91T8M-I07NYwfH.mjs} +0 -0
- /package/dist/{run-polling-fBouPjJ2.mjs → run-polling-1c0ckC1A.mjs} +0 -0
- /package/dist/{schemas-4Mq_bxob.mjs → schemas-8nhXlXWh.mjs} +0 -0
- /package/dist/{task-target-deploy-B_3HPSo2.mjs → task-target-deploy-m9LfE488.mjs} +0 -0
- /package/dist/{types-AlA-ifK9.mjs → types-Cb0eWmUU.mjs} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
3
|
+
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-DnIFEmi5.mjs";
|
|
4
|
+
import { t as createTypedCommand } from "./commander-C6SSTQJ2.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-
|
|
39
|
+
loadHandler: async () => (await import("./invites.list.handler-Dj4a6XOg.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-
|
|
46
|
+
loadHandler: async () => (await import("./invites.list.handler-Dj4a6XOg.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-
|
|
58
|
+
loadHandler: async () => (await import("./invites.resend.handler-DEGF4vlB.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-
|
|
70
|
+
loadHandler: async () => (await import("./invites.revoke.handler-Dg4ZvlFS.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-
|
|
145
|
+
loadHandler: async () => (await import("./members.list.handler-CyQxH_zS.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-
|
|
152
|
+
loadHandler: async () => (await import("./members.list.handler-CyQxH_zS.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-
|
|
159
|
+
loadHandler: async () => (await import("./members.invite.handler-DyveDMuq.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-
|
|
166
|
+
loadHandler: async () => (await import("./members.add.handler-BJ0wr6rP.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-
|
|
178
|
+
loadHandler: async () => (await import("./members.update.handler-CeK-tCjT.mjs")).handleMembersUpdate
|
|
179
179
|
}),
|
|
180
180
|
createTypedCommand({
|
|
181
181
|
name: "remove",
|
|
@@ -187,43 +187,50 @@ function createOrgMembersCommand() {
|
|
|
187
187
|
description: "User ID to remove",
|
|
188
188
|
key: "userId"
|
|
189
189
|
},
|
|
190
|
-
loadHandler: async () => (await import("./members.remove.handler-
|
|
190
|
+
loadHandler: async () => (await import("./members.remove.handler-Dtv9PooY.mjs")).handleMembersRemove
|
|
191
191
|
})
|
|
192
192
|
]
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
195
|
//#endregion
|
|
196
|
+
//#region src/commands/org/org-options.ts
|
|
197
|
+
/** Shared schema for read-only org commands (`list`, `current`, and default `org`). */
|
|
198
|
+
const OrgReadOptionsSchema = JsonOptionSchema;
|
|
199
|
+
const ORG_READ_OPTIONS_CONFIG = { ...JSON_OPTION_CONFIG };
|
|
200
|
+
const OrgSwitchOptionsSchema = z.object({});
|
|
201
|
+
const ORG_SWITCH_OPTIONS_CONFIG = {};
|
|
202
|
+
/** Long description for the `org` command tree (includes global org override flags). */
|
|
203
|
+
const ORG_COMMAND_DESCRIPTION = "Manage organization context (global --org <id> or KEYSTROKE_ORG_ID override active org)";
|
|
204
|
+
//#endregion
|
|
196
205
|
//#region src/commands/org/org.command.ts
|
|
197
|
-
const OrgOptionsSchema = z.object({});
|
|
198
|
-
const ORG_OPTIONS_CONFIG = {};
|
|
199
206
|
function createOrgCommand() {
|
|
200
207
|
return createTypedCommand({
|
|
201
208
|
name: "org",
|
|
202
|
-
description:
|
|
203
|
-
schema:
|
|
204
|
-
optionsConfig:
|
|
205
|
-
loadHandler: async () => (await import("./list.handler-
|
|
209
|
+
description: ORG_COMMAND_DESCRIPTION,
|
|
210
|
+
schema: OrgReadOptionsSchema,
|
|
211
|
+
optionsConfig: ORG_READ_OPTIONS_CONFIG,
|
|
212
|
+
loadHandler: async () => (await import("./list.handler-BTYVIn6z.mjs")).handleOrgList,
|
|
206
213
|
subcommands: [
|
|
207
214
|
createTypedCommand({
|
|
208
215
|
name: "list",
|
|
209
216
|
description: "List your organizations",
|
|
210
|
-
schema:
|
|
211
|
-
optionsConfig:
|
|
212
|
-
loadHandler: async () => (await import("./list.handler-
|
|
217
|
+
schema: OrgReadOptionsSchema,
|
|
218
|
+
optionsConfig: ORG_READ_OPTIONS_CONFIG,
|
|
219
|
+
loadHandler: async () => (await import("./list.handler-BTYVIn6z.mjs")).handleOrgList
|
|
213
220
|
}),
|
|
214
221
|
createTypedCommand({
|
|
215
222
|
name: "current",
|
|
216
223
|
description: "Show the current organization",
|
|
217
|
-
schema:
|
|
218
|
-
optionsConfig:
|
|
219
|
-
loadHandler: async () => (await import("./current.handler-
|
|
224
|
+
schema: OrgReadOptionsSchema,
|
|
225
|
+
optionsConfig: ORG_READ_OPTIONS_CONFIG,
|
|
226
|
+
loadHandler: async () => (await import("./current.handler-DP1L_hm3.mjs")).handleOrgCurrent
|
|
220
227
|
}),
|
|
221
228
|
createTypedCommand({
|
|
222
229
|
name: "switch",
|
|
223
|
-
description: "Switch to a different organization",
|
|
224
|
-
schema:
|
|
225
|
-
optionsConfig:
|
|
226
|
-
loadHandler: async () => (await import("./switch.handler-
|
|
230
|
+
description: "Switch to a different organization (interactive)",
|
|
231
|
+
schema: OrgSwitchOptionsSchema,
|
|
232
|
+
optionsConfig: ORG_SWITCH_OPTIONS_CONFIG,
|
|
233
|
+
loadHandler: async () => (await import("./switch.handler-Cd4Yg2n8.mjs")).handleOrgSwitch
|
|
227
234
|
}),
|
|
228
235
|
createOrgMembersCommand(),
|
|
229
236
|
createOrgInvitesCommand()
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { N as throwReportedCliExit, b as isNetworkError, p as ui, x as toErrorMessage, y as isAuthError } from "./keystroke.mjs";
|
|
4
|
+
import { a as writeJsonError } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
6
|
+
//#region src/commands/org/org-context.ts
|
|
7
|
+
/** Shown when org context is missing or IAM commands need an org. */
|
|
8
|
+
const ORG_CONTEXT_HINT = "Pass --org <organization-id>, set KEYSTROKE_ORG_ID, or run `keystroke org switch`.";
|
|
9
|
+
/** Shown when switch cannot persist because no stored API keys exist. */
|
|
10
|
+
const ORG_STORED_KEYS_HINT = "Run `keystroke auth` for each organization, then `keystroke org switch`.";
|
|
11
|
+
async function getApiKeyValidationStatus(ctx) {
|
|
12
|
+
if (!ctx.client) return { kind: "not_authenticated" };
|
|
13
|
+
try {
|
|
14
|
+
const result = await ctx.client.public.auth.validate();
|
|
15
|
+
return {
|
|
16
|
+
kind: "valid",
|
|
17
|
+
apiKeyId: result.apiKeyId,
|
|
18
|
+
organizationId: result.organizationId
|
|
19
|
+
};
|
|
20
|
+
} catch (error) {
|
|
21
|
+
const message = toErrorMessage(error);
|
|
22
|
+
if (isAuthError(error)) return {
|
|
23
|
+
kind: "invalid",
|
|
24
|
+
message
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
kind: "unavailable",
|
|
28
|
+
message,
|
|
29
|
+
reason: isNetworkError(error) ? "network" : "other"
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function findMembershipOrganization(memberships, organizationId) {
|
|
34
|
+
return memberships.find((org) => org.id === organizationId);
|
|
35
|
+
}
|
|
36
|
+
async function resolveEffectiveOrganization(ctx, memberships) {
|
|
37
|
+
const explicitOrganizationId = ctx.organizationId;
|
|
38
|
+
if (explicitOrganizationId) {
|
|
39
|
+
const membership = findMembershipOrganization(memberships, explicitOrganizationId);
|
|
40
|
+
const storedOrg = ctx.storedOrgs.find((org) => org.organizationId === explicitOrganizationId);
|
|
41
|
+
const name = membership?.name ?? storedOrg?.organizationName;
|
|
42
|
+
return {
|
|
43
|
+
organizationId: explicitOrganizationId,
|
|
44
|
+
...name ? { name } : {},
|
|
45
|
+
source: ctx.orgSource ?? "credentials",
|
|
46
|
+
isMembershipKnown: membership !== void 0
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (!ctx.client) return;
|
|
50
|
+
const validation = await getApiKeyValidationStatus(ctx);
|
|
51
|
+
if (validation.kind !== "valid") return;
|
|
52
|
+
const membership = findMembershipOrganization(memberships, validation.organizationId);
|
|
53
|
+
const storedOrg = ctx.storedOrgs.find((org) => org.organizationId === validation.organizationId);
|
|
54
|
+
const name = membership?.name ?? storedOrg?.organizationName;
|
|
55
|
+
return {
|
|
56
|
+
organizationId: validation.organizationId,
|
|
57
|
+
...name ? { name } : {},
|
|
58
|
+
source: "api-key",
|
|
59
|
+
isMembershipKnown: membership !== void 0
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Active org id for list output; omits unknown explicit overrides. */
|
|
63
|
+
function resolveListActiveOrganizationId(effective) {
|
|
64
|
+
if (!effective?.isMembershipKnown) return;
|
|
65
|
+
return effective.organizationId;
|
|
66
|
+
}
|
|
67
|
+
function buildOrgListRows(params) {
|
|
68
|
+
return params.memberships.map((org) => ({
|
|
69
|
+
id: org.id,
|
|
70
|
+
name: org.name,
|
|
71
|
+
current: org.id === params.activeOrganizationId,
|
|
72
|
+
keyStored: params.storedOrgIds.has(org.id)
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
function warnUnknownOrganizationOverride(params) {
|
|
76
|
+
if (findMembershipOrganization(params.memberships, params.organizationId)) return;
|
|
77
|
+
ui.warn(`Organization ID "${params.organizationId}" is not one of your memberships (from ${params.orgSource}).`);
|
|
78
|
+
ui.hint("Check the ID with `keystroke org list` or clear --org / KEYSTROKE_ORG_ID.");
|
|
79
|
+
}
|
|
80
|
+
function requireEffectiveOrganization(effective, ctx) {
|
|
81
|
+
if (effective) {
|
|
82
|
+
if (!effective.isMembershipKnown && (ctx.orgSource === "flag" || ctx.orgSource === "env")) {
|
|
83
|
+
const message = `Organization ID "${effective.organizationId}" is not one of your memberships.`;
|
|
84
|
+
if (ctx.jsonMode) writeJsonError(message, {
|
|
85
|
+
code: "UNKNOWN_ORGANIZATION",
|
|
86
|
+
hint: "Check the ID with `keystroke org list` or clear --org / KEYSTROKE_ORG_ID."
|
|
87
|
+
});
|
|
88
|
+
ui.error(message);
|
|
89
|
+
ui.hint("Check the ID with `keystroke org list` or clear --org / KEYSTROKE_ORG_ID.");
|
|
90
|
+
throwReportedCliExit(message);
|
|
91
|
+
}
|
|
92
|
+
return effective;
|
|
93
|
+
}
|
|
94
|
+
const message = `No organization set. ${ORG_CONTEXT_HINT}`;
|
|
95
|
+
if (ctx.jsonMode) writeJsonError(message, {
|
|
96
|
+
code: "ORG_REQUIRED",
|
|
97
|
+
hint: ORG_CONTEXT_HINT
|
|
98
|
+
});
|
|
99
|
+
ui.error(message);
|
|
100
|
+
if (ctx.storedOrgs.length === 0) ui.hint(ORG_STORED_KEYS_HINT);
|
|
101
|
+
throwReportedCliExit(message);
|
|
102
|
+
}
|
|
103
|
+
async function requireOrganizationId(ctx) {
|
|
104
|
+
const { user } = await requireClient(ctx).users.getMe();
|
|
105
|
+
return requireEffectiveOrganization(await resolveEffectiveOrganization(ctx, user.organizations ?? []), ctx).organizationId;
|
|
106
|
+
}
|
|
107
|
+
function formatOrgSourceLabel(source) {
|
|
108
|
+
if (source === "api-key") return "api key";
|
|
109
|
+
return source;
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { getApiKeyValidationStatus as a, resolveEffectiveOrganization as c, formatOrgSourceLabel as i, resolveListActiveOrganizationId as l, ORG_STORED_KEYS_HINT as n, requireEffectiveOrganization as o, buildOrgListRows as r, requireOrganizationId as s, ORG_CONTEXT_HINT as t, warnUnknownOrganizationOverride as u };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as formatOrgSourceLabel } from "./org-context-BI9OSpbb.mjs";
|
|
6
|
+
import Table from "cli-table3";
|
|
7
|
+
//#region src/commands/org/org-output.ts
|
|
8
|
+
function formatOrgStatus(row) {
|
|
9
|
+
const parts = [];
|
|
10
|
+
if (row.current) parts.push("current");
|
|
11
|
+
if (row.keyStored) parts.push("key stored");
|
|
12
|
+
return parts.length > 0 ? parts.join(", ") : "—";
|
|
13
|
+
}
|
|
14
|
+
function renderOrgListHuman(rows) {
|
|
15
|
+
ui.header("Organizations");
|
|
16
|
+
if (rows.length === 0) {
|
|
17
|
+
ui.hint("You do not belong to any organization.");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const table = new Table({
|
|
21
|
+
head: [
|
|
22
|
+
"Name",
|
|
23
|
+
"ID",
|
|
24
|
+
"Status"
|
|
25
|
+
],
|
|
26
|
+
style: { head: [] }
|
|
27
|
+
});
|
|
28
|
+
for (const row of rows) table.push([
|
|
29
|
+
row.name,
|
|
30
|
+
row.id,
|
|
31
|
+
formatOrgStatus(row)
|
|
32
|
+
]);
|
|
33
|
+
ui.text(table.toString());
|
|
34
|
+
ui.hint(`${rows.length} organization(s)`);
|
|
35
|
+
}
|
|
36
|
+
function renderOrgListJson(params) {
|
|
37
|
+
writeJson({
|
|
38
|
+
organizations: params.rows.map((row) => ({
|
|
39
|
+
id: row.id,
|
|
40
|
+
name: row.name,
|
|
41
|
+
current: row.current,
|
|
42
|
+
keyStored: row.keyStored
|
|
43
|
+
})),
|
|
44
|
+
activeOrganizationId: params.activeOrganizationId
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function renderOrgCurrentHuman(effective) {
|
|
48
|
+
ui.header("Current organization");
|
|
49
|
+
const label = effective.name ?? effective.organizationId;
|
|
50
|
+
ui.text(label);
|
|
51
|
+
ui.hint(`ID: ${effective.organizationId}`);
|
|
52
|
+
ui.hint(`Source: ${formatOrgSourceLabel(effective.source)}`);
|
|
53
|
+
}
|
|
54
|
+
function renderOrgCurrentJson(effective) {
|
|
55
|
+
writeJson({
|
|
56
|
+
organization: {
|
|
57
|
+
id: effective.organizationId,
|
|
58
|
+
name: effective.name ?? null
|
|
59
|
+
},
|
|
60
|
+
source: effective.source
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { renderOrgListJson as i, renderOrgCurrentJson as n, renderOrgListHuman as r, renderOrgCurrentHuman as t };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
6
|
-
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
6
|
+
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
|
|
7
7
|
//#region src/commands/admin/orgs.create.handler.ts
|
|
8
8
|
async function handleAdminOrgsCreate(options, ctx) {
|
|
9
9
|
const client = requireClient(ctx);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
6
|
-
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
6
|
+
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
|
|
7
7
|
//#region src/commands/admin/orgs.get.handler.ts
|
|
8
8
|
async function handleAdminOrgsGet(options, ctx) {
|
|
9
9
|
const client = requireClient(ctx);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
6
|
-
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
6
|
+
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-DNDN0wT6.mjs";
|
|
7
7
|
import Table from "cli-table3";
|
|
8
8
|
//#region src/commands/admin/orgs.list.handler.ts
|
|
9
9
|
async function handleAdminOrgsList(_options, ctx) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { x as toErrorMessage } from "./keystroke.mjs";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { existsSync, readFileSync } from "node:fs";
|
|
6
6
|
import { spawn } from "node:child_process";
|
|
@@ -116,6 +116,31 @@ function isPackageManagerOnPath(packageManager) {
|
|
|
116
116
|
child.on("close", (code) => resolve(code === 0));
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
+
function readYarnMajorVersion() {
|
|
120
|
+
return new Promise((resolve) => {
|
|
121
|
+
const child = spawn("yarn", ["--version"], {
|
|
122
|
+
stdio: [
|
|
123
|
+
"ignore",
|
|
124
|
+
"pipe",
|
|
125
|
+
"ignore"
|
|
126
|
+
],
|
|
127
|
+
shell: process.platform === "win32"
|
|
128
|
+
});
|
|
129
|
+
let output = "";
|
|
130
|
+
child.stdout?.on("data", (chunk) => {
|
|
131
|
+
output += chunk.toString();
|
|
132
|
+
});
|
|
133
|
+
child.on("error", () => resolve(null));
|
|
134
|
+
child.on("close", (code) => {
|
|
135
|
+
if (code !== 0) {
|
|
136
|
+
resolve(null);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const major = Number.parseInt(output.trim().split(".")[0] ?? "", 10);
|
|
140
|
+
resolve(Number.isFinite(major) ? major : null);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}
|
|
119
144
|
async function runProjectInstall(options) {
|
|
120
145
|
const installCommand = buildProjectInstallCommand(options.packageManager);
|
|
121
146
|
return (options.runCommand ?? runPackageManagerCommand)(installCommand, { cwd: options.cwd });
|
|
@@ -134,4 +159,4 @@ function runPackageManagerCommand({ command, args }, options) {
|
|
|
134
159
|
});
|
|
135
160
|
}
|
|
136
161
|
//#endregion
|
|
137
|
-
export {
|
|
162
|
+
export { readYarnMajorVersion as a, formatPackageInstallCommand as i, buildProjectInstallCommand as n, resolvePackageManagerResolution as o, detectPackageManager as r, runProjectInstall as s, PackageManagerValues as t };
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
3
|
+
import { N as throwReportedCliExit, k as CliExitError, p as ui, x as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
6
|
+
import { n as resolveWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
|
|
7
|
+
import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-fkHEEVnd.mjs";
|
|
6
8
|
//#region src/commands/workflows/paused/paused.handler.ts
|
|
7
9
|
async function handleWorkflowsPaused(options, ctx) {
|
|
8
10
|
const client = requireClient(ctx);
|
|
9
11
|
try {
|
|
10
|
-
const
|
|
12
|
+
const result = await listPausedRuns(client, options);
|
|
11
13
|
if (ctx.jsonMode) {
|
|
12
|
-
writeJson(
|
|
14
|
+
writeJson(result);
|
|
13
15
|
return;
|
|
14
16
|
}
|
|
15
|
-
if (
|
|
17
|
+
if (result.runs.length === 0) {
|
|
16
18
|
if (options.workflow) {
|
|
17
19
|
ui.hint(`No paused runs found for workflow "${options.workflow}".`);
|
|
18
20
|
return;
|
|
@@ -20,45 +22,30 @@ async function handleWorkflowsPaused(options, ctx) {
|
|
|
20
22
|
ui.hint("No paused workflow runs found.");
|
|
21
23
|
return;
|
|
22
24
|
}
|
|
23
|
-
if (options.workflow) {
|
|
24
|
-
|
|
25
|
-
else if (match.kind === "name") ui.hint(`Showing paused runs matching workflow name "${options.workflow}".`);
|
|
26
|
-
}
|
|
27
|
-
for (const [index, run] of match.result.runs.entries()) {
|
|
25
|
+
if (options.workflow) ui.hint(`Showing paused runs matching workflow id "${options.workflow}".`);
|
|
26
|
+
for (const [index, run] of result.runs.entries()) {
|
|
28
27
|
ui.text(renderPausedRun(run));
|
|
29
|
-
if (index <
|
|
28
|
+
if (index < result.runs.length - 1) ui.br();
|
|
30
29
|
}
|
|
31
|
-
ui.hint(`Showing ${
|
|
30
|
+
ui.hint(`Showing ${result.runs.length} paused run(s)${options.type ? ` filtered to ${options.type}` : ""}.`);
|
|
32
31
|
} catch (error) {
|
|
32
|
+
if (error instanceof CliExitError && error.reported) throw error;
|
|
33
33
|
ui.error(`Failed to list paused workflow runs: ${toErrorMessage(error)}`);
|
|
34
34
|
throwReportedCliExit(`Failed to list paused workflow runs: ${toErrorMessage(error)}`, { cause: error });
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
async function listPausedRuns(client, options) {
|
|
38
|
-
if (!options.workflow) return {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const byAuthoredId = await client.runs.listPausedRuns({
|
|
38
|
+
if (!options.workflow) return client.runs.listPausedRuns({
|
|
39
|
+
type: options.type,
|
|
40
|
+
limit: options.limit
|
|
41
|
+
});
|
|
42
|
+
const workflowsDir = await resolveWorkflowsDir(void 0);
|
|
43
|
+
if (workflowsDir) await assertAuthoredWorkflowId(options.workflow, workflowsDir, WORKFLOW_ID_COMMANDS.paused);
|
|
44
|
+
return client.runs.listPausedRuns({
|
|
46
45
|
authoredWorkflowId: options.workflow,
|
|
47
46
|
type: options.type,
|
|
48
47
|
limit: options.limit
|
|
49
48
|
});
|
|
50
|
-
if (byAuthoredId.runs.length > 0) return {
|
|
51
|
-
kind: "authoredId",
|
|
52
|
-
result: byAuthoredId
|
|
53
|
-
};
|
|
54
|
-
return {
|
|
55
|
-
kind: "name",
|
|
56
|
-
result: await client.runs.listPausedRuns({
|
|
57
|
-
workflowName: options.workflow,
|
|
58
|
-
type: options.type,
|
|
59
|
-
limit: options.limit
|
|
60
|
-
})
|
|
61
|
-
};
|
|
62
49
|
}
|
|
63
50
|
function renderPausedRun(run) {
|
|
64
51
|
const lines = [
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
3
|
+
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-DnIFEmi5.mjs";
|
|
4
|
+
import { t as createTypedCommand } from "./commander-C6SSTQJ2.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/projects/projects.command.ts
|
|
7
|
+
const loadProjectsListHandler = async () => (await import("./list2.handler-BIaIyrQf.mjs")).handleProjectsList;
|
|
8
|
+
const PROJECTS_LIST_OPTIONS = {
|
|
9
|
+
schema: JsonOptionSchema,
|
|
10
|
+
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
11
|
+
loadHandler: loadProjectsListHandler
|
|
12
|
+
};
|
|
7
13
|
function createProjectsCommand() {
|
|
8
14
|
return createTypedCommand({
|
|
9
15
|
name: "projects",
|
|
10
16
|
description: "List tracked Keystroke projects",
|
|
11
|
-
|
|
12
|
-
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
13
|
-
loadHandler: async () => (await import("./list.handler-BEMj3FyH.mjs")).handleProjectsList,
|
|
17
|
+
...PROJECTS_LIST_OPTIONS,
|
|
14
18
|
subcommands: [createTypedCommand({
|
|
15
19
|
name: "list",
|
|
16
20
|
description: "List all tracked Keystroke projects",
|
|
17
|
-
|
|
18
|
-
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
19
|
-
loadHandler: async () => (await import("./list.handler-BEMj3FyH.mjs")).handleProjectsList
|
|
21
|
+
...PROJECTS_LIST_OPTIONS
|
|
20
22
|
}), createTypedCommand({
|
|
21
23
|
name: "clear-cache",
|
|
22
24
|
description: "Clear the stored projects cache (projects.json)",
|
|
23
25
|
schema: z.object({}),
|
|
24
26
|
optionsConfig: {},
|
|
25
|
-
loadHandler: async () => (await import("./clear-cache.handler-
|
|
27
|
+
loadHandler: async () => (await import("./clear-cache.handler-gJpwslkK.mjs")).handleProjectsClearCache
|
|
26
28
|
})]
|
|
27
29
|
});
|
|
28
30
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
3
|
+
import { N as throwReportedCliExit, b as isNetworkError, h as AUTH_HINT, p as ui, x as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
5
|
//#region src/commands/integrations/register.handler.ts
|
|
6
6
|
function exitWithError(ctx, message, opts) {
|
|
7
7
|
if (ctx.jsonMode) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as formatPackageInstallCommand } from "./package-manager-BP3-q8hh.mjs";
|
|
5
5
|
//#region src/lib/render-operation.ts
|
|
6
6
|
function isFull(op) {
|
|
7
7
|
return "inputSchemaJson" in op;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as writeJson } from "./output-
|
|
5
|
-
import { a as readManifestsFromOutDir } from "./dist-
|
|
6
|
-
import { t as requireWorkflowsDir } from "./resolve-project-
|
|
7
|
-
import { t as readCredentialEnvMap } from "./credential-env-map-
|
|
8
|
-
import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-
|
|
9
|
-
import { t as groupCredentialRequirements } from "./credentials-
|
|
3
|
+
import { c as getProcessEnv, n as style, p as ui, t as ANSI } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { a as readManifestsFromOutDir } from "./dist-BmbFJq8U.mjs";
|
|
6
|
+
import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
|
|
7
|
+
import { t as readCredentialEnvMap } from "./credential-env-map-5a41jLwM.mjs";
|
|
8
|
+
import { a as loadProjectDotenvFile, c as getTerminalContentWidth, o as manifestGroupKey, s as normalizeManifestScopeToServer, t as buildCredentialWorkflowConsumersByGroup, u as truncateWithEllipsis } from "./list-enrichment-dqbkXJzy.mjs";
|
|
9
|
+
import { t as groupCredentialRequirements } from "./credentials-DtwLbee6.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-
|
|
3
|
+
import { n as credentials } from "./dist-B5jy238v.mjs";
|
|
4
4
|
//#region src/lib/resolve-cli-credentials.ts
|
|
5
5
|
/**
|
|
6
6
|
* Resolves CLI credential inputs using explicit overrides first, then stored
|