@keystrokehq/cli 0.0.19 → 0.0.21
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-BVmNNAgL.mjs → accept.handler-C6KBLKmW.mjs} +1 -1
- package/dist/{admin-DQlHFuXn.mjs → admin-D2CQoZAN.mjs} +9 -9
- package/dist/{agents-Dd7UeQCw.mjs → agents-Bn0g5o0o.mjs} +7 -7
- package/dist/{api-nR61stdq.mjs → api-J9UL8pqZ.mjs} +1 -1
- package/dist/{api-keys-BsMBFiD_.mjs → api-keys-BixCnZJW.mjs} +5 -5
- package/dist/{auth-ZTuuEoD6.mjs → auth-yCNMT8sJ.mjs} +14 -7
- package/dist/{auth.handler-C1dZBdaG.mjs → auth.handler-BedGpKh1.mjs} +7 -12
- package/dist/{build-agents-DseUtzd4-CthuIecx.mjs → build-agents-DseUtzd4-DFh2e5Cn.mjs} +5 -5
- package/dist/{build-metadata-C8Ra_Gi--L3l8w0rh.mjs → build-metadata-BB_L45ZS-BtGGjHIV.mjs} +9 -9
- package/dist/{build-progress-AR8xow4_.mjs → build-progress-nYa14iBP.mjs} +1 -1
- package/dist/{build-tasks-GVuMLS0h-BaPhhGXO.mjs → build-tasks-C09SdfjC-B0F7BZZG.mjs} +4 -4
- package/dist/{build-workflows-CV4tBo6S-szwrAGWT.mjs → build-workflows-BZ_m97Pr-DKANy85L.mjs} +9 -9
- package/dist/{build.handler-DJrEMCBw.mjs → build.handler-CyDc8jiZ.mjs} +5 -5
- package/dist/{clear-cache.handler-CTLQ1PIN.mjs → clear-cache.handler-FmJPHdWG.mjs} +1 -1
- package/dist/{clear.handler-BgeAg2de.mjs → clear.handler-Cvb9chs4.mjs} +27 -13
- package/dist/{commander-C5qcOo8m.mjs → commander-9Kro0Dl3.mjs} +4 -7
- package/dist/{connect-BtBKoXpi.mjs → connect-DzVxjeYr.mjs} +2 -2
- package/dist/{connect.handler-E8CmLRSF.mjs → connect.handler-DFQdxkWZ.mjs} +3 -3
- package/dist/{context-BydAGTiB.mjs → context-B2cQ-Nt3.mjs} +29 -3
- package/dist/{create.handler-CBxIPC3r.mjs → create.handler-v9B0Z9Yf.mjs} +1 -1
- package/dist/{credential-env-map-BA4LNI7x.mjs → credential-env-map-Dvp00a4M.mjs} +1 -1
- package/dist/credential-requirements-D0mavK8j-CFMf0Xwu.mjs +619 -0
- package/dist/{credentials-jRiXEr6P.mjs → credentials-DQW8xxof.mjs} +1 -1
- package/dist/{credentials-BGaRMclS.mjs → credentials-Dr5lD7Hm.mjs} +6 -6
- package/dist/{current-deployment-workflow-BVliROAz.mjs → current-deployment-workflow-qMfOrRIu.mjs} +4 -4
- package/dist/{current.handler-DBl9S67d.mjs → current.handler-Cm_-JLyZ.mjs} +1 -1
- package/dist/{delete.handler-Buu7Ip0D.mjs → delete.handler-DtP_zUaq.mjs} +1 -1
- package/dist/{deploy-BPDUTKZD.mjs → deploy-BURTx92e.mjs} +1 -1
- package/dist/{deploy-CzTlgAFj.mjs → deploy-CB6pfCuB.mjs} +2 -2
- package/dist/{deploy-progress-DK87VKJ-.mjs → deploy-progress-Dlp9aBDW.mjs} +1 -1
- package/dist/{deploy.handler-CCcJ7y3A.mjs → deploy.handler-Bg0dpSTj.mjs} +28 -16
- package/dist/{detect-env-access-CwkOYeYM-CNTyUzme.mjs → detect-env-access-CwkOYeYM-D4aTZv4R.mjs} +1 -1
- package/dist/{diff.handler-DUVFixeG.mjs → diff.handler-CJPrszL1.mjs} +4 -4
- package/dist/{dist-Cx0RV8s7.mjs → dist-Br4m3sFZ.mjs} +30 -33
- package/dist/{dist-CIInPRGh.mjs → dist-DuJjDZIf.mjs} +25 -2
- package/dist/{env.handler-C8kNFz2U.mjs → env.handler-6TrLd3fo.mjs} +7 -7
- package/dist/{error-boundary-B8cmSwJH.mjs → error-boundary-DVZipk-A.mjs} +1 -1
- package/dist/{file-metadata-lrX05iRt.mjs → file-metadata-DQVDjr7M.mjs} +2 -7
- package/dist/{import-module--8x5SLum-DjPUZr4i.mjs → import-module-y0glInUe-DxX0-BRO.mjs} +74 -620
- package/dist/{init-DeeOVc9m.mjs → init-DBMtY3eO.mjs} +3 -3
- package/dist/{init.handler-BMdhpusQ.mjs → init.handler-BoYbE-6H.mjs} +3 -3
- package/dist/{inspect.handler-QyTo8rWO.mjs → inspect.handler-Juu2vGbB.mjs} +4 -4
- package/dist/{integration-catalog-CmvYPvI6.mjs → integration-catalog-cYlTmOSb.mjs} +1 -1
- package/dist/{integrations-tXZM-84g.mjs → integrations-cwRfplNG.mjs} +5 -5
- package/dist/{invites-ClyAatBW.mjs → invites-DHyHZOY_.mjs} +4 -4
- package/dist/{invites.list.handler-CPkK_tPM.mjs → invites.list.handler-C-QpsG2J.mjs} +1 -1
- package/dist/{invites.resend.handler-DIRI7tS2.mjs → invites.resend.handler-KFKbSPzR.mjs} +1 -1
- package/dist/{invites.revoke.handler-CcXcDBlU.mjs → invites.revoke.handler-Cuz7jrGC.mjs} +1 -1
- package/dist/keystroke.mjs +21 -21
- package/dist/{list-enrichment-B9238wom.mjs → list-enrichment-CCRHYslm.mjs} +1 -1
- package/dist/{list.handler-Xl_F89kq.mjs → list.handler-6x3GVumu.mjs} +1 -1
- package/dist/{list.handler-tnsRn-Rj.mjs → list.handler-BWsl4iYw.mjs} +4 -4
- package/dist/{list.handler-DdFGHkqt.mjs → list.handler-CLGQDuo5.mjs} +5 -5
- package/dist/{list.handler-BLkQKiV1.mjs → list.handler-Cc-V1TNz.mjs} +1 -1
- package/dist/{list.handler-ClPAPSWm.mjs → list.handler-DRe38pAj.mjs} +2 -2
- package/dist/{list.handler-BB-Dcm5B.mjs → list.handler-Do2tVOnu.mjs} +1 -1
- package/dist/{list.handler-Cbc9rlBx.mjs → list.handler-RtHhrTZ3.mjs} +1 -1
- package/dist/{listen-ksMVpdNa.mjs → listen-DZdSevsB.mjs} +2 -2
- package/dist/{listen.handler-DEJSBg8y.mjs → listen.handler-BccHe1jh.mjs} +2 -2
- package/dist/{logs-C-JxXsgc.mjs → logs-Bh_PBnu6.mjs} +3 -3
- package/dist/{logs.handler-BIegqc2p.mjs → logs.handler-DItDS1zw.mjs} +2 -2
- package/dist/{members.add.handler-D4ggN2Xi.mjs → members.add.handler-D3nQ_Ln6.mjs} +1 -1
- package/dist/{members.invite.handler-BYIt6Oib.mjs → members.invite.handler-rKhg5n_C.mjs} +1 -1
- package/dist/{members.list.handler-CvpeYKC4.mjs → members.list.handler-C9Yh469k.mjs} +1 -1
- package/dist/{members.remove.handler-C4GBUVYE.mjs → members.remove.handler-Dnrck-E6.mjs} +1 -1
- package/dist/{members.update.handler-TpM1oi0L.mjs → members.update.handler-qo5r6arJ.mjs} +1 -1
- package/dist/{normalize-path-CojS-CgQ-D4wSBHgG.mjs → normalize-path-CojS-CgQ-aOM0agxS.mjs} +1 -1
- package/dist/{org-DIGyb7XZ.mjs → org-DnES84sS.mjs} +15 -15
- package/dist/{orgs.create.handler-RIYhse_Q.mjs → orgs.create.handler-DF4eEL-2.mjs} +1 -1
- package/dist/{orgs.get.handler-BfOpbSom.mjs → orgs.get.handler-BmJnseQa.mjs} +1 -1
- package/dist/{orgs.list.handler-BMgj9yTD.mjs → orgs.list.handler-DDVvSbsT.mjs} +1 -1
- package/dist/{paused.handler-DAZ1EaLN.mjs → paused.handler-BLUchSMD.mjs} +1 -1
- package/dist/{projects-Cy6CH3fI.mjs → projects-Cv14bBGy.mjs} +4 -4
- package/dist/{projects-BndElPAx.mjs → projects-ZNcKwds2.mjs} +1 -1
- package/dist/{requirements.handler-C5vobjdJ.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-CNQtOWE4.mjs → resolve-project-Cj3MFnU0.mjs} +1 -1
- package/dist/{run-polling-BhOdFyh3.mjs → run-polling-3XOGl4hh.mjs} +3 -3
- package/dist/{run.handler-BpLmwF_a.mjs → run.handler-DZuUx0fi.mjs} +5 -5
- package/dist/{runs-DaSd4eXn.mjs → runs-BOo3j297.mjs} +2 -2
- package/dist/{cron-parser-Dw_cWzFu.mjs → schemas-D2zfmyC-.mjs} +279 -1
- package/dist/{skills-sync.handler-DOxudKmV.mjs → skills-sync.handler-09mDbx5q.mjs} +1 -1
- package/dist/{skills.command-DQc_qGAF.mjs → skills.command-B-MhRN3J.mjs} +4 -4
- package/dist/{source-analysis-BBg2E_6G-Ut7kYHOz.mjs → source-analysis-BBg2E_6G-wPP9mjQx.mjs} +3 -3
- package/dist/{src-0XVwHXNp.mjs → src-DNhUmpSl.mjs} +1 -1
- package/dist/{switch.handler-CCjMrRZN.mjs → switch.handler-BFGvj5c6.mjs} +2 -2
- package/dist/{sync-BdTQDZjP.mjs → sync-CZ3iUPTA.mjs} +2 -2
- package/dist/{sync.handler-DjY8nqbB.mjs → sync.handler-B1L8I9lF.mjs} +7 -7
- package/dist/{task-BRmL2lmw.mjs → task-BWuIKWh4.mjs} +103 -34
- package/dist/{task-target-build-DCV0UDaz.mjs → task-target-build-CTgl4L42.mjs} +42 -56
- package/dist/task-target-deploy-DeUyfi9H.mjs +4 -0
- package/dist/{task-target-deploy-CZBGNC0H-I-tvkGCC.mjs → task-target-deploy-dQYnMO8n-d2vdeqXH.mjs} +14 -16
- package/dist/task-target-deploy-runner.mjs +6 -6
- package/dist/{test-TTQXrhHm.mjs → test-Byq4hG3C.mjs} +2 -2
- package/dist/{test.handler-B7Ahe9ta.mjs → test.handler-BsrMMj5O.mjs} +9 -9
- package/dist/{test.handler-CkkplyX6.mjs → test.handler-CAsVgOpT.mjs} +1 -1
- package/dist/{tool.handler-DMfFZCRg.mjs → tool.handler-BHS5Z4J_.mjs} +8 -8
- package/dist/{trigger-artifacts-RizI57RC-DjhOsdOm.mjs → trigger-artifacts-BcRScRSp-C-JBJ6y8.mjs} +53 -119
- package/dist/trigger-manifest-C07EM-b2.mjs +43 -0
- package/dist/{upgrade-Cx-bUWUc.mjs → upgrade-bZVjVXnu.mjs} +2 -2
- package/dist/{upload.handler-_d2WZwxd.mjs → upload.handler-DXVx2u3A.mjs} +7 -7
- package/dist/{users.get.handler-DIooG7Wy.mjs → users.get.handler-DqD2ELK2.mjs} +1 -1
- package/dist/{users.list.handler-DdGW-DSg.mjs → users.list.handler-DZSPvpGF.mjs} +1 -1
- package/dist/{users.set-role.handler-Ek-kntLp.mjs → users.set-role.handler-73smNUVF.mjs} +1 -1
- package/dist/{utils-BMUWnz1P.mjs → utils-BaxDlCsW.mjs} +1 -1
- package/dist/{validate.handler-Cq2uJjXY.mjs → validate.handler-CmfcMX0t.mjs} +5 -5
- package/dist/{workflow-build-C8AiYxqp.mjs → workflow-build-Bi1Aacc5.mjs} +22 -22
- package/dist/{workflow-build-manifest-BKKW9D05.mjs → workflow-build-manifest-1sC52TIG.mjs} +4 -4
- package/dist/{workflow-bundler-BzHk73PM-WI31RJjH.mjs → workflow-bundler-BzHk73PM-xQwAF08W.mjs} +2 -2
- package/dist/{workflows-K6zetcqI.mjs → workflows-C_C13Zr0.mjs} +19 -19
- package/dist/{writer-B-SpZ0G2-CLh7sXRd.mjs → writer-byNNUjRm-B-on1n6c.mjs} +23 -32
- package/package.json +12 -12
- package/dist/credential-requirements-Ob-7H-0F.mjs +0 -250
- package/dist/schemas-BxFPUGWT.mjs +0 -281
- package/dist/task-target-deploy-DmpCWE3u.mjs +0 -4
- package/dist/trigger-manifest-DxdCjGz_.mjs +0 -29
- /package/dist/{agent-bundle-package-DWV6B_5q-FPT0bJaA.mjs → agent-bundle-package-DWV6B_5q-B-qzc3zC.mjs} +0 -0
- /package/dist/{agent-manifest-tIsqF2OP.mjs → agent-manifest-Pg0aURo7.mjs} +0 -0
- /package/dist/{browser-BpJ8ut9z.mjs → browser-Dvv5OQrt.mjs} +0 -0
- /package/dist/{clear.handler-C_pXAeBG.mjs → clear.handler-BdR56Cok.mjs} +0 -0
- /package/dist/{concurrency-gXn9Rw8x-BTlfau8D.mjs → concurrency-gXn9Rw8x-CnBnF2cg.mjs} +0 -0
- /package/dist/{credential-schema-mismatch-z74ud-YZ.mjs → credential-schema-mismatch-kfGeiSB1.mjs} +0 -0
- /package/dist/{declared-credential-requirements-D6KT-r-e.mjs → declared-credential-requirements-B6h4WRv4.mjs} +0 -0
- /package/dist/{diff-utils-B0ED-Igv.mjs → diff-utils-CXKNQUXO.mjs} +0 -0
- /package/dist/{layout-P1v-Gssz.mjs → layout-B95Tku8F.mjs} +0 -0
- /package/dist/{logs.handler-DyRoevtO.mjs → logs.handler-Bs1DVMaO.mjs} +0 -0
- /package/dist/{metadata-layout-Bv-B0nHj-B1c5giJ7.mjs → metadata-layout-Bv-B0nHj-CO8mjjSl.mjs} +0 -0
- /package/dist/{oxc-B3KI3rf_-Cvx4Z-4H.mjs → oxc-B3KI3rf_-B9omBIuN.mjs} +0 -0
- /package/dist/{read-credential-keys-77a91T8M-B0eiobOd.mjs → read-credential-keys-77a91T8M-aLuQvlIq.mjs} +0 -0
- /package/dist/{register.handler-BXeh5mdb.mjs → register.handler-C_NqMLir.mjs} +0 -0
- /package/dist/{rolldown-runtime-twds-ZHy-8uqgIurC.mjs → rolldown-runtime-twds-ZHy-RuJszab7.mjs} +0 -0
- /package/dist/{run-polling-DARidqo-.mjs → run-polling-DKWPGLyF.mjs} +0 -0
- /package/dist/{schema-BjH_e4Fo.mjs → schema-DFJiNWyd.mjs} +0 -0
- /package/dist/{schema-display-NVEl_DFY.mjs → schema-display-XrRCdFL0.mjs} +0 -0
- /package/dist/{skill-installer-BBgN2tzW.mjs → skill-installer-Cm9hF6OB.mjs} +0 -0
- /package/dist/{skills.handler-Do9I3dQS.mjs → skills.handler-KEUkV5NH.mjs} +0 -0
- /package/dist/{source-analysis-Cs0CTBQk.mjs → source-analysis-z2RSZw6X.mjs} +0 -0
- /package/dist/{spinner-progress-Bx-fYItP.mjs → spinner-progress-BtEIJRX4.mjs} +0 -0
- /package/dist/{status.handler-BsVtDW_V.mjs → status.handler-CW-EFhy3.mjs} +0 -0
- /package/dist/{types-BMBuhHhW.mjs → types-D1cVpE7_.mjs} +0 -0
- /package/dist/{upgrade.handler-5qSzPC7D.mjs → upgrade.handler-C7KvNL0x.mjs} +0 -0
- /package/dist/{upload-BbcMkyVl.mjs → upload-CE4H5R1h.mjs} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { a as ui, j as throwReportedCliExit } from "./keystroke.mjs";
|
|
4
|
-
import { n as credentials } from "./dist-
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
4
|
+
import { n as credentials } from "./dist-DuJjDZIf.mjs";
|
|
5
|
+
import { i as requireClient } from "./context-B2cQ-Nt3.mjs";
|
|
6
6
|
import { select } from "@clack/prompts";
|
|
7
7
|
//#region src/commands/org/switch.handler.ts
|
|
8
8
|
async function handleOrgSwitch(_options, ctx) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { t as createTypedCommand } from "./commander-
|
|
3
|
+
import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region src/commands/sync/sync.command.ts
|
|
6
6
|
/**
|
|
@@ -32,7 +32,7 @@ function createSyncCommand() {
|
|
|
32
32
|
description: "Sync local workflows with Keystroke",
|
|
33
33
|
schema: SyncOptionsSchema,
|
|
34
34
|
optionsConfig: SYNC_OPTIONS_CONFIG,
|
|
35
|
-
loadHandler: async () => (await import("./sync.handler-
|
|
35
|
+
loadHandler: async () => (await import("./sync.handler-B1L8I9lF.mjs")).handleSync
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { P as logger, a as ui, j as throwReportedCliExit, l as isLocalMode, y as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
-
import { i as projects } from "./dist-
|
|
5
|
-
import { a as validateApiKey, i as requireClient } from "./context-
|
|
6
|
-
import { n as deployFromDir } from "./dist-
|
|
7
|
-
import { t as requireWorkflowsDir } from "./resolve-project-
|
|
8
|
-
import { a as runWorkflowBuild, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-
|
|
9
|
-
import { t as createBuildProgress } from "./build-progress-
|
|
10
|
-
import { t as createDeployProgress } from "./deploy-progress-
|
|
4
|
+
import { i as projects } from "./dist-DuJjDZIf.mjs";
|
|
5
|
+
import { a as validateApiKey, i as requireClient } from "./context-B2cQ-Nt3.mjs";
|
|
6
|
+
import { n as deployFromDir } from "./dist-Br4m3sFZ.mjs";
|
|
7
|
+
import { t as requireWorkflowsDir } from "./resolve-project-Cj3MFnU0.mjs";
|
|
8
|
+
import { a as runWorkflowBuild, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-Bi1Aacc5.mjs";
|
|
9
|
+
import { t as createBuildProgress } from "./build-progress-nYa14iBP.mjs";
|
|
10
|
+
import { t as createDeployProgress } from "./deploy-progress-Dlp9aBDW.mjs";
|
|
11
11
|
//#region src/commands/sync/sync.handler.ts
|
|
12
12
|
async function handleSync(options, ctx) {
|
|
13
13
|
try {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { n as __exportAll } from "./chunk-CH6r78ws.mjs";
|
|
4
|
-
import { a as descriptionString, c as optionalDescriptionString, d as trimmedNonEmptyStringUnbounded, i as createStructuralSchema, n as credentialSetProxyConfigSchema, o as idNoSpacesString, s as jsonSchemaObject, t as CredentialSetManifestSchema, u as trimmedNonEmptyString } from "./schemas-
|
|
5
|
-
import { t as parseCronExpression } from "./cron-parser-Dw_cWzFu.mjs";
|
|
4
|
+
import { a as descriptionString, c as optionalDescriptionString, d as trimmedNonEmptyStringUnbounded, f as parseCronExpression, i as createStructuralSchema, n as credentialSetProxyConfigSchema, o as idNoSpacesString, s as jsonSchemaObject, t as CredentialSetManifestSchema, u as trimmedNonEmptyString } from "./schemas-D2zfmyC-.mjs";
|
|
6
5
|
import { z } from "zod";
|
|
6
|
+
import "node:crypto";
|
|
7
7
|
const SHA256HashSchema = z.string().length(64, "Must be 64 characters").regex(/^[a-f0-9]{64}$/i, "Must be hexadecimal").transform((value) => value);
|
|
8
8
|
const JsonSchemaSchema = z.record(z.string(), z.unknown());
|
|
9
9
|
z.object({
|
|
@@ -215,6 +215,11 @@ const ResolvedCredentialSetSchema = z.object({
|
|
|
215
215
|
proxy: credentialSetProxyConfigSchema.optional(),
|
|
216
216
|
/** When true, resolved values are passed raw (no ref-token proxy) for this set. */
|
|
217
217
|
needsRawSecret: z.boolean().optional(),
|
|
218
|
+
/** When true, this requirement uses a registered dynamic resolver phase. */
|
|
219
|
+
needsDynamicResolution: z.boolean().optional(),
|
|
220
|
+
/** Cache TTL in milliseconds for registered dynamic resolver output.
|
|
221
|
+
* `0` or absence means no cache hint. */
|
|
222
|
+
dynamicResolutionCacheMs: z.number().int().nonnegative().optional(),
|
|
218
223
|
/** Policy when a step throws `CredentialRevokedError` against this credential set. */
|
|
219
224
|
onCredentialRevoked: OnCredentialRevokedSchema.optional(),
|
|
220
225
|
/** Persistence-layer schema fingerprint stamped at build time. The
|
|
@@ -242,6 +247,10 @@ z.object({
|
|
|
242
247
|
/** Optional subset of the stored-shape keys. */
|
|
243
248
|
optionalStoredCredentialKeys: z.array(CredentialRefTokenKeyNameSchema).optional(),
|
|
244
249
|
schemaFingerprint: z.string().optional(),
|
|
250
|
+
needsDynamicResolution: z.boolean().optional(),
|
|
251
|
+
/** Cache TTL in milliseconds for registered dynamic resolver output.
|
|
252
|
+
* `0` or absence means no cache hint. */
|
|
253
|
+
dynamicResolutionCacheMs: z.number().int().nonnegative().optional(),
|
|
245
254
|
/** Policy when a step throws `CredentialRevokedError` against this credential set. */
|
|
246
255
|
onCredentialRevoked: OnCredentialRevokedSchema.optional(),
|
|
247
256
|
proxy: credentialSetProxyConfigSchema.optional(),
|
|
@@ -264,6 +273,11 @@ const CredentialRequirementEntrySchema = z.object({
|
|
|
264
273
|
schemaFingerprint: z.string().optional(),
|
|
265
274
|
proxy: credentialSetProxyConfigSchema.optional(),
|
|
266
275
|
needsRawSecret: z.boolean().optional(),
|
|
276
|
+
/** When true, this requirement uses a registered dynamic resolver phase. */
|
|
277
|
+
needsDynamicResolution: z.boolean().optional(),
|
|
278
|
+
/** Cache TTL in milliseconds for registered dynamic resolver output.
|
|
279
|
+
* `0` or absence means no cache hint. */
|
|
280
|
+
dynamicResolutionCacheMs: z.number().int().nonnegative().optional(),
|
|
267
281
|
/** Policy when a step throws `CredentialRevokedError` against this credential set. */
|
|
268
282
|
onCredentialRevoked: OnCredentialRevokedSchema.optional(),
|
|
269
283
|
requiredOAuthScopes: z.array(z.string()).optional()
|
|
@@ -278,16 +292,11 @@ z.object({
|
|
|
278
292
|
required: z.array(z.string()),
|
|
279
293
|
byStep: z.record(z.string(), z.array(CredentialRequirementEntrySchema))
|
|
280
294
|
});
|
|
281
|
-
const
|
|
282
|
-
"filter",
|
|
283
|
-
"idempotencyKey",
|
|
284
|
-
"verify",
|
|
285
|
-
"callback"
|
|
286
|
-
]);
|
|
295
|
+
const TriggerPollExportNameSchema = z.enum(["poll"]);
|
|
287
296
|
const TriggerCredentialRequirementEntrySchema = CredentialRequirementEntrySchema;
|
|
288
297
|
const TriggerCredentialRequirementsSchema = z.object({
|
|
289
298
|
required: z.array(z.string()),
|
|
290
|
-
|
|
299
|
+
byPollExport: z.partialRecord(TriggerPollExportNameSchema, z.array(TriggerCredentialRequirementEntrySchema))
|
|
291
300
|
});
|
|
292
301
|
const ExecutionIdentityPolicySchema = z.object({ subjectMode: z.enum(["never", "requiredWhenUserProvidedCredential"]) });
|
|
293
302
|
z.object({
|
|
@@ -319,26 +328,45 @@ const TriggerTypeSchema = z.enum([
|
|
|
319
328
|
* can index-filter app-source rows during provider-webhook fanout.
|
|
320
329
|
*/
|
|
321
330
|
const TriggerSourceSchema = z.enum(["custom", "app"]);
|
|
322
|
-
|
|
331
|
+
z.enum([
|
|
323
332
|
"GET",
|
|
324
333
|
"POST",
|
|
325
334
|
"PUT",
|
|
326
335
|
"PATCH"
|
|
327
336
|
]);
|
|
328
|
-
const
|
|
337
|
+
const TriggerPollBundleUploadSchema = z.object({
|
|
329
338
|
code: z.string(),
|
|
330
339
|
hash: z.string(),
|
|
331
340
|
size: z.number()
|
|
332
341
|
});
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
})
|
|
339
|
-
|
|
342
|
+
/** Declarative idempotency-key spec resolved server-side (no VM). */
|
|
343
|
+
const IdempotencyKeyConfigSchema = z.union([
|
|
344
|
+
z.object({
|
|
345
|
+
from: z.literal("payload"),
|
|
346
|
+
strategy: z.literal("hash")
|
|
347
|
+
}),
|
|
348
|
+
z.object({
|
|
349
|
+
from: z.literal("payload"),
|
|
350
|
+
path: z.string().trim().min(1)
|
|
351
|
+
}),
|
|
352
|
+
z.object({
|
|
353
|
+
from: z.literal("header"),
|
|
354
|
+
strategy: z.literal("hash")
|
|
355
|
+
}),
|
|
356
|
+
z.object({
|
|
357
|
+
from: z.literal("header"),
|
|
358
|
+
name: z.string().trim().min(1)
|
|
359
|
+
})
|
|
360
|
+
]);
|
|
361
|
+
const TriggerPollExportsSchema = z.object({ poll: z.string().min(1).optional() });
|
|
340
362
|
z.object({
|
|
341
363
|
id: z.string(),
|
|
364
|
+
/**
|
|
365
|
+
* Authored trigger name from `xxxTrigger({ name: ... })`. Used by the workflow
|
|
366
|
+
* VM to look up the bound `transform`. Follows the `authoredWorkflowId` /
|
|
367
|
+
* `authoredAgentId` naming convention.
|
|
368
|
+
*/
|
|
369
|
+
authoredTriggerId: z.string().min(1),
|
|
342
370
|
type: TriggerTypeSchema,
|
|
343
371
|
/**
|
|
344
372
|
* Source-of-truth discriminator for webhook triggers. `'custom'` means
|
|
@@ -346,20 +374,56 @@ z.object({
|
|
|
346
374
|
* a Keystroke-managed provider app. Undefined for non-webhook triggers.
|
|
347
375
|
*/
|
|
348
376
|
triggerSource: TriggerSourceSchema.optional(),
|
|
377
|
+
/**
|
|
378
|
+
* Root-trigger name for `.narrow()` lineage so narrowed custom webhooks share
|
|
379
|
+
* the same `webhookSecretHash`/`webhookPublicId`. Equals `authoredTriggerId`
|
|
380
|
+
* for root triggers. Omitted for non-webhook triggers.
|
|
381
|
+
*/
|
|
382
|
+
webhookAuthGroupKey: z.string().min(1).optional(),
|
|
349
383
|
enabled: z.boolean(),
|
|
350
|
-
path: z.string().optional(),
|
|
351
|
-
method: WebhookMethodSchema.optional(),
|
|
352
384
|
schedule: z.string().optional(),
|
|
353
385
|
timezone: z.string().optional(),
|
|
354
386
|
config: z.record(z.string(), z.unknown()).optional(),
|
|
355
387
|
requiredCredentials: TriggerCredentialRequirementsSchema.optional(),
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
388
|
+
/** Hex-encoded sha-256 of the Keystroke-issued webhook secret. */
|
|
389
|
+
webhookSecretHash: z.string().min(1).optional(),
|
|
390
|
+
/** Public id surfaced in the webhook URL (header-mode auth). */
|
|
391
|
+
webhookPublicId: z.string().min(1).optional(),
|
|
392
|
+
/** JSON Schema applied at the server before any VM hop. Built from a
|
|
393
|
+
* pure Zod schema declared on the trigger primitive. */
|
|
394
|
+
filterSchema: JsonSchemaSchema.optional(),
|
|
395
|
+
/** Declarative idempotency-key resolver. Webhook-only. */
|
|
396
|
+
idempotencyConfig: IdempotencyKeyConfigSchema.optional(),
|
|
397
|
+
pollStoragePath: z.string().min(1).optional(),
|
|
398
|
+
pollBundle: TriggerPollBundleUploadSchema.optional(),
|
|
399
|
+
pollExports: TriggerPollExportsSchema.optional()
|
|
361
400
|
});
|
|
362
401
|
//#endregion
|
|
402
|
+
//#region ../../packages/core/src/trigger/shared/idempotency-config.ts
|
|
403
|
+
const trimmedString = z.string().trim().min(1);
|
|
404
|
+
const payloadHashSchema = z.object({
|
|
405
|
+
from: z.literal("payload"),
|
|
406
|
+
strategy: z.literal("hash")
|
|
407
|
+
});
|
|
408
|
+
const payloadPathSchema = z.object({
|
|
409
|
+
from: z.literal("payload"),
|
|
410
|
+
path: trimmedString
|
|
411
|
+
});
|
|
412
|
+
const headerHashSchema = z.object({
|
|
413
|
+
from: z.literal("header"),
|
|
414
|
+
strategy: z.literal("hash")
|
|
415
|
+
});
|
|
416
|
+
const headerNameSchema = z.object({
|
|
417
|
+
from: z.literal("header"),
|
|
418
|
+
name: trimmedString
|
|
419
|
+
});
|
|
420
|
+
const idempotencyKeyConfigSchema = z.union([
|
|
421
|
+
payloadHashSchema,
|
|
422
|
+
payloadPathSchema,
|
|
423
|
+
headerHashSchema,
|
|
424
|
+
headerNameSchema
|
|
425
|
+
]);
|
|
426
|
+
//#endregion
|
|
363
427
|
//#region ../../packages/core/src/trigger/schemas.ts
|
|
364
428
|
const credentialSetInstanceSchema = createStructuralSchema([
|
|
365
429
|
"id",
|
|
@@ -367,19 +431,24 @@ const credentialSetInstanceSchema = createStructuralSchema([
|
|
|
367
431
|
"connections"
|
|
368
432
|
], "a CredentialSet instance");
|
|
369
433
|
const TriggerModeDefaultSchema = z.enum(["managed", "subscribable"]);
|
|
370
|
-
const
|
|
371
|
-
|
|
372
|
-
|
|
434
|
+
const TriggerRuntimeDescriptorSchema = z.object({
|
|
435
|
+
/**
|
|
436
|
+
* True when this trigger bundles a `poll` export executed inside a
|
|
437
|
+
* microsandbox VM at trigger time. Polling-only — webhook/cron always
|
|
438
|
+
* leave this undefined. Replaces the legacy `callbacks: { poll, ... }`
|
|
439
|
+
* descriptor (the other callbacks are gone now that filter/idempotency/
|
|
440
|
+
* verify/transform are declarative or run in the workflow VM).
|
|
441
|
+
*/
|
|
373
442
|
poll: z.boolean().optional(),
|
|
374
|
-
|
|
375
|
-
|
|
443
|
+
filterSchema: jsonSchemaObject.optional(),
|
|
444
|
+
/** Webhook-only declarative idempotency-key resolver. */
|
|
445
|
+
idempotencyConfig: idempotencyKeyConfigSchema.optional()
|
|
376
446
|
});
|
|
377
|
-
const TriggerRuntimeDescriptorSchema = z.object({ callbacks: TriggerCallbackPresenceSchema });
|
|
378
447
|
const TriggerManifestSchema = z.object({
|
|
379
448
|
manifestVersion: z.literal(1),
|
|
380
449
|
type: z.literal("trigger"),
|
|
381
450
|
triggerType: TriggerTypeSchema,
|
|
382
|
-
|
|
451
|
+
id: trimmedNonEmptyString("Trigger id"),
|
|
383
452
|
description: descriptionString("Trigger description"),
|
|
384
453
|
enabled: z.boolean(),
|
|
385
454
|
modeDefault: TriggerModeDefaultSchema,
|
|
@@ -393,7 +462,7 @@ z.object({
|
|
|
393
462
|
enabled: z.boolean().default(true),
|
|
394
463
|
executionIdentityPolicy: ExecutionIdentityPolicySchema.optional(),
|
|
395
464
|
modeDefault: TriggerModeDefaultSchema.default("managed"),
|
|
396
|
-
|
|
465
|
+
id: trimmedNonEmptyString("Trigger id")
|
|
397
466
|
});
|
|
398
467
|
//#endregion
|
|
399
468
|
//#region ../../packages/core/src/task/schemas.ts
|
|
@@ -408,7 +477,7 @@ const agentInstanceSchema = createStructuralSchema([
|
|
|
408
477
|
], "an Agent instance");
|
|
409
478
|
const triggerInstanceSchema = createStructuralSchema([
|
|
410
479
|
"isTrigger",
|
|
411
|
-
"
|
|
480
|
+
"id",
|
|
412
481
|
"description",
|
|
413
482
|
"enabled"
|
|
414
483
|
], "a trigger instance (use cronTrigger(), pollingTrigger(), or webhookTrigger())");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { r as getKeystrokeProjectPath } from "./paths-JzzFkXQA-CEipIeVl.mjs";
|
|
4
|
-
import "./dist-
|
|
5
|
-
import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-
|
|
4
|
+
import "./dist-DuJjDZIf.mjs";
|
|
5
|
+
import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-aLuQvlIq.mjs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
8
8
|
import { pathToFileURL } from "node:url";
|
|
@@ -111,7 +111,7 @@ async function buildTaskTargetFile(options) {
|
|
|
111
111
|
return builtTasks;
|
|
112
112
|
}
|
|
113
113
|
async function bundleTaskTargetModule(options) {
|
|
114
|
-
const [{ rolldown }, { createEnvAccessPlugin, formatEnvAccessError }] = await Promise.all([import("rolldown"), import("./detect-env-access-CwkOYeYM-
|
|
114
|
+
const [{ rolldown }, { createEnvAccessPlugin, formatEnvAccessError }] = await Promise.all([import("rolldown"), import("./detect-env-access-CwkOYeYM-D4aTZv4R.mjs").then((n) => n.n).then((n) => n.n)]);
|
|
115
115
|
const entryId = "\0virtual:task-target-entry";
|
|
116
116
|
const trackedDependencies = /* @__PURE__ */ new Set();
|
|
117
117
|
const envViolations = [];
|
|
@@ -218,7 +218,7 @@ async function attachTaskTargetTriggers(options) {
|
|
|
218
218
|
options.artifact.triggers.push(...buildTaskTriggerArtifactsWithoutBundles(options.entry.taskMetadata.triggers, options.artifact.task.taskId, options.artifact.task.taskName));
|
|
219
219
|
return [];
|
|
220
220
|
}
|
|
221
|
-
const { buildTriggerArtifacts } = await import("./trigger-artifacts-
|
|
221
|
+
const { buildTriggerArtifacts } = await import("./trigger-artifacts-BcRScRSp-C-JBJ6y8.mjs").then((n) => n.n);
|
|
222
222
|
const triggerResult = await buildTriggerArtifacts(options.entry.taskMetadata.triggers, options.artifact.task.taskId, options.artifact.task.taskName, options.projectRoot, {
|
|
223
223
|
workflowExportName: options.entry.source.localExportName,
|
|
224
224
|
workflowFilePath: options.entry.runtimeBundlePath
|
|
@@ -237,57 +237,56 @@ async function prepareTaskTargetOutput(options) {
|
|
|
237
237
|
}
|
|
238
238
|
function hasTriggerRuntimeCallbacks(triggers) {
|
|
239
239
|
return triggers.some((trigger) => {
|
|
240
|
-
const
|
|
241
|
-
return trigger.hasTransform ||
|
|
240
|
+
const runtime = trigger.triggerManifest.runtime;
|
|
241
|
+
return trigger.hasTransform || runtime.poll === true;
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
function buildTaskTriggerArtifactsWithoutBundles(loadedTriggers, workflowId, workflowName) {
|
|
245
245
|
return loadedTriggers.map((loaded) => {
|
|
246
246
|
const triggerManifest = loaded.triggerManifest;
|
|
247
|
-
const
|
|
247
|
+
const authoredTriggerId = triggerManifest.id;
|
|
248
248
|
const triggerType = triggerManifest.triggerType;
|
|
249
249
|
const runtime = triggerManifest.runtime;
|
|
250
|
-
const
|
|
250
|
+
const hasPollBundle = "poll" in runtime && runtime.poll === true;
|
|
251
251
|
const webhookSource = "source" in runtime && runtime.source && typeof runtime.source === "object" ? runtime.source : null;
|
|
252
252
|
const projectedConfig = webhookSource ? webhookSource.type === "app" ? { source: {
|
|
253
253
|
type: "app",
|
|
254
254
|
appRef: webhookSource.appRef
|
|
255
|
-
} } : { source: {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
} } : void 0;
|
|
255
|
+
} } : { source: { type: "custom" } } : void 0;
|
|
256
|
+
const filterSchema = "filterSchema" in runtime && runtime.filterSchema && typeof runtime.filterSchema === "object" ? runtime.filterSchema : void 0;
|
|
257
|
+
const idempotencyConfig = "idempotencyConfig" in runtime && runtime.idempotencyConfig ? runtime.idempotencyConfig : void 0;
|
|
258
|
+
const lineage = triggerManifest.lineage;
|
|
259
|
+
const webhookAuthGroupKey = triggerType === "webhook" ? (lineage && lineage.length > 0 ? lineage[0] : void 0) ?? authoredTriggerId : void 0;
|
|
261
260
|
return {
|
|
262
|
-
triggerId: generateTaskTriggerId(workflowId,
|
|
261
|
+
triggerId: generateTaskTriggerId(workflowId, authoredTriggerId),
|
|
263
262
|
triggerType,
|
|
264
|
-
|
|
263
|
+
authoredTriggerId,
|
|
265
264
|
workflowId,
|
|
266
265
|
workflowName,
|
|
267
266
|
sourceFilePath: loaded.sourceFilePath,
|
|
268
267
|
hasTransform: loaded.hasTransform,
|
|
269
|
-
hasFilter: loaded.hasFilter,
|
|
270
268
|
enabled: triggerManifest.enabled,
|
|
269
|
+
...filterSchema ? { filterSchema } : {},
|
|
270
|
+
...idempotencyConfig ? { idempotencyConfig } : {},
|
|
271
271
|
..."schedule" in runtime && typeof runtime.schedule === "string" ? { schedule: runtime.schedule } : {},
|
|
272
272
|
..."timezone" in runtime && typeof runtime.timezone === "string" ? { timezone: runtime.timezone } : {},
|
|
273
273
|
...webhookSource ? { triggerSource: webhookSource.type } : {},
|
|
274
|
-
...
|
|
275
|
-
...webhookSource?.type === "custom" && webhookSource.method ? { method: webhookSource.method } : {},
|
|
274
|
+
...webhookAuthGroupKey ? { webhookAuthGroupKey } : {},
|
|
276
275
|
...projectedConfig ? { config: projectedConfig } : {},
|
|
277
276
|
...triggerManifest.modeDefault ? { modeDefault: triggerManifest.modeDefault } : {},
|
|
278
|
-
...triggerManifest.credentialSets ? { requiredCredentials: buildTaskTriggerCredentialRequirements(triggerManifest.credentialSets,
|
|
277
|
+
...triggerManifest.credentialSets ? { requiredCredentials: buildTaskTriggerCredentialRequirements(triggerManifest.credentialSets, hasPollBundle) } : {},
|
|
279
278
|
...loaded.staticPayload !== void 0 ? { staticPayload: loaded.staticPayload } : {},
|
|
280
279
|
trigger: loaded.triggerManifest
|
|
281
280
|
};
|
|
282
281
|
});
|
|
283
282
|
}
|
|
284
|
-
function generateTaskTriggerId(workflowId,
|
|
285
|
-
return createHash("sha256").update(`${workflowId}::${
|
|
283
|
+
function generateTaskTriggerId(workflowId, authoredTriggerId) {
|
|
284
|
+
return createHash("sha256").update(`${workflowId}::${authoredTriggerId}`).digest("hex").slice(0, 16);
|
|
286
285
|
}
|
|
287
|
-
function buildTaskTriggerCredentialRequirements(credentialSets,
|
|
286
|
+
function buildTaskTriggerCredentialRequirements(credentialSets, hasPollBundle) {
|
|
288
287
|
if (!credentialSets || credentialSets.length === 0) return {
|
|
289
288
|
required: [],
|
|
290
|
-
|
|
289
|
+
byPollExport: {}
|
|
291
290
|
};
|
|
292
291
|
const entries = credentialSets.map((credentialSet) => {
|
|
293
292
|
const optionalCredentialKeys = readOptionalJsonSchemaKeysFromSchemaObject(credentialSet.auth);
|
|
@@ -302,12 +301,11 @@ function buildTaskTriggerCredentialRequirements(credentialSets, callbacks) {
|
|
|
302
301
|
};
|
|
303
302
|
});
|
|
304
303
|
const requiredIds = credentialSets.map((credentialSet) => credentialSet.id);
|
|
305
|
-
const
|
|
306
|
-
if (
|
|
307
|
-
if (callbacks?.verify) byCallback.verify = entries;
|
|
304
|
+
const byPollExport = {};
|
|
305
|
+
if (hasPollBundle) byPollExport.poll = entries;
|
|
308
306
|
return {
|
|
309
307
|
required: requiredIds,
|
|
310
|
-
|
|
308
|
+
byPollExport
|
|
311
309
|
};
|
|
312
310
|
}
|
|
313
311
|
function createPreparedTaskTarget(artifact, triggers) {
|
|
@@ -321,7 +319,7 @@ function createPreparedTaskTarget(artifact, triggers) {
|
|
|
321
319
|
};
|
|
322
320
|
}
|
|
323
321
|
async function tryParseTaskBuildManifest(manifest) {
|
|
324
|
-
const { TaskBuildManifestSchema } = await import("./task-
|
|
322
|
+
const { TaskBuildManifestSchema } = await import("./task-BWuIKWh4.mjs").then((n) => n.t);
|
|
325
323
|
const result = TaskBuildManifestSchema.safeParse(manifest);
|
|
326
324
|
return result.success ? result.data : null;
|
|
327
325
|
}
|
|
@@ -353,7 +351,6 @@ function discoverTaskTriggers(task, importedModule, sourceFilePath) {
|
|
|
353
351
|
triggerExportName: findTriggerExportName(entry, trigger, importedModule),
|
|
354
352
|
sourceFilePath,
|
|
355
353
|
hasTransform: isBound && typeof entry.transform === "function",
|
|
356
|
-
hasFilter: isBound ? typeof entry.filter === "function" : typeof trigger.filter === "function",
|
|
357
354
|
staticPayload,
|
|
358
355
|
triggerIndex
|
|
359
356
|
});
|
|
@@ -367,7 +364,7 @@ function isTaskLike(value) {
|
|
|
367
364
|
return isRecord(value) && typeof value.toManifest === "function";
|
|
368
365
|
}
|
|
369
366
|
function isTriggerLike(value) {
|
|
370
|
-
return isRecord(value) && typeof value.
|
|
367
|
+
return isRecord(value) && typeof value.id === "string" && typeof value.toManifest === "function";
|
|
371
368
|
}
|
|
372
369
|
function isBoundTriggerLike(value) {
|
|
373
370
|
return isRecord(value) && value.isBoundTrigger === true && isTriggerLike(value.trigger);
|
|
@@ -379,47 +376,36 @@ function findTriggerExportName(entry, trigger, importedModule) {
|
|
|
379
376
|
for (const [name, value] of Object.entries(importedModule)) {
|
|
380
377
|
if (value === entry || value === trigger) return name;
|
|
381
378
|
if (isBoundTriggerLike(value) && (value === entry || value.trigger === trigger)) return name;
|
|
382
|
-
if (isTriggerLike(value) && value.
|
|
379
|
+
if (isTriggerLike(value) && value.id === trigger.id) return name;
|
|
383
380
|
}
|
|
384
381
|
}
|
|
385
382
|
function toTriggerUploadData(trigger) {
|
|
386
|
-
const
|
|
387
|
-
const transformCallbackExports = trigger.transformCallbackExports;
|
|
383
|
+
const pollExports = trigger.pollExports;
|
|
388
384
|
return {
|
|
389
385
|
id: trigger.triggerId,
|
|
386
|
+
authoredTriggerId: trigger.authoredTriggerId,
|
|
390
387
|
type: trigger.triggerType,
|
|
391
388
|
...trigger.triggerSource ? { triggerSource: trigger.triggerSource } : {},
|
|
389
|
+
...trigger.webhookAuthGroupKey ? { webhookAuthGroupKey: trigger.webhookAuthGroupKey } : {},
|
|
392
390
|
enabled: trigger.enabled,
|
|
393
|
-
...trigger.path ? { path: trigger.path } : {},
|
|
394
|
-
...trigger.method ? { method: trigger.method } : {},
|
|
395
391
|
...trigger.schedule ? { schedule: trigger.schedule } : {},
|
|
396
392
|
...trigger.timezone ? { timezone: trigger.timezone } : {},
|
|
397
393
|
...trigger.config ? { config: trigger.config } : {},
|
|
398
394
|
...trigger.requiredCredentials ? { requiredCredentials: trigger.requiredCredentials } : {},
|
|
399
|
-
...
|
|
400
|
-
...trigger.
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
...trigger.transformCallbackBundle ? { transformCallbackBundle: {
|
|
407
|
-
code: trigger.transformCallbackBundle.code,
|
|
408
|
-
hash: trigger.transformCallbackBundle.hash ?? createHash("sha256").update(trigger.transformCallbackBundle.code).digest("hex"),
|
|
409
|
-
size: trigger.transformCallbackBundle.size
|
|
395
|
+
...trigger.filterSchema ? { filterSchema: trigger.filterSchema } : {},
|
|
396
|
+
...trigger.idempotencyConfig ? { idempotencyConfig: trigger.idempotencyConfig } : {},
|
|
397
|
+
...pollExports ? { pollExports } : {},
|
|
398
|
+
...trigger.pollBundle ? { pollBundle: {
|
|
399
|
+
code: trigger.pollBundle.code,
|
|
400
|
+
hash: trigger.pollBundle.hash ?? createHash("sha256").update(trigger.pollBundle.code).digest("hex"),
|
|
401
|
+
size: trigger.pollBundle.size
|
|
410
402
|
} } : {}
|
|
411
403
|
};
|
|
412
404
|
}
|
|
413
405
|
function releaseTriggerBundleCode(triggers) {
|
|
414
|
-
for (const trigger of triggers) {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
trigger.callbackBundle.released = true;
|
|
418
|
-
}
|
|
419
|
-
if (trigger.transformCallbackBundle) {
|
|
420
|
-
trigger.transformCallbackBundle.code = "";
|
|
421
|
-
trigger.transformCallbackBundle.released = true;
|
|
422
|
-
}
|
|
406
|
+
for (const trigger of triggers) if (trigger.pollBundle) {
|
|
407
|
+
trigger.pollBundle.code = "";
|
|
408
|
+
trigger.pollBundle.released = true;
|
|
423
409
|
}
|
|
424
410
|
}
|
|
425
411
|
function releaseBuiltTaskTargets(builtTasks) {
|
package/dist/{task-target-deploy-CZBGNC0H-I-tvkGCC.mjs → task-target-deploy-dQYnMO8n-d2vdeqXH.mjs}
RENAMED
|
@@ -50,18 +50,18 @@ function normalizeWorkflowManifest(manifest) {
|
|
|
50
50
|
function normalizeTrigger(trigger) {
|
|
51
51
|
return sortObjectKeysDeep({
|
|
52
52
|
id: trigger.id,
|
|
53
|
+
authoredTriggerId: trigger.authoredTriggerId,
|
|
53
54
|
type: trigger.type,
|
|
54
55
|
enabled: trigger.enabled,
|
|
55
|
-
...trigger.
|
|
56
|
-
...trigger.method !== void 0 ? { method: trigger.method } : {},
|
|
56
|
+
...trigger.webhookAuthGroupKey !== void 0 ? { webhookAuthGroupKey: trigger.webhookAuthGroupKey } : {},
|
|
57
57
|
...trigger.schedule !== void 0 ? { schedule: trigger.schedule } : {},
|
|
58
58
|
...trigger.timezone !== void 0 ? { timezone: trigger.timezone } : {},
|
|
59
59
|
...trigger.config !== void 0 ? { config: trigger.config } : {},
|
|
60
60
|
...trigger.requiredCredentials !== void 0 ? { requiredCredentials: trigger.requiredCredentials } : {},
|
|
61
|
-
...trigger.
|
|
62
|
-
...trigger.
|
|
63
|
-
...trigger.
|
|
64
|
-
...trigger.
|
|
61
|
+
...trigger.filterSchema !== void 0 ? { filterSchema: trigger.filterSchema } : {},
|
|
62
|
+
...trigger.idempotencyConfig !== void 0 ? { idempotencyConfig: trigger.idempotencyConfig } : {},
|
|
63
|
+
...trigger.pollBundle ? { pollBundleHash: trigger.pollBundle.hash } : {},
|
|
64
|
+
...trigger.pollExports !== void 0 ? { pollExports: trigger.pollExports } : {}
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
function normalizeAgentManifest(manifest) {
|
|
@@ -100,7 +100,7 @@ function buildCanonicalProjectSnapshotPayload(params) {
|
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
//#endregion
|
|
103
|
-
//#region ../../packages/workflow-deploy/dist/task-target-deploy-
|
|
103
|
+
//#region ../../packages/workflow-deploy/dist/task-target-deploy-dQYnMO8n.mjs
|
|
104
104
|
function computeProjectSnapshotHash(params) {
|
|
105
105
|
const hex = createHash("sha256").update(JSON.stringify(buildCanonicalProjectSnapshotPayload({
|
|
106
106
|
workflows: params.workflows,
|
|
@@ -149,7 +149,7 @@ async function deployTaskTargets(options) {
|
|
|
149
149
|
tasksToDeploy
|
|
150
150
|
}) });
|
|
151
151
|
} finally {
|
|
152
|
-
|
|
152
|
+
releasePreparedTaskPollBundleCode(tasksToDeploy);
|
|
153
153
|
}
|
|
154
154
|
const taskResults = deployResult.tasks ?? [];
|
|
155
155
|
onDeployProgressEvent?.({
|
|
@@ -159,7 +159,7 @@ async function deployTaskTargets(options) {
|
|
|
159
159
|
failed: taskResults.filter((item) => item.status === "failed").length,
|
|
160
160
|
elapsedMs: Date.now() - registerStartedAt
|
|
161
161
|
});
|
|
162
|
-
return finalizeTaskTargetResult([...skippedTasks, ...taskResults.map(mapTaskResultStatus)], startedAt);
|
|
162
|
+
return finalizeTaskTargetResult([...skippedTasks, ...taskResults.map(mapTaskResultStatus)], startedAt, deployResult.newWebhookCredentials);
|
|
163
163
|
}
|
|
164
164
|
function buildTaskTargetDeployRequest(params) {
|
|
165
165
|
return {
|
|
@@ -251,19 +251,17 @@ function mapTaskResultStatus(result) {
|
|
|
251
251
|
taskId: result.taskId
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
|
-
function
|
|
255
|
-
for (const task of preparedTasks) for (const trigger of task.triggers)
|
|
256
|
-
if (trigger.callbackBundle) trigger.callbackBundle.code = "";
|
|
257
|
-
if (trigger.transformCallbackBundle) trigger.transformCallbackBundle.code = "";
|
|
258
|
-
}
|
|
254
|
+
function releasePreparedTaskPollBundleCode(preparedTasks) {
|
|
255
|
+
for (const task of preparedTasks) for (const trigger of task.triggers) if (trigger.pollBundle) trigger.pollBundle.code = "";
|
|
259
256
|
}
|
|
260
|
-
function finalizeTaskTargetResult(tasks, startedAt) {
|
|
257
|
+
function finalizeTaskTargetResult(tasks, startedAt, newWebhookCredentials) {
|
|
261
258
|
return {
|
|
262
259
|
success: tasks.every((task) => task.status !== "failed"),
|
|
263
260
|
workflows: [],
|
|
264
261
|
agents: [],
|
|
265
262
|
tasks,
|
|
266
|
-
totalTime: Date.now() - startedAt
|
|
263
|
+
totalTime: Date.now() - startedAt,
|
|
264
|
+
...newWebhookCredentials ? { newWebhookCredentials } : {}
|
|
267
265
|
};
|
|
268
266
|
}
|
|
269
267
|
//#endregion
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { r as getKeystrokeProjectPath } from "./paths-JzzFkXQA-CEipIeVl.mjs";
|
|
4
4
|
import "./default-urls-BoSm4s9C.mjs";
|
|
5
|
-
import "./dist-
|
|
5
|
+
import "./dist-DuJjDZIf.mjs";
|
|
6
6
|
import { n as findProjectRoot, t as assertWorkflowProjectRoot } from "./project-config-DudGRFPO.mjs";
|
|
7
|
-
import { t as resolveCliCredentials } from "./resolve-cli-credentials-
|
|
7
|
+
import { t as resolveCliCredentials } from "./resolve-cli-credentials-DaMDaamj.mjs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
10
10
|
import { spawnSync } from "node:child_process";
|
|
@@ -119,7 +119,7 @@ function restartStage(options, projectRoot, stage) {
|
|
|
119
119
|
}
|
|
120
120
|
async function runBuildPhase(options, projectRoot) {
|
|
121
121
|
const projectConfig = await assertWorkflowProjectRoot(projectRoot);
|
|
122
|
-
const { buildTaskTargetEntries } = await import("./task-target-build-
|
|
122
|
+
const { buildTaskTargetEntries } = await import("./task-target-build-CTgl4L42.mjs");
|
|
123
123
|
await writeBuildDescriptor(projectRoot, {
|
|
124
124
|
projectRoot,
|
|
125
125
|
projectConfig,
|
|
@@ -132,7 +132,7 @@ async function runBuildPhase(options, projectRoot) {
|
|
|
132
132
|
}
|
|
133
133
|
async function runPreparePhase(projectRoot) {
|
|
134
134
|
const buildDescriptor = await readBuildDescriptor(projectRoot);
|
|
135
|
-
const { prepareTaskTargetBuiltTasks } = await import("./task-target-build-
|
|
135
|
+
const { prepareTaskTargetBuiltTasks } = await import("./task-target-build-CTgl4L42.mjs");
|
|
136
136
|
const prepareResult = await prepareTaskTargetBuiltTasks({
|
|
137
137
|
builtTasks: buildDescriptor.builtTasks,
|
|
138
138
|
projectRoot
|
|
@@ -163,11 +163,11 @@ async function resolveDeployAuthOptions(options) {
|
|
|
163
163
|
}
|
|
164
164
|
async function runDeployPhase(options, projectRoot) {
|
|
165
165
|
const descriptor = await readDescriptor(projectRoot);
|
|
166
|
-
const { createDeployClient } = await import("./deploy-
|
|
166
|
+
const { createDeployClient } = await import("./deploy-BURTx92e.mjs");
|
|
167
167
|
const client = createDeployClient(await resolveDeployAuthOptions(options));
|
|
168
168
|
const auth = await client.public.auth.validate();
|
|
169
169
|
if (auth.organizationId !== descriptor.projectConfig.organizationId) throw new Error(`Project organization mismatch: config=${descriptor.projectConfig.organizationId} auth=${auth.organizationId}`);
|
|
170
|
-
const { deployTaskTargets } = await import("./task-target-deploy-
|
|
170
|
+
const { deployTaskTargets } = await import("./task-target-deploy-DeUyfi9H.mjs");
|
|
171
171
|
const result = await deployTaskTargets({
|
|
172
172
|
preparedTasks: descriptor.preparedTasks,
|
|
173
173
|
client,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { a as ui } from "./keystroke.mjs";
|
|
4
4
|
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { t as createTypedCommand } from "./commander-
|
|
5
|
+
import { t as createTypedCommand } from "./commander-9Kro0Dl3.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region src/commands/test/test.command.ts
|
|
8
8
|
const TestOptionsSchema = JsonOptionSchema;
|
|
@@ -63,7 +63,7 @@ function createTestCommand() {
|
|
|
63
63
|
description: "Agent tool name from the built manifest",
|
|
64
64
|
key: "toolName"
|
|
65
65
|
},
|
|
66
|
-
loadHandler: async () => (await import("./tool.handler-
|
|
66
|
+
loadHandler: async () => (await import("./tool.handler-BHS5Z4J_.mjs")).handleTestTool
|
|
67
67
|
})]
|
|
68
68
|
});
|
|
69
69
|
cmd.enablePositionalOptions();
|