@voltro/cli 0.53.0 → 0.54.0

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.
Files changed (181) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/dist/{agentsMd-0l980yhL.js → agentsMd-BaLC10Na.js} +110 -82
  3. package/dist/agentsMd-DCY1RSs8.js +2 -0
  4. package/dist/apiBuild-CeUN55uk.js +2 -0
  5. package/dist/{apiBuild-CaPfoWku.js → apiBuild-DTWp0S_q.js} +2 -2
  6. package/dist/bin.js +1 -1
  7. package/dist/{build-D-OnvNMf.js → build-D4ygSbnV.js} +114 -114
  8. package/dist/{checkCommand-C5elt0tW.js → checkCommand-Dg1G7Gwd.js} +6 -6
  9. package/dist/{checkCommand-D2ZduVlh.js → checkCommand-L7DTlpIF.js} +1 -1
  10. package/dist/{cloudCmd-QUXh-b5w.js → cloudCmd-DzKcSYuy.js} +1 -1
  11. package/dist/{codegen-FEk8AZHb.js → codegen-DSLM8Su9.js} +2 -2
  12. package/dist/codegen-DjgxEOnD.js +2 -0
  13. package/dist/codegenCommand-CG_Vx4lc.js +41 -0
  14. package/dist/{codemodRunner-BjtB2lq6.js → codemodRunner-Cd4xkC6u.js} +9 -9
  15. package/dist/{commands-DyxAmhP0.js → commands-6Kzi92Np.js} +96 -73
  16. package/dist/{dashboardCommand-BdKTyT13.js → dashboardCommand-Cq1PWvI1.js} +3 -3
  17. package/dist/{dataCommand-Bab9X7s8.js → dataCommand-DYzW8vkv.js} +3 -3
  18. package/dist/{dbCommand-06O2finM.js → dbCommand-B4NWZtGL.js} +3 -3
  19. package/dist/dbCommand-CSFWs9ev.js +2 -0
  20. package/dist/{dev-C6LGF4iY.js → dev-CmuvUKRq.js} +2236 -2219
  21. package/dist/{dev-GjJWAYo2.js → dev-cKUiZZsB.js} +1 -1
  22. package/dist/{doctorCommand-etMkflRc.js → doctorCommand-DCiFVMtZ.js} +21 -21
  23. package/dist/doctorCommand-J3qu4E0Y.js +2 -0
  24. package/dist/{dormancyCommand-UwZ1AZzB.js → dormancyCommand-w1TrmgYP.js} +1 -1
  25. package/dist/{embeddingsCommand-C70zWHwo.js → embeddingsCommand-CMgPyRTr.js} +1 -1
  26. package/dist/{envCommand-dSyKvRkM.js → envCommand-Cyynmcfa.js} +15 -15
  27. package/dist/{evolveCommand-CG0_ebO5.js → evolveCommand-BwvQ8dVH.js} +2 -2
  28. package/dist/fileConventions-l-RIXbx8.js +36 -0
  29. package/dist/{fileTaxonomy-B7uxipWS.js → fileTaxonomy-CbyMQYx_.js} +37 -37
  30. package/dist/{frameworkTableAssembly-DKx3ba3S.js → frameworkTableAssembly-D7LJuALW.js} +5 -5
  31. package/dist/frameworkTableAssembly-IPD1pUnZ.js +2 -0
  32. package/dist/index.js +2 -2
  33. package/dist/{infoCommand-_53iOc_j.js → infoCommand-DlYlUPqs.js} +1 -1
  34. package/dist/{metaCommands-Cn2oboG4.js → metaCommands-x7RCi2AF.js} +2 -2
  35. package/dist/{migrate-Cko9rswM.js → migrate-BK_Bbx-_.js} +2 -2
  36. package/dist/mobileCommand-D9O6iq3D.js +428 -0
  37. package/dist/mobileCommand-DAum7tsG.js +2 -0
  38. package/dist/{pageConvention-C938S8oC.js → pageConvention-CMpfDN6r.js} +1 -1
  39. package/dist/{privacyCommand-DWTQMC6R.js → privacyCommand-BCa2OoZG.js} +2 -2
  40. package/dist/{probeCommand-DkGGLknv.js → probeCommand-_C0YU207.js} +1 -1
  41. package/dist/{projectScaffold-EzlErR4E.js → projectScaffold-CJfP-xbT.js} +1 -1
  42. package/dist/{projectScaffold-B4dmTlwT.js → projectScaffold-CSN0OzBV.js} +2 -2
  43. package/dist/renderModeScan-43yQ2opo.js +147 -0
  44. package/dist/{renderProfile-CskIgAfn.js → renderProfile-DvrhVJHa.js} +2 -2
  45. package/dist/{runtimeTrace-c0APJz7E.js → runtimeTrace-CGWx1Q6l.js} +1 -1
  46. package/dist/{sdkgen-BiQCgIEr.js → sdkgen-CDGHQUFj.js} +1 -1
  47. package/dist/serveCommand-BiPe8BJm.js +2 -0
  48. package/dist/{serveCommand-CueKQgzl.js → serveCommand-Bje09q1v.js} +708 -708
  49. package/dist/serveEntry.js +1 -1
  50. package/dist/start-B0bnJgxI.js +3 -0
  51. package/dist/{start-ekPan8BT.js → start-Clz-1BHB.js} +511 -504
  52. package/dist/startEntry.js +1 -1
  53. package/dist/{staticCommand-xlSL-IWk.js → staticCommand-ey0kYmOT.js} +1 -1
  54. package/dist/{subcommandNames-DpYs3DXr.js → subcommandNames-CDzfEtKV.js} +3 -3
  55. package/dist/{templates-BR-fb4SP.js → templates-BTWZkJJT.js} +41 -9
  56. package/dist/{test-BWPQcRoB.js → test-D_kW4KMj.js} +1 -1
  57. package/dist/updateCommand-CIoVDKnj.js +2 -0
  58. package/dist/{updateCommand-C_8I8Rzo.js → updateCommand-CRJlAOaM.js} +1 -1
  59. package/dist/{webDev-oczpugbx.js → webDev-DSI9SOhs.js} +1127 -1090
  60. package/dist/{webDev-C7jWJ5dX.js → webDev-DlvZO30c.js} +1 -1
  61. package/dist/{webhooksCommand-4SVPDjKg.js → webhooksCommand-BvzXNHji.js} +1 -1
  62. package/dist/workspaceDeps-RKEkX92S.js +45 -0
  63. package/package.json +19 -19
  64. package/templates/AGENTS.core.md +2 -0
  65. package/templates/AGENTS.md +4 -2
  66. package/templates/agent-docs/_index.md +2 -2
  67. package/templates/agent-docs/_manifest.json +1 -1
  68. package/templates/agent-docs/ai.md +4 -4
  69. package/templates/agent-docs/authentication.md +72 -0
  70. package/templates/agent-docs/cli.md +4 -1
  71. package/templates/agent-docs/data.md +61 -12
  72. package/templates/agent-docs/database/advancedqueries.md +1 -1
  73. package/templates/agent-docs/database/migrations.md +1 -1
  74. package/templates/agent-docs/database/seedsdialects.md +64 -2
  75. package/templates/agent-docs/internationalization.md +2 -0
  76. package/templates/agent-docs/introduction.md +25 -0
  77. package/templates/agent-docs/local-first-mobile.md +139 -41
  78. package/templates/agent-docs/observability.md +4 -2
  79. package/templates/agent-docs/plugins/atlassian.md +2 -2
  80. package/templates/agent-docs/plugins/audit.md +2 -2
  81. package/templates/agent-docs/plugins/billing.md +1 -1
  82. package/templates/agent-docs/plugins/cdc-out.md +8 -3
  83. package/templates/agent-docs/plugins/comments.md +22 -0
  84. package/templates/agent-docs/plugins/presence.md +32 -3
  85. package/templates/agent-docs/plugins/prometheus.md +2 -0
  86. package/templates/agent-docs/plugins/queue.md +47 -4
  87. package/templates/agent-docs/plugins.md +6 -6
  88. package/templates/agent-docs/reference.md +20 -1
  89. package/templates/agent-docs/routing.md +63 -9
  90. package/templates/agent-docs/scheduling.md +1 -1
  91. package/templates/agent-docs/schema-driven-ui.md +12 -1
  92. package/templates/agent-docs/templates/appshells.md +36 -4
  93. package/templates/agent-docs/whats-new.md +109 -135
  94. package/templates/apps/api-ai/package.json +6 -6
  95. package/templates/apps/api-auth/package.json +8 -8
  96. package/templates/apps/api-backend/package.json +7 -7
  97. package/templates/apps/api-backend-deactivation/package.json +7 -7
  98. package/templates/apps/api-backend-mail/package.json +8 -8
  99. package/templates/apps/api-backend-mariadb/package.json +9 -9
  100. package/templates/apps/api-backend-sqlite/package.json +8 -8
  101. package/templates/apps/api-backend-storage/package.json +8 -8
  102. package/templates/apps/api-cms/package.json +9 -9
  103. package/templates/apps/api-collab/README.md +3 -3
  104. package/templates/apps/api-collab/app.config.ts +1 -1
  105. package/templates/apps/api-collab/database/schema.ts +12 -8
  106. package/templates/apps/api-collab/mutations/documents.create.mutation.server.ts +1 -1
  107. package/templates/apps/api-collab/mutations/documents.setBody.mutation.server.ts +1 -1
  108. package/templates/apps/api-collab/mutations/documents.setBody.mutation.ts +1 -1
  109. package/templates/apps/api-collab/package.json +8 -8
  110. package/templates/apps/api-collab/template.json +1 -1
  111. package/templates/apps/api-collab/tests/documents.setBody.test.ts +10 -2
  112. package/templates/apps/api-data-advanced/package.json +8 -8
  113. package/templates/apps/api-durable/package.json +8 -8
  114. package/templates/apps/api-feature-flags/package.json +9 -9
  115. package/templates/apps/api-governance/package.json +8 -8
  116. package/templates/apps/api-kv/package.json +8 -8
  117. package/templates/apps/api-moderation/package.json +8 -8
  118. package/templates/apps/api-observability/package.json +8 -8
  119. package/templates/apps/api-ratelimit/package.json +8 -8
  120. package/templates/apps/api-rbac/package.json +8 -8
  121. package/templates/apps/api-rest/package.json +7 -7
  122. package/templates/apps/api-row-history/package.json +8 -8
  123. package/templates/apps/api-saas/package.json +11 -10
  124. package/templates/apps/api-saas-starter/package.json +10 -10
  125. package/templates/apps/api-search/package.json +8 -8
  126. package/templates/apps/api-status/package.json +8 -8
  127. package/templates/apps/api-webhooks/package.json +9 -9
  128. package/templates/apps/changelog/package.json +7 -6
  129. package/templates/apps/edge-functions/package.json +2 -2
  130. package/templates/apps/frontend-admin/package.json +8 -8
  131. package/templates/apps/frontend-app/package.json +9 -9
  132. package/templates/apps/frontend-auth/package.json +8 -8
  133. package/templates/apps/frontend-blank/package.json +7 -7
  134. package/templates/apps/frontend-cms/package.json +9 -9
  135. package/templates/apps/frontend-collab/README.md +43 -24
  136. package/templates/apps/frontend-collab/app.config.ts +3 -3
  137. package/templates/apps/frontend-collab/package.json +14 -10
  138. package/templates/apps/frontend-collab/src/locales/de.ts +1 -2
  139. package/templates/apps/frontend-collab/src/locales/en.ts +1 -2
  140. package/templates/apps/frontend-collab/src/pages/page.test.tsx +72 -76
  141. package/templates/apps/frontend-collab/src/pages/page.tsx +45 -22
  142. package/templates/apps/frontend-collab/template.json +2 -2
  143. package/templates/apps/frontend-contact/package.json +7 -7
  144. package/templates/apps/frontend-dashboard/package.json +7 -7
  145. package/templates/apps/frontend-docs/package.json +8 -7
  146. package/templates/apps/frontend-i18n/package.json +6 -6
  147. package/templates/apps/frontend-landing/README.md +48 -0
  148. package/templates/apps/frontend-landing/app.config.ts +28 -0
  149. package/templates/apps/frontend-landing/package.json +7 -6
  150. package/templates/apps/frontend-landing/src/assets/hero.jpg +0 -0
  151. package/templates/apps/frontend-landing/src/fonts/Geist-Variable.woff2 +0 -0
  152. package/templates/apps/frontend-landing/src/fonts/LICENSE-Geist.txt +92 -0
  153. package/templates/apps/frontend-landing/src/globals.css +15 -0
  154. package/templates/apps/frontend-landing/src/globals.d.ts +17 -0
  155. package/templates/apps/frontend-landing/src/locales/de.ts +3 -2
  156. package/templates/apps/frontend-landing/src/locales/en.ts +5 -2
  157. package/templates/apps/frontend-landing/src/pages/page.test.tsx +79 -0
  158. package/templates/apps/frontend-landing/src/pages/page.tsx +26 -3
  159. package/templates/apps/frontend-landing/template.json +2 -2
  160. package/templates/apps/frontend-portal/package.json +8 -8
  161. package/templates/apps/frontend-saas/package.json +8 -8
  162. package/templates/apps/frontend-spa/package.json +7 -7
  163. package/templates/apps/frontend-ssr/package.json +7 -7
  164. package/templates/apps/frontend-ssr-api/package.json +8 -8
  165. package/templates/apps/frontend-static-blog/package.json +8 -7
  166. package/templates/apps/frontend-status/package.json +8 -8
  167. package/templates/apps/mobile-app/package.json +12 -11
  168. package/templates/apps/mobile-app/src/lib/deeplinks.ts +29 -17
  169. package/templates/apps/mobile-app/tests/deeplinks.test.ts +16 -0
  170. package/dist/agentsMd-SDDSkyl4.js +0 -2
  171. package/dist/apiBuild-DHtLXYx9.js +0 -2
  172. package/dist/codegen-BWpt3VgF.js +0 -2
  173. package/dist/codegenCommand-BOiWQ5hz.js +0 -137
  174. package/dist/dbCommand-B1EXBC6f.js +0 -2
  175. package/dist/doctorCommand-B0hX0tdz.js +0 -2
  176. package/dist/fileConventions-DASGEmj-.js +0 -35
  177. package/dist/frameworkTableAssembly-C_7Z-rMs.js +0 -2
  178. package/dist/renderModeScan-CUbOeOAg.js +0 -122
  179. package/dist/serveCommand-DsnrVN3U.js +0 -2
  180. package/dist/start-BJzZLbt8.js +0 -3
  181. package/dist/updateCommand-Bqql_rsQ.js +0 -2
@@ -4,50 +4,50 @@ import { r as n, t as r } from "./appModuleLoader-C9r9mxZt.js";
4
4
  import { t as i } from "./bootRefusal-pgvDxlrU.js";
5
5
  import { n as a, r as o } from "./startupRunner-CEqQq7ax.js";
6
6
  import { t as s } from "./interruptedReplace-C3O3M1MM.js";
7
- import { $ as c, $t as l, A as u, An as d, At as f, Bt as ee, C as te, Cn as p, Ct as m, D as ne, Dn as h, Dt as re, E as g, Et as ie, F as ae, Ft as oe, G as se, Gt as ce, H as _, I as le, It as ue, J as de, Jt as fe, K as pe, Kt as v, L as y, Lt as b, M as me, Mt as he, N as ge, Nt as _e, O as ve, On as ye, Ot as be, P as xe, Pt as Se, Q as Ce, Qt as we, R as Te, Rt as Ee, S as x, Sn as De, St as Oe, T as ke, Tn as Ae, Tt as je, U as Me, Ut as S, Vt as Ne, W as C, X as Pe, Xt as Fe, Y as Ie, Yt as w, Z as Le, Zt as Re, _ as ze, _n as Be, _t as Ve, an as He, at as T, b as Ue, bn as We, bt as Ge, c as Ke, cn as qe, ct as Je, d as Ye, dn as Xe, dt as Ze, en as Qe, et as $e, fn as et, ft as tt, g as nt, gn as rt, gt as it, h as at, hn as ot, ht as st, i as ct, in as lt, it as ut, j as dt, jt as ft, k as pt, kn as mt, kt as ht, ln as gt, lt as _t, m as vt, mn as yt, mt as E, nn as D, nt as bt, o as O, on as xt, ot as St, p as Ct, pn as k, pt as wt, q as Tt, qt as Et, r as Dt, rn as Ot, rt as kt, sn as At, st as jt, t as Mt, tn as Nt, tt as A, u as Pt, un as Ft, ut as It, v as Lt, vn as j, vt as M, w as Rt, wn as zt, wt as Bt, x as Vt, xn as Ht, xt as Ut, y as Wt, yt as Gt, z as Kt, zt as qt } from "./dev-C6LGF4iY.js";
8
- import { n as N } from "./cliArgs-D4p8n7EE.js";
9
- import { r as Jt } from "./appPort-B_HpJ_ck.js";
10
- import { Ht as Yt, Wt as Xt } from "./webDev-oczpugbx.js";
7
+ import { $ as c, $t as l, A as u, An as d, At as f, Bt as ee, C as te, Cn as ne, Ct as p, D as m, Dt as h, E as g, En as re, Et as ie, F as ae, Ft as oe, G as se, Gt as ce, H as le, I as _, It as ue, J as v, Jt as de, K as fe, Kt as pe, L as me, Lt as y, M as b, Mt as he, N as ge, Nt as _e, O as ve, On as ye, Ot as be, P as xe, Pt as Se, Q as Ce, Qt as we, R as Te, Rt as x, S as Ee, Sn as De, St as Oe, T as ke, Tn as Ae, Tt as S, U as je, Ut as Me, Vt as Ne, W as Pe, X as Fe, Xt as C, Y as Ie, Yt as Le, Z as Re, Zt as ze, _ as Be, _n as Ve, _t as w, an as He, at as Ue, b as We, bt as Ge, c as Ke, cn as qe, ct as Je, d as Ye, dn as Xe, dt as Ze, en as Qe, et as $e, fn as et, ft as tt, g as nt, gn as rt, gt as it, h as at, hn as ot, ht as st, i as ct, in as lt, it as ut, j as dt, jn as ft, jt as pt, k as T, kn as mt, kt as ht, ln as gt, lt as _t, m as E, mn as D, mt as vt, nn as yt, nt as bt, o as O, on as xt, ot as k, p as St, pn as Ct, pt as wt, q as Tt, qt as Et, r as Dt, rn as Ot, rt as kt, sn as At, st as jt, t as Mt, tn as A, tt as Nt, u as j, un as Pt, ut as M, v as Ft, vn as It, vt as Lt, w as Rt, wn as zt, wt as Bt, x as Vt, xn as Ht, xt as Ut, y as Wt, yn as Gt, yt as Kt, z as qt, zt as N } from "./dev-CmuvUKRq.js";
8
+ import { n as Jt } from "./cliArgs-D4p8n7EE.js";
9
+ import { r as Yt } from "./appPort-B_HpJ_ck.js";
10
+ import { Ut as Xt, Vt as Zt } from "./webDev-DSI9SOhs.js";
11
11
  import { r as P } from "./dialectDriver-czCHYpeH.js";
12
- import { i as Zt, n as Qt } from "./connectionConfig-Bk9IC7D0.js";
13
- import { c as F, n as $t, o as en } from "./seedRunner-Dgsiwk_e.js";
14
- import { d as tn, h as nn, m as rn, p as an, r as on } from "./frameworkTableAssembly-DKx3ba3S.js";
15
- import { n as sn, r as cn, t as ln } from "./declaredSchemaGates-BlcwObhb.js";
16
- import { C as un, S as dn, a as fn, c as pn, l as mn, m as hn, n as gn } from "./fileConventions-DASGEmj-.js";
17
- import { h as _n, o as vn } from "./inspect-Bd8-9wsi.js";
18
- import { i as yn, n as bn, t as xn } from "./inspectMetrics-CGF94puw.js";
19
- import { n as Sn } from "./mssqlClusterPatch-_4cE_nun.js";
20
- import { i as Cn, n as wn, r as Tn, t as En } from "./webhookDiscovery-CphsQe59.js";
21
- import { r as Dn, u as On } from "./apiBuild-CaPfoWku.js";
22
- import { t as kn } from "./bootTiming-BdyP9nYw.js";
23
- import { a as An, o as jn, t as Mn } from "./dataProfile-Du3ztYxv.js";
24
- import I, { basename as Nn, join as Pn } from "node:path";
25
- import { createWriteStream as Fn, existsSync as In } from "node:fs";
26
- import { pathToFileURL as Ln } from "node:url";
27
- import { LoggerLayer as Rn, createLogger as L } from "@voltro/logger";
28
- import { AuthMiddleware as zn, ConnectionInfoMiddleware as Bn, actionToRpc as R, anonymousSubject as Vn, isWireReachable as Hn, mutationToRpc as Un, queryToRpc as z, streamToRpc as Wn, wireErrorUnion as Gn, workflowCancelDescriptor as Kn, workflowDomainEventsQueryDescriptor as B, workflowEventDeliveriesQueryDescriptor as V, workflowResumeDescriptor as qn, workflowRunEventsQueryDescriptor as Jn, workflowRunQueryDescriptor as Yn, workflowRunStepsQueryDescriptor as Xn, workflowRunsQueryDescriptor as Zn, workflowSignalDescriptor as Qn, workflowUpdateDescriptor as $n } from "@voltro/protocol";
29
- import { DATA_TRANSFERS_TABLE as H, _voltroDataTransfersTable as er, allRegisteredTables as tr, and as nr, connectionIdentity as rr, derivedRowId as ir, describeTransferRun as ar, ensureTableRegistered as or, eq as U, or as sr } from "@voltro/database";
30
- import { Cause as cr, Effect as W, Layer as G, ManagedRuntime as lr } from "effect";
31
- import { SqlClient as ur } from "@effect/sql";
32
- import { declaredSnapshot as dr, describeOutcome as fr, pendingFileMigrationIds as pr, runPlannedMigrations as mr } from "@voltro/database/sql";
33
- import { AggregateRegistry as hr, CostRegistry as gr, DORMANCY_WAKEUP_TENANT as _r, Dispatcher as vr, ExpectationRegistry as yr, ExperimentRegistry as br, apiKeyManagementRoutes as xr, attachAnalyticsMirror as Sr, attachExpectations as Cr, attachExperiments as wr, attachFinops as Tr, awaitServerListening as Er, bindMutation as Dr, bindStream as Or, bindSubscription as K, buildTracingLayer as kr, cancelWakeup as Ar, compileCron as jr, dataStoreApiKeyStore as Mr, formatServerOnlyLeaks as Nr, formatUnresolvedSources as Pr, frameworkApiKeyStrategy as Fr, getResourcePolicy as Ir, installPolicyGuardResolver as Lr, loadResourceTuples as Rr, makeActionRunner as zr, makeAdvisoryLockCoordinator as Br, makeApiKeyService as Vr, makeApiKeyUsageBuffer as Hr, makeApiKeyUsageFlusher as Ur, makeAsyncKv as Wr, makeAuthMiddlewareLayers as Gr, makeCoordinatedScheduler as Kr, makeEffectStoreLayer as qr, makeLazyWorkflowFacade as Jr, makeMutationOutputCodec as Yr, makeMutationRunner as Xr, makeOneShotQueryRunner as Zr, makeQueryDescriptorProducer as q, makeQueryFinalizer as Qr, makeQueryReauthorizer as $r, makeQuerySubscriber as ei, makeSchemaRegistry as ti, makeWorkflowFacade as ni, makeWorkflowFacadeWithCallerContext as ri, makeWorkflowLayers as ii, noopKv as ai, onProcessShutdown as J, recordSubscriptionDelivery as Y, recordWorkflowRun as oi, registerDefaultTupleSource as si, registerWakeup as ci, resolveSecretsBackend as li, runProvidedEffect as ui, setSecretsBackend as di, setSystemStoreHandle as fi, shutdownGraceMsFromEnv as pi, singleCoordinator as mi, startRpcServer as hi, startScheduler as gi, stripForbiddenForWire as _i, undoCaptureEnabled as vi, unresolvedSources as yi, withScopedRequest as bi, workflowToRpc as xi, wrapStoreWithBootCodec as Si } from "@voltro/runtime";
34
- import Ci, { tmpdir as wi } from "node:os";
35
- import { RpcGroup as Ti } from "@effect/rpc";
36
- import { appStorageProvider as Ei, durabilityNotice as Di, fromNodeReadable as Oi, getObjectStream as ki, putObjectStream as Ai, toNodeReadable as ji } from "@voltro/plugin-storage";
37
- import { isEnvContract as Mi } from "@voltro/env";
38
- import { assertProductionSessionSecret as Ni } from "@voltro/protocol/session";
12
+ import { i as Qt, n as F } from "./connectionConfig-Bk9IC7D0.js";
13
+ import { c as $t, n as en, o as tn } from "./seedRunner-Dgsiwk_e.js";
14
+ import { d as nn, h as rn, m as an, p as on, r as sn } from "./frameworkTableAssembly-D7LJuALW.js";
15
+ import { n as cn, r as ln, t as un } from "./declaredSchemaGates-BlcwObhb.js";
16
+ import { C as dn, a as fn, h as pn, l as mn, n as hn, u as gn, w as _n } from "./fileConventions-l-RIXbx8.js";
17
+ import { h as vn, o as yn } from "./inspect-Bd8-9wsi.js";
18
+ import { i as bn, n as xn, t as Sn } from "./inspectMetrics-CGF94puw.js";
19
+ import { n as Cn } from "./mssqlClusterPatch-_4cE_nun.js";
20
+ import { i as wn, n as Tn, r as En, t as Dn } from "./webhookDiscovery-CphsQe59.js";
21
+ import { r as On, u as kn } from "./apiBuild-DTWp0S_q.js";
22
+ import { t as An } from "./bootTiming-BdyP9nYw.js";
23
+ import { a as jn, o as Mn, t as Nn } from "./dataProfile-Du3ztYxv.js";
24
+ import I, { basename as Pn, join as Fn } from "node:path";
25
+ import { createWriteStream as In, existsSync as Ln } from "node:fs";
26
+ import { pathToFileURL as Rn } from "node:url";
27
+ import { LoggerLayer as zn, createLogger as L } from "@voltro/logger";
28
+ import { AuthMiddleware as Bn, ConnectionInfoMiddleware as Vn, actionToRpc as R, anonymousSubject as Hn, isWireReachable as Un, mutationToRpc as Wn, queryToRpc as z, streamToRpc as Gn, wireErrorUnion as Kn, workflowCancelDescriptor as qn, workflowDomainEventsQueryDescriptor as B, workflowEventDeliveriesQueryDescriptor as V, workflowResumeDescriptor as Jn, workflowRunEventsQueryDescriptor as Yn, workflowRunQueryDescriptor as Xn, workflowRunStepsQueryDescriptor as Zn, workflowRunsQueryDescriptor as Qn, workflowSignalDescriptor as $n, workflowUpdateDescriptor as er } from "@voltro/protocol";
29
+ import { DATA_TRANSFERS_TABLE as H, _voltroDataTransfersTable as tr, allRegisteredTables as nr, and as rr, connectionIdentity as ir, derivedRowId as ar, describeTransferRun as or, ensureTableRegistered as sr, eq as U, or as cr } from "@voltro/database";
30
+ import { Cause as lr, Effect as W, Layer as G, ManagedRuntime as ur } from "effect";
31
+ import { SqlClient as dr } from "@effect/sql";
32
+ import { declaredSnapshot as fr, describeOutcome as pr, pendingFileMigrationIds as mr, runPlannedMigrations as hr } from "@voltro/database/sql";
33
+ import { AggregateRegistry as gr, CostRegistry as _r, DORMANCY_WAKEUP_TENANT as vr, Dispatcher as yr, ExpectationRegistry as br, ExperimentRegistry as xr, apiKeyManagementRoutes as Sr, attachAnalyticsMirror as Cr, attachExpectations as wr, attachExperiments as Tr, attachFinops as Er, awaitServerListening as Dr, bindMutation as K, bindStream as Or, bindSubscription as q, buildTracingLayer as kr, cancelWakeup as Ar, compileCron as jr, dataStoreApiKeyStore as Mr, formatServerOnlyLeaks as Nr, formatUnresolvedSources as Pr, frameworkApiKeyStrategy as Fr, getResourcePolicy as Ir, installPolicyGuardResolver as Lr, loadResourceTuples as Rr, makeActionRunner as zr, makeAdvisoryLockCoordinator as Br, makeApiKeyService as Vr, makeApiKeyUsageBuffer as Hr, makeApiKeyUsageFlusher as Ur, makeAsyncKv as Wr, makeAuthMiddlewareLayers as Gr, makeCoordinatedScheduler as Kr, makeEffectStoreLayer as qr, makeLazyWorkflowFacade as Jr, makeMutationOutputCodec as Yr, makeMutationRunner as Xr, makeOneShotQueryRunner as Zr, makeQueryDescriptorProducer as J, makeQueryFinalizer as Qr, makeQueryReauthorizer as $r, makeQuerySubscriber as ei, makeSchemaRegistry as ti, makeWorkflowFacade as ni, makeWorkflowFacadeWithCallerContext as ri, makeWorkflowLayers as ii, noopKv as ai, onProcessShutdown as oi, recordSubscriptionDelivery as Y, recordWorkflowRun as si, registerDefaultTupleSource as ci, registerWakeup as li, resolveSecretsBackend as ui, runProvidedEffect as di, setSecretsBackend as fi, setSystemStoreHandle as pi, shutdownGraceMsFromEnv as mi, singleCoordinator as hi, startRpcServer as gi, startScheduler as _i, stripForbiddenForWire as vi, undoCaptureEnabled as yi, unresolvedSources as bi, withScopedRequest as xi, workflowToRpc as Si, wrapStoreWithBootCodec as Ci } from "@voltro/runtime";
34
+ import wi, { tmpdir as Ti } from "node:os";
35
+ import { RpcGroup as Ei } from "@effect/rpc";
36
+ import { appStorageProvider as Di, durabilityNotice as Oi, fromNodeReadable as ki, getObjectStream as Ai, putObjectStream as ji, toNodeReadable as Mi } from "@voltro/plugin-storage";
37
+ import { isEnvContract as Ni } from "@voltro/env";
38
+ import { assertProductionSessionSecret as Pi } from "@voltro/protocol/session";
39
39
  import X from "node:fs/promises";
40
- import { createHash as Pi, timingSafeEqual as Fi } from "node:crypto";
41
- import { channelFor as Ii, getBroadcastPlugin as Li } from "@voltro/plugin-broadcast";
42
- import { buildDeliverWebhookExecute as Ri, buildWebhooksService as zi, defaultIncomingPath as Bi, deliverWebhookWorkflow as Vi, makeDeferredEmitHandler as Hi, mountIncomingWebhook as Ui } from "@voltro/plugin-webhooks";
43
- import { getAuthSessionStrategy as Wi } from "@voltro/plugin-auth";
44
- import { registerEmailTemplates as Gi } from "@voltro/plugin-mail";
45
- import { checkSchemaDrift as Ki, decideStaging as qi, isEnvironmentLocal as Ji, packBundle as Yi, peekBundle as Xi, runExport as Zi, runImport as Qi, storageBlobSink as $i, storageRefsBlobSource as ea, unpackBundle as ta, unpackBundleToDir as na } from "@voltro/data-transfer";
40
+ import { createHash as Fi, timingSafeEqual as Ii } from "node:crypto";
41
+ import { channelFor as Li, getBroadcastPlugin as Ri } from "@voltro/plugin-broadcast";
42
+ import { buildDeliverWebhookExecute as zi, buildWebhooksService as Bi, defaultIncomingPath as Vi, deliverWebhookWorkflow as Hi, makeDeferredEmitHandler as Ui, mountIncomingWebhook as Wi } from "@voltro/plugin-webhooks";
43
+ import { getAuthSessionStrategy as Gi } from "@voltro/plugin-auth";
44
+ import { registerEmailTemplates as Ki } from "@voltro/plugin-mail";
45
+ import { checkSchemaDrift as qi, decideStaging as Ji, isEnvironmentLocal as Yi, packBundle as Xi, peekBundle as Zi, runExport as Qi, runImport as $i, storageBlobSink as ea, storageRefsBlobSource as ta, unpackBundle as na, unpackBundleToDir as ra } from "@voltro/data-transfer";
46
46
  //#region \0rolldown/runtime.js
47
- var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
47
+ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
48
48
  if (typeof require < "u") return require.apply(this, arguments);
49
49
  throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
50
- }), ia = () => Math.max(500, Math.floor(pi() * .6)), aa = (e) => new Promise((t) => setTimeout(t, e)), oa = (e) => {
50
+ }), aa = () => Math.max(500, Math.floor(mi() * .6)), oa = (e) => new Promise((t) => setTimeout(t, e)), sa = (e) => {
51
51
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = 0;
52
52
  e.on("connection", (e) => {
53
53
  t.add(e), e.once("close", () => {
@@ -61,14 +61,14 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
61
61
  });
62
62
  });
63
63
  let i, a = async (t = {}) => {
64
- let n = t.budgetMs ?? ia();
64
+ let n = t.budgetMs ?? aa();
65
65
  i ??= new Promise((t) => {
66
66
  e.close(() => {
67
67
  t();
68
68
  });
69
69
  }), e.closeIdleConnections();
70
70
  let a = Date.now() + n;
71
- for (; r > 0 && Date.now() < a;) await aa(25), e.closeIdleConnections();
71
+ for (; r > 0 && Date.now() < a;) await oa(25), e.closeIdleConnections();
72
72
  e.closeIdleConnections();
73
73
  }, o = async () => {
74
74
  i ??= new Promise((t) => {
@@ -85,7 +85,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
85
85
  ]));
86
86
  } catch {}
87
87
  else e.destroy();
88
- for (let e = 0; t.size > 0 && e < 250; e += 25) await aa(25);
88
+ for (let e = 0; t.size > 0 && e < 250; e += 25) await oa(25);
89
89
  for (let e of t) e.destroy();
90
90
  await i;
91
91
  };
@@ -97,83 +97,83 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
97
97
  await a(e), await o();
98
98
  }
99
99
  };
100
- }, sa = "/_voltro/admin/import", ca = "/_voltro/admin/import/start", la = "/_voltro/admin/export", ua = "/_voltro/admin/export/download", da = "/_voltro/admin/transfers", Z = (e, t) => ({
100
+ }, ca = "/_voltro/admin/import", la = "/_voltro/admin/import/start", ua = "/_voltro/admin/export", da = "/_voltro/admin/export/download", fa = "/_voltro/admin/transfers", Z = (e, t) => ({
101
101
  status: e,
102
102
  contentType: "application/json; charset=utf-8",
103
103
  body: JSON.stringify(t)
104
- }), fa = (e) => {
104
+ }), pa = (e) => {
105
105
  let t = e.authorization ?? e.Authorization, n = t ? /^Bearer\s+(.+)$/i.exec(t) : null;
106
106
  return n ? n[1] : null;
107
- }, pa = (e, t) => Fi(Pi("sha256").update(e).digest(), Pi("sha256").update(t).digest()), ma = (e, t, n = "POST") => {
107
+ }, ma = (e, t) => Ii(Fi("sha256").update(e).digest(), Fi("sha256").update(t).digest()), ha = (e, t, n = "POST") => {
108
108
  if (e.method.toUpperCase() !== n) return Z(405, { error: "method not allowed" });
109
109
  if (!t || t.length < 16) return Z(503, { error: "data transfer misconfigured (no/weak secret)" });
110
- let r = fa(e.headers);
111
- return !r || !pa(r, t) ? Z(401, { error: "unauthorized" }) : null;
112
- }, ha = /^[A-Za-z0-9_-]{8,64}$/, ga = (e) => ha.test(e), _a = () => process.env.VOLTRO_IMPORT_UPLOAD_DIR ?? I.join(Ci.tmpdir(), "voltro-import-uploads"), va = (e) => I.join(_a(), e), ya = (e) => I.join(va(e), "archive.bin"), ba = (e) => I.join(va(e), "meta.json"), xa = async (e = Date.now()) => {
110
+ let r = pa(e.headers);
111
+ return !r || !ma(r, t) ? Z(401, { error: "unauthorized" }) : null;
112
+ }, ga = /^[A-Za-z0-9_-]{8,64}$/, _a = (e) => ga.test(e), va = () => process.env.VOLTRO_IMPORT_UPLOAD_DIR ?? I.join(wi.tmpdir(), "voltro-import-uploads"), ya = (e) => I.join(va(), e), ba = (e) => I.join(ya(e), "archive.bin"), xa = (e) => I.join(ya(e), "meta.json"), Sa = async (e = Date.now()) => {
113
113
  let t = 0;
114
114
  try {
115
- for (let n of await X.readdir(_a())) {
115
+ for (let n of await X.readdir(va())) {
116
116
  if (n === ".runs") continue;
117
- let r = await X.stat(va(n)).catch(() => null);
118
- r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(va(n), {
117
+ let r = await X.stat(ya(n)).catch(() => null);
118
+ r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(ya(n), {
119
119
  recursive: !0,
120
120
  force: !0
121
121
  }).catch(() => void 0), t++));
122
122
  }
123
123
  } catch {}
124
124
  return t;
125
- }, Sa = async (e) => {
126
- if (!ga(e)) return {
125
+ }, Ca = async (e) => {
126
+ if (!_a(e)) return {
127
127
  bytes: 0,
128
128
  key: null,
129
129
  runId: null
130
130
  };
131
- let t = await X.stat(ya(e)).catch(() => null);
131
+ let t = await X.stat(ba(e)).catch(() => null);
132
132
  if (t === null) return {
133
133
  bytes: 0,
134
134
  key: null,
135
135
  runId: null
136
136
  };
137
- let n = await Ca(e);
137
+ let n = await wa(e);
138
138
  return {
139
139
  bytes: t.size,
140
140
  key: n.key ?? null,
141
141
  runId: n.runId ?? null
142
142
  };
143
- }, Ca = async (e) => {
143
+ }, wa = async (e) => {
144
144
  try {
145
- let t = await X.readFile(ba(e), "utf8");
145
+ let t = await X.readFile(xa(e), "utf8");
146
146
  return JSON.parse(t);
147
147
  } catch {
148
148
  return {};
149
149
  }
150
- }, wa = async (e, t) => {
151
- let n = ba(e), r = `${n}.${process.pid}.${Math.random().toString(36).slice(2, 8)}.tmp`;
150
+ }, Ta = async (e, t) => {
151
+ let n = xa(e), r = `${n}.${process.pid}.${Math.random().toString(36).slice(2, 8)}.tmp`;
152
152
  await X.writeFile(r, JSON.stringify(t)), await X.rename(r, n);
153
- }, Ta = async (e, t, n) => {
154
- if (!ga(e)) return t;
155
- await X.mkdir(va(e), { recursive: !0 });
156
- let r = await Ca(e), i = typeof r.runId == "string" && r.runId.length > 0 ? r.runId : null;
157
- return i !== null && n?.takeOver !== !0 ? i : (await wa(e, {
153
+ }, Ea = async (e, t, n) => {
154
+ if (!_a(e)) return t;
155
+ await X.mkdir(ya(e), { recursive: !0 });
156
+ let r = await wa(e), i = typeof r.runId == "string" && r.runId.length > 0 ? r.runId : null;
157
+ return i !== null && n?.takeOver !== !0 ? i : (await Ta(e, {
158
158
  ...r,
159
159
  runId: t
160
160
  }), t);
161
- }, Ea = async (e) => {
162
- if (!ga(e)) return;
163
- let t = await Ca(e);
161
+ }, Da = async (e) => {
162
+ if (!_a(e)) return;
163
+ let t = await wa(e);
164
164
  if (t.runId === void 0) return;
165
165
  let { runId: n, ...r } = t;
166
- await wa(e, r).catch(() => void 0);
167
- }, Da = async (e, t, n) => (await X.mkdir(va(e), { recursive: !0 }), await X.writeFile(ya(e), Buffer.from(t)), await wa(e, {
168
- ...await Ca(e),
166
+ await Ta(e, r).catch(() => void 0);
167
+ }, Oa = async (e, t, n) => (await X.mkdir(ya(e), { recursive: !0 }), await X.writeFile(ba(e), Buffer.from(t)), await Ta(e, {
168
+ ...await wa(e),
169
169
  key: n,
170
170
  startedAt: (/* @__PURE__ */ new Date()).toISOString()
171
- }), t.byteLength), Oa = (e) => `up-${Pi("sha256").update(e).digest("hex").slice(0, 32)}`, ka = async (e) => {
172
- if (!ga(e.id)) return {
171
+ }), t.byteLength), ka = (e) => `up-${Fi("sha256").update(e).digest("hex").slice(0, 32)}`, Aa = async (e) => {
172
+ if (!_a(e.id)) return {
173
173
  reason: "bad-id",
174
- message: `upload id must match ${String(ha)}`
174
+ message: `upload id must match ${String(ga)}`
175
175
  };
176
- let t = await Sa(e.id);
176
+ let t = await Ca(e.id);
177
177
  if (t.key !== null && t.key !== e.key) return {
178
178
  reason: "key-mismatch",
179
179
  message: "this upload id already holds a different bundle. Use a new upload id, or delete the partial upload."
@@ -183,34 +183,34 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
183
183
  message: `chunk starts at ${e.offset} but the server holds ${t.bytes} byte(s)`,
184
184
  expectedOffset: t.bytes
185
185
  };
186
- if (await X.mkdir(va(e.id), { recursive: !0 }), t.key === null) {
187
- let t = await Ca(e.id);
188
- await wa(e.id, {
186
+ if (await X.mkdir(ya(e.id), { recursive: !0 }), t.key === null) {
187
+ let t = await wa(e.id);
188
+ await Ta(e.id, {
189
189
  ...t,
190
190
  key: e.key,
191
191
  startedAt: (/* @__PURE__ */ new Date()).toISOString()
192
192
  });
193
193
  }
194
194
  return await new Promise((t, n) => {
195
- let r = Fn(ya(e.id), { flags: "a" });
195
+ let r = In(ba(e.id), { flags: "a" });
196
196
  r.on("error", n), r.on("finish", () => t()), r.end(Buffer.from(e.bytes));
197
197
  }), { total: t.bytes + e.bytes.byteLength };
198
- }, Aa = async (e) => {
199
- let t = await X.stat(ya(e));
198
+ }, ja = async (e) => {
199
+ let t = await X.stat(ba(e));
200
200
  return {
201
- path: ya(e),
201
+ path: ba(e),
202
202
  bytes: t.size
203
203
  };
204
- }, ja = () => I.join(_a(), ".runs"), Ma = (e) => I.join(ja(), `${e}.bin`), Na = async (e, t) => {
205
- if (!ga(e)) return null;
206
- let n = ya(e), r = await X.stat(n).catch(() => null);
204
+ }, Ma = () => I.join(va(), ".runs"), Na = (e) => I.join(Ma(), `${e}.bin`), Pa = async (e, t) => {
205
+ if (!_a(e)) return null;
206
+ let n = ba(e), r = await X.stat(n).catch(() => null);
207
207
  if (r === null || r.size === 0) return null;
208
- await X.mkdir(ja(), { recursive: !0 });
209
- let i = Ma(t);
208
+ await X.mkdir(Ma(), { recursive: !0 });
209
+ let i = Na(t);
210
210
  return await X.rename(n, i), i;
211
- }, Pa = async (e) => {
212
- await X.rm(Ma(e), { force: !0 }).catch(() => void 0);
213
- }, Q = L({ scope: "voltro:admin-import" }), Fa = "VBUNDLE2", Ia = (e) => {
211
+ }, Fa = async (e) => {
212
+ await X.rm(Na(e), { force: !0 }).catch(() => void 0);
213
+ }, Q = L({ scope: "voltro:admin-import" }), Ia = "VBUNDLE2", La = (e) => {
214
214
  let t = e.req.headers["x-import-rollback-key"];
215
215
  if (e.mode !== "replace") return { options: {} };
216
216
  if (typeof t != "string" || t.length === 0) return Q.warn("admin.import: no rollback capture — this run empties the target first, and nothing was asked to be kept. Send `x-import-rollback-key: <storage key>` (voltro data import --rollback-key <key>) to have the instance store the target's current rows before deleting them."), { options: {} };
@@ -221,18 +221,18 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
221
221
  hint: "A capture written to the pod would not survive the failure it exists for. Configure storage (the same one the storage-push export uses), or re-send without `x-import-rollback-key` to accept that a run which does not finish can leave the target emptied. Note that CONFIGURED is not the same question as SURVIVES: a `filesystem` provider pointed at a container directory with no volume behind it passes this check and dies with the pod. The run says so when it can observe it — the capture path being on the same filesystem as `/`."
222
222
  })
223
223
  };
224
- let n = Pn(wi(), `voltro-rollback-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`), r = e.deps.putArchive;
224
+ let n = Fn(Ti(), `voltro-rollback-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`), r = e.deps.putArchive;
225
225
  return {
226
226
  key: t,
227
227
  options: {
228
228
  rollbackDir: n,
229
229
  onRollbackCaptured: async () => {
230
- let e = Di(n);
231
- e !== void 0 && Q.warn(`admin.import: ${e}`), await r(t, () => Yi({ dir: n })), Q.info("admin.import: rollback capture stored", { bundleKey: t });
230
+ let e = Oi(n);
231
+ e !== void 0 && Q.warn(`admin.import: ${e}`), await r(t, () => Xi({ dir: n })), Q.info("admin.import: rollback capture stored", { bundleKey: t });
232
232
  }
233
233
  }
234
234
  };
235
- }, La = (e) => {
235
+ }, Ra = (e) => {
236
236
  let t = e["x-import-mode"], n = e["x-import-atomic"];
237
237
  return {
238
238
  mode: t,
@@ -242,34 +242,34 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
242
242
  dryRun: e["x-import-dry-run"] === "1" || e["x-import-dry-run"] === "true",
243
243
  tables: (e["x-import-tables"] ?? "").split(",").map((e) => e.trim()).filter(Boolean)
244
244
  };
245
- }, Ra = async (e, t) => {
245
+ }, za = async (e, t) => {
246
246
  if (typeof t.bundleKey == "string" && t.bundleKey !== "") {
247
247
  if (!e.openArchive) return { refusal: Z(501, { error: "storage transport not configured on this instance" }) };
248
248
  let n = e.openArchive, r = t.bundleKey;
249
249
  return {
250
250
  source: () => n(r),
251
251
  transport: "storage",
252
- uploadId: Oa(r)
252
+ uploadId: ka(r)
253
253
  };
254
254
  }
255
255
  let n = t.uploadId;
256
- if (typeof n != "string" || !ga(n)) return { refusal: Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" }) };
257
- let r = await Aa(n).catch(() => null);
256
+ if (typeof n != "string" || !_a(n)) return { refusal: Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" }) };
257
+ let r = await ja(n).catch(() => null);
258
258
  return r === null || r.bytes === 0 ? { refusal: Z(409, {
259
259
  error: "no such upload",
260
260
  message: `this instance holds no bytes for upload '${n}'. Upload the bundle first, or re-upload if it has expired.`
261
261
  }) } : {
262
- source: () => za(r.path),
262
+ source: () => Ba(r.path),
263
263
  transport: "upload",
264
264
  uploadId: n
265
265
  };
266
- }, za = (e) => {
267
- let { createReadStream: t } = ra("node:fs");
266
+ }, Ba = (e) => {
267
+ let { createReadStream: t } = ia("node:fs");
268
268
  return t(e);
269
- }, Ba = (e) => async (t) => {
270
- let n = ma(t, e.secret);
269
+ }, Va = (e) => async (t) => {
270
+ let n = ha(t, e.secret);
271
271
  if (n) return n;
272
- let r = La(t.headers), i = Ia({
272
+ let r = Ra(t.headers), i = La({
273
273
  req: t,
274
274
  mode: r.mode,
275
275
  deps: e
@@ -283,16 +283,16 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
283
283
  return Z(400, { error: "a preflight body must be JSON: { tables: string[] } or { bundleKey: string }" });
284
284
  }
285
285
  let a = Array.isArray(n.tables) ? n.tables.filter((e) => typeof e == "string") : [];
286
- if (a.length === 0 && typeof n.bundleKey == "string" && n.bundleKey !== "" && e.openArchive && (a = [...await Va(e.openArchive(n.bundleKey))]), a.length === 0) return Z(400, {
286
+ if (a.length === 0 && typeof n.bundleKey == "string" && n.bundleKey !== "" && e.openArchive && (a = [...await Ha(e.openArchive(n.bundleKey))]), a.length === 0) return Z(400, {
287
287
  error: "a preflight needs { tables: string[] } — the bundle's table names, so the staging decision can be made against them",
288
288
  hint: "or { bundleKey } on an instance with storage configured, where this endpoint reads the table list out of the archive itself"
289
289
  });
290
- let o = qi({
290
+ let o = Ji({
291
291
  mode: r.mode ?? "upsert",
292
292
  ...e.dialect === void 0 ? {} : { targetDialect: e.dialect },
293
293
  ...e.snapshot === void 0 ? {} : { targetSnapshot: e.snapshot },
294
294
  bundleTables: a,
295
- isSkipped: Ji,
295
+ isSkipped: Yi,
296
296
  canRunSql: !0
297
297
  });
298
298
  return Z(200, {
@@ -311,8 +311,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
311
311
  }
312
312
  let a = t.headers["x-import-upload-id"];
313
313
  if (a !== void 0 && a !== "") {
314
- if (xa(), t.headers["x-import-probe"] === "1") {
315
- let e = await Sa(a);
314
+ if (Sa(), t.headers["x-import-probe"] === "1") {
315
+ let e = await Ca(a);
316
316
  return Z(200, {
317
317
  uploadId: a,
318
318
  bytes: e.bytes,
@@ -321,7 +321,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
321
321
  }
322
322
  let e = t.headers["x-import-upload-key"] ?? "", n = Number(t.headers["x-import-chunk-offset"] ?? "0");
323
323
  if (e === "" || !Number.isFinite(n) || n < 0) return Z(400, { error: "a chunked upload needs x-import-upload-key and a numeric x-import-chunk-offset" });
324
- let r = await ka({
324
+ let r = await Aa({
325
325
  id: a,
326
326
  key: e,
327
327
  offset: n,
@@ -343,12 +343,12 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
343
343
  complete: i
344
344
  });
345
345
  }
346
- if (t.rawBody.byteLength >= 8 && Buffer.from(t.rawBody.subarray(0, 8)).toString("latin1") === Fa) {
347
- xa();
348
- let e = Pi("sha256").update(Buffer.from(t.rawBody)).digest("hex"), n = Oa(e);
346
+ if (t.rawBody.byteLength >= 8 && Buffer.from(t.rawBody.subarray(0, 8)).toString("latin1") === Ia) {
347
+ Sa();
348
+ let e = Fi("sha256").update(Buffer.from(t.rawBody)).digest("hex"), n = ka(e);
349
349
  return Z(202, {
350
350
  uploadId: n,
351
- bytes: await Da(n, t.rawBody, e),
351
+ bytes: await Oa(n, t.rawBody, e),
352
352
  complete: !0
353
353
  });
354
354
  }
@@ -359,22 +359,22 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
359
359
  return Z(400, { error: "body must be a packed bundle archive or { bundleKey } JSON" });
360
360
  }
361
361
  return typeof o.bundleKey != "string" || !o.bundleKey ? Z(400, { error: "body.bundleKey (string) is required for the storage transport" }) : e.openArchive ? Z(202, {
362
- uploadId: Oa(o.bundleKey),
362
+ uploadId: ka(o.bundleKey),
363
363
  bundleKey: o.bundleKey,
364
364
  complete: !0
365
365
  }) : Z(501, { error: "storage transport not configured on this instance" });
366
- }, Va = async (e) => {
367
- let t = await Xi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => void 0);
366
+ }, Ha = async (e) => {
367
+ let t = await Zi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => void 0);
368
368
  if (t === void 0) return [];
369
369
  try {
370
370
  return (JSON.parse(Buffer.from(t).toString("utf8")).tables ?? []).map((e) => e.name).filter((e) => typeof e == "string");
371
371
  } catch {
372
372
  return [];
373
373
  }
374
- }, Ha = (e) => async (t) => {
375
- let n = ma(t, e.secret);
374
+ }, Ua = (e) => async (t) => {
375
+ let n = ha(t, e.secret);
376
376
  if (n) return n;
377
- let r = La(t.headers), i = Ia({
377
+ let r = Ra(t.headers), i = La({
378
378
  req: t,
379
379
  mode: r.mode,
380
380
  deps: e
@@ -386,12 +386,12 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
386
386
  } catch {
387
387
  return Z(400, { error: "body must be JSON: { uploadId } or { bundleKey }" });
388
388
  }
389
- let o = typeof a.bundleKey == "string" && a.bundleKey !== "" ? Oa(a.bundleKey) : typeof a.uploadId == "string" ? a.uploadId : "";
390
- if (!ga(o)) return Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" });
391
- let s = ir("dimp", `${o}-${Date.now()}-${Math.random()}`), c = await Ta(o, s);
389
+ let o = typeof a.bundleKey == "string" && a.bundleKey !== "" ? ka(a.bundleKey) : typeof a.uploadId == "string" ? a.uploadId : "";
390
+ if (!_a(o)) return Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" });
391
+ let s = ar("dimp", `${o}-${Date.now()}-${Math.random()}`), c = await Ea(o, s);
392
392
  if (c !== s) {
393
- let t = await An(e.store, c);
394
- if (jn(t) === void 0 && t !== null) return Q.info("admin.import start: already running", {
393
+ let t = await jn(e.store, c);
394
+ if (Mn(t) === void 0 && t !== null) return Q.info("admin.import start: already running", {
395
395
  uploadId: o,
396
396
  runId: c
397
397
  }), Z(202, {
@@ -402,18 +402,18 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
402
402
  Q.info("admin.import start: taking over a claim whose run is not running", {
403
403
  uploadId: o,
404
404
  staleRunId: c,
405
- outcome: jn(t) ?? "no record"
406
- }), c = await Ta(o, s, { takeOver: !0 });
405
+ outcome: Mn(t) ?? "no record"
406
+ }), c = await Ea(o, s, { takeOver: !0 });
407
407
  }
408
- let l = async (e) => (await Ea(o).catch(() => void 0), e), u = await Ra(e, {
408
+ let l = async (e) => (await Da(o).catch(() => void 0), e), u = await za(e, {
409
409
  ...typeof a.uploadId == "string" ? { uploadId: a.uploadId } : {},
410
410
  ...typeof a.bundleKey == "string" ? { bundleKey: a.bundleKey } : {}
411
411
  });
412
412
  if ("refusal" in u) return l(u.refusal);
413
413
  if (e.snapshot !== void 0 && !r.force) {
414
- let t = await Ua(u.source());
414
+ let t = await Wa(u.source());
415
415
  if (t !== null) {
416
- let n = Ki(t.source?.schemaFingerprint ?? "", e.snapshot, Wa(t));
416
+ let n = qi(t.source?.schemaFingerprint ?? "", e.snapshot, Ga(t));
417
417
  if (n.drifted) return Q.warn("admin.import refused (schema drift)", {
418
418
  transport: u.transport,
419
419
  bundle: n.bundleFingerprint.slice(0, 16),
@@ -428,17 +428,17 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
428
428
  }
429
429
  }
430
430
  let d = null;
431
- if (u.transport === "upload" && (d = await Na(u.uploadId, c), d === null)) return l(Z(409, {
431
+ if (u.transport === "upload" && (d = await Pa(u.uploadId, c), d === null)) return l(Z(409, {
432
432
  error: "no such upload",
433
433
  message: `the bytes for upload '${u.uploadId}' are gone. Re-upload the bundle.`
434
434
  }));
435
- let f = await Ga(e.store, {
435
+ let f = await Ka(e.store, {
436
436
  runId: c,
437
437
  mode: r.mode ?? "upsert",
438
438
  via: "api",
439
439
  bundle: u.transport === "storage" ? String(a.bundleKey) : u.uploadId
440
440
  });
441
- return Ka({
441
+ return qa({
442
442
  deps: e,
443
443
  opts: r,
444
444
  rollback: i,
@@ -446,7 +446,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
446
446
  traced: f,
447
447
  resolved: d === null ? u : {
448
448
  ...u,
449
- source: () => za(d)
449
+ source: () => Ba(d)
450
450
  }
451
451
  }), Q.info("admin.import started", {
452
452
  runId: c,
@@ -465,15 +465,15 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
465
465
  recorded: f,
466
466
  outcome: "poll /_voltro/admin/transfers for this runId — a 202 means started, not finished"
467
467
  });
468
- }, Ua = async (e) => {
469
- let t = await Xi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => null);
468
+ }, Wa = async (e) => {
469
+ let t = await Zi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => null);
470
470
  if (t == null) return null;
471
471
  try {
472
472
  return JSON.parse(Buffer.from(t).toString("utf8"));
473
473
  } catch {
474
474
  return null;
475
475
  }
476
- }, Wa = (e) => ({ tables: (e.tables ?? []).map((e) => ({
476
+ }, Ga = (e) => ({ tables: (e.tables ?? []).map((e) => ({
477
477
  name: e.name,
478
478
  indexes: [],
479
479
  columns: Object.entries(e.columnTypes ?? {}).map(([e, t]) => ({
@@ -483,9 +483,9 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
483
483
  unique: !1,
484
484
  hasDefault: !1
485
485
  }))
486
- })) }), Ga = async (e, t) => {
486
+ })) }), Ka = async (e, t) => {
487
487
  try {
488
- return or(er), await e.insert(H, {
488
+ return sr(tr), await e.insert(H, {
489
489
  id: t.runId,
490
490
  direction: "import",
491
491
  startedAt: /* @__PURE__ */ new Date(),
@@ -505,7 +505,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
505
505
  error: e?.message ?? String(e)
506
506
  }), !1;
507
507
  }
508
- }, Ka = async (e) => {
508
+ }, qa = async (e) => {
509
509
  let { deps: t, opts: n, rollback: r, resolved: i, runId: a } = e, o = await import("node:os"), s = await import("node:fs/promises"), c = await import("node:path"), l = await s.mkdtemp(c.join(o.tmpdir(), "voltro-admin-import-")), u = async (n) => {
510
510
  Q.warn("admin.import failed", {
511
511
  runId: a,
@@ -517,11 +517,11 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
517
517
  }).then(() => void 0, () => void 0);
518
518
  };
519
519
  try {
520
- t.assetSink ? await ta(i.source(), {
520
+ t.assetSink ? await na(i.source(), {
521
521
  dir: l,
522
522
  blobs: t.assetSink
523
- }) : await na(i.source(), l);
524
- let o = await W.runPromiseExit(Qi({
523
+ }) : await ra(i.source(), l);
524
+ let o = await W.runPromiseExit($i({
525
525
  store: t.store,
526
526
  bundleDir: l,
527
527
  ...n.mode ? { mode: n.mode } : {},
@@ -566,24 +566,24 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
566
566
  await s.rm(l, {
567
567
  recursive: !0,
568
568
  force: !0
569
- }).catch(() => void 0), await Pa(a).catch(() => void 0), await Ea(i.uploadId).catch(() => void 0);
569
+ }).catch(() => void 0), await Fa(a).catch(() => void 0), await Da(i.uploadId).catch(() => void 0);
570
570
  }
571
- }, qa = /^[A-Za-z0-9_-]{8,64}$/, Ja = (e) => qa.test(e), Ya = () => process.env.VOLTRO_EXPORT_ARTIFACT_DIR ?? I.join(Ci.tmpdir(), "voltro-export-artifacts"), Xa = (e) => I.join(Ya(), e), Za = (e) => I.join(Xa(e), "archive.bin"), Qa = async (e = Date.now()) => {
571
+ }, Ja = /^[A-Za-z0-9_-]{8,64}$/, Ya = (e) => Ja.test(e), Xa = () => process.env.VOLTRO_EXPORT_ARTIFACT_DIR ?? I.join(wi.tmpdir(), "voltro-export-artifacts"), Za = (e) => I.join(Xa(), e), Qa = (e) => I.join(Za(e), "archive.bin"), $a = async (e = Date.now()) => {
572
572
  let t = 0;
573
573
  try {
574
- for (let n of await X.readdir(Ya())) {
575
- let r = await X.stat(Xa(n)).catch(() => null);
576
- r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(Xa(n), {
574
+ for (let n of await X.readdir(Xa())) {
575
+ let r = await X.stat(Za(n)).catch(() => null);
576
+ r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(Za(n), {
577
577
  recursive: !0,
578
578
  force: !0
579
579
  }).catch(() => void 0), t++));
580
580
  }
581
581
  } catch {}
582
582
  return t;
583
- }, $a = async (e, t) => {
584
- if (!Ja(e)) throw Error(`invalid run id: ${e}`);
585
- await X.mkdir(Xa(e), { recursive: !0 });
586
- let { createWriteStream: n } = await import("node:fs"), r = n(Za(e)), i = 0;
583
+ }, eo = async (e, t) => {
584
+ if (!Ya(e)) throw Error(`invalid run id: ${e}`);
585
+ await X.mkdir(Za(e), { recursive: !0 });
586
+ let { createWriteStream: n } = await import("node:fs"), r = n(Qa(e)), i = 0;
587
587
  try {
588
588
  for await (let e of t) i += e.byteLength, r.write(Buffer.from(e)) || await new Promise((e, t) => {
589
589
  r.once("drain", e), r.once("error", t);
@@ -594,18 +594,18 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
594
594
  });
595
595
  }
596
596
  return i;
597
- }, eo = async (e) => {
598
- if (!Ja(e)) return null;
599
- let t = await X.stat(Za(e)).catch(() => null);
597
+ }, to = async (e) => {
598
+ if (!Ya(e)) return null;
599
+ let t = await X.stat(Qa(e)).catch(() => null);
600
600
  return t === null ? null : t.size;
601
- }, to = async (e, t, n) => {
602
- let r = await eo(e);
601
+ }, no = async (e, t, n) => {
602
+ let r = await to(e);
603
603
  if (r === null) return null;
604
604
  if (t >= r) return {
605
605
  bytes: Buffer.alloc(0),
606
606
  total: r
607
607
  };
608
- let i = await X.open(Za(e), "r");
608
+ let i = await X.open(Qa(e), "r");
609
609
  try {
610
610
  let e = Math.max(0, Math.min(n, r - t)), a = Buffer.alloc(e);
611
611
  return await i.read(a, 0, e, t), {
@@ -615,27 +615,27 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
615
615
  } finally {
616
616
  await i.close();
617
617
  }
618
- }, no = async (e) => {
619
- Ja(e) && await X.rm(Xa(e), {
618
+ }, ro = async (e) => {
619
+ Ya(e) && await X.rm(Za(e), {
620
620
  recursive: !0,
621
621
  force: !0
622
622
  }).catch(() => void 0);
623
- }, ro = L({ scope: "voltro:admin-export" }), io = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], ao = (e) => {
623
+ }, io = L({ scope: "voltro:admin-export" }), ao = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], oo = (e) => {
624
624
  if (typeof e.tenant == "string" && e.tenant) return {
625
625
  kind: "tenant",
626
626
  tenantId: e.tenant
627
627
  };
628
628
  if (Array.isArray(e.tables) && e.tables.length) return {
629
629
  kind: "tables",
630
- tables: io(e.tables)
630
+ tables: ao(e.tables)
631
631
  };
632
- let t = io(e.exclude);
632
+ let t = ao(e.exclude);
633
633
  return t.length > 0 ? {
634
634
  kind: "all",
635
635
  exclude: t
636
636
  } : { kind: "all" };
637
- }, oo = (e) => async (t) => {
638
- let n = ma(t, e.secret);
637
+ }, so = (e) => async (t) => {
638
+ let n = ha(t, e.secret);
639
639
  if (n) return n;
640
640
  let r;
641
641
  try {
@@ -655,12 +655,12 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
655
655
  });
656
656
  }
657
657
  }
658
- let a = r.consistency === "snapshot" ? "snapshot" : i.consistency ?? "live", o = (typeof r.compression == "string" ? r.compression : void 0) ?? i.compression, s = i.scope ?? ao(r), c = typeof r.bundleKey == "string" && r.bundleKey.length > 0, l = r.assets === !0 && e.assetSource ? { blobs: e.assetSource } : {}, u = ir("dexp", `${Date.now()}-${Math.random()}`), d = await so(e.store, {
658
+ let a = r.consistency === "snapshot" ? "snapshot" : i.consistency ?? "live", o = (typeof r.compression == "string" ? r.compression : void 0) ?? i.compression, s = i.scope ?? oo(r), c = typeof r.bundleKey == "string" && r.bundleKey.length > 0, l = r.assets === !0 && e.assetSource ? { blobs: e.assetSource } : {}, u = ar("dexp", `${Date.now()}-${Math.random()}`), d = await co(e.store, {
659
659
  runId: u,
660
660
  mode: i.subset ? "subset" : s.kind,
661
661
  bundle: c ? String(r.bundleKey) : null
662
662
  });
663
- return co({
663
+ return lo({
664
664
  deps: e,
665
665
  runId: u,
666
666
  recorded: d,
@@ -670,7 +670,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
670
670
  blobs: l,
671
671
  ...o ? { compression: o } : {},
672
672
  ...c ? { bundleKey: String(r.bundleKey) } : {}
673
- }), Qa(), ro.info("admin.export started", {
673
+ }), $a(), io.info("admin.export started", {
674
674
  runId: u,
675
675
  scope: s.kind,
676
676
  storage: c
@@ -681,9 +681,9 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
681
681
  recorded: d,
682
682
  outcome: "poll /_voltro/admin/transfers for this runId; fetch the bytes from /_voltro/admin/export/download"
683
683
  });
684
- }, so = async (e, t) => {
684
+ }, co = async (e, t) => {
685
685
  try {
686
- return or(er), await e.insert(H, {
686
+ return sr(tr), await e.insert(H, {
687
687
  id: t.runId,
688
688
  direction: "export",
689
689
  startedAt: /* @__PURE__ */ new Date(),
@@ -698,17 +698,17 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
698
698
  staged: null
699
699
  }), !0;
700
700
  } catch (e) {
701
- return ro.warn("admin.export: the run could not be recorded", {
701
+ return io.warn("admin.export: the run could not be recorded", {
702
702
  runId: t.runId,
703
703
  error: e?.message ?? String(e)
704
704
  }), !1;
705
705
  }
706
- }, co = async (e) => {
706
+ }, lo = async (e) => {
707
707
  let { deps: t, runId: n } = e, r = await import("node:os"), i = await import("node:fs/promises"), a = await import("node:path"), o = await i.mkdtemp(a.join(r.tmpdir(), "voltro-admin-export-")), s = async (r) => {
708
708
  e.recorded && await t.store.update(H, n, r).then(() => void 0, () => void 0);
709
709
  };
710
710
  try {
711
- let r = await W.runPromise(Zi({
711
+ let r = await W.runPromise(Qi({
712
712
  store: t.store,
713
713
  snapshot: t.snapshot,
714
714
  dialect: t.dialect,
@@ -723,16 +723,16 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
723
723
  })), i = r.tables.reduce((e, t) => e + t.rowCount, 0), a = r.masking?.transformed.length ?? 0;
724
724
  if (e.bundleKey !== void 0) {
725
725
  if (!t.putArchive) throw Error("storage transport not configured on this instance");
726
- await t.putArchive(e.bundleKey, () => Yi({
726
+ await t.putArchive(e.bundleKey, () => Xi({
727
727
  dir: o,
728
728
  ...e.blobs
729
729
  }));
730
730
  }
731
- let c = await $a(n, Yi({
731
+ let c = await eo(n, Xi({
732
732
  dir: o,
733
733
  ...e.blobs
734
734
  }));
735
- ro.info("admin.export complete", {
735
+ io.info("admin.export complete", {
736
736
  runId: n,
737
737
  tables: r.tables.length,
738
738
  rows: i,
@@ -748,25 +748,25 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
748
748
  });
749
749
  } catch (e) {
750
750
  let t = e?.message ?? String(e);
751
- ro.warn("admin.export failed", {
751
+ io.warn("admin.export failed", {
752
752
  runId: n,
753
753
  error: t
754
754
  }), await s({
755
755
  failure: t,
756
756
  finishedAt: null
757
- }), await no(n);
757
+ }), await ro(n);
758
758
  } finally {
759
759
  await i.rm(o, {
760
760
  recursive: !0,
761
761
  force: !0
762
762
  }).catch(() => void 0);
763
763
  }
764
- }, lo = (e) => async (t) => {
765
- let n = ma(t, e.secret, "GET");
764
+ }, uo = (e) => async (t) => {
765
+ let n = ha(t, e.secret, "GET");
766
766
  if (n) return n;
767
767
  let r = new URLSearchParams(t.query ?? ""), i = r.get("runId") ?? "";
768
- if (!Ja(i)) return Z(400, { error: "download needs ?runId=<id> from the 202 the export answered with" });
769
- let a = Math.max(0, Number(r.get("offset") ?? "0") || 0), o = Number(r.get("length") ?? "8388608"), s = await to(i, a, Number.isFinite(o) && o > 0 ? Math.min(o, fo) : uo);
768
+ if (!Ya(i)) return Z(400, { error: "download needs ?runId=<id> from the 202 the export answered with" });
769
+ let a = Math.max(0, Number(r.get("offset") ?? "0") || 0), o = Number(r.get("length") ?? "8388608"), s = await no(i, a, Number.isFinite(o) && o > 0 ? Math.min(o, po) : fo);
770
770
  return s === null ? Z(404, {
771
771
  error: "no artefact",
772
772
  message: `this instance holds no produced bundle for run '${i}'. It may have expired, or the export may still be running — poll the run first.`
@@ -780,7 +780,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
780
780
  "x-export-length": String(s.bytes.byteLength)
781
781
  }
782
782
  };
783
- }, uo = 8388608, fo = 33554432, po = async (e, t) => await e.query({
783
+ }, fo = 8388608, po = 33554432, mo = async (e, t) => await e.query({
784
784
  table: H,
785
785
  order: [{
786
786
  column: "startedAt",
@@ -790,19 +790,19 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
790
790
  projection: void 0,
791
791
  skip: 0,
792
792
  take: t
793
- }), mo = (e) => {
793
+ }), ho = (e) => {
794
794
  let t = new Date(e);
795
795
  return Number.isFinite(t.getTime()) ? t : /* @__PURE__ */ new Date(0);
796
- }, ho = (e) => ({
796
+ }, go = (e) => ({
797
797
  ...e,
798
- startedAt: mo(e.startedAt),
799
- finishedAt: e.finishedAt === null || e.finishedAt === void 0 ? null : mo(e.finishedAt)
800
- }), go = (e) => async (t) => {
801
- let n = ma(t, e.secret, "GET");
798
+ startedAt: ho(e.startedAt),
799
+ finishedAt: e.finishedAt === null || e.finishedAt === void 0 ? null : ho(e.finishedAt)
800
+ }), _o = (e) => async (t) => {
801
+ let n = ha(t, e.secret, "GET");
802
802
  if (n) return n;
803
803
  let r = Number(new URLSearchParams(t.query ?? "").get("limit") ?? "20"), i = Number.isFinite(r) ? Math.max(1, Math.min(200, Math.trunc(r))) : 20, a;
804
804
  try {
805
- a = (await po(e.store, i)).map(ho);
805
+ a = (await mo(e.store, i)).map(go);
806
806
  } catch (e) {
807
807
  return Z(409, {
808
808
  error: "no import history",
@@ -825,11 +825,11 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
825
825
  direction: e.direction,
826
826
  failure: e.failure,
827
827
  staged: e.staged,
828
- line: ar(e)
828
+ line: or(e)
829
829
  }))
830
830
  });
831
- }, _o = (e, t, n = {}) => (async function* () {
832
- let r = await W.runPromise(ki(e, t).pipe(W.timeout(n.openTimeout ?? "30 seconds"))), i = await ji(r.stream), a = n.stallMs ?? 12e4, o, s = () => {
831
+ }, vo = (e, t, n = {}) => (async function* () {
832
+ let r = await W.runPromise(Ai(e, t).pipe(W.timeout(n.openTimeout ?? "30 seconds"))), i = await Mi(r.stream), a = n.stallMs ?? 12e4, o, s = () => {
833
833
  o && clearTimeout(o), o = setTimeout(() => i.destroy(/* @__PURE__ */ Error(`storage read stalled for ${a}ms reading '${t}'`)), a);
834
834
  };
835
835
  try {
@@ -838,7 +838,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
838
838
  } finally {
839
839
  o && clearTimeout(o), i.destroy();
840
840
  }
841
- })(), vo = {
841
+ })(), yo = {
842
842
  get: async () => void 0,
843
843
  set: async () => {},
844
844
  setWithTags: async () => {},
@@ -847,15 +847,15 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
847
847
  clear: async () => {},
848
848
  invalidateTag: async () => 0,
849
849
  wrap: async (e, t, n) => n()
850
- }, yo = async (e) => {
850
+ }, bo = async (e) => {
851
851
  Ne(e.appProcedures ?? e.discovered, {
852
852
  defaultDeny: e.security?.defaultDeny ?? !0,
853
853
  commandHint: "`voltro serve`"
854
- }), fi({
854
+ }), pi({
855
855
  dataStore: e.store,
856
856
  schemaRegistry: e.schemaRegistry
857
857
  });
858
- let t = (e.discovered.budgets?.length ?? 0) > 0, n, r = new vr({
858
+ let t = (e.discovered.budgets?.length ?? 0) > 0, n, r = new yr({
859
859
  crdtColumnsOf: (t) => e.schemaRegistry.crdtColumns(t),
860
860
  store: e.store,
861
861
  ...e.snapshotCache ? { cache: e.snapshotCache } : {},
@@ -867,13 +867,13 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
867
867
  durationMs: e.durationMs,
868
868
  rowCount: e.rowCount
869
869
  })
870
- }), i = e.cache ?? vo, a = e.kv ?? ai, o, s = () => void 0, u, d, f, ee, te, ne, h, g = L({ scope: "voltro:workflow" }), ie = L({ scope: "voltro:schedule" }), ae = Et({
870
+ }), i = e.cache ?? yo, a = e.kv ?? ai, o, s = () => void 0, u, d, f, ee, te, ne, m, g = L({ scope: "voltro:workflow" }), re = L({ scope: "voltro:schedule" }), ie = Et({
871
871
  store: e.store,
872
872
  warn: (e, t) => g.warn(e, t)
873
- }), oe = ae.remember, ce = ae.resolve, de = fe({
873
+ }), ae = ie.remember, oe = ie.resolve, ce = de({
874
874
  authority: e.authority,
875
875
  getStore: () => e.store
876
- }), v = (e.discovered.workflows?.length ?? 0) > 0 ? Jr(() => o) : void 0, ve = (e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.eventTriggers?.length ?? 0) > 0, ye = ve || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster", Se = e.tenantIsolation === "namespace", we = (e.log ?? L({ scope: "voltro:serve" })).child("webhooks"), Te, Ee, x = e.discovered.webhooks;
876
+ }), v = (e.discovered.workflows?.length ?? 0) > 0 ? Jr(() => o) : void 0, pe = (e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.eventTriggers?.length ?? 0) > 0, ve = pe || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster", ye = e.tenantIsolation === "namespace", Se = (e.log ?? L({ scope: "voltro:serve" })).child("webhooks"), we, Te, x = e.discovered.webhooks;
877
877
  if (x && x.outgoing.length > 0 && e.workflowEngineLayer !== void 0) {
878
878
  e.workflowEngineLayer;
879
879
  let t = Xe({
@@ -882,26 +882,26 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
882
882
  cache: i,
883
883
  kv: a
884
884
  }), n = x.outgoing.map((e) => e.descriptor);
885
- Ee = Vi.toLayer(Ri(t, { events: n })), Te = zi(t, async (e) => {
885
+ Te = Hi.toLayer(zi(t, { events: n })), we = Bi(t, async (e) => {
886
886
  let t = f;
887
887
  if (t === void 0) {
888
- we.error("webhook delivery skipped — the workflow runtime was never built. This is a framework defect, not a configuration problem: report it with your engine setting. Deliveries are NOT queued and will not be retried.", {
888
+ Se.error("webhook delivery skipped — the workflow runtime was never built. This is a framework defect, not a configuration problem: report it with your engine setting. Deliveries are NOT queued and will not be retried.", {
889
889
  deliveryId: e.deliveryId,
890
890
  targetId: e.targetId
891
891
  });
892
892
  return;
893
893
  }
894
- t.runPromise(Vi.execute(e)).catch((t) => {
895
- we.error("deliverWebhook workflow crashed", {
894
+ t.runPromise(Hi.execute(e)).catch((t) => {
895
+ Se.error("deliverWebhook workflow crashed", {
896
896
  deliveryId: e.deliveryId,
897
897
  targetId: e.targetId
898
898
  }, t);
899
899
  });
900
900
  }, { events: n });
901
901
  }
902
- let De = /* @__PURE__ */ new Map();
902
+ let Ee = /* @__PURE__ */ new Map();
903
903
  if (x) for (let e of x.incoming) {
904
- let t = e.descriptor.path ?? Bi(e.descriptor.id), n = `VOLTRO_WEBHOOK_SECRET_${e.descriptor.id.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`, r = Ui(e.descriptor, {
904
+ let t = e.descriptor.path ?? Vi(e.descriptor.id), n = `VOLTRO_WEBHOOK_SECRET_${e.descriptor.id.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`, r = Wi(e.descriptor, {
905
905
  resolveSecret: async () => process.env[n] ?? null,
906
906
  resolveWorkflows: () => v === void 0 ? void 0 : ri(v, {
907
907
  traceId: `incoming:${e.descriptor.id}`,
@@ -915,18 +915,18 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
915
915
  idempotency: e.idempotency,
916
916
  durationMs: e.durationMs
917
917
  };
918
- e.status >= 500 ? we.error("incoming delivery failed", t) : e.status >= 400 ? we.warn("incoming delivery rejected", t) : we.info("incoming delivery handled", t);
918
+ e.status >= 500 ? Se.error("incoming delivery failed", t) : e.status >= 400 ? Se.warn("incoming delivery rejected", t) : Se.info("incoming delivery handled", t);
919
919
  }
920
920
  });
921
- De.set(t, { handle: r });
921
+ Ee.set(t, { handle: r });
922
922
  }
923
- Lr(), si((t) => Rr(e.store, t.subjectId, t.resourceType, t.resourceId)) || L({ scope: "voltro:serve" }).info("policy guards: using the app-registered tuple source");
924
- let ke = [], Ae = [...e.discovered.outboxHandlers ?? [], ...wn((x?.outgoing.length ?? 0) + (x?.incoming.length ?? 0) + (x?.providers.length ?? 0), []) ? [{
923
+ Lr(), ci((t) => Rr(e.store, t.subjectId, t.resourceType, t.resourceId)) || L({ scope: "voltro:serve" }).info("policy guards: using the app-registered tuple source");
924
+ let De = [], ke = [...e.discovered.outboxHandlers ?? [], ...Tn((x?.outgoing.length ?? 0) + (x?.incoming.length ?? 0) + (x?.providers.length ?? 0), []) ? [{
925
925
  file: "<framework>/webhooks",
926
926
  id: "voltro-webhook-emit",
927
- definition: Hi(() => Te)
928
- }] : []], je = Ae.length > 0 ? l({
929
- handlers: Ae,
927
+ definition: Ui(() => we)
928
+ }] : []], Ae = ke.length > 0 ? l({
929
+ handlers: ke,
930
930
  store: e.store,
931
931
  log: (e.log ?? L({ scope: "voltro:serve" })).child("outbox"),
932
932
  onChange: (t) => e.store.onChange((e) => t({
@@ -934,15 +934,15 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
934
934
  op: e.op
935
935
  })),
936
936
  onShutdown: (e) => {
937
- ke.push(e);
937
+ De.push(e);
938
938
  }
939
- }) : void 0, S = Fe({
939
+ }) : void 0, S = C({
940
940
  definitions: (e.discovered.connections ?? []).map((e) => e.definition),
941
941
  store: e.store,
942
- publicUrl: w(e.port ?? 4e3),
942
+ publicUrl: Le(e.port ?? 4e3),
943
943
  log: (e.log ?? L({ scope: "voltro:serve" })).child("connections")
944
944
  });
945
- me({
945
+ b({
946
946
  events: e.discovered.events ?? [],
947
947
  rpcTags: [
948
948
  ...e.discovered.queries.map((e) => e.descriptor.name),
@@ -951,136 +951,136 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
951
951
  ...(e.discovered.streams ?? []).map((e) => e.descriptor.name)
952
952
  ]
953
953
  });
954
- let Pe = (e.log ?? L({ scope: "voltro:serve" })).child("events"), Le = e.broadcastNamespace ?? ze(e.plugins, void 0), Re = Lt(e.plugins, Le, Pe), Be = e.membership?.instanceId ?? process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, He = e.membership ?? Wt(e.plugins, {
955
- instanceId: Be,
956
- namespace: Le,
954
+ let Me = (e.log ?? L({ scope: "voltro:serve" })).child("events"), Fe = e.broadcastNamespace ?? Be(e.plugins, void 0), Re = Ft(e.plugins, Fe, Me), ze = e.membership?.instanceId ?? process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Ve = e.membership ?? Wt(e.plugins, {
955
+ instanceId: ze,
956
+ namespace: Fe,
957
957
  meta: { mode: "serve" },
958
- logger: Pe
959
- }), T = ge({
958
+ logger: Me
959
+ }), He = ge({
960
960
  events: e.discovered.events ?? [],
961
- origin: Be,
961
+ origin: ze,
962
962
  ...Re.publishRemote === void 0 ? {} : { publishRemote: Re.publishRemote }
963
- }), Ue = (e.discovered.events ?? []).length > 0 ? await Re.attach(T.bus) : null, Ge = Ft({
963
+ }), Ue = (e.discovered.events ?? []).length > 0 ? await Re.attach(He.bus) : null, We = Pt({
964
964
  store: e.store,
965
965
  schemaRegistry: e.schemaRegistry,
966
966
  cache: i,
967
967
  kv: a,
968
- ...Te === void 0 ? {} : { webhooksService: Te },
968
+ ...we === void 0 ? {} : { webhooksService: we },
969
969
  ...v === void 0 ? {} : { workflowsProxy: v },
970
970
  eventTriggers: e.discovered.eventTriggers ?? [],
971
- namespaceIsolationOn: Se,
971
+ namespaceIsolationOn: ye,
972
972
  ...e.ensureTenantProvisioned === void 0 ? {} : { ensureTenantProvisioned: e.ensureTenantProvisioned },
973
973
  ...e.resolveResidentStore === void 0 ? {} : { resolveResidentStore: e.resolveResidentStore },
974
- ...je === void 0 ? {} : { outbox: { nudge: je.nudge } },
974
+ ...Ae === void 0 ? {} : { outbox: { nudge: Ae.nudge } },
975
975
  ...S.active ? { connections: { registry: S.registry } } : {},
976
- eventBus: T.bus
977
- }), Ke = G.succeed(hr, be), qe = G.succeed(yr, Oe), Je = G.succeed(gr, Ut), Ye = G.succeed(br, m), et = (t, n) => {
976
+ eventBus: He.bus
977
+ }), Ge = G.succeed(gr, be), Ke = G.succeed(br, Oe), qe = G.succeed(_r, Ut), Je = G.succeed(xr, p), Ye = (t, n) => {
978
978
  let r = t.pipe(W.provide(qr(n)));
979
- return (e.baseLayer ? r.pipe(W.provide(e.baseLayer)) : r).pipe(W.provide(Ke)).pipe(W.provide(qe)).pipe(W.provide(Je)).pipe(W.provide(Ye));
980
- }, nt = (e, t) => {
981
- let n = et(e, t);
982
- return ui(n);
983
- }, rt = xn(), it = Ie(e.plugins ?? [], rt), at = _({
979
+ return (e.baseLayer ? r.pipe(W.provide(e.baseLayer)) : r).pipe(W.provide(Ge)).pipe(W.provide(Ke)).pipe(W.provide(qe)).pipe(W.provide(Je));
980
+ }, et = (e, t) => {
981
+ let n = Ye(e, t);
982
+ return di(n);
983
+ }, nt = Sn(), rt = Ie(e.plugins ?? [], nt), it = le({
984
984
  plugins: e.plugins ?? [],
985
- metrics: rt,
985
+ metrics: nt,
986
986
  log: e.log ?? L({ scope: "voltro:serve" })
987
- }), ot = Tt(e.plugins ?? [], rt), st = e.security?.defaultDeny ?? !0, ct = Xr({
987
+ }), at = Tt(e.plugins ?? [], nt), ot = e.security?.defaultDeny ?? !0, st = Xr({
988
988
  store: e.store,
989
- defaultDeny: st,
989
+ defaultDeny: ot,
990
990
  recordMetric: (e) => {
991
- rt.record(e);
991
+ nt.record(e);
992
992
  },
993
- ...it.mutation === void 0 ? {} : { interceptor: it.mutation },
994
- buildContext: (e, t, n) => Ge(e, t, n),
995
- runEffect: nt,
993
+ ...rt.mutation === void 0 ? {} : { interceptor: rt.mutation },
994
+ buildContext: (e, t, n) => We(e, t, n),
995
+ runEffect: et,
996
996
  undoCapture: $e((t) => e.schemaRegistry.crdtColumns(t))
997
- }), ut = c();
997
+ }), ct = c();
998
998
  {
999
- let t = A();
999
+ let t = Nt();
1000
1000
  t !== void 0 && (e.log ?? L({ scope: "voltro:serve" })).info(t);
1001
1001
  }
1002
- let dt = Ce({
1002
+ let ut = Ce({
1003
1003
  store: e.store,
1004
1004
  ...e.approvals === void 0 ? {} : { defaultExpiryMs: e.approvals.defaultExpiryMs }
1005
- }), ft = zr({
1006
- defaultDeny: st,
1007
- buildContext: (e) => Ge(e),
1008
- runEffect: nt,
1005
+ }), dt = zr({
1006
+ defaultDeny: ot,
1007
+ buildContext: (e) => We(e),
1008
+ runEffect: et,
1009
1009
  recordMetric: (e) => {
1010
- rt.record(e);
1010
+ nt.record(e);
1011
1011
  },
1012
- ...it.action === void 0 ? {} : { interceptor: it.action }
1013
- }), pt = Qr({
1012
+ ...rt.action === void 0 ? {} : { interceptor: rt.action }
1013
+ }), ft = Qr({
1014
1014
  tenantScopedTables: e.tenantScopedTables,
1015
1015
  softDeleteScopedTables: e.softDeleteScopedTables
1016
- }), mt = {
1017
- defaultDeny: st,
1018
- buildContext: (e) => Ge(e),
1019
- finalize: (e, t) => pt(e, t.subject),
1020
- provideEffect: et,
1021
- ...it.query === void 0 ? {} : { interceptor: it.query }
1022
- }, ht = q(mt), vt = Zr({
1023
- ...mt,
1024
- queryRows: (t, n) => e.store.query(t).then((e) => _i(t.table, e, n.subject))
1025
- }), yt = ei({
1026
- ...mt,
1027
- subscribeDescriptor: (e, t, n) => r.subscribe(e, t, n),
1016
+ }), pt = {
1017
+ defaultDeny: ot,
1018
+ buildContext: (e) => We(e),
1019
+ finalize: (e, t) => ft(e, t.subject),
1020
+ provideEffect: Ye,
1021
+ ...rt.query === void 0 ? {} : { interceptor: rt.query }
1022
+ }, T = J(pt), mt = Zr({
1023
+ ...pt,
1024
+ queryRows: (t, n) => e.store.query(t).then((e) => vi(t.table, e, n.subject))
1025
+ }), ht = ei({
1026
+ ...pt,
1027
+ subscribeDescriptor: (e, t, n, i, a) => r.subscribe(e, t, n, void 0, void 0, void 0, i, a),
1028
1028
  subscribeComputed: (e, t, n) => r.subscribeComputed(e, t, n)
1029
- }), E = (e) => e.filter((e) => Hn(e.descriptor)), D = {};
1029
+ }), E = (e) => e.filter((e) => Un(e.descriptor)), D = {};
1030
1030
  for (let t of [
1031
1031
  ...E(e.discovered.queries),
1032
+ ...ct.queries,
1032
1033
  ...ut.queries,
1033
- ...dt.queries,
1034
1034
  ...S.queries
1035
- ]) D[t.descriptor.name] = (e) => K(ht(t, e), r, `subscription.${t.descriptor.name}`, void 0, void 0, $r(t, e));
1035
+ ]) D[t.descriptor.name] = (e) => q(T(t, e), r, `subscription.${t.descriptor.name}`, void 0, void 0, $r(t, e));
1036
1036
  for (let t of [
1037
1037
  ...E(e.discovered.mutations),
1038
+ ...ct.mutations,
1038
1039
  ...ut.mutations,
1039
- ...dt.mutations,
1040
1040
  ...S.mutations
1041
1041
  ]) {
1042
1042
  let n = Yr(t.descriptor.output);
1043
- D[t.descriptor.name] = (r) => Dr(async (e, n) => ct(t, e, n), r, `mutation.${t.descriptor.name}`, n, e.idempotency, Gn(t.descriptor, "mutation"));
1043
+ D[t.descriptor.name] = (r) => K(async (e, n) => st(t, e, n), r, `mutation.${t.descriptor.name}`, n, e.idempotency, Kn(t.descriptor, "mutation"));
1044
1044
  }
1045
1045
  for (let t of [...E(e.discovered.actions), ...S.actions]) {
1046
1046
  let n = Yr(t.descriptor.output);
1047
- D[t.descriptor.name] = (r) => Dr(async (e, n) => ft(t, e, n), r, `action.${t.descriptor.name}`, n, e.idempotency, Gn(t.descriptor, "action"));
1047
+ D[t.descriptor.name] = (r) => K(async (e, n) => dt(t, e, n), r, `action.${t.descriptor.name}`, n, e.idempotency, Kn(t.descriptor, "action"));
1048
1048
  }
1049
- let bt = () => `public-${Math.random().toString(36).slice(2, 10)}`, O = [
1049
+ let vt = () => `public-${Math.random().toString(36).slice(2, 10)}`, yt = [
1050
1050
  ...e.discovered.queries.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
1051
1051
  descriptor: e.descriptor,
1052
- invoke: (t, n) => vt(e, t, {
1052
+ invoke: (t, n) => mt(e, t, {
1053
1053
  subject: n.subject,
1054
- traceId: bt()
1054
+ traceId: vt()
1055
1055
  }),
1056
- subscribe: (t, n, r) => yt(e, t, {
1056
+ subscribe: (t, n, r) => ht(e, t, {
1057
1057
  subject: n.subject,
1058
- traceId: bt()
1058
+ traceId: vt()
1059
1059
  }, r)
1060
1060
  })),
1061
1061
  ...e.discovered.mutations.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
1062
1062
  descriptor: e.descriptor,
1063
- invoke: (t, n) => ct(e, t, {
1063
+ invoke: (t, n) => st(e, t, {
1064
1064
  subject: n.subject,
1065
- traceId: bt()
1065
+ traceId: vt()
1066
1066
  })
1067
1067
  })),
1068
1068
  ...e.discovered.actions.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
1069
1069
  descriptor: e.descriptor,
1070
- invoke: (t, n) => ft(e, t, {
1070
+ invoke: (t, n) => dt(e, t, {
1071
1071
  subject: n.subject,
1072
- traceId: bt()
1072
+ traceId: vt()
1073
1073
  })
1074
1074
  }))
1075
- ], St = {
1076
- candidates: b({
1075
+ ], bt = {
1076
+ candidates: y({
1077
1077
  queries: e.discovered.queries,
1078
1078
  mutations: e.discovered.mutations,
1079
1079
  actions: e.discovered.actions,
1080
1080
  descriptorOf: (e) => e.descriptor,
1081
- runQuery: (e, t, n) => Promise.resolve(vt(e, t, n)),
1082
- runMutation: (e, t, n) => Promise.resolve(ct(e, t, n)),
1083
- runAction: (e, t, n) => Promise.resolve(ft(e, t, n))
1081
+ runQuery: (e, t, n) => Promise.resolve(mt(e, t, n)),
1082
+ runMutation: (e, t, n) => Promise.resolve(st(e, t, n)),
1083
+ runAction: (e, t, n) => Promise.resolve(dt(e, t, n))
1084
1084
  }),
1085
1085
  policy: e.agents?.tools ?? {},
1086
1086
  mcpEnabled: e.agents?.mcp === !0,
@@ -1093,12 +1093,12 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1093
1093
  kind: "query",
1094
1094
  input: e.descriptor.input,
1095
1095
  output: e.descriptor.output,
1096
- invoke: (n, r, i) => vt(e, n, {
1096
+ invoke: (n, r, i) => mt(e, n, {
1097
1097
  subject: r.subject,
1098
1098
  traceId: t(),
1099
1099
  signal: i
1100
1100
  }),
1101
- subscribe: (n, r, i) => yt(e, n, {
1101
+ subscribe: (n, r, i) => ht(e, n, {
1102
1102
  subject: r.subject,
1103
1103
  traceId: t()
1104
1104
  }, i)
@@ -1108,7 +1108,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1108
1108
  kind: "mutation",
1109
1109
  input: e.descriptor.input,
1110
1110
  output: e.descriptor.output,
1111
- invoke: (n, r, i) => ct(e, n, {
1111
+ invoke: (n, r, i) => st(e, n, {
1112
1112
  subject: r.subject,
1113
1113
  traceId: t(),
1114
1114
  signal: i
@@ -1119,14 +1119,14 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1119
1119
  kind: "action",
1120
1120
  input: e.descriptor.input,
1121
1121
  output: e.descriptor.output,
1122
- invoke: async (n, r, i) => ft(e, n, {
1122
+ invoke: async (n, r, i) => dt(e, n, {
1123
1123
  subject: r.subject,
1124
1124
  traceId: t(),
1125
1125
  signal: i
1126
1126
  })
1127
1127
  }))
1128
1128
  ];
1129
- await We({
1129
+ await Ht({
1130
1130
  config: e.grpc.config,
1131
1131
  candidates: n,
1132
1132
  resolveSubject: async (t) => {
@@ -1139,96 +1139,96 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1139
1139
  store: e.store,
1140
1140
  root: e.grpc.root,
1141
1141
  log: e.log ?? L({ scope: "voltro:serve" }),
1142
- onShutdown: (e) => J(e)
1142
+ onShutdown: (e) => oi(e)
1143
1143
  });
1144
1144
  }
1145
- let Ct = lt({
1145
+ let O = lt({
1146
1146
  ...e.restRoutes === void 0 ? {} : { restRoutes: e.restRoutes },
1147
- publicApiEntries: O,
1147
+ publicApiEntries: yt,
1148
1148
  store: e.store,
1149
1149
  resolveSubject: (t) => e.resolveSubject(t, -1).then((e) => e.subject),
1150
1150
  ...e.idempotency === void 0 ? {} : { idempotency: e.idempotency },
1151
1151
  log: e.log ?? L({ scope: "voltro:serve" })
1152
- }), k = e.dataTransferSecret ?? process.env.VOLTRO_DATA_TRANSFER_SECRET, Dt = async (e, t) => {
1153
- let { Readable: n } = await import("node:stream"), r = Ei(), i = Oi("storage", () => n.from(t()));
1154
- await W.runPromise(Ai(r, e, i, { contentType: "application/octet-stream" }));
1155
- }, Ot = k && k.length >= 16 ? [
1152
+ }), k = e.dataTransferSecret ?? process.env.VOLTRO_DATA_TRANSFER_SECRET, St = async (e, t) => {
1153
+ let { Readable: n } = await import("node:stream"), r = Di(), i = ki("storage", () => n.from(t()));
1154
+ await W.runPromise(ji(r, e, i, { contentType: "application/octet-stream" }));
1155
+ }, Ct = k && k.length >= 16 ? [
1156
1156
  {
1157
1157
  method: "POST",
1158
- path: sa,
1159
- handle: Ba({
1158
+ path: ca,
1159
+ handle: Va({
1160
1160
  secret: k,
1161
1161
  store: e.store,
1162
1162
  ...e.dataTransferSnapshot ? { snapshot: e.dataTransferSnapshot } : {},
1163
1163
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {},
1164
- assetSink: $i(Ei()),
1165
- openArchive: (e) => _o(Ei(), e),
1164
+ assetSink: ea(Di()),
1165
+ openArchive: (e) => vo(Di(), e),
1166
1166
  refreshSubscriptions: (e) => {
1167
1167
  r.refreshAll(e);
1168
1168
  },
1169
- putArchive: Dt,
1169
+ putArchive: St,
1170
1170
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {}
1171
1171
  })
1172
1172
  },
1173
1173
  {
1174
1174
  method: "POST",
1175
- path: ca,
1176
- handle: Ha({
1175
+ path: la,
1176
+ handle: Ua({
1177
1177
  secret: k,
1178
1178
  store: e.store,
1179
1179
  ...e.dataTransferSnapshot ? { snapshot: e.dataTransferSnapshot } : {},
1180
1180
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {},
1181
- assetSink: $i(Ei()),
1182
- openArchive: (e) => _o(Ei(), e),
1181
+ assetSink: ea(Di()),
1182
+ openArchive: (e) => vo(Di(), e),
1183
1183
  refreshSubscriptions: (e) => {
1184
1184
  r.refreshAll(e);
1185
1185
  },
1186
- putArchive: Dt
1186
+ putArchive: St
1187
1187
  })
1188
1188
  },
1189
1189
  {
1190
1190
  method: "GET",
1191
- path: da,
1192
- handle: go({
1191
+ path: fa,
1192
+ handle: _o({
1193
1193
  secret: k,
1194
1194
  store: e.store
1195
1195
  })
1196
1196
  },
1197
1197
  {
1198
1198
  method: "GET",
1199
- path: ua,
1200
- handle: lo({ secret: k })
1199
+ path: da,
1200
+ handle: uo({ secret: k })
1201
1201
  },
1202
1202
  {
1203
1203
  method: "POST",
1204
- path: la,
1205
- handle: oo({
1204
+ path: ua,
1205
+ handle: so({
1206
1206
  secret: k,
1207
1207
  store: e.store,
1208
1208
  snapshot: e.dataTransferSnapshot ?? { tables: [] },
1209
1209
  dialect: e.dataTransferDialect ?? "memory",
1210
1210
  tenantTables: [...e.tenantScopedTables],
1211
- loadProfile: Mn,
1212
- assetSource: ea(Ei(), e.store),
1213
- putArchive: Dt
1211
+ loadProfile: Nn,
1212
+ assetSource: ta(Di(), e.store),
1213
+ putArchive: St
1214
1214
  })
1215
1215
  }
1216
- ] : [], kt = [
1216
+ ] : [], Dt = [
1217
1217
  ...e.httpRoutes ?? [],
1218
- ...Ct.httpRoutes,
1219
- ...Ot,
1218
+ ...O.httpRoutes,
1219
+ ...Ct,
1220
1220
  ...S.httpRoutes
1221
1221
  ];
1222
- Object.assign(D, T.handlers);
1223
- for (let t of E(e.discovered.streams ?? [])) D[t.descriptor.name] = (n) => Or((r) => bi(r, (r) => {
1224
- let i = Ge(r), a = t.executor(n, i);
1222
+ Object.assign(D, He.handlers);
1223
+ for (let t of E(e.discovered.streams ?? [])) D[t.descriptor.name] = (n) => Or((r) => xi(r, (r) => {
1224
+ let i = We(r), a = t.executor(n, i);
1225
1225
  if (W.isEffect(a)) {
1226
1226
  let t = a.pipe(W.provide(qr(i.store)));
1227
- return (e.baseLayer ? t.pipe(W.provide(e.baseLayer)) : t).pipe(W.provide(Ke)).pipe(W.provide(qe)).pipe(W.provide(Je)).pipe(W.provide(Ye));
1227
+ return (e.baseLayer ? t.pipe(W.provide(e.baseLayer)) : t).pipe(W.provide(Ge)).pipe(W.provide(Ke)).pipe(W.provide(qe)).pipe(W.provide(Je));
1228
1228
  }
1229
1229
  return typeof a == "object" && a && typeof a.then == "function" ? W.promise(() => a) : a;
1230
1230
  }), `stream.${t.descriptor.name}`);
1231
- for (let t of e.discovered.workflows ?? []) D[t.definition.name] = (e) => Dr(async (e, n) => {
1231
+ for (let t of e.discovered.workflows ?? []) D[t.definition.name] = (e) => K(async (e, n) => {
1232
1232
  let r = n;
1233
1233
  return ri(v, {
1234
1234
  subject: r.subject,
@@ -1236,8 +1236,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1236
1236
  source: "workflow-rpc"
1237
1237
  }).start(t.definition.name, e);
1238
1238
  }, e, `workflow.${t.definition.name}`);
1239
- ve && (D[Yn.name] = (e) => K(ht({
1240
- descriptor: Yn,
1239
+ pe && (D[Xn.name] = (e) => q(T({
1240
+ descriptor: Xn,
1241
1241
  executor: (e) => {
1242
1242
  let t = e.id;
1243
1243
  return {
@@ -1246,14 +1246,14 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1246
1246
  column: "startedAt",
1247
1247
  direction: "desc"
1248
1248
  }],
1249
- predicate: sr(U("id", t), U("executionId", t)),
1249
+ predicate: cr(U("id", t), U("executionId", t)),
1250
1250
  take: 1,
1251
1251
  skip: void 0,
1252
1252
  projection: void 0
1253
1253
  };
1254
1254
  }
1255
- }, e), r, `subscription.${Yn.name}`), D[Zn.name] = (e) => K(ht({
1256
- descriptor: Zn,
1255
+ }, e), r, `subscription.${Xn.name}`), D[Qn.name] = (e) => q(T({
1256
+ descriptor: Qn,
1257
1257
  executor: (e) => {
1258
1258
  let t = e, n = [...t.tag === void 0 ? [] : [U("tag", t.tag)], ...t.status === void 0 ? [] : [U("status", t.status)]], r = Number.isFinite(t.limit) && t.limit !== void 0 ? Math.min(Math.max(Math.floor(t.limit), 1), 500) : 100;
1259
1259
  return {
@@ -1262,14 +1262,14 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1262
1262
  column: "startedAt",
1263
1263
  direction: "desc"
1264
1264
  }],
1265
- predicate: n.length === 0 ? void 0 : n.length === 1 ? n[0] : nr(...n),
1265
+ predicate: n.length === 0 ? void 0 : n.length === 1 ? n[0] : rr(...n),
1266
1266
  take: r,
1267
1267
  skip: void 0,
1268
1268
  projection: void 0
1269
1269
  };
1270
1270
  }
1271
- }, e), r, `subscription.${Zn.name}`), D[Xn.name] = (e) => K(ht({
1272
- descriptor: Xn,
1271
+ }, e), r, `subscription.${Qn.name}`), D[Zn.name] = (e) => q(T({
1272
+ descriptor: Zn,
1273
1273
  executor: (e) => {
1274
1274
  let t = e.runId;
1275
1275
  return {
@@ -1284,8 +1284,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1284
1284
  projection: void 0
1285
1285
  };
1286
1286
  }
1287
- }, e), r, `subscription.${Xn.name}`), D[Jn.name] = (e) => K(ht({
1288
- descriptor: Jn,
1287
+ }, e), r, `subscription.${Zn.name}`), D[Yn.name] = (e) => q(T({
1288
+ descriptor: Yn,
1289
1289
  executor: (e) => {
1290
1290
  let t = e.runId;
1291
1291
  return {
@@ -1300,7 +1300,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1300
1300
  projection: void 0
1301
1301
  };
1302
1302
  }
1303
- }, e), r, `subscription.${Jn.name}`), D[B.name] = (e) => K(ht({
1303
+ }, e), r, `subscription.${Yn.name}`), D[B.name] = (e) => q(T({
1304
1304
  descriptor: B,
1305
1305
  executor: (e) => {
1306
1306
  let t = e;
@@ -1316,7 +1316,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1316
1316
  projection: void 0
1317
1317
  };
1318
1318
  }
1319
- }, e), r, `subscription.${B.name}`), D[V.name] = (e) => K(ht({
1319
+ }, e), r, `subscription.${B.name}`), D[V.name] = (e) => q(T({
1320
1320
  descriptor: V,
1321
1321
  executor: (e) => {
1322
1322
  let t = e.eventId;
@@ -1332,67 +1332,67 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1332
1332
  projection: void 0
1333
1333
  };
1334
1334
  }
1335
- }, e), r, `subscription.${V.name}`), D[Kn.name] = (t) => Dr(async (t, n) => {
1335
+ }, e), r, `subscription.${V.name}`), D[qn.name] = (t) => K(async (t, n) => {
1336
1336
  let r = t;
1337
- return await gt(e.store, n.subject, { executionId: r.executionId }), await v.cancel(r.workflowName, r.executionId), await zt(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
1338
- }, t, `action.${Kn.name}`), D[qn.name] = (t) => Dr(async (t, n) => {
1337
+ return await gt(e.store, n.subject, { executionId: r.executionId }), await v.cancel(r.workflowName, r.executionId), await Lt(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
1338
+ }, t, `action.${qn.name}`), D[Jn.name] = (t) => K(async (t, n) => {
1339
1339
  let r = t;
1340
1340
  return await gt(e.store, n.subject, { executionId: r.executionId }), await v.resume(r.workflowName, r.executionId), { ok: !0 };
1341
- }, t, `action.${qn.name}`), D[Qn.name] = (t) => Dr(async (t, n) => {
1341
+ }, t, `action.${Jn.name}`), D[$n.name] = (t) => K(async (t, n) => {
1342
1342
  let r = t;
1343
1343
  return await gt(e.store, n.subject, { id: r.id }), v.signal({ id: r.id }, r.signalName, r.payload);
1344
- }, t, `action.${Qn.name}`), D[$n.name] = (t) => Dr(async (t, n) => {
1344
+ }, t, `action.${$n.name}`), D[er.name] = (t) => K(async (t, n) => {
1345
1345
  let r = t;
1346
1346
  return await gt(e.store, n.subject, { id: r.id }), v.update({ id: r.id }, r.updateName, r.payload, r.timeoutMs === void 0 ? void 0 : { timeoutMs: r.timeoutMs });
1347
- }, t, `action.${$n.name}`));
1348
- let At = [
1347
+ }, t, `action.${er.name}`));
1348
+ let Ot = [
1349
1349
  ...E(e.discovered.queries).map((e) => z(e.descriptor)),
1350
- ...E(e.discovered.mutations).map((e) => Un(e.descriptor)),
1350
+ ...E(e.discovered.mutations).map((e) => Wn(e.descriptor)),
1351
1351
  ...E(e.discovered.actions).map((e) => R(e.descriptor)),
1352
+ ...ct.queries.map((e) => z(e.descriptor)),
1353
+ ...ct.mutations.map((e) => Wn(e.descriptor)),
1352
1354
  ...ut.queries.map((e) => z(e.descriptor)),
1353
- ...ut.mutations.map((e) => Un(e.descriptor)),
1354
- ...dt.queries.map((e) => z(e.descriptor)),
1355
- ...dt.mutations.map((e) => Un(e.descriptor)),
1355
+ ...ut.mutations.map((e) => Wn(e.descriptor)),
1356
1356
  ...S.queries.map((e) => z(e.descriptor)),
1357
- ...S.mutations.map((e) => Un(e.descriptor)),
1357
+ ...S.mutations.map((e) => Wn(e.descriptor)),
1358
1358
  ...S.actions.map((e) => R(e.descriptor)),
1359
- ...E(e.discovered.streams ?? []).map((e) => Wn(e.descriptor)),
1360
- ...T.rpcs,
1361
- ...(e.discovered.workflows ?? []).map((e) => xi(e.definition)),
1362
- ...ve ? [
1363
- z(Yn),
1364
- z(Zn),
1359
+ ...E(e.discovered.streams ?? []).map((e) => Gn(e.descriptor)),
1360
+ ...He.rpcs,
1361
+ ...(e.discovered.workflows ?? []).map((e) => Si(e.definition)),
1362
+ ...pe ? [
1365
1363
  z(Xn),
1366
- z(Jn),
1364
+ z(Qn),
1365
+ z(Zn),
1366
+ z(Yn),
1367
1367
  z(B),
1368
1368
  z(V),
1369
- R(Kn),
1370
1369
  R(qn),
1371
- R(Qn),
1372
- R($n)
1370
+ R(Jn),
1371
+ R($n),
1372
+ R(er)
1373
1373
  ] : []
1374
- ], jt = Ti.make(...At).middleware(zn).middleware(Bn), Mt = Gr({ resolveSubject: ({ headers: t, clientId: n }) => e.resolveSubject(t, n) }), Nt = e.dormancyTenantId ?? _r, Pt = e.dormancy === "sleep" ? {
1375
- register: (t, n, r) => ci(e.store, {
1376
- tenantId: r ?? Nt,
1374
+ ], kt = Ei.make(...Ot).middleware(Bn).middleware(Vn), At = Gr({ resolveSubject: ({ headers: t, clientId: n }) => e.resolveSubject(t, n) }), jt = e.dormancyTenantId ?? vr, Mt = e.dormancy === "sleep" ? {
1375
+ register: (t, n, r) => li(e.store, {
1376
+ tenantId: r ?? jt,
1377
1377
  kind: "workflow",
1378
1378
  refId: t,
1379
1379
  wakeAt: n
1380
1380
  }),
1381
1381
  cancel: (t, n) => Ar(e.store, {
1382
- tenantId: n ?? Nt,
1382
+ tenantId: n ?? jt,
1383
1383
  kind: "workflow",
1384
1384
  refId: t
1385
1385
  }).then(() => {})
1386
- } : void 0, j = ye ? await import("@voltro/workflow") : void 0, M = j?.makeWorkflowRunRecorder({
1386
+ } : void 0, A = ve ? await import("@voltro/workflow") : void 0, j = A?.makeWorkflowRunRecorder({
1387
1387
  store: e.store,
1388
1388
  ...e.workflowRecording === void 0 ? {} : { recording: e.workflowRecording },
1389
- ...Pt === void 0 ? {} : { wakeups: Pt }
1390
- }), Rt = async (t, n) => {
1391
- await j.closeWorkflowChildrenForParent({
1389
+ ...Mt === void 0 ? {} : { wakeups: Mt }
1390
+ }), It = async (t, n) => {
1391
+ await A.closeWorkflowChildrenForParent({
1392
1392
  store: e.store,
1393
1393
  parentExecutionId: t,
1394
1394
  parentStatus: n,
1395
- recorder: M,
1395
+ recorder: j,
1396
1396
  log: { warn: (e, t) => g.warn(e, t ?? {}) },
1397
1397
  interruptChild: async (t, n) => {
1398
1398
  let r = (e.discovered.workflows ?? []).find((e) => e.definition.name === t);
@@ -1401,7 +1401,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1401
1401
  await f.runPromise(r.definition.interrupt(n));
1402
1402
  }
1403
1403
  });
1404
- }, zt = async (t, n, r) => {
1404
+ }, Lt = async (t, n, r) => {
1405
1405
  let i = (await e.store.query({
1406
1406
  table: "_voltro_workflow_runs",
1407
1407
  order: [],
@@ -1416,7 +1416,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1416
1416
  cancelled: !0,
1417
1417
  completedAt: /* @__PURE__ */ new Date()
1418
1418
  }), o = i.subject?.tenantId ?? void 0;
1419
- a && await M.recordEvent({
1419
+ a && await j.recordEvent({
1420
1420
  runId: i.id,
1421
1421
  eventType: "run-cancelled",
1422
1422
  payload: {
@@ -1425,18 +1425,18 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1425
1425
  executionId: n,
1426
1426
  ...o == null ? {} : { tenantId: o }
1427
1427
  }
1428
- }), a && await Rt(n, "cancelled");
1429
- }, Bt = [
1428
+ }), a && await It(n, "cancelled");
1429
+ }, Rt = [
1430
1430
  ...ii(e.discovered.workflows ?? [], {
1431
- buildContext: (t, n) => e.buildContextForWorkflow?.(t, n) ?? Ge({
1431
+ buildContext: (t, n) => e.buildContextForWorkflow?.(t, n) ?? We({
1432
1432
  subject: t.subject,
1433
1433
  traceId: t.traceId
1434
1434
  }, e.store, void 0, `workflow:${n.workflowName}`, { parentExecutionId: n.executionId }),
1435
- resolveStartContext: ce,
1436
- ...de === void 0 ? {} : { resolveAuthority: de }
1435
+ resolveStartContext: oe,
1436
+ ...ce === void 0 ? {} : { resolveAuthority: ce }
1437
1437
  }, (t, n, r) => {
1438
- let i = j.getWorkflowVersionMetadata(t.definition);
1439
- return j.wrapWorkflowExecuteWithRunRecording({
1438
+ let i = A.getWorkflowVersionMetadata(t.definition);
1439
+ return A.wrapWorkflowExecuteWithRunRecording({
1440
1440
  name: t.definition.name,
1441
1441
  store: e.store,
1442
1442
  subject: r.subject,
@@ -1447,27 +1447,27 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1447
1447
  workflowPatches: i.patches,
1448
1448
  parentExecutionId: r?.parentExecutionId ?? null,
1449
1449
  parentClosePolicy: r?.parentClosePolicy ?? null,
1450
- onParentClose: ({ executionId: e, status: t }) => Rt(e, t),
1451
- ...It(t.definition),
1450
+ onParentClose: ({ executionId: e, status: t }) => It(e, t),
1451
+ ...M(t.definition),
1452
1452
  onTerminal: async ({ executionId: e }) => {
1453
1453
  await d?.gate.release(e);
1454
1454
  },
1455
- recorder: M,
1456
- pluginWorkflowStepLayer: ot,
1457
- recordRun: oi
1455
+ recorder: j,
1456
+ pluginWorkflowStepLayer: at,
1457
+ recordRun: si
1458
1458
  }, n);
1459
1459
  }),
1460
1460
  ...e.discovered.workflowWorkers ?? [],
1461
- ...Ee === void 0 ? [] : [Ee]
1462
- ], Vt = [...(e.discovered.workflows ?? []).map((e) => e.definition.name).filter(Boolean), ...Ee === void 0 ? [] : ["voltro.deliverWebhook"]], Ht = Bt.length > 0 ? G.mergeAll(...Bt) : G.empty;
1463
- if (((e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster" || Ee !== void 0) && e.workflowEngineLayer !== void 0) {
1464
- let t = Ht.pipe(G.provideMerge(e.workflowEngineLayer));
1465
- f = lr.make((e.baseLayer === void 0 ? t : t.pipe(G.provideMerge(e.baseLayer))).pipe(G.provideMerge(Rn({})))), await f.runPromise(W.void), (e.log ?? L({ scope: "voltro:serve" })).child("workflow").info(`workflow runtime ready — ${Vt.length} entity type(s) registered`, { entities: Vt });
1461
+ ...Te === void 0 ? [] : [Te]
1462
+ ], Bt = [...(e.discovered.workflows ?? []).map((e) => e.definition.name).filter(Boolean), ...Te === void 0 ? [] : ["voltro.deliverWebhook"]], Vt = Rt.length > 0 ? G.mergeAll(...Rt) : G.empty;
1463
+ if (((e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster" || Te !== void 0) && e.workflowEngineLayer !== void 0) {
1464
+ let t = Vt.pipe(G.provideMerge(e.workflowEngineLayer));
1465
+ f = ur.make((e.baseLayer === void 0 ? t : t.pipe(G.provideMerge(e.baseLayer))).pipe(G.provideMerge(zn({})))), await f.runPromise(W.void), (e.log ?? L({ scope: "voltro:serve" })).child("workflow").info(`workflow runtime ready — ${Bt.length} entity type(s) registered`, { entities: Bt });
1466
1466
  let n = await import("@voltro/workflow/cluster"), r = (e) => f.runPromise(n.redriveFailedRun(e)), i = (e) => f.runPromise(n.resumeRunFromStep(e));
1467
- ne = await p({
1468
- provider: Li(e.plugins ?? [])?.broadcast?.provider,
1469
- crossReplica: Li(e.plugins ?? [])?.broadcast?.crossReplica ?? !1,
1470
- namespace: Le,
1467
+ ne = await zt({
1468
+ provider: Ri(e.plugins ?? [])?.broadcast?.provider,
1469
+ crossReplica: Ri(e.plugins ?? [])?.broadcast?.crossReplica ?? !1,
1470
+ namespace: Fe,
1471
1471
  replicaId: crypto.randomUUID(),
1472
1472
  pollStorage: () => f.runPromise(n.pollWorkflowStorage),
1473
1473
  onChange: (t) => e.store.onChange((e) => t({
@@ -1477,12 +1477,12 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1477
1477
  })),
1478
1478
  log: (e.log ?? L({ scope: "voltro:serve" })).child("workflow")
1479
1479
  }), ee = async (t) => {
1480
- let n = await C({
1480
+ let n = await Pe({
1481
1481
  store: e.store,
1482
1482
  workflows: e.discovered.workflows ?? [],
1483
1483
  runRedrive: r
1484
1484
  }, t.runId);
1485
- return n.statusReset && await M.recordEvent({
1485
+ return n.statusReset && await j.recordEvent({
1486
1486
  runId: t.runId,
1487
1487
  eventType: "run-redriven",
1488
1488
  payload: {
@@ -1500,7 +1500,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1500
1500
  workflows: e.discovered.workflows ?? [],
1501
1501
  runResume: i
1502
1502
  }, t.runId, t.step);
1503
- return n.statusReset && await M.recordEvent({
1503
+ return n.statusReset && await j.recordEvent({
1504
1504
  runId: t.runId,
1505
1505
  eventType: "run-redriven",
1506
1506
  payload: {
@@ -1515,10 +1515,10 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1515
1515
  reason: n.outcome.reason
1516
1516
  };
1517
1517
  };
1518
- let a = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Br(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : mi, c = Kr({
1518
+ let a = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Br(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : hi, c = Kr({
1519
1519
  coordinator: a,
1520
1520
  replicaId: e.scheduleReplicaId ?? `pid-${process.pid}`
1521
- }), l = L({ scope: "voltro:flow-control" }), m = {
1521
+ }), l = L({ scope: "voltro:flow-control" }), p = {
1522
1522
  info: (e, t) => {
1523
1523
  l.info(e, t);
1524
1524
  },
@@ -1528,19 +1528,19 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1528
1528
  error: (e, t) => {
1529
1529
  l.error(e, t ?? {});
1530
1530
  }
1531
- }, h, re = () => {
1532
- if (h !== void 0) return h;
1533
- if (o !== void 0 && M !== void 0) return h = le({
1531
+ }, m, h = () => {
1532
+ if (m !== void 0) return m;
1533
+ if (o !== void 0 && j !== void 0) return m = _({
1534
1534
  store: e.store,
1535
1535
  log: F,
1536
1536
  workflows: e.discovered.workflows ?? [],
1537
1537
  workflowsProxy: o,
1538
1538
  workflowRuntime: f,
1539
- workflowRunRecorder: M,
1540
- closeChildrenForParent: Rt
1541
- }), h;
1539
+ workflowRunRecorder: j,
1540
+ closeChildrenForParent: It
1541
+ }), m;
1542
1542
  };
1543
- s = re, d = Ve({
1543
+ s = h, d = w({
1544
1544
  store: e.store,
1545
1545
  onChange: (t) => e.store.onChange((e) => t({
1546
1546
  table: e.table,
@@ -1554,8 +1554,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1554
1554
  },
1555
1555
  workflows: e.discovered.workflows ?? [],
1556
1556
  facade: () => o,
1557
- cancelRunWithReason: re,
1558
- recordRunEvent: () => M?.recordEvent,
1557
+ cancelRunWithReason: h,
1558
+ recordRunEvent: () => j?.recordEvent,
1559
1559
  ...e.workflowStaleness === void 0 ? {} : { staleness: e.workflowStaleness },
1560
1560
  ...e.workflowSuspendSignalHintMs === void 0 ? {} : { suspendSignalHintMs: e.workflowSuspendSignalHintMs },
1561
1561
  scheduleCoordinated: c,
@@ -1563,14 +1563,14 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1563
1563
  await _t({
1564
1564
  workflows: e.discovered.workflows ?? [],
1565
1565
  facade: () => o,
1566
- log: m,
1566
+ log: p,
1567
1567
  ...t
1568
1568
  });
1569
1569
  },
1570
- log: m
1570
+ log: p
1571
1571
  });
1572
1572
  let g = d;
1573
- g !== void 0 && J(() => g.stop()), u = wt({
1573
+ g !== void 0 && oi(() => g.stop()), u = wt({
1574
1574
  store: e.store,
1575
1575
  onChange: (t) => e.store.onChange((e) => t({
1576
1576
  table: e.table,
@@ -1581,8 +1581,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1581
1581
  tickIntervalMs: e.scheduling.inferenceTickMs
1582
1582
  },
1583
1583
  enabled: (e.discovered.workflows?.length ?? 0) > 0,
1584
- resumeSignal: () => f === void 0 || j === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
1585
- await f.runPromise(j.completeSuspendingSignal({
1584
+ resumeSignal: () => f === void 0 || A === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
1585
+ await f.runPromise(A.completeSuspendingSignal({
1586
1586
  store: e.store,
1587
1587
  target: tt(t, n),
1588
1588
  signalName: r,
@@ -1591,10 +1591,10 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1591
1591
  },
1592
1592
  runEffect: (e) => f.runPromise(e),
1593
1593
  scheduleCoordinated: c,
1594
- log: m
1594
+ log: p
1595
1595
  });
1596
- let ie = u;
1597
- ie !== void 0 && J(() => ie.stop()), o = (e.discovered.workflows?.length ?? 0) > 0 ? ni({
1596
+ let re = u;
1597
+ re !== void 0 && oi(() => re.stop()), o = (e.discovered.workflows?.length ?? 0) > 0 ? ni({
1598
1598
  workflows: e.discovered.workflows ?? [],
1599
1599
  runEffect: (e) => f.runPromise(e),
1600
1600
  onEnqueue: () => ne?.publishWake(),
@@ -1603,51 +1603,51 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1603
1603
  startPayloadSchema: g.gate.startPayloadSchema,
1604
1604
  parkDelayedStart: g.gate.parkDelayed
1605
1605
  },
1606
- rememberStartContext: oe,
1606
+ rememberStartContext: ae,
1607
1607
  signal: async (t, n, r) => {
1608
- let i = await j.sendWorkflowSignal({
1608
+ let i = await A.sendWorkflowSignal({
1609
1609
  store: e.store,
1610
- recorder: M,
1610
+ recorder: j,
1611
1611
  target: t,
1612
1612
  signalName: n,
1613
1613
  payload: r
1614
1614
  });
1615
- return await f.runPromise(j.completeSuspendingSignal({
1615
+ return await f.runPromise(A.completeSuspendingSignal({
1616
1616
  store: e.store,
1617
1617
  target: t,
1618
1618
  signalName: n,
1619
1619
  payload: r
1620
1620
  })).catch(() => {}), i;
1621
1621
  },
1622
- update: (t, n, r, i) => j.sendWorkflowUpdate({
1622
+ update: (t, n, r, i) => A.sendWorkflowUpdate({
1623
1623
  store: e.store,
1624
- recorder: M,
1624
+ recorder: j,
1625
1625
  target: t,
1626
1626
  updateName: n,
1627
1627
  payload: r,
1628
1628
  ...i === void 0 ? {} : { options: i }
1629
1629
  }),
1630
- listRuns: (t) => Me(e.store, t),
1631
- retry: (t, n) => pe({
1630
+ listRuns: (t) => je(e.store, t),
1631
+ retry: (t, n) => fe({
1632
1632
  store: e.store,
1633
1633
  workflows: e.discovered.workflows ?? [],
1634
1634
  runPromise: (e) => f.runPromise(e)
1635
1635
  }, t, n),
1636
- redrive: (t) => C({
1636
+ redrive: (t) => Pe({
1637
1637
  store: e.store,
1638
1638
  workflows: e.discovered.workflows ?? [],
1639
1639
  runRedrive: r
1640
1640
  }, t).then((e) => e.outcome)
1641
1641
  }) : void 0;
1642
1642
  }
1643
- let Gt = G.mergeAll(jt.toLayer(D), Mt), Kt = xt(D, e.discovered.queries.map((e) => e.descriptor.name), ve), qt = G.mergeAll(jt.toLayer(Kt), Mt), N = e.observability, Jt = await kr({
1643
+ let Gt = G.mergeAll(kt.toLayer(D), At), Kt = xt(D, e.discovered.queries.map((e) => e.descriptor.name), pe), qt = G.mergeAll(kt.toLayer(Kt), At), N = e.observability, Jt = await kr({
1644
1644
  ...e.appName === void 0 ? {} : { serviceName: e.appName },
1645
1645
  ...N && N.spanProcessors.length > 0 ? { extraSpanProcessors: N.spanProcessors } : {},
1646
1646
  ...N && N.metricReaders.length > 0 ? { extraMetricReaders: N.metricReaders } : {},
1647
1647
  ...N && Object.keys(N.resourceAttributes).length > 0 ? { resourceAttributes: N.resourceAttributes } : {},
1648
1648
  ...N && N.sampler !== void 0 ? { sampler: N.sampler } : {}
1649
- }), Yt = !1, Xt = e.store.ping ? () => e.store.ping().then(() => !0).catch(() => !1) : void 0, { server: P, shutdown: Zt } = hi({
1650
- group: jt,
1649
+ }), Yt = !1, Xt = e.store.ping ? () => e.store.ping().then(() => !0).catch(() => !1) : void 0, { server: Zt, shutdown: P } = gi({
1650
+ group: kt,
1651
1651
  handlersLayer: Gt,
1652
1652
  httpHandlersLayer: qt,
1653
1653
  port: e.port ?? 4e3,
@@ -1655,7 +1655,7 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1655
1655
  path: e.path ?? "/ws",
1656
1656
  tracerLayer: Jt.layer,
1657
1657
  security: ue(e),
1658
- ...bn(e),
1658
+ ...xn(e),
1659
1659
  ...e.discovered.wsGateways !== void 0 && e.discovered.wsGateways.length > 0 ? { webSocketGateways: e.discovered.wsGateways } : {},
1660
1660
  resolveGatewaySubject: async (t) => {
1661
1661
  let n = await e.resolveSubject(t, -1);
@@ -1664,19 +1664,19 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1664
1664
  ...n.credentialExpiresAt === void 0 ? {} : { credentialExpiresAt: n.credentialExpiresAt * 1e3 }
1665
1665
  };
1666
1666
  },
1667
- ...at,
1667
+ ...it,
1668
1668
  healthCheck: {
1669
1669
  isReady: () => Yt,
1670
1670
  ...Xt ? { ping: Xt } : {}
1671
1671
  },
1672
- ...kt.length > 0 ? { httpRoutes: kt } : {},
1672
+ ...Dt.length > 0 ? { httpRoutes: Dt } : {},
1673
1673
  ...e.getStore === void 0 ? {} : { getStore: e.getStore },
1674
- ...De.size > 0 ? { webhookRoutes: De } : {},
1674
+ ...Ee.size > 0 ? { webhookRoutes: Ee } : {},
1675
1675
  ...e.inspectRoute === void 0 ? {} : { inspectRoute: e.inspectRoute }
1676
- }), Qt = oa(P);
1677
- if (await Er(P), (e.discovered.schedules?.length ?? 0) > 0) {
1678
- let t = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Br(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : mi;
1679
- h = await gi(e.discovered.schedules ?? [], {
1676
+ }), Qt = sa(Zt);
1677
+ if (await Dr(Zt), (e.discovered.schedules?.length ?? 0) > 0) {
1678
+ let t = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Br(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : hi;
1679
+ m = await _i(e.discovered.schedules ?? [], {
1680
1680
  store: e.store,
1681
1681
  coordinator: t,
1682
1682
  defaultTrigger: e.scheduleDefaultTrigger ?? "self",
@@ -1684,28 +1684,28 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1684
1684
  armSelf: e.scheduleArmSelf ?? !0,
1685
1685
  dormancy: e.dormancy ?? "always-on",
1686
1686
  ...e.dormancyTenantId === void 0 ? {} : { dormancyTenantId: e.dormancyTenantId },
1687
- buildContext: ({ traceId: t, scheduleName: n, subject: r }) => Ge({
1687
+ buildContext: ({ traceId: t, scheduleName: n, subject: r }) => We({
1688
1688
  subject: r,
1689
1689
  traceId: t
1690
1690
  }, e.store, void 0, `schedule:${n}`),
1691
1691
  log: {
1692
1692
  info: (e, t) => {
1693
- ie.info(e, t);
1693
+ re.info(e, t);
1694
1694
  },
1695
1695
  warn: (e, t) => {
1696
- ie.warn(e, t);
1696
+ re.warn(e, t);
1697
1697
  },
1698
1698
  error: (e, t) => {
1699
- ie.error(e, t ?? {});
1699
+ re.error(e, t ?? {});
1700
1700
  },
1701
1701
  debug: () => {}
1702
1702
  },
1703
1703
  ...e.scheduleFireInterceptor === void 0 ? {} : { interceptFire: e.scheduleFireInterceptor },
1704
1704
  ...e.onScheduleRunEvent === void 0 ? {} : { onRunEvent: e.onScheduleRunEvent }
1705
- }), e.onSchedulerReady?.(h);
1705
+ }), e.onSchedulerReady?.(m);
1706
1706
  }
1707
1707
  let F = e.log ?? L({ scope: "voltro:serve" }), $t, en;
1708
- if ((e.discovered.subscribers?.length ?? 0) > 0 && ($t = Qe(e.discovered.subscribers ?? [], e.store, F.child("subscribe"), e.schemaRegistry, T.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
1708
+ if ((e.discovered.subscribers?.length ?? 0) > 0 && ($t = Qe(e.discovered.subscribers ?? [], e.store, F.child("subscribe"), e.schemaRegistry, He.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
1709
1709
  let t = F.child("reaction"), n = async (n, r) => {
1710
1710
  if (n.kind === "workflow") {
1711
1711
  if (v === void 0) {
@@ -1721,8 +1721,8 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1721
1721
  }
1722
1722
  await _e(n.agent, r, {
1723
1723
  findAgentSend: (t) => e.discovered.actions.find((e) => e.descriptor.name === `${t}.send`),
1724
- runAction: (e, t, n) => Promise.resolve(ft(e, t, n)),
1725
- makeSubject: (e) => Vn(e),
1724
+ runAction: (e, t, n) => Promise.resolve(dt(e, t, n)),
1725
+ makeSubject: (e) => Hn(e),
1726
1726
  now: () => Date.now(),
1727
1727
  log: t
1728
1728
  });
@@ -1744,183 +1744,183 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1744
1744
  }, t);
1745
1745
  }
1746
1746
  let tn;
1747
- (e.discovered.aggregates?.length ?? 0) > 0 && (tn = await re({
1747
+ (e.discovered.aggregates?.length ?? 0) > 0 && (tn = await h({
1748
1748
  discovered: e.discovered.aggregates ?? [],
1749
1749
  store: e.store,
1750
1750
  log: F.child("aggregate"),
1751
1751
  ...e.analytics === void 0 ? {} : { analytics: e.analytics },
1752
1752
  ...e.aggregateStorage === void 0 ? {} : { storage: e.aggregateStorage },
1753
1753
  ...e.aggregateCoordinator === void 0 ? {} : { coordinator: e.aggregateCoordinator }
1754
- }), Ke = G.succeed(hr, tn.registry));
1754
+ }), Ge = G.succeed(gr, tn.registry));
1755
1755
  let nn;
1756
- (e.discovered.expectations?.length ?? 0) > 0 && (nn = Cr({
1756
+ (e.discovered.expectations?.length ?? 0) > 0 && (nn = wr({
1757
1757
  discovered: e.discovered.expectations ?? [],
1758
1758
  store: e.store,
1759
1759
  log: F.child("expectation")
1760
- }), qe = G.succeed(yr, nn.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Tr({
1760
+ }), Ke = G.succeed(br, nn.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Er({
1761
1761
  discovered: e.discovered.budgets ?? [],
1762
1762
  log: F.child("finops")
1763
- }), Je = G.succeed(gr, n.registry));
1763
+ }), qe = G.succeed(_r, n.registry));
1764
1764
  let rn;
1765
- return (e.discovered.experiments?.length ?? 0) > 0 && (rn = wr({
1765
+ return (e.discovered.experiments?.length ?? 0) > 0 && (rn = Tr({
1766
1766
  discovered: e.discovered.experiments ?? [],
1767
1767
  store: e.store,
1768
1768
  log: F.child("experiment")
1769
- }), Ye = G.succeed(br, rn.registry)), Yt = !0, e.bootTiming?.mark("ready"), {
1769
+ }), Je = G.succeed(xr, rn.registry)), Yt = !0, e.bootTiming?.mark("ready"), {
1770
1770
  dispatcher: r,
1771
- server: P,
1772
- scheduler: h,
1773
- eventsSnapshot: xe(T.bus, T.declared),
1771
+ server: Zt,
1772
+ scheduler: m,
1773
+ eventsSnapshot: xe(He.bus, He.declared),
1774
1774
  membersSnapshot: () => ({
1775
- members: He.membership.list(),
1775
+ members: Ve.membership.list(),
1776
1776
  capturedAt: Date.now()
1777
1777
  }),
1778
- agentTools: () => St,
1779
- rpcMetrics: () => rt,
1780
- webhooksService: () => Te,
1778
+ agentTools: () => bt,
1779
+ rpcMetrics: () => nt,
1780
+ webhooksService: () => we,
1781
1781
  runCanceller: () => s(),
1782
1782
  flowControlHealth: () => d?.cancelHealth(),
1783
1783
  inferenceHealth: () => u?.health(),
1784
- workflowWriteActions: () => v === void 0 || M === void 0 ? void 0 : y({
1784
+ workflowWriteActions: () => v === void 0 || j === void 0 ? void 0 : me({
1785
1785
  store: e.store,
1786
1786
  log: F,
1787
1787
  workflows: e.discovered.workflows ?? [],
1788
1788
  workflowsProxy: o,
1789
1789
  workflowRuntime: f,
1790
- workflowRunRecorder: M,
1791
- closeChildrenForParent: Rt
1790
+ workflowRunRecorder: j,
1791
+ closeChildrenForParent: It
1792
1792
  }),
1793
1793
  redriveWorkflowRun: (e) => ee ? ee(e) : Promise.reject(/* @__PURE__ */ Error("redrive: this app registers no workflows")),
1794
1794
  resumeWorkflowRunFromStep: (e) => te ? te(e) : Promise.reject(/* @__PURE__ */ Error("resume-from-step: this app registers no workflows")),
1795
1795
  close: async () => {
1796
1796
  Yt = !1, await Qt.drainRequests();
1797
- for (let e of ke) try {
1797
+ for (let e of De) try {
1798
1798
  await e();
1799
1799
  } catch (e) {
1800
1800
  F.warn("serve: teardown step failed", {}, e);
1801
1801
  }
1802
- await Ue?.detach(), await He.detach(), tn?.detach(), nn?.detach(), n?.detach(), rn?.detach(), en?.(), $t?.(), await h?.shutdown(), r.close(), await ne?.detach(), await f?.dispose(), await Zt(), await Qt.finish();
1802
+ await Ue?.detach(), await Ve.detach(), tn?.detach(), nn?.detach(), n?.detach(), rn?.detach(), en?.(), $t?.(), await m?.shutdown(), r.close(), await ne?.detach(), await f?.dispose(), await P(), await Qt.finish();
1803
1803
  }
1804
1804
  };
1805
- }, $ = L({ scope: "voltro:serve" }), bo = (e, t, n) => (e === "production" || e === "staging") && t !== "memory" && n !== "0", xo = N, So = async (e) => {
1806
- let t = On(process.cwd());
1807
- if (In(t)) {
1805
+ }, $ = L({ scope: "voltro:serve" }), xo = (e, t, n) => (e === "production" || e === "staging") && t !== "memory" && n !== "0", So = Jt, Co = async (e) => {
1806
+ let t = kn(process.cwd());
1807
+ if (Ln(t)) {
1808
1808
  let n;
1809
1809
  try {
1810
- let e = await import(Ln(t).href);
1810
+ let e = await import(Rn(t).href);
1811
1811
  typeof e.runServe == "function" ? n = e.runServe : $.warn("serve bundle has no runServe export — using the standard serve path");
1812
1812
  } catch (e) {
1813
1813
  $.warn("serve bundle failed to load — using the standard serve path", {}, e);
1814
1814
  }
1815
1815
  if (n) return $.info("serve: booting from the precompiled serve bundle"), n(e);
1816
1816
  }
1817
- return Co(e);
1818
- }, Co = async (c) => {
1819
- let l = kn();
1817
+ return wo(e);
1818
+ }, wo = async (c) => {
1819
+ let l = An();
1820
1820
  e("serve");
1821
1821
  try {
1822
- Ni();
1822
+ Pi();
1823
1823
  } catch (e) {
1824
1824
  throw i(e instanceof Error ? e.message : String(e));
1825
1825
  }
1826
- let p = process.cwd(), m = await Ke(p), re = Jt({
1826
+ let p = process.cwd(), h = await Ke(p), se = Yt({
1827
1827
  kind: "api",
1828
- configPort: m?.port,
1828
+ configPort: h?.port,
1829
1829
  env: process.env,
1830
- flagPort: xo(c, "--port")
1830
+ flagPort: So(c, "--port")
1831
1831
  });
1832
- for (let e of re.warnings) $.warn(e);
1833
- let se = re.port;
1834
- di(li(m?.secrets)), await Xt({
1835
- rawEnv: m?.env,
1832
+ for (let e of se.warnings) $.warn(e);
1833
+ let le = se.port;
1834
+ fi(ui(h?.secrets)), await Xt({
1835
+ rawEnv: h?.env,
1836
1836
  appType: "api",
1837
1837
  root: p,
1838
1838
  log: $,
1839
1839
  generateTypes: !1
1840
1840
  }), l.mark("config");
1841
- let _ = (process.env.DB_DIALECT ?? m?.store ?? "memory").toLowerCase(), le = (_ === "mariadb" || _ === "postgres" || _ === "mssql") && (process.env.CDC ?? "1") !== "0", fe = _ === "mariadb" ? "mariadb" : _ === "mssql" ? "mssql" : void 0, pe = Dn(p);
1842
- if (!r() && In(pe)) try {
1843
- let e = await import(Ln(pe).href);
1841
+ let _ = (process.env.DB_DIALECT ?? h?.store ?? "memory").toLowerCase(), de = (_ === "mariadb" || _ === "postgres" || _ === "mssql") && (process.env.CDC ?? "1") !== "0", fe = _ === "mariadb" ? "mariadb" : _ === "mssql" ? "mssql" : void 0, me = On(p);
1842
+ if (!r() && Ln(me)) try {
1843
+ let e = await import(Rn(me).href);
1844
1844
  if (e.modules) {
1845
1845
  let t = {};
1846
- for (let [n, r] of Object.entries(e.modules)) t[Pn(p, n)] = r;
1846
+ for (let [n, r] of Object.entries(e.modules)) t[Fn(p, n)] = r;
1847
1847
  n(t), $.info("precompiled api bundle loaded", { modules: Object.keys(t).length });
1848
1848
  }
1849
1849
  } catch (e) {
1850
1850
  $.warn("precompiled api bundle failed to load — falling back to source", {}, e);
1851
1851
  }
1852
- let y = await Ct(p), b = await Pt(y, { cdc: le && fe !== void 0 }), me = ee(b);
1852
+ let y = await St(p), b = await j(y, { cdc: de && fe !== void 0 }), he = ee(b);
1853
1853
  {
1854
1854
  Ye({
1855
- plugins: m?.plugins ?? [],
1855
+ plugins: h?.plugins ?? [],
1856
1856
  queries: b.queries,
1857
1857
  mutations: b.mutations,
1858
1858
  actions: b.actions,
1859
1859
  streams: b.streams,
1860
1860
  log: $
1861
1861
  });
1862
- let e = v(b.serverOnlyLeaks, ce(process.env, "strict"), Nr, "`voltro serve`");
1862
+ let e = pe(b.serverOnlyLeaks, ce(process.env, "strict"), Nr, "`voltro serve`");
1863
1863
  if (e.action === "fail") throw i(e.message ?? "");
1864
1864
  e.action === "warn" && $.warn(e.message ?? "");
1865
1865
  }
1866
- let he = y.filter((e) => En.test(e)), ge = he.length > 0 ? await Tn(he, $.child("webhooks")) : {
1866
+ let ge = y.filter((e) => Dn.test(e)), _e = ge.length > 0 ? await En(ge, $.child("webhooks")) : {
1867
1867
  outgoing: [],
1868
1868
  incoming: [],
1869
1869
  providers: []
1870
- }, _e = Cn(b.events), be = ge.outgoing.length + ge.incoming.length + ge.providers.length + _e.length === 0 ? void 0 : {
1871
- ...ge,
1872
- outgoing: [...ge.outgoing, ..._e]
1873
- }, xe = sn({
1870
+ }, be = wn(b.events), xe = _e.outgoing.length + _e.incoming.length + _e.providers.length + be.length === 0 ? void 0 : {
1871
+ ..._e,
1872
+ outgoing: [..._e.outgoing, ...be]
1873
+ }, Ce = cn({
1874
1874
  nodeEnv: process.env.NODE_ENV,
1875
1875
  cdcDialect: fe,
1876
- declared: m?.schema
1877
- }), Ce = cn({
1878
- gates: xe,
1876
+ declared: h?.schema
1877
+ }), Oe = ln({
1878
+ gates: Ce,
1879
1879
  runtime: {
1880
1880
  traces: ae(),
1881
- undo: vi()
1881
+ undo: yi()
1882
1882
  }
1883
1883
  });
1884
- if (Ce !== void 0) throw i(`serve: ${Ce}`);
1885
- let Oe = on({
1884
+ if (Oe !== void 0) throw i(`serve: ${Oe}`);
1885
+ let je = sn({
1886
1886
  mix: b.featureMix,
1887
- plugins: m?.plugins ?? [],
1888
- gates: xe,
1887
+ plugins: h?.plugins ?? [],
1888
+ gates: Ce,
1889
1889
  ...fe ? { cdcDialect: fe } : {}
1890
- }), Me = m?.analytics !== void 0 && m.analytics.kind !== "noop" && _ !== "memory" ? (await P(_)).makeSqlLayer(O()) : void 0, Ne = await D({
1891
- spec: m?.analytics,
1892
- sqlLayer: Me,
1890
+ }), Ne = h?.analytics !== void 0 && h.analytics.kind !== "noop" && _ !== "memory" ? (await P(_)).makeSqlLayer(O()) : void 0, Pe = await yt({
1891
+ spec: h?.analytics,
1892
+ sqlLayer: Ne,
1893
1893
  log: $
1894
1894
  }), C = (() => {
1895
1895
  let e = new Set(b.tables.map((e) => e.tableName)), t = [...b.tables];
1896
- for (let n of [...Oe, ...Ne.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1896
+ for (let n of [...je, ...Pe.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1897
1897
  return t;
1898
1898
  })();
1899
- for (let e of C) or(e);
1899
+ for (let e of C) sr(e);
1900
1900
  {
1901
- let e = Pr(yi(zt(b), Ae(C)));
1901
+ let e = Pr(bi(Ae(b), re(C)));
1902
1902
  e !== void 0 && $.warn(e);
1903
1903
  }
1904
- let Fe = (process.env.NODE_ENV ?? "").toLowerCase();
1905
- if (bo(Fe, _, process.env.VOLTRO_AUTO_MIGRATE)) {
1906
- let e = (await P(_)).makeSqlLayer(O()), t = await W.runPromise(ur.SqlClient.pipe(W.flatMap((e) => pr(e, p)), W.provide(e), W.catchAll(() => W.succeed([]))));
1904
+ let Ie = (process.env.NODE_ENV ?? "").toLowerCase();
1905
+ if (xo(Ie, _, process.env.VOLTRO_AUTO_MIGRATE)) {
1906
+ let e = (await P(_)).makeSqlLayer(O()), t = await W.runPromise(dr.SqlClient.pipe(W.flatMap((e) => mr(e, p)), W.provide(e), W.catchAll(() => W.succeed([]))));
1907
1907
  t.length > 0 && ($.error(`serve: refusing to boot — ${t.length} pending file-based migration(s) have never run against this database. They perform the changes a schema diff cannot infer (data moves, backfills, table splits), so the declarative fingerprint check below cannot see them and would have let this process serve un-migrated data.`, { pending: t }), $.error("Run them from your pre-deploy job — `voltro db migrate .` (schema + files) or `voltro db files .` (files alone) — or set VOLTRO_AUTO_MIGRATE=0 to bypass every boot schema check. `voltro serve` never applies them itself: a rolling deploy would start N replicas and each would try."), process.exit(1));
1908
- let n = await W.runPromise(ur.SqlClient.pipe(W.flatMap((e) => mr(e, C, {
1909
- appliedBy: `serve:${Fe}`,
1908
+ let n = await W.runPromise(dr.SqlClient.pipe(W.flatMap((e) => hr(e, C, {
1909
+ appliedBy: `serve:${Ie}`,
1910
1910
  environment: "prod",
1911
1911
  dialectId: _
1912
1912
  })), W.provide(e)));
1913
- n.kind === "prod-mismatch" && ($.error(fr(n, _)), $.error(ln({
1914
- gates: xe,
1913
+ n.kind === "prod-mismatch" && ($.error(pr(n, _)), $.error(un({
1914
+ gates: Ce,
1915
1915
  nodeEnv: process.env.NODE_ENV,
1916
1916
  cdcDialect: fe,
1917
- declared: m?.schema
1918
- })), $.error("serve: refusing to boot — apply the schema first (voltro db apply in a pre-deploy step), or set VOLTRO_AUTO_MIGRATE=0 to bypass this check."), process.exit(1)), $.info(fr(n, _));
1917
+ declared: h?.schema
1918
+ })), $.error("serve: refusing to boot — apply the schema first (voltro db apply in a pre-deploy step), or set VOLTRO_AUTO_MIGRATE=0 to bypass this check."), process.exit(1)), $.info(pr(n, _));
1919
1919
  }
1920
- await en({
1920
+ await tn({
1921
1921
  dialectId: _,
1922
1922
  tables: C,
1923
- mode: F(m?.reactiveTriggers),
1923
+ mode: $t(h?.reactiveTriggers),
1924
1924
  lockSchema: O().schema,
1925
1925
  makeLayer: async () => (await P(_)).makeSqlLayer(O()),
1926
1926
  log: {
@@ -1928,19 +1928,19 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1928
1928
  warn: (e, t) => $.warn(e, t ?? {})
1929
1929
  }
1930
1930
  });
1931
- let Ie = ti(C);
1931
+ let Le = ti(C);
1932
1932
  l.mark("discover");
1933
- let w = await ct(m, void 0);
1933
+ let w = await ct(h, void 0);
1934
1934
  {
1935
1935
  let e = await s(w);
1936
1936
  if (e !== void 0) throw i(`serve: ${e}`);
1937
1937
  }
1938
- let Ve = Si(w, _);
1939
- for (let e of j({
1940
- dialect: String(m?.store ?? process.env.DB_DIALECT ?? "postgres"),
1938
+ let Xe = Ci(w, _);
1939
+ for (let e of Gt({
1940
+ dialect: String(h?.store ?? process.env.DB_DIALECT ?? "postgres"),
1941
1941
  changeStrategy: (process.env.CDC ?? "1") === "0" ? "inline" : "cdc",
1942
1942
  dbUrl: process.env.DB_URL,
1943
- crossReplicaBus: Li(m?.plugins ?? [])?.broadcast.crossReplica === !0,
1943
+ crossReplicaBus: Ri(h?.plugins ?? [])?.broadcast.crossReplica === !0,
1944
1944
  tables: b.tables.map((e) => ({
1945
1945
  tableName: e.tableName,
1946
1946
  isReactive: e.isReactive === !0
@@ -1951,159 +1951,159 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1951
1951
  })
1952
1952
  })) e.level === "warn" ? $.warn(e.message) : $.info(e.message);
1953
1953
  {
1954
- let e = rt({
1955
- tables: tr().map((e) => ({ tableName: e.tableName })),
1954
+ let e = Ve({
1955
+ tables: nr().map((e) => ({ tableName: e.tableName })),
1956
1956
  queries: b.queries.map((e) => ({
1957
1957
  name: e.descriptor.name,
1958
1958
  source: e.descriptor.source
1959
1959
  }))
1960
- }), t = Be(e);
1960
+ }), t = It(e);
1961
1961
  t !== void 0 && $.warn(t);
1962
1962
  }
1963
- m?.cache && !process.env.CACHE_BACKEND && (process.env.CACHE_BACKEND = m.cache), m?.cacheRedisUrl && !process.env.CACHE_REDIS_URL && (process.env.CACHE_REDIS_URL = m.cacheRedisUrl), m?.cacheRedisDriver && !process.env.CACHE_REDIS_DRIVER && (process.env.CACHE_REDIS_DRIVER = m.cacheRedisDriver), m?.cacheKeyPrefix && !process.env.CACHE_KEY_PREFIX && (process.env.CACHE_KEY_PREFIX = m.cacheKeyPrefix);
1964
- let { service: We, invalidationBus: Xe, snapshotCache: Ze, cache: Qe, semantic: $e, evictSource: tt, backend: lt, stats: gt, dispose: _t } = await ot({
1963
+ h?.cache && !process.env.CACHE_BACKEND && (process.env.CACHE_BACKEND = h.cache), h?.cacheRedisUrl && !process.env.CACHE_REDIS_URL && (process.env.CACHE_REDIS_URL = h.cacheRedisUrl), h?.cacheRedisDriver && !process.env.CACHE_REDIS_DRIVER && (process.env.CACHE_REDIS_DRIVER = h.cacheRedisDriver), h?.cacheKeyPrefix && !process.env.CACHE_KEY_PREFIX && (process.env.CACHE_KEY_PREFIX = h.cacheKeyPrefix);
1964
+ let { service: Ze, invalidationBus: Qe, snapshotCache: $e, cache: tt, semantic: lt, evictSource: gt, backend: _t, stats: xt, dispose: wt } = await rt({
1965
1965
  env: process.env,
1966
- semantic: m?.cacheSemantic ?? !1
1966
+ semantic: h?.cacheSemantic ?? !1
1967
1967
  });
1968
- $e !== void 0 && $.info("semantic cache enabled — reactive eviction on live writes"), $.info(`cache backend resolved: ${lt}` + (lt === "redis" ? ` (driver ${process.env.CACHE_REDIS_DRIVER ?? "resp"})` : " — in-process, not cross-instance")), w.onChange((e) => {
1969
- if (W.runFork(Xe.publish(e.table)), tt !== void 0) {
1968
+ lt !== void 0 && $.info("semantic cache enabled — reactive eviction on live writes"), $.info(`cache backend resolved: ${_t}` + (_t === "redis" ? ` (driver ${process.env.CACHE_REDIS_DRIVER ?? "resp"})` : " — in-process, not cross-instance")), w.onChange((e) => {
1969
+ if (W.runFork(Qe.publish(e.table)), gt !== void 0) {
1970
1970
  let t = (e.new ?? e.old)?.id;
1971
- tt({
1971
+ gt({
1972
1972
  table: e.table,
1973
1973
  op: e.op,
1974
1974
  ...t === void 0 ? {} : { id: t }
1975
1975
  });
1976
1976
  }
1977
- }), m?.kv && !process.env.KV_BACKEND && (process.env.KV_BACKEND = m.kv), m?.kvRedisUrl && !process.env.KV_REDIS_URL && (process.env.KV_REDIS_URL = m.kvRedisUrl), m?.kvKeyPrefix && !process.env.KV_KEY_PREFIX && (process.env.KV_KEY_PREFIX = m.kvKeyPrefix);
1978
- let { kv: xt, service: wt } = await Wr({ store: w });
1979
- ye({
1977
+ }), h?.kv && !process.env.KV_BACKEND && (process.env.KV_BACKEND = h.kv), h?.kvRedisUrl && !process.env.KV_REDIS_URL && (process.env.KV_REDIS_URL = h.kvRedisUrl), h?.kvKeyPrefix && !process.env.KV_KEY_PREFIX && (process.env.KV_KEY_PREFIX = h.kvKeyPrefix);
1978
+ let { kv: Tt, service: Et } = await Wr({ store: w });
1979
+ mt({
1980
1980
  log: $,
1981
- max: Qt(),
1982
- outOfPool: h(_, (process.env.CDC ?? "1") !== "0"),
1981
+ max: F(),
1982
+ outOfPool: ye(_, (process.env.CDC ?? "1") !== "0"),
1983
1983
  readPools: t.replicationSnapshot()?.replicaCount ?? 0,
1984
1984
  always: !0
1985
1985
  }), l.mark("store");
1986
- let Tt = Sr({
1986
+ let Nt = Cr({
1987
1987
  store: w,
1988
- sink: Ne.sink,
1988
+ sink: Pe.sink,
1989
1989
  log: $
1990
- }), Et = yt({
1990
+ }), Pt = ot({
1991
1991
  store: w,
1992
1992
  dialect: _,
1993
1993
  log: { info: (e) => $.info(e) }
1994
- }), A = m?.plugins ?? [], Ft = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, It, Lt;
1995
- _ !== "memory" && (It = lr.make((await P(_)).makeSqlLayer(O()).pipe(G.provideMerge(Rn({})))), Lt = await It.runPromise(ur.SqlClient));
1994
+ }), M = h?.plugins ?? [], Ft = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, zt, Ht;
1995
+ _ !== "memory" && (zt = ur.make((await P(_)).makeSqlLayer(O()).pipe(G.provideMerge(zn({})))), Ht = await zt.runPromise(dr.SqlClient));
1996
1996
  let Ut = [
1997
1997
  "postgres",
1998
1998
  "mariadb",
1999
1999
  "mysql",
2000
2000
  "mssql"
2001
- ].includes(_) ? Br(w, Ft, $) : mi, N = Gt(m?.scheduling), bn = Kr({
2002
- maxIdleIntervalMs: N.pollCeilingMs,
2001
+ ].includes(_) ? Br(w, Ft, $) : hi, Jt = Kt(h?.scheduling), xn = Kr({
2002
+ maxIdleIntervalMs: Jt.pollCeilingMs,
2003
2003
  coordinator: Ut,
2004
2004
  replicaId: Ft,
2005
2005
  log: $
2006
- }), wn = [], On = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, An = Li(m?.plugins ?? [])?.broadcast?.provider, jn = ze(m?.plugins, m?.name ?? Nn(p));
2006
+ }), Tn = [], kn = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, jn = Ri(h?.plugins ?? [])?.broadcast?.provider, Mn = Be(h?.plugins, h?.name ?? Pn(p));
2007
2007
  {
2008
- let e = nt(m?.plugins, m?.name ?? Nn(p));
2008
+ let e = nt(h?.plugins, h?.name ?? Pn(p));
2009
2009
  e !== void 0 && $.warn(e);
2010
2010
  }
2011
- let Mn = Wt(m?.plugins, {
2012
- instanceId: On,
2013
- namespace: jn,
2011
+ let Nn = Wt(h?.plugins, {
2012
+ instanceId: kn,
2013
+ namespace: Mn,
2014
2014
  meta: { mode: "serve" },
2015
2015
  logger: $
2016
- }), I = yn({
2016
+ }), I = bn({
2017
2017
  mode: "serve",
2018
2018
  dialect: _,
2019
- ...An === void 0 ? {} : { provider: An },
2019
+ ...jn === void 0 ? {} : { provider: jn },
2020
2020
  logger: $
2021
2021
  });
2022
- J(async () => {
2022
+ oi(async () => {
2023
2023
  await I.stop();
2024
- }), k(m?.reactive);
2025
- let Fn = {
2026
- ...Lt ? { sql: Lt } : {},
2027
- instanceId: On,
2028
- membership: Mn.membership,
2029
- ...An === void 0 ? {} : { broadcast: An },
2030
- broadcastChannels: { presence: Ii(jn, "presence") },
2024
+ }), D(h?.reactive), Ct(h);
2025
+ let In = {
2026
+ ...Ht ? { sql: Ht } : {},
2027
+ instanceId: kn,
2028
+ membership: Nn.membership,
2029
+ ...jn === void 0 ? {} : { broadcast: jn },
2030
+ broadcastChannels: { presence: Li(Mn, "presence") },
2031
2031
  scheduleCoordinated: (e, t, n) => {
2032
- let r = bn(e, t, n);
2033
- return wn.push(r), r;
2032
+ let r = xn(e, t, n);
2033
+ return Tn.push(r), r;
2034
2034
  }
2035
2035
  };
2036
- for (let e of A) e.bindDataStore?.(Ve, Fn);
2036
+ for (let e of M) e.bindDataStore?.(Xe, In);
2037
2037
  dt({
2038
2038
  store: w,
2039
2039
  ...u(),
2040
2040
  log: $
2041
2041
  });
2042
- let zn = A.filter((e) => typeof e.onChangeEvent == "function");
2043
- if (zn.length > 0) {
2042
+ let Bn = M.filter((e) => typeof e.onChangeEvent == "function");
2043
+ if (Bn.length > 0) {
2044
2044
  let e = w.changeScope ?? "local";
2045
2045
  w.onChange((t) => {
2046
2046
  let n = oe(t, e);
2047
- for (let e of zn) W.runFork(e.onChangeEvent(n).pipe(W.catchAllCause((t) => W.sync(() => $.warn(`plugin ${e.name} onChangeEvent failed`, { error: cr.pretty(t) })))));
2047
+ for (let e of Bn) W.runFork(e.onChangeEvent(n).pipe(W.catchAllCause((t) => W.sync(() => $.warn(`plugin ${e.name} onChangeEvent failed`, { error: lr.pretty(t) })))));
2048
2048
  });
2049
2049
  }
2050
- let Bn = y.filter((e) => fn.test(e));
2051
- Bn.length > 0 && (await Re(Bn, $), $.info(`queue: ${Bn.length} consumer file(s) loaded`));
2052
- let R = Pe({
2053
- plugins: A,
2054
- appName: m?.name ?? "voltro-api",
2050
+ let Vn = y.filter((e) => fn.test(e));
2051
+ Vn.length > 0 && (await ze(Vn, $), $.info(`queue: ${Vn.length} consumer file(s) loaded`));
2052
+ let R = Fe({
2053
+ plugins: M,
2054
+ appName: h?.name ?? "voltro-api",
2055
2055
  appType: "api",
2056
2056
  voltroVersion: process.env.npm_package_version ?? "0.0.0",
2057
2057
  log: $
2058
2058
  });
2059
- A.length && await R.activate(), l.mark("plugins");
2060
- let Vn = await R.gatherObservability(), Hn = L({ scope: "voltro:broadcast" }), Un = {
2059
+ M.length && await R.activate(), l.mark("plugins");
2060
+ let Hn = await R.gatherObservability(), Un = L({ scope: "voltro:broadcast" }), Wn = {
2061
2061
  info: (e, t) => {
2062
- Hn.info(e, t);
2062
+ Un.info(e, t);
2063
2063
  },
2064
2064
  warn: (e, t) => {
2065
- Hn.warn(e, t);
2065
+ Un.warn(e, t);
2066
2066
  },
2067
2067
  debug: () => {}
2068
- }, z, Wn = await vt(w, m, _, jn, Un, (e, t) => {
2068
+ }, z, Gn = await E(w, h, _, Mn, Wn, (e, t) => {
2069
2069
  z?.refreshAll(`broadcast gap: missed ${t} change(s) from ${e}`);
2070
- }), Gn = m?.apiKeys, Kn = (typeof Gn == "object" ? Gn.prefix : void 0) ?? "voltro_", B = Gn ? Mr(w) : void 0, V = B ? Hr({ flush: Ur(B) }) : void 0;
2071
- V && J(() => V.shutdown());
2072
- let qn = B ? Vr(B, {
2073
- prefix: Kn,
2070
+ }), Kn = h?.apiKeys, qn = (typeof Kn == "object" ? Kn.prefix : void 0) ?? "voltro_", B = Kn ? Mr(w) : void 0, V = B ? Hr({ flush: Ur(B) }) : void 0;
2071
+ V && oi(() => V.shutdown());
2072
+ let Jn = B ? Vr(B, {
2073
+ prefix: qn,
2074
2074
  ...V ? { usage: V } : {}
2075
- }) : void 0, Jn = qn ? [Fr(qn, { prefix: Kn })] : [], Yn = Dt([...m?.auth?.strategies ?? [], ...Jn], Wi(m?.plugins ?? []), m?.auth?.anonymousTenantRequired ?? !1, m?.auth, () => Ve), Xn = [...m?.restRoutes ?? [], ...qn ? xr(qn, (typeof Gn == "object" ? Gn.managementPath : void 0) ?? "/v1/api-keys") : []], Zn = He(m?.idempotency, w), Qn = A.map((e) => e.services).filter((e) => e !== void 0), $n = G.mergeAll(qe({
2076
- analyticsLayer: Ne.layer,
2077
- cacheService: We,
2078
- kvService: wt,
2079
- ...$e === void 0 ? {} : { semanticCache: $e },
2080
- pluginServices: Qn,
2081
- userLayers: m?.layers ?? []
2082
- }), At(m?.http ?? {})), H = await St({
2075
+ }) : void 0, Yn = Jn ? [Fr(Jn, { prefix: qn })] : [], Xn = Dt([...h?.auth?.strategies ?? [], ...Yn], Gi(h?.plugins ?? []), h?.auth?.anonymousTenantRequired ?? !1, h?.auth, () => Xe), Zn = [...h?.restRoutes ?? [], ...Jn ? Sr(Jn, (typeof Kn == "object" ? Kn.managementPath : void 0) ?? "/v1/api-keys") : []], Qn = He(h?.idempotency, w), $n = M.map((e) => e.services).filter((e) => e !== void 0), er = G.mergeAll(qe({
2076
+ analyticsLayer: Pe.layer,
2077
+ cacheService: Ze,
2078
+ kvService: Et,
2079
+ ...lt === void 0 ? {} : { semanticCache: lt },
2080
+ pluginServices: $n,
2081
+ userLayers: h?.layers ?? []
2082
+ }), At(h?.http ?? {})), H = await k({
2083
2083
  files: y,
2084
2084
  store: w,
2085
2085
  log: $,
2086
2086
  seedPolicy: "report",
2087
2087
  seedPattern: dn,
2088
- loadSeedFiles: $t,
2089
- startupPattern: un,
2088
+ loadSeedFiles: en,
2089
+ startupPattern: _n,
2090
2090
  loadStartupFiles: a,
2091
2091
  runStartups: o,
2092
2092
  emailPattern: jt,
2093
2093
  loadEmailFiles: Je,
2094
- registerEmailTemplates: Gi
2094
+ registerEmailTemplates: Ki
2095
2095
  });
2096
2096
  (H.startupCount > 0 || H.emailCount > 0) && $.info("boot lifecycle", {
2097
2097
  startups: H.startupCount,
2098
2098
  emailTemplates: H.emailCount
2099
- }), H.startups !== void 0 && J(async () => {
2099
+ }), H.startups !== void 0 && oi(async () => {
2100
2100
  await H.startups.stop();
2101
- }), Ee({
2102
- demands: qt(me),
2101
+ }), x({
2102
+ demands: N(he),
2103
2103
  isRegistered: (e) => Ir(e) !== void 0
2104
2104
  });
2105
- let er = ut({
2106
- schedules: T({
2105
+ let tr = ut({
2106
+ schedules: Ue({
2107
2107
  schedules: b.schedules,
2108
2108
  seeds: H.seeds,
2109
2109
  store: w,
@@ -2111,27 +2111,27 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2111
2111
  }),
2112
2112
  workflows: b.workflows ?? [],
2113
2113
  log: $.child("workflow-schedules")
2114
- }), nr = m?.scheduling ?? {}, ir = nr.trigger ?? "self", ar = /* @__PURE__ */ new Set([
2114
+ }), rr = h?.scheduling ?? {}, ar = rr.trigger ?? "self", or = /* @__PURE__ */ new Set([
2115
2115
  "postgres",
2116
2116
  "mysql",
2117
2117
  "mariadb",
2118
2118
  "mssql"
2119
- ]), U = nr.coordination ?? (ar.has(_) ? "advisoryLock" : "single"), sr = U === "cluster" && ar.has(_), hr = sr ? "cluster" : U === "advisoryLock" && ar.has(_) ? "advisoryLock" : "single";
2120
- U === "cluster" && !sr && $.warn("scheduling.coordination=cluster needs a sql-backed store except sqlite — falling back to single"), U === "advisoryLock" && !ar.has(_) && $.warn("scheduling.coordination=advisoryLock needs a SQL store (the claim-row gate) — falling back to single");
2121
- let gr, _r = b.workflows.length > 0 || b.workflowWorkers.length > 0 || b.eventTriggers.length > 0 || (be?.outgoing.length ?? 0) > 0 || sr, vr;
2122
- if (_r) {
2119
+ ]), U = rr.coordination ?? (or.has(_) ? "advisoryLock" : "single"), cr = U === "cluster" && or.has(_), gr = cr ? "cluster" : U === "advisoryLock" && or.has(_) ? "advisoryLock" : "single";
2120
+ U === "cluster" && !cr && $.warn("scheduling.coordination=cluster needs a sql-backed store except sqlite — falling back to single"), U === "advisoryLock" && !or.has(_) && $.warn("scheduling.coordination=advisoryLock needs a SQL store (the claim-row gate) — falling back to single");
2121
+ let _r, vr = b.workflows.length > 0 || b.workflowWorkers.length > 0 || b.eventTriggers.length > 0 || (xe?.outgoing.length ?? 0) > 0 || cr, yr;
2122
+ if (vr) {
2123
2123
  if (_ === "mssql") {
2124
- let e = await Sn(process.cwd());
2124
+ let e = await Cn(process.cwd());
2125
2125
  e && $.warn(e);
2126
2126
  }
2127
- let [{ WorkflowEngine: e }, { makeClusterCronLayer: t, workflowEngineLayer: n, resolveRunnerStorage: r, resolveFailoverTuning: i }] = await Promise.all([import("@effect/workflow"), import("@voltro/workflow/cluster")]), a = sr ? er.filter((e) => (e.trigger ?? ir) === "self").map((e) => t({
2127
+ let [{ WorkflowEngine: e }, { makeClusterCronLayer: t, workflowEngineLayer: n, resolveRunnerStorage: r, resolveFailoverTuning: i }] = await Promise.all([import("@effect/workflow"), import("@voltro/workflow/cluster")]), a = cr ? tr.filter((e) => (e.trigger ?? ar) === "self").map((e) => t({
2128
2128
  name: e.name,
2129
2129
  cron: jr(e),
2130
2130
  execute: async () => {
2131
- await gr?.fireFromCluster(e.name);
2131
+ await _r?.fireFromCluster(e.name);
2132
2132
  }
2133
2133
  })) : [];
2134
- vr = _ === "memory" ? e.layerMemory : await (async () => {
2134
+ yr = _ === "memory" ? e.layerMemory : await (async () => {
2135
2135
  let e = await P(_), t = r({ sqliteFamily: e.id === "sqlite" || e.id === "turso" });
2136
2136
  return $.info(`workflow engine: cluster-${t}, dialect=${e.id}` + (t === "memory" ? " — single-process durable replay, no cross-pod shard handoff" + (e.id !== "sqlite" && e.id !== "turso" ? " (VOLTRO_WORKFLOW_RUNNER_STORAGE=memory: SqlRunnerStorage/cluster_runners + GET_LOCK skipped)" : "") : "")), n({
2137
2137
  sqlClientLayer: e.makeSqlLayer(O()),
@@ -2143,23 +2143,23 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2143
2143
  });
2144
2144
  })();
2145
2145
  }
2146
- let yr = de(A, xn()), br = y.filter((e) => /\.subscribe\.tsx?$/.test(e)), Cr = br.length > 0 ? await Nt(br, $) : [], wr = y.filter((e) => /\.reaction\.tsx?$/.test(e)), Tr = wr.length > 0 ? await Se(wr, $) : [], Er = y.filter((e) => hn.test(e)), Dr = Er.length > 0 ? await we(Er, $) : [], Or = y.filter((e) => /\.aggregate\.tsx?$/.test(e)), K = Or.length > 0 ? await ht(Or, $) : [];
2146
+ let br = v(M, Sn()), xr = y.filter((e) => /\.subscribe\.tsx?$/.test(e)), wr = xr.length > 0 ? await A(xr, $) : [], Tr = y.filter((e) => /\.reaction\.tsx?$/.test(e)), Er = Tr.length > 0 ? await Se(Tr, $) : [], Dr = y.filter((e) => pn.test(e)), K = Dr.length > 0 ? await we(Dr, $) : [], Or = y.filter((e) => /\.aggregate\.tsx?$/.test(e)), q = Or.length > 0 ? await ht(Or, $) : [];
2147
2147
  {
2148
- let e = Pr(yi(zt({ aggregates: K.map((e) => e.definition) }), Ae(C)));
2148
+ let e = Pr(bi(Ae({ aggregates: q.map((e) => e.definition) }), re(C)));
2149
2149
  e !== void 0 && $.warn(e);
2150
2150
  }
2151
2151
  let kr = f();
2152
- if (K.length > 0 && _ !== "memory") try {
2152
+ if (q.length > 0 && _ !== "memory") try {
2153
2153
  let e = (await P(_)).makeSqlLayer(O());
2154
- kr = ft(e);
2154
+ kr = pt(e);
2155
2155
  } catch (e) {
2156
2156
  $.warn("aggregate: SQL storage init failed — falling back to in-process", { err: String(e) });
2157
2157
  }
2158
- let Ar = _ === "memory" ? mi : Br(w, `aggregate@${process.pid}`, $), Lr = y.filter((e) => pn.test(e)), Rr = Lr.length > 0 ? await je(Lr, $) : [], zr = y.filter((e) => gn.test(e)), Gr = zr.length > 0 ? await Bt(zr, $) : [], qr = y.filter((e) => mn.test(e)), Jr = qr.length > 0 ? await ie(qr, $) : [], Yr = [], Xr = [], Zr = y.filter((e) => tn.test(e));
2158
+ let Ar = _ === "memory" ? hi : Br(w, `aggregate@${process.pid}`, $), Lr = y.filter((e) => mn.test(e)), Rr = Lr.length > 0 ? await S(Lr, $) : [], zr = y.filter((e) => hn.test(e)), Gr = zr.length > 0 ? await Bt(zr, $) : [], qr = y.filter((e) => gn.test(e)), Jr = qr.length > 0 ? await ie(qr, $) : [], Yr = [], Xr = [], Zr = y.filter((e) => nn.test(e));
2159
2159
  if (Zr.length > 0) {
2160
- let e = $.child("agent"), t = y.filter((e) => an.test(e));
2161
- t.length > 0 && await nn(t, e);
2162
- let n = await rn(Zr, e);
2160
+ let e = $.child("agent"), t = y.filter((e) => on.test(e));
2161
+ t.length > 0 && await rn(t, e);
2162
+ let n = await an(Zr, e);
2163
2163
  for (let e of n.agents) for (let t of bt(e)) (t.kind === "action" ? Yr : Xr).push({
2164
2164
  file: t.file,
2165
2165
  descriptor: t.descriptor,
@@ -2168,11 +2168,11 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2168
2168
  n.agents.length > 0 && e.info("synthesized agent routes", { agents: n.agents.map((e) => e.descriptor.name) });
2169
2169
  }
2170
2170
  l.mark("workflow");
2171
- let q = () => {
2171
+ let J = () => {
2172
2172
  let e = Y.workflowWriteActions();
2173
2173
  if (e === void 0) throw Error("workflow actions: this app registers no workflows");
2174
2174
  return e;
2175
- }, Qr = rr({
2175
+ }, Qr = ir({
2176
2176
  dialect: _,
2177
2177
  ...O()
2178
2178
  }), $r = _ === "memory" ? void 0 : (await P(_)).makeSqlLayer(O()), ei = async () => kt({
@@ -2182,69 +2182,69 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2182
2182
  }), ni = {
2183
2183
  kind: "api",
2184
2184
  meta: {
2185
- name: m?.name ?? "voltro-api",
2185
+ name: h?.name ?? "voltro-api",
2186
2186
  voltroVersion: Mt,
2187
- port: se,
2187
+ port: le,
2188
2188
  mode: "start",
2189
2189
  store: _,
2190
- cdc: le ? "on" : "off",
2190
+ cdc: de ? "on" : "off",
2191
2191
  ...Qr === void 0 ? {} : { databaseId: Qr }
2192
2192
  },
2193
- rpc: Ht(b, p),
2194
- workflows: De(b, p),
2193
+ rpc: De(b, p),
2194
+ workflows: ne(b, p),
2195
2195
  migrations: ei,
2196
2196
  events: () => Y.eventsSnapshot(),
2197
2197
  agentTools: () => Y.agentTools(),
2198
2198
  invariantChecks: () => ({
2199
2199
  mode: "serve",
2200
- accessGate: me,
2201
- config: m,
2200
+ accessGate: he,
2201
+ config: h,
2202
2202
  serverOnlyLeaks: b.serverOnlyLeaks,
2203
2203
  migrations: ei
2204
2204
  }),
2205
2205
  members: () => Y.membersSnapshot(),
2206
2206
  inspectFireSchedule: async ({ name: e, trigger: t }) => {
2207
- if (!gr) throw Error("scheduler not started — this app registers no self-triggered schedules (all schedules are trigger:'external', or there are none).");
2208
- return { runId: await gr.fireNow(e, t) ?? null };
2207
+ if (!_r) throw Error("scheduler not started — this app registers no self-triggered schedules (all schedules are trigger:'external', or there are none).");
2208
+ return { runId: await _r.fireNow(e, t) ?? null };
2209
2209
  },
2210
- inspectBackfillSchedule: ne({
2211
- getHandle: () => gr,
2212
- getSchedules: () => er
2210
+ inspectBackfillSchedule: m({
2211
+ getHandle: () => _r,
2212
+ getSchedules: () => tr
2213
2213
  }),
2214
- ...be === void 0 ? {} : { webhooks: () => pt({
2214
+ ...xe === void 0 ? {} : { webhooks: () => T({
2215
2215
  store: w,
2216
- discoveredWebhooks: be
2216
+ discoveredWebhooks: xe
2217
2217
  }) },
2218
2218
  plugins: () => ({
2219
2219
  plugins: R.snapshot(),
2220
2220
  capturedAt: Date.now()
2221
2221
  }),
2222
- env: () => Yt(m?.name ?? Nn(p), {
2223
- ...m?.env !== void 0 && Mi(m.env) ? { contract: m.env } : {},
2224
- plugins: m?.plugins ?? []
2222
+ env: () => Zt(h?.name ?? Pn(p), {
2223
+ ...h?.env !== void 0 && Ni(h.env) ? { contract: h.env } : {},
2224
+ plugins: h?.plugins ?? []
2225
2225
  }),
2226
2226
  dataCache: () => Vt({
2227
- stats: gt,
2228
- backendKind: lt
2227
+ stats: xt,
2228
+ backendKind: _t
2229
2229
  }),
2230
- subscriptions: () => x(() => z),
2230
+ subscriptions: () => Ee(() => z),
2231
2231
  inspectTables: () => Te(C),
2232
- inspectRows: Kt({
2232
+ inspectRows: qt({
2233
2233
  store: w,
2234
2234
  tables: C,
2235
2235
  mask: !0
2236
2236
  }),
2237
2237
  metrics: (e) => Y.rpcMetrics().snapshot(e),
2238
- cluster: () => Ue({
2238
+ cluster: () => We({
2239
2239
  store: w,
2240
2240
  dialect: _,
2241
- useClusterCron: sr,
2241
+ useClusterCron: cr,
2242
2242
  scheduleCoordChoice: U
2243
2243
  }),
2244
2244
  inspectSchedules: () => g({
2245
- schedules: er,
2246
- defaultTrigger: ir,
2247
- coordination: hr
2245
+ schedules: tr,
2246
+ defaultTrigger: ar,
2247
+ coordination: gr
2248
2248
  }),
2249
2249
  inspectScheduleRuns: (e) => ke(w, e),
2250
2250
  ...Rt(w, {
@@ -2253,15 +2253,15 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2253
2253
  cancellation: () => Y.flowControlHealth()
2254
2254
  }),
2255
2255
  webhookActions: te(() => Y.webhooksService()),
2256
- inspectStartWorkflow: (e) => q().inspectStartWorkflow(e),
2257
- inspectCancelWorkflowRun: (e) => q().inspectCancelWorkflowRun(e),
2258
- inspectSuspendWorkflowRun: (e) => q().inspectSuspendWorkflowRun(e),
2259
- inspectResumeWorkflowRun: (e) => q().inspectResumeWorkflowRun(e),
2260
- inspectDiscardWorkflowRun: (e) => q().inspectDiscardWorkflowRun(e),
2261
- inspectRetryWorkflowRun: (e) => q().inspectRetryWorkflowRun(e),
2262
- inspectSignalWorkflowRun: (e) => q().inspectSignalWorkflowRun(e),
2263
- inspectUpdateWorkflowRun: (e) => q().inspectUpdateWorkflowRun(e),
2264
- inspectInferences: (e) => E({
2256
+ inspectStartWorkflow: (e) => J().inspectStartWorkflow(e),
2257
+ inspectCancelWorkflowRun: (e) => J().inspectCancelWorkflowRun(e),
2258
+ inspectSuspendWorkflowRun: (e) => J().inspectSuspendWorkflowRun(e),
2259
+ inspectResumeWorkflowRun: (e) => J().inspectResumeWorkflowRun(e),
2260
+ inspectDiscardWorkflowRun: (e) => J().inspectDiscardWorkflowRun(e),
2261
+ inspectRetryWorkflowRun: (e) => J().inspectRetryWorkflowRun(e),
2262
+ inspectSignalWorkflowRun: (e) => J().inspectSignalWorkflowRun(e),
2263
+ inspectUpdateWorkflowRun: (e) => J().inspectUpdateWorkflowRun(e),
2264
+ inspectInferences: (e) => vt({
2265
2265
  store: w,
2266
2266
  active: (b.workflows?.length ?? 0) > 0,
2267
2267
  dispatcher: () => Y.inferenceHealth()
@@ -2269,13 +2269,13 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2269
2269
  ...st({
2270
2270
  store: w,
2271
2271
  cancelRun: async (e) => await Y.runCanceller()?.(e) ?? !1,
2272
- retryRun: async (e) => q().inspectRetryWorkflowRun({ runId: e }),
2272
+ retryRun: async (e) => J().inspectRetryWorkflowRun({ runId: e }),
2273
2273
  redriveRun: async (e) => Y.redriveWorkflowRun({ runId: e }),
2274
2274
  log: $
2275
2275
  }),
2276
2276
  inspectRedriveWorkflowRun: (e) => Y.redriveWorkflowRun(e),
2277
2277
  inspectResumeWorkflowRunFromStep: (e) => Y.resumeWorkflowRunFromStep(e)
2278
- }, ri = (process.env.VOLTRO_TENANT_ISOLATION ?? m?.tenancy?.isolation) === "namespace", ii = ri && _ !== "memory" ? await (async () => {
2278
+ }, ri = (process.env.VOLTRO_TENANT_ISOLATION ?? h?.tenancy?.isolation) === "namespace", ii = ri && _ !== "memory" ? await (async () => {
2279
2279
  let e = await P(_);
2280
2280
  return et({
2281
2281
  tables: C,
@@ -2288,53 +2288,53 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2288
2288
  }
2289
2289
  });
2290
2290
  })() : void 0, ai = await at({
2291
- input: m?.tenancy?.residency,
2291
+ input: h?.tenancy?.residency,
2292
2292
  namespaceIsolationOn: ri,
2293
- makeStoreForUrl: (e, t) => ct(m, void 0, Zt(O(), t)),
2293
+ makeStoreForUrl: (e, t) => ct(h, void 0, Qt(O(), t)),
2294
2294
  log: {
2295
2295
  info: (e, t) => $.info(e, t),
2296
2296
  warn: (e, t) => $.warn(e, t)
2297
2297
  }
2298
2298
  });
2299
- ai !== void 0 && J(async () => {
2299
+ ai !== void 0 && oi(async () => {
2300
2300
  await ai.close();
2301
2301
  });
2302
- let Y = await yo({
2302
+ let Y = await bo({
2303
2303
  bootTiming: l,
2304
- broadcastNamespace: jn,
2304
+ broadcastNamespace: Mn,
2305
2305
  scheduling: (() => {
2306
- let e = N;
2306
+ let e = Jt;
2307
2307
  return {
2308
2308
  admissionDrainMs: e.admissionDrainMs,
2309
2309
  inferenceTickMs: e.inferenceTickMs,
2310
2310
  cancelSweepMs: e.cancelSweepMs,
2311
2311
  stalenessSweepMs: e.stalenessSweepMs,
2312
- disarmWhenIdle: M({
2312
+ disarmWhenIdle: Lt({
2313
2313
  changeScope: w.changeScope,
2314
- broadcastAttached: Wn !== void 0
2314
+ broadcastAttached: Gn !== void 0
2315
2315
  })
2316
2316
  };
2317
2317
  })(),
2318
- ...m?.workflows?.staleness === void 0 ? {} : { workflowStaleness: m.workflows.staleness },
2319
- ...m?.workflows?.suspendSignalHintMs === void 0 ? {} : { workflowSuspendSignalHintMs: m.workflows.suspendSignalHintMs },
2320
- workflowRecording: Ge(m?.workflows?.recording),
2318
+ ...h?.workflows?.staleness === void 0 ? {} : { workflowStaleness: h.workflows.staleness },
2319
+ ...h?.workflows?.suspendSignalHintMs === void 0 ? {} : { workflowSuspendSignalHintMs: h.workflows.suspendSignalHintMs },
2320
+ workflowRecording: Ge(h?.workflows?.recording),
2321
2321
  membership: {
2322
- ...Mn,
2323
- instanceId: On
2322
+ ...Nn,
2323
+ instanceId: kn
2324
2324
  },
2325
2325
  security: {
2326
- defaultDeny: S(m),
2327
- ...ue(m)
2326
+ defaultDeny: Me(h),
2327
+ ...ue(h)
2328
2328
  },
2329
- approvals: { defaultExpiryMs: Le(m) },
2330
- ...m?.plugins === void 0 ? {} : { plugins: m.plugins },
2331
- ...Zn ? { idempotency: Zn } : {},
2332
- restRoutes: Xn,
2333
- ...m?.grpc === void 0 ? {} : { grpc: {
2334
- config: m.grpc,
2329
+ approvals: { defaultExpiryMs: Re(h) },
2330
+ ...h?.plugins === void 0 ? {} : { plugins: h.plugins },
2331
+ ...Qn ? { idempotency: Qn } : {},
2332
+ restRoutes: Zn,
2333
+ ...h?.grpc === void 0 ? {} : { grpc: {
2334
+ config: h.grpc,
2335
2335
  root: p
2336
2336
  } },
2337
- appProcedures: me,
2337
+ appProcedures: he,
2338
2338
  discovered: {
2339
2339
  wsGateways: b.wsGateways,
2340
2340
  queries: [...b.queries, ...Xr],
@@ -2345,57 +2345,57 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2345
2345
  workflows: b.workflows,
2346
2346
  workflowWorkers: b.workflowWorkers,
2347
2347
  eventTriggers: b.eventTriggers,
2348
- schedules: er,
2349
- subscribers: Cr,
2350
- outboxHandlers: Dr,
2348
+ schedules: tr,
2349
+ subscribers: wr,
2350
+ outboxHandlers: K,
2351
2351
  connections: b.connections,
2352
- reactions: Tr,
2353
- aggregates: K,
2352
+ reactions: Er,
2353
+ aggregates: q,
2354
2354
  expectations: Rr,
2355
2355
  budgets: Gr,
2356
2356
  experiments: Jr,
2357
- ...be === void 0 ? {} : { webhooks: be }
2357
+ ...xe === void 0 ? {} : { webhooks: xe }
2358
2358
  },
2359
2359
  log: $,
2360
- analytics: Ne.sink,
2360
+ analytics: Pe.sink,
2361
2361
  aggregateStorage: kr,
2362
2362
  aggregateCoordinator: Ar,
2363
2363
  store: w,
2364
- kv: xt,
2365
- cache: Qe,
2366
- snapshotCache: Ze,
2367
- ...m?.reactive === void 0 ? {} : { reactive: m.reactive },
2368
- schemaRegistry: Ie,
2364
+ kv: Tt,
2365
+ cache: tt,
2366
+ snapshotCache: $e,
2367
+ ...h?.reactive === void 0 ? {} : { reactive: h.reactive },
2368
+ schemaRegistry: Le,
2369
2369
  tenantScopedTables: b.tenantScopedTables,
2370
2370
  softDeleteScopedTables: b.softDeleteScopedTables,
2371
- dataTransferSnapshot: dr(C, _),
2371
+ dataTransferSnapshot: fr(C, _),
2372
2372
  dataTransferDialect: _,
2373
2373
  ...ii === void 0 ? {} : { ensureTenantProvisioned: ii.ensure },
2374
2374
  ...ai === void 0 ? {} : { resolveResidentStore: ai.resolveStore },
2375
- tenantIsolation: (process.env.VOLTRO_TENANT_ISOLATION ?? m?.tenancy?.isolation) === "namespace" ? "namespace" : "shared-schema",
2376
- resolveSubject: (e, t) => Yn({
2375
+ tenantIsolation: (process.env.VOLTRO_TENANT_ISOLATION ?? h?.tenancy?.isolation) === "namespace" ? "namespace" : "shared-schema",
2376
+ resolveSubject: (e, t) => Xn({
2377
2377
  headers: e,
2378
2378
  clientId: t
2379
2379
  }),
2380
- ...m?.auth === void 0 ? {} : { authority: m.auth },
2381
- ...m?.agents === void 0 ? {} : { agents: m.agents },
2382
- httpRoutes: A.flatMap((e) => e.httpRoutes ?? []),
2383
- getStore: () => Ve,
2384
- ...$n ? { baseLayer: $n } : {},
2385
- ...vr === void 0 ? {} : { workflowEngineLayer: vr },
2386
- scheduleDefaultTrigger: ir,
2387
- scheduleCoordination: hr,
2388
- scheduleArmSelf: !sr,
2389
- dormancy: process.env.VOLTRO_DORMANCY === "sleep" || process.env.VOLTRO_DORMANCY === "always-on" ? process.env.VOLTRO_DORMANCY : m?.dormancy ?? "always-on",
2380
+ ...h?.auth === void 0 ? {} : { authority: h.auth },
2381
+ ...h?.agents === void 0 ? {} : { agents: h.agents },
2382
+ httpRoutes: M.flatMap((e) => e.httpRoutes ?? []),
2383
+ getStore: () => Xe,
2384
+ ...er ? { baseLayer: er } : {},
2385
+ ...yr === void 0 ? {} : { workflowEngineLayer: yr },
2386
+ scheduleDefaultTrigger: ar,
2387
+ scheduleCoordination: gr,
2388
+ scheduleArmSelf: !cr,
2389
+ dormancy: process.env.VOLTRO_DORMANCY === "sleep" || process.env.VOLTRO_DORMANCY === "always-on" ? process.env.VOLTRO_DORMANCY : h?.dormancy ?? "always-on",
2390
2390
  scheduleReplicaId: process.env.HOSTNAME ?? `pid-${process.pid}`,
2391
- ...yr === void 0 ? {} : { scheduleFireInterceptor: yr },
2391
+ ...br === void 0 ? {} : { scheduleFireInterceptor: br },
2392
2392
  onSchedulerReady: (e) => {
2393
- gr = e;
2393
+ _r = e;
2394
2394
  },
2395
2395
  inspectRoute: { handle: async (e, t, n, r) => await ve(e, ni, t, {
2396
2396
  method: n,
2397
2397
  ...r === void 0 ? {} : { body: r }
2398
- }) || ((n === "GET" ? await vn(e, ni, t, { method: n }) : null) ?? _n(e, ni, t, {
2398
+ }) || ((n === "GET" ? await yn(e, ni, t, { method: n }) : null) ?? vn(e, ni, t, {
2399
2399
  method: n,
2400
2400
  ...r === void 0 ? {} : { body: r }
2401
2401
  }) ?? {
@@ -2403,20 +2403,20 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2403
2403
  contentType: "application/json",
2404
2404
  body: JSON.stringify({ error: "not an inspect route" })
2405
2405
  }) },
2406
- ...m?.name === void 0 ? {} : { appName: m.name },
2407
- observability: Vn,
2408
- port: se,
2409
- ...m?.transport?.wsPath ? { path: m.transport.wsPath } : {},
2410
- ...m?.http === void 0 ? {} : { http: m.http }
2406
+ ...h?.name === void 0 ? {} : { appName: h.name },
2407
+ observability: Hn,
2408
+ port: le,
2409
+ ...h?.transport?.wsPath ? { path: h.transport.wsPath } : {},
2410
+ ...h?.http === void 0 ? {} : { http: h.http }
2411
2411
  });
2412
- return z = Y.dispatcher, d(mt([
2412
+ return z = Y.dispatcher, ft(d([
2413
2413
  b.queries,
2414
2414
  b.mutations,
2415
2415
  b.actions,
2416
2416
  b.streams
2417
2417
  ]), (e) => {
2418
2418
  $.warn(e);
2419
- }), $.info(`API listening on :${se}`, {
2419
+ }), $.info(`API listening on :${le}`, {
2420
2420
  dialect: _,
2421
2421
  queries: b.queries.length,
2422
2422
  mutations: b.mutations.length,
@@ -2424,20 +2424,20 @@ var ra = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2424
2424
  streams: b.streams.length,
2425
2425
  workflows: b.workflows.length,
2426
2426
  workflowWorkers: b.workflowWorkers.length,
2427
- schedules: er.length,
2428
- scheduleCoordination: hr
2429
- }), l.finish($), J(async () => {
2430
- for (let e of wn) e.stop();
2431
- Et.stop();
2427
+ schedules: tr.length,
2428
+ scheduleCoordination: gr
2429
+ }), l.finish($), oi(async () => {
2430
+ for (let e of Tn) e.stop();
2431
+ Pt.stop();
2432
2432
  try {
2433
- await Y.close(), _t(), It?.dispose(), await R.deactivate(), await Wn?.close(), await Ot({
2434
- mirror: Tt,
2433
+ await Y.close(), wt(), zt?.dispose(), await R.deactivate(), await Gn?.close(), await Ot({
2434
+ mirror: Nt,
2435
2435
  log: $
2436
- }), await Ne.dispose(), await w.close?.();
2436
+ }), await Pe.dispose(), await w.close?.();
2437
2437
  } catch (e) {
2438
2438
  console.error("serve: shutdown step failed, exiting anyway:", e);
2439
2439
  }
2440
2440
  }), await new Promise(() => {}), 0;
2441
2441
  };
2442
2442
  //#endregion
2443
- export { So as n, bo as r, Co as t };
2443
+ export { Co as n, xo as r, wo as t };