@voltro/cli 0.54.0 → 0.55.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 (119) hide show
  1. package/CHANGELOG.md +142 -2
  2. package/dist/{apiBuild-DTWp0S_q.js → apiBuild-CMvLJM_K.js} +2 -2
  3. package/dist/apiBuild-Cl0IDx8c.js +2 -0
  4. package/dist/bin.js +1 -1
  5. package/dist/{build-D4ygSbnV.js → build-S0QOzqPT.js} +10 -10
  6. package/dist/{checkCommand-L7DTlpIF.js → checkCommand-DNkY5kwF.js} +1 -1
  7. package/dist/{checkCommand-Dg1G7Gwd.js → checkCommand-fbj9GDjN.js} +5 -5
  8. package/dist/codegen-CN6vMM4J.js +2 -0
  9. package/dist/{codegen-DSLM8Su9.js → codegen-SIepQtUl.js} +74 -63
  10. package/dist/{codegenCommand-CG_Vx4lc.js → codegenCommand-3TDJezom.js} +10 -9
  11. package/dist/{codemodRunner-Cd4xkC6u.js → codemodRunner-C2zxZUIw.js} +55 -0
  12. package/dist/{commands-6Kzi92Np.js → commands-BBYJ7Q3B.js} +24 -24
  13. package/dist/{dashboardCommand-Cq1PWvI1.js → dashboardCommand-D2kmyCLL.js} +3 -3
  14. package/dist/{dataCommand-DYzW8vkv.js → dataCommand-BEPPQiTl.js} +266 -194
  15. package/dist/dbCommand-BTyBGhIA.js +2 -0
  16. package/dist/{dbCommand-B4NWZtGL.js → dbCommand-DZTmOFT4.js} +1 -1
  17. package/dist/{dev-CmuvUKRq.js → dev-Ca_A_S9v.js} +2182 -2157
  18. package/dist/{dev-cKUiZZsB.js → dev-DfVZaoys.js} +1 -1
  19. package/dist/{doctorCommand-DCiFVMtZ.js → doctorCommand-CGZJK_4o.js} +15 -15
  20. package/dist/doctorCommand-djmqEcDC.js +2 -0
  21. package/dist/{dormancyCommand-w1TrmgYP.js → dormancyCommand-DY2rYpTa.js} +1 -1
  22. package/dist/{embeddingsCommand-CMgPyRTr.js → embeddingsCommand-BoCqZsgp.js} +1 -1
  23. package/dist/{envCommand-Cyynmcfa.js → envCommand-Bxy2fOjc.js} +2 -2
  24. package/dist/{evolveCommand-BwvQ8dVH.js → evolveCommand-BsbZ-XDg.js} +2 -2
  25. package/dist/frameworkTableAssembly-Df2Ymp2f.js +2 -0
  26. package/dist/{frameworkTableAssembly-D7LJuALW.js → frameworkTableAssembly-Do-cf6RJ.js} +92 -98
  27. package/dist/index.js +1 -1
  28. package/dist/{infoCommand-DlYlUPqs.js → infoCommand-EmM3jPKD.js} +1 -1
  29. package/dist/{inspect-Bd8-9wsi.js → inspect-DCqILJ1G.js} +4 -0
  30. package/dist/inspect-DGJwpOAb.js +2 -0
  31. package/dist/interruptedReplace-CwnkBb2X.js +41 -0
  32. package/dist/interruptedReplace-qzmFI020.js +2 -0
  33. package/dist/manifestBuild-CJ2zvPvT.js +2 -0
  34. package/dist/{manifestBuild-Cqgsx2bM.js → manifestBuild-DjX5MoXy.js} +1 -1
  35. package/dist/{migrate-BK_Bbx-_.js → migrate-CGFZS-1a.js} +2 -2
  36. package/dist/{probeCommand-_C0YU207.js → probeCommand-Bs3iVBSL.js} +1 -1
  37. package/dist/{runtimeTrace-CGWx1Q6l.js → runtimeTrace-C1BTpHGQ.js} +1 -1
  38. package/dist/{sdkgen-CDGHQUFj.js → sdkgen-CXMwLg9n.js} +1 -1
  39. package/dist/{serveCommand-Bje09q1v.js → serveCommand-C7IrCD58.js} +840 -838
  40. package/dist/serveCommand-Cjt5S9hD.js +2 -0
  41. package/dist/serveEntry.js +1 -1
  42. package/dist/{start-B0bnJgxI.js → start-DH7cat4-.js} +1 -1
  43. package/dist/{start-Clz-1BHB.js → start-EOV7s1NZ.js} +486 -476
  44. package/dist/startEntry.js +1 -1
  45. package/dist/{test-D_kW4KMj.js → test-DO27-x2P.js} +1 -1
  46. package/dist/{updateCommand-CRJlAOaM.js → updateCommand-C_jN1w18.js} +1 -1
  47. package/dist/updateCommand-nnFjDbl4.js +2 -0
  48. package/dist/{webDev-DlvZO30c.js → webDev-1XpVnYkW.js} +1 -1
  49. package/dist/{webDev-DSI9SOhs.js → webDev-B7vNj4Bq.js} +502 -494
  50. package/dist/{webhooksCommand-BvzXNHji.js → webhooksCommand-B1LVcyO3.js} +1 -1
  51. package/package.json +31 -19
  52. package/templates/AGENTS.md +1 -1
  53. package/templates/agent-docs/_index.md +1 -1
  54. package/templates/agent-docs/authentication.md +49 -6
  55. package/templates/agent-docs/cli.md +94 -11
  56. package/templates/agent-docs/data.md +64 -13
  57. package/templates/agent-docs/plugins.md +46 -8
  58. package/templates/agent-docs/reference.md +5 -3
  59. package/templates/agent-docs/routing.md +18 -0
  60. package/templates/agent-docs/schema-driven-ui.md +125 -0
  61. package/templates/agent-docs/whats-new.md +76 -133
  62. package/templates/apps/api-ai/package.json +6 -6
  63. package/templates/apps/api-auth/package.json +8 -8
  64. package/templates/apps/api-backend/package.json +7 -7
  65. package/templates/apps/api-backend-deactivation/package.json +7 -7
  66. package/templates/apps/api-backend-mail/package.json +8 -8
  67. package/templates/apps/api-backend-mariadb/package.json +9 -9
  68. package/templates/apps/api-backend-sqlite/package.json +8 -8
  69. package/templates/apps/api-backend-storage/package.json +8 -8
  70. package/templates/apps/api-cms/package.json +9 -9
  71. package/templates/apps/api-collab/package.json +8 -8
  72. package/templates/apps/api-data-advanced/package.json +8 -8
  73. package/templates/apps/api-durable/package.json +8 -8
  74. package/templates/apps/api-feature-flags/package.json +9 -9
  75. package/templates/apps/api-governance/package.json +8 -8
  76. package/templates/apps/api-kv/package.json +8 -8
  77. package/templates/apps/api-moderation/package.json +8 -8
  78. package/templates/apps/api-observability/package.json +8 -8
  79. package/templates/apps/api-ratelimit/package.json +8 -8
  80. package/templates/apps/api-rbac/package.json +8 -8
  81. package/templates/apps/api-rest/package.json +7 -7
  82. package/templates/apps/api-row-history/package.json +8 -8
  83. package/templates/apps/api-saas/package.json +11 -11
  84. package/templates/apps/api-saas-starter/package.json +10 -10
  85. package/templates/apps/api-search/package.json +8 -8
  86. package/templates/apps/api-status/package.json +8 -8
  87. package/templates/apps/api-webhooks/package.json +9 -9
  88. package/templates/apps/changelog/package.json +7 -7
  89. package/templates/apps/edge-functions/package.json +2 -2
  90. package/templates/apps/frontend-admin/package.json +8 -8
  91. package/templates/apps/frontend-app/package.json +9 -9
  92. package/templates/apps/frontend-auth/package.json +8 -8
  93. package/templates/apps/frontend-blank/package.json +7 -7
  94. package/templates/apps/frontend-cms/package.json +9 -9
  95. package/templates/apps/frontend-collab/package.json +10 -10
  96. package/templates/apps/frontend-contact/package.json +7 -7
  97. package/templates/apps/frontend-dashboard/package.json +7 -7
  98. package/templates/apps/frontend-docs/package.json +8 -8
  99. package/templates/apps/frontend-i18n/package.json +6 -6
  100. package/templates/apps/frontend-landing/package.json +7 -7
  101. package/templates/apps/frontend-portal/package.json +8 -8
  102. package/templates/apps/frontend-saas/package.json +8 -8
  103. package/templates/apps/frontend-spa/package.json +7 -7
  104. package/templates/apps/frontend-ssr/package.json +7 -7
  105. package/templates/apps/frontend-ssr-api/package.json +8 -8
  106. package/templates/apps/frontend-static-blog/package.json +8 -8
  107. package/templates/apps/frontend-status/package.json +8 -8
  108. package/templates/apps/mobile-app/package.json +4 -4
  109. package/dist/apiBuild-CeUN55uk.js +0 -2
  110. package/dist/codegen-DjgxEOnD.js +0 -2
  111. package/dist/dbCommand-CSFWs9ev.js +0 -2
  112. package/dist/doctorCommand-J3qu4E0Y.js +0 -2
  113. package/dist/frameworkTableAssembly-IPD1pUnZ.js +0 -2
  114. package/dist/inspect-CuoDInfZ.js +0 -2
  115. package/dist/interruptedReplace-C3O3M1MM.js +0 -28
  116. package/dist/interruptedReplace-CvmiAM9K.js +0 -2
  117. package/dist/manifestBuild-C4-J1-m_.js +0 -2
  118. package/dist/serveCommand-BiPe8BJm.js +0 -2
  119. package/dist/updateCommand-CIoVDKnj.js +0 -2
@@ -3,51 +3,51 @@ import { t } from "./frameworkInspectState-CX2250XB.js";
3
3
  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
- 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 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
- import { r as P } from "./dialectDriver-czCHYpeH.js";
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";
6
+ import { n as s, t as c } from "./interruptedReplace-CwnkBb2X.js";
7
+ import { $ as l, $t as u, A as d, An as f, At as ee, Bt as te, C as ne, Cn as p, Ct as m, D as re, Dt as h, E as ie, En as ae, Et as oe, F as se, Ft as ce, G as le, Gt as g, H as ue, I as _, It as de, J as fe, Jt as pe, K as me, Kt as he, L as ge, Lt as v, M as y, Mt as _e, N as ve, Nt as ye, O as be, On as xe, Ot as Se, P as Ce, Pt as we, Q as Te, Qt as Ee, R as b, Rt as De, S as Oe, Sn as ke, St as Ae, T as je, Tn as x, Tt as Me, U as Ne, Ut as Pe, Vt as Fe, W as Ie, X as Le, Xt as S, Y as Re, Yt as ze, Z as Be, Zt as Ve, _ as He, _n as C, _t as w, an as Ue, at as We, b as Ge, bt as Ke, c as qe, cn as Je, ct as Ye, d as Xe, dn as Ze, dt as Qe, en as $e, et, fn as tt, ft as nt, g as rt, gn as it, gt as at, h as ot, hn as st, ht as ct, i as lt, in as ut, it as dt, j as ft, jn as pt, jt as T, k as mt, kn as ht, kt as E, ln as gt, lt as _t, m as D, mn as vt, mt as yt, nn as bt, nt as xt, o as O, on as St, ot as Ct, p as wt, pn as Tt, pt as Et, q as Dt, qt as Ot, r as kt, rn as At, rt as jt, sn as Mt, st as Nt, t as k, tn as A, tt as Pt, u as Ft, un as It, ut as j, v as Lt, vn as Rt, vt as zt, w as Bt, wn as Vt, wt as Ht, x as Ut, xn as Wt, xt as Gt, y as Kt, yn as qt, yt as Jt, z as M, zt as Yt } from "./dev-Ca_A_S9v.js";
8
+ import { n as Xt } from "./cliArgs-D4p8n7EE.js";
9
+ import { r as Zt } from "./appPort-B_HpJ_ck.js";
10
+ import { Ut as Qt, Vt as $t } from "./webDev-B7vNj4Bq.js";
11
+ import { r as N } from "./dialectDriver-czCHYpeH.js";
12
+ import { i as P, n as en } from "./connectionConfig-Bk9IC7D0.js";
13
+ import { c as tn, n as nn, o as rn } from "./seedRunner-Dgsiwk_e.js";
14
+ import { d as an, h as on, m as sn, p as cn, r as ln } from "./frameworkTableAssembly-Do-cf6RJ.js";
15
+ import { n as un, r as dn, t as fn } from "./declaredSchemaGates-BlcwObhb.js";
16
+ import { C as pn, a as mn, h as hn, l as gn, n as _n, u as vn, w as yn } from "./fileConventions-l-RIXbx8.js";
17
+ import { h as bn, o as xn } from "./inspect-DCqILJ1G.js";
18
+ import { i as Sn, n as Cn, t as wn } from "./inspectMetrics-CGF94puw.js";
19
+ import { n as Tn } from "./mssqlClusterPatch-_4cE_nun.js";
20
+ import { i as En, n as Dn, r as On, t as kn } from "./webhookDiscovery-CphsQe59.js";
21
+ import { r as An, u as jn } from "./apiBuild-CMvLJM_K.js";
22
+ import { t as Mn } from "./bootTiming-BdyP9nYw.js";
23
+ import { a as Nn, o as Pn, t as Fn } from "./dataProfile-Du3ztYxv.js";
24
+ import F, { basename as In, join as Ln } from "node:path";
25
+ import { createWriteStream as Rn, existsSync as zn } from "node:fs";
26
+ import { pathToFileURL as Bn } from "node:url";
27
+ import { LoggerLayer as Vn, createLogger as I } from "@voltro/logger";
28
+ import { AuthMiddleware as Hn, ConnectionInfoMiddleware as Un, actionToRpc as L, anonymousSubject as Wn, isWireReachable as Gn, mutationToRpc as Kn, queryToRpc as R, streamToRpc as qn, wireErrorUnion as Jn, workflowCancelDescriptor as Yn, workflowDomainEventsQueryDescriptor as z, workflowEventDeliveriesQueryDescriptor as B, workflowResumeDescriptor as Xn, workflowRunEventsQueryDescriptor as Zn, workflowRunQueryDescriptor as Qn, workflowRunStepsQueryDescriptor as $n, workflowRunsQueryDescriptor as er, workflowSignalDescriptor as tr, workflowUpdateDescriptor as nr } from "@voltro/protocol";
29
+ import { DATA_TRANSFERS_TABLE as V, _voltroDataTransfersTable as rr, allRegisteredTables as ir, and as ar, connectionIdentity as or, derivedRowId as sr, describeTransferRun as cr, ensureTableRegistered as lr, eq as H, or as ur } from "@voltro/database";
30
+ import { Cause as dr, Effect as U, Layer as W, ManagedRuntime as fr } from "effect";
31
+ import { SqlClient as pr } from "@effect/sql";
32
+ import { declaredSnapshot as mr, describeOutcome as hr, pendingFileMigrationIds as gr, runPlannedMigrations as _r } from "@voltro/database/sql";
33
+ import { AggregateRegistry as vr, CostRegistry as yr, DORMANCY_WAKEUP_TENANT as br, Dispatcher as xr, ExpectationRegistry as Sr, ExperimentRegistry as Cr, apiKeyManagementRoutes as wr, attachAnalyticsMirror as Tr, attachExpectations as Er, attachExperiments as Dr, attachFinops as Or, awaitServerListening as kr, bindMutation as G, bindStream as Ar, bindSubscription as K, buildTracingLayer as jr, cancelWakeup as Mr, compileCron as Nr, dataStoreApiKeyStore as Pr, formatServerOnlyLeaks as Fr, formatUnresolvedSources as Ir, frameworkApiKeyStrategy as Lr, getResourcePolicy as Rr, installPolicyGuardResolver as zr, loadResourceTuples as Br, makeActionRunner as Vr, makeAdvisoryLockCoordinator as Hr, makeApiKeyService as Ur, makeApiKeyUsageBuffer as Wr, makeApiKeyUsageFlusher as Gr, makeAsyncKv as Kr, makeAuthMiddlewareLayers as qr, makeCoordinatedScheduler as Jr, makeEffectStoreLayer as Yr, makeLazyWorkflowFacade as Xr, makeMutationOutputCodec as Zr, makeMutationRunner as Qr, makeOneShotQueryRunner as $r, makeQueryDescriptorProducer as q, makeQueryFinalizer as ei, makeQueryReauthorizer as ti, makeQuerySubscriber as ni, makeSchemaRegistry as ri, makeWorkflowFacade as ii, makeWorkflowFacadeWithCallerContext as ai, makeWorkflowLayers as oi, noopKv as si, onProcessShutdown as J, recordSubscriptionDelivery as Y, recordWorkflowRun as ci, registerDefaultTupleSource as li, registerWakeup as ui, resolveSecretsBackend as di, runProvidedEffect as fi, setSecretsBackend as pi, setSystemStoreHandle as mi, shutdownGraceMsFromEnv as hi, singleCoordinator as gi, startRpcServer as _i, startScheduler as vi, stripForbiddenForWire as yi, undoCaptureEnabled as bi, unresolvedSources as xi, withScopedRequest as Si, workflowToRpc as Ci, wrapStoreWithBootCodec as wi } from "@voltro/runtime";
34
+ import Ti, { tmpdir as Ei } from "node:os";
35
+ import { RpcGroup as Di } from "@effect/rpc";
36
+ import { appStorageProvider as Oi, durabilityNotice as ki, fromNodeReadable as Ai, getObjectStream as ji, putObjectStream as Mi, toNodeReadable as Ni } from "@voltro/plugin-storage";
37
+ import { isEnvContract as Pi } from "@voltro/env";
38
+ import { assertProductionSessionSecret as Fi } from "@voltro/protocol/session";
39
39
  import X from "node:fs/promises";
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";
40
+ import { createHash as Ii, timingSafeEqual as Li } from "node:crypto";
41
+ import { channelFor as Ri, getBroadcastPlugin as zi } from "@voltro/plugin-broadcast";
42
+ import { buildDeliverWebhookExecute as Bi, buildWebhooksService as Vi, defaultIncomingPath as Hi, deliverWebhookWorkflow as Ui, makeDeferredEmitHandler as Wi, mountIncomingWebhook as Gi } from "@voltro/plugin-webhooks";
43
+ import { getAuthSessionStrategy as Ki } from "@voltro/plugin-auth";
44
+ import { registerEmailTemplates as qi } from "@voltro/plugin-mail";
45
+ import { checkSchemaDrift as Ji, decideStaging as Yi, isEnvironmentLocal as Xi, packBundle as Zi, peekBundle as Qi, runExport as $i, runImport as ea, storageBlobSink as ta, storageRefsBlobSource as na, unpackBundle as ra, unpackBundleToDir as ia } from "@voltro/data-transfer";
46
46
  //#region \0rolldown/runtime.js
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) {
47
+ var aa = /* @__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
- }), aa = () => Math.max(500, Math.floor(mi() * .6)), oa = (e) => new Promise((t) => setTimeout(t, e)), sa = (e) => {
50
+ }), oa = () => Math.max(500, Math.floor(hi() * .6)), sa = (e) => new Promise((t) => setTimeout(t, e)), ca = (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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
61
61
  });
62
62
  });
63
63
  let i, a = async (t = {}) => {
64
- let n = t.budgetMs ?? aa();
64
+ let n = t.budgetMs ?? oa();
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 oa(25), e.closeIdleConnections();
71
+ for (; r > 0 && Date.now() < a;) await sa(25), e.closeIdleConnections();
72
72
  e.closeIdleConnections();
73
73
  }, o = async () => {
74
74
  i ??= new Promise((t) => {
@@ -85,7 +85,7 @@ var ia = /* @__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 oa(25);
88
+ for (let e = 0; t.size > 0 && e < 250; e += 25) await sa(25);
89
89
  for (let e of t) e.destroy();
90
90
  await i;
91
91
  };
@@ -97,83 +97,83 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
97
97
  await a(e), await o();
98
98
  }
99
99
  };
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) => ({
100
+ }, la = "/_voltro/admin/import", ua = "/_voltro/admin/import/start", da = "/_voltro/admin/export", fa = "/_voltro/admin/export/download", pa = "/_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
- }), pa = (e) => {
104
+ }), ma = (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
- }, ma = (e, t) => Ii(Fi("sha256").update(e).digest(), Fi("sha256").update(t).digest()), ha = (e, t, n = "POST") => {
107
+ }, ha = (e, t) => Li(Ii("sha256").update(e).digest(), Ii("sha256").update(t).digest()), ga = (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 = 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()) => {
110
+ let r = ma(e.headers);
111
+ return !r || !ha(r, t) ? Z(401, { error: "unauthorized" }) : null;
112
+ }, _a = /^[A-Za-z0-9_-]{8,64}$/, va = (e) => _a.test(e), ya = () => process.env.VOLTRO_IMPORT_UPLOAD_DIR ?? F.join(Ti.tmpdir(), "voltro-import-uploads"), ba = (e) => F.join(ya(), e), xa = (e) => F.join(ba(e), "archive.bin"), Sa = (e) => F.join(ba(e), "meta.json"), Ca = async (e = Date.now()) => {
113
113
  let t = 0;
114
114
  try {
115
- for (let n of await X.readdir(va())) {
115
+ for (let n of await X.readdir(ya())) {
116
116
  if (n === ".runs") continue;
117
- let r = await X.stat(ya(n)).catch(() => null);
118
- r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(ya(n), {
117
+ let r = await X.stat(ba(n)).catch(() => null);
118
+ r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(ba(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
- }, Ca = async (e) => {
126
- if (!_a(e)) return {
125
+ }, wa = async (e) => {
126
+ if (!va(e)) return {
127
127
  bytes: 0,
128
128
  key: null,
129
129
  runId: null
130
130
  };
131
- let t = await X.stat(ba(e)).catch(() => null);
131
+ let t = await X.stat(xa(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 wa(e);
137
+ let n = await Ta(e);
138
138
  return {
139
139
  bytes: t.size,
140
140
  key: n.key ?? null,
141
141
  runId: n.runId ?? null
142
142
  };
143
- }, wa = async (e) => {
143
+ }, Ta = async (e) => {
144
144
  try {
145
- let t = await X.readFile(xa(e), "utf8");
145
+ let t = await X.readFile(Sa(e), "utf8");
146
146
  return JSON.parse(t);
147
147
  } catch {
148
148
  return {};
149
149
  }
150
- }, Ta = async (e, t) => {
151
- let n = xa(e), r = `${n}.${process.pid}.${Math.random().toString(36).slice(2, 8)}.tmp`;
150
+ }, Ea = async (e, t) => {
151
+ let n = Sa(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
- }, 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, {
153
+ }, Da = async (e, t, n) => {
154
+ if (!va(e)) return t;
155
+ await X.mkdir(ba(e), { recursive: !0 });
156
+ let r = await Ta(e), i = typeof r.runId == "string" && r.runId.length > 0 ? r.runId : null;
157
+ return i !== null && n?.takeOver !== !0 ? i : (await Ea(e, {
158
158
  ...r,
159
159
  runId: t
160
160
  }), t);
161
- }, Da = async (e) => {
162
- if (!_a(e)) return;
163
- let t = await wa(e);
161
+ }, Oa = async (e) => {
162
+ if (!va(e)) return;
163
+ let t = await Ta(e);
164
164
  if (t.runId === void 0) return;
165
165
  let { runId: n, ...r } = t;
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),
166
+ await Ea(e, r).catch(() => void 0);
167
+ }, ka = async (e, t, n) => (await X.mkdir(ba(e), { recursive: !0 }), await X.writeFile(xa(e), Buffer.from(t)), await Ea(e, {
168
+ ...await Ta(e),
169
169
  key: n,
170
170
  startedAt: (/* @__PURE__ */ new Date()).toISOString()
171
- }), t.byteLength), ka = (e) => `up-${Fi("sha256").update(e).digest("hex").slice(0, 32)}`, Aa = async (e) => {
172
- if (!_a(e.id)) return {
171
+ }), t.byteLength), Aa = (e) => `up-${Ii("sha256").update(e).digest("hex").slice(0, 32)}`, ja = async (e) => {
172
+ if (!va(e.id)) return {
173
173
  reason: "bad-id",
174
- message: `upload id must match ${String(ga)}`
174
+ message: `upload id must match ${String(_a)}`
175
175
  };
176
- let t = await Ca(e.id);
176
+ let t = await wa(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 ia = /* @__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(ya(e.id), { recursive: !0 }), t.key === null) {
187
- let t = await wa(e.id);
188
- await Ta(e.id, {
186
+ if (await X.mkdir(ba(e.id), { recursive: !0 }), t.key === null) {
187
+ let t = await Ta(e.id);
188
+ await Ea(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 = In(ba(e.id), { flags: "a" });
195
+ let r = Rn(xa(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
- }, ja = async (e) => {
199
- let t = await X.stat(ba(e));
198
+ }, Ma = async (e) => {
199
+ let t = await X.stat(xa(e));
200
200
  return {
201
- path: ba(e),
201
+ path: xa(e),
202
202
  bytes: t.size
203
203
  };
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);
204
+ }, Na = () => F.join(ya(), ".runs"), Pa = (e) => F.join(Na(), `${e}.bin`), Fa = async (e, t) => {
205
+ if (!va(e)) return null;
206
+ let n = xa(e), r = await X.stat(n).catch(() => null);
207
207
  if (r === null || r.size === 0) return null;
208
- await X.mkdir(Ma(), { recursive: !0 });
209
- let i = Na(t);
208
+ await X.mkdir(Na(), { recursive: !0 });
209
+ let i = Pa(t);
210
210
  return await X.rename(n, i), i;
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) => {
211
+ }, Ia = async (e) => {
212
+ await X.rm(Pa(e), { force: !0 }).catch(() => void 0);
213
+ }, Q = I({ scope: "voltro:admin-import" }), La = "VBUNDLE2", Ra = (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 ia = /* @__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 = Fn(Ti(), `voltro-rollback-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`), r = e.deps.putArchive;
224
+ let n = Ln(Ei(), `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 = 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 });
230
+ let e = ki(n);
231
+ e !== void 0 && Q.warn(`admin.import: ${e}`), await r(t, () => Zi({ dir: n })), Q.info("admin.import: rollback capture stored", { bundleKey: t });
232
232
  }
233
233
  }
234
234
  };
235
- }, Ra = (e) => {
235
+ }, za = (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 ia = /* @__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
- }, za = async (e, t) => {
245
+ }, Ba = 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: ka(r)
252
+ uploadId: Aa(r)
253
253
  };
254
254
  }
255
255
  let n = t.uploadId;
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);
256
+ if (typeof n != "string" || !va(n)) return { refusal: Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" }) };
257
+ let r = await Ma(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: () => Ba(r.path),
262
+ source: () => Va(r.path),
263
263
  transport: "upload",
264
264
  uploadId: n
265
265
  };
266
- }, Ba = (e) => {
267
- let { createReadStream: t } = ia("node:fs");
266
+ }, Va = (e) => {
267
+ let { createReadStream: t } = aa("node:fs");
268
268
  return t(e);
269
- }, Va = (e) => async (t) => {
270
- let n = ha(t, e.secret);
269
+ }, Ha = (e) => async (t) => {
270
+ let n = ga(t, e.secret);
271
271
  if (n) return n;
272
- let r = Ra(t.headers), i = La({
272
+ let r = za(t.headers), i = Ra({
273
273
  req: t,
274
274
  mode: r.mode,
275
275
  deps: e
@@ -283,16 +283,16 @@ var ia = /* @__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 Ha(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 Ua(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 = Ji({
290
+ let o = Yi({
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: Yi,
295
+ isSkipped: Xi,
296
296
  canRunSql: !0
297
297
  });
298
298
  return Z(200, {
@@ -311,8 +311,8 @@ var ia = /* @__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 (Sa(), t.headers["x-import-probe"] === "1") {
315
- let e = await Ca(a);
314
+ if (Ca(), t.headers["x-import-probe"] === "1") {
315
+ let e = await wa(a);
316
316
  return Z(200, {
317
317
  uploadId: a,
318
318
  bytes: e.bytes,
@@ -321,7 +321,7 @@ var ia = /* @__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 Aa({
324
+ let r = await ja({
325
325
  id: a,
326
326
  key: e,
327
327
  offset: n,
@@ -343,12 +343,12 @@ var ia = /* @__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") === Ia) {
347
- Sa();
348
- let e = Fi("sha256").update(Buffer.from(t.rawBody)).digest("hex"), n = ka(e);
346
+ if (t.rawBody.byteLength >= 8 && Buffer.from(t.rawBody.subarray(0, 8)).toString("latin1") === La) {
347
+ Ca();
348
+ let e = Ii("sha256").update(Buffer.from(t.rawBody)).digest("hex"), n = Aa(e);
349
349
  return Z(202, {
350
350
  uploadId: n,
351
- bytes: await Oa(n, t.rawBody, e),
351
+ bytes: await ka(n, t.rawBody, e),
352
352
  complete: !0
353
353
  });
354
354
  }
@@ -359,22 +359,22 @@ var ia = /* @__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: ka(o.bundleKey),
362
+ uploadId: Aa(o.bundleKey),
363
363
  bundleKey: o.bundleKey,
364
364
  complete: !0
365
365
  }) : Z(501, { error: "storage transport not configured on this instance" });
366
- }, Ha = async (e) => {
367
- let t = await Zi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => void 0);
366
+ }, Ua = async (e) => {
367
+ let t = await Qi(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
- }, Ua = (e) => async (t) => {
375
- let n = ha(t, e.secret);
374
+ }, Wa = (e) => async (t) => {
375
+ let n = ga(t, e.secret);
376
376
  if (n) return n;
377
- let r = Ra(t.headers), i = La({
377
+ let r = za(t.headers), i = Ra({
378
378
  req: t,
379
379
  mode: r.mode,
380
380
  deps: e
@@ -386,12 +386,12 @@ var ia = /* @__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 !== "" ? 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);
389
+ let o = typeof a.bundleKey == "string" && a.bundleKey !== "" ? Aa(a.bundleKey) : typeof a.uploadId == "string" ? a.uploadId : "";
390
+ if (!va(o)) return Z(400, { error: "start needs { uploadId } from an upload, or { bundleKey } for the storage transport" });
391
+ let s = sr("dimp", `${o}-${Date.now()}-${Math.random()}`), c = await Da(o, s);
392
392
  if (c !== s) {
393
- let t = await jn(e.store, c);
394
- if (Mn(t) === void 0 && t !== null) return Q.info("admin.import start: already running", {
393
+ let t = await Nn(e.store, c);
394
+ if (Pn(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 ia = /* @__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: Mn(t) ?? "no record"
406
- }), c = await Ea(o, s, { takeOver: !0 });
405
+ outcome: Pn(t) ?? "no record"
406
+ }), c = await Da(o, s, { takeOver: !0 });
407
407
  }
408
- let l = async (e) => (await Da(o).catch(() => void 0), e), u = await za(e, {
408
+ let l = async (e) => (await Oa(o).catch(() => void 0), e), u = await Ba(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 Wa(u.source());
414
+ let t = await Ga(u.source());
415
415
  if (t !== null) {
416
- let n = qi(t.source?.schemaFingerprint ?? "", e.snapshot, Ga(t));
416
+ let n = Ji(t.source?.schemaFingerprint ?? "", e.snapshot, Ka(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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
428
428
  }
429
429
  }
430
430
  let d = null;
431
- if (u.transport === "upload" && (d = await Pa(u.uploadId, c), d === null)) return l(Z(409, {
431
+ if (u.transport === "upload" && (d = await Fa(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 Ka(e.store, {
435
+ let f = await qa(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 qa({
441
+ return Ja({
442
442
  deps: e,
443
443
  opts: r,
444
444
  rollback: i,
@@ -446,7 +446,7 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
446
446
  traced: f,
447
447
  resolved: d === null ? u : {
448
448
  ...u,
449
- source: () => Ba(d)
449
+ source: () => Va(d)
450
450
  }
451
451
  }), Q.info("admin.import started", {
452
452
  runId: c,
@@ -465,15 +465,15 @@ var ia = /* @__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
- }, Wa = async (e) => {
469
- let t = await Zi(e, ["manifest.json"]).then((e) => e.get("manifest.json"), () => null);
468
+ }, Ga = async (e) => {
469
+ let t = await Qi(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
- }, Ga = (e) => ({ tables: (e.tables ?? []).map((e) => ({
476
+ }, Ka = (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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
483
483
  unique: !1,
484
484
  hasDefault: !1
485
485
  }))
486
- })) }), Ka = async (e, t) => {
486
+ })) }), qa = async (e, t) => {
487
487
  try {
488
- return sr(tr), await e.insert(H, {
488
+ return lr(rr), await e.insert(V, {
489
489
  id: t.runId,
490
490
  direction: "import",
491
491
  startedAt: /* @__PURE__ */ new Date(),
@@ -505,23 +505,23 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
505
505
  error: e?.message ?? String(e)
506
506
  }), !1;
507
507
  }
508
- }, qa = async (e) => {
508
+ }, Ja = 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,
512
512
  transport: i.transport,
513
513
  error: n
514
- }), e.traced && await t.store.update(H, a, {
514
+ }), e.traced && await t.store.update(V, a, {
515
515
  failure: n,
516
516
  finishedAt: null
517
517
  }).then(() => void 0, () => void 0);
518
518
  };
519
519
  try {
520
- t.assetSink ? await na(i.source(), {
520
+ t.assetSink ? await ra(i.source(), {
521
521
  dir: l,
522
522
  blobs: t.assetSink
523
- }) : await ra(i.source(), l);
524
- let o = await W.runPromiseExit($i({
523
+ }) : await ia(i.source(), l);
524
+ let o = await U.runPromiseExit(ea({
525
525
  store: t.store,
526
526
  bundleDir: l,
527
527
  ...n.mode ? { mode: n.mode } : {},
@@ -566,24 +566,24 @@ var ia = /* @__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 Fa(a).catch(() => void 0), await Da(i.uploadId).catch(() => void 0);
569
+ }).catch(() => void 0), await Ia(a).catch(() => void 0), await Oa(i.uploadId).catch(() => void 0);
570
570
  }
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()) => {
571
+ }, Ya = /^[A-Za-z0-9_-]{8,64}$/, Xa = (e) => Ya.test(e), Za = () => process.env.VOLTRO_EXPORT_ARTIFACT_DIR ?? F.join(Ti.tmpdir(), "voltro-export-artifacts"), Qa = (e) => F.join(Za(), e), $a = (e) => F.join(Qa(e), "archive.bin"), eo = async (e = Date.now()) => {
572
572
  let t = 0;
573
573
  try {
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), {
574
+ for (let n of await X.readdir(Za())) {
575
+ let r = await X.stat(Qa(n)).catch(() => null);
576
+ r !== null && (e - r.mtimeMs <= 864e5 || (await X.rm(Qa(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
- }, 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;
583
+ }, to = async (e, t) => {
584
+ if (!Xa(e)) throw Error(`invalid run id: ${e}`);
585
+ await X.mkdir(Qa(e), { recursive: !0 });
586
+ let { createWriteStream: n } = await import("node:fs"), r = n($a(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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
594
594
  });
595
595
  }
596
596
  return i;
597
- }, to = async (e) => {
598
- if (!Ya(e)) return null;
599
- let t = await X.stat(Qa(e)).catch(() => null);
597
+ }, no = async (e) => {
598
+ if (!Xa(e)) return null;
599
+ let t = await X.stat($a(e)).catch(() => null);
600
600
  return t === null ? null : t.size;
601
- }, no = async (e, t, n) => {
602
- let r = await to(e);
601
+ }, ro = async (e, t, n) => {
602
+ let r = await no(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(Qa(e), "r");
608
+ let i = await X.open($a(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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
615
615
  } finally {
616
616
  await i.close();
617
617
  }
618
- }, ro = async (e) => {
619
- Ya(e) && await X.rm(Za(e), {
618
+ }, io = async (e) => {
619
+ Xa(e) && await X.rm(Qa(e), {
620
620
  recursive: !0,
621
621
  force: !0
622
622
  }).catch(() => void 0);
623
- }, io = L({ scope: "voltro:admin-export" }), ao = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], oo = (e) => {
623
+ }, ao = I({ scope: "voltro:admin-export" }), oo = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], so = (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: ao(e.tables)
630
+ tables: oo(e.tables)
631
631
  };
632
- let t = ao(e.exclude);
632
+ let t = oo(e.exclude);
633
633
  return t.length > 0 ? {
634
634
  kind: "all",
635
635
  exclude: t
636
636
  } : { kind: "all" };
637
- }, so = (e) => async (t) => {
638
- let n = ha(t, e.secret);
637
+ }, co = (e) => async (t) => {
638
+ let n = ga(t, e.secret);
639
639
  if (n) return n;
640
640
  let r;
641
641
  try {
@@ -655,12 +655,12 @@ var ia = /* @__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 ?? 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, {
658
+ let a = r.consistency === "snapshot" ? "snapshot" : i.consistency ?? "live", o = (typeof r.compression == "string" ? r.compression : void 0) ?? i.compression, s = i.scope ?? so(r), c = typeof r.bundleKey == "string" && r.bundleKey.length > 0, l = r.assets === !0 && e.assetSource ? { blobs: e.assetSource } : {}, u = sr("dexp", `${Date.now()}-${Math.random()}`), d = await lo(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 lo({
663
+ return uo({
664
664
  deps: e,
665
665
  runId: u,
666
666
  recorded: d,
@@ -670,7 +670,7 @@ var ia = /* @__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
- }), $a(), io.info("admin.export started", {
673
+ }), eo(), ao.info("admin.export started", {
674
674
  runId: u,
675
675
  scope: s.kind,
676
676
  storage: c
@@ -681,9 +681,9 @@ var ia = /* @__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
- }, co = async (e, t) => {
684
+ }, lo = async (e, t) => {
685
685
  try {
686
- return sr(tr), await e.insert(H, {
686
+ return lr(rr), await e.insert(V, {
687
687
  id: t.runId,
688
688
  direction: "export",
689
689
  startedAt: /* @__PURE__ */ new Date(),
@@ -698,17 +698,17 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
698
698
  staged: null
699
699
  }), !0;
700
700
  } catch (e) {
701
- return io.warn("admin.export: the run could not be recorded", {
701
+ return ao.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
- }, lo = async (e) => {
706
+ }, uo = 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
- e.recorded && await t.store.update(H, n, r).then(() => void 0, () => void 0);
708
+ e.recorded && await t.store.update(V, n, r).then(() => void 0, () => void 0);
709
709
  };
710
710
  try {
711
- let r = await W.runPromise(Qi({
711
+ let r = await U.runPromise($i({
712
712
  store: t.store,
713
713
  snapshot: t.snapshot,
714
714
  dialect: t.dialect,
@@ -723,16 +723,16 @@ var ia = /* @__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, () => Xi({
726
+ await t.putArchive(e.bundleKey, () => Zi({
727
727
  dir: o,
728
728
  ...e.blobs
729
729
  }));
730
730
  }
731
- let c = await eo(n, Xi({
731
+ let c = await to(n, Zi({
732
732
  dir: o,
733
733
  ...e.blobs
734
734
  }));
735
- io.info("admin.export complete", {
735
+ ao.info("admin.export complete", {
736
736
  runId: n,
737
737
  tables: r.tables.length,
738
738
  rows: i,
@@ -748,25 +748,25 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
748
748
  });
749
749
  } catch (e) {
750
750
  let t = e?.message ?? String(e);
751
- io.warn("admin.export failed", {
751
+ ao.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 ro(n);
757
+ }), await io(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
- }, uo = (e) => async (t) => {
765
- let n = ha(t, e.secret, "GET");
764
+ }, fo = (e) => async (t) => {
765
+ let n = ga(t, e.secret, "GET");
766
766
  if (n) return n;
767
767
  let r = new URLSearchParams(t.query ?? ""), i = r.get("runId") ?? "";
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);
768
+ if (!Xa(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 ro(i, a, Number.isFinite(o) && o > 0 ? Math.min(o, mo) : po);
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,8 +780,8 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
780
780
  "x-export-length": String(s.bytes.byteLength)
781
781
  }
782
782
  };
783
- }, fo = 8388608, po = 33554432, mo = async (e, t) => await e.query({
784
- table: H,
783
+ }, po = 8388608, mo = 33554432, ho = async (e, t) => await e.query({
784
+ table: V,
785
785
  order: [{
786
786
  column: "startedAt",
787
787
  direction: "desc"
@@ -790,23 +790,23 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
790
790
  projection: void 0,
791
791
  skip: 0,
792
792
  take: t
793
- }), ho = (e) => {
793
+ }), go = (e) => {
794
794
  let t = new Date(e);
795
795
  return Number.isFinite(t.getTime()) ? t : /* @__PURE__ */ new Date(0);
796
- }, go = (e) => ({
796
+ }, _o = (e) => ({
797
797
  ...e,
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");
798
+ startedAt: go(e.startedAt),
799
+ finishedAt: e.finishedAt === null || e.finishedAt === void 0 ? null : go(e.finishedAt)
800
+ }), vo = (e) => async (t) => {
801
+ let n = ga(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 mo(e.store, i)).map(go);
805
+ a = (await ho(e.store, i)).map(_o);
806
806
  } catch (e) {
807
807
  return Z(409, {
808
808
  error: "no import history",
809
- message: `this instance has no \`${H}\` table, so no import has been recorded. Run \`voltro db apply\` against it; imports themselves are unaffected.`,
809
+ message: `this instance has no \`${V}\` table, so no import has been recorded. Run \`voltro db apply\` against it; imports themselves are unaffected.`,
810
810
  detail: e?.message ?? String(e)
811
811
  });
812
812
  }
@@ -825,11 +825,11 @@ var ia = /* @__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: or(e)
828
+ line: cr(e)
829
829
  }))
830
830
  });
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 = () => {
831
+ }, yo = (e, t, n = {}) => (async function* () {
832
+ let r = await U.runPromise(ji(e, t).pipe(U.timeout(n.openTimeout ?? "30 seconds"))), i = await Ni(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 ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
838
838
  } finally {
839
839
  o && clearTimeout(o), i.destroy();
840
840
  }
841
- })(), yo = {
841
+ })(), bo = {
842
842
  get: async () => void 0,
843
843
  set: async () => {},
844
844
  setWithTags: async () => {},
@@ -847,15 +847,15 @@ var ia = /* @__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
- }, bo = async (e) => {
851
- Ne(e.appProcedures ?? e.discovered, {
850
+ }, xo = async (e) => {
851
+ Fe(e.appProcedures ?? e.discovered, {
852
852
  defaultDeny: e.security?.defaultDeny ?? !0,
853
853
  commandHint: "`voltro serve`"
854
- }), pi({
854
+ }), mi({
855
855
  dataStore: e.store,
856
856
  schemaRegistry: e.schemaRegistry
857
857
  });
858
- let t = (e.discovered.budgets?.length ?? 0) > 0, n, r = new yr({
858
+ let t = (e.discovered.budgets?.length ?? 0) > 0, n, r = new xr({
859
859
  crdtColumnsOf: (t) => e.schemaRegistry.crdtColumns(t),
860
860
  store: e.store,
861
861
  ...e.snapshotCache ? { cache: e.snapshotCache } : {},
@@ -867,43 +867,43 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
867
867
  durationMs: e.durationMs,
868
868
  rowCount: e.rowCount
869
869
  })
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({
870
+ }), i = e.cache ?? bo, a = e.kv ?? si, o, s = () => void 0, c, d, f, ee, te, ne, p, re = I({ scope: "voltro:workflow" }), ie = I({ scope: "voltro:schedule" }), ae = Ot({
871
871
  store: e.store,
872
- warn: (e, t) => g.warn(e, t)
873
- }), ae = ie.remember, oe = ie.resolve, ce = de({
872
+ warn: (e, t) => re.warn(e, t)
873
+ }), oe = ae.remember, se = ae.resolve, ce = pe({
874
874
  authority: e.authority,
875
875
  getStore: () => e.store
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
- if (x && x.outgoing.length > 0 && e.workflowEngineLayer !== void 0) {
876
+ }), g = (e.discovered.workflows?.length ?? 0) > 0 ? Xr(() => o) : void 0, fe = (e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.eventTriggers?.length ?? 0) > 0, he = fe || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster", be = e.tenantIsolation === "namespace", xe = (e.log ?? I({ scope: "voltro:serve" })).child("webhooks"), we, Ee, b = e.discovered.webhooks;
877
+ if (b && b.outgoing.length > 0 && e.workflowEngineLayer !== void 0) {
878
878
  e.workflowEngineLayer;
879
- let t = Xe({
879
+ let t = Ze({
880
880
  store: e.store,
881
881
  schemaRegistry: e.schemaRegistry,
882
882
  cache: i,
883
883
  kv: a
884
- }), n = x.outgoing.map((e) => e.descriptor);
885
- Te = Hi.toLayer(zi(t, { events: n })), we = Bi(t, async (e) => {
884
+ }), n = b.outgoing.map((e) => e.descriptor);
885
+ Ee = Ui.toLayer(Bi(t, { events: n })), we = Vi(t, async (e) => {
886
886
  let t = f;
887
887
  if (t === void 0) {
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.", {
888
+ xe.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(Hi.execute(e)).catch((t) => {
895
- Se.error("deliverWebhook workflow crashed", {
894
+ t.runPromise(Ui.execute(e)).catch((t) => {
895
+ xe.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 Ee = /* @__PURE__ */ new Map();
903
- if (x) for (let e of x.incoming) {
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, {
902
+ let De = /* @__PURE__ */ new Map();
903
+ if (b) for (let e of b.incoming) {
904
+ let t = e.descriptor.path ?? Hi(e.descriptor.id), n = `VOLTRO_WEBHOOK_SECRET_${e.descriptor.id.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`, r = Gi(e.descriptor, {
905
905
  resolveSecret: async () => process.env[n] ?? null,
906
- resolveWorkflows: () => v === void 0 ? void 0 : ri(v, {
906
+ resolveWorkflows: () => g === void 0 ? void 0 : ai(g, {
907
907
  traceId: `incoming:${e.descriptor.id}`,
908
908
  source: `incoming:${e.descriptor.id}`
909
909
  }),
@@ -915,34 +915,34 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
915
915
  idempotency: e.idempotency,
916
916
  durationMs: e.durationMs
917
917
  };
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);
918
+ e.status >= 500 ? xe.error("incoming delivery failed", t) : e.status >= 400 ? xe.warn("incoming delivery rejected", t) : xe.info("incoming delivery handled", t);
919
919
  }
920
920
  });
921
- Ee.set(t, { handle: r });
921
+ De.set(t, { handle: r });
922
922
  }
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), []) ? [{
923
+ zr(), li((t) => Br(e.store, t.subjectId, t.resourceType, t.resourceId)) || I({ scope: "voltro:serve" }).info("policy guards: using the app-registered tuple source");
924
+ let Oe = [], ke = [...e.discovered.outboxHandlers ?? [], ...Dn((b?.outgoing.length ?? 0) + (b?.incoming.length ?? 0) + (b?.providers.length ?? 0), []) ? [{
925
925
  file: "<framework>/webhooks",
926
926
  id: "voltro-webhook-emit",
927
- definition: Ui(() => we)
928
- }] : []], Ae = ke.length > 0 ? l({
927
+ definition: Wi(() => we)
928
+ }] : []], je = ke.length > 0 ? u({
929
929
  handlers: ke,
930
930
  store: e.store,
931
- log: (e.log ?? L({ scope: "voltro:serve" })).child("outbox"),
931
+ log: (e.log ?? I({ scope: "voltro:serve" })).child("outbox"),
932
932
  onChange: (t) => e.store.onChange((e) => t({
933
933
  table: e.table,
934
934
  op: e.op
935
935
  })),
936
936
  onShutdown: (e) => {
937
- De.push(e);
937
+ Oe.push(e);
938
938
  }
939
- }) : void 0, S = C({
939
+ }) : void 0, x = S({
940
940
  definitions: (e.discovered.connections ?? []).map((e) => e.definition),
941
941
  store: e.store,
942
- publicUrl: Le(e.port ?? 4e3),
943
- log: (e.log ?? L({ scope: "voltro:serve" })).child("connections")
942
+ publicUrl: ze(e.port ?? 4e3),
943
+ log: (e.log ?? I({ scope: "voltro:serve" })).child("connections")
944
944
  });
945
- b({
945
+ y({
946
946
  events: e.discovered.events ?? [],
947
947
  rpcTags: [
948
948
  ...e.discovered.queries.map((e) => e.descriptor.name),
@@ -951,66 +951,66 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
951
951
  ...(e.discovered.streams ?? []).map((e) => e.descriptor.name)
952
952
  ]
953
953
  });
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,
954
+ let Me = (e.log ?? I({ scope: "voltro:serve" })).child("events"), Pe = e.broadcastNamespace ?? He(e.plugins, void 0), Le = Lt(e.plugins, Pe, Me), Be = e.membership?.instanceId ?? process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Ve = e.membership ?? Kt(e.plugins, {
955
+ instanceId: Be,
956
+ namespace: Pe,
957
957
  meta: { mode: "serve" },
958
958
  logger: Me
959
- }), He = ge({
959
+ }), C = ve({
960
960
  events: e.discovered.events ?? [],
961
- origin: ze,
962
- ...Re.publishRemote === void 0 ? {} : { publishRemote: Re.publishRemote }
963
- }), Ue = (e.discovered.events ?? []).length > 0 ? await Re.attach(He.bus) : null, We = Pt({
961
+ origin: Be,
962
+ ...Le.publishRemote === void 0 ? {} : { publishRemote: Le.publishRemote }
963
+ }), Ue = (e.discovered.events ?? []).length > 0 ? await Le.attach(C.bus) : null, We = It({
964
964
  store: e.store,
965
965
  schemaRegistry: e.schemaRegistry,
966
966
  cache: i,
967
967
  kv: a,
968
968
  ...we === void 0 ? {} : { webhooksService: we },
969
- ...v === void 0 ? {} : { workflowsProxy: v },
969
+ ...g === void 0 ? {} : { workflowsProxy: g },
970
970
  eventTriggers: e.discovered.eventTriggers ?? [],
971
- namespaceIsolationOn: ye,
971
+ namespaceIsolationOn: be,
972
972
  ...e.ensureTenantProvisioned === void 0 ? {} : { ensureTenantProvisioned: e.ensureTenantProvisioned },
973
973
  ...e.resolveResidentStore === void 0 ? {} : { resolveResidentStore: e.resolveResidentStore },
974
- ...Ae === void 0 ? {} : { outbox: { nudge: Ae.nudge } },
975
- ...S.active ? { connections: { registry: S.registry } } : {},
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
- let r = t.pipe(W.provide(qr(n)));
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) => {
974
+ ...je === void 0 ? {} : { outbox: { nudge: je.nudge } },
975
+ ...x.active ? { connections: { registry: x.registry } } : {},
976
+ eventBus: C.bus
977
+ }), Ge = W.succeed(vr, Se), Ke = W.succeed(Sr, Ae), qe = W.succeed(yr, Gt), Je = W.succeed(Cr, m), Ye = (t, n) => {
978
+ let r = t.pipe(U.provide(Yr(n)));
979
+ return (e.baseLayer ? r.pipe(U.provide(e.baseLayer)) : r).pipe(U.provide(Ge)).pipe(U.provide(Ke)).pipe(U.provide(qe)).pipe(U.provide(Je));
980
+ }, Xe = (e, t) => {
981
981
  let n = Ye(e, t);
982
- return di(n);
983
- }, nt = Sn(), rt = Ie(e.plugins ?? [], nt), it = le({
982
+ return fi(n);
983
+ }, tt = wn(), rt = Re(e.plugins ?? [], tt), it = ue({
984
984
  plugins: e.plugins ?? [],
985
- metrics: nt,
986
- log: e.log ?? L({ scope: "voltro:serve" })
987
- }), at = Tt(e.plugins ?? [], nt), ot = e.security?.defaultDeny ?? !0, st = Xr({
985
+ metrics: tt,
986
+ log: e.log ?? I({ scope: "voltro:serve" })
987
+ }), at = Dt(e.plugins ?? [], tt), ot = e.security?.defaultDeny ?? !0, st = Qr({
988
988
  store: e.store,
989
989
  defaultDeny: ot,
990
990
  recordMetric: (e) => {
991
- nt.record(e);
991
+ tt.record(e);
992
992
  },
993
993
  ...rt.mutation === void 0 ? {} : { interceptor: rt.mutation },
994
994
  buildContext: (e, t, n) => We(e, t, n),
995
- runEffect: et,
996
- undoCapture: $e((t) => e.schemaRegistry.crdtColumns(t))
997
- }), ct = c();
995
+ runEffect: Xe,
996
+ undoCapture: et((t) => e.schemaRegistry.crdtColumns(t))
997
+ }), ct = l();
998
998
  {
999
- let t = Nt();
1000
- t !== void 0 && (e.log ?? L({ scope: "voltro:serve" })).info(t);
999
+ let t = Pt();
1000
+ t !== void 0 && (e.log ?? I({ scope: "voltro:serve" })).info(t);
1001
1001
  }
1002
- let ut = Ce({
1002
+ let lt = Te({
1003
1003
  store: e.store,
1004
1004
  ...e.approvals === void 0 ? {} : { defaultExpiryMs: e.approvals.defaultExpiryMs }
1005
- }), dt = zr({
1005
+ }), dt = Vr({
1006
1006
  defaultDeny: ot,
1007
1007
  buildContext: (e) => We(e),
1008
- runEffect: et,
1008
+ runEffect: Xe,
1009
1009
  recordMetric: (e) => {
1010
- nt.record(e);
1010
+ tt.record(e);
1011
1011
  },
1012
1012
  ...rt.action === void 0 ? {} : { interceptor: rt.action }
1013
- }), ft = Qr({
1013
+ }), ft = ei({
1014
1014
  tenantScopedTables: e.tenantScopedTables,
1015
1015
  softDeleteScopedTables: e.softDeleteScopedTables
1016
1016
  }), pt = {
@@ -1019,32 +1019,32 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1019
1019
  finalize: (e, t) => ft(e, t.subject),
1020
1020
  provideEffect: Ye,
1021
1021
  ...rt.query === void 0 ? {} : { interceptor: rt.query }
1022
- }, T = J(pt), mt = Zr({
1022
+ }, T = q(pt), mt = $r({
1023
1023
  ...pt,
1024
- queryRows: (t, n) => e.store.query(t).then((e) => vi(t.table, e, n.subject))
1025
- }), ht = ei({
1024
+ queryRows: (t, n) => e.store.query(t).then((e) => yi(t.table, e, n.subject))
1025
+ }), ht = ni({
1026
1026
  ...pt,
1027
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) => Un(e.descriptor)), D = {};
1029
+ }), E = (e) => e.filter((e) => Gn(e.descriptor)), D = {};
1030
1030
  for (let t of [
1031
1031
  ...E(e.discovered.queries),
1032
1032
  ...ct.queries,
1033
- ...ut.queries,
1034
- ...S.queries
1035
- ]) D[t.descriptor.name] = (e) => q(T(t, e), r, `subscription.${t.descriptor.name}`, void 0, void 0, $r(t, e));
1033
+ ...lt.queries,
1034
+ ...x.queries
1035
+ ]) D[t.descriptor.name] = (e) => K(T(t, e), r, `subscription.${t.descriptor.name}`, void 0, void 0, ti(t, e));
1036
1036
  for (let t of [
1037
1037
  ...E(e.discovered.mutations),
1038
1038
  ...ct.mutations,
1039
- ...ut.mutations,
1040
- ...S.mutations
1039
+ ...lt.mutations,
1040
+ ...x.mutations
1041
1041
  ]) {
1042
- let n = Yr(t.descriptor.output);
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"));
1042
+ let n = Zr(t.descriptor.output);
1043
+ D[t.descriptor.name] = (r) => G(async (e, n) => st(t, e, n), r, `mutation.${t.descriptor.name}`, n, e.idempotency, Jn(t.descriptor, "mutation"));
1044
1044
  }
1045
- for (let t of [...E(e.discovered.actions), ...S.actions]) {
1046
- let n = Yr(t.descriptor.output);
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"));
1045
+ for (let t of [...E(e.discovered.actions), ...x.actions]) {
1046
+ let n = Zr(t.descriptor.output);
1047
+ D[t.descriptor.name] = (r) => G(async (e, n) => dt(t, e, n), r, `action.${t.descriptor.name}`, n, e.idempotency, Jn(t.descriptor, "action"));
1048
1048
  }
1049
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) => ({
@@ -1073,7 +1073,7 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1073
1073
  })
1074
1074
  }))
1075
1075
  ], bt = {
1076
- candidates: y({
1076
+ candidates: v({
1077
1077
  queries: e.discovered.queries,
1078
1078
  mutations: e.discovered.mutations,
1079
1079
  actions: e.discovered.actions,
@@ -1126,7 +1126,7 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1126
1126
  })
1127
1127
  }))
1128
1128
  ];
1129
- await Ht({
1129
+ await Wt({
1130
1130
  config: e.grpc.config,
1131
1131
  candidates: n,
1132
1132
  resolveSubject: async (t) => {
@@ -1138,106 +1138,106 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1138
1138
  },
1139
1139
  store: e.store,
1140
1140
  root: e.grpc.root,
1141
- log: e.log ?? L({ scope: "voltro:serve" }),
1142
- onShutdown: (e) => oi(e)
1141
+ log: e.log ?? I({ scope: "voltro:serve" }),
1142
+ onShutdown: (e) => J(e)
1143
1143
  });
1144
1144
  }
1145
- let O = lt({
1145
+ let xt = ut({
1146
1146
  ...e.restRoutes === void 0 ? {} : { restRoutes: e.restRoutes },
1147
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
- log: e.log ?? L({ scope: "voltro:serve" })
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 ? [
1151
+ log: e.log ?? I({ scope: "voltro:serve" })
1152
+ }), O = e.dataTransferSecret ?? process.env.VOLTRO_DATA_TRANSFER_SECRET, Ct = async (e, t) => {
1153
+ let { Readable: n } = await import("node:stream"), r = Oi(), i = Ai("storage", () => n.from(t()));
1154
+ await U.runPromise(Mi(r, e, i, { contentType: "application/octet-stream" }));
1155
+ }, wt = O && O.length >= 16 ? [
1156
1156
  {
1157
1157
  method: "POST",
1158
- path: ca,
1159
- handle: Va({
1160
- secret: k,
1158
+ path: la,
1159
+ handle: Ha({
1160
+ secret: O,
1161
1161
  store: e.store,
1162
1162
  ...e.dataTransferSnapshot ? { snapshot: e.dataTransferSnapshot } : {},
1163
1163
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {},
1164
- assetSink: ea(Di()),
1165
- openArchive: (e) => vo(Di(), e),
1164
+ assetSink: ta(Oi()),
1165
+ openArchive: (e) => yo(Oi(), e),
1166
1166
  refreshSubscriptions: (e) => {
1167
1167
  r.refreshAll(e);
1168
1168
  },
1169
- putArchive: St,
1169
+ putArchive: Ct,
1170
1170
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {}
1171
1171
  })
1172
1172
  },
1173
1173
  {
1174
1174
  method: "POST",
1175
- path: la,
1176
- handle: Ua({
1177
- secret: k,
1175
+ path: ua,
1176
+ handle: Wa({
1177
+ secret: O,
1178
1178
  store: e.store,
1179
1179
  ...e.dataTransferSnapshot ? { snapshot: e.dataTransferSnapshot } : {},
1180
1180
  ...e.dataTransferDialect ? { dialect: e.dataTransferDialect } : {},
1181
- assetSink: ea(Di()),
1182
- openArchive: (e) => vo(Di(), e),
1181
+ assetSink: ta(Oi()),
1182
+ openArchive: (e) => yo(Oi(), e),
1183
1183
  refreshSubscriptions: (e) => {
1184
1184
  r.refreshAll(e);
1185
1185
  },
1186
- putArchive: St
1186
+ putArchive: Ct
1187
1187
  })
1188
1188
  },
1189
1189
  {
1190
1190
  method: "GET",
1191
- path: fa,
1192
- handle: _o({
1193
- secret: k,
1191
+ path: pa,
1192
+ handle: vo({
1193
+ secret: O,
1194
1194
  store: e.store
1195
1195
  })
1196
1196
  },
1197
1197
  {
1198
1198
  method: "GET",
1199
- path: da,
1200
- handle: uo({ secret: k })
1199
+ path: fa,
1200
+ handle: fo({ secret: O })
1201
1201
  },
1202
1202
  {
1203
1203
  method: "POST",
1204
- path: ua,
1205
- handle: so({
1206
- secret: k,
1204
+ path: da,
1205
+ handle: co({
1206
+ secret: O,
1207
1207
  store: e.store,
1208
1208
  snapshot: e.dataTransferSnapshot ?? { tables: [] },
1209
1209
  dialect: e.dataTransferDialect ?? "memory",
1210
1210
  tenantTables: [...e.tenantScopedTables],
1211
- loadProfile: Nn,
1212
- assetSource: ta(Di(), e.store),
1213
- putArchive: St
1211
+ loadProfile: Fn,
1212
+ assetSource: na(Oi(), e.store),
1213
+ putArchive: Ct
1214
1214
  })
1215
1215
  }
1216
- ] : [], Dt = [
1216
+ ] : [], Tt = [
1217
1217
  ...e.httpRoutes ?? [],
1218
- ...O.httpRoutes,
1219
- ...Ct,
1220
- ...S.httpRoutes
1218
+ ...xt.httpRoutes,
1219
+ ...wt,
1220
+ ...x.httpRoutes
1221
1221
  ];
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) => {
1222
+ Object.assign(D, C.handlers);
1223
+ for (let t of E(e.discovered.streams ?? [])) D[t.descriptor.name] = (n) => Ar((r) => Si(r, (r) => {
1224
1224
  let i = We(r), a = t.executor(n, i);
1225
- if (W.isEffect(a)) {
1226
- let t = a.pipe(W.provide(qr(i.store)));
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));
1225
+ if (U.isEffect(a)) {
1226
+ let t = a.pipe(U.provide(Yr(i.store)));
1227
+ return (e.baseLayer ? t.pipe(U.provide(e.baseLayer)) : t).pipe(U.provide(Ge)).pipe(U.provide(Ke)).pipe(U.provide(qe)).pipe(U.provide(Je));
1228
1228
  }
1229
- return typeof a == "object" && a && typeof a.then == "function" ? W.promise(() => a) : a;
1229
+ return typeof a == "object" && a && typeof a.then == "function" ? U.promise(() => a) : a;
1230
1230
  }), `stream.${t.descriptor.name}`);
1231
- for (let t of e.discovered.workflows ?? []) D[t.definition.name] = (e) => K(async (e, n) => {
1231
+ for (let t of e.discovered.workflows ?? []) D[t.definition.name] = (e) => G(async (e, n) => {
1232
1232
  let r = n;
1233
- return ri(v, {
1233
+ return ai(g, {
1234
1234
  subject: r.subject,
1235
1235
  traceId: r.traceId,
1236
1236
  source: "workflow-rpc"
1237
1237
  }).start(t.definition.name, e);
1238
1238
  }, e, `workflow.${t.definition.name}`);
1239
- pe && (D[Xn.name] = (e) => q(T({
1240
- descriptor: Xn,
1239
+ fe && (D[Qn.name] = (e) => K(T({
1240
+ descriptor: Qn,
1241
1241
  executor: (e) => {
1242
1242
  let t = e.id;
1243
1243
  return {
@@ -1246,30 +1246,30 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1246
1246
  column: "startedAt",
1247
1247
  direction: "desc"
1248
1248
  }],
1249
- predicate: cr(U("id", t), U("executionId", t)),
1249
+ predicate: ur(H("id", t), H("executionId", t)),
1250
1250
  take: 1,
1251
1251
  skip: void 0,
1252
1252
  projection: void 0
1253
1253
  };
1254
1254
  }
1255
- }, e), r, `subscription.${Xn.name}`), D[Qn.name] = (e) => q(T({
1256
- descriptor: Qn,
1255
+ }, e), r, `subscription.${Qn.name}`), D[er.name] = (e) => K(T({
1256
+ descriptor: er,
1257
1257
  executor: (e) => {
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;
1258
+ let t = e, n = [...t.tag === void 0 ? [] : [H("tag", t.tag)], ...t.status === void 0 ? [] : [H("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 {
1260
1260
  table: "_voltro_workflow_runs",
1261
1261
  order: [{
1262
1262
  column: "startedAt",
1263
1263
  direction: "desc"
1264
1264
  }],
1265
- predicate: n.length === 0 ? void 0 : n.length === 1 ? n[0] : rr(...n),
1265
+ predicate: n.length === 0 ? void 0 : n.length === 1 ? n[0] : ar(...n),
1266
1266
  take: r,
1267
1267
  skip: void 0,
1268
1268
  projection: void 0
1269
1269
  };
1270
1270
  }
1271
- }, e), r, `subscription.${Qn.name}`), D[Zn.name] = (e) => q(T({
1272
- descriptor: Zn,
1271
+ }, e), r, `subscription.${er.name}`), D[$n.name] = (e) => K(T({
1272
+ descriptor: $n,
1273
1273
  executor: (e) => {
1274
1274
  let t = e.runId;
1275
1275
  return {
@@ -1278,14 +1278,14 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1278
1278
  column: "startedAt",
1279
1279
  direction: "asc"
1280
1280
  }],
1281
- predicate: U("runId", t),
1281
+ predicate: H("runId", t),
1282
1282
  take: 1e3,
1283
1283
  skip: void 0,
1284
1284
  projection: void 0
1285
1285
  };
1286
1286
  }
1287
- }, e), r, `subscription.${Zn.name}`), D[Yn.name] = (e) => q(T({
1288
- descriptor: Yn,
1287
+ }, e), r, `subscription.${$n.name}`), D[Zn.name] = (e) => K(T({
1288
+ descriptor: Zn,
1289
1289
  executor: (e) => {
1290
1290
  let t = e.runId;
1291
1291
  return {
@@ -1294,14 +1294,14 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1294
1294
  column: "occurredAt",
1295
1295
  direction: "asc"
1296
1296
  }],
1297
- predicate: U("runId", t),
1297
+ predicate: H("runId", t),
1298
1298
  take: 1e3,
1299
1299
  skip: void 0,
1300
1300
  projection: void 0
1301
1301
  };
1302
1302
  }
1303
- }, e), r, `subscription.${Yn.name}`), D[B.name] = (e) => q(T({
1304
- descriptor: B,
1303
+ }, e), r, `subscription.${Zn.name}`), D[z.name] = (e) => K(T({
1304
+ descriptor: z,
1305
1305
  executor: (e) => {
1306
1306
  let t = e;
1307
1307
  return {
@@ -1310,14 +1310,14 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1310
1310
  column: "occurredAt",
1311
1311
  direction: "desc"
1312
1312
  }],
1313
- predicate: t.name === void 0 ? void 0 : U("name", t.name),
1313
+ predicate: t.name === void 0 ? void 0 : H("name", t.name),
1314
1314
  take: Math.max(1, Math.min(500, t.limit ?? 100)),
1315
1315
  skip: void 0,
1316
1316
  projection: void 0
1317
1317
  };
1318
1318
  }
1319
- }, e), r, `subscription.${B.name}`), D[V.name] = (e) => q(T({
1320
- descriptor: V,
1319
+ }, e), r, `subscription.${z.name}`), D[B.name] = (e) => K(T({
1320
+ descriptor: B,
1321
1321
  executor: (e) => {
1322
1322
  let t = e.eventId;
1323
1323
  return {
@@ -1326,74 +1326,74 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1326
1326
  column: "createdAt",
1327
1327
  direction: "asc"
1328
1328
  }],
1329
- predicate: U("eventId", t),
1329
+ predicate: H("eventId", t),
1330
1330
  take: 500,
1331
1331
  skip: void 0,
1332
1332
  projection: void 0
1333
1333
  };
1334
1334
  }
1335
- }, e), r, `subscription.${V.name}`), D[qn.name] = (t) => K(async (t, n) => {
1335
+ }, e), r, `subscription.${B.name}`), D[Yn.name] = (t) => G(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 Lt(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
1338
- }, t, `action.${qn.name}`), D[Jn.name] = (t) => K(async (t, n) => {
1337
+ return await gt(e.store, n.subject, { executionId: r.executionId }), await g.cancel(r.workflowName, r.executionId), await Rt(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
1338
+ }, t, `action.${Yn.name}`), D[Xn.name] = (t) => G(async (t, n) => {
1339
1339
  let r = t;
1340
- return await gt(e.store, n.subject, { executionId: r.executionId }), await v.resume(r.workflowName, r.executionId), { ok: !0 };
1341
- }, t, `action.${Jn.name}`), D[$n.name] = (t) => K(async (t, n) => {
1340
+ return await gt(e.store, n.subject, { executionId: r.executionId }), await g.resume(r.workflowName, r.executionId), { ok: !0 };
1341
+ }, t, `action.${Xn.name}`), D[tr.name] = (t) => G(async (t, n) => {
1342
1342
  let r = t;
1343
- return await gt(e.store, n.subject, { id: r.id }), v.signal({ id: r.id }, r.signalName, r.payload);
1344
- }, t, `action.${$n.name}`), D[er.name] = (t) => K(async (t, n) => {
1343
+ return await gt(e.store, n.subject, { id: r.id }), g.signal({ id: r.id }, r.signalName, r.payload);
1344
+ }, t, `action.${tr.name}`), D[nr.name] = (t) => G(async (t, n) => {
1345
1345
  let r = t;
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.${er.name}`));
1348
- let Ot = [
1349
- ...E(e.discovered.queries).map((e) => z(e.descriptor)),
1350
- ...E(e.discovered.mutations).map((e) => Wn(e.descriptor)),
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)),
1354
- ...ut.queries.map((e) => z(e.descriptor)),
1355
- ...ut.mutations.map((e) => Wn(e.descriptor)),
1356
- ...S.queries.map((e) => z(e.descriptor)),
1357
- ...S.mutations.map((e) => Wn(e.descriptor)),
1358
- ...S.actions.map((e) => R(e.descriptor)),
1359
- ...E(e.discovered.streams ?? []).map((e) => Gn(e.descriptor)),
1360
- ...He.rpcs,
1361
- ...(e.discovered.workflows ?? []).map((e) => Si(e.definition)),
1362
- ...pe ? [
1363
- z(Xn),
1364
- z(Qn),
1365
- z(Zn),
1366
- z(Yn),
1367
- z(B),
1368
- z(V),
1369
- R(qn),
1370
- R(Jn),
1346
+ return await gt(e.store, n.subject, { id: r.id }), g.update({ id: r.id }, r.updateName, r.payload, r.timeoutMs === void 0 ? void 0 : { timeoutMs: r.timeoutMs });
1347
+ }, t, `action.${nr.name}`));
1348
+ let kt = [
1349
+ ...E(e.discovered.queries).map((e) => R(e.descriptor)),
1350
+ ...E(e.discovered.mutations).map((e) => Kn(e.descriptor)),
1351
+ ...E(e.discovered.actions).map((e) => L(e.descriptor)),
1352
+ ...ct.queries.map((e) => R(e.descriptor)),
1353
+ ...ct.mutations.map((e) => Kn(e.descriptor)),
1354
+ ...lt.queries.map((e) => R(e.descriptor)),
1355
+ ...lt.mutations.map((e) => Kn(e.descriptor)),
1356
+ ...x.queries.map((e) => R(e.descriptor)),
1357
+ ...x.mutations.map((e) => Kn(e.descriptor)),
1358
+ ...x.actions.map((e) => L(e.descriptor)),
1359
+ ...E(e.discovered.streams ?? []).map((e) => qn(e.descriptor)),
1360
+ ...C.rpcs,
1361
+ ...(e.discovered.workflows ?? []).map((e) => Ci(e.definition)),
1362
+ ...fe ? [
1363
+ R(Qn),
1364
+ R(er),
1371
1365
  R($n),
1372
- R(er)
1366
+ R(Zn),
1367
+ R(z),
1368
+ R(B),
1369
+ L(Yn),
1370
+ L(Xn),
1371
+ L(tr),
1372
+ L(nr)
1373
1373
  ] : []
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,
1374
+ ], At = Di.make(...kt).middleware(Hn).middleware(Un), jt = qr({ resolveSubject: ({ headers: t, clientId: n }) => e.resolveSubject(t, n) }), Mt = e.dormancyTenantId ?? br, Nt = e.dormancy === "sleep" ? {
1375
+ register: (t, n, r) => ui(e.store, {
1376
+ tenantId: r ?? Mt,
1377
1377
  kind: "workflow",
1378
1378
  refId: t,
1379
1379
  wakeAt: n
1380
1380
  }),
1381
- cancel: (t, n) => Ar(e.store, {
1382
- tenantId: n ?? jt,
1381
+ cancel: (t, n) => Mr(e.store, {
1382
+ tenantId: n ?? Mt,
1383
1383
  kind: "workflow",
1384
1384
  refId: t
1385
1385
  }).then(() => {})
1386
- } : void 0, A = ve ? await import("@voltro/workflow") : void 0, j = A?.makeWorkflowRunRecorder({
1386
+ } : void 0, k = he ? await import("@voltro/workflow") : void 0, A = k?.makeWorkflowRunRecorder({
1387
1387
  store: e.store,
1388
1388
  ...e.workflowRecording === void 0 ? {} : { recording: e.workflowRecording },
1389
- ...Mt === void 0 ? {} : { wakeups: Mt }
1390
- }), It = async (t, n) => {
1391
- await A.closeWorkflowChildrenForParent({
1389
+ ...Nt === void 0 ? {} : { wakeups: Nt }
1390
+ }), Ft = async (t, n) => {
1391
+ await k.closeWorkflowChildrenForParent({
1392
1392
  store: e.store,
1393
1393
  parentExecutionId: t,
1394
1394
  parentStatus: n,
1395
- recorder: j,
1396
- log: { warn: (e, t) => g.warn(e, t ?? {}) },
1395
+ recorder: A,
1396
+ log: { warn: (e, t) => re.warn(e, t ?? {}) },
1397
1397
  interruptChild: async (t, n) => {
1398
1398
  let r = (e.discovered.workflows ?? []).find((e) => e.definition.name === t);
1399
1399
  if (!r) throw Error(`Unknown child workflow: ${t}`);
@@ -1401,11 +1401,11 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1401
1401
  await f.runPromise(r.definition.interrupt(n));
1402
1402
  }
1403
1403
  });
1404
- }, Lt = async (t, n, r) => {
1404
+ }, Rt = async (t, n, r) => {
1405
1405
  let i = (await e.store.query({
1406
1406
  table: "_voltro_workflow_runs",
1407
1407
  order: [],
1408
- predicate: U("executionId", n),
1408
+ predicate: H("executionId", n),
1409
1409
  projection: void 0,
1410
1410
  skip: void 0,
1411
1411
  take: 1
@@ -1416,7 +1416,7 @@ var ia = /* @__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 j.recordEvent({
1419
+ a && await A.recordEvent({
1420
1420
  runId: i.id,
1421
1421
  eventType: "run-cancelled",
1422
1422
  payload: {
@@ -1425,18 +1425,18 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1425
1425
  executionId: n,
1426
1426
  ...o == null ? {} : { tenantId: o }
1427
1427
  }
1428
- }), a && await It(n, "cancelled");
1429
- }, Rt = [
1430
- ...ii(e.discovered.workflows ?? [], {
1428
+ }), a && await Ft(n, "cancelled");
1429
+ }, zt = [
1430
+ ...oi(e.discovered.workflows ?? [], {
1431
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: oe,
1435
+ resolveStartContext: se,
1436
1436
  ...ce === void 0 ? {} : { resolveAuthority: ce }
1437
1437
  }, (t, n, r) => {
1438
- let i = A.getWorkflowVersionMetadata(t.definition);
1439
- return A.wrapWorkflowExecuteWithRunRecording({
1438
+ let i = k.getWorkflowVersionMetadata(t.definition);
1439
+ return k.wrapWorkflowExecuteWithRunRecording({
1440
1440
  name: t.definition.name,
1441
1441
  store: e.store,
1442
1442
  subject: r.subject,
@@ -1447,27 +1447,27 @@ var ia = /* @__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 }) => It(e, t),
1451
- ...M(t.definition),
1450
+ onParentClose: ({ executionId: e, status: t }) => Ft(e, t),
1451
+ ...j(t.definition),
1452
1452
  onTerminal: async ({ executionId: e }) => {
1453
1453
  await d?.gate.release(e);
1454
1454
  },
1455
- recorder: j,
1455
+ recorder: A,
1456
1456
  pluginWorkflowStepLayer: at,
1457
- recordRun: si
1457
+ recordRun: ci
1458
1458
  }, n);
1459
1459
  }),
1460
1460
  ...e.discovered.workflowWorkers ?? [],
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 });
1461
+ ...Ee === void 0 ? [] : [Ee]
1462
+ ], Bt = [...(e.discovered.workflows ?? []).map((e) => e.definition.name).filter(Boolean), ...Ee === void 0 ? [] : ["voltro.deliverWebhook"]], Ht = zt.length > 0 ? W.mergeAll(...zt) : W.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(W.provideMerge(e.workflowEngineLayer));
1465
+ f = fr.make((e.baseLayer === void 0 ? t : t.pipe(W.provideMerge(e.baseLayer))).pipe(W.provideMerge(Vn({})))), await f.runPromise(U.void), (e.log ?? I({ 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 zt({
1468
- provider: Ri(e.plugins ?? [])?.broadcast?.provider,
1469
- crossReplica: Ri(e.plugins ?? [])?.broadcast?.crossReplica ?? !1,
1470
- namespace: Fe,
1467
+ ne = await Vt({
1468
+ provider: zi(e.plugins ?? [])?.broadcast?.provider,
1469
+ crossReplica: zi(e.plugins ?? [])?.broadcast?.crossReplica ?? !1,
1470
+ namespace: Pe,
1471
1471
  replicaId: crypto.randomUUID(),
1472
1472
  pollStorage: () => f.runPromise(n.pollWorkflowStorage),
1473
1473
  onChange: (t) => e.store.onChange((e) => t({
@@ -1475,14 +1475,14 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1475
1475
  op: e.op,
1476
1476
  ...e.origin === void 0 ? {} : { origin: e.origin }
1477
1477
  })),
1478
- log: (e.log ?? L({ scope: "voltro:serve" })).child("workflow")
1478
+ log: (e.log ?? I({ scope: "voltro:serve" })).child("workflow")
1479
1479
  }), ee = async (t) => {
1480
- let n = await Pe({
1480
+ let n = await Ie({
1481
1481
  store: e.store,
1482
1482
  workflows: e.discovered.workflows ?? [],
1483
1483
  runRedrive: r
1484
1484
  }, t.runId);
1485
- return n.statusReset && await j.recordEvent({
1485
+ return n.statusReset && await A.recordEvent({
1486
1486
  runId: t.runId,
1487
1487
  eventType: "run-redriven",
1488
1488
  payload: {
@@ -1495,12 +1495,12 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1495
1495
  reason: n.outcome.reason
1496
1496
  };
1497
1497
  }, te = async (t) => {
1498
- let n = await se({
1498
+ let n = await le({
1499
1499
  store: e.store,
1500
1500
  workflows: e.discovered.workflows ?? [],
1501
1501
  runResume: i
1502
1502
  }, t.runId, t.step);
1503
- return n.statusReset && await j.recordEvent({
1503
+ return n.statusReset && await A.recordEvent({
1504
1504
  runId: t.runId,
1505
1505
  eventType: "run-redriven",
1506
1506
  payload: {
@@ -1515,32 +1515,32 @@ var ia = /* @__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}`) : hi, c = Kr({
1518
+ let a = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Hr(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : gi, l = Jr({
1519
1519
  coordinator: a,
1520
1520
  replicaId: e.scheduleReplicaId ?? `pid-${process.pid}`
1521
- }), l = L({ scope: "voltro:flow-control" }), p = {
1521
+ }), u = I({ scope: "voltro:flow-control" }), p = {
1522
1522
  info: (e, t) => {
1523
- l.info(e, t);
1523
+ u.info(e, t);
1524
1524
  },
1525
1525
  warn: (e, t) => {
1526
- l.warn(e, t);
1526
+ u.warn(e, t);
1527
1527
  },
1528
1528
  error: (e, t) => {
1529
- l.error(e, t ?? {});
1529
+ u.error(e, t ?? {});
1530
1530
  }
1531
- }, m, h = () => {
1531
+ }, m, re = () => {
1532
1532
  if (m !== void 0) return m;
1533
- if (o !== void 0 && j !== void 0) return m = _({
1533
+ if (o !== void 0 && A !== void 0) return m = _({
1534
1534
  store: e.store,
1535
- log: F,
1535
+ log: P,
1536
1536
  workflows: e.discovered.workflows ?? [],
1537
1537
  workflowsProxy: o,
1538
1538
  workflowRuntime: f,
1539
- workflowRunRecorder: j,
1540
- closeChildrenForParent: It
1539
+ workflowRunRecorder: A,
1540
+ closeChildrenForParent: Ft
1541
1541
  }), m;
1542
1542
  };
1543
- s = h, d = w({
1543
+ s = re, d = w({
1544
1544
  store: e.store,
1545
1545
  onChange: (t) => e.store.onChange((e) => t({
1546
1546
  table: e.table,
@@ -1554,11 +1554,11 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1554
1554
  },
1555
1555
  workflows: e.discovered.workflows ?? [],
1556
1556
  facade: () => o,
1557
- cancelRunWithReason: h,
1558
- recordRunEvent: () => j?.recordEvent,
1557
+ cancelRunWithReason: re,
1558
+ recordRunEvent: () => A?.recordEvent,
1559
1559
  ...e.workflowStaleness === void 0 ? {} : { staleness: e.workflowStaleness },
1560
1560
  ...e.workflowSuspendSignalHintMs === void 0 ? {} : { suspendSignalHintMs: e.workflowSuspendSignalHintMs },
1561
- scheduleCoordinated: c,
1561
+ scheduleCoordinated: l,
1562
1562
  onAbandoned: async (t) => {
1563
1563
  await _t({
1564
1564
  workflows: e.discovered.workflows ?? [],
@@ -1569,8 +1569,8 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1569
1569
  },
1570
1570
  log: p
1571
1571
  });
1572
- let g = d;
1573
- g !== void 0 && oi(() => g.stop()), u = wt({
1572
+ let h = d;
1573
+ h !== void 0 && J(() => h.stop()), c = Et({
1574
1574
  store: e.store,
1575
1575
  onChange: (t) => e.store.onChange((e) => t({
1576
1576
  table: e.table,
@@ -1581,81 +1581,81 @@ var ia = /* @__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 || A === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
1585
- await f.runPromise(A.completeSuspendingSignal({
1584
+ resumeSignal: () => f === void 0 || k === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
1585
+ await f.runPromise(k.completeSuspendingSignal({
1586
1586
  store: e.store,
1587
- target: tt(t, n),
1587
+ target: nt(t, n),
1588
1588
  signalName: r,
1589
1589
  payload: i
1590
1590
  }));
1591
1591
  },
1592
1592
  runEffect: (e) => f.runPromise(e),
1593
- scheduleCoordinated: c,
1593
+ scheduleCoordinated: l,
1594
1594
  log: p
1595
1595
  });
1596
- let re = u;
1597
- re !== void 0 && oi(() => re.stop()), o = (e.discovered.workflows?.length ?? 0) > 0 ? ni({
1596
+ let ie = c;
1597
+ ie !== void 0 && J(() => ie.stop()), o = (e.discovered.workflows?.length ?? 0) > 0 ? ii({
1598
1598
  workflows: e.discovered.workflows ?? [],
1599
1599
  runEffect: (e) => f.runPromise(e),
1600
1600
  onEnqueue: () => ne?.publishWake(),
1601
- ...g === void 0 ? {} : {
1602
- admitStart: g.gate.admitStart,
1603
- startPayloadSchema: g.gate.startPayloadSchema,
1604
- parkDelayedStart: g.gate.parkDelayed
1601
+ ...h === void 0 ? {} : {
1602
+ admitStart: h.gate.admitStart,
1603
+ startPayloadSchema: h.gate.startPayloadSchema,
1604
+ parkDelayedStart: h.gate.parkDelayed
1605
1605
  },
1606
- rememberStartContext: ae,
1606
+ rememberStartContext: oe,
1607
1607
  signal: async (t, n, r) => {
1608
- let i = await A.sendWorkflowSignal({
1608
+ let i = await k.sendWorkflowSignal({
1609
1609
  store: e.store,
1610
- recorder: j,
1610
+ recorder: A,
1611
1611
  target: t,
1612
1612
  signalName: n,
1613
1613
  payload: r
1614
1614
  });
1615
- return await f.runPromise(A.completeSuspendingSignal({
1615
+ return await f.runPromise(k.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) => A.sendWorkflowUpdate({
1622
+ update: (t, n, r, i) => k.sendWorkflowUpdate({
1623
1623
  store: e.store,
1624
- recorder: j,
1624
+ recorder: A,
1625
1625
  target: t,
1626
1626
  updateName: n,
1627
1627
  payload: r,
1628
1628
  ...i === void 0 ? {} : { options: i }
1629
1629
  }),
1630
- listRuns: (t) => je(e.store, t),
1631
- retry: (t, n) => fe({
1630
+ listRuns: (t) => Ne(e.store, t),
1631
+ retry: (t, n) => me({
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) => Pe({
1636
+ redrive: (t) => Ie({
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(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({
1643
+ let Ut = W.mergeAll(At.toLayer(D), jt), qt = St(D, e.discovered.queries.map((e) => e.descriptor.name), fe), Jt = W.mergeAll(At.toLayer(qt), jt), M = e.observability, Yt = await jr({
1644
1644
  ...e.appName === void 0 ? {} : { serviceName: e.appName },
1645
- ...N && N.spanProcessors.length > 0 ? { extraSpanProcessors: N.spanProcessors } : {},
1646
- ...N && N.metricReaders.length > 0 ? { extraMetricReaders: N.metricReaders } : {},
1647
- ...N && Object.keys(N.resourceAttributes).length > 0 ? { resourceAttributes: N.resourceAttributes } : {},
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: Zt, shutdown: P } = gi({
1650
- group: kt,
1651
- handlersLayer: Gt,
1652
- httpHandlersLayer: qt,
1645
+ ...M && M.spanProcessors.length > 0 ? { extraSpanProcessors: M.spanProcessors } : {},
1646
+ ...M && M.metricReaders.length > 0 ? { extraMetricReaders: M.metricReaders } : {},
1647
+ ...M && Object.keys(M.resourceAttributes).length > 0 ? { resourceAttributes: M.resourceAttributes } : {},
1648
+ ...M && M.sampler !== void 0 ? { sampler: M.sampler } : {}
1649
+ }), Xt = !1, Zt = e.store.ping ? () => e.store.ping().then(() => !0).catch(() => !1) : void 0, { server: Qt, shutdown: $t } = _i({
1650
+ group: At,
1651
+ handlersLayer: Ut,
1652
+ httpHandlersLayer: Jt,
1653
1653
  port: e.port ?? 4e3,
1654
1654
  ...e.host === void 0 ? {} : { host: e.host },
1655
1655
  path: e.path ?? "/ws",
1656
- tracerLayer: Jt.layer,
1657
- security: ue(e),
1658
- ...xn(e),
1656
+ tracerLayer: Yt.layer,
1657
+ security: de(e),
1658
+ ...Cn(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);
@@ -1666,17 +1666,17 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1666
1666
  },
1667
1667
  ...it,
1668
1668
  healthCheck: {
1669
- isReady: () => Yt,
1670
- ...Xt ? { ping: Xt } : {}
1669
+ isReady: () => Xt,
1670
+ ...Zt ? { ping: Zt } : {}
1671
1671
  },
1672
- ...Dt.length > 0 ? { httpRoutes: Dt } : {},
1672
+ ...Tt.length > 0 ? { httpRoutes: Tt } : {},
1673
1673
  ...e.getStore === void 0 ? {} : { getStore: e.getStore },
1674
- ...Ee.size > 0 ? { webhookRoutes: Ee } : {},
1674
+ ...De.size > 0 ? { webhookRoutes: De } : {},
1675
1675
  ...e.inspectRoute === void 0 ? {} : { inspectRoute: e.inspectRoute }
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 ?? [], {
1676
+ }), N = ca(Qt);
1677
+ if (await kr(Qt), (e.discovered.schedules?.length ?? 0) > 0) {
1678
+ let t = (e.scheduleCoordination ?? "single") === "advisoryLock" ? Hr(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : gi;
1679
+ p = await vi(e.discovered.schedules ?? [], {
1680
1680
  store: e.store,
1681
1681
  coordinator: t,
1682
1682
  defaultTrigger: e.scheduleDefaultTrigger ?? "self",
@@ -1690,283 +1690,285 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1690
1690
  }, e.store, void 0, `schedule:${n}`),
1691
1691
  log: {
1692
1692
  info: (e, t) => {
1693
- re.info(e, t);
1693
+ ie.info(e, t);
1694
1694
  },
1695
1695
  warn: (e, t) => {
1696
- re.warn(e, t);
1696
+ ie.warn(e, t);
1697
1697
  },
1698
1698
  error: (e, t) => {
1699
- re.error(e, t ?? {});
1699
+ ie.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?.(m);
1705
+ }), e.onSchedulerReady?.(p);
1706
1706
  }
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, He.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
1709
- let t = F.child("reaction"), n = async (n, r) => {
1707
+ let P = e.log ?? I({ scope: "voltro:serve" }), en, tn;
1708
+ if ((e.discovered.subscribers?.length ?? 0) > 0 && (en = $e(e.discovered.subscribers ?? [], e.store, P.child("subscribe"), e.schemaRegistry, C.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
1709
+ let t = P.child("reaction"), n = async (n, r) => {
1710
1710
  if (n.kind === "workflow") {
1711
- if (v === void 0) {
1711
+ if (g === void 0) {
1712
1712
  t.warn("reaction workflow act skipped — no workflow engine in this app", { workflow: n.workflow });
1713
1713
  return;
1714
1714
  }
1715
1715
  let e = n.payload === void 0 ? r.new ?? r.old ?? {} : n.payload(r);
1716
- await ri(v, {
1716
+ await ai(g, {
1717
1717
  traceId: `reaction:${n.workflow}`,
1718
1718
  source: `reaction:${n.workflow}`
1719
1719
  }).start(n.workflow, e);
1720
1720
  return;
1721
1721
  }
1722
- await _e(n.agent, r, {
1722
+ await ye(n.agent, r, {
1723
1723
  findAgentSend: (t) => e.discovered.actions.find((e) => e.descriptor.name === `${t}.send`),
1724
1724
  runAction: (e, t, n) => Promise.resolve(dt(e, t, n)),
1725
- makeSubject: (e) => Hn(e),
1725
+ makeSubject: (e) => Wn(e),
1726
1726
  now: () => Date.now(),
1727
1727
  log: t
1728
1728
  });
1729
1729
  }, r = async (n, r) => {
1730
1730
  try {
1731
1731
  let { requireAiBudget: t } = await import("@voltro/ai");
1732
- return (await W.runPromise(W.either(t(e.store, {
1732
+ return (await U.runPromise(U.either(t(e.store, {
1733
1733
  tenantId: n,
1734
1734
  limitUsd: r
1735
1735
  }))))._tag === "Right";
1736
1736
  } catch (e) {
1737
1737
  return t.warn("reaction budget check failed — refusing the act", { tenantId: n }, e), !1;
1738
1738
  }
1739
- }, i = Ze(e.store, { onError: (e) => t.warn("reaction: rate-slot claim failed; refusing the act", { cause: String(e) }) });
1740
- en = he(e.discovered.reactions ?? [], e.store, {
1739
+ }, i = Qe(e.store, { onError: (e) => t.warn("reaction: rate-slot claim failed; refusing the act", { cause: String(e) }) });
1740
+ tn = _e(e.discovered.reactions ?? [], e.store, {
1741
1741
  runAct: n,
1742
1742
  checkBudget: r,
1743
1743
  claimRateSlot: (e) => i.claim(e)
1744
1744
  }, t);
1745
1745
  }
1746
- let tn;
1747
- (e.discovered.aggregates?.length ?? 0) > 0 && (tn = await h({
1746
+ let nn;
1747
+ (e.discovered.aggregates?.length ?? 0) > 0 && (nn = await h({
1748
1748
  discovered: e.discovered.aggregates ?? [],
1749
1749
  store: e.store,
1750
- log: F.child("aggregate"),
1750
+ log: P.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
- }), Ge = G.succeed(gr, tn.registry));
1755
- let nn;
1756
- (e.discovered.expectations?.length ?? 0) > 0 && (nn = wr({
1754
+ }), Ge = W.succeed(vr, nn.registry));
1755
+ let rn;
1756
+ (e.discovered.expectations?.length ?? 0) > 0 && (rn = Er({
1757
1757
  discovered: e.discovered.expectations ?? [],
1758
1758
  store: e.store,
1759
- log: F.child("expectation")
1760
- }), Ke = G.succeed(br, nn.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Er({
1759
+ log: P.child("expectation")
1760
+ }), Ke = W.succeed(Sr, rn.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Or({
1761
1761
  discovered: e.discovered.budgets ?? [],
1762
- log: F.child("finops")
1763
- }), qe = G.succeed(_r, n.registry));
1764
- let rn;
1765
- return (e.discovered.experiments?.length ?? 0) > 0 && (rn = Tr({
1762
+ log: P.child("finops")
1763
+ }), qe = W.succeed(yr, n.registry));
1764
+ let an;
1765
+ return (e.discovered.experiments?.length ?? 0) > 0 && (an = Dr({
1766
1766
  discovered: e.discovered.experiments ?? [],
1767
1767
  store: e.store,
1768
- log: F.child("experiment")
1769
- }), Je = G.succeed(xr, rn.registry)), Yt = !0, e.bootTiming?.mark("ready"), {
1768
+ log: P.child("experiment")
1769
+ }), Je = W.succeed(Cr, an.registry)), Xt = !0, e.bootTiming?.mark("ready"), {
1770
1770
  dispatcher: r,
1771
- server: Zt,
1772
- scheduler: m,
1773
- eventsSnapshot: xe(He.bus, He.declared),
1771
+ server: Qt,
1772
+ scheduler: p,
1773
+ eventsSnapshot: Ce(C.bus, C.declared),
1774
1774
  membersSnapshot: () => ({
1775
1775
  members: Ve.membership.list(),
1776
1776
  capturedAt: Date.now()
1777
1777
  }),
1778
1778
  agentTools: () => bt,
1779
- rpcMetrics: () => nt,
1779
+ rpcMetrics: () => tt,
1780
1780
  webhooksService: () => we,
1781
1781
  runCanceller: () => s(),
1782
1782
  flowControlHealth: () => d?.cancelHealth(),
1783
- inferenceHealth: () => u?.health(),
1784
- workflowWriteActions: () => v === void 0 || j === void 0 ? void 0 : me({
1783
+ inferenceHealth: () => c?.health(),
1784
+ workflowWriteActions: () => g === void 0 || A === void 0 ? void 0 : ge({
1785
1785
  store: e.store,
1786
- log: F,
1786
+ log: P,
1787
1787
  workflows: e.discovered.workflows ?? [],
1788
1788
  workflowsProxy: o,
1789
1789
  workflowRuntime: f,
1790
- workflowRunRecorder: j,
1791
- closeChildrenForParent: It
1790
+ workflowRunRecorder: A,
1791
+ closeChildrenForParent: Ft
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
- Yt = !1, await Qt.drainRequests();
1797
- for (let e of De) try {
1796
+ Xt = !1, await N.drainRequests();
1797
+ for (let e of Oe) try {
1798
1798
  await e();
1799
1799
  } catch (e) {
1800
- F.warn("serve: teardown step failed", {}, e);
1800
+ P.warn("serve: teardown step failed", {}, e);
1801
1801
  }
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();
1802
+ await Ue?.detach(), await Ve.detach(), nn?.detach(), rn?.detach(), n?.detach(), an?.detach(), tn?.(), en?.(), await p?.shutdown(), r.close(), await ne?.detach(), await f?.dispose(), await $t(), await N.finish();
1803
1803
  }
1804
1804
  };
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)) {
1805
+ }, $ = I({ scope: "voltro:serve" }), So = (e, t, n) => (e === "production" || e === "staging") && t !== "memory" && n !== "0", Co = Xt, wo = async (e) => {
1806
+ let t = jn(process.cwd());
1807
+ if (zn(t)) {
1808
1808
  let n;
1809
1809
  try {
1810
- let e = await import(Rn(t).href);
1810
+ let e = await import(Bn(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 wo(e);
1818
- }, wo = async (c) => {
1819
- let l = An();
1817
+ return To(e);
1818
+ }, To = async (l) => {
1819
+ let u = Mn();
1820
1820
  e("serve");
1821
1821
  try {
1822
- Pi();
1822
+ Fi();
1823
1823
  } catch (e) {
1824
1824
  throw i(e instanceof Error ? e.message : String(e));
1825
1825
  }
1826
- let p = process.cwd(), h = await Ke(p), se = Yt({
1826
+ let m = process.cwd(), h = await qe(m), le = Zt({
1827
1827
  kind: "api",
1828
1828
  configPort: h?.port,
1829
1829
  env: process.env,
1830
- flagPort: So(c, "--port")
1830
+ flagPort: Co(l, "--port")
1831
1831
  });
1832
- for (let e of se.warnings) $.warn(e);
1833
- let le = se.port;
1834
- fi(ui(h?.secrets)), await Xt({
1832
+ for (let e of le.warnings) $.warn(e);
1833
+ let ue = le.port;
1834
+ pi(di(h?.secrets)), await Qt({
1835
1835
  rawEnv: h?.env,
1836
1836
  appType: "api",
1837
- root: p,
1837
+ root: m,
1838
1838
  log: $,
1839
1839
  generateTypes: !1
1840
- }), l.mark("config");
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);
1840
+ }), u.mark("config");
1841
+ let _ = (process.env.DB_DIALECT ?? h?.store ?? "memory").toLowerCase(), pe = (_ === "mariadb" || _ === "postgres" || _ === "mssql") && (process.env.CDC ?? "1") !== "0", me = _ === "mariadb" ? "mariadb" : _ === "mssql" ? "mssql" : void 0, ge = An(m);
1842
+ if (!r() && zn(ge)) try {
1843
+ let e = await import(Bn(ge).href);
1844
1844
  if (e.modules) {
1845
1845
  let t = {};
1846
- for (let [n, r] of Object.entries(e.modules)) t[Fn(p, n)] = r;
1846
+ for (let [n, r] of Object.entries(e.modules)) t[Ln(m, 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 St(p), b = await j(y, { cdc: de && fe !== void 0 }), he = ee(b);
1852
+ let v = await wt(m), y = await Ft(v, { cdc: pe && me !== void 0 }), _e = te(y);
1853
1853
  {
1854
- Ye({
1854
+ Xe({
1855
1855
  plugins: h?.plugins ?? [],
1856
- queries: b.queries,
1857
- mutations: b.mutations,
1858
- actions: b.actions,
1859
- streams: b.streams,
1856
+ queries: y.queries,
1857
+ mutations: y.mutations,
1858
+ actions: y.actions,
1859
+ streams: y.streams,
1860
1860
  log: $
1861
1861
  });
1862
- let e = pe(b.serverOnlyLeaks, ce(process.env, "strict"), Nr, "`voltro serve`");
1862
+ let e = he(y.serverOnlyLeaks, g(process.env, "strict"), Fr, "`voltro serve`");
1863
1863
  if (e.action === "fail") throw i(e.message ?? "");
1864
1864
  e.action === "warn" && $.warn(e.message ?? "");
1865
1865
  }
1866
- let ge = y.filter((e) => Dn.test(e)), _e = ge.length > 0 ? await En(ge, $.child("webhooks")) : {
1866
+ let ve = v.filter((e) => kn.test(e)), ye = ve.length > 0 ? await On(ve, $.child("webhooks")) : {
1867
1867
  outgoing: [],
1868
1868
  incoming: [],
1869
1869
  providers: []
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({
1870
+ }, Se = En(y.events), Ce = ye.outgoing.length + ye.incoming.length + ye.providers.length + Se.length === 0 ? void 0 : {
1871
+ ...ye,
1872
+ outgoing: [...ye.outgoing, ...Se]
1873
+ }, Te = un({
1874
1874
  nodeEnv: process.env.NODE_ENV,
1875
- cdcDialect: fe,
1875
+ cdcDialect: me,
1876
1876
  declared: h?.schema
1877
- }), Oe = ln({
1878
- gates: Ce,
1877
+ }), Ae = dn({
1878
+ gates: Te,
1879
1879
  runtime: {
1880
- traces: ae(),
1881
- undo: yi()
1880
+ traces: se(),
1881
+ undo: bi()
1882
1882
  }
1883
1883
  });
1884
- if (Oe !== void 0) throw i(`serve: ${Oe}`);
1885
- let je = sn({
1886
- mix: b.featureMix,
1884
+ if (Ae !== void 0) throw i(`serve: ${Ae}`);
1885
+ let Ne = ln({
1886
+ mix: y.featureMix,
1887
1887
  plugins: h?.plugins ?? [],
1888
- gates: Ce,
1889
- ...fe ? { cdcDialect: fe } : {}
1890
- }), Ne = h?.analytics !== void 0 && h.analytics.kind !== "noop" && _ !== "memory" ? (await P(_)).makeSqlLayer(O()) : void 0, Pe = await yt({
1888
+ gates: Te,
1889
+ ...me ? { cdcDialect: me } : {}
1890
+ }), Fe = h?.analytics !== void 0 && h.analytics.kind !== "noop" && _ !== "memory" ? (await N(_)).makeSqlLayer(O()) : void 0, Ie = await bt({
1891
1891
  spec: h?.analytics,
1892
- sqlLayer: Ne,
1892
+ sqlLayer: Fe,
1893
1893
  log: $
1894
- }), C = (() => {
1895
- let e = new Set(b.tables.map((e) => e.tableName)), t = [...b.tables];
1896
- for (let n of [...je, ...Pe.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1894
+ }), S = (() => {
1895
+ let e = new Set(y.tables.map((e) => e.tableName)), t = [...y.tables];
1896
+ for (let n of [...Ne, ...Ie.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1897
1897
  return t;
1898
1898
  })();
1899
- for (let e of C) sr(e);
1899
+ for (let e of S) lr(e);
1900
1900
  {
1901
- let e = Pr(bi(Ae(b), re(C)));
1901
+ let e = Ir(xi(x(y), ae(S)));
1902
1902
  e !== void 0 && $.warn(e);
1903
1903
  }
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([]))));
1904
+ let Re = (process.env.NODE_ENV ?? "").toLowerCase();
1905
+ if (So(Re, _, process.env.VOLTRO_AUTO_MIGRATE)) {
1906
+ let e = (await N(_)).makeSqlLayer(O()), t = await U.runPromise(pr.SqlClient.pipe(U.flatMap((e) => gr(e, m)), U.provide(e), U.catchAll(() => U.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(dr.SqlClient.pipe(W.flatMap((e) => hr(e, C, {
1909
- appliedBy: `serve:${Ie}`,
1908
+ let n = await U.runPromise(pr.SqlClient.pipe(U.flatMap((e) => _r(e, S, {
1909
+ appliedBy: `serve:${Re}`,
1910
1910
  environment: "prod",
1911
1911
  dialectId: _
1912
- })), W.provide(e)));
1913
- n.kind === "prod-mismatch" && ($.error(pr(n, _)), $.error(un({
1914
- gates: Ce,
1912
+ })), U.provide(e)));
1913
+ n.kind === "prod-mismatch" && ($.error(hr(n, _)), $.error(fn({
1914
+ gates: Te,
1915
1915
  nodeEnv: process.env.NODE_ENV,
1916
- cdcDialect: fe,
1916
+ cdcDialect: me,
1917
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, _));
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(hr(n, _));
1919
1919
  }
1920
- await tn({
1920
+ await rn({
1921
1921
  dialectId: _,
1922
- tables: C,
1923
- mode: $t(h?.reactiveTriggers),
1922
+ tables: S,
1923
+ mode: tn(h?.reactiveTriggers),
1924
1924
  lockSchema: O().schema,
1925
- makeLayer: async () => (await P(_)).makeSqlLayer(O()),
1925
+ makeLayer: async () => (await N(_)).makeSqlLayer(O()),
1926
1926
  log: {
1927
1927
  info: (e, t) => $.info(e, t ?? {}),
1928
1928
  warn: (e, t) => $.warn(e, t ?? {})
1929
1929
  }
1930
1930
  });
1931
- let Le = ti(C);
1932
- l.mark("discover");
1933
- let w = await ct(h, void 0);
1931
+ let ze = ri(S);
1932
+ u.mark("discover");
1933
+ let w = await lt(h, void 0);
1934
1934
  {
1935
- let e = await s(w);
1935
+ let e = await c(w);
1936
1936
  if (e !== void 0) throw i(`serve: ${e}`);
1937
+ let t = await s(w, _, h);
1938
+ t !== void 0 && $.warn(t);
1937
1939
  }
1938
- let Xe = Ci(w, _);
1939
- for (let e of Gt({
1940
+ let Ze = wi(w, _);
1941
+ for (let e of qt({
1940
1942
  dialect: String(h?.store ?? process.env.DB_DIALECT ?? "postgres"),
1941
1943
  changeStrategy: (process.env.CDC ?? "1") === "0" ? "inline" : "cdc",
1942
1944
  dbUrl: process.env.DB_URL,
1943
- crossReplicaBus: Ri(h?.plugins ?? [])?.broadcast.crossReplica === !0,
1944
- tables: b.tables.map((e) => ({
1945
+ crossReplicaBus: zi(h?.plugins ?? [])?.broadcast.crossReplica === !0,
1946
+ tables: y.tables.map((e) => ({
1945
1947
  tableName: e.tableName,
1946
1948
  isReactive: e.isReactive === !0
1947
1949
  })),
1948
- querySources: b.queries.flatMap((e) => {
1950
+ querySources: y.queries.flatMap((e) => {
1949
1951
  let t = e.descriptor.source;
1950
1952
  return t === void 0 ? [] : typeof t == "string" ? [t] : [...t];
1951
1953
  })
1952
1954
  })) e.level === "warn" ? $.warn(e.message) : $.info(e.message);
1953
1955
  {
1954
- let e = Ve({
1955
- tables: nr().map((e) => ({ tableName: e.tableName })),
1956
- queries: b.queries.map((e) => ({
1956
+ let e = C({
1957
+ tables: ir().map((e) => ({ tableName: e.tableName })),
1958
+ queries: y.queries.map((e) => ({
1957
1959
  name: e.descriptor.name,
1958
1960
  source: e.descriptor.source
1959
1961
  }))
1960
- }), t = It(e);
1962
+ }), t = Rt(e);
1961
1963
  t !== void 0 && $.warn(t);
1962
1964
  }
1963
1965
  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({
1966
+ let { service: Qe, invalidationBus: $e, snapshotCache: et, cache: nt, semantic: ut, evictSource: gt, backend: _t, stats: St, dispose: Et } = await it({
1965
1967
  env: process.env,
1966
1968
  semantic: h?.cacheSemantic ?? !1
1967
1969
  });
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
+ ut !== 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) => {
1971
+ if (U.runFork($e.publish(e.table)), gt !== void 0) {
1970
1972
  let t = (e.new ?? e.old)?.id;
1971
1973
  gt({
1972
1974
  table: e.table,
@@ -1975,164 +1977,164 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
1975
1977
  });
1976
1978
  }
1977
1979
  }), 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
+ let { kv: Dt, service: Ot } = await Kr({ store: w });
1981
+ ht({
1980
1982
  log: $,
1981
- max: F(),
1982
- outOfPool: ye(_, (process.env.CDC ?? "1") !== "0"),
1983
+ max: en(),
1984
+ outOfPool: xe(_, (process.env.CDC ?? "1") !== "0"),
1983
1985
  readPools: t.replicationSnapshot()?.replicaCount ?? 0,
1984
1986
  always: !0
1985
- }), l.mark("store");
1986
- let Nt = Cr({
1987
+ }), u.mark("store");
1988
+ let Pt = Tr({
1987
1989
  store: w,
1988
- sink: Pe.sink,
1990
+ sink: Ie.sink,
1989
1991
  log: $
1990
- }), Pt = ot({
1992
+ }), It = st({
1991
1993
  store: w,
1992
1994
  dialect: _,
1993
1995
  log: { info: (e) => $.info(e) }
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
- let Ut = [
1996
+ }), j = h?.plugins ?? [], Lt = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Vt, Wt;
1997
+ _ !== "memory" && (Vt = fr.make((await N(_)).makeSqlLayer(O()).pipe(W.provideMerge(Vn({})))), Wt = await Vt.runPromise(pr.SqlClient));
1998
+ let Gt = [
1997
1999
  "postgres",
1998
2000
  "mariadb",
1999
2001
  "mysql",
2000
2002
  "mssql"
2001
- ].includes(_) ? Br(w, Ft, $) : hi, Jt = Kt(h?.scheduling), xn = Kr({
2002
- maxIdleIntervalMs: Jt.pollCeilingMs,
2003
- coordinator: Ut,
2004
- replicaId: Ft,
2003
+ ].includes(_) ? Hr(w, Lt, $) : gi, Xt = Jt(h?.scheduling), Cn = Jr({
2004
+ maxIdleIntervalMs: Xt.pollCeilingMs,
2005
+ coordinator: Gt,
2006
+ replicaId: Lt,
2005
2007
  log: $
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));
2008
+ }), Dn = [], jn = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Nn = zi(h?.plugins ?? [])?.broadcast?.provider, Pn = He(h?.plugins, h?.name ?? In(m));
2007
2009
  {
2008
- let e = nt(h?.plugins, h?.name ?? Pn(p));
2010
+ let e = rt(h?.plugins, h?.name ?? In(m));
2009
2011
  e !== void 0 && $.warn(e);
2010
2012
  }
2011
- let Nn = Wt(h?.plugins, {
2012
- instanceId: kn,
2013
- namespace: Mn,
2013
+ let Fn = Kt(h?.plugins, {
2014
+ instanceId: jn,
2015
+ namespace: Pn,
2014
2016
  meta: { mode: "serve" },
2015
2017
  logger: $
2016
- }), I = bn({
2018
+ }), F = Sn({
2017
2019
  mode: "serve",
2018
2020
  dialect: _,
2019
- ...jn === void 0 ? {} : { provider: jn },
2021
+ ...Nn === void 0 ? {} : { provider: Nn },
2020
2022
  logger: $
2021
2023
  });
2022
- oi(async () => {
2023
- await I.stop();
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") },
2024
+ J(async () => {
2025
+ await F.stop();
2026
+ }), vt(h?.reactive), Tt(h);
2027
+ let Rn = {
2028
+ ...Wt ? { sql: Wt } : {},
2029
+ instanceId: jn,
2030
+ membership: Fn.membership,
2031
+ ...Nn === void 0 ? {} : { broadcast: Nn },
2032
+ broadcastChannels: { presence: Ri(Pn, "presence") },
2031
2033
  scheduleCoordinated: (e, t, n) => {
2032
- let r = xn(e, t, n);
2033
- return Tn.push(r), r;
2034
+ let r = Cn(e, t, n);
2035
+ return Dn.push(r), r;
2034
2036
  }
2035
2037
  };
2036
- for (let e of M) e.bindDataStore?.(Xe, In);
2037
- dt({
2038
+ for (let e of j) e.bindDataStore?.(Ze, Rn);
2039
+ ft({
2038
2040
  store: w,
2039
- ...u(),
2041
+ ...d(),
2040
2042
  log: $
2041
2043
  });
2042
- let Bn = M.filter((e) => typeof e.onChangeEvent == "function");
2043
- if (Bn.length > 0) {
2044
+ let Hn = j.filter((e) => typeof e.onChangeEvent == "function");
2045
+ if (Hn.length > 0) {
2044
2046
  let e = w.changeScope ?? "local";
2045
2047
  w.onChange((t) => {
2046
- let n = oe(t, e);
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
+ let n = ce(t, e);
2049
+ for (let e of Hn) U.runFork(e.onChangeEvent(n).pipe(U.catchAllCause((t) => U.sync(() => $.warn(`plugin ${e.name} onChangeEvent failed`, { error: dr.pretty(t) })))));
2048
2050
  });
2049
2051
  }
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,
2052
+ let Un = v.filter((e) => mn.test(e));
2053
+ Un.length > 0 && (await Ve(Un, $), $.info(`queue: ${Un.length} consumer file(s) loaded`));
2054
+ let L = Le({
2055
+ plugins: j,
2054
2056
  appName: h?.name ?? "voltro-api",
2055
2057
  appType: "api",
2056
2058
  voltroVersion: process.env.npm_package_version ?? "0.0.0",
2057
2059
  log: $
2058
2060
  });
2059
- M.length && await R.activate(), l.mark("plugins");
2060
- let Hn = await R.gatherObservability(), Un = L({ scope: "voltro:broadcast" }), Wn = {
2061
+ j.length && await L.activate(), u.mark("plugins");
2062
+ let Wn = await L.gatherObservability(), Gn = I({ scope: "voltro:broadcast" }), Kn = {
2061
2063
  info: (e, t) => {
2062
- Un.info(e, t);
2064
+ Gn.info(e, t);
2063
2065
  },
2064
2066
  warn: (e, t) => {
2065
- Un.warn(e, t);
2067
+ Gn.warn(e, t);
2066
2068
  },
2067
2069
  debug: () => {}
2068
- }, z, Gn = await E(w, h, _, Mn, Wn, (e, t) => {
2069
- z?.refreshAll(`broadcast gap: missed ${t} change(s) from ${e}`);
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
- ...V ? { usage: V } : {}
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,
2070
+ }, R, qn = await D(w, h, _, Pn, Kn, (e, t) => {
2071
+ R?.refreshAll(`broadcast gap: missed ${t} change(s) from ${e}`);
2072
+ }), Jn = h?.apiKeys, Yn = (typeof Jn == "object" ? Jn.prefix : void 0) ?? "voltro_", z = Jn ? Pr(w) : void 0, B = z ? Wr({ flush: Gr(z) }) : void 0;
2073
+ B && J(() => B.shutdown());
2074
+ let Xn = z ? Ur(z, {
2075
+ prefix: Yn,
2076
+ ...B ? { usage: B } : {}
2077
+ }) : void 0, Zn = Xn ? [Lr(Xn, { prefix: Yn })] : [], Qn = kt([...h?.auth?.strategies ?? [], ...Zn], Ki(h?.plugins ?? []), h?.auth?.anonymousTenantRequired ?? !1, h?.auth, () => Ze), $n = [...h?.restRoutes ?? [], ...Xn ? wr(Xn, (typeof Jn == "object" ? Jn.managementPath : void 0) ?? "/v1/api-keys") : []], er = Ue(h?.idempotency, w), tr = j.map((e) => e.services).filter((e) => e !== void 0), nr = W.mergeAll(Je({
2078
+ analyticsLayer: Ie.layer,
2079
+ cacheService: Qe,
2080
+ kvService: Ot,
2081
+ ...ut === void 0 ? {} : { semanticCache: ut },
2082
+ pluginServices: tr,
2081
2083
  userLayers: h?.layers ?? []
2082
- }), At(h?.http ?? {})), H = await k({
2083
- files: y,
2084
+ }), Mt(h?.http ?? {})), V = await Ct({
2085
+ files: v,
2084
2086
  store: w,
2085
2087
  log: $,
2086
2088
  seedPolicy: "report",
2087
- seedPattern: dn,
2088
- loadSeedFiles: en,
2089
- startupPattern: _n,
2089
+ seedPattern: pn,
2090
+ loadSeedFiles: nn,
2091
+ startupPattern: yn,
2090
2092
  loadStartupFiles: a,
2091
2093
  runStartups: o,
2092
- emailPattern: jt,
2093
- loadEmailFiles: Je,
2094
- registerEmailTemplates: Ki
2094
+ emailPattern: Nt,
2095
+ loadEmailFiles: Ye,
2096
+ registerEmailTemplates: qi
2095
2097
  });
2096
- (H.startupCount > 0 || H.emailCount > 0) && $.info("boot lifecycle", {
2097
- startups: H.startupCount,
2098
- emailTemplates: H.emailCount
2099
- }), H.startups !== void 0 && oi(async () => {
2100
- await H.startups.stop();
2101
- }), x({
2102
- demands: N(he),
2103
- isRegistered: (e) => Ir(e) !== void 0
2098
+ (V.startupCount > 0 || V.emailCount > 0) && $.info("boot lifecycle", {
2099
+ startups: V.startupCount,
2100
+ emailTemplates: V.emailCount
2101
+ }), V.startups !== void 0 && J(async () => {
2102
+ await V.startups.stop();
2103
+ }), De({
2104
+ demands: Yt(_e),
2105
+ isRegistered: (e) => Rr(e) !== void 0
2104
2106
  });
2105
- let tr = ut({
2106
- schedules: Ue({
2107
- schedules: b.schedules,
2108
- seeds: H.seeds,
2107
+ let rr = dt({
2108
+ schedules: We({
2109
+ schedules: y.schedules,
2110
+ seeds: V.seeds,
2109
2111
  store: w,
2110
2112
  log: $.child("seeds")
2111
2113
  }),
2112
- workflows: b.workflows ?? [],
2114
+ workflows: y.workflows ?? [],
2113
2115
  log: $.child("workflow-schedules")
2114
- }), rr = h?.scheduling ?? {}, ar = rr.trigger ?? "self", or = /* @__PURE__ */ new Set([
2116
+ }), ar = h?.scheduling ?? {}, sr = ar.trigger ?? "self", cr = /* @__PURE__ */ new Set([
2115
2117
  "postgres",
2116
2118
  "mysql",
2117
2119
  "mariadb",
2118
2120
  "mssql"
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) {
2121
+ ]), H = ar.coordination ?? (cr.has(_) ? "advisoryLock" : "single"), ur = H === "cluster" && cr.has(_), vr = ur ? "cluster" : H === "advisoryLock" && cr.has(_) ? "advisoryLock" : "single";
2122
+ H === "cluster" && !ur && $.warn("scheduling.coordination=cluster needs a sql-backed store except sqlite — falling back to single"), H === "advisoryLock" && !cr.has(_) && $.warn("scheduling.coordination=advisoryLock needs a SQL store (the claim-row gate) — falling back to single");
2123
+ let yr, br = y.workflows.length > 0 || y.workflowWorkers.length > 0 || y.eventTriggers.length > 0 || (Ce?.outgoing.length ?? 0) > 0 || ur, xr;
2124
+ if (br) {
2123
2125
  if (_ === "mssql") {
2124
- let e = await Cn(process.cwd());
2126
+ let e = await Tn(process.cwd());
2125
2127
  e && $.warn(e);
2126
2128
  }
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({
2129
+ let [{ WorkflowEngine: e }, { makeClusterCronLayer: t, workflowEngineLayer: n, resolveRunnerStorage: r, resolveFailoverTuning: i }] = await Promise.all([import("@effect/workflow"), import("@voltro/workflow/cluster")]), a = ur ? rr.filter((e) => (e.trigger ?? sr) === "self").map((e) => t({
2128
2130
  name: e.name,
2129
- cron: jr(e),
2131
+ cron: Nr(e),
2130
2132
  execute: async () => {
2131
- await _r?.fireFromCluster(e.name);
2133
+ await yr?.fireFromCluster(e.name);
2132
2134
  }
2133
2135
  })) : [];
2134
- yr = _ === "memory" ? e.layerMemory : await (async () => {
2135
- let e = await P(_), t = r({ sqliteFamily: e.id === "sqlite" || e.id === "turso" });
2136
+ xr = _ === "memory" ? e.layerMemory : await (async () => {
2137
+ let e = await N(_), t = r({ sqliteFamily: e.id === "sqlite" || e.id === "turso" });
2136
2138
  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
2139
  sqlClientLayer: e.makeSqlLayer(O()),
2138
2140
  runnerStorage: t,
@@ -2143,142 +2145,142 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2143
2145
  });
2144
2146
  })();
2145
2147
  }
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, $) : [];
2148
+ let Sr = fe(j, wn()), Cr = v.filter((e) => /\.subscribe\.tsx?$/.test(e)), Er = Cr.length > 0 ? await A(Cr, $) : [], Dr = v.filter((e) => /\.reaction\.tsx?$/.test(e)), Or = Dr.length > 0 ? await we(Dr, $) : [], kr = v.filter((e) => hn.test(e)), G = kr.length > 0 ? await Ee(kr, $) : [], Ar = v.filter((e) => /\.aggregate\.tsx?$/.test(e)), K = Ar.length > 0 ? await E(Ar, $) : [];
2147
2149
  {
2148
- let e = Pr(bi(Ae({ aggregates: q.map((e) => e.definition) }), re(C)));
2150
+ let e = Ir(xi(x({ aggregates: K.map((e) => e.definition) }), ae(S)));
2149
2151
  e !== void 0 && $.warn(e);
2150
2152
  }
2151
- let kr = f();
2152
- if (q.length > 0 && _ !== "memory") try {
2153
- let e = (await P(_)).makeSqlLayer(O());
2154
- kr = pt(e);
2153
+ let jr = ee();
2154
+ if (K.length > 0 && _ !== "memory") try {
2155
+ let e = (await N(_)).makeSqlLayer(O());
2156
+ jr = T(e);
2155
2157
  } catch (e) {
2156
2158
  $.warn("aggregate: SQL storage init failed — falling back to in-process", { err: String(e) });
2157
2159
  }
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
- if (Zr.length > 0) {
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
- for (let e of n.agents) for (let t of bt(e)) (t.kind === "action" ? Yr : Xr).push({
2160
+ let Mr = _ === "memory" ? gi : Hr(w, `aggregate@${process.pid}`, $), zr = v.filter((e) => gn.test(e)), Br = zr.length > 0 ? await Me(zr, $) : [], Vr = v.filter((e) => _n.test(e)), qr = Vr.length > 0 ? await Ht(Vr, $) : [], Yr = v.filter((e) => vn.test(e)), Xr = Yr.length > 0 ? await oe(Yr, $) : [], Zr = [], Qr = [], $r = v.filter((e) => an.test(e));
2161
+ if ($r.length > 0) {
2162
+ let e = $.child("agent"), t = v.filter((e) => cn.test(e));
2163
+ t.length > 0 && await on(t, e);
2164
+ let n = await sn($r, e);
2165
+ for (let e of n.agents) for (let t of xt(e)) (t.kind === "action" ? Zr : Qr).push({
2164
2166
  file: t.file,
2165
2167
  descriptor: t.descriptor,
2166
2168
  executor: t.executor
2167
2169
  });
2168
2170
  n.agents.length > 0 && e.info("synthesized agent routes", { agents: n.agents.map((e) => e.descriptor.name) });
2169
2171
  }
2170
- l.mark("workflow");
2171
- let J = () => {
2172
+ u.mark("workflow");
2173
+ let q = () => {
2172
2174
  let e = Y.workflowWriteActions();
2173
2175
  if (e === void 0) throw Error("workflow actions: this app registers no workflows");
2174
2176
  return e;
2175
- }, Qr = ir({
2177
+ }, ei = or({
2176
2178
  dialect: _,
2177
2179
  ...O()
2178
- }), $r = _ === "memory" ? void 0 : (await P(_)).makeSqlLayer(O()), ei = async () => kt({
2179
- sqlLayer: $r,
2180
- declared: C,
2180
+ }), ti = _ === "memory" ? void 0 : (await N(_)).makeSqlLayer(O()), ni = async () => jt({
2181
+ sqlLayer: ti,
2182
+ declared: S,
2181
2183
  log: $
2182
- }), ni = {
2184
+ }), ii = {
2183
2185
  kind: "api",
2184
2186
  meta: {
2185
2187
  name: h?.name ?? "voltro-api",
2186
- voltroVersion: Mt,
2187
- port: le,
2188
+ voltroVersion: k,
2189
+ port: ue,
2188
2190
  mode: "start",
2189
2191
  store: _,
2190
- cdc: de ? "on" : "off",
2191
- ...Qr === void 0 ? {} : { databaseId: Qr }
2192
+ cdc: pe ? "on" : "off",
2193
+ ...ei === void 0 ? {} : { databaseId: ei }
2192
2194
  },
2193
- rpc: De(b, p),
2194
- workflows: ne(b, p),
2195
- migrations: ei,
2195
+ rpc: ke(y, m),
2196
+ workflows: p(y, m),
2197
+ migrations: ni,
2196
2198
  events: () => Y.eventsSnapshot(),
2197
2199
  agentTools: () => Y.agentTools(),
2198
2200
  invariantChecks: () => ({
2199
2201
  mode: "serve",
2200
- accessGate: he,
2202
+ accessGate: _e,
2201
2203
  config: h,
2202
- serverOnlyLeaks: b.serverOnlyLeaks,
2203
- migrations: ei
2204
+ serverOnlyLeaks: y.serverOnlyLeaks,
2205
+ migrations: ni
2204
2206
  }),
2205
2207
  members: () => Y.membersSnapshot(),
2206
2208
  inspectFireSchedule: async ({ name: e, trigger: t }) => {
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
+ if (!yr) throw Error("scheduler not started — this app registers no self-triggered schedules (all schedules are trigger:'external', or there are none).");
2210
+ return { runId: await yr.fireNow(e, t) ?? null };
2209
2211
  },
2210
- inspectBackfillSchedule: m({
2211
- getHandle: () => _r,
2212
- getSchedules: () => tr
2212
+ inspectBackfillSchedule: re({
2213
+ getHandle: () => yr,
2214
+ getSchedules: () => rr
2213
2215
  }),
2214
- ...xe === void 0 ? {} : { webhooks: () => T({
2216
+ ...Ce === void 0 ? {} : { webhooks: () => mt({
2215
2217
  store: w,
2216
- discoveredWebhooks: xe
2218
+ discoveredWebhooks: Ce
2217
2219
  }) },
2218
2220
  plugins: () => ({
2219
- plugins: R.snapshot(),
2221
+ plugins: L.snapshot(),
2220
2222
  capturedAt: Date.now()
2221
2223
  }),
2222
- env: () => Zt(h?.name ?? Pn(p), {
2223
- ...h?.env !== void 0 && Ni(h.env) ? { contract: h.env } : {},
2224
+ env: () => $t(h?.name ?? In(m), {
2225
+ ...h?.env !== void 0 && Pi(h.env) ? { contract: h.env } : {},
2224
2226
  plugins: h?.plugins ?? []
2225
2227
  }),
2226
- dataCache: () => Vt({
2227
- stats: xt,
2228
+ dataCache: () => Ut({
2229
+ stats: St,
2228
2230
  backendKind: _t
2229
2231
  }),
2230
- subscriptions: () => Ee(() => z),
2231
- inspectTables: () => Te(C),
2232
- inspectRows: qt({
2232
+ subscriptions: () => Oe(() => R),
2233
+ inspectTables: () => b(S),
2234
+ inspectRows: M({
2233
2235
  store: w,
2234
- tables: C,
2236
+ tables: S,
2235
2237
  mask: !0
2236
2238
  }),
2237
2239
  metrics: (e) => Y.rpcMetrics().snapshot(e),
2238
- cluster: () => We({
2240
+ cluster: () => Ge({
2239
2241
  store: w,
2240
2242
  dialect: _,
2241
- useClusterCron: cr,
2242
- scheduleCoordChoice: U
2243
+ useClusterCron: ur,
2244
+ scheduleCoordChoice: H
2243
2245
  }),
2244
- inspectSchedules: () => g({
2245
- schedules: tr,
2246
- defaultTrigger: ar,
2247
- coordination: gr
2246
+ inspectSchedules: () => ie({
2247
+ schedules: rr,
2248
+ defaultTrigger: sr,
2249
+ coordination: vr
2248
2250
  }),
2249
- inspectScheduleRuns: (e) => ke(w, e),
2250
- ...Rt(w, {
2251
- controls: it(b.workflows ?? []),
2252
- active: (b.workflows?.length ?? 0) > 0,
2251
+ inspectScheduleRuns: (e) => je(w, e),
2252
+ ...Bt(w, {
2253
+ controls: at(y.workflows ?? []),
2254
+ active: (y.workflows?.length ?? 0) > 0,
2253
2255
  cancellation: () => Y.flowControlHealth()
2254
2256
  }),
2255
- webhookActions: te(() => Y.webhooksService()),
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({
2257
+ webhookActions: ne(() => Y.webhooksService()),
2258
+ inspectStartWorkflow: (e) => q().inspectStartWorkflow(e),
2259
+ inspectCancelWorkflowRun: (e) => q().inspectCancelWorkflowRun(e),
2260
+ inspectSuspendWorkflowRun: (e) => q().inspectSuspendWorkflowRun(e),
2261
+ inspectResumeWorkflowRun: (e) => q().inspectResumeWorkflowRun(e),
2262
+ inspectDiscardWorkflowRun: (e) => q().inspectDiscardWorkflowRun(e),
2263
+ inspectRetryWorkflowRun: (e) => q().inspectRetryWorkflowRun(e),
2264
+ inspectSignalWorkflowRun: (e) => q().inspectSignalWorkflowRun(e),
2265
+ inspectUpdateWorkflowRun: (e) => q().inspectUpdateWorkflowRun(e),
2266
+ inspectInferences: (e) => yt({
2265
2267
  store: w,
2266
- active: (b.workflows?.length ?? 0) > 0,
2268
+ active: (y.workflows?.length ?? 0) > 0,
2267
2269
  dispatcher: () => Y.inferenceHealth()
2268
2270
  }, e.limit === void 0 ? {} : { limit: e.limit }),
2269
- ...st({
2271
+ ...ct({
2270
2272
  store: w,
2271
2273
  cancelRun: async (e) => await Y.runCanceller()?.(e) ?? !1,
2272
- retryRun: async (e) => J().inspectRetryWorkflowRun({ runId: e }),
2274
+ retryRun: async (e) => q().inspectRetryWorkflowRun({ runId: e }),
2273
2275
  redriveRun: async (e) => Y.redriveWorkflowRun({ runId: e }),
2274
2276
  log: $
2275
2277
  }),
2276
2278
  inspectRedriveWorkflowRun: (e) => Y.redriveWorkflowRun(e),
2277
2279
  inspectResumeWorkflowRunFromStep: (e) => Y.resumeWorkflowRunFromStep(e)
2278
- }, ri = (process.env.VOLTRO_TENANT_ISOLATION ?? h?.tenancy?.isolation) === "namespace", ii = ri && _ !== "memory" ? await (async () => {
2279
- let e = await P(_);
2280
- return et({
2281
- tables: C,
2280
+ }, ai = (process.env.VOLTRO_TENANT_ISOLATION ?? h?.tenancy?.isolation) === "namespace", oi = ai && _ !== "memory" ? await (async () => {
2281
+ let e = await N(_);
2282
+ return tt({
2283
+ tables: S,
2282
2284
  sqlLayer: e.makeSqlLayer(O()),
2283
2285
  dialect: _,
2284
2286
  options: { retryFilter: e.retryFilter },
@@ -2287,115 +2289,115 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2287
2289
  error: (e, t, n) => $.error(e, t ?? {}, n)
2288
2290
  }
2289
2291
  });
2290
- })() : void 0, ai = await at({
2292
+ })() : void 0, si = await ot({
2291
2293
  input: h?.tenancy?.residency,
2292
- namespaceIsolationOn: ri,
2293
- makeStoreForUrl: (e, t) => ct(h, void 0, Qt(O(), t)),
2294
+ namespaceIsolationOn: ai,
2295
+ makeStoreForUrl: (e, t) => lt(h, void 0, P(O(), t)),
2294
2296
  log: {
2295
2297
  info: (e, t) => $.info(e, t),
2296
2298
  warn: (e, t) => $.warn(e, t)
2297
2299
  }
2298
2300
  });
2299
- ai !== void 0 && oi(async () => {
2300
- await ai.close();
2301
+ si !== void 0 && J(async () => {
2302
+ await si.close();
2301
2303
  });
2302
- let Y = await bo({
2303
- bootTiming: l,
2304
- broadcastNamespace: Mn,
2304
+ let Y = await xo({
2305
+ bootTiming: u,
2306
+ broadcastNamespace: Pn,
2305
2307
  scheduling: (() => {
2306
- let e = Jt;
2308
+ let e = Xt;
2307
2309
  return {
2308
2310
  admissionDrainMs: e.admissionDrainMs,
2309
2311
  inferenceTickMs: e.inferenceTickMs,
2310
2312
  cancelSweepMs: e.cancelSweepMs,
2311
2313
  stalenessSweepMs: e.stalenessSweepMs,
2312
- disarmWhenIdle: Lt({
2314
+ disarmWhenIdle: zt({
2313
2315
  changeScope: w.changeScope,
2314
- broadcastAttached: Gn !== void 0
2316
+ broadcastAttached: qn !== void 0
2315
2317
  })
2316
2318
  };
2317
2319
  })(),
2318
2320
  ...h?.workflows?.staleness === void 0 ? {} : { workflowStaleness: h.workflows.staleness },
2319
2321
  ...h?.workflows?.suspendSignalHintMs === void 0 ? {} : { workflowSuspendSignalHintMs: h.workflows.suspendSignalHintMs },
2320
- workflowRecording: Ge(h?.workflows?.recording),
2322
+ workflowRecording: Ke(h?.workflows?.recording),
2321
2323
  membership: {
2322
- ...Nn,
2323
- instanceId: kn
2324
+ ...Fn,
2325
+ instanceId: jn
2324
2326
  },
2325
2327
  security: {
2326
- defaultDeny: Me(h),
2327
- ...ue(h)
2328
+ defaultDeny: Pe(h),
2329
+ ...de(h)
2328
2330
  },
2329
- approvals: { defaultExpiryMs: Re(h) },
2331
+ approvals: { defaultExpiryMs: Be(h) },
2330
2332
  ...h?.plugins === void 0 ? {} : { plugins: h.plugins },
2331
- ...Qn ? { idempotency: Qn } : {},
2332
- restRoutes: Zn,
2333
+ ...er ? { idempotency: er } : {},
2334
+ restRoutes: $n,
2333
2335
  ...h?.grpc === void 0 ? {} : { grpc: {
2334
2336
  config: h.grpc,
2335
- root: p
2337
+ root: m
2336
2338
  } },
2337
- appProcedures: he,
2339
+ appProcedures: _e,
2338
2340
  discovered: {
2339
- wsGateways: b.wsGateways,
2340
- queries: [...b.queries, ...Xr],
2341
- mutations: b.mutations,
2342
- actions: [...b.actions, ...Yr],
2343
- streams: b.streams,
2344
- events: b.events,
2345
- workflows: b.workflows,
2346
- workflowWorkers: b.workflowWorkers,
2347
- eventTriggers: b.eventTriggers,
2348
- schedules: tr,
2349
- subscribers: wr,
2350
- outboxHandlers: K,
2351
- connections: b.connections,
2352
- reactions: Er,
2353
- aggregates: q,
2354
- expectations: Rr,
2355
- budgets: Gr,
2356
- experiments: Jr,
2357
- ...xe === void 0 ? {} : { webhooks: xe }
2341
+ wsGateways: y.wsGateways,
2342
+ queries: [...y.queries, ...Qr],
2343
+ mutations: y.mutations,
2344
+ actions: [...y.actions, ...Zr],
2345
+ streams: y.streams,
2346
+ events: y.events,
2347
+ workflows: y.workflows,
2348
+ workflowWorkers: y.workflowWorkers,
2349
+ eventTriggers: y.eventTriggers,
2350
+ schedules: rr,
2351
+ subscribers: Er,
2352
+ outboxHandlers: G,
2353
+ connections: y.connections,
2354
+ reactions: Or,
2355
+ aggregates: K,
2356
+ expectations: Br,
2357
+ budgets: qr,
2358
+ experiments: Xr,
2359
+ ...Ce === void 0 ? {} : { webhooks: Ce }
2358
2360
  },
2359
2361
  log: $,
2360
- analytics: Pe.sink,
2361
- aggregateStorage: kr,
2362
- aggregateCoordinator: Ar,
2362
+ analytics: Ie.sink,
2363
+ aggregateStorage: jr,
2364
+ aggregateCoordinator: Mr,
2363
2365
  store: w,
2364
- kv: Tt,
2365
- cache: tt,
2366
- snapshotCache: $e,
2366
+ kv: Dt,
2367
+ cache: nt,
2368
+ snapshotCache: et,
2367
2369
  ...h?.reactive === void 0 ? {} : { reactive: h.reactive },
2368
- schemaRegistry: Le,
2369
- tenantScopedTables: b.tenantScopedTables,
2370
- softDeleteScopedTables: b.softDeleteScopedTables,
2371
- dataTransferSnapshot: fr(C, _),
2370
+ schemaRegistry: ze,
2371
+ tenantScopedTables: y.tenantScopedTables,
2372
+ softDeleteScopedTables: y.softDeleteScopedTables,
2373
+ dataTransferSnapshot: mr(S, _),
2372
2374
  dataTransferDialect: _,
2373
- ...ii === void 0 ? {} : { ensureTenantProvisioned: ii.ensure },
2374
- ...ai === void 0 ? {} : { resolveResidentStore: ai.resolveStore },
2375
+ ...oi === void 0 ? {} : { ensureTenantProvisioned: oi.ensure },
2376
+ ...si === void 0 ? {} : { resolveResidentStore: si.resolveStore },
2375
2377
  tenantIsolation: (process.env.VOLTRO_TENANT_ISOLATION ?? h?.tenancy?.isolation) === "namespace" ? "namespace" : "shared-schema",
2376
- resolveSubject: (e, t) => Xn({
2378
+ resolveSubject: (e, t) => Qn({
2377
2379
  headers: e,
2378
2380
  clientId: t
2379
2381
  }),
2380
2382
  ...h?.auth === void 0 ? {} : { authority: h.auth },
2381
2383
  ...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,
2384
+ httpRoutes: j.flatMap((e) => e.httpRoutes ?? []),
2385
+ getStore: () => Ze,
2386
+ ...nr ? { baseLayer: nr } : {},
2387
+ ...xr === void 0 ? {} : { workflowEngineLayer: xr },
2388
+ scheduleDefaultTrigger: sr,
2389
+ scheduleCoordination: vr,
2390
+ scheduleArmSelf: !ur,
2389
2391
  dormancy: process.env.VOLTRO_DORMANCY === "sleep" || process.env.VOLTRO_DORMANCY === "always-on" ? process.env.VOLTRO_DORMANCY : h?.dormancy ?? "always-on",
2390
2392
  scheduleReplicaId: process.env.HOSTNAME ?? `pid-${process.pid}`,
2391
- ...br === void 0 ? {} : { scheduleFireInterceptor: br },
2393
+ ...Sr === void 0 ? {} : { scheduleFireInterceptor: Sr },
2392
2394
  onSchedulerReady: (e) => {
2393
- _r = e;
2395
+ yr = e;
2394
2396
  },
2395
- inspectRoute: { handle: async (e, t, n, r) => await ve(e, ni, t, {
2397
+ inspectRoute: { handle: async (e, t, n, r) => await be(e, ii, t, {
2396
2398
  method: n,
2397
2399
  ...r === void 0 ? {} : { body: r }
2398
- }) || ((n === "GET" ? await yn(e, ni, t, { method: n }) : null) ?? vn(e, ni, t, {
2400
+ }) || ((n === "GET" ? await xn(e, ii, t, { method: n }) : null) ?? bn(e, ii, t, {
2399
2401
  method: n,
2400
2402
  ...r === void 0 ? {} : { body: r }
2401
2403
  }) ?? {
@@ -2404,40 +2406,40 @@ var ia = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy <
2404
2406
  body: JSON.stringify({ error: "not an inspect route" })
2405
2407
  }) },
2406
2408
  ...h?.name === void 0 ? {} : { appName: h.name },
2407
- observability: Hn,
2408
- port: le,
2409
+ observability: Wn,
2410
+ port: ue,
2409
2411
  ...h?.transport?.wsPath ? { path: h.transport.wsPath } : {},
2410
2412
  ...h?.http === void 0 ? {} : { http: h.http }
2411
2413
  });
2412
- return z = Y.dispatcher, ft(d([
2413
- b.queries,
2414
- b.mutations,
2415
- b.actions,
2416
- b.streams
2414
+ return R = Y.dispatcher, pt(f([
2415
+ y.queries,
2416
+ y.mutations,
2417
+ y.actions,
2418
+ y.streams
2417
2419
  ]), (e) => {
2418
2420
  $.warn(e);
2419
- }), $.info(`API listening on :${le}`, {
2421
+ }), $.info(`API listening on :${ue}`, {
2420
2422
  dialect: _,
2421
- queries: b.queries.length,
2422
- mutations: b.mutations.length,
2423
- actions: b.actions.length,
2424
- streams: b.streams.length,
2425
- workflows: b.workflows.length,
2426
- workflowWorkers: b.workflowWorkers.length,
2427
- schedules: tr.length,
2428
- scheduleCoordination: gr
2429
- }), l.finish($), oi(async () => {
2430
- for (let e of Tn) e.stop();
2431
- Pt.stop();
2423
+ queries: y.queries.length,
2424
+ mutations: y.mutations.length,
2425
+ actions: y.actions.length,
2426
+ streams: y.streams.length,
2427
+ workflows: y.workflows.length,
2428
+ workflowWorkers: y.workflowWorkers.length,
2429
+ schedules: rr.length,
2430
+ scheduleCoordination: vr
2431
+ }), u.finish($), J(async () => {
2432
+ for (let e of Dn) e.stop();
2433
+ It.stop();
2432
2434
  try {
2433
- await Y.close(), wt(), zt?.dispose(), await R.deactivate(), await Gn?.close(), await Ot({
2434
- mirror: Nt,
2435
+ await Y.close(), Et(), Vt?.dispose(), await L.deactivate(), await qn?.close(), await At({
2436
+ mirror: Pt,
2435
2437
  log: $
2436
- }), await Pe.dispose(), await w.close?.();
2438
+ }), await Ie.dispose(), await w.close?.();
2437
2439
  } catch (e) {
2438
2440
  console.error("serve: shutdown step failed, exiting anyway:", e);
2439
2441
  }
2440
2442
  }), await new Promise(() => {}), 0;
2441
2443
  };
2442
2444
  //#endregion
2443
- export { Co as n, xo as r, wo as t };
2445
+ export { wo as n, So as r, To as t };