rivetkit 2.1.4 → 2.1.6-rc.1
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/browser/client.d.ts +593 -588
- package/dist/browser/client.js +215 -35
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +109 -10
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/inspector.tar.gz +0 -0
- package/dist/tsup/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/{actor-router-consts-D29T1Z-K.d.cts → actor-router-consts-DU-1IdQj.d.cts} +1 -1
- package/dist/tsup/{actor-router-consts-D29T1Z-K.d.ts → actor-router-consts-DU-1IdQj.d.ts} +1 -1
- package/dist/tsup/chunk-2ELYUO6C.cjs +112 -0
- package/dist/tsup/chunk-2ELYUO6C.cjs.map +1 -0
- package/dist/tsup/chunk-2LY7RW3Y.cjs +2316 -0
- package/dist/tsup/chunk-2LY7RW3Y.cjs.map +1 -0
- package/dist/tsup/{chunk-L47L3ZWJ.cjs → chunk-6G7ZNM27.cjs} +11 -6
- package/dist/tsup/chunk-6G7ZNM27.cjs.map +1 -0
- package/dist/tsup/{chunk-LK36OGGO.cjs → chunk-A4KEUCB6.cjs} +84 -34
- package/dist/tsup/chunk-A4KEUCB6.cjs.map +1 -0
- package/dist/tsup/{chunk-7HTNH26M.js → chunk-AKUJ5OTO.js} +11 -6
- package/dist/tsup/chunk-AKUJ5OTO.js.map +1 -0
- package/dist/tsup/{chunk-ANKZ2FS6.js → chunk-C22JYHVT.js} +77 -27
- package/dist/tsup/chunk-C22JYHVT.js.map +1 -0
- package/dist/tsup/chunk-C4EB42ET.js +1459 -0
- package/dist/tsup/chunk-C4EB42ET.js.map +1 -0
- package/dist/tsup/chunk-CGGGBIDP.cjs +1459 -0
- package/dist/tsup/chunk-CGGGBIDP.cjs.map +1 -0
- package/dist/tsup/chunk-CMQPDBBR.cjs +1486 -0
- package/dist/tsup/chunk-CMQPDBBR.cjs.map +1 -0
- package/dist/tsup/{chunk-AQD4CBZ2.cjs → chunk-DH6UINWA.cjs} +4 -4
- package/dist/tsup/{chunk-AQD4CBZ2.cjs.map → chunk-DH6UINWA.cjs.map} +1 -1
- package/dist/tsup/chunk-DK46YYCJ.js +1486 -0
- package/dist/tsup/chunk-DK46YYCJ.js.map +1 -0
- package/dist/tsup/chunk-EGWXXBZV.js +2316 -0
- package/dist/tsup/chunk-EGWXXBZV.js.map +1 -0
- package/dist/tsup/{chunk-HBYEYBIC.js → chunk-EONWXYMN.js} +2 -2
- package/dist/tsup/{chunk-N4KRDJ56.js → chunk-GFGRBYO2.js} +35 -6
- package/dist/tsup/chunk-GFGRBYO2.js.map +1 -0
- package/dist/tsup/{chunk-TEUL4UYN.cjs → chunk-GUHXWPGB.cjs} +1515 -1479
- package/dist/tsup/chunk-GUHXWPGB.cjs.map +1 -0
- package/dist/tsup/{chunk-3B6PCYJB.cjs → chunk-HNE2AK6C.cjs} +2375 -3713
- package/dist/tsup/chunk-HNE2AK6C.cjs.map +1 -0
- package/dist/tsup/{chunk-5UEFNG7P.js → chunk-I5I6OALK.js} +2 -2
- package/dist/tsup/chunk-IHQAF2HV.cjs +23 -0
- package/dist/tsup/chunk-IHQAF2HV.cjs.map +1 -0
- package/dist/tsup/{chunk-UWAGLDT6.cjs → chunk-JJNZQDUN.cjs} +667 -2517
- package/dist/tsup/chunk-JJNZQDUN.cjs.map +1 -0
- package/dist/tsup/{chunk-M6H4XIF4.js → chunk-JJSPHLJN.js} +219 -287
- package/dist/tsup/chunk-JJSPHLJN.js.map +1 -0
- package/dist/tsup/chunk-JRKPV5NJ.js +481 -0
- package/dist/tsup/chunk-JRKPV5NJ.js.map +1 -0
- package/dist/tsup/{chunk-VKVNIQRQ.js → chunk-K7MVU5SI.js} +36 -41
- package/dist/tsup/chunk-K7MVU5SI.js.map +1 -0
- package/dist/tsup/{chunk-KJSYAUOM.js → chunk-MLK3GY6P.js} +43 -27
- package/dist/tsup/chunk-MLK3GY6P.js.map +1 -0
- package/dist/tsup/{chunk-4KSHPFXF.cjs → chunk-MPLMTJY5.cjs} +123 -23
- package/dist/tsup/chunk-MPLMTJY5.cjs.map +1 -0
- package/dist/tsup/{chunk-UDMRZR6A.js → chunk-PQWI44WD.js} +1755 -3093
- package/dist/tsup/chunk-PQWI44WD.js.map +1 -0
- package/dist/tsup/{chunk-SR3KQE7Q.cjs → chunk-SQFCIDCG.cjs} +35 -6
- package/dist/tsup/chunk-SQFCIDCG.cjs.map +1 -0
- package/dist/tsup/{chunk-3GTO6H3E.js → chunk-SVHJSM2E.js} +110 -24
- package/dist/tsup/chunk-SVHJSM2E.js.map +1 -0
- package/dist/tsup/chunk-T5KYKM6R.js +49 -0
- package/dist/tsup/chunk-T5KYKM6R.js.map +1 -0
- package/dist/tsup/{chunk-GXRVSSVD.cjs → chunk-TJ7DKW6F.cjs} +123 -37
- package/dist/tsup/chunk-TJ7DKW6F.cjs.map +1 -0
- package/dist/tsup/chunk-UQZRMTM3.js +23 -0
- package/dist/tsup/chunk-UQZRMTM3.js.map +1 -0
- package/dist/tsup/{chunk-QPADHLDU.cjs → chunk-V3JSZR5P.cjs} +3 -3
- package/dist/tsup/{chunk-QPADHLDU.cjs.map → chunk-V3JSZR5P.cjs.map} +1 -1
- package/dist/tsup/{chunk-HKOSZKKZ.cjs → chunk-VBR35EQF.cjs} +271 -339
- package/dist/tsup/chunk-VBR35EQF.cjs.map +1 -0
- package/dist/tsup/{chunk-DZXDUGLL.js → chunk-VWYO36X4.js} +117 -17
- package/dist/tsup/chunk-VWYO36X4.js.map +1 -0
- package/dist/tsup/{chunk-I6PL6QIY.js → chunk-WW27B6DM.js} +1452 -1416
- package/dist/tsup/chunk-WW27B6DM.js.map +1 -0
- package/dist/tsup/chunk-YAE3MEJM.cjs +49 -0
- package/dist/tsup/chunk-YAE3MEJM.cjs.map +1 -0
- package/dist/tsup/{chunk-KTWY3K6Z.js → chunk-YGYGANCA.js} +473 -2323
- package/dist/tsup/chunk-YGYGANCA.js.map +1 -0
- package/dist/tsup/chunk-YZJWZBY5.cjs +481 -0
- package/dist/tsup/chunk-YZJWZBY5.cjs.map +1 -0
- package/dist/tsup/{chunk-ZFY5J2EP.cjs → chunk-ZZLJ5TSM.cjs} +39 -44
- package/dist/tsup/chunk-ZZLJ5TSM.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +10 -7
- package/dist/tsup/client/mod.cjs.map +1 -1
- package/dist/tsup/client/mod.d.cts +6 -6
- package/dist/tsup/client/mod.d.ts +6 -6
- package/dist/tsup/client/mod.js +11 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{config-Qj-zLJPc.d.ts → config-C2Wwnc69.d.ts} +142 -208
- package/dist/tsup/{config-BiNoIHRs.d.ts → config-DROwzBLT.d.cts} +82 -6
- package/dist/tsup/{config-BiNoIHRs.d.cts → config-DROwzBLT.d.ts} +82 -6
- package/dist/tsup/{config-iPj5l1bL.d.cts → config-ehT-_3BB.d.cts} +142 -208
- package/dist/tsup/{context-DzvH1PBK.d.cts → context-DGMJuAyc.d.ts} +16 -3
- package/dist/tsup/{context-CQCMuHND.d.ts → context-Dpp2RJbW.d.cts} +16 -3
- package/dist/tsup/db/drizzle/mod.cjs +3 -3
- package/dist/tsup/db/drizzle/mod.d.cts +1 -1
- package/dist/tsup/db/drizzle/mod.d.ts +1 -1
- package/dist/tsup/db/drizzle/mod.js +2 -2
- package/dist/tsup/db/mod.cjs +3 -3
- package/dist/tsup/db/mod.d.cts +1 -1
- package/dist/tsup/db/mod.d.ts +1 -1
- package/dist/tsup/db/mod.js +2 -2
- package/dist/tsup/{driver-Jo8v-kbU.d.ts → driver-CYZP9QYo.d.ts} +1 -1
- package/dist/tsup/{driver-iV8J-WMv.d.cts → driver-CoTFpipv.d.cts} +1 -1
- package/dist/tsup/driver-helpers/mod.cjs +7 -5
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +17 -18
- package/dist/tsup/driver-helpers/mod.d.ts +17 -18
- package/dist/tsup/driver-helpers/mod.js +11 -9
- package/dist/tsup/driver-test-suite/mod.cjs +1275 -228
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +6 -5
- package/dist/tsup/driver-test-suite/mod.d.ts +6 -5
- package/dist/tsup/driver-test-suite/mod.js +1581 -534
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +4 -4
- package/dist/tsup/inspector/mod.js +3 -3
- package/dist/tsup/mod.cjs +15 -9
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +9 -9
- package/dist/tsup/mod.d.ts +9 -9
- package/dist/tsup/mod.js +19 -13
- package/dist/tsup/sandbox/client.cjs +28 -0
- package/dist/tsup/sandbox/client.cjs.map +1 -0
- package/dist/tsup/sandbox/client.d.cts +88 -0
- package/dist/tsup/sandbox/client.d.ts +88 -0
- package/dist/tsup/sandbox/client.js +28 -0
- package/dist/tsup/sandbox/client.js.map +1 -0
- package/dist/tsup/sandbox/index.cjs +761 -0
- package/dist/tsup/sandbox/index.cjs.map +1 -0
- package/dist/tsup/sandbox/index.d.cts +120 -0
- package/dist/tsup/sandbox/index.d.ts +120 -0
- package/dist/tsup/sandbox/index.js +761 -0
- package/dist/tsup/sandbox/index.js.map +1 -0
- package/dist/tsup/sandbox/providers/computesdk.cjs +3 -0
- package/dist/tsup/sandbox/providers/computesdk.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/computesdk.d.cts +7 -0
- package/dist/tsup/sandbox/providers/computesdk.d.ts +7 -0
- package/dist/tsup/sandbox/providers/computesdk.js +3 -0
- package/dist/tsup/sandbox/providers/computesdk.js.map +1 -0
- package/dist/tsup/sandbox/providers/daytona.cjs +3 -0
- package/dist/tsup/sandbox/providers/daytona.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/daytona.d.cts +1 -0
- package/dist/tsup/sandbox/providers/daytona.d.ts +1 -0
- package/dist/tsup/sandbox/providers/daytona.js +3 -0
- package/dist/tsup/sandbox/providers/daytona.js.map +1 -0
- package/dist/tsup/sandbox/providers/docker.cjs +3 -0
- package/dist/tsup/sandbox/providers/docker.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/docker.d.cts +1 -0
- package/dist/tsup/sandbox/providers/docker.d.ts +1 -0
- package/dist/tsup/sandbox/providers/docker.js +3 -0
- package/dist/tsup/sandbox/providers/docker.js.map +1 -0
- package/dist/tsup/sandbox/providers/e2b.cjs +3 -0
- package/dist/tsup/sandbox/providers/e2b.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/e2b.d.cts +1 -0
- package/dist/tsup/sandbox/providers/e2b.d.ts +1 -0
- package/dist/tsup/sandbox/providers/e2b.js +3 -0
- package/dist/tsup/sandbox/providers/e2b.js.map +1 -0
- package/dist/tsup/sandbox/providers/local.cjs +3 -0
- package/dist/tsup/sandbox/providers/local.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/local.d.cts +1 -0
- package/dist/tsup/sandbox/providers/local.d.ts +1 -0
- package/dist/tsup/sandbox/providers/local.js +3 -0
- package/dist/tsup/sandbox/providers/local.js.map +1 -0
- package/dist/tsup/sandbox/providers/modal.cjs +3 -0
- package/dist/tsup/sandbox/providers/modal.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/modal.d.cts +1 -0
- package/dist/tsup/sandbox/providers/modal.d.ts +1 -0
- package/dist/tsup/sandbox/providers/modal.js +3 -0
- package/dist/tsup/sandbox/providers/modal.js.map +1 -0
- package/dist/tsup/sandbox/providers/vercel.cjs +3 -0
- package/dist/tsup/sandbox/providers/vercel.cjs.map +1 -0
- package/dist/tsup/sandbox/providers/vercel.d.cts +1 -0
- package/dist/tsup/sandbox/providers/vercel.d.ts +1 -0
- package/dist/tsup/sandbox/providers/vercel.js +3 -0
- package/dist/tsup/sandbox/providers/vercel.js.map +1 -0
- package/dist/tsup/serve-test-suite/mod.cjs +451 -327
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/serve-test-suite/mod.js +362 -238
- package/dist/tsup/serve-test-suite/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +17 -14
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +4 -4
- package/dist/tsup/test/mod.d.ts +4 -4
- package/dist/tsup/test/mod.js +14 -11
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/utils.cjs +3 -3
- package/dist/tsup/utils.js +2 -2
- package/dist/tsup/workflow/mod.cjs +6 -6
- package/dist/tsup/workflow/mod.d.cts +13 -9
- package/dist/tsup/workflow/mod.d.ts +13 -9
- package/dist/tsup/workflow/mod.js +5 -5
- package/package.json +113 -14
- package/src/actor/config.ts +94 -88
- package/src/actor/conn/drivers/websocket.ts +2 -1
- package/src/actor/contexts/base/actor.ts +27 -4
- package/src/actor/database.ts +6 -1
- package/src/actor/driver.ts +27 -8
- package/src/actor/errors.ts +10 -5
- package/src/actor/instance/connection-manager.ts +4 -3
- package/src/actor/instance/kv.ts +52 -9
- package/src/actor/instance/mod.ts +135 -84
- package/src/actor/instance/queue-manager.ts +2 -5
- package/src/actor/instance/queue.ts +31 -29
- package/src/actor/instance/state-manager.ts +7 -1
- package/src/actor/instance/traces-driver.ts +34 -36
- package/src/actor/metrics.ts +137 -0
- package/src/actor/protocol/old.ts +9 -12
- package/src/actor/router-websocket-endpoints.ts +12 -6
- package/src/actor/router.ts +46 -9
- package/src/actor/schema.ts +14 -22
- package/src/client/actor-common.ts +65 -0
- package/src/client/actor-conn.ts +71 -9
- package/src/client/actor-handle.ts +22 -5
- package/src/client/client.ts +32 -6
- package/src/client/config.ts +18 -21
- package/src/client/mod.ts +1 -0
- package/src/client/queue.ts +8 -6
- package/src/common/inline-websocket-adapter.ts +8 -2
- package/src/common/router.ts +1 -4
- package/src/common/utils.ts +2 -5
- package/src/db/config.ts +10 -5
- package/src/db/drizzle/mod.ts +51 -41
- package/src/db/mod.ts +54 -29
- package/src/db/shared.ts +42 -8
- package/src/driver-helpers/mod.ts +2 -1
- package/src/driver-helpers/sqlite-pool.ts +42 -0
- package/src/driver-helpers/utils.ts +0 -20
- package/src/driver-test-suite/mod.ts +11 -1
- package/src/driver-test-suite/tests/access-control.ts +19 -12
- package/src/driver-test-suite/tests/action-features.ts +20 -8
- package/src/driver-test-suite/tests/actor-conn.ts +94 -8
- package/src/driver-test-suite/tests/actor-db-kv-stats.ts +282 -0
- package/src/driver-test-suite/tests/actor-db-raw.ts +6 -2
- package/src/driver-test-suite/tests/actor-db.ts +101 -31
- package/src/driver-test-suite/tests/actor-inspector.ts +174 -32
- package/src/driver-test-suite/tests/actor-kv.ts +79 -33
- package/src/driver-test-suite/tests/actor-lifecycle.ts +4 -12
- package/src/driver-test-suite/tests/actor-queue.ts +125 -17
- package/src/driver-test-suite/tests/actor-run.ts +59 -55
- package/src/driver-test-suite/tests/actor-sandbox.ts +78 -0
- package/src/driver-test-suite/tests/actor-schedule.ts +1 -4
- package/src/driver-test-suite/tests/actor-sleep.ts +111 -0
- package/src/driver-test-suite/tests/actor-workflow.ts +387 -3
- package/src/driver-test-suite/tests/conn-error-serialization.ts +3 -1
- package/src/driver-test-suite/tests/raw-websocket.ts +5 -1
- package/src/drivers/default.ts +1 -3
- package/src/drivers/engine/actor-driver.ts +94 -21
- package/src/drivers/engine/config.ts +4 -12
- package/src/drivers/engine/mod.ts +1 -5
- package/src/drivers/file-system/actor.ts +43 -8
- package/src/drivers/file-system/global-state.ts +180 -64
- package/src/drivers/file-system/kv-limits.ts +1 -1
- package/src/drivers/file-system/sqlite-runtime.ts +13 -4
- package/src/engine-process/mod.ts +5 -1
- package/src/inspector/actor-inspector.ts +47 -21
- package/src/inspector/config.ts +1 -4
- package/src/inspector/mod.browser.ts +2 -2
- package/src/inspector/mod.ts +4 -1
- package/src/inspector/serve-ui.ts +0 -1
- package/src/inspector/workflow-history-json.ts +309 -0
- package/src/manager/gateway.ts +6 -2
- package/src/manager/router.ts +3 -3
- package/src/registry/config/index.ts +65 -12
- package/src/registry/config/runner.ts +19 -4
- package/src/registry/index.ts +42 -89
- package/src/sandbox/actor/db.ts +36 -0
- package/src/sandbox/actor/index.ts +476 -0
- package/src/sandbox/actor/session.ts +350 -0
- package/src/sandbox/actor.test.ts +36 -0
- package/src/sandbox/client.test.ts +484 -0
- package/src/sandbox/client.ts +707 -0
- package/src/sandbox/config.ts +151 -0
- package/src/sandbox/index.ts +41 -0
- package/src/sandbox/providers/computesdk.ts +1 -0
- package/src/sandbox/providers/daytona.ts +1 -0
- package/src/sandbox/providers/docker.ts +1 -0
- package/src/sandbox/providers/e2b.ts +1 -0
- package/src/sandbox/providers/local.ts +1 -0
- package/src/sandbox/providers/modal.ts +1 -0
- package/src/sandbox/providers/vercel.ts +1 -0
- package/src/sandbox/session-persist-driver.ts +180 -0
- package/src/sandbox/types.ts +138 -0
- package/src/serverless/configure.ts +5 -3
- package/src/serverless/router.test.ts +17 -9
- package/src/serverless/router.ts +20 -13
- package/src/test/mod.ts +3 -4
- package/src/utils/endpoint-parser.test.ts +6 -2
- package/src/utils/endpoint-parser.ts +6 -2
- package/src/utils/env-vars.ts +0 -2
- package/src/utils/node.ts +1 -1
- package/src/utils/serve.ts +10 -5
- package/src/utils.ts +6 -1
- package/src/workflow/constants.ts +1 -2
- package/src/workflow/context.ts +42 -9
- package/src/workflow/driver.ts +57 -23
- package/src/workflow/inspector.ts +7 -13
- package/src/workflow/mod.ts +91 -4
- package/dist/tsup/chunk-3B6PCYJB.cjs.map +0 -1
- package/dist/tsup/chunk-3GTO6H3E.js.map +0 -1
- package/dist/tsup/chunk-4KSHPFXF.cjs.map +0 -1
- package/dist/tsup/chunk-6LJAZ5R4.cjs +0 -96
- package/dist/tsup/chunk-6LJAZ5R4.cjs.map +0 -1
- package/dist/tsup/chunk-7HTNH26M.js.map +0 -1
- package/dist/tsup/chunk-ANKZ2FS6.js.map +0 -1
- package/dist/tsup/chunk-DZXDUGLL.js.map +0 -1
- package/dist/tsup/chunk-GXRVSSVD.cjs.map +0 -1
- package/dist/tsup/chunk-H5TSEPN4.cjs +0 -645
- package/dist/tsup/chunk-H5TSEPN4.cjs.map +0 -1
- package/dist/tsup/chunk-HKOSZKKZ.cjs.map +0 -1
- package/dist/tsup/chunk-I6PL6QIY.js.map +0 -1
- package/dist/tsup/chunk-KJSYAUOM.js.map +0 -1
- package/dist/tsup/chunk-KTWY3K6Z.js.map +0 -1
- package/dist/tsup/chunk-L47L3ZWJ.cjs.map +0 -1
- package/dist/tsup/chunk-LK36OGGO.cjs.map +0 -1
- package/dist/tsup/chunk-M6H4XIF4.js.map +0 -1
- package/dist/tsup/chunk-N4KRDJ56.js.map +0 -1
- package/dist/tsup/chunk-SR3KQE7Q.cjs.map +0 -1
- package/dist/tsup/chunk-TEFYRRAK.js +0 -645
- package/dist/tsup/chunk-TEFYRRAK.js.map +0 -1
- package/dist/tsup/chunk-TEUL4UYN.cjs.map +0 -1
- package/dist/tsup/chunk-UDMRZR6A.js.map +0 -1
- package/dist/tsup/chunk-UWAGLDT6.cjs.map +0 -1
- package/dist/tsup/chunk-VKVNIQRQ.js.map +0 -1
- package/dist/tsup/chunk-ZFY5J2EP.cjs.map +0 -1
- package/src/db/sqlite-vfs.ts +0 -12
- /package/dist/tsup/{chunk-HBYEYBIC.js.map → chunk-EONWXYMN.js.map} +0 -0
- /package/dist/tsup/{chunk-5UEFNG7P.js.map → chunk-I5I6OALK.js.map} +0 -0
package/src/inspector/config.ts
CHANGED
|
@@ -3,6 +3,6 @@ export * from "../schemas/actor-inspector/mod";
|
|
|
3
3
|
export * from "../schemas/actor-inspector/versioned";
|
|
4
4
|
export type { WorkflowHistory as TransportWorkflowHistory } from "../schemas/transport/mod";
|
|
5
5
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
decodeWorkflowHistoryTransport,
|
|
7
|
+
encodeWorkflowHistoryTransport,
|
|
8
8
|
} from "./transport";
|
package/src/inspector/mod.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from "../schemas/actor-inspector/mod";
|
|
2
2
|
export * from "../schemas/actor-inspector/versioned";
|
|
3
|
-
export {
|
|
3
|
+
export {
|
|
4
|
+
decodeWorkflowHistoryTransport,
|
|
5
|
+
encodeWorkflowHistoryTransport,
|
|
6
|
+
} from "./transport";
|
|
4
7
|
export type { WorkflowHistory as TransportWorkflowHistory } from "../schemas/transport/mod";
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import * as cbor from "cbor-x";
|
|
2
|
+
import { decodeWorkflowHistoryTransport } from "@/inspector/transport";
|
|
3
|
+
import type * as transport from "@/schemas/transport/mod";
|
|
4
|
+
|
|
5
|
+
function decodeWorkflowCbor(data: ArrayBuffer | null): unknown | null {
|
|
6
|
+
if (data === null) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
return cbor.decode(new Uint8Array(data));
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function serializeWorkflowLocation(
|
|
18
|
+
location: transport.WorkflowLocation,
|
|
19
|
+
): Array<
|
|
20
|
+
| { tag: "WorkflowNameIndex"; val: number }
|
|
21
|
+
| {
|
|
22
|
+
tag: "WorkflowLoopIterationMarker";
|
|
23
|
+
val: { loop: number; iteration: number };
|
|
24
|
+
}
|
|
25
|
+
> {
|
|
26
|
+
return location.map((segment) => {
|
|
27
|
+
if (segment.tag === "WorkflowNameIndex") {
|
|
28
|
+
return {
|
|
29
|
+
tag: segment.tag,
|
|
30
|
+
val: segment.val,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
tag: segment.tag,
|
|
36
|
+
val: {
|
|
37
|
+
loop: segment.val.loop,
|
|
38
|
+
iteration: segment.val.iteration,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function serializeWorkflowBranches(
|
|
45
|
+
branches: ReadonlyMap<string, transport.WorkflowBranchStatus>,
|
|
46
|
+
): Record<
|
|
47
|
+
string,
|
|
48
|
+
{ status: string; output: unknown | null; error: string | null }
|
|
49
|
+
> {
|
|
50
|
+
return Object.fromEntries(
|
|
51
|
+
Array.from(branches.entries()).map(([name, branch]) => [
|
|
52
|
+
name,
|
|
53
|
+
{
|
|
54
|
+
status: branch.status,
|
|
55
|
+
output: decodeWorkflowCbor(branch.output),
|
|
56
|
+
error: branch.error,
|
|
57
|
+
},
|
|
58
|
+
]),
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function serializeWorkflowEntryKind(kind: transport.WorkflowEntryKind):
|
|
63
|
+
| {
|
|
64
|
+
tag: "WorkflowStepEntry";
|
|
65
|
+
val: { output: unknown | null; error: string | null };
|
|
66
|
+
}
|
|
67
|
+
| {
|
|
68
|
+
tag: "WorkflowLoopEntry";
|
|
69
|
+
val: {
|
|
70
|
+
state: unknown | null;
|
|
71
|
+
iteration: number;
|
|
72
|
+
output: unknown | null;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
| {
|
|
76
|
+
tag: "WorkflowSleepEntry";
|
|
77
|
+
val: { deadline: number; state: string };
|
|
78
|
+
}
|
|
79
|
+
| {
|
|
80
|
+
tag: "WorkflowMessageEntry";
|
|
81
|
+
val: { name: string; messageData: unknown | null };
|
|
82
|
+
}
|
|
83
|
+
| {
|
|
84
|
+
tag: "WorkflowRollbackCheckpointEntry";
|
|
85
|
+
val: { name: string };
|
|
86
|
+
}
|
|
87
|
+
| {
|
|
88
|
+
tag: "WorkflowJoinEntry";
|
|
89
|
+
val: {
|
|
90
|
+
branches: Record<
|
|
91
|
+
string,
|
|
92
|
+
{
|
|
93
|
+
status: string;
|
|
94
|
+
output: unknown | null;
|
|
95
|
+
error: string | null;
|
|
96
|
+
}
|
|
97
|
+
>;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
| {
|
|
101
|
+
tag: "WorkflowRaceEntry";
|
|
102
|
+
val: {
|
|
103
|
+
winner: string | null;
|
|
104
|
+
branches: Record<
|
|
105
|
+
string,
|
|
106
|
+
{
|
|
107
|
+
status: string;
|
|
108
|
+
output: unknown | null;
|
|
109
|
+
error: string | null;
|
|
110
|
+
}
|
|
111
|
+
>;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
| {
|
|
115
|
+
tag: "WorkflowRemovedEntry";
|
|
116
|
+
val: { originalType: string; originalName: string | null };
|
|
117
|
+
} {
|
|
118
|
+
switch (kind.tag) {
|
|
119
|
+
case "WorkflowStepEntry":
|
|
120
|
+
return {
|
|
121
|
+
tag: kind.tag,
|
|
122
|
+
val: {
|
|
123
|
+
output: decodeWorkflowCbor(kind.val.output),
|
|
124
|
+
error: kind.val.error,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
case "WorkflowLoopEntry":
|
|
128
|
+
return {
|
|
129
|
+
tag: kind.tag,
|
|
130
|
+
val: {
|
|
131
|
+
state: decodeWorkflowCbor(kind.val.state),
|
|
132
|
+
iteration: kind.val.iteration,
|
|
133
|
+
output: decodeWorkflowCbor(kind.val.output),
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
case "WorkflowSleepEntry":
|
|
137
|
+
return {
|
|
138
|
+
tag: kind.tag,
|
|
139
|
+
val: {
|
|
140
|
+
deadline: Number(kind.val.deadline),
|
|
141
|
+
state: kind.val.state,
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
case "WorkflowMessageEntry":
|
|
145
|
+
return {
|
|
146
|
+
tag: kind.tag,
|
|
147
|
+
val: {
|
|
148
|
+
name: kind.val.name,
|
|
149
|
+
messageData: decodeWorkflowCbor(kind.val.messageData),
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
case "WorkflowRollbackCheckpointEntry":
|
|
153
|
+
return {
|
|
154
|
+
tag: kind.tag,
|
|
155
|
+
val: {
|
|
156
|
+
name: kind.val.name,
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
case "WorkflowJoinEntry":
|
|
160
|
+
return {
|
|
161
|
+
tag: kind.tag,
|
|
162
|
+
val: {
|
|
163
|
+
branches: serializeWorkflowBranches(kind.val.branches),
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
case "WorkflowRaceEntry":
|
|
167
|
+
return {
|
|
168
|
+
tag: kind.tag,
|
|
169
|
+
val: {
|
|
170
|
+
winner: kind.val.winner,
|
|
171
|
+
branches: serializeWorkflowBranches(kind.val.branches),
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
case "WorkflowRemovedEntry":
|
|
175
|
+
return {
|
|
176
|
+
tag: kind.tag,
|
|
177
|
+
val: {
|
|
178
|
+
originalType: kind.val.originalType,
|
|
179
|
+
originalName: kind.val.originalName,
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export function serializeWorkflowHistoryForJson(
|
|
186
|
+
data: ArrayBuffer | null,
|
|
187
|
+
):
|
|
188
|
+
| {
|
|
189
|
+
nameRegistry: string[];
|
|
190
|
+
entries: Array<{
|
|
191
|
+
id: string;
|
|
192
|
+
location: Array<
|
|
193
|
+
| { tag: "WorkflowNameIndex"; val: number }
|
|
194
|
+
| {
|
|
195
|
+
tag: "WorkflowLoopIterationMarker";
|
|
196
|
+
val: { loop: number; iteration: number };
|
|
197
|
+
}
|
|
198
|
+
>;
|
|
199
|
+
kind:
|
|
200
|
+
| {
|
|
201
|
+
tag: "WorkflowStepEntry";
|
|
202
|
+
val: { output: unknown | null; error: string | null };
|
|
203
|
+
}
|
|
204
|
+
| {
|
|
205
|
+
tag: "WorkflowLoopEntry";
|
|
206
|
+
val: {
|
|
207
|
+
state: unknown | null;
|
|
208
|
+
iteration: number;
|
|
209
|
+
output: unknown | null;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
| {
|
|
213
|
+
tag: "WorkflowSleepEntry";
|
|
214
|
+
val: { deadline: number; state: string };
|
|
215
|
+
}
|
|
216
|
+
| {
|
|
217
|
+
tag: "WorkflowMessageEntry";
|
|
218
|
+
val: { name: string; messageData: unknown | null };
|
|
219
|
+
}
|
|
220
|
+
| {
|
|
221
|
+
tag: "WorkflowRollbackCheckpointEntry";
|
|
222
|
+
val: { name: string };
|
|
223
|
+
}
|
|
224
|
+
| {
|
|
225
|
+
tag: "WorkflowJoinEntry";
|
|
226
|
+
val: {
|
|
227
|
+
branches: Record<
|
|
228
|
+
string,
|
|
229
|
+
{
|
|
230
|
+
status: string;
|
|
231
|
+
output: unknown | null;
|
|
232
|
+
error: string | null;
|
|
233
|
+
}
|
|
234
|
+
>;
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
| {
|
|
238
|
+
tag: "WorkflowRaceEntry";
|
|
239
|
+
val: {
|
|
240
|
+
winner: string | null;
|
|
241
|
+
branches: Record<
|
|
242
|
+
string,
|
|
243
|
+
{
|
|
244
|
+
status: string;
|
|
245
|
+
output: unknown | null;
|
|
246
|
+
error: string | null;
|
|
247
|
+
}
|
|
248
|
+
>;
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
| {
|
|
252
|
+
tag: "WorkflowRemovedEntry";
|
|
253
|
+
val: {
|
|
254
|
+
originalType: string;
|
|
255
|
+
originalName: string | null;
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
}>;
|
|
259
|
+
entryMetadata: Record<
|
|
260
|
+
string,
|
|
261
|
+
{
|
|
262
|
+
status: string;
|
|
263
|
+
error: string | null;
|
|
264
|
+
attempts: number;
|
|
265
|
+
lastAttemptAt: number;
|
|
266
|
+
createdAt: number;
|
|
267
|
+
completedAt: number | null;
|
|
268
|
+
rollbackCompletedAt: number | null;
|
|
269
|
+
rollbackError: string | null;
|
|
270
|
+
}
|
|
271
|
+
>;
|
|
272
|
+
}
|
|
273
|
+
| null {
|
|
274
|
+
if (data === null) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
const history = decodeWorkflowHistoryTransport(data);
|
|
279
|
+
|
|
280
|
+
return {
|
|
281
|
+
nameRegistry: [...history.nameRegistry],
|
|
282
|
+
entries: history.entries.map((entry) => ({
|
|
283
|
+
id: entry.id,
|
|
284
|
+
location: serializeWorkflowLocation(entry.location),
|
|
285
|
+
kind: serializeWorkflowEntryKind(entry.kind),
|
|
286
|
+
})),
|
|
287
|
+
entryMetadata: Object.fromEntries(
|
|
288
|
+
Array.from(history.entryMetadata.entries()).map(([entryId, meta]) => [
|
|
289
|
+
entryId,
|
|
290
|
+
{
|
|
291
|
+
status: meta.status,
|
|
292
|
+
error: meta.error,
|
|
293
|
+
attempts: meta.attempts,
|
|
294
|
+
lastAttemptAt: Number(meta.lastAttemptAt),
|
|
295
|
+
createdAt: Number(meta.createdAt),
|
|
296
|
+
completedAt:
|
|
297
|
+
meta.completedAt === null
|
|
298
|
+
? null
|
|
299
|
+
: Number(meta.completedAt),
|
|
300
|
+
rollbackCompletedAt:
|
|
301
|
+
meta.rollbackCompletedAt === null
|
|
302
|
+
? null
|
|
303
|
+
: Number(meta.rollbackCompletedAt),
|
|
304
|
+
rollbackError: meta.rollbackError,
|
|
305
|
+
},
|
|
306
|
+
]),
|
|
307
|
+
),
|
|
308
|
+
};
|
|
309
|
+
}
|
package/src/manager/gateway.ts
CHANGED
|
@@ -122,7 +122,6 @@ export async function actorGateway(
|
|
|
122
122
|
c: HonoContext,
|
|
123
123
|
next: Next,
|
|
124
124
|
) {
|
|
125
|
-
|
|
126
125
|
// Skip test routes - let them be handled by their specific handlers
|
|
127
126
|
if (c.req.path.startsWith("/.test/")) {
|
|
128
127
|
return next();
|
|
@@ -425,7 +424,12 @@ export async function createTestWebSocketProxy(
|
|
|
425
424
|
promise: clientToProxyWsPromise,
|
|
426
425
|
resolve: clientToProxyWsResolve,
|
|
427
426
|
reject: clientToProxyWsReject,
|
|
428
|
-
} = promiseWithResolvers<WSContext>((reason) =>
|
|
427
|
+
} = promiseWithResolvers<WSContext>((reason) =>
|
|
428
|
+
logger().warn({
|
|
429
|
+
msg: "unhandled client websocket promise rejection",
|
|
430
|
+
reason,
|
|
431
|
+
}),
|
|
432
|
+
);
|
|
429
433
|
try {
|
|
430
434
|
// Resolve the client WebSocket promise
|
|
431
435
|
logger().debug({ msg: "awaiting client websocket promise" });
|
package/src/manager/router.ts
CHANGED
|
@@ -95,9 +95,9 @@ export function buildManagerRouter(
|
|
|
95
95
|
|
|
96
96
|
const actorIdsParsed = actor_ids
|
|
97
97
|
? actor_ids
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
.split(",")
|
|
99
|
+
.map((id) => id.trim())
|
|
100
|
+
.filter((id) => id.length > 0)
|
|
101
101
|
: undefined;
|
|
102
102
|
|
|
103
103
|
const actors: ActorOutput[] = [];
|
|
@@ -58,6 +58,26 @@ export const RegistryConfigSchema = z
|
|
|
58
58
|
.optional()
|
|
59
59
|
.transform((val) => val ?? getRivetkitStoragePath()),
|
|
60
60
|
|
|
61
|
+
// MARK: Database
|
|
62
|
+
/**
|
|
63
|
+
* @experimental
|
|
64
|
+
*
|
|
65
|
+
* Configuration for the SQLite VFS pool that shares WASM instances across actors.
|
|
66
|
+
*/
|
|
67
|
+
sqlitePool: z
|
|
68
|
+
.object({
|
|
69
|
+
/**
|
|
70
|
+
* Number of actors per WASM SQLite instance.
|
|
71
|
+
*/
|
|
72
|
+
actorsPerInstance: z.number().int().min(1).optional().default(50),
|
|
73
|
+
/**
|
|
74
|
+
* Milliseconds before an idle instance (no actors, no in-flight ops) is destroyed.
|
|
75
|
+
*/
|
|
76
|
+
idleDestroyMs: z.number().optional().default(30_000),
|
|
77
|
+
})
|
|
78
|
+
.optional()
|
|
79
|
+
.default(() => ({ actorsPerInstance: 50, idleDestroyMs: 30_000 })),
|
|
80
|
+
|
|
61
81
|
// MARK: Networking
|
|
62
82
|
/** @experimental */
|
|
63
83
|
maxIncomingMessageSize: z.number().optional().default(65_536),
|
|
@@ -125,6 +145,14 @@ export const RegistryConfigSchema = z
|
|
|
125
145
|
* Auto-determined based on endpoint and NODE_ENV if not specified.
|
|
126
146
|
*/
|
|
127
147
|
serveManager: z.boolean().optional(),
|
|
148
|
+
/**
|
|
149
|
+
* Directory to serve static files from.
|
|
150
|
+
*
|
|
151
|
+
* When set, the manager server will serve static files from this
|
|
152
|
+
* directory. This is used by `registry.start()` to serve a frontend
|
|
153
|
+
* alongside the actor API.
|
|
154
|
+
*/
|
|
155
|
+
publicDir: z.string().optional(),
|
|
128
156
|
/**
|
|
129
157
|
* @experimental
|
|
130
158
|
*
|
|
@@ -163,11 +191,11 @@ export const RegistryConfigSchema = z
|
|
|
163
191
|
// Parse endpoint string (env var fallback is applied via transform above)
|
|
164
192
|
const parsedEndpoint = config.endpoint
|
|
165
193
|
? tryParseEndpoint(ctx, {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
194
|
+
endpoint: config.endpoint,
|
|
195
|
+
path: ["endpoint"],
|
|
196
|
+
namespace: config.namespace,
|
|
197
|
+
token: config.token,
|
|
198
|
+
})
|
|
171
199
|
: undefined;
|
|
172
200
|
|
|
173
201
|
if (parsedEndpoint && config.serveManager) {
|
|
@@ -212,9 +240,9 @@ export const RegistryConfigSchema = z
|
|
|
212
240
|
// Parse publicEndpoint string (env var fallback is applied via transform in serverless schema)
|
|
213
241
|
const parsedPublicEndpoint = config.serverless.publicEndpoint
|
|
214
242
|
? tryParseEndpoint(ctx, {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
243
|
+
endpoint: config.serverless.publicEndpoint,
|
|
244
|
+
path: ["serverless", "publicEndpoint"],
|
|
245
|
+
})
|
|
218
246
|
: undefined;
|
|
219
247
|
|
|
220
248
|
// Validate that publicEndpoint namespace matches backend namespace if specified
|
|
@@ -248,9 +276,9 @@ export const RegistryConfigSchema = z
|
|
|
248
276
|
const willUseEngine = !!endpoint || config.serverless.spawnEngine;
|
|
249
277
|
const inspector = willUseEngine
|
|
250
278
|
? {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
279
|
+
...config.inspector,
|
|
280
|
+
enabled: { manager: false, actor: true },
|
|
281
|
+
}
|
|
254
282
|
: config.inspector;
|
|
255
283
|
|
|
256
284
|
return {
|
|
@@ -420,7 +448,7 @@ export const DocRunnerConfigSchema = z
|
|
|
420
448
|
runnerKey: z
|
|
421
449
|
.string()
|
|
422
450
|
.optional()
|
|
423
|
-
.describe("Authentication key for the runner."),
|
|
451
|
+
.describe("Deprecated. Authentication key for the runner."),
|
|
424
452
|
version: z
|
|
425
453
|
.number()
|
|
426
454
|
.optional()
|
|
@@ -441,6 +469,25 @@ export const DocRegistryConfigSchema = z
|
|
|
441
469
|
.describe(
|
|
442
470
|
"Storage path for RivetKit file-system state when using the default driver. Can also be set via RIVETKIT_STORAGE_PATH.",
|
|
443
471
|
),
|
|
472
|
+
sqlitePool: z
|
|
473
|
+
.object({
|
|
474
|
+
actorsPerInstance: z
|
|
475
|
+
.number()
|
|
476
|
+
.optional()
|
|
477
|
+
.describe(
|
|
478
|
+
"Number of actors per WASM SQLite instance. Default: 50",
|
|
479
|
+
),
|
|
480
|
+
idleDestroyMs: z
|
|
481
|
+
.number()
|
|
482
|
+
.optional()
|
|
483
|
+
.describe(
|
|
484
|
+
"Milliseconds before an idle WASM instance is destroyed. Default: 30000",
|
|
485
|
+
),
|
|
486
|
+
})
|
|
487
|
+
.optional()
|
|
488
|
+
.describe(
|
|
489
|
+
"Configuration for the SQLite VFS pool that shares WASM instances across actors.",
|
|
490
|
+
),
|
|
444
491
|
maxIncomingMessageSize: z
|
|
445
492
|
.number()
|
|
446
493
|
.optional()
|
|
@@ -495,6 +542,12 @@ export const DocRegistryConfigSchema = z
|
|
|
495
542
|
.describe(
|
|
496
543
|
"Whether to start the local manager server. Auto-determined based on endpoint and NODE_ENV if not specified.",
|
|
497
544
|
),
|
|
545
|
+
publicDir: z
|
|
546
|
+
.string()
|
|
547
|
+
.optional()
|
|
548
|
+
.describe(
|
|
549
|
+
"Directory to serve static files from. When set, the manager server serves static files alongside the actor API. Used by registry.start().",
|
|
550
|
+
),
|
|
498
551
|
managerBasePath: z
|
|
499
552
|
.string()
|
|
500
553
|
.optional()
|
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
+
import { getLogger } from "@/common/log";
|
|
2
3
|
import {
|
|
3
4
|
isDev,
|
|
5
|
+
getNodeEnv,
|
|
4
6
|
getRivetTotalSlots,
|
|
5
7
|
getRivetRunner,
|
|
6
|
-
getRivetRunnerKey,
|
|
7
8
|
getRivetRunnerVersion,
|
|
8
9
|
} from "@/utils/env-vars";
|
|
9
10
|
|
|
11
|
+
let warnedMissingVersion = false;
|
|
12
|
+
|
|
10
13
|
export const RunnerConfigSchema = z.object({
|
|
11
14
|
// MARK: Runner
|
|
12
15
|
totalSlots: z.number().default(() => getRivetTotalSlots() ?? 100000),
|
|
13
16
|
runnerName: z.string().default(() => getRivetRunner() ?? "default"),
|
|
17
|
+
// Deprecated.
|
|
14
18
|
runnerKey: z
|
|
15
19
|
.string()
|
|
16
|
-
.optional()
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
.optional(),
|
|
21
|
+
version: z.number().default(() => {
|
|
22
|
+
const version = getRivetRunnerVersion();
|
|
23
|
+
if (version !== undefined) return version;
|
|
24
|
+
|
|
25
|
+
if (getNodeEnv() === "production" && !warnedMissingVersion) {
|
|
26
|
+
warnedMissingVersion = true;
|
|
27
|
+
getLogger("rivetkit").error(
|
|
28
|
+
"RIVET_RUNNER_VERSION is not set. Actors will not be versioned, which means they won't be drained on deploy. This is only needed when self-hosting or using a custom runner (not needed for Rivet Compute). Set this as a build arg in your Dockerfile. See https://rivet.dev/docs/actors/versions",
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return 1;
|
|
33
|
+
}),
|
|
19
34
|
});
|
|
20
35
|
export type RunnerConfigInput = z.input<typeof RunnerConfigSchema>;
|
|
21
36
|
export type RunnerConfig = z.infer<typeof RunnerConfigSchema>;
|