@keystrokehq/cli 0.0.11 → 0.0.12
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/dist/{accept.handler-DWuxmMuY.mjs → accept.handler-BU6kg8ET.mjs} +1 -1
- package/dist/{admin-BK4bFTTd.mjs → admin-B4GNbCl5.mjs} +9 -9
- package/dist/{agent-manifest-sJFbH5H8.mjs → agent-manifest-CZdlCTFs.mjs} +5 -5
- package/dist/{agents-DYnw2VPX.mjs → agents-DDqXmmFV.mjs} +6 -6
- package/dist/api-DuKKdCpF.mjs +246 -0
- package/dist/{api-keys-Dizx3YqE.mjs → api-keys-BE_hLonn.mjs} +5 -5
- package/dist/{auth-BqsKd4IA.mjs → auth-DNK5MYm4.mjs} +5 -5
- package/dist/{auth.handler-BsoWeCFD.mjs → auth.handler-DrjDODhZ.mjs} +1 -1
- package/dist/{build-agents-DfbiMZ_e-CgnKa9A6.mjs → build-agents-DseUtzd4-DIDGsZWL.mjs} +12 -13
- package/dist/{build-metadata-zidV9Cai-Bq37kBOM.mjs → build-metadata-xqeWhaTS-WR8IooGe.mjs} +19 -35
- package/dist/{build-progress-DigAP-BN.mjs → build-progress-CITED2tv.mjs} +1 -1
- package/dist/{build-tasks-O1jYtlv1-Bkw0w1r3.mjs → build-tasks-GVuMLS0h-DnS9QWzf.mjs} +4 -4
- package/dist/{build-workflows-3fdvdHHf-BDTy9QgT.mjs → build-workflows-Dmzay1vP-DKVuBAjD.mjs} +17 -18
- package/dist/{build.handler-B2UDhh72.mjs → build.handler-DI146Cd3.mjs} +4 -4
- package/dist/{clear.handler-BR97yudD.mjs → clear.handler-B1c17nAi.mjs} +1 -1
- package/dist/{commander-DcftG6dX.mjs → commander-BwtBoukr.mjs} +2 -2
- package/dist/{common-B3bLe3Mk.mjs → common-BaGFkj3n.mjs} +2 -2
- package/dist/{connect-DQ4xIcyE.mjs → connect-IPcL37np.mjs} +12 -6
- package/dist/{connect.handler-CWSLgf87.mjs → connect.handler-ToY6qmMz.mjs} +74 -224
- package/dist/{context-1VgRbzr-.mjs → context-DQ4IA0yO.mjs} +1 -1
- package/dist/{create.handler-C2CkPWsy.mjs → create.handler-BAyG0PmG.mjs} +1 -1
- package/dist/credential-requirements-FtBk5JVB.mjs +250 -0
- package/dist/credentials-Bu1MBiCL.mjs +182 -0
- package/dist/{credentials-D8_AwH9o.mjs → credentials-CZiu-534.mjs} +12 -7
- package/dist/{current-deployment-workflow-B05z0EQa.mjs → current-deployment-workflow-B4IufKqe.mjs} +5 -5
- package/dist/{current.handler-CuAtMZmm.mjs → current.handler-DA4FGfUP.mjs} +1 -1
- package/dist/{declared-credential-requirements-BtlcsEVn.mjs → declared-credential-requirements-B6h4WRv4.mjs} +5 -34
- package/dist/{delete.handler-DDY3X1Zm.mjs → delete.handler-CJcyvnUF.mjs} +1 -1
- package/dist/{deploy-B8TYutOi.mjs → deploy-BvaFgVvf.mjs} +1 -1
- package/dist/{deploy-Cn6FFnOM.mjs → deploy-CqXOhecY.mjs} +2 -2
- package/dist/{deploy-progress-XAfautnA.mjs → deploy-progress-CLO-yidq.mjs} +1 -1
- package/dist/{deploy.handler-D1DcAe-h.mjs → deploy.handler-DQg_rXgs.mjs} +16 -16
- package/dist/{detect-env-access-CwkOYeYM-D4o8gRZs.mjs → detect-env-access-CwkOYeYM-EmkYvbfJ.mjs} +1 -1
- package/dist/{diff.handler-BU6IewNG.mjs → diff.handler-BXg47NIZ.mjs} +3 -3
- package/dist/{dist-DvO0q6Fo.mjs → dist-BMkNN03r.mjs} +16 -16
- package/dist/{env.handler-C6YAmHLi.mjs → env.handler-DFKzjIQT.mjs} +10 -7
- package/dist/{error-boundary-CpaVvFXk.mjs → error-boundary-B2ZKRkZI.mjs} +1 -1
- package/dist/{file-metadata-BvGM-B2v.mjs → file-metadata-Dwy9KKq_.mjs} +2 -2
- package/dist/{import-module-DDPnzlJ1-BIBSgOhK.mjs → import-module-DEI7R8Yh-Xz-KAPvB.mjs} +248 -246
- package/dist/{init-Da6_obl0.mjs → init-DhnABm3J.mjs} +2 -2
- package/dist/{init.handler-Cq2nk8DO.mjs → init.handler-QgehN8B4.mjs} +4 -4
- package/dist/{inspect.handler-D4YGryQB.mjs → inspect.handler-CerVdo23.mjs} +3 -3
- package/dist/{integration-catalog-DtNWaMvh.mjs → integration-catalog-BRrJIAVz.mjs} +5 -5
- package/dist/{integrations-CB_Ukq2g.mjs → integrations-7-U7nmkh.mjs} +7 -6
- package/dist/{invites-BOhuBtoq.mjs → invites-CmGmnUla.mjs} +4 -4
- package/dist/{invites.list.handler-C-Wv6E1g.mjs → invites.list.handler-CmkIf-uW.mjs} +1 -1
- package/dist/{invites.resend.handler-CI78XlQS.mjs → invites.resend.handler-FZl20yat.mjs} +1 -1
- package/dist/{invites.revoke.handler-DigAgNwB.mjs → invites.revoke.handler-D95mrfmB.mjs} +1 -1
- package/dist/keystroke.mjs +21 -21
- package/dist/{list-enrichment-Cxlq6BB9.mjs → list-enrichment-I4XQaMg0.mjs} +5 -1
- package/dist/{list.handler-OiLEylzS.mjs → list.handler-BrTW2viq.mjs} +1 -1
- package/dist/{list.handler-CsODcH6e.mjs → list.handler-Cp767f5l.mjs} +1 -1
- package/dist/{list.handler-BsyGhXns.mjs → list.handler-DRnHsEa0.mjs} +1 -1
- package/dist/{list.handler-B6IByHHB.mjs → list.handler-DXl8igi2.mjs} +13 -5
- package/dist/{list.handler-BpVNYShU.mjs → list.handler-DsYyTUhA.mjs} +1 -1
- package/dist/{list.handler--a1JEGSD.mjs → list.handler-H8aQSsFM.mjs} +3 -3
- package/dist/{list.handler-Dr9Ti-dt.mjs → list.handler-k8k7wVIV.mjs} +3 -3
- package/dist/{listen-DUPk6cZC.mjs → listen-DckJq0y0.mjs} +2 -2
- package/dist/{listen.handler-B5WimrfF.mjs → listen.handler-Bf5MXKPO.mjs} +2 -2
- package/dist/{logs-C5_4lh3p.mjs → logs-D_l5BIn2.mjs} +3 -3
- package/dist/{logs.handler-CBHPwDuC.mjs → logs.handler-kYO3Uv9t.mjs} +2 -2
- package/dist/{members.add.handler-LcQJYBsu.mjs → members.add.handler-C2cppd-9.mjs} +1 -1
- package/dist/{members.invite.handler-p279O2aC.mjs → members.invite.handler-DY6kS4LN.mjs} +1 -1
- package/dist/{members.list.handler-Cjukjuot.mjs → members.list.handler-CFBG3SBw.mjs} +1 -1
- package/dist/{members.remove.handler-CzxPiQFv.mjs → members.remove.handler-LQ61_qip.mjs} +1 -1
- package/dist/{members.update.handler-CX5q86e3.mjs → members.update.handler-CqISA1mf.mjs} +1 -1
- package/dist/{normalize-path-CojS-CgQ-D_WTiHKw.mjs → normalize-path-CojS-CgQ-D5D0AIHR.mjs} +1 -1
- package/dist/{org-CnlKW-Hl.mjs → org-KQ2nD0yN.mjs} +15 -15
- package/dist/{orgs.create.handler-DRILhxdn.mjs → orgs.create.handler-Mv5CTGcG.mjs} +1 -1
- package/dist/{orgs.get.handler-Cue6stoX.mjs → orgs.get.handler-DvvOhshX.mjs} +1 -1
- package/dist/{orgs.list.handler-fuDLNI5X.mjs → orgs.list.handler-wWAg6cKg.mjs} +1 -1
- package/dist/{paused.handler-CuOVH4DZ.mjs → paused.handler-CbMkPD9e.mjs} +1 -1
- package/dist/{project-config-D9eFU8Jk.mjs → project-config-CJGSh2RQ.mjs} +4 -7
- package/dist/{projects-DN7dX6nN.mjs → projects-CWLOF5x4.mjs} +656 -3
- package/dist/{projects-DdgHbUpR.mjs → projects-CYqeKQGT.mjs} +4 -4
- package/dist/{requirements.handler-CX13XiXT.mjs → requirements.handler-CnDTBcH5.mjs} +5 -5
- package/dist/{resolve-project-C6UAOfAG.mjs → resolve-project-bVPMcs-y.mjs} +1 -1
- package/dist/{run-polling-1CTIeDea.mjs → run-polling-49w3PYAv.mjs} +3 -3
- package/dist/{run.handler-BxLH75WW.mjs → run.handler-CX3YiJmj.mjs} +5 -5
- package/dist/{runs-lfE7r6i2.mjs → runs-HJejvQnQ.mjs} +2 -2
- package/dist/{schema-BgGlAs8a.mjs → schema-DFJiNWyd.mjs} +2 -1
- package/dist/schemas-DodkHgnS.mjs +280 -0
- package/dist/{skills-sync.handler-CntKndFm.mjs → skills-sync.handler-Cf74vKJA.mjs} +1 -1
- package/dist/{skills.command-X5zZwz2d.mjs → skills.command-KyAwBeST.mjs} +3 -3
- package/dist/{source-analysis-CHkWMC40.mjs → source-analysis-CJPymdaA.mjs} +1 -1
- package/dist/{source-analysis-DEEChuND-Csu0oOlw.mjs → source-analysis-DEEChuND-zifGW9QF.mjs} +3 -3
- package/dist/{src--fCtOxNX.mjs → src-D-dFmoAF.mjs} +1 -1
- package/dist/{switch.handler-RaeKZ3ZB.mjs → switch.handler-DfsKVtR6.mjs} +1 -1
- package/dist/{sync-C89mJp7Y.mjs → sync-Coh9YPjY.mjs} +2 -2
- package/dist/{sync.handler-BoAHHUQs.mjs → sync.handler-vvFIUut1.mjs} +6 -6
- package/dist/{schedule-BWAI6qLx.mjs → task-BBgEvdG1.mjs} +395 -25
- package/dist/{task-target-build-D5IrHqSl.mjs → task-target-build-atWwwnSF.mjs} +8 -8
- package/dist/task-target-deploy-CRsrQTOy.mjs +4 -0
- package/dist/{task-target-deploy-Bf5i3ox1-2K0hAwzk.mjs → task-target-deploy-CZBGNC0H-BwPSfaJQ.mjs} +2 -2
- package/dist/task-target-deploy-runner.mjs +5 -5
- package/dist/{test-gPQJRkqa.mjs → test-BzpSLhV8.mjs} +32 -144
- package/dist/{test.handler-B5GF5txS.mjs → test.handler-St9sBXyH.mjs} +1 -1
- package/dist/{trigger-artifacts-B3OCTX9K-ME6IVdUB.mjs → trigger-artifacts-RizI57RC-C-yCtEi-.mjs} +9 -9
- package/dist/{trigger-manifest-B3Gq1739.mjs → trigger-manifest-D5rnpPkA.mjs} +1 -1
- package/dist/{try-deploy.handler-dA_YGWRq.mjs → try-deploy.handler-32lU1tg4.mjs} +9 -9
- package/dist/{upgrade-xByIxaYu.mjs → upgrade-YavAf8AC.mjs} +2 -2
- package/dist/{upload.handler-BFDM6n_6.mjs → upload.handler-DemogvI1.mjs} +129 -18
- package/dist/{users.get.handler-CzaYM2bi.mjs → users.get.handler-B20PMSbl.mjs} +1 -1
- package/dist/{users.list.handler-CpOWwzBb.mjs → users.list.handler-BplFTjv3.mjs} +1 -1
- package/dist/{users.set-role.handler-BjiSNP2d.mjs → users.set-role.handler-wdmI6o3G.mjs} +1 -1
- package/dist/{utils-C_qCshBA.mjs → utils-DpEtybzI.mjs} +2 -2
- package/dist/{validate.handler-BtDSKAFY.mjs → validate.handler-BoRyygMl.mjs} +3 -3
- package/dist/{workflow-build-Z2_jkOsZ.mjs → workflow-build-CoJMwpPO.mjs} +32 -32
- package/dist/{workflow-manifest-BfL74mjp.mjs → workflow-build-manifest-OPFqFD6f.mjs} +26 -28
- package/dist/{workflow-bundler-BzHk73PM-tt09RbIA.mjs → workflow-bundler-BzHk73PM-UJQa7Ubk.mjs} +2 -2
- package/dist/{workflows-V09d2r2H.mjs → workflows-Cag9O9hx.mjs} +26 -27
- package/dist/{writer-CtvttJdP-DZJ0mZCm.mjs → writer-CtvttJdP-BfNsrheU.mjs} +5 -5
- package/package.json +10 -8
- package/dist/constants-BUgIAu2a.mjs +0 -8
- package/dist/credential-requirements-BCW8aQWS.mjs +0 -480
- package/dist/credentials-DAQfKqn0.mjs +0 -152025
- package/dist/get-intrinsic-BjqiGgLt.mjs +0 -658
- package/dist/hosted-action-dispatcher-registry-BWEtn13o.mjs +0 -126
- package/dist/schema-B-Wgo4rJ.mjs +0 -81
- package/dist/schemas-9FmGqrPT.mjs +0 -42
- package/dist/task-1qz1XNq7.mjs +0 -96
- package/dist/task-target-deploy-Bzfftyru.mjs +0 -4
- /package/dist/{agent-bundle-package-DWV6B_5q-B-qzc3zC.mjs → agent-bundle-package-DWV6B_5q-cB76j6UL.mjs} +0 -0
- /package/dist/{browser-CvuyMLhI.mjs → browser-B4K0VW8p.mjs} +0 -0
- /package/dist/{clear-cache.handler-D-wboLB6.mjs → clear-cache.handler-Dywqc7TG.mjs} +0 -0
- /package/dist/{clear.handler-BC6pz0x-.mjs → clear.handler-ui4e1CnJ.mjs} +0 -0
- /package/dist/{concurrency-gXn9Rw8x-CnBnF2cg.mjs → concurrency-gXn9Rw8x-CaI6Vtbu.mjs} +0 -0
- /package/dist/{credential-env-map-C23GV6LN.mjs → credential-env-map-D0zgoUl0.mjs} +0 -0
- /package/dist/{credential-schema-mismatch-DM9Y91jL.mjs → credential-schema-mismatch-8pqwvswO.mjs} +0 -0
- /package/dist/{diff-utils-AATn2n56.mjs → diff-utils-BoXI705D.mjs} +0 -0
- /package/dist/{layout-CXkZEsXI.mjs → layout-DRf9qUf8.mjs} +0 -0
- /package/dist/{logs.handler-ClIIOeQB.mjs → logs.handler-DxSKmDCq.mjs} +0 -0
- /package/dist/{metadata-layout-C6ed-9dl-C6Bylr_z.mjs → metadata-layout-C6ed-9dl-EF5pCtIH.mjs} +0 -0
- /package/dist/{options-CIVqkc8V.mjs → options-DFPs-tAB.mjs} +0 -0
- /package/dist/{oxc-B3KI3rf_-ghZc3xZ5.mjs → oxc-B3KI3rf_-CHDUXsus.mjs} +0 -0
- /package/dist/{read-credential-keys-77a91T8M-B0eiobOd.mjs → read-credential-keys-77a91T8M-CzXPGxdU.mjs} +0 -0
- /package/dist/{register.handler-CpP_KB2u.mjs → register.handler-D7ZZAnGP.mjs} +0 -0
- /package/dist/{rolldown-runtime-twds-ZHy-RuJszab7.mjs → rolldown-runtime-twds-ZHy-3DMm_Sby.mjs} +0 -0
- /package/dist/{run-polling-DDpkIvwy.mjs → run-polling-Cb4ssXIE.mjs} +0 -0
- /package/dist/{schema-display-DuWBmkwk.mjs → schema-display-CyCWSgfY.mjs} +0 -0
- /package/dist/{skills.handler-CofL4oKs.mjs → skills.handler-C_4VzVmc.mjs} +0 -0
- /package/dist/{spinner-progress-Bt8zXPOc.mjs → spinner-progress-CS1BEdNB.mjs} +0 -0
- /package/dist/{status.handler-6cuHa0R0.mjs → status.handler-Cm9aNUBn.mjs} +0 -0
- /package/dist/{sync-keystroke-agent-skills-D746f2W_.mjs → sync-keystroke-agent-skills-CX9fS5nQ.mjs} +0 -0
- /package/dist/{upgrade.handler-DhKeyCy5.mjs → upgrade.handler-C2eZ_tg3.mjs} +0 -0
- /package/dist/{upload-C1qFWMm0.mjs → upload-C0kaZu08.mjs} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { n as ui } from "./keystroke.mjs";
|
|
4
4
|
import { i as writeJson } from "./output-CGdYhH0p.mjs";
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
5
|
+
import { i as requireClient } from "./context-DQ4IA0yO.mjs";
|
|
6
6
|
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-ByLX0A-V.mjs";
|
|
7
7
|
//#region src/commands/invites/accept.handler.ts
|
|
8
8
|
async function handleInvitesAccept(options, 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-CGdYhH0p.mjs";
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
4
|
+
import { t as createTypedCommand } from "./commander-BwtBoukr.mjs";
|
|
5
5
|
import { t as OrgRoleSchema } from "./schema-_FQrHcIS.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region src/commands/admin/orgs.command.ts
|
|
@@ -28,21 +28,21 @@ function createAdminOrgsCommand() {
|
|
|
28
28
|
description: "Manage organizations as a platform admin",
|
|
29
29
|
schema: AdminOrgsListOptionsSchema,
|
|
30
30
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
31
|
-
loadHandler: async () => (await import("./orgs.list.handler-
|
|
31
|
+
loadHandler: async () => (await import("./orgs.list.handler-wWAg6cKg.mjs")).handleAdminOrgsList,
|
|
32
32
|
subcommands: [
|
|
33
33
|
createTypedCommand({
|
|
34
34
|
name: "create",
|
|
35
35
|
description: "Create an organization (requires system.create_org)",
|
|
36
36
|
schema: AdminOrgsCreateOptionsSchema,
|
|
37
37
|
optionsConfig: CREATE_OPTIONS_CONFIG,
|
|
38
|
-
loadHandler: async () => (await import("./orgs.create.handler-
|
|
38
|
+
loadHandler: async () => (await import("./orgs.create.handler-Mv5CTGcG.mjs")).handleAdminOrgsCreate
|
|
39
39
|
}),
|
|
40
40
|
createTypedCommand({
|
|
41
41
|
name: "list",
|
|
42
42
|
description: "List organizations (requires system.view_orgs)",
|
|
43
43
|
schema: AdminOrgsListOptionsSchema,
|
|
44
44
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
45
|
-
loadHandler: async () => (await import("./orgs.list.handler-
|
|
45
|
+
loadHandler: async () => (await import("./orgs.list.handler-wWAg6cKg.mjs")).handleAdminOrgsList
|
|
46
46
|
}),
|
|
47
47
|
createTypedCommand({
|
|
48
48
|
name: "get",
|
|
@@ -54,7 +54,7 @@ function createAdminOrgsCommand() {
|
|
|
54
54
|
description: "Organization ID",
|
|
55
55
|
key: "orgId"
|
|
56
56
|
},
|
|
57
|
-
loadHandler: async () => (await import("./orgs.get.handler-
|
|
57
|
+
loadHandler: async () => (await import("./orgs.get.handler-DvvOhshX.mjs")).handleAdminOrgsGet
|
|
58
58
|
})
|
|
59
59
|
]
|
|
60
60
|
});
|
|
@@ -157,14 +157,14 @@ function createAdminUsersCommand() {
|
|
|
157
157
|
description: "Manage platform users",
|
|
158
158
|
schema: AdminUsersListOptionsSchema,
|
|
159
159
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
160
|
-
loadHandler: async () => (await import("./users.list.handler-
|
|
160
|
+
loadHandler: async () => (await import("./users.list.handler-BplFTjv3.mjs")).handleAdminUsersList,
|
|
161
161
|
subcommands: [
|
|
162
162
|
createTypedCommand({
|
|
163
163
|
name: "list",
|
|
164
164
|
description: "List platform users",
|
|
165
165
|
schema: AdminUsersListOptionsSchema,
|
|
166
166
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
167
|
-
loadHandler: async () => (await import("./users.list.handler-
|
|
167
|
+
loadHandler: async () => (await import("./users.list.handler-BplFTjv3.mjs")).handleAdminUsersList
|
|
168
168
|
}),
|
|
169
169
|
createTypedCommand({
|
|
170
170
|
name: "get",
|
|
@@ -176,7 +176,7 @@ function createAdminUsersCommand() {
|
|
|
176
176
|
description: "User ID",
|
|
177
177
|
key: "userId"
|
|
178
178
|
},
|
|
179
|
-
loadHandler: async () => (await import("./users.get.handler-
|
|
179
|
+
loadHandler: async () => (await import("./users.get.handler-B20PMSbl.mjs")).handleAdminUsersGet
|
|
180
180
|
}),
|
|
181
181
|
createTypedCommand({
|
|
182
182
|
name: "set-role",
|
|
@@ -188,7 +188,7 @@ function createAdminUsersCommand() {
|
|
|
188
188
|
description: "User ID",
|
|
189
189
|
key: "userId"
|
|
190
190
|
},
|
|
191
|
-
loadHandler: async () => (await import("./users.set-role.handler-
|
|
191
|
+
loadHandler: async () => (await import("./users.set-role.handler-wdmI6o3G.mjs")).handleAdminUsersSetRole
|
|
192
192
|
})
|
|
193
193
|
]
|
|
194
194
|
});
|
|
@@ -35,7 +35,7 @@ const CredentialSetProxyConfigSchema = z.object({
|
|
|
35
35
|
hostPatterns: z.array(z.string().min(1)).optional(),
|
|
36
36
|
injection: CredentialSetProxyInjectionSchema.optional()
|
|
37
37
|
});
|
|
38
|
-
const
|
|
38
|
+
const CredentialDefinitionIdSchema = z.string().trim().min(1).max(255).refine((value) => /^[a-zA-Z0-9_-]+$/.test(value), { error: "resolvedId must be a valid credential definition id (e.g. \"slack\")" });
|
|
39
39
|
const McpTransportSchema = z.discriminatedUnion("type", [
|
|
40
40
|
z.object({
|
|
41
41
|
type: z.literal("stdio"),
|
|
@@ -64,7 +64,7 @@ const McpCredentialBindingsSchema = z.object({
|
|
|
64
64
|
});
|
|
65
65
|
const AgentMcpCredentialSetSchema = z.object({
|
|
66
66
|
id: z.string().trim().min(1),
|
|
67
|
-
resolvedId:
|
|
67
|
+
resolvedId: CredentialDefinitionIdSchema,
|
|
68
68
|
credentialKeys: z.array(z.string()),
|
|
69
69
|
/** Persistence-layer schema fingerprint (same contract as workflow manifests). */
|
|
70
70
|
schemaFingerprint: z.string().min(1).optional()
|
|
@@ -201,7 +201,7 @@ const AgentVersionManifestSchema = z.object({
|
|
|
201
201
|
midSessionSnapshot: z.boolean().optional(),
|
|
202
202
|
suspensions: z.array(AgentToolSuspensionReasonSchema).optional(),
|
|
203
203
|
credentialSets: z.array(z.object({
|
|
204
|
-
id:
|
|
204
|
+
id: CredentialDefinitionIdSchema,
|
|
205
205
|
required: z.boolean().default(true)
|
|
206
206
|
})).optional(),
|
|
207
207
|
/**
|
|
@@ -213,7 +213,7 @@ const AgentVersionManifestSchema = z.object({
|
|
|
213
213
|
outputSchemaIsTabular: z.boolean().optional()
|
|
214
214
|
})).optional(),
|
|
215
215
|
credentialSets: z.array(z.object({
|
|
216
|
-
resolvedId:
|
|
216
|
+
resolvedId: CredentialDefinitionIdSchema,
|
|
217
217
|
scope: IntegrationScopeSchema.optional(),
|
|
218
218
|
credentialKeys: z.array(z.string()),
|
|
219
219
|
/** Subset of `credentialKeys` that may be absent from the vault
|
|
@@ -232,7 +232,7 @@ const AgentVersionManifestSchema = z.object({
|
|
|
232
232
|
provider: z.string(),
|
|
233
233
|
mode: z.enum(["platform", "custom"]),
|
|
234
234
|
credentialSet: z.object({
|
|
235
|
-
resolvedId:
|
|
235
|
+
resolvedId: CredentialDefinitionIdSchema,
|
|
236
236
|
credentialKeys: z.array(z.string()),
|
|
237
237
|
/** Persistence-layer schema fingerprint (same contract as workflow manifests). */
|
|
238
238
|
schemaFingerprint: z.string().min(1).optional()
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import { N as throwReportedCliExit, f as ANSI, n as ui, p as style, x as toErrorMessage } from "./keystroke.mjs";
|
|
4
4
|
import { d as trackProject } from "./dist-BF6r1hfv.mjs";
|
|
5
5
|
import { i as writeJson, n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-CGdYhH0p.mjs";
|
|
6
|
-
import { t as createTypedCommand } from "./commander-
|
|
7
|
-
import { i as readAgentManifestsFromOutDir } from "./dist-
|
|
8
|
-
import { t as requireWorkflowsDir } from "./resolve-project-
|
|
9
|
-
import { t as createSpinnerProgress } from "./spinner-progress-
|
|
10
|
-
import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-
|
|
11
|
-
import { i as resolveTypeHint } from "./schema-display-
|
|
6
|
+
import { t as createTypedCommand } from "./commander-BwtBoukr.mjs";
|
|
7
|
+
import { i as readAgentManifestsFromOutDir } from "./dist-BMkNN03r.mjs";
|
|
8
|
+
import { t as requireWorkflowsDir } from "./resolve-project-bVPMcs-y.mjs";
|
|
9
|
+
import { t as createSpinnerProgress } from "./spinner-progress-CS1BEdNB.mjs";
|
|
10
|
+
import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-CoJMwpPO.mjs";
|
|
11
|
+
import { i as resolveTypeHint } from "./schema-display-CyCWSgfY.mjs";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
//#region src/commands/agents/inspect-display.ts
|
|
14
14
|
function renderAgentManifestInspect(manifest, options = {}) {
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { n as CredentialConnectionIdSchema, r as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-DFJiNWyd.mjs";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
//#region ../../packages/shared-types/src/connections/api.ts
|
|
6
|
+
/**
|
|
7
|
+
* API request/response types for the integration catalog and connection endpoints.
|
|
8
|
+
*
|
|
9
|
+
* These types are shared between the server route handlers, the Keystroke SDK, and
|
|
10
|
+
* any in-repo consumer (CLI, web). They divide the surface into two clearly-scoped
|
|
11
|
+
* endpoints:
|
|
12
|
+
*
|
|
13
|
+
* GET /api/v1/integrations — the static Keystroke integration catalog (what can
|
|
14
|
+
* be connected). Auth required; not org-scoped; long-cached.
|
|
15
|
+
*
|
|
16
|
+
* GET /api/v1/connections — the caller's configured connections for the current
|
|
17
|
+
* org (what has been connected). Auth + org required; no-cache.
|
|
18
|
+
*
|
|
19
|
+
* Each endpoint validates its query string with the exported `*QuerySchema`, and
|
|
20
|
+
* the SDK types its method signatures against the same schema so that invalid
|
|
21
|
+
* params cannot be sent or accepted.
|
|
22
|
+
*/
|
|
23
|
+
const InitiateConnectionRequestSchema = z.object({
|
|
24
|
+
credentialConnectionId: CredentialConnectionIdSchema.optional(),
|
|
25
|
+
providerAppId: z.string().optional(),
|
|
26
|
+
/**
|
|
27
|
+
* Connection-specific setup input. For example, a Shopify OAuth connection
|
|
28
|
+
* can require `{ shopDomain: "example.myshopify.com" }` to build a
|
|
29
|
+
* tenant-specific authorize URL.
|
|
30
|
+
*/
|
|
31
|
+
input: z.record(z.string(), z.unknown()).optional(),
|
|
32
|
+
requestedScopes: z.array(z.string()).optional()
|
|
33
|
+
});
|
|
34
|
+
const InitiateConnectionResponseSchema = z.object({
|
|
35
|
+
authUrl: z.string(),
|
|
36
|
+
initiatedAt: z.number()
|
|
37
|
+
});
|
|
38
|
+
const ConnectionFailureReasonSchema = z.enum([
|
|
39
|
+
"missing_state",
|
|
40
|
+
"invalid_state",
|
|
41
|
+
"provider_denied",
|
|
42
|
+
"unknown_integration",
|
|
43
|
+
"provider_app_not_configured",
|
|
44
|
+
"token_exchange_failed",
|
|
45
|
+
"installation_metadata_invalid",
|
|
46
|
+
"validation_failed",
|
|
47
|
+
"persist_failed",
|
|
48
|
+
"unknown_error"
|
|
49
|
+
]);
|
|
50
|
+
const ConnectionStatusNotStartedSchema = z.object({ status: z.literal("not_started") });
|
|
51
|
+
const ConnectionStatusPendingSchema = z.object({ status: z.literal("pending") });
|
|
52
|
+
const ConnectionStatusConnectedSchema = z.object({ status: z.literal("connected") });
|
|
53
|
+
const ConnectionStatusFailedSchema = z.object({
|
|
54
|
+
status: z.literal("failed"),
|
|
55
|
+
reason: ConnectionFailureReasonSchema,
|
|
56
|
+
/**
|
|
57
|
+
* Optional human-readable detail. Truncated by the server to
|
|
58
|
+
* {@link CONNECTION_FAILURE_DETAIL_MAX_CHARS} characters before being
|
|
59
|
+
* persisted in `credential_sets.last_callback_error_detail` and
|
|
60
|
+
* before being echoed in the callback redirect query.
|
|
61
|
+
*/
|
|
62
|
+
message: z.string().max(300).optional(),
|
|
63
|
+
/** ISO-8601 timestamp of when the failure was recorded. */
|
|
64
|
+
failedAt: z.string()
|
|
65
|
+
});
|
|
66
|
+
const ConnectionStatusResponseSchema = z.discriminatedUnion("status", [
|
|
67
|
+
ConnectionStatusNotStartedSchema,
|
|
68
|
+
ConnectionStatusPendingSchema,
|
|
69
|
+
ConnectionStatusConnectedSchema,
|
|
70
|
+
ConnectionStatusFailedSchema
|
|
71
|
+
]);
|
|
72
|
+
const ConnectionKindValues = [
|
|
73
|
+
"oauth",
|
|
74
|
+
"manual",
|
|
75
|
+
"credentials-exchange"
|
|
76
|
+
];
|
|
77
|
+
const ConnectionKindSchema = z.enum(ConnectionKindValues);
|
|
78
|
+
const InternalCredentialSetEntrySchema = z.object({
|
|
79
|
+
credentialDefinitionId: z.string(),
|
|
80
|
+
publicId: z.string(),
|
|
81
|
+
displayName: z.string(),
|
|
82
|
+
/**
|
|
83
|
+
* Internal credential-set role. Currently the only first-class role is
|
|
84
|
+
* `'provider-app-definition'`; other values are accepted for forward-compat
|
|
85
|
+
* so newer servers can introduce roles without breaking older SDKs.
|
|
86
|
+
*/
|
|
87
|
+
role: z.string()
|
|
88
|
+
});
|
|
89
|
+
const CredentialConnectionCatalogEntrySchema = z.object({
|
|
90
|
+
id: z.string(),
|
|
91
|
+
kind: z.string(),
|
|
92
|
+
label: z.string().optional(),
|
|
93
|
+
description: z.string().optional(),
|
|
94
|
+
recommended: z.boolean().optional(),
|
|
95
|
+
advanced: z.boolean().optional(),
|
|
96
|
+
needsRawSecret: z.boolean().optional(),
|
|
97
|
+
generated: z.boolean().optional(),
|
|
98
|
+
instructions: z.string().optional(),
|
|
99
|
+
input: z.record(z.string(), z.unknown()).optional(),
|
|
100
|
+
fields: z.array(z.record(z.string(), z.unknown())).optional(),
|
|
101
|
+
authUrl: z.string().optional(),
|
|
102
|
+
tokenUrl: z.string().optional(),
|
|
103
|
+
scopes: z.array(z.string()).optional(),
|
|
104
|
+
tokenType: z.enum(["long-lived", "refreshable"]).optional(),
|
|
105
|
+
vault: z.record(z.string(), z.unknown()).optional(),
|
|
106
|
+
oauth: z.record(z.string(), z.unknown()).optional(),
|
|
107
|
+
revokeUrl: z.string().nullable().optional(),
|
|
108
|
+
pkce: z.boolean().optional(),
|
|
109
|
+
defaultExpiresInSeconds: z.number().optional(),
|
|
110
|
+
exchange: z.record(z.string(), z.unknown()).optional(),
|
|
111
|
+
resolver: z.record(z.string(), z.unknown()).optional()
|
|
112
|
+
});
|
|
113
|
+
const IntegrationCatalogEntryBaseSchema = z.object({
|
|
114
|
+
publicId: z.string(),
|
|
115
|
+
/**
|
|
116
|
+
* Public-facing aliases that resolve to this canonical `publicId`
|
|
117
|
+
* (e.g., `"github"` aliases `"github-account"`). Includes the canonical
|
|
118
|
+
* ID itself — callers can key a lookup table by every entry in this
|
|
119
|
+
* list and get the same catalog record back.
|
|
120
|
+
*/
|
|
121
|
+
aliases: z.array(z.string()),
|
|
122
|
+
name: z.string(),
|
|
123
|
+
description: z.string().optional(),
|
|
124
|
+
/**
|
|
125
|
+
* Credential definition metadata for the integration's primary connection.
|
|
126
|
+
* `storedKeys` drives upload flows (what the vault stores), while
|
|
127
|
+
* `authKeys` describes the post-resolve runtime shape.
|
|
128
|
+
*/
|
|
129
|
+
credentialSet: z.object({
|
|
130
|
+
credentialDefinitionId: z.string(),
|
|
131
|
+
authKeys: z.array(z.string()),
|
|
132
|
+
storedKeys: z.array(z.string()),
|
|
133
|
+
optionalStoredKeys: z.array(z.string()).optional(),
|
|
134
|
+
schemaFingerprint: z.string().optional()
|
|
135
|
+
}),
|
|
136
|
+
/** Serialized credential acquisition paths rendered by connect/upload UIs. */
|
|
137
|
+
connections: z.array(CredentialConnectionCatalogEntrySchema),
|
|
138
|
+
/**
|
|
139
|
+
* Internal credential sets associated with the integration (e.g., provider
|
|
140
|
+
* app definitions). Populated only when the caller requests
|
|
141
|
+
* `includeInternal=true`; otherwise empty.
|
|
142
|
+
*/
|
|
143
|
+
internalCredentialSets: z.array(InternalCredentialSetEntrySchema)
|
|
144
|
+
});
|
|
145
|
+
const OAuthIntegrationCatalogEntrySchema = IntegrationCatalogEntryBaseSchema.extend({
|
|
146
|
+
connectionKind: z.literal("oauth"),
|
|
147
|
+
tokenType: z.enum(["long-lived", "refreshable"]),
|
|
148
|
+
scopes: z.array(z.string())
|
|
149
|
+
});
|
|
150
|
+
const ManualIntegrationCatalogEntrySchema = IntegrationCatalogEntryBaseSchema.extend({ connectionKind: z.literal("manual") });
|
|
151
|
+
/**
|
|
152
|
+
* Catalog entry for `credentials-exchange`-kind integrations.
|
|
153
|
+
*
|
|
154
|
+
* Carries the JSON-schema projection of the connection's `input` schema so
|
|
155
|
+
* the CLI and web UI can render an input form without re-loading the
|
|
156
|
+
* original Zod schema (which only exists in the integration bundle's
|
|
157
|
+
* runtime module). `credentialSet.storedKeys` reflects the stored-schema
|
|
158
|
+
* keys that get persisted after exchange.
|
|
159
|
+
*
|
|
160
|
+
* @see packages/core/src/credential-set/connection.ts CredentialsExchangeConnectionConfig
|
|
161
|
+
*/
|
|
162
|
+
const CredentialsExchangeIntegrationCatalogEntrySchema = IntegrationCatalogEntryBaseSchema.extend({
|
|
163
|
+
connectionKind: z.literal("credentials-exchange"),
|
|
164
|
+
/** JSON-schema projection of the connection's `input` schema. */
|
|
165
|
+
input: z.record(z.string(), z.unknown()),
|
|
166
|
+
/** Optional free-form copy rendered above the input form. */
|
|
167
|
+
instructions: z.string().optional()
|
|
168
|
+
});
|
|
169
|
+
const IntegrationCatalogEntrySchema = z.discriminatedUnion("connectionKind", [
|
|
170
|
+
OAuthIntegrationCatalogEntrySchema,
|
|
171
|
+
ManualIntegrationCatalogEntrySchema,
|
|
172
|
+
CredentialsExchangeIntegrationCatalogEntrySchema
|
|
173
|
+
]);
|
|
174
|
+
z.object({
|
|
175
|
+
/** Restrict results to one connection kind. */
|
|
176
|
+
connectionKind: ConnectionKindSchema.optional(),
|
|
177
|
+
/**
|
|
178
|
+
* Return only the integration whose `publicId` (or alias) matches.
|
|
179
|
+
* When no integration matches, the endpoint returns an empty array.
|
|
180
|
+
*/
|
|
181
|
+
publicId: z.string().min(1).optional(),
|
|
182
|
+
/**
|
|
183
|
+
* Case-insensitive substring match against `publicId`, `aliases`, and `name`.
|
|
184
|
+
*/
|
|
185
|
+
q: z.string().min(1).optional(),
|
|
186
|
+
/**
|
|
187
|
+
* Opt into `internalCredentialSets[]` on each entry. Defaults to `false`
|
|
188
|
+
* so the common catalog call stays lean. CLI commands that need to render
|
|
189
|
+
* credential-set display names set this to `true`.
|
|
190
|
+
*/
|
|
191
|
+
includeInternal: z.stringbool().optional().default(false)
|
|
192
|
+
}).strict();
|
|
193
|
+
z.object({ integrations: z.array(IntegrationCatalogEntrySchema) });
|
|
194
|
+
const ConnectionEntrySchema = z.object({
|
|
195
|
+
id: z.string(),
|
|
196
|
+
credentialConnectionId: CredentialConnectionIdSchema,
|
|
197
|
+
/**
|
|
198
|
+
* Public-facing integration ID this connection is associated with
|
|
199
|
+
* (post alias resolution). `null` when the underlying credential set is
|
|
200
|
+
* not backed by an official Keystroke integration (e.g., user-defined
|
|
201
|
+
* custom credential sets).
|
|
202
|
+
*/
|
|
203
|
+
integrationPublicId: z.string().nullable(),
|
|
204
|
+
/**
|
|
205
|
+
* Credential definition id, e.g., `"slack"` or a custom set's
|
|
206
|
+
* identifier. Stable across alias resolution.
|
|
207
|
+
*/
|
|
208
|
+
credentialSetId: z.string(),
|
|
209
|
+
name: z.string(),
|
|
210
|
+
scope: CredentialScopeSchema,
|
|
211
|
+
platformConnected: z.boolean(),
|
|
212
|
+
connectionStatus: ConnectionStatusSchema,
|
|
213
|
+
expiresAt: z.string().nullable(),
|
|
214
|
+
isDefault: z.boolean(),
|
|
215
|
+
createdAt: z.string()
|
|
216
|
+
});
|
|
217
|
+
/**
|
|
218
|
+
* Coerces a `status` query-param value that may arrive as a single string,
|
|
219
|
+
* a comma-separated string, or (in Hono/ky's query handling) an array of
|
|
220
|
+
* strings, into a canonical `ConnectionStatus[]`. Invalid entries cause the
|
|
221
|
+
* surrounding Zod parse to fail with a helpful issue.
|
|
222
|
+
*
|
|
223
|
+
* The field itself is made optional at the object level (see
|
|
224
|
+
* `ListConnectionsQuerySchema`), so passing `undefined` / omitting the key
|
|
225
|
+
* is always valid; this preprocessor only runs when a value is actually
|
|
226
|
+
* present.
|
|
227
|
+
*/
|
|
228
|
+
const ConnectionStatusQueryParam = z.preprocess((value) => {
|
|
229
|
+
if (value === void 0 || value === null || value === "") return void 0;
|
|
230
|
+
const trimmed = (Array.isArray(value) ? value : String(value).split(",")).flatMap((entry) => String(entry).split(",")).map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
231
|
+
return trimmed.length === 0 ? void 0 : trimmed;
|
|
232
|
+
}, z.array(ConnectionStatusSchema));
|
|
233
|
+
z.object({
|
|
234
|
+
/** Filter to connections for a specific integration's public ID (alias-resolved). */
|
|
235
|
+
integrationPublicId: z.string().min(1).optional(),
|
|
236
|
+
/**
|
|
237
|
+
* Filter by one or more connection statuses. Accepts a single value, a
|
|
238
|
+
* comma-separated string, or repeated query keys. Omit to return all statuses.
|
|
239
|
+
*/
|
|
240
|
+
status: ConnectionStatusQueryParam.optional(),
|
|
241
|
+
scope: CredentialScopeSchema.optional(),
|
|
242
|
+
projectId: z.uuid().optional()
|
|
243
|
+
}).strict();
|
|
244
|
+
z.object({ connections: z.array(ConnectionEntrySchema) });
|
|
245
|
+
//#endregion
|
|
246
|
+
export { InitiateConnectionResponseSchema as i, ConnectionStatusResponseSchema as n, InitiateConnectionRequestSchema as r, ConnectionKindValues as t };
|
|
@@ -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-CGdYhH0p.mjs";
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
4
|
+
import { t as createTypedCommand } from "./commander-BwtBoukr.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/api-keys/api-keys.command.ts
|
|
7
7
|
const ApiKeysCreateOptionsSchema = JsonOptionSchema.extend({ name: z.string().optional() });
|
|
@@ -23,21 +23,21 @@ function createApiKeysCommand() {
|
|
|
23
23
|
description: "Manage API keys for your organization",
|
|
24
24
|
schema: JsonOptionSchema,
|
|
25
25
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
26
|
-
loadHandler: async () => (await import("./list.handler-
|
|
26
|
+
loadHandler: async () => (await import("./list.handler-Cp767f5l.mjs")).handleApiKeysList,
|
|
27
27
|
subcommands: [
|
|
28
28
|
createTypedCommand({
|
|
29
29
|
name: "list",
|
|
30
30
|
description: "List all API keys for your organization",
|
|
31
31
|
schema: JsonOptionSchema,
|
|
32
32
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
33
|
-
loadHandler: async () => (await import("./list.handler-
|
|
33
|
+
loadHandler: async () => (await import("./list.handler-Cp767f5l.mjs")).handleApiKeysList
|
|
34
34
|
}),
|
|
35
35
|
createTypedCommand({
|
|
36
36
|
name: "create",
|
|
37
37
|
description: "Create a new API key (raw key shown once)",
|
|
38
38
|
schema: ApiKeysCreateOptionsSchema,
|
|
39
39
|
optionsConfig: CREATE_OPTIONS_CONFIG,
|
|
40
|
-
loadHandler: async () => (await import("./create.handler-
|
|
40
|
+
loadHandler: async () => (await import("./create.handler-BAyG0PmG.mjs")).handleApiKeysCreate
|
|
41
41
|
}),
|
|
42
42
|
createTypedCommand({
|
|
43
43
|
name: "delete",
|
|
@@ -49,7 +49,7 @@ function createApiKeysCommand() {
|
|
|
49
49
|
description: "API key ID to delete",
|
|
50
50
|
key: "apiKeyId"
|
|
51
51
|
},
|
|
52
|
-
loadHandler: async () => (await import("./delete.handler-
|
|
52
|
+
loadHandler: async () => (await import("./delete.handler-CJcyvnUF.mjs")).handleApiKeysDelete
|
|
53
53
|
})
|
|
54
54
|
]
|
|
55
55
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { n as DEFAULT_CLI_WEB_URL } from "./default-urls-BS4twrsS.mjs";
|
|
4
4
|
import { S as AUTH_TIMEOUT_SECONDS } from "./keystroke.mjs";
|
|
5
|
-
import { t as createTypedCommand } from "./commander-
|
|
5
|
+
import { t as createTypedCommand } from "./commander-BwtBoukr.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region src/commands/auth/auth.command.ts
|
|
8
8
|
const AuthOptionsSchema = z.object({
|
|
@@ -25,28 +25,28 @@ function createAuthCommand() {
|
|
|
25
25
|
description: "Authenticate Keystroke CLI via device flow",
|
|
26
26
|
schema: AuthOptionsSchema,
|
|
27
27
|
optionsConfig: AUTH_OPTIONS_CONFIG,
|
|
28
|
-
loadHandler: async () => (await import("./auth.handler-
|
|
28
|
+
loadHandler: async () => (await import("./auth.handler-DrjDODhZ.mjs")).handleAuth,
|
|
29
29
|
subcommands: [
|
|
30
30
|
createTypedCommand({
|
|
31
31
|
name: "clear",
|
|
32
32
|
description: "Revoke the saved API key and remove local credentials",
|
|
33
33
|
schema: z.object({}),
|
|
34
34
|
optionsConfig: {},
|
|
35
|
-
loadHandler: async () => (await import("./clear.handler-
|
|
35
|
+
loadHandler: async () => (await import("./clear.handler-B1c17nAi.mjs")).handleAuthClear
|
|
36
36
|
}),
|
|
37
37
|
createTypedCommand({
|
|
38
38
|
name: "test",
|
|
39
39
|
description: "Verify that the saved API key is valid",
|
|
40
40
|
schema: z.object({}),
|
|
41
41
|
optionsConfig: {},
|
|
42
|
-
loadHandler: async () => (await import("./test.handler-
|
|
42
|
+
loadHandler: async () => (await import("./test.handler-St9sBXyH.mjs")).handleAuthTest
|
|
43
43
|
}),
|
|
44
44
|
createTypedCommand({
|
|
45
45
|
name: "status",
|
|
46
46
|
description: "Show the current signed-in identity and organization context",
|
|
47
47
|
schema: z.object({}),
|
|
48
48
|
optionsConfig: {},
|
|
49
|
-
loadHandler: async () => (await import("./status.handler-
|
|
49
|
+
loadHandler: async () => (await import("./status.handler-Cm9aNUBn.mjs")).handleAuthStatus
|
|
50
50
|
})
|
|
51
51
|
]
|
|
52
52
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { n as DEFAULT_CLI_WEB_URL, t as DEFAULT_CLI_SERVER_URL } from "./default-urls-BS4twrsS.mjs";
|
|
4
4
|
import { C as AUTH_URL_PATH, D as CLI_AUTH_COMMAND, E as CALLBACK_PATH, T as CALLBACK_LOOPBACK_ORIGIN, c as resolveCliWebUrl, k as CliExitError, n as ui, s as resolveCliServerUrl, u as logger, w as CALLBACK_LOOPBACK_HOST, x as toErrorMessage } from "./keystroke.mjs";
|
|
5
5
|
import { f as upsertOrgCredentials, i as getCredentialsFilePath } from "./dist-BF6r1hfv.mjs";
|
|
6
|
-
import { t as openBrowser } from "./browser-
|
|
6
|
+
import { t as openBrowser } from "./browser-B4K0VW8p.mjs";
|
|
7
7
|
import { hostname } from "node:os";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { confirm, isCancel } from "@clack/prompts";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as readOptionalJsonSchemaKeys, t as manifestToDeclaredCredentialRequirement } from "./declared-credential-requirements-
|
|
4
|
-
import { t as AgentVersionManifestSchema } from "./agent-manifest-
|
|
5
|
-
import { i as createAgentSandboxPackage, n as AGENT_VM_PI_SKILLS_ROOT, r as AGENT_VM_TOOLS_RUNTIME_RELATIVE_PATH, t as AGENT_VM_HOST_CALL_RELATIVE_PATH } from "./agent-bundle-package-DWV6B_5q-
|
|
6
|
-
import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-
|
|
7
|
-
import { t as bundleSandboxAgentTarget } from "./workflow-bundler-BzHk73PM-
|
|
3
|
+
import { n as readOptionalJsonSchemaKeys, t as manifestToDeclaredCredentialRequirement } from "./declared-credential-requirements-B6h4WRv4.mjs";
|
|
4
|
+
import { t as AgentVersionManifestSchema } from "./agent-manifest-CZdlCTFs.mjs";
|
|
5
|
+
import { i as createAgentSandboxPackage, n as AGENT_VM_PI_SKILLS_ROOT, r as AGENT_VM_TOOLS_RUNTIME_RELATIVE_PATH, t as AGENT_VM_HOST_CALL_RELATIVE_PATH } from "./agent-bundle-package-DWV6B_5q-cB76j6UL.mjs";
|
|
6
|
+
import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-CzXPGxdU.mjs";
|
|
7
|
+
import { t as bundleSandboxAgentTarget } from "./workflow-bundler-BzHk73PM-UJQa7Ubk.mjs";
|
|
8
8
|
import { builtinModules } from "node:module";
|
|
9
9
|
import { lstat, readFile, readdir, realpath } from "node:fs/promises";
|
|
10
10
|
import path from "node:path";
|
|
@@ -166,7 +166,7 @@ const HOST_CALL_STUB_SOURCE = [
|
|
|
166
166
|
"}"
|
|
167
167
|
].join("\n");
|
|
168
168
|
//#endregion
|
|
169
|
-
//#region ../../packages/workflow-builder/dist/build-agents-
|
|
169
|
+
//#region ../../packages/workflow-builder/dist/build-agents-DseUtzd4.mjs
|
|
170
170
|
const STAGED_LOCAL_SOURCES_PREFIX = ".keystroke/staged-local-sources";
|
|
171
171
|
function normalizeRelativeSandboxPath(targetPath) {
|
|
172
172
|
const normalized = path.posix.normalize(targetPath);
|
|
@@ -246,11 +246,10 @@ async function resolveSkillSourceDirectory(projectRoot, skillPath) {
|
|
|
246
246
|
return resolveSkillSourceDirectory(projectRoot, resolvedPath);
|
|
247
247
|
}
|
|
248
248
|
if (!stats.isDirectory()) throw new Error(`Skill source path must point to a directory containing SKILL.md: ${skillPath}`);
|
|
249
|
-
|
|
249
|
+
if (!(await lstat(path.join(absolutePath, "SKILL.md")).catch((error) => {
|
|
250
250
|
if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") return null;
|
|
251
251
|
throw error;
|
|
252
|
-
});
|
|
253
|
-
if (!skillManifestStats || !skillManifestStats.isFile()) throw new Error(`Skill source directory must contain SKILL.md: ${skillPath}`);
|
|
252
|
+
}))?.isFile()) throw new Error(`Skill source directory must contain SKILL.md: ${skillPath}`);
|
|
254
253
|
return absolutePath;
|
|
255
254
|
}
|
|
256
255
|
function resolveSkillSourceTarget(absolutePath) {
|
|
@@ -299,7 +298,7 @@ async function buildAgentSandboxPackage(params) {
|
|
|
299
298
|
}
|
|
300
299
|
function schemaFingerprintForManifestCredentialSet(credentialSet) {
|
|
301
300
|
const { schemaFingerprint } = manifestToDeclaredCredentialRequirement(credentialSet);
|
|
302
|
-
if (!schemaFingerprint) throw new Error(`Cannot compute schema fingerprint for credential set "${credentialSet.
|
|
301
|
+
if (!schemaFingerprint) throw new Error(`Cannot compute schema fingerprint for credential set "${credentialSet.id}"`);
|
|
303
302
|
return schemaFingerprint;
|
|
304
303
|
}
|
|
305
304
|
function createSessionRuntimePlacement() {
|
|
@@ -343,7 +342,7 @@ function createResolvedMcpServers(agentManifest) {
|
|
|
343
342
|
transport: server.transport,
|
|
344
343
|
credentialSets: server.credentialSets.map((credentialSet) => ({
|
|
345
344
|
id: credentialSet.id,
|
|
346
|
-
resolvedId: credentialSet.
|
|
345
|
+
resolvedId: credentialSet.id,
|
|
347
346
|
credentialKeys: readCredentialKeysFromSchemaObject(credentialSet.auth),
|
|
348
347
|
schemaFingerprint: schemaFingerprintForManifestCredentialSet(credentialSet)
|
|
349
348
|
})),
|
|
@@ -399,7 +398,7 @@ function createAgentVersionManifest(discoveredWorkflow, agentManifest, toolEnric
|
|
|
399
398
|
...runtimeCredentialSets.length > 0 ? { credentialSets: runtimeCredentialSets.map((credentialSet) => {
|
|
400
399
|
const optionalCredentialKeys = readOptionalJsonSchemaKeys(credentialSet.auth);
|
|
401
400
|
return {
|
|
402
|
-
resolvedId: credentialSet.
|
|
401
|
+
resolvedId: credentialSet.id,
|
|
403
402
|
credentialKeys: readCredentialKeysFromSchemaObject(credentialSet.auth),
|
|
404
403
|
schemaFingerprint: schemaFingerprintForManifestCredentialSet(credentialSet),
|
|
405
404
|
...optionalCredentialKeys.length > 0 ? { optionalCredentialKeys } : {},
|
|
@@ -414,7 +413,7 @@ function createAgentVersionManifest(discoveredWorkflow, agentManifest, toolEnric
|
|
|
414
413
|
provider: gateway.provider,
|
|
415
414
|
mode: gateway.mode,
|
|
416
415
|
credentialSet: {
|
|
417
|
-
resolvedId: gateway.credentialSet.
|
|
416
|
+
resolvedId: gateway.credentialSet.id,
|
|
418
417
|
credentialKeys: readCredentialKeysFromSchemaObject(gateway.credentialSet.auth),
|
|
419
418
|
schemaFingerprint: schemaFingerprintForManifestCredentialSet(gateway.credentialSet)
|
|
420
419
|
},
|