@keystrokehq/cli 0.0.32 → 0.0.38
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-CykuBpt6.mjs} +4 -4
- package/dist/{admin-CJp8XksD.mjs → admin-gRjPC3eD.mjs} +10 -10
- package/dist/{agent-manifest-De5TCxZq.mjs → agent-manifest-DfWD5tvv.mjs} +17 -27
- package/dist/{agents-G37PM35Z.mjs → agents-BpyuvM9p.mjs} +9 -9
- package/dist/{api-keys-4igNHJ_W.mjs → api-keys-BSKhdD_x.mjs} +6 -6
- package/dist/{api-BK3EhPvs.mjs → api-sWkB_Wta.mjs} +1 -1
- package/dist/{auth-CIOmmV4x.mjs → auth-DCgToFf5.mjs} +6 -6
- package/dist/{auth.handler-CznN_vfz.mjs → auth.handler-QRQAEUJC.mjs} +3 -3
- package/dist/authored-workflow-ref-BRCQgyWl.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-D_SQqdHA.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-DGQn_clk.mjs} +12 -9
- package/dist/{clear-cache.handler-BP0K1-uN.mjs → clear-cache.handler-gJpwslkK.mjs} +2 -2
- package/dist/{clear.handler-PsA5QKHx.mjs → clear.handler-CuXYvUj2.mjs} +2 -2
- package/dist/{clear.handler-T27GpgSu.mjs → clear.handler-DnjvgyMj.mjs} +1 -1
- package/dist/{commander-BlrSdFcu.mjs → commander-B_8QwPpe.mjs} +22 -3
- package/dist/{connect-BbLJhlIA.mjs → connect-DV9lhP6C.mjs} +3 -3
- package/dist/{connect.handler-BthE-7Wg.mjs → connect.handler-D6JzuFuT.mjs} +5 -5
- package/dist/{context-sgKhRc5v.mjs → context-Brc9VGV9.mjs} +4 -4
- package/dist/{create.handler-BovbO_g0.mjs → create.handler-D_tmjANR.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-CStYUB2h.mjs} +1 -1
- package/dist/{credentials-DKrSaaLw.mjs → credentials-DtwLbee6.mjs} +1 -1
- package/dist/{credentials-CsncZ52a.mjs → credentials-UDrvrKj-.mjs} +10 -10
- package/dist/current-deployment-workflow-CknsHF5T.mjs +20 -0
- package/dist/current.handler-Cy91EeLU.mjs +19 -0
- package/dist/{delete.handler-DkAK396w.mjs → delete.handler-rUDDUrDQ.mjs} +2 -2
- package/dist/{deploy-DvPfR9fC.mjs → deploy-DgWPlEKO.mjs} +2 -2
- package/dist/{deploy-progress-BsUH7fGE.mjs → deploy-progress-BDOCSm_U.mjs} +2 -2
- package/dist/{deploy.handler-BW3f2N2G.mjs → deploy.handler-BDCHCk_A.mjs} +16 -16
- package/dist/{diff-utils-Bs--xmoV.mjs → diff-utils-YEUYtSRs.mjs} +1 -1
- package/dist/{diff.handler-BwhsoAg0.mjs → diff.handler-CGERP-Qn.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--8FRrSlJ.mjs} +52 -29
- package/dist/{error-boundary-0veZ_RDS.mjs → error-boundary-D2DiCLAp.mjs} +3 -3
- package/dist/{iam-command-utils-CSZj4XlH.mjs → iam-command-utils-D01Gw8-M.mjs} +3 -13
- package/dist/{import-module-y0glInUe-DV_3dsU0.mjs → import-module-y0glInUe-EuAWaw9g.mjs} +506 -128
- package/dist/{init-BOCDwqKR.mjs → init-Mpe_8lA_.mjs} +3 -3
- package/dist/{init.handler-B3T4J6u_.mjs → init.handler-BjLAIAmm.mjs} +5 -5
- package/dist/{inspect.handler-v9snxDLi.mjs → inspect.handler-CXCi7fhH.mjs} +24 -13
- package/dist/{integration-catalog-CiZ62hb_.mjs → integration-catalog-mZs6EAlN.mjs} +3 -3
- package/dist/{integrations-m7_tb3GV.mjs → integrations-D_IH5Ud1.mjs} +7 -7
- package/dist/{invites-BuatfJmN.mjs → invites-CWWz4wmY.mjs} +5 -5
- package/dist/{invites.list.handler-CK6mL10z.mjs → invites.list.handler-CQLWSoWo.mjs} +6 -5
- package/dist/{invites.resend.handler-CKZouK1Z.mjs → invites.resend.handler-CeIGE_qM.mjs} +6 -5
- package/dist/{invites.revoke.handler-H0VI-3sp.mjs → invites.revoke.handler-9K6jkym_.mjs} +6 -5
- package/dist/keystroke.mjs +139 -82
- package/dist/{list-enrichment-DP1wEyBZ.mjs → list-enrichment-dqbkXJzy.mjs} +2 -2
- package/dist/list.handler-BvuxTFLe.mjs +64 -0
- package/dist/list.handler-CDWPmiMy.mjs +39 -0
- package/dist/{list.handler-DVnFrlis.mjs → list.handler-Co32_F3n.mjs} +7 -7
- package/dist/{list.handler-CMRQKH4b.mjs → list.handler-Cuw1fWO_.mjs} +41 -12
- package/dist/{list.handler-DbYUk6ko.mjs → list.handler-D-rSyrX0.mjs} +5 -5
- package/dist/{list.handler-DIMWZx78.mjs → list.handler-DMvq96UA.mjs} +4 -4
- package/dist/{list.handler-LxZInip2.mjs → list.handler-DUTNS8du.mjs} +4 -4
- package/dist/{list.handler-BiY5NFWd.mjs → list.handler-Dz-Yeijp.mjs} +3 -3
- package/dist/list2.handler-BpqKZTZk.mjs +99 -0
- package/dist/{listen-C_7Rgwkb.mjs → listen-CeNwufij.mjs} +3 -3
- package/dist/{listen.handler-dJgorIzr.mjs → listen.handler-CfRoaOwu.mjs} +4 -4
- package/dist/{logs-B9YMhUGt.mjs → logs-B7k2_W1R.mjs} +3 -3
- package/dist/{logs.handler-DGGVPMOX.mjs → logs.handler-BIqJ0FED.mjs} +1 -1
- package/dist/{logs.handler-BfjCsAyq.mjs → logs.handler-CSqOzxCU.mjs} +26 -29
- package/dist/{members.add.handler-DSRCRxsI.mjs → members.add.handler-CBjoA6vG.mjs} +6 -5
- package/dist/{members.invite.handler-BNpHn1dY.mjs → members.invite.handler-D8KcKJ9Y.mjs} +6 -5
- package/dist/{members.list.handler-Bn9LJEPG.mjs → members.list.handler-CB_qSJK0.mjs} +6 -5
- package/dist/{members.remove.handler-Dkr2t_tX.mjs → members.remove.handler-DNhO81mo.mjs} +6 -5
- package/dist/{members.update.handler-DBtUYuAY.mjs → members.update.handler-Bjdk_uz4.mjs} +6 -5
- package/dist/{operations-CF2nUiBs.mjs → operations-HHwoArwE.mjs} +5 -5
- package/dist/org-context-CNh2p2DP.mjs +112 -0
- package/dist/{org-DOH7YHk2.mjs → org-f-qo68Em.mjs} +35 -28
- package/dist/org-output-BcI17Uan.mjs +64 -0
- package/dist/{orgs.create.handler-BO70zIdp.mjs → orgs.create.handler-DOE9ZIed.mjs} +4 -4
- package/dist/{orgs.get.handler-BuGg5bc9.mjs → orgs.get.handler-sWErVI7r.mjs} +4 -4
- package/dist/{orgs.list.handler--5HutMkl.mjs → orgs.list.handler-Cp-mXsA0.mjs} +4 -4
- package/dist/{output-BWcVRt-T.mjs → output-BPydP5tG.mjs} +1 -1
- package/dist/{package-manager-CvY4IW7X.mjs → package-manager-BwJ6muas.mjs} +27 -2
- package/dist/{paused.handler-DHvxz-cC.mjs → paused.handler-DWdoKYY8.mjs} +20 -33
- package/dist/{projects-C5GZ5Jrf.mjs → projects-CCC36zbJ.mjs} +11 -9
- package/dist/{register.handler-CKMZ2WmD.mjs → register.handler-Dxae5iq8.mjs} +3 -3
- package/dist/{render-credential-Bn15FEUC.mjs → render-credential-D-H1ECDt.mjs} +1 -1
- package/dist/{render-operation-DWbMwhfc.mjs → render-operation-iF7Wblv2.mjs} +2 -2
- package/dist/{requirements.handler-B5rqCjMu.mjs → requirements.handler-Bg3mRnER.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-CoCN9xfi.mjs} +24 -8
- package/dist/{run-polling-DawiBus-.mjs → run-polling-htHWhG0T.mjs} +97 -14
- package/dist/{run.handler-BG7xitEK.mjs → run.handler-C-CM-xZG.mjs} +42 -30
- package/dist/{runs-swYYBT6C.mjs → runs-BRJPNq4B.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-CQMgdp51.mjs} +3 -3
- package/dist/{search.handler-BVDsYZlJ.mjs → search.handler-Dn5jjyF-.mjs} +6 -6
- package/dist/show.handler-CdZF0aao.mjs +79 -0
- package/dist/{show.handler-CsidInW8.mjs → show.handler-D3nDc1MJ.mjs} +5 -5
- package/dist/{show.handler-CwwnCmbp.mjs → show.handler-DUDxnNiZ.mjs} +6 -6
- package/dist/{skill-installer-DG8kTaQR.mjs → skill-installer-DYNH_MJT.mjs} +3 -1
- package/dist/{skills-sync.handler-yRmi3OgP.mjs → skills-sync.handler-_LVhIMRH.mjs} +13 -7
- package/dist/{skills.command-COYd3k4Z.mjs → skills.command-DSHGwXPX.mjs} +5 -5
- package/dist/skills.handler-DqLXJepA.mjs +9 -0
- package/dist/{spinner-progress-lrKDs4YF.mjs → spinner-progress-fLaD0sjH.mjs} +1 -1
- package/dist/status.handler-1hEzX5oB.mjs +72 -0
- package/dist/{switch.handler-BwYndsP-.mjs → switch.handler-D135WwfB.mjs} +17 -4
- package/dist/{sync-6fZkIUtn.mjs → sync-CFScllh3.mjs} +2 -2
- package/dist/{sync.handler-Ctr-cN9X.mjs → sync.handler-x8v53-TT.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-Dx4RXoLZ.mjs} +5 -5
- package/dist/{test.handler-DLaxrJ9V.mjs → test.handler-BmvL5vF8.mjs} +19 -16
- package/dist/{test.handler-BCW0YBPd.mjs → test.handler-Mz_XOnJl.mjs} +2 -2
- package/dist/{tool.handler-8qNmgdRe.mjs → tool.handler-DsbpocYI.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-C9G6HksL.mjs} +4 -8
- package/dist/upgrade.handler-DsFeAFF4.mjs +99 -0
- package/dist/{upload.handler-B7xle1oX.mjs → upload.handler-DscKDQ63.mjs} +9 -9
- package/dist/{users.get.handler-C4t1vXwi.mjs → users.get.handler-CaUv_maM.mjs} +4 -4
- package/dist/{users.list.handler-Dvl90grq.mjs → users.list.handler-DzsOvAtd.mjs} +4 -4
- package/dist/{users.set-role.handler-Djw1_VGf.mjs → users.set-role.handler-koRzA0V9.mjs} +4 -4
- package/dist/{validate.handler-Drf_lssw.mjs → validate.handler-BkBsS8BL.mjs} +171 -26
- package/dist/{workflow-build-Begvjfq8.mjs → workflow-build-Db6at6IA.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-B8VG6nKg.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/show.handler-nkK6Erbb.mjs +0 -31
- 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 { t as createTypedCommand } from "./commander-
|
|
4
|
-
import { t as SKILL_INSTALL_METHODS } from "./types-
|
|
3
|
+
import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
|
|
4
|
+
import { t as SKILL_INSTALL_METHODS } from "./types-Cb0eWmUU.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/init/init.command.ts
|
|
7
7
|
const InitOptionsSchema = z.object({
|
|
@@ -50,7 +50,7 @@ function createInitCommand() {
|
|
|
50
50
|
description: "Initialize a Keystroke project (creates keystroke.config.ts)",
|
|
51
51
|
schema: InitOptionsSchema,
|
|
52
52
|
optionsConfig: INIT_OPTIONS_CONFIG,
|
|
53
|
-
loadHandler: async () => (await import("./init.handler-
|
|
53
|
+
loadHandler: async () => (await import("./init.handler-BjLAIAmm.mjs")).handleInit
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
//#endregion
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as projects } from "./dist-
|
|
3
|
+
import { A as CliExitError, P as throwReportedCliExit, i as fetchLatestNpmPackageVersion, p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as projects } from "./dist-B5jy238v.mjs";
|
|
5
5
|
import { a as writeProjectConfig, i as readProjectConfig, r as getProjectConfigPath } from "./project-config-DudGRFPO.mjs";
|
|
6
|
-
import { i as requireClient } from "./context-
|
|
7
|
-
import {
|
|
8
|
-
import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-
|
|
6
|
+
import { i as requireClient } from "./context-Brc9VGV9.mjs";
|
|
7
|
+
import { n as buildProjectInstallCommand, o as resolvePackageManagerResolution, s as runProjectInstall } from "./package-manager-BwJ6muas.mjs";
|
|
8
|
+
import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-DYNH_MJT.mjs";
|
|
9
9
|
import { createRequire } from "node:module";
|
|
10
10
|
import path from "node:path";
|
|
11
11
|
import { access, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -1,11 +1,12 @@
|
|
|
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, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { P as throwReportedCliExit, S as toErrorMessage, n as style, p as ui, t as ANSI } from "./keystroke.mjs";
|
|
4
|
+
import { i as projects } from "./dist-B5jy238v.mjs";
|
|
5
|
+
import { i as writeJson } from "./output-BPydP5tG.mjs";
|
|
6
|
+
import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Brc9VGV9.mjs";
|
|
7
|
+
import { s as resolveTypeHint } from "./schema-display-sZ6ConJd.mjs";
|
|
8
|
+
import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-CknsHF5T.mjs";
|
|
9
|
+
import { r as requireLocalWorkflowManifest, t as WORKFLOW_ID_COMMANDS } from "./authored-workflow-ref-BRCQgyWl.mjs";
|
|
9
10
|
import dayjs from "dayjs";
|
|
10
11
|
//#region src/commands/workflows/inspect/inspect-display.ts
|
|
11
12
|
function formatBuildTimestamp(iso) {
|
|
@@ -19,6 +20,7 @@ function renderManifestInspect(manifest, source, version) {
|
|
|
19
20
|
ui.br();
|
|
20
21
|
}
|
|
21
22
|
ui.text(style(` ${manifest.name}`, `${ANSI.bold}${ANSI.cyan}`));
|
|
23
|
+
if (manifest.id) ui.text(style(` id: ${manifest.id}`, ANSI.dim));
|
|
22
24
|
if (manifest.description) ui.text(style(` ${manifest.description}`, ANSI.dim));
|
|
23
25
|
ui.br();
|
|
24
26
|
ui.text(style(" Input", ANSI.bold));
|
|
@@ -102,9 +104,13 @@ async function handleWorkflowsInspect(options, ctx) {
|
|
|
102
104
|
return handleInspectLocal(options, ctx);
|
|
103
105
|
}
|
|
104
106
|
async function handleInspectLocal(options, ctx) {
|
|
105
|
-
const resolved = await
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
const resolved = await requireLocalWorkflowManifest({
|
|
108
|
+
authoredWorkflowId: options.workflow,
|
|
109
|
+
path: options.path,
|
|
110
|
+
command: WORKFLOW_ID_COMMANDS.inspect,
|
|
111
|
+
jsonMode: ctx.jsonMode
|
|
112
|
+
});
|
|
113
|
+
projects.track(resolved.workflowsDir);
|
|
108
114
|
if (ctx.jsonMode) {
|
|
109
115
|
writeJson(resolved.manifest);
|
|
110
116
|
return;
|
|
@@ -112,7 +118,12 @@ async function handleInspectLocal(options, ctx) {
|
|
|
112
118
|
renderManifestInspect(resolved.manifest, "local");
|
|
113
119
|
}
|
|
114
120
|
async function handleInspectDeployed(options, ctx) {
|
|
115
|
-
const resolved = await
|
|
121
|
+
const resolved = await requireLocalWorkflowManifest({
|
|
122
|
+
authoredWorkflowId: options.workflow,
|
|
123
|
+
path: options.path,
|
|
124
|
+
command: WORKFLOW_ID_COMMANDS.inspectDeployed,
|
|
125
|
+
jsonMode: ctx.jsonMode
|
|
126
|
+
});
|
|
116
127
|
projects.track(resolved.workflowsDir);
|
|
117
128
|
const client = requireClient(ctx);
|
|
118
129
|
await assertProjectConfigMatchesAuthenticatedOrg(client, { organizationId: resolved.organizationId });
|
|
@@ -132,15 +143,15 @@ async function handleInspectDeployed(options, ctx) {
|
|
|
132
143
|
throwReportedCliExit("This project has no current deployment.");
|
|
133
144
|
}
|
|
134
145
|
if (deploymentLookup.status === "missingWorkflow") {
|
|
135
|
-
ui.error(`Workflow "${
|
|
146
|
+
ui.error(`Workflow "${resolved.authoredWorkflowId}" is not part of the current deployment.`);
|
|
136
147
|
ui.hint("Run `keystroke deploy` to include it in the current deployment, then try again.");
|
|
137
|
-
throwReportedCliExit(`Workflow "${
|
|
148
|
+
throwReportedCliExit(`Workflow "${resolved.authoredWorkflowId}" is not part of the current deployment.`);
|
|
138
149
|
}
|
|
139
150
|
if (ctx.jsonMode) {
|
|
140
151
|
writeJson(deploymentLookup.workflow.manifest);
|
|
141
152
|
return;
|
|
142
153
|
}
|
|
143
|
-
renderManifestInspect(deploymentLookup.workflow.manifest, "deployed");
|
|
154
|
+
renderManifestInspect(deploymentLookup.workflow.manifest, "deployed", deploymentLookup.workflow.deploymentNumber);
|
|
144
155
|
}
|
|
145
156
|
//#endregion
|
|
146
157
|
export { handleWorkflowsInspect };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { a as writeJsonError } from "./output-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
3
|
+
import { A as CliExitError, P as throwReportedCliExit, S as toErrorMessage, b as isAuthError, g as REAUTH_HINT, p as ui, x as isNetworkError } from "./keystroke.mjs";
|
|
4
|
+
import { a as writeJsonError } from "./output-BPydP5tG.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-Brc9VGV9.mjs";
|
|
6
6
|
//#region src/lib/integration-catalog.ts
|
|
7
7
|
const catalogCache = /* @__PURE__ */ new WeakMap();
|
|
8
8
|
function buildView(entries) {
|
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
5
|
-
import { t as ConnectionKindValues } from "./api-
|
|
3
|
+
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BPydP5tG.mjs";
|
|
4
|
+
import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
|
|
5
|
+
import { t as ConnectionKindValues } from "./api-sWkB_Wta.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region ../../packages/shared-types/src/official-providers/index.ts
|
|
8
8
|
const officialProviderRegistry = {
|
|
@@ -158,14 +158,14 @@ function createIntegrationsCommand() {
|
|
|
158
158
|
description: "List Keystroke integrations available to your organization",
|
|
159
159
|
schema: IntegrationsListOptionsSchema,
|
|
160
160
|
optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
|
|
161
|
-
loadHandler: async () => (await import("./list.handler-
|
|
161
|
+
loadHandler: async () => (await import("./list.handler-Cuw1fWO_.mjs")).handleIntegrationsList,
|
|
162
162
|
subcommands: [
|
|
163
163
|
createTypedCommand({
|
|
164
164
|
name: "list",
|
|
165
165
|
description: "List Keystroke integrations available to your organization",
|
|
166
166
|
schema: IntegrationsListOptionsSchema,
|
|
167
167
|
optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
|
|
168
|
-
loadHandler: async () => (await import("./list.handler-
|
|
168
|
+
loadHandler: async () => (await import("./list.handler-Cuw1fWO_.mjs")).handleIntegrationsList
|
|
169
169
|
}),
|
|
170
170
|
createTypedCommand({
|
|
171
171
|
name: "show",
|
|
@@ -177,7 +177,7 @@ function createIntegrationsCommand() {
|
|
|
177
177
|
description: "Integration id, e.g. aws-s3",
|
|
178
178
|
key: "id"
|
|
179
179
|
},
|
|
180
|
-
loadHandler: async () => (await import("./show.handler-
|
|
180
|
+
loadHandler: async () => (await import("./show.handler-CdZF0aao.mjs")).handleIntegrationShow
|
|
181
181
|
}),
|
|
182
182
|
createTypedCommand({
|
|
183
183
|
name: "register",
|
|
@@ -185,7 +185,7 @@ function createIntegrationsCommand() {
|
|
|
185
185
|
schema: IntegrationsRegisterOptionsSchema,
|
|
186
186
|
optionsConfig: INTEGRATIONS_REGISTER_OPTIONS_CONFIG,
|
|
187
187
|
handler: async (opts, ctx) => {
|
|
188
|
-
const { handleIntegrationsRegister } = await import("./register.handler-
|
|
188
|
+
const { handleIntegrationsRegister } = await import("./register.handler-Dxae5iq8.mjs");
|
|
189
189
|
await handleIntegrationsRegister({
|
|
190
190
|
integrationId: opts.integrationId,
|
|
191
191
|
clientAppCredentialSetId: opts.clientApp,
|
|
@@ -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-BPydP5tG.mjs";
|
|
4
|
+
import { t as createTypedCommand } from "./commander-B_8QwPpe.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/invites/invites.command.ts
|
|
7
7
|
const InvitesListOptionsSchema = JsonOptionSchema;
|
|
@@ -19,13 +19,13 @@ function createInvitesCommand() {
|
|
|
19
19
|
description: "Manage invitations for the current user",
|
|
20
20
|
schema: InvitesListOptionsSchema,
|
|
21
21
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
22
|
-
loadHandler: async () => (await import("./list.handler-
|
|
22
|
+
loadHandler: async () => (await import("./list.handler-DUTNS8du.mjs")).handleInvitesList,
|
|
23
23
|
subcommands: [createTypedCommand({
|
|
24
24
|
name: "list",
|
|
25
25
|
description: "List pending invites for the current user",
|
|
26
26
|
schema: InvitesListOptionsSchema,
|
|
27
27
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
28
|
-
loadHandler: async () => (await import("./list.handler-
|
|
28
|
+
loadHandler: async () => (await import("./list.handler-DUTNS8du.mjs")).handleInvitesList
|
|
29
29
|
}), createTypedCommand({
|
|
30
30
|
name: "accept",
|
|
31
31
|
description: "Accept a pending invite",
|
|
@@ -36,7 +36,7 @@ function createInvitesCommand() {
|
|
|
36
36
|
description: "Invite ID to accept",
|
|
37
37
|
key: "inviteId"
|
|
38
38
|
},
|
|
39
|
-
loadHandler: async () => (await import("./accept.handler-
|
|
39
|
+
loadHandler: async () => (await import("./accept.handler-CykuBpt6.mjs")).handleInvitesAccept
|
|
40
40
|
})]
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
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 {
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-BPydP5tG.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-Brc9VGV9.mjs";
|
|
6
|
+
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
|
|
7
|
+
import { s as requireOrganizationId } from "./org-context-CNh2p2DP.mjs";
|
|
7
8
|
import Table from "cli-table3";
|
|
8
9
|
//#region src/commands/org/invites.list.handler.ts
|
|
9
10
|
async function handleOrgInvitesList(_options, ctx) {
|
|
10
11
|
const client = requireClient(ctx);
|
|
11
|
-
const organizationId = requireOrganizationId(ctx);
|
|
12
|
+
const organizationId = await requireOrganizationId(ctx);
|
|
12
13
|
try {
|
|
13
14
|
const result = await client.organizations.invites.list(organizationId);
|
|
14
15
|
if (isIamJsonMode(_options, ctx)) {
|
|
@@ -1,13 +1,14 @@
|
|
|
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 {
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-BPydP5tG.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-Brc9VGV9.mjs";
|
|
6
|
+
import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
|
|
7
|
+
import { s as requireOrganizationId } from "./org-context-CNh2p2DP.mjs";
|
|
7
8
|
//#region src/commands/org/invites.resend.handler.ts
|
|
8
9
|
async function handleOrgInvitesResend(options, ctx) {
|
|
9
10
|
const client = requireClient(ctx);
|
|
10
|
-
const organizationId = requireOrganizationId(ctx);
|
|
11
|
+
const organizationId = await requireOrganizationId(ctx);
|
|
11
12
|
try {
|
|
12
13
|
const result = await client.organizations.invites.resend(organizationId, options.inviteId);
|
|
13
14
|
if (isIamJsonMode(options, ctx)) {
|
|
@@ -1,13 +1,14 @@
|
|
|
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 {
|
|
3
|
+
import { p as ui } from "./keystroke.mjs";
|
|
4
|
+
import { i as writeJson } from "./output-BPydP5tG.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-Brc9VGV9.mjs";
|
|
6
|
+
import { n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-D01Gw8-M.mjs";
|
|
7
|
+
import { s as requireOrganizationId } from "./org-context-CNh2p2DP.mjs";
|
|
7
8
|
//#region src/commands/org/invites.revoke.handler.ts
|
|
8
9
|
async function handleOrgInvitesRevoke(options, ctx) {
|
|
9
10
|
const client = requireClient(ctx);
|
|
10
|
-
const organizationId = requireOrganizationId(ctx);
|
|
11
|
+
const organizationId = await requireOrganizationId(ctx);
|
|
11
12
|
requireConfirmation({
|
|
12
13
|
confirmed: options.confirm,
|
|
13
14
|
message: "Revoking an invite prevents it from being accepted.",
|
package/dist/keystroke.mjs
CHANGED
|
@@ -9,10 +9,10 @@ import * as fsPromises from "node:fs/promises";
|
|
|
9
9
|
import * as fs from "node:fs";
|
|
10
10
|
import { existsSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { Command, CommanderError, Option } from "commander";
|
|
12
|
+
import { log } from "@clack/prompts";
|
|
12
13
|
import { fileURLToPath } from "node:url";
|
|
13
14
|
import { config } from "dotenv";
|
|
14
15
|
import { z } from "zod";
|
|
15
|
-
import { log } from "@clack/prompts";
|
|
16
16
|
//#region ../../packages/local-memory/dist/logger/index.mjs
|
|
17
17
|
const LOGS_DIR = "logs";
|
|
18
18
|
const LOG_FILE = "cli.jsonl";
|
|
@@ -521,7 +521,7 @@ const logger = {
|
|
|
521
521
|
};
|
|
522
522
|
//#endregion
|
|
523
523
|
//#region package.json
|
|
524
|
-
var version = "0.0.
|
|
524
|
+
var version = "0.0.38";
|
|
525
525
|
//#endregion
|
|
526
526
|
//#region src/command-registry.ts
|
|
527
527
|
const ROOT_OPTIONS_WITH_VALUES$1 = new Set([
|
|
@@ -533,92 +533,92 @@ const ROOT_VERSION_FLAGS = new Set(["-V", "--version"]);
|
|
|
533
533
|
const lazyCommandDefinitions = [
|
|
534
534
|
{
|
|
535
535
|
name: "agents",
|
|
536
|
-
loadCommand: async () => (await import("./agents-
|
|
536
|
+
loadCommand: async () => (await import("./agents-BpyuvM9p.mjs")).createAgentsCommand()
|
|
537
537
|
},
|
|
538
538
|
{
|
|
539
539
|
name: "admin",
|
|
540
|
-
loadCommand: async () => (await import("./admin-
|
|
540
|
+
loadCommand: async () => (await import("./admin-gRjPC3eD.mjs")).createAdminCommand()
|
|
541
541
|
},
|
|
542
542
|
{
|
|
543
543
|
name: "api-keys",
|
|
544
|
-
loadCommand: async () => (await import("./api-keys-
|
|
544
|
+
loadCommand: async () => (await import("./api-keys-BSKhdD_x.mjs")).createApiKeysCommand()
|
|
545
545
|
},
|
|
546
546
|
{
|
|
547
547
|
name: "auth",
|
|
548
|
-
loadCommand: async () => (await import("./auth-
|
|
548
|
+
loadCommand: async () => (await import("./auth-DCgToFf5.mjs")).createAuthCommand()
|
|
549
549
|
},
|
|
550
550
|
{
|
|
551
551
|
name: "connect",
|
|
552
|
-
loadCommand: async () => (await import("./connect-
|
|
552
|
+
loadCommand: async () => (await import("./connect-DV9lhP6C.mjs")).createConnectCommand()
|
|
553
553
|
},
|
|
554
554
|
{
|
|
555
555
|
name: "credentials",
|
|
556
|
-
loadCommand: async () => (await import("./credentials-
|
|
556
|
+
loadCommand: async () => (await import("./credentials-UDrvrKj-.mjs")).createCredentialsCommand(),
|
|
557
557
|
copyInheritedSettings: true
|
|
558
558
|
},
|
|
559
559
|
{
|
|
560
560
|
name: "org",
|
|
561
|
-
loadCommand: async () => (await import("./org-
|
|
561
|
+
loadCommand: async () => (await import("./org-f-qo68Em.mjs")).createOrgCommand()
|
|
562
562
|
},
|
|
563
563
|
{
|
|
564
564
|
name: "deploy",
|
|
565
|
-
loadCommand: async () => (await import("./deploy-
|
|
565
|
+
loadCommand: async () => (await import("./deploy-DgWPlEKO.mjs")).createDeployCommand()
|
|
566
566
|
},
|
|
567
567
|
{
|
|
568
568
|
name: "init",
|
|
569
|
-
loadCommand: async () => (await import("./init-
|
|
569
|
+
loadCommand: async () => (await import("./init-Mpe_8lA_.mjs")).createInitCommand()
|
|
570
570
|
},
|
|
571
571
|
{
|
|
572
572
|
name: "integrations",
|
|
573
|
-
loadCommand: async () => (await import("./integrations-
|
|
573
|
+
loadCommand: async () => (await import("./integrations-D_IH5Ud1.mjs")).createIntegrationsCommand()
|
|
574
574
|
},
|
|
575
575
|
{
|
|
576
576
|
name: "invites",
|
|
577
|
-
loadCommand: async () => (await import("./invites-
|
|
577
|
+
loadCommand: async () => (await import("./invites-CWWz4wmY.mjs")).createInvitesCommand()
|
|
578
578
|
},
|
|
579
579
|
{
|
|
580
580
|
name: "logs",
|
|
581
|
-
loadCommand: async () => (await import("./logs-
|
|
581
|
+
loadCommand: async () => (await import("./logs-B7k2_W1R.mjs")).createLogsCommand()
|
|
582
582
|
},
|
|
583
583
|
{
|
|
584
584
|
name: "listen",
|
|
585
|
-
loadCommand: async () => (await import("./listen-
|
|
585
|
+
loadCommand: async () => (await import("./listen-CeNwufij.mjs")).createListenCommand()
|
|
586
586
|
},
|
|
587
587
|
{
|
|
588
588
|
name: "operations",
|
|
589
|
-
loadCommand: async () => (await import("./operations-
|
|
589
|
+
loadCommand: async () => (await import("./operations-HHwoArwE.mjs")).createOperationsCommand()
|
|
590
590
|
},
|
|
591
591
|
{
|
|
592
592
|
name: "projects",
|
|
593
|
-
loadCommand: async () => (await import("./projects-
|
|
593
|
+
loadCommand: async () => (await import("./projects-CCC36zbJ.mjs")).createProjectsCommand()
|
|
594
594
|
},
|
|
595
595
|
{
|
|
596
596
|
name: "runs",
|
|
597
|
-
loadCommand: async () => (await import("./runs-
|
|
597
|
+
loadCommand: async () => (await import("./runs-BRJPNq4B.mjs")).createRunsCommand()
|
|
598
598
|
},
|
|
599
599
|
{
|
|
600
600
|
name: "search",
|
|
601
|
-
loadCommand: async () => (await import("./search-
|
|
601
|
+
loadCommand: async () => (await import("./search-CQMgdp51.mjs")).createSearchCommand()
|
|
602
602
|
},
|
|
603
603
|
{
|
|
604
604
|
name: "skills",
|
|
605
|
-
loadCommand: async () => (await import("./skills.command-
|
|
605
|
+
loadCommand: async () => (await import("./skills.command-DSHGwXPX.mjs")).createSkillsCommand()
|
|
606
606
|
},
|
|
607
607
|
{
|
|
608
608
|
name: "sync",
|
|
609
|
-
loadCommand: async () => (await import("./sync-
|
|
609
|
+
loadCommand: async () => (await import("./sync-CFScllh3.mjs")).createSyncCommand()
|
|
610
610
|
},
|
|
611
611
|
{
|
|
612
612
|
name: "test",
|
|
613
|
-
loadCommand: async () => (await import("./test-
|
|
613
|
+
loadCommand: async () => (await import("./test-Dx4RXoLZ.mjs")).createTestCommand()
|
|
614
614
|
},
|
|
615
615
|
{
|
|
616
616
|
name: "upgrade",
|
|
617
|
-
loadCommand: async () => (await import("./upgrade-
|
|
617
|
+
loadCommand: async () => (await import("./upgrade-C9G6HksL.mjs")).createUpgradeCommand()
|
|
618
618
|
},
|
|
619
619
|
{
|
|
620
620
|
name: "workflows",
|
|
621
|
-
loadCommand: async () => (await import("./workflows-
|
|
621
|
+
loadCommand: async () => (await import("./workflows-B8VG6nKg.mjs")).createWorkflowsCommand()
|
|
622
622
|
}
|
|
623
623
|
];
|
|
624
624
|
function selectCommandRegistration(argv, commandNames = new Set(lazyCommandDefinitions.map((definition) => definition.name))) {
|
|
@@ -800,15 +800,27 @@ function getHttpStatus(error) {
|
|
|
800
800
|
if (!isHttpError(error)) return null;
|
|
801
801
|
return error.response.status;
|
|
802
802
|
}
|
|
803
|
-
async function
|
|
804
|
-
if (!isHttpError(error)) return null;
|
|
805
|
-
if (typeof error.response.clone !== "function") return null;
|
|
803
|
+
async function readHttpErrorJson(error) {
|
|
806
804
|
try {
|
|
807
|
-
|
|
808
|
-
|
|
805
|
+
if (typeof error.response.json === "function") return await error.response.json();
|
|
806
|
+
if (typeof error.response.clone === "function") return await error.response.clone().json();
|
|
809
807
|
} catch {
|
|
810
808
|
return null;
|
|
811
809
|
}
|
|
810
|
+
return null;
|
|
811
|
+
}
|
|
812
|
+
async function getApiErrorCode(error) {
|
|
813
|
+
if (!isHttpError(error)) return null;
|
|
814
|
+
const body = await readHttpErrorJson(error);
|
|
815
|
+
return typeof body?.errorCode === "string" ? body.errorCode : null;
|
|
816
|
+
}
|
|
817
|
+
/** Parses a server JSON error body (`message` preferred, then `error`). */
|
|
818
|
+
async function getApiErrorMessage(error) {
|
|
819
|
+
if (!isHttpError(error)) return null;
|
|
820
|
+
const body = await readHttpErrorJson(error);
|
|
821
|
+
if (typeof body?.message === "string" && body.message.length > 0) return body.message;
|
|
822
|
+
if (typeof body?.error === "string" && body.error.length > 0) return body.error;
|
|
823
|
+
return null;
|
|
812
824
|
}
|
|
813
825
|
//#endregion
|
|
814
826
|
//#region src/lib/cli-telemetry.ts
|
|
@@ -927,6 +939,80 @@ async function flushCliTelemetryForExit(exitCode) {
|
|
|
927
939
|
});
|
|
928
940
|
}
|
|
929
941
|
//#endregion
|
|
942
|
+
//#region src/lib/ui.ts
|
|
943
|
+
const ui = {
|
|
944
|
+
/** Blank line separator */
|
|
945
|
+
br: () => {
|
|
946
|
+
originalConsole.info("");
|
|
947
|
+
logger.info("");
|
|
948
|
+
},
|
|
949
|
+
/** Primary informational text — raw, no prefix (used for tables, structured output) */
|
|
950
|
+
text: (msg) => {
|
|
951
|
+
originalConsole.info(msg);
|
|
952
|
+
logger.info(msg);
|
|
953
|
+
},
|
|
954
|
+
/** Section header */
|
|
955
|
+
header: (msg) => {
|
|
956
|
+
log.info(msg);
|
|
957
|
+
logger.info(msg);
|
|
958
|
+
},
|
|
959
|
+
/** Success message */
|
|
960
|
+
success: (msg) => {
|
|
961
|
+
log.success(msg);
|
|
962
|
+
logger.info(msg);
|
|
963
|
+
},
|
|
964
|
+
/** Warning message */
|
|
965
|
+
warn: (msg) => {
|
|
966
|
+
log.warn(msg);
|
|
967
|
+
logger.warn(msg);
|
|
968
|
+
},
|
|
969
|
+
/** Error message */
|
|
970
|
+
error: (msg) => {
|
|
971
|
+
log.error(msg);
|
|
972
|
+
logger.error(msg);
|
|
973
|
+
},
|
|
974
|
+
/** Secondary/hint text */
|
|
975
|
+
hint: (msg) => {
|
|
976
|
+
log.message(msg);
|
|
977
|
+
logger.info(msg);
|
|
978
|
+
}
|
|
979
|
+
};
|
|
980
|
+
//#endregion
|
|
981
|
+
//#region src/lib/commander-errors.ts
|
|
982
|
+
/** Suppress Commander's default stderr; errors are reported in `main()` instead. */
|
|
983
|
+
const SUPPRESS_COMMANDER_STDERR = { writeErr: () => {} };
|
|
984
|
+
function applyCommanderOutput(command) {
|
|
985
|
+
command.configureOutput(SUPPRESS_COMMANDER_STDERR);
|
|
986
|
+
}
|
|
987
|
+
/**
|
|
988
|
+
* Maps Commander parse failures to Keystroke-styled messages and hints. Callers
|
|
989
|
+
* must only invoke this for real failures (`exitCode !== 0`); informational
|
|
990
|
+
* exits like `--help` / `--version` are handled by the catch block in `main`.
|
|
991
|
+
* Returns true when the error was reported.
|
|
992
|
+
*/
|
|
993
|
+
function reportCommanderError(error) {
|
|
994
|
+
if (error.code === "commander.unknownOption") {
|
|
995
|
+
const option = error.message.match(/option '([^']+)'/)?.[1] ?? "flag";
|
|
996
|
+
ui.error(`Unknown option ${option}.`);
|
|
997
|
+
if (option === "--json") ui.hint("This command may not support --json. Run `<command> --help` to see available flags.");
|
|
998
|
+
else ui.hint("Run `keystroke <command> --help` to see available options.");
|
|
999
|
+
return true;
|
|
1000
|
+
}
|
|
1001
|
+
if (error.code === "commander.excessArguments" || error.code === "commander.unknownCommand") {
|
|
1002
|
+
ui.error("Unrecognized command or argument.");
|
|
1003
|
+
ui.hint("Run `keystroke <command> --help` to see available subcommands.");
|
|
1004
|
+
return true;
|
|
1005
|
+
}
|
|
1006
|
+
if (error.code === "commander.missingArgument") {
|
|
1007
|
+
ui.error(error.message);
|
|
1008
|
+
ui.hint("Run `keystroke <command> --help` for usage.");
|
|
1009
|
+
return true;
|
|
1010
|
+
}
|
|
1011
|
+
ui.error(error.message.replace(/^error:\s*/i, ""));
|
|
1012
|
+
ui.hint("Run `keystroke --help` for usage.");
|
|
1013
|
+
return true;
|
|
1014
|
+
}
|
|
1015
|
+
//#endregion
|
|
930
1016
|
//#region ../../packages/env-utils/dist/index.mjs
|
|
931
1017
|
const __filename = fileURLToPath(import.meta.url);
|
|
932
1018
|
const __dirname = path.dirname(__filename);
|
|
@@ -1095,44 +1181,8 @@ function createHiddenGlobalOptions() {
|
|
|
1095
1181
|
return Object.values(GLOBAL_OPTIONS_CONFIG).map((cfg) => new Option(cfg.flag).hideHelp());
|
|
1096
1182
|
}
|
|
1097
1183
|
//#endregion
|
|
1098
|
-
//#region src/lib/
|
|
1099
|
-
const
|
|
1100
|
-
/** Blank line separator */
|
|
1101
|
-
br: () => {
|
|
1102
|
-
originalConsole.info("");
|
|
1103
|
-
logger.info("");
|
|
1104
|
-
},
|
|
1105
|
-
/** Primary informational text — raw, no prefix (used for tables, structured output) */
|
|
1106
|
-
text: (msg) => {
|
|
1107
|
-
originalConsole.info(msg);
|
|
1108
|
-
logger.info(msg);
|
|
1109
|
-
},
|
|
1110
|
-
/** Section header */
|
|
1111
|
-
header: (msg) => {
|
|
1112
|
-
log.info(msg);
|
|
1113
|
-
logger.info(msg);
|
|
1114
|
-
},
|
|
1115
|
-
/** Success message */
|
|
1116
|
-
success: (msg) => {
|
|
1117
|
-
log.success(msg);
|
|
1118
|
-
logger.info(msg);
|
|
1119
|
-
},
|
|
1120
|
-
/** Warning message */
|
|
1121
|
-
warn: (msg) => {
|
|
1122
|
-
log.warn(msg);
|
|
1123
|
-
logger.warn(msg);
|
|
1124
|
-
},
|
|
1125
|
-
/** Error message */
|
|
1126
|
-
error: (msg) => {
|
|
1127
|
-
log.error(msg);
|
|
1128
|
-
logger.error(msg);
|
|
1129
|
-
},
|
|
1130
|
-
/** Secondary/hint text */
|
|
1131
|
-
hint: (msg) => {
|
|
1132
|
-
log.message(msg);
|
|
1133
|
-
logger.info(msg);
|
|
1134
|
-
}
|
|
1135
|
-
};
|
|
1184
|
+
//#region src/lib/cli-package.ts
|
|
1185
|
+
const CLI_PACKAGE_NAME = "@keystrokehq/cli";
|
|
1136
1186
|
//#endregion
|
|
1137
1187
|
//#region src/lib/npm-registry.ts
|
|
1138
1188
|
const NPM_REGISTRY_BASE_URL = "https://registry.npmjs.org";
|
|
@@ -1183,7 +1233,6 @@ function style(text, color) {
|
|
|
1183
1233
|
}
|
|
1184
1234
|
//#endregion
|
|
1185
1235
|
//#region src/lib/update-notice.ts
|
|
1186
|
-
const CLI_PACKAGE_NAME = "@keystrokehq/cli";
|
|
1187
1236
|
const DEFAULT_TIMEOUT_MS = 750;
|
|
1188
1237
|
const ROOT_OPTIONS_WITH_VALUES = new Set([
|
|
1189
1238
|
"--api-key",
|
|
@@ -1288,26 +1337,23 @@ async function allowBufferedOutputToFlush() {
|
|
|
1288
1337
|
function shouldLogCliStartup(argv) {
|
|
1289
1338
|
return argv[0] !== "logs";
|
|
1290
1339
|
}
|
|
1291
|
-
function resolveCliExitCode(error) {
|
|
1292
|
-
if (error instanceof CommanderError) return error.exitCode;
|
|
1293
|
-
if (error instanceof CliExitError) return error.exitCode;
|
|
1294
|
-
return 1;
|
|
1295
|
-
}
|
|
1296
1340
|
async function runCli() {
|
|
1341
|
+
const cliArgs = process.argv.slice(2);
|
|
1297
1342
|
await initLogger();
|
|
1298
|
-
if (
|
|
1299
|
-
if (shouldLogCliStartup(
|
|
1300
|
-
argv:
|
|
1343
|
+
if (cliArgs.includes("--debug")) setDebug(true);
|
|
1344
|
+
if (shouldLogCliStartup(cliArgs)) logger.info("CLI started", {
|
|
1345
|
+
argv: cliArgs,
|
|
1301
1346
|
runMode: getRunMode()
|
|
1302
1347
|
});
|
|
1303
1348
|
const program = new Command().name("keystroke").description("Keystroke CLI - Headless workflow management").version(version).enablePositionalOptions();
|
|
1304
1349
|
program.exitOverride();
|
|
1350
|
+
program.configureOutput(SUPPRESS_COMMANDER_STDERR);
|
|
1305
1351
|
for (const cfg of Object.values(GLOBAL_OPTIONS_CONFIG)) program.option(cfg.flag, cfg.description);
|
|
1306
|
-
await registerCommandsForArgv(program,
|
|
1352
|
+
await registerCommandsForArgv(program, cliArgs);
|
|
1307
1353
|
registerCliTelemetryHooks(program);
|
|
1308
1354
|
await maybeShowCliUpdateNotice({
|
|
1309
1355
|
currentVersion: version,
|
|
1310
|
-
argv:
|
|
1356
|
+
argv: cliArgs,
|
|
1311
1357
|
env: getProcessEnv()
|
|
1312
1358
|
});
|
|
1313
1359
|
await program.parseAsync(process.argv);
|
|
@@ -1318,9 +1364,20 @@ async function main() {
|
|
|
1318
1364
|
try {
|
|
1319
1365
|
await runCli();
|
|
1320
1366
|
} catch (error) {
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1367
|
+
if (error instanceof CommanderError) {
|
|
1368
|
+
exitCode = error.exitCode;
|
|
1369
|
+
if (error.exitCode !== 0) {
|
|
1370
|
+
failure = error;
|
|
1371
|
+
reportCommanderError(error);
|
|
1372
|
+
}
|
|
1373
|
+
} else if (error instanceof CliExitError) {
|
|
1374
|
+
exitCode = error.exitCode;
|
|
1375
|
+
failure = error;
|
|
1376
|
+
} else {
|
|
1377
|
+
exitCode = 1;
|
|
1378
|
+
failure = error;
|
|
1379
|
+
ui.error(`Error: ${toErrorMessage(error)}`);
|
|
1380
|
+
}
|
|
1324
1381
|
}
|
|
1325
1382
|
if (failure) captureCliTelemetryFailure(failure);
|
|
1326
1383
|
await flushCliTelemetryForExit(exitCode);
|
|
@@ -1333,4 +1390,4 @@ async function main() {
|
|
|
1333
1390
|
}
|
|
1334
1391
|
main();
|
|
1335
1392
|
//#endregion
|
|
1336
|
-
export {
|
|
1393
|
+
export { CliExitError as A, setDebug as B, AUTH_TIMEOUT_SECONDS as C, CALLBACK_PATH as D, CALLBACK_LOOPBACK_ORIGIN as E, clearLog as F, closeLogger as I, logger as L, ProjectNotFoundError as M, WorkflowResolutionError as N, CLI_AUTH_COMMAND as O, throwReportedCliExit as P, originalConsole as R, toErrorMessage as S, CALLBACK_LOOPBACK_HOST as T, getApiErrorCode as _, CLI_PACKAGE_NAME as a, isAuthError as b, getProcessEnv as c, resolveCliWebUrl as d, applyCommanderOutput as f, REAUTH_HINT as g, AUTH_HINT as h, fetchLatestNpmPackageVersion as i, InputValidationError as j, AuthenticationError as k, isLocalMode as l, captureCliTelemetryResolvedContext as m, style as n, createHiddenGlobalOptions as o, ui as p, isTTY as r, getEnv as s, ANSI as t, resolveCliServerUrl as u, getApiErrorMessage as v, AUTH_URL_PATH as w, isNetworkError as x, getHttpStatus as y, readLogEntries as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-
|
|
3
|
+
import { n as style, p as ui, t as ANSI } from "./keystroke.mjs";
|
|
4
|
+
import { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-DtwLbee6.mjs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
7
7
|
import { parse } from "dotenv";
|