@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
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
import { n as __exportAll } from "./chunk-CH6r78ws.mjs";
|
|
4
4
|
import { t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
|
|
5
5
|
import { n as SHA256HashSchema } from "./common-AK0q0Oz0.mjs";
|
|
6
|
-
import { f as collectCredentialRequirementEntries, u as TriggerUploadDataSchema } from "./credential-requirements-
|
|
7
|
-
import { a as FlowGraphSchema, r as WorkflowBuildManifestSchema } from "./workflow-build-manifest-
|
|
8
|
-
import { t as AgentVersionManifestSchema } from "./agent-manifest-
|
|
9
|
-
import { n as TaskBuildManifestSchema } from "./task-
|
|
6
|
+
import { f as collectCredentialRequirementEntries, u as TriggerUploadDataSchema } from "./credential-requirements-B5Alhu1v-DanlSKnT.mjs";
|
|
7
|
+
import { a as FlowGraphSchema, r as WorkflowBuildManifestSchema } from "./workflow-build-manifest-CV6bBmDO.mjs";
|
|
8
|
+
import { t as AgentVersionManifestSchema } from "./agent-manifest-DfWD5tvv.mjs";
|
|
9
|
+
import { n as TaskBuildManifestSchema } from "./task-DTvLzUkA.mjs";
|
|
10
10
|
import { n as FileMetadataSchema } from "./file-metadata-DQVDjr7M.mjs";
|
|
11
11
|
import { t as computeProjectSnapshotHash } from "./task-target-deploy-dQYnMO8n-d2vdeqXH.mjs";
|
|
12
12
|
import { a as MANIFEST_FILE_NAME, d as getMetadataRoot, f as getTriggersDir, m as getWorkflowManifestPath, p as getWorkflowArtifactPaths, t as BUILD_DIR_NAME } from "./layout-B95Tku8F.mjs";
|
|
13
13
|
import { n as resolveProjectBuildOutputDir } from "./utils-BaxDlCsW.mjs";
|
|
14
|
-
import { t as TriggerBuildManifestSchema } from "./trigger-manifest-
|
|
14
|
+
import { t as TriggerBuildManifestSchema } from "./trigger-manifest-BVqjDhxU.mjs";
|
|
15
15
|
import { t as batchUpload } from "./upload-CE4H5R1h.mjs";
|
|
16
16
|
import * as path$1 from "node:path";
|
|
17
17
|
import path from "node:path";
|
|
@@ -33,11 +33,7 @@ var dist_exports = /* @__PURE__ */ __exportAll({
|
|
|
33
33
|
const AGENT_ARTIFACT_DIR_PREFIX$1 = "agent_";
|
|
34
34
|
/**
|
|
35
35
|
* Reads all workflow manifests from the dist output directory.
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* When ref is provided:
|
|
39
|
-
* - First match: manifest.id === ref
|
|
40
|
-
* - Fallback: manifest.name === ref
|
|
36
|
+
* When `ref` is provided, returns manifests whose authored workflow id matches exactly.
|
|
41
37
|
*
|
|
42
38
|
* Returns [] when the dist directory does not exist or is unreadable.
|
|
43
39
|
*/
|
|
@@ -45,8 +41,6 @@ async function readManifestsFromOutDir(workflowsDir, ref) {
|
|
|
45
41
|
const distDir = await resolveProjectBuildOutputDir(workflowsDir);
|
|
46
42
|
const entries = await fs.readdir(distDir, { withFileTypes: true }).catch(() => null);
|
|
47
43
|
if (!entries) return [];
|
|
48
|
-
const byId = [];
|
|
49
|
-
const byName = [];
|
|
50
44
|
const all = [];
|
|
51
45
|
for (const entry of entries) {
|
|
52
46
|
if (!entry.isDirectory()) continue;
|
|
@@ -55,26 +49,13 @@ async function readManifestsFromOutDir(workflowsDir, ref) {
|
|
|
55
49
|
const raw = await fs.readFile(manifestPath, "utf-8");
|
|
56
50
|
const parsed = WorkflowBuildManifestSchema.safeParse(JSON.parse(raw));
|
|
57
51
|
if (!parsed.success) continue;
|
|
58
|
-
if (ref === void 0) {
|
|
59
|
-
all.push({
|
|
60
|
-
manifest: parsed.data,
|
|
61
|
-
manifestPath
|
|
62
|
-
});
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
if (parsed.data.id === ref) byId.push({
|
|
66
|
-
manifest: parsed.data,
|
|
67
|
-
manifestPath
|
|
68
|
-
});
|
|
69
|
-
else if (parsed.data.name === ref) byName.push({
|
|
52
|
+
if (ref === void 0 || parsed.data.id === ref) all.push({
|
|
70
53
|
manifest: parsed.data,
|
|
71
54
|
manifestPath
|
|
72
55
|
});
|
|
73
56
|
} catch {}
|
|
74
57
|
}
|
|
75
|
-
|
|
76
|
-
if (byId.length > 0) return byId;
|
|
77
|
-
return byName;
|
|
58
|
+
return all;
|
|
78
59
|
}
|
|
79
60
|
/**
|
|
80
61
|
* Reads all built agent version manifests from the dist output directory.
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as projects } from "./dist-
|
|
5
|
-
import { i as writeJson } from "./output-
|
|
6
|
-
import { i as requireClient } from "./context-
|
|
3
|
+
import { N as throwReportedCliExit, b as isNetworkError, g as REAUTH_HINT, k as CliExitError, n as style, p as ui, t as ANSI, x as toErrorMessage, y as isAuthError } from "./keystroke.mjs";
|
|
4
|
+
import { i as projects } from "./dist-B5jy238v.mjs";
|
|
5
|
+
import { i as writeJson } from "./output-DnIFEmi5.mjs";
|
|
6
|
+
import { i as requireClient } from "./context-ebZssGCY.mjs";
|
|
7
7
|
import { n as CredentialConnectionIdSchema, r as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-DFJiNWyd.mjs";
|
|
8
|
-
import { a as readManifestsFromOutDir } from "./dist-
|
|
9
|
-
import { t as requireWorkflowsDir } from "./resolve-project-
|
|
10
|
-
import { t as getIntegrationCatalog } from "./integration-catalog-
|
|
11
|
-
import { t as groupCredentialRequirements } from "./credentials-
|
|
8
|
+
import { a as readManifestsFromOutDir } from "./dist-BmbFJq8U.mjs";
|
|
9
|
+
import { t as requireWorkflowsDir } from "./resolve-project-DLKlAy0z.mjs";
|
|
10
|
+
import { t as getIntegrationCatalog } from "./integration-catalog-pSmWHFLQ.mjs";
|
|
11
|
+
import { t as groupCredentialRequirements } from "./credentials-DtwLbee6.mjs";
|
|
12
|
+
import { n as assertAuthoredWorkflowId, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-fkHEEVnd.mjs";
|
|
12
13
|
import { z } from "zod";
|
|
13
14
|
import Table from "cli-table3";
|
|
14
15
|
//#region ../../packages/shared-types/src/credentials/api/responses.ts
|
|
@@ -120,14 +121,24 @@ async function handleWorkflowsEnv(options, ctx) {
|
|
|
120
121
|
const client = requireClient(ctx);
|
|
121
122
|
const workflowsDir = await requireWorkflowsDir(options.path);
|
|
122
123
|
projects.track(workflowsDir);
|
|
124
|
+
if (options.workflow) await assertAuthoredWorkflowId(options.workflow, workflowsDir, WORKFLOW_ID_COMMANDS.env);
|
|
123
125
|
const manifests = await readManifestsFromOutDir(workflowsDir, options.workflow);
|
|
124
|
-
if (manifests.length === 0)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
if (manifests.length === 0) {
|
|
127
|
+
if (ctx.jsonMode && !options.workflow) {
|
|
128
|
+
writeJson([]);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (options.workflow) {
|
|
132
|
+
const allManifests = await readManifestsFromOutDir(workflowsDir);
|
|
133
|
+
renderWorkflowNotFound(options.workflow, allManifests.map(({ manifest }) => manifest.id));
|
|
134
|
+
throwReportedCliExit(`Workflow "${options.workflow}" not found.`);
|
|
135
|
+
}
|
|
129
136
|
ui.hint("No built manifests found.");
|
|
130
137
|
ui.hint("Run `keystroke workflows build` first, then re-run this command.");
|
|
138
|
+
if (options.check) throw new CliExitError("No built workflow manifests found.", {
|
|
139
|
+
exitCode: 1,
|
|
140
|
+
reported: true
|
|
141
|
+
});
|
|
131
142
|
return;
|
|
132
143
|
}
|
|
133
144
|
const catalog = await getIntegrationCatalog(ctx);
|
|
@@ -150,24 +161,36 @@ async function handleWorkflowsEnv(options, ctx) {
|
|
|
150
161
|
}
|
|
151
162
|
throw error;
|
|
152
163
|
}
|
|
153
|
-
if (ctx.jsonMode) writeJson(results.map(
|
|
154
|
-
workflowName: r.workflowName,
|
|
155
|
-
requirements: r.requirements.map((req) => ({
|
|
156
|
-
varName: req.varName,
|
|
157
|
-
credentialSetId: req.credentialSetId,
|
|
158
|
-
sourceLabel: req.sourceLabel,
|
|
159
|
-
scope: req.scope,
|
|
160
|
-
isPresent: req.status === "set"
|
|
161
|
-
}))
|
|
162
|
-
})));
|
|
164
|
+
if (ctx.jsonMode) writeJson(results.map(toWorkflowEnvJsonResult));
|
|
163
165
|
else renderTable(results);
|
|
164
166
|
if (options.check) {
|
|
165
|
-
if (results.some((r) => r.requirements.some((req) => req.status === "missing"))) throw new CliExitError("Missing workflow
|
|
167
|
+
if (results.some((r) => r.requirements.some((req) => req.status === "missing"))) throw new CliExitError("Missing workflow credential configuration.", {
|
|
166
168
|
exitCode: 1,
|
|
167
169
|
reported: true
|
|
168
170
|
});
|
|
169
171
|
}
|
|
170
172
|
}
|
|
173
|
+
function renderWorkflowNotFound(workflowId, availableWorkflowIds) {
|
|
174
|
+
ui.error(`Workflow "${workflowId}" not found.`);
|
|
175
|
+
if (availableWorkflowIds.length > 0) {
|
|
176
|
+
ui.hint(`Available workflow ids: ${availableWorkflowIds.join(", ")}`);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
ui.hint("Run `keystroke workflows build` first, then re-run this command.");
|
|
180
|
+
}
|
|
181
|
+
function toWorkflowEnvJsonResult(result) {
|
|
182
|
+
return {
|
|
183
|
+
workflowName: result.workflowName,
|
|
184
|
+
requirements: result.requirements.map((req) => ({
|
|
185
|
+
varName: req.varName,
|
|
186
|
+
credentialSetId: req.credentialSetId,
|
|
187
|
+
sourceLabel: req.sourceLabel,
|
|
188
|
+
scope: req.scope,
|
|
189
|
+
status: req.status
|
|
190
|
+
})),
|
|
191
|
+
fixes: result.fixes
|
|
192
|
+
};
|
|
193
|
+
}
|
|
171
194
|
async function buildWorkflowEnvResult(manifest, client, catalog) {
|
|
172
195
|
const seen = /* @__PURE__ */ new Set();
|
|
173
196
|
const requirements = [];
|
|
@@ -224,14 +247,14 @@ function renderTable(results) {
|
|
|
224
247
|
for (const result of results) {
|
|
225
248
|
ui.text(style(`◆ Workflow: ${result.workflowName}`, ANSI.bold));
|
|
226
249
|
if (result.requirements.length === 0) {
|
|
227
|
-
ui.hint(" No
|
|
250
|
+
ui.hint(" No server-side credentials required.");
|
|
228
251
|
ui.br();
|
|
229
252
|
continue;
|
|
230
253
|
}
|
|
231
254
|
const table = new Table({
|
|
232
255
|
head: [
|
|
233
|
-
"
|
|
234
|
-
"
|
|
256
|
+
"Credential Key",
|
|
257
|
+
"Credential Set",
|
|
235
258
|
"Scope",
|
|
236
259
|
"Status"
|
|
237
260
|
],
|
|
@@ -250,12 +273,12 @@ function renderTable(results) {
|
|
|
250
273
|
const missingCount = result.requirements.filter((r) => r.status === "missing").length;
|
|
251
274
|
const total = result.requirements.length;
|
|
252
275
|
if (missingCount > 0) {
|
|
253
|
-
ui.warn(`${missingCount} of ${total} required credential(s) are
|
|
276
|
+
ui.warn(`${missingCount} of ${total} required server-side credential(s) are not configured.`);
|
|
254
277
|
if (result.fixes.length > 0) {
|
|
255
278
|
ui.text("Suggested fixes:");
|
|
256
279
|
for (const fix of result.fixes) ui.hint(` ${fix.summary}`);
|
|
257
280
|
}
|
|
258
|
-
} else if (total > 0) ui.success(`All ${total} required credential(s) are
|
|
281
|
+
} else if (total > 0) ui.success(`All ${total} required server-side credential(s) are configured.`);
|
|
259
282
|
ui.br();
|
|
260
283
|
}
|
|
261
284
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { r as isJsonMode } from "./output-
|
|
5
|
-
import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-
|
|
3
|
+
import { I as logger, b as isNetworkError, k as CliExitError, p as ui, x as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
+
import { r as isJsonMode } from "./output-DnIFEmi5.mjs";
|
|
5
|
+
import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-c17ktoNU.mjs";
|
|
6
6
|
//#region src/lib/error-boundary.ts
|
|
7
7
|
async function withErrorBoundary(commandName, fn, options = {}) {
|
|
8
8
|
const jsonMode = options.json ?? isJsonMode({});
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { a as writeJsonError } from "./output-
|
|
3
|
+
import { N as throwReportedCliExit, p as ui, v as getHttpStatus, x as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
+
import { a as writeJsonError } from "./output-DnIFEmi5.mjs";
|
|
5
5
|
//#region src/lib/iam-command-utils.ts
|
|
6
|
-
function requireOrganizationId(ctx) {
|
|
7
|
-
if (ctx.organizationId) return ctx.organizationId;
|
|
8
|
-
const message = "Organization context is required. Pass --org or run `keystroke org switch`.";
|
|
9
|
-
if (ctx.jsonMode) writeJsonError(message, {
|
|
10
|
-
code: "ORG_REQUIRED",
|
|
11
|
-
hint: "Pass --org <organization-id> or run `keystroke org switch`."
|
|
12
|
-
});
|
|
13
|
-
ui.error(message);
|
|
14
|
-
throwReportedCliExit(message);
|
|
15
|
-
}
|
|
16
6
|
function isIamJsonMode(options, ctx) {
|
|
17
7
|
return options.json === true || ctx.jsonMode;
|
|
18
8
|
}
|
|
@@ -69,4 +59,4 @@ async function readApiErrorBody(error) {
|
|
|
69
59
|
}
|
|
70
60
|
}
|
|
71
61
|
//#endregion
|
|
72
|
-
export {
|
|
62
|
+
export { isIamJsonMode as n, requireConfirmation as r, handleIamError as t };
|