@keystrokehq/cli 0.0.20 → 0.0.22
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-CiqqUxKN.mjs → accept.handler-C6KBLKmW.mjs} +1 -1
- package/dist/{admin-B0U2Aghv.mjs → admin-D2CQoZAN.mjs} +9 -9
- package/dist/{agent-bundle-package-DWV6B_5q-BsbCEeMw.mjs → agent-bundle-package-DWV6B_5q-B-qzc3zC.mjs} +1 -1
- package/dist/{agents-DBebUEwk.mjs → agents-Bn0g5o0o.mjs} +7 -7
- package/dist/{api-BjBpWWlm.mjs → api-O5tdGdzc.mjs} +30 -4
- package/dist/{api-keys-BHAgmC4E.mjs → api-keys-BixCnZJW.mjs} +5 -5
- package/dist/{auth-D-PZAjdd.mjs → auth-yCNMT8sJ.mjs} +14 -7
- package/dist/{auth.handler-CxTDSO6O.mjs → auth.handler-BedGpKh1.mjs} +7 -12
- package/dist/{build-agents-DseUtzd4-BNtZrqoY.mjs → build-agents-DseUtzd4-DFh2e5Cn.mjs} +5 -5
- package/dist/{build-metadata-BB_L45ZS-d5-QLDZ5.mjs → build-metadata-BB_L45ZS-BtGGjHIV.mjs} +7 -7
- package/dist/{build-progress-BVwDg6lC.mjs → build-progress-nYa14iBP.mjs} +1 -1
- package/dist/{build-tasks-C09SdfjC-DxKcmENc.mjs → build-tasks-C09SdfjC-B0F7BZZG.mjs} +3 -3
- package/dist/{build-workflows-BZ_m97Pr-DwcnRlyh.mjs → build-workflows-BZ_m97Pr-DKANy85L.mjs} +9 -8
- package/dist/{build.handler-CTX80S1K.mjs → build.handler-CyDc8jiZ.mjs} +5 -5
- package/dist/{chunk-DYxdGL9S.mjs → chunk-CH6r78ws.mjs} +1 -2
- package/dist/{clear-cache.handler-8RFmjHoo.mjs → clear-cache.handler-FmJPHdWG.mjs} +1 -1
- package/dist/{clear.handler-Bksm2HI4.mjs → clear.handler-Cvb9chs4.mjs} +27 -13
- package/dist/{commander-DQLrBSIW.mjs → commander-9Kro0Dl3.mjs} +4 -7
- package/dist/common-AK0q0Oz0.mjs +20 -0
- package/dist/{connect-DV_EztVs.mjs → connect-_l7Lkfxi.mjs} +26 -2
- package/dist/{connect.handler-DbuGt3Xb.mjs → connect.handler-tqk-DOv8.mjs} +39 -4
- package/dist/{context-BUzxM3QI.mjs → context-B2cQ-Nt3.mjs} +30 -4
- package/dist/{create.handler-CQCRk-Na.mjs → create.handler-v9B0Z9Yf.mjs} +1 -1
- package/dist/{credential-env-map-qLCR_QbO.mjs → credential-env-map-Dvp00a4M.mjs} +1 -1
- package/dist/credential-requirements-D0mavK8j-CFMf0Xwu.mjs +619 -0
- package/dist/{credentials-xPtLFTjW.mjs → credentials-DQW8xxof.mjs} +2 -2
- package/dist/{credentials-m18a1_hw.mjs → credentials-Dr5lD7Hm.mjs} +6 -6
- package/dist/{current-deployment-workflow-pyBoobIm.mjs → current-deployment-workflow-qMfOrRIu.mjs} +4 -4
- package/dist/{current.handler-BJGJgdGP.mjs → current.handler-Cm_-JLyZ.mjs} +1 -1
- package/dist/declared-credential-requirements-B6h4WRv4.mjs +103 -0
- package/dist/{delete.handler-DNoehdOH.mjs → delete.handler-DtP_zUaq.mjs} +1 -1
- package/dist/{deploy-BKjcO_sm.mjs → deploy-BURTx92e.mjs} +1 -1
- package/dist/{deploy-3tHCBGky.mjs → deploy-CB6pfCuB.mjs} +2 -2
- package/dist/{deploy-progress-CyolzjRB.mjs → deploy-progress-Dlp9aBDW.mjs} +1 -1
- package/dist/{deploy.handler-TnPNBYXZ.mjs → deploy.handler-Bg0dpSTj.mjs} +16 -16
- package/dist/{detect-env-access-CwkOYeYM-D8-hxij0.mjs → detect-env-access-CwkOYeYM-D4aTZv4R.mjs} +2 -2
- package/dist/{diff.handler-DO2WzdGB.mjs → diff.handler-CJPrszL1.mjs} +4 -4
- package/dist/{dist-BGrWr5fp.mjs → dist-Br4m3sFZ.mjs} +14 -12
- package/dist/{dist-CIInPRGh.mjs → dist-DuJjDZIf.mjs} +25 -2
- package/dist/{env.handler-C5GNyiJt.mjs → env.handler-6TrLd3fo.mjs} +7 -7
- package/dist/{error-boundary-GtRvP2oP.mjs → error-boundary-DVZipk-A.mjs} +1 -1
- package/dist/{file-metadata-B8c7Y5yg.mjs → file-metadata-DQVDjr7M.mjs} +1 -1
- package/dist/{import-module-y0glInUe-CfNsQNia.mjs → import-module-y0glInUe-DxX0-BRO.mjs} +274 -28
- package/dist/{init-D9RIT2CY.mjs → init-DBMtY3eO.mjs} +3 -3
- package/dist/{init.handler-0TJY1YNy.mjs → init.handler-BoYbE-6H.mjs} +3 -3
- package/dist/{inspect.handler-BrYFfN4H.mjs → inspect.handler-Juu2vGbB.mjs} +4 -4
- package/dist/{integration-catalog-BrJsBkfx.mjs → integration-catalog-cYlTmOSb.mjs} +1 -1
- package/dist/{integrations-vSyAQ6HA.mjs → integrations-Cdq7iSLj.mjs} +5 -5
- package/dist/{invites-BASM4PJr.mjs → invites-DHyHZOY_.mjs} +4 -4
- package/dist/{invites.list.handler-c-aw6g5o.mjs → invites.list.handler-C-QpsG2J.mjs} +1 -1
- package/dist/{invites.resend.handler-MnMEjP_Z.mjs → invites.resend.handler-KFKbSPzR.mjs} +1 -1
- package/dist/{invites.revoke.handler-CHX6Z8kj.mjs → invites.revoke.handler-Cuz7jrGC.mjs} +1 -1
- package/dist/keystroke.mjs +21 -21
- package/dist/{list-enrichment-DcplcioC.mjs → list-enrichment-CCRHYslm.mjs} +1 -1
- package/dist/{list.handler-DJNtXw7C.mjs → list.handler-6x3GVumu.mjs} +1 -1
- package/dist/{list2.handler-BdE1k2kl.mjs → list.handler-BWsl4iYw.mjs} +4 -4
- package/dist/{list.handler-BsgCd1oF.mjs → list.handler-CLGQDuo5.mjs} +5 -5
- package/dist/{list.handler-CynN-ezD.mjs → list.handler-Cc-V1TNz.mjs} +1 -1
- package/dist/{list.handler-DXwKdfIv.mjs → list.handler-DRe38pAj.mjs} +2 -2
- package/dist/{list.handler-CDtjm-6d.mjs → list.handler-Do2tVOnu.mjs} +1 -1
- package/dist/{list.handler-BBzB1_1l.mjs → list.handler-RtHhrTZ3.mjs} +1 -1
- package/dist/{listen-Ca9KdiB2.mjs → listen-DZdSevsB.mjs} +2 -2
- package/dist/{listen.handler-KWPN03S8.mjs → listen.handler-BccHe1jh.mjs} +2 -2
- package/dist/{logs-BEDf7hZ0.mjs → logs-Bh_PBnu6.mjs} +3 -3
- package/dist/{logs.handler-mk1lcZbU.mjs → logs.handler-DItDS1zw.mjs} +2 -2
- package/dist/{members.add.handler-CTvlxBZU.mjs → members.add.handler-D3nQ_Ln6.mjs} +1 -1
- package/dist/{members.invite.handler-wFO0r7Pi.mjs → members.invite.handler-rKhg5n_C.mjs} +1 -1
- package/dist/{members.list.handler-PPdqs4nI.mjs → members.list.handler-C9Yh469k.mjs} +1 -1
- package/dist/{members.remove.handler-a5WI6zE4.mjs → members.remove.handler-Dnrck-E6.mjs} +1 -1
- package/dist/{members.update.handler-3xblTzmz.mjs → members.update.handler-qo5r6arJ.mjs} +1 -1
- package/dist/{metadata-layout-Bv-B0nHj-DtMWZ7Cc.mjs → metadata-layout-Bv-B0nHj-CO8mjjSl.mjs} +1 -1
- package/dist/{normalize-path-CojS-CgQ-CRqBc6D6.mjs → normalize-path-CojS-CgQ-aOM0agxS.mjs} +1 -1
- package/dist/{org-CzLw3neZ.mjs → org-DnES84sS.mjs} +15 -15
- package/dist/{orgs.create.handler-CcPpDweZ.mjs → orgs.create.handler-DF4eEL-2.mjs} +1 -1
- package/dist/{orgs.get.handler-BACPg7vR.mjs → orgs.get.handler-BmJnseQa.mjs} +1 -1
- package/dist/{orgs.list.handler-DEF8OyvM.mjs → orgs.list.handler-DDVvSbsT.mjs} +1 -1
- package/dist/{paused.handler-D4j8_Za4.mjs → paused.handler-BLUchSMD.mjs} +1 -1
- package/dist/{projects-CJCKxG2u.mjs → projects-Cv14bBGy.mjs} +4 -4
- package/dist/{projects-s5ehKLil.mjs → projects-ZNcKwds2.mjs} +2 -2
- package/dist/{requirements.handler-Bk-sAE9C.mjs → requirements.handler-BKFocUof.mjs} +5 -5
- package/dist/{resolve-cli-credentials-DytxgMwn.mjs → resolve-cli-credentials-DaMDaamj.mjs} +1 -1
- package/dist/{resolve-project-CWP2fji3.mjs → resolve-project-Cj3MFnU0.mjs} +1 -1
- package/dist/{run-polling-DKclfet-.mjs → run-polling-3XOGl4hh.mjs} +3 -3
- package/dist/{run.handler-x0B-CjNF.mjs → run.handler-DZuUx0fi.mjs} +5 -5
- package/dist/{runs-DoMVOCNj.mjs → runs-BOo3j297.mjs} +2 -2
- package/dist/schemas-D2zfmyC-.mjs +671 -0
- package/dist/{skills-sync.handler-CYkCeuQn.mjs → skills-sync.handler-09mDbx5q.mjs} +1 -1
- package/dist/{skills.command-DeAgMGGw.mjs → skills.command-B-MhRN3J.mjs} +4 -4
- package/dist/{source-analysis-BBg2E_6G-BJTRqWrQ.mjs → source-analysis-BBg2E_6G-wPP9mjQx.mjs} +3 -3
- package/dist/{source-analysis-BMMPIHN9.mjs → source-analysis-z2RSZw6X.mjs} +1 -1
- package/dist/{src-BYQwp8Ig.mjs → src-DNhUmpSl.mjs} +1 -1
- package/dist/{switch.handler-CV4ZBXAu.mjs → switch.handler-BFGvj5c6.mjs} +2 -2
- package/dist/{sync-KCVM02IY.mjs → sync-CZ3iUPTA.mjs} +2 -2
- package/dist/{sync.handler-Cuw89341.mjs → sync.handler-B1L8I9lF.mjs} +7 -7
- package/dist/{task-BSCN9cU4.mjs → task-BWuIKWh4.mjs} +2 -392
- package/dist/{task-target-build-B0HF2_At.mjs → task-target-build-CTgl4L42.mjs} +5 -5
- package/dist/{task-target-deploy-ClbwKJ8K.mjs → task-target-deploy-DeUyfi9H.mjs} +1 -1
- package/dist/{task-target-deploy-dQYnMO8n-CeTmRcDw.mjs → task-target-deploy-dQYnMO8n-d2vdeqXH.mjs} +1 -1
- package/dist/task-target-deploy-runner.mjs +6 -6
- package/dist/{test-Rm3thni3.mjs → test-Byq4hG3C.mjs} +2 -2
- package/dist/{test.handler-CTd-heRS.mjs → test.handler-BsrMMj5O.mjs} +9 -9
- package/dist/{test.handler-DhhcsvHN.mjs → test.handler-CAsVgOpT.mjs} +1 -1
- package/dist/{tool.handler-C3LNyQbc.mjs → tool.handler-BHS5Z4J_.mjs} +63 -9
- package/dist/{trigger-artifacts-BcRScRSp-DqFgzl_B.mjs → trigger-artifacts-BcRScRSp-C-JBJ6y8.mjs} +4 -4
- package/dist/{trigger-manifest-DTni4NaZ.mjs → trigger-manifest-C07EM-b2.mjs} +6 -5
- package/dist/{upgrade-Cf7y38xR.mjs → upgrade-bZVjVXnu.mjs} +2 -2
- package/dist/{upload-CJWApEgz.mjs → upload-CE4H5R1h.mjs} +1 -1
- package/dist/{upload.handler-BHIWYPph.mjs → upload.handler-DXVx2u3A.mjs} +7 -7
- package/dist/{users.get.handler-spWaHG8h.mjs → users.get.handler-DqD2ELK2.mjs} +1 -1
- package/dist/{users.list.handler-DLuU7cd_.mjs → users.list.handler-DZSPvpGF.mjs} +1 -1
- package/dist/{users.set-role.handler-CojFmpcD.mjs → users.set-role.handler-73smNUVF.mjs} +1 -1
- package/dist/{utils-Ddltm1sR.mjs → utils-BaxDlCsW.mjs} +1 -1
- package/dist/{validate.handler-DIJBuX1P.mjs → validate.handler-CmfcMX0t.mjs} +4 -4
- package/dist/{workflow-build-IGYhEC8Y.mjs → workflow-build-Bi1Aacc5.mjs} +20 -20
- package/dist/workflow-build-manifest-1sC52TIG.mjs +259 -0
- package/dist/{workflow-bundler-BzHk73PM-Cs-4Ml-p.mjs → workflow-bundler-BzHk73PM-xQwAF08W.mjs} +2 -2
- package/dist/{workflows-MANdvLft.mjs → workflows-C_C13Zr0.mjs} +16 -14
- package/dist/{writer-byNNUjRm-w5O7-VT_.mjs → writer-byNNUjRm-B-on1n6c.mjs} +6 -6
- package/package.json +6 -6
- package/dist/schemas-U2OzP9gP.mjs +0 -281
- package/dist/src-BHTjsZ9V.mjs +0 -456
- /package/dist/{agent-manifest-CZ7BeUSG.mjs → agent-manifest-Pg0aURo7.mjs} +0 -0
- /package/dist/{browser-Cu4k-wT_.mjs → browser-Dvv5OQrt.mjs} +0 -0
- /package/dist/{clear.handler-mfNmIUYP.mjs → clear.handler-BdR56Cok.mjs} +0 -0
- /package/dist/{concurrency-gXn9Rw8x-BSBbRfVp.mjs → concurrency-gXn9Rw8x-CnBnF2cg.mjs} +0 -0
- /package/dist/{credential-schema-mismatch-BHI_B-U-.mjs → credential-schema-mismatch-kfGeiSB1.mjs} +0 -0
- /package/dist/{diff-utils-x5pi8SrL.mjs → diff-utils-CXKNQUXO.mjs} +0 -0
- /package/dist/{layout-DRf9qUf8.mjs → layout-B95Tku8F.mjs} +0 -0
- /package/dist/{logs.handler-CcA1UzJm.mjs → logs.handler-Bs1DVMaO.mjs} +0 -0
- /package/dist/{oxc-B3KI3rf_-Cnk0L10M.mjs → oxc-B3KI3rf_-B9omBIuN.mjs} +0 -0
- /package/dist/{read-credential-keys-77a91T8M-CzXPGxdU.mjs → read-credential-keys-77a91T8M-aLuQvlIq.mjs} +0 -0
- /package/dist/{register.handler-CSvlOMF6.mjs → register.handler-C_NqMLir.mjs} +0 -0
- /package/dist/{rolldown-runtime-twds-ZHy-BoF7MLzP.mjs → rolldown-runtime-twds-ZHy-RuJszab7.mjs} +0 -0
- /package/dist/{run-polling-CzyVv7Ba.mjs → run-polling-DKWPGLyF.mjs} +0 -0
- /package/dist/{schema-CvSZqa3t.mjs → schema-DFJiNWyd.mjs} +0 -0
- /package/dist/{schema-display-DxLA3j5H.mjs → schema-display-XrRCdFL0.mjs} +0 -0
- /package/dist/{skill-installer-CYFshTBy.mjs → skill-installer-Cm9hF6OB.mjs} +0 -0
- /package/dist/{skills.handler-Bma-MJX-.mjs → skills.handler-KEUkV5NH.mjs} +0 -0
- /package/dist/{spinner-progress-DV28G4tP.mjs → spinner-progress-BtEIJRX4.mjs} +0 -0
- /package/dist/{status.handler-BOV0eX3J.mjs → status.handler-CW-EFhy3.mjs} +0 -0
- /package/dist/{types-DamInJD6.mjs → types-D1cVpE7_.mjs} +0 -0
- /package/dist/{upgrade.handler-Bz_oQcAw.mjs → upgrade.handler-C7KvNL0x.mjs} +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
5
|
-
import {
|
|
4
|
+
import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
|
|
5
|
+
import { n as SHA256HashSchema, t as JsonSchemaSchema } from "./common-AK0q0Oz0.mjs";
|
|
6
|
+
import { u as TriggerUploadDataSchema } from "./credential-requirements-D0mavK8j-CFMf0Xwu.mjs";
|
|
7
|
+
import { a as FlowGraphSchema, r as WorkflowBuildManifestSchema } from "./workflow-build-manifest-1sC52TIG.mjs";
|
|
6
8
|
import { z } from "zod";
|
|
7
9
|
const GitProviderSchema = z.enum(["codestorage", "github"]);
|
|
8
10
|
const GitTreeEntryTypeSchema = z.enum(["file", "directory"]);
|
|
@@ -318,7 +320,7 @@ function createWorkflowsBuildCommand() {
|
|
|
318
320
|
description: "Build workflows locally",
|
|
319
321
|
schema: WorkflowsBuildOptionsSchema,
|
|
320
322
|
optionsConfig: BUILD_OPTIONS_CONFIG,
|
|
321
|
-
loadHandler: async () => (await import("./build.handler-
|
|
323
|
+
loadHandler: async () => (await import("./build.handler-CyDc8jiZ.mjs")).handleWorkflowsBuild
|
|
322
324
|
});
|
|
323
325
|
}
|
|
324
326
|
//#endregion
|
|
@@ -345,7 +347,7 @@ function createWorkflowsDiffCommand() {
|
|
|
345
347
|
description: "Authored workflow id (preferred) or workflow name",
|
|
346
348
|
key: "workflow"
|
|
347
349
|
},
|
|
348
|
-
loadHandler: async () => (await import("./diff.handler-
|
|
350
|
+
loadHandler: async () => (await import("./diff.handler-CJPrszL1.mjs")).handleWorkflowsDiff
|
|
349
351
|
});
|
|
350
352
|
}
|
|
351
353
|
//#endregion
|
|
@@ -378,7 +380,7 @@ function createWorkflowsEnvCommand() {
|
|
|
378
380
|
key: "workflow",
|
|
379
381
|
required: false
|
|
380
382
|
},
|
|
381
|
-
loadHandler: async () => (await import("./env.handler-
|
|
383
|
+
loadHandler: async () => (await import("./env.handler-6TrLd3fo.mjs")).handleWorkflowsEnv
|
|
382
384
|
});
|
|
383
385
|
}
|
|
384
386
|
//#endregion
|
|
@@ -410,7 +412,7 @@ function createWorkflowsInspectCommand() {
|
|
|
410
412
|
description: "Authored workflow id (preferred) or workflow name",
|
|
411
413
|
key: "workflow"
|
|
412
414
|
},
|
|
413
|
-
loadHandler: async () => (await import("./inspect.handler-
|
|
415
|
+
loadHandler: async () => (await import("./inspect.handler-Juu2vGbB.mjs")).handleWorkflowsInspect
|
|
414
416
|
});
|
|
415
417
|
}
|
|
416
418
|
//#endregion
|
|
@@ -506,7 +508,7 @@ function createWorkflowsLogsCommand() {
|
|
|
506
508
|
key: "workflow",
|
|
507
509
|
required: false
|
|
508
510
|
},
|
|
509
|
-
loadHandler: async () => (await import("./logs.handler-
|
|
511
|
+
loadHandler: async () => (await import("./logs.handler-DItDS1zw.mjs")).handleWorkflowsLogs
|
|
510
512
|
});
|
|
511
513
|
}
|
|
512
514
|
//#endregion
|
|
@@ -610,7 +612,7 @@ z.object({
|
|
|
610
612
|
exportName: z.string().min(1),
|
|
611
613
|
manifest: WorkflowBuildManifestSchema,
|
|
612
614
|
flowJson: FlowGraphSchema.optional(),
|
|
613
|
-
triggers: z.array(
|
|
615
|
+
triggers: z.array(TriggerUploadDataSchema).optional(),
|
|
614
616
|
bundleHash: SHA256HashSchema,
|
|
615
617
|
bundleSize: z.number(),
|
|
616
618
|
args: z.array(z.unknown()).optional().default([]),
|
|
@@ -696,7 +698,7 @@ function createWorkflowsPausedCommand() {
|
|
|
696
698
|
key: "workflow",
|
|
697
699
|
required: false
|
|
698
700
|
},
|
|
699
|
-
loadHandler: async () => (await import("./paused.handler-
|
|
701
|
+
loadHandler: async () => (await import("./paused.handler-BLUchSMD.mjs")).handleWorkflowsPaused
|
|
700
702
|
});
|
|
701
703
|
}
|
|
702
704
|
//#endregion
|
|
@@ -790,7 +792,7 @@ function createWorkflowsRunCommand() {
|
|
|
790
792
|
key: "payload",
|
|
791
793
|
required: false
|
|
792
794
|
}],
|
|
793
|
-
loadHandler: async () => (await import("./run.handler-
|
|
795
|
+
loadHandler: async () => (await import("./run.handler-DZuUx0fi.mjs")).handleWorkflowsRun
|
|
794
796
|
});
|
|
795
797
|
}
|
|
796
798
|
//#endregion
|
|
@@ -845,7 +847,7 @@ function createWorkflowsTestCommand() {
|
|
|
845
847
|
description: "Authored workflow id (preferred) or workflow name. Multiple workflows with the same name run sequentially.",
|
|
846
848
|
key: "workflow"
|
|
847
849
|
},
|
|
848
|
-
loadHandler: async () => (await import("./test.handler-
|
|
850
|
+
loadHandler: async () => (await import("./test.handler-BsrMMj5O.mjs")).handleWorkflowsTest
|
|
849
851
|
});
|
|
850
852
|
}
|
|
851
853
|
//#endregion
|
|
@@ -883,7 +885,7 @@ function createWorkflowsValidateCommand() {
|
|
|
883
885
|
key: "workflow",
|
|
884
886
|
required: false
|
|
885
887
|
},
|
|
886
|
-
loadHandler: async () => (await import("./validate.handler-
|
|
888
|
+
loadHandler: async () => (await import("./validate.handler-CmfcMX0t.mjs")).handleWorkflowsValidate
|
|
887
889
|
});
|
|
888
890
|
}
|
|
889
891
|
//#endregion
|
|
@@ -902,14 +904,14 @@ function createWorkflowsCommand() {
|
|
|
902
904
|
description: "Manage, run, inspect, and debug workflows",
|
|
903
905
|
schema: WorkflowsOptionsSchema,
|
|
904
906
|
optionsConfig: WORKFLOWS_OPTIONS_CONFIG,
|
|
905
|
-
loadHandler: async () => (await import("./
|
|
907
|
+
loadHandler: async () => (await import("./list.handler-BWsl4iYw.mjs")).handleWorkflowsList,
|
|
906
908
|
subcommands: [
|
|
907
909
|
createTypedCommand({
|
|
908
910
|
name: "list",
|
|
909
911
|
description: "List all workflows in the project",
|
|
910
912
|
schema: WorkflowsOptionsSchema,
|
|
911
913
|
optionsConfig: WORKFLOWS_OPTIONS_CONFIG,
|
|
912
|
-
loadHandler: async () => (await import("./
|
|
914
|
+
loadHandler: async () => (await import("./list.handler-BWsl4iYw.mjs")).handleWorkflowsList
|
|
913
915
|
}),
|
|
914
916
|
createWorkflowsBuildCommand(),
|
|
915
917
|
createWorkflowsTestCommand(),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as __exportAll } from "./chunk-
|
|
4
|
-
import { f as getTriggersDir, n as BUILD_OUTPUT_DIR_NAME, p as getWorkflowArtifactPaths, t as BUILD_DIR_NAME } from "./layout-
|
|
5
|
-
import { t as TriggerBuildManifestSchema } from "./trigger-manifest-
|
|
6
|
-
import { t as __exportAll$1 } from "./rolldown-runtime-twds-ZHy-
|
|
7
|
-
import { s as sha256String } from "./metadata-layout-Bv-B0nHj-
|
|
8
|
-
import { t as runWithConcurrency } from "./concurrency-gXn9Rw8x-
|
|
3
|
+
import { n as __exportAll } from "./chunk-CH6r78ws.mjs";
|
|
4
|
+
import { f as getTriggersDir, n as BUILD_OUTPUT_DIR_NAME, p as getWorkflowArtifactPaths, t as BUILD_DIR_NAME } from "./layout-B95Tku8F.mjs";
|
|
5
|
+
import { t as TriggerBuildManifestSchema } from "./trigger-manifest-C07EM-b2.mjs";
|
|
6
|
+
import { t as __exportAll$1 } from "./rolldown-runtime-twds-ZHy-RuJszab7.mjs";
|
|
7
|
+
import { s as sha256String } from "./metadata-layout-Bv-B0nHj-CO8mjjSl.mjs";
|
|
8
|
+
import { t as runWithConcurrency } from "./concurrency-gXn9Rw8x-CnBnF2cg.mjs";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { access, mkdir, readdir, rm, stat, writeFile } from "node:fs/promises";
|
|
11
11
|
import { createHash } from "node:crypto";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keystrokehq/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Command-line interface for creating, managing, and deploying Keystroke automations.",
|
|
6
6
|
"type": "module",
|
|
@@ -42,16 +42,16 @@
|
|
|
42
42
|
"@keystroke/env-utils": "0.0.0",
|
|
43
43
|
"@keystroke/local-memory": "0.0.1",
|
|
44
44
|
"@keystrokehq/config": "0.0.2",
|
|
45
|
-
"@keystroke/
|
|
45
|
+
"@keystroke/shared-types": "0.0.5",
|
|
46
46
|
"@keystroke/typescript-config": "0.0.0",
|
|
47
47
|
"@keystroke/utils": "0.0.0",
|
|
48
|
-
"@keystroke/
|
|
48
|
+
"@keystroke/test-utils": "0.0.3",
|
|
49
|
+
"@keystroke/workflow-builder": "0.0.7",
|
|
49
50
|
"@keystrokehq/core": "0.0.7",
|
|
50
51
|
"@keystrokehq/workflow-build-contracts": "0.0.3",
|
|
51
52
|
"@keystrokehq/testing": "0.2.2",
|
|
52
|
-
"@keystroke/
|
|
53
|
-
"@keystroke/workflow-
|
|
54
|
-
"@keystroke/workflow-sdk": "0.0.3"
|
|
53
|
+
"@keystroke/workflow-deploy": "0.0.6",
|
|
54
|
+
"@keystroke/workflow-sdk": "0.0.4"
|
|
55
55
|
},
|
|
56
56
|
"keywords": [
|
|
57
57
|
"automation",
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
//#region ../../packages/core/src/shared/schema.ts
|
|
5
|
-
const MAX_JSON_DEPTH = 20;
|
|
6
|
-
function buildJsonValueSchema(depth) {
|
|
7
|
-
const primitives = z.union([
|
|
8
|
-
z.string(),
|
|
9
|
-
z.number(),
|
|
10
|
-
z.boolean(),
|
|
11
|
-
z.null()
|
|
12
|
-
]);
|
|
13
|
-
if (depth <= 0) return primitives;
|
|
14
|
-
const nested = buildJsonValueSchema(depth - 1);
|
|
15
|
-
return z.union([
|
|
16
|
-
primitives,
|
|
17
|
-
z.array(nested),
|
|
18
|
-
z.record(z.string(), nested)
|
|
19
|
-
]);
|
|
20
|
-
}
|
|
21
|
-
const jsonValueSchema = buildJsonValueSchema(MAX_JSON_DEPTH);
|
|
22
|
-
const jsonSchemaObject = z.record(z.string(), jsonValueSchema);
|
|
23
|
-
const anyZodSchemaSchema = z.custom((value) => value instanceof z.ZodType, "Expected a Zod schema");
|
|
24
|
-
const zodObjectSchema = z.custom((value) => value instanceof z.ZodObject, "Expected a Zod object schema");
|
|
25
|
-
/**
|
|
26
|
-
* Creates a Zod schema that validates an object structurally by checking
|
|
27
|
-
* for required properties. This avoids `instanceof` checks which fail
|
|
28
|
-
* when class definitions are duplicated across bundle boundaries.
|
|
29
|
-
*/
|
|
30
|
-
function createStructuralSchema(requiredKeys, label) {
|
|
31
|
-
return z.custom((value) => value != null && (typeof value === "object" || typeof value === "function") && requiredKeys.every((key) => key in value), `Expected ${label}`);
|
|
32
|
-
}
|
|
33
|
-
function trimmedNonEmptyString(fieldName) {
|
|
34
|
-
return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` });
|
|
35
|
-
}
|
|
36
|
-
/** Trimmed string with at least one character; no upper length limit. */
|
|
37
|
-
function trimmedNonEmptyStringUnbounded(fieldName) {
|
|
38
|
-
return z.string().trim().min(1, { error: `${fieldName} cannot be empty` });
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Non-empty trimmed string restricted to URL-safe characters.
|
|
42
|
-
* Use for IDs (workflow, step, etc.) that must be safe in URLs, env vars, and as object keys.
|
|
43
|
-
*/
|
|
44
|
-
function idNoSpacesString(fieldName) {
|
|
45
|
-
return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` }).refine((s) => /^[a-zA-Z0-9_-]+$/.test(s), { error: `${fieldName} must only contain letters, numbers, hyphens, and underscores` });
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Non-empty trimmed string for credential definition ids.
|
|
49
|
-
* Allows namespaced ids such as `keystroke:slack` plus letters, numbers,
|
|
50
|
-
* hyphens, and underscores.
|
|
51
|
-
*/
|
|
52
|
-
function credentialSetIdString(fieldName) {
|
|
53
|
-
return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(255, { error: `${fieldName} cannot exceed 255 characters` }).refine((s) => /^[a-zA-Z0-9_:-]+$/.test(s), { error: `${fieldName} must only contain letters, numbers, hyphens, underscores, and colons` });
|
|
54
|
-
}
|
|
55
|
-
function optionalTrimmedNonEmptyString(fieldName) {
|
|
56
|
-
return trimmedNonEmptyString(fieldName).optional();
|
|
57
|
-
}
|
|
58
|
-
function descriptionString(fieldName) {
|
|
59
|
-
return z.string().trim().min(1, { error: `${fieldName} cannot be empty` }).max(1024, { error: `${fieldName} cannot exceed 1024 characters` });
|
|
60
|
-
}
|
|
61
|
-
function optionalDescriptionString(fieldName) {
|
|
62
|
-
return descriptionString(fieldName).optional();
|
|
63
|
-
}
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region ../../packages/core/src/credential-set/constants.ts
|
|
66
|
-
/**
|
|
67
|
-
* Shared constants for the credential/connection system.
|
|
68
|
-
* Defined in core (bottom of dependency chain) so all packages can import them.
|
|
69
|
-
*/
|
|
70
|
-
const CREDENTIAL_EXPOSURES = {
|
|
71
|
-
"user-runtime": "user-runtime",
|
|
72
|
-
"platform-only": "platform-only"
|
|
73
|
-
};
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region ../../packages/core/src/credential-set/schemas.ts
|
|
76
|
-
const credentialSetProxyInjectionSchema = z.object({
|
|
77
|
-
/** Substitute placeholder in HTTP headers (default: true). */
|
|
78
|
-
headers: z.boolean().optional(),
|
|
79
|
-
/** Substitute placeholder in the HTTP Basic Auth credential (default: true). */
|
|
80
|
-
basicAuth: z.boolean().optional(),
|
|
81
|
-
/** Substitute placeholder in URL query params (default: false).
|
|
82
|
-
* Use for APIs that authenticate via `?api_key=...` (Google Maps, OWM, etc.). */
|
|
83
|
-
queryParams: z.boolean().optional(),
|
|
84
|
-
/** Substitute placeholder in the HTTP request body (default: false).
|
|
85
|
-
* Use for form-encoded auth payloads (Stripe, AWS SigV4 query, etc.). */
|
|
86
|
-
body: z.boolean().optional()
|
|
87
|
-
});
|
|
88
|
-
const credentialSetProxyConfigSchema = z.object({
|
|
89
|
-
/** Exact-match host allowlist (forwarded to SecretBuilder.allowHost). */
|
|
90
|
-
hosts: z.array(z.string().min(1)).optional(),
|
|
91
|
-
/** Wildcard host allowlist (forwarded to SecretBuilder.allowHostPattern).
|
|
92
|
-
* Example: `["*.browserbase.com"]` covers any subdomain. */
|
|
93
|
-
hostPatterns: z.array(z.string().min(1)).optional(),
|
|
94
|
-
/** Per-scope substitution toggles. Omit to use SDK defaults. */
|
|
95
|
-
injection: credentialSetProxyInjectionSchema.optional()
|
|
96
|
-
});
|
|
97
|
-
const onCredentialRevokedSchema = z.enum(["fail", "retry-once"]);
|
|
98
|
-
const credentialExposureSchema = z.enum([CREDENTIAL_EXPOSURES["user-runtime"], CREDENTIAL_EXPOSURES["platform-only"]]);
|
|
99
|
-
const connectionMetadataConfigSchema = z.object({
|
|
100
|
-
id: credentialSetIdString("Credential connection id").optional(),
|
|
101
|
-
label: optionalTrimmedNonEmptyString("Credential connection label"),
|
|
102
|
-
description: optionalDescriptionString("Credential connection description"),
|
|
103
|
-
recommended: z.boolean().optional(),
|
|
104
|
-
advanced: z.boolean().optional(),
|
|
105
|
-
needsRawSecret: z.boolean().optional()
|
|
106
|
-
});
|
|
107
|
-
const connectionMetadataManifestSchema = connectionMetadataConfigSchema;
|
|
108
|
-
const registeredDescriptorSchema = z.object({
|
|
109
|
-
id: trimmedNonEmptyString("Registered descriptor id"),
|
|
110
|
-
config: z.record(z.string(), z.unknown()).optional()
|
|
111
|
-
});
|
|
112
|
-
const registeredResolverDescriptorSchema = registeredDescriptorSchema.extend({ cacheMs: z.number().int().nonnegative().optional() });
|
|
113
|
-
const manualConnectionConfigSchema = connectionMetadataConfigSchema.extend({
|
|
114
|
-
kind: z.literal("manual"),
|
|
115
|
-
input: zodObjectSchema.optional(),
|
|
116
|
-
instructions: z.string().min(1).optional(),
|
|
117
|
-
validate: z.function().optional()
|
|
118
|
-
});
|
|
119
|
-
const manualConnectionFieldManifestSchema = z.object({
|
|
120
|
-
key: z.string().min(1),
|
|
121
|
-
label: z.string().min(1),
|
|
122
|
-
description: z.string().min(1).optional(),
|
|
123
|
-
optional: z.boolean(),
|
|
124
|
-
secret: z.literal(true)
|
|
125
|
-
});
|
|
126
|
-
const manualConnectionConfigManifestSchema = connectionMetadataManifestSchema.extend({
|
|
127
|
-
kind: z.literal("manual"),
|
|
128
|
-
input: jsonSchemaObject.optional(),
|
|
129
|
-
fields: z.array(manualConnectionFieldManifestSchema).optional(),
|
|
130
|
-
generated: z.boolean().optional(),
|
|
131
|
-
instructions: z.string().min(1).optional()
|
|
132
|
-
});
|
|
133
|
-
/** Declarative form of `Vault` — strings typed against the credential set's
|
|
134
|
-
* stored/auth schema keys at the {@link CredentialSetConfig} boundary; the Zod
|
|
135
|
-
* schema here enforces non-empty strings only. `CredentialSet` itself performs
|
|
136
|
-
* the schema-key membership check at construction time. */
|
|
137
|
-
const vaultMappingSchema = z.object({
|
|
138
|
-
accessToken: z.string().min(1),
|
|
139
|
-
refreshToken: z.string().min(1).optional(),
|
|
140
|
-
instanceUrl: z.string().min(1).optional(),
|
|
141
|
-
raw: z.record(z.string().min(1), z.string().min(1)).optional()
|
|
142
|
-
});
|
|
143
|
-
/** Function form of `Vault` — an object pairing the access-token vault key
|
|
144
|
-
* (`accessTokenKey`) with the `build` function that computes the full vault
|
|
145
|
-
* write map. The explicit key keeps the disconnect path's revocation read
|
|
146
|
-
* reliable even when `build` transforms the access token. */
|
|
147
|
-
const vaultMappingFnSchema = z.object({
|
|
148
|
-
accessTokenKey: z.string().min(1),
|
|
149
|
-
build: z.custom((val) => typeof val === "function", { message: "vault.build must be a function." })
|
|
150
|
-
});
|
|
151
|
-
/** Runtime shape of `Vault`. Accepts either the declarative mapping or the
|
|
152
|
-
* function-form object `{ accessTokenKey, build }`. */
|
|
153
|
-
const vaultConfigSchema = z.union([vaultMappingSchema, vaultMappingFnSchema], { error: "vault must be a declarative mapping object or a `{ accessTokenKey, build }` object." });
|
|
154
|
-
/** Manifest projection of `Vault` — declarative mappings serialize verbatim;
|
|
155
|
-
* function-form mappings serialize as `{ kind: 'function', accessTokenKey }`
|
|
156
|
-
* since closures are not manifest-safe but the access-token key is. */
|
|
157
|
-
const vaultManifestSchema = z.discriminatedUnion("kind", [z.object({
|
|
158
|
-
kind: z.literal("declarative"),
|
|
159
|
-
accessToken: z.string().min(1),
|
|
160
|
-
refreshToken: z.string().min(1).optional(),
|
|
161
|
-
instanceUrl: z.string().min(1).optional(),
|
|
162
|
-
raw: z.record(z.string().min(1), z.string().min(1)).optional()
|
|
163
|
-
}), z.object({
|
|
164
|
-
kind: z.literal("function"),
|
|
165
|
-
accessTokenKey: z.string().min(1)
|
|
166
|
-
})]);
|
|
167
|
-
const oauthConnectionConfigBaseSchema = z.object({
|
|
168
|
-
kind: z.literal("oauth"),
|
|
169
|
-
authUrl: z.string().url(),
|
|
170
|
-
tokenUrl: z.string().url(),
|
|
171
|
-
scopes: z.array(z.string()).readonly(),
|
|
172
|
-
revokeUrl: z.string().url().nullable().optional(),
|
|
173
|
-
tokenType: z.enum(["long-lived", "refreshable"]),
|
|
174
|
-
pkce: z.boolean().optional(),
|
|
175
|
-
/** Fallback token lifetime when the provider omits `expires_in`. Positive
|
|
176
|
-
* integer seconds. Shared between config + manifest schemas (both extend
|
|
177
|
-
* this base). */
|
|
178
|
-
defaultExpiresInSeconds: z.number().int().positive().optional()
|
|
179
|
-
});
|
|
180
|
-
const oauthConnectionConfigSchema = oauthConnectionConfigBaseSchema.extend({
|
|
181
|
-
...connectionMetadataConfigSchema.shape,
|
|
182
|
-
vault: vaultConfigSchema,
|
|
183
|
-
oauth: registeredDescriptorSchema.optional(),
|
|
184
|
-
buildAuthUrl: z.function().optional(),
|
|
185
|
-
exchangeCode: z.function().optional(),
|
|
186
|
-
refreshToken: z.function().optional(),
|
|
187
|
-
extractInstallationInfo: z.function().optional(),
|
|
188
|
-
validate: z.function().optional()
|
|
189
|
-
});
|
|
190
|
-
const oauthConnectionConfigManifestSchema = oauthConnectionConfigBaseSchema.extend({
|
|
191
|
-
...connectionMetadataManifestSchema.shape,
|
|
192
|
-
vault: vaultManifestSchema,
|
|
193
|
-
oauth: registeredDescriptorSchema.optional()
|
|
194
|
-
});
|
|
195
|
-
const credentialsExchangeConnectionConfigSchema = connectionMetadataConfigSchema.extend({
|
|
196
|
-
kind: z.literal("credentials-exchange"),
|
|
197
|
-
instructions: z.string().min(1).optional(),
|
|
198
|
-
input: zodObjectSchema
|
|
199
|
-
}).extend({
|
|
200
|
-
exchange: z.function(),
|
|
201
|
-
rotate: z.function().optional(),
|
|
202
|
-
validate: z.function().optional()
|
|
203
|
-
});
|
|
204
|
-
/** Manifest projection of `CredentialsExchangeConnectionConfig` — only the
|
|
205
|
-
* declarative `input` schema (rendered as JSON Schema) and `instructions`
|
|
206
|
-
* copy survive serialization. The three hooks (`exchange`, `rotate`,
|
|
207
|
-
* `validate`) are runtime closures and are stripped. */
|
|
208
|
-
const credentialsExchangeConnectionConfigManifestSchema = z.object({
|
|
209
|
-
kind: z.literal("credentials-exchange"),
|
|
210
|
-
...connectionMetadataManifestSchema.shape,
|
|
211
|
-
instructions: z.string().min(1).optional(),
|
|
212
|
-
input: jsonSchemaObject
|
|
213
|
-
});
|
|
214
|
-
const exchangeCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({
|
|
215
|
-
kind: z.literal("exchange"),
|
|
216
|
-
input: zodObjectSchema,
|
|
217
|
-
exchange: registeredDescriptorSchema
|
|
218
|
-
});
|
|
219
|
-
const exchangeCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({
|
|
220
|
-
kind: z.literal("exchange"),
|
|
221
|
-
input: jsonSchemaObject,
|
|
222
|
-
exchange: registeredDescriptorSchema
|
|
223
|
-
});
|
|
224
|
-
const dynamicCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({
|
|
225
|
-
kind: z.literal("dynamic"),
|
|
226
|
-
input: zodObjectSchema.optional(),
|
|
227
|
-
resolver: registeredResolverDescriptorSchema
|
|
228
|
-
});
|
|
229
|
-
const dynamicCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({
|
|
230
|
-
kind: z.literal("dynamic"),
|
|
231
|
-
input: jsonSchemaObject.optional(),
|
|
232
|
-
resolver: registeredResolverDescriptorSchema
|
|
233
|
-
});
|
|
234
|
-
const platformCredentialConnectionConfigSchema = connectionMetadataConfigSchema.extend({ kind: z.literal("platform") });
|
|
235
|
-
const platformCredentialConnectionManifestSchema = connectionMetadataManifestSchema.extend({ kind: z.literal("platform") });
|
|
236
|
-
const connectionConfigSchema = z.discriminatedUnion("kind", [
|
|
237
|
-
manualConnectionConfigSchema,
|
|
238
|
-
oauthConnectionConfigSchema,
|
|
239
|
-
credentialsExchangeConnectionConfigSchema,
|
|
240
|
-
exchangeCredentialConnectionConfigSchema,
|
|
241
|
-
dynamicCredentialConnectionConfigSchema,
|
|
242
|
-
platformCredentialConnectionConfigSchema
|
|
243
|
-
]);
|
|
244
|
-
/** Manifest projection of `ConnectionConfig` — declarative metadata only. */
|
|
245
|
-
const connectionConfigManifestSchema = z.discriminatedUnion("kind", [
|
|
246
|
-
manualConnectionConfigManifestSchema,
|
|
247
|
-
oauthConnectionConfigManifestSchema,
|
|
248
|
-
credentialsExchangeConnectionConfigManifestSchema,
|
|
249
|
-
exchangeCredentialConnectionManifestSchema,
|
|
250
|
-
dynamicCredentialConnectionManifestSchema,
|
|
251
|
-
platformCredentialConnectionManifestSchema
|
|
252
|
-
]);
|
|
253
|
-
const CredentialSetManifestSchema = z.object({
|
|
254
|
-
manifestVersion: z.literal(1),
|
|
255
|
-
type: z.literal("credentialSet"),
|
|
256
|
-
id: credentialSetIdString("Credential set id"),
|
|
257
|
-
name: trimmedNonEmptyString("Credential set name"),
|
|
258
|
-
description: optionalDescriptionString("Credential set description"),
|
|
259
|
-
auth: jsonSchemaObject,
|
|
260
|
-
exposure: credentialExposureSchema.optional(),
|
|
261
|
-
proxy: credentialSetProxyConfigSchema.optional(),
|
|
262
|
-
/** When true, resolved values are passed into execution as raw secrets (no ref-token proxy). */
|
|
263
|
-
needsRawSecret: z.boolean().optional(),
|
|
264
|
-
/** Policy when a step throws `CredentialRevokedError` against this credential set. */
|
|
265
|
-
onCredentialRevoked: onCredentialRevokedSchema.optional(),
|
|
266
|
-
connections: z.array(connectionConfigManifestSchema).optional()
|
|
267
|
-
});
|
|
268
|
-
z.object({
|
|
269
|
-
id: credentialSetIdString("Credential set id"),
|
|
270
|
-
name: optionalTrimmedNonEmptyString("Credential set name"),
|
|
271
|
-
description: optionalDescriptionString("Credential set description"),
|
|
272
|
-
auth: zodObjectSchema,
|
|
273
|
-
exposure: credentialExposureSchema.optional(),
|
|
274
|
-
proxy: credentialSetProxyConfigSchema.optional(),
|
|
275
|
-
/** When true, resolved values are passed into execution as raw secrets (no ref-token proxy). */
|
|
276
|
-
needsRawSecret: z.boolean().optional(),
|
|
277
|
-
onCredentialRevoked: onCredentialRevokedSchema.optional(),
|
|
278
|
-
connections: z.array(connectionConfigSchema).readonly().optional()
|
|
279
|
-
});
|
|
280
|
-
//#endregion
|
|
281
|
-
export { descriptionString as a, optionalDescriptionString as c, trimmedNonEmptyStringUnbounded as d, createStructuralSchema as i, optionalTrimmedNonEmptyString as l, credentialSetProxyConfigSchema as n, idNoSpacesString as o, anyZodSchemaSchema as r, jsonSchemaObject as s, CredentialSetManifestSchema as t, trimmedNonEmptyString as u };
|