@voltro/cli 0.31.0 → 0.32.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 (74) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/dist/{apiBuild-CLPt-pX6.js → apiBuild-C4uEbs3s.js} +2 -2
  3. package/dist/apiBuild-OJEjtwcn.js +2 -0
  4. package/dist/bin.js +3 -3
  5. package/dist/checkCommand-CwMrzAgV.js +2 -0
  6. package/dist/{checkCommand-D7r6_pk7.js → checkCommand-dm7OHtPt.js} +328 -288
  7. package/dist/{commands-CNVVv03h.js → commands-C0nEePif.js} +53 -11
  8. package/dist/dbCommand-By__Ev0R.js +2 -0
  9. package/dist/{dbCommand-BH8GAYuf.js → dbCommand-ifOMafuG.js} +90 -82
  10. package/dist/{dev-DdQEn2Ia.js → dev-5ficNnvF.js} +1232 -1224
  11. package/dist/{dev-DOZVMVfi.js → dev-rc3fwPSZ.js} +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/{inspectMetrics-BeEAnjqw.js → inspectMetrics-BqO4E9G0.js} +757 -715
  14. package/dist/{sdkgen-v9WV8zRi.js → sdkgen-B_5mHQS2.js} +1 -1
  15. package/dist/{serveCommand-KsKXXWn4.js → serveCommand-PxMmn96o.js} +366 -366
  16. package/dist/serveEntry.js +2 -2
  17. package/dist/{start-CI2QdKy9.js → start-D1-8eKrO.js} +1 -1
  18. package/dist/startEntry.js +2 -2
  19. package/package.json +417 -17
  20. package/templates/AGENTS.md +1 -1
  21. package/templates/agent-docs/_index.md +1 -1
  22. package/templates/agent-docs/plugins/audit.md +24 -0
  23. package/templates/agent-docs/security.md +9 -0
  24. package/templates/agent-docs/whats-new.md +109 -61
  25. package/templates/apps/api-ai/package.json +7 -7
  26. package/templates/apps/api-auth/package.json +8 -8
  27. package/templates/apps/api-backend/package.json +7 -7
  28. package/templates/apps/api-backend-deactivation/package.json +7 -7
  29. package/templates/apps/api-backend-mail/package.json +8 -8
  30. package/templates/apps/api-backend-mariadb/package.json +9 -9
  31. package/templates/apps/api-backend-sqlite/package.json +8 -8
  32. package/templates/apps/api-backend-storage/package.json +8 -8
  33. package/templates/apps/api-cms/package.json +10 -10
  34. package/templates/apps/api-collab/package.json +8 -8
  35. package/templates/apps/api-data-advanced/package.json +8 -8
  36. package/templates/apps/api-durable/package.json +8 -8
  37. package/templates/apps/api-feature-flags/package.json +9 -9
  38. package/templates/apps/api-governance/package.json +8 -8
  39. package/templates/apps/api-kv/package.json +8 -8
  40. package/templates/apps/api-moderation/package.json +8 -8
  41. package/templates/apps/api-observability/package.json +8 -8
  42. package/templates/apps/api-ratelimit/package.json +8 -8
  43. package/templates/apps/api-rbac/package.json +8 -8
  44. package/templates/apps/api-rest/package.json +7 -7
  45. package/templates/apps/api-saas/package.json +11 -11
  46. package/templates/apps/api-saas-starter/package.json +10 -10
  47. package/templates/apps/api-search/package.json +8 -8
  48. package/templates/apps/api-status/package.json +8 -8
  49. package/templates/apps/api-versioning/package.json +8 -8
  50. package/templates/apps/api-webhooks/package.json +9 -9
  51. package/templates/apps/changelog/package.json +6 -6
  52. package/templates/apps/edge-functions/package.json +2 -2
  53. package/templates/apps/frontend-admin/package.json +8 -8
  54. package/templates/apps/frontend-app/package.json +8 -8
  55. package/templates/apps/frontend-auth/package.json +8 -8
  56. package/templates/apps/frontend-blank/package.json +7 -7
  57. package/templates/apps/frontend-cms/package.json +9 -9
  58. package/templates/apps/frontend-collab/package.json +9 -9
  59. package/templates/apps/frontend-contact/package.json +7 -7
  60. package/templates/apps/frontend-dashboard/package.json +7 -7
  61. package/templates/apps/frontend-docs/package.json +7 -7
  62. package/templates/apps/frontend-i18n/package.json +6 -6
  63. package/templates/apps/frontend-landing/package.json +7 -7
  64. package/templates/apps/frontend-portal/package.json +8 -8
  65. package/templates/apps/frontend-saas/package.json +8 -8
  66. package/templates/apps/frontend-spa/package.json +7 -7
  67. package/templates/apps/frontend-ssr/package.json +7 -7
  68. package/templates/apps/frontend-ssr-api/package.json +8 -8
  69. package/templates/apps/frontend-static-blog/package.json +6 -6
  70. package/templates/apps/frontend-status/package.json +8 -8
  71. package/templates/apps/mobile-app/package.json +2 -2
  72. package/dist/apiBuild-BOqL1dlg.js +0 -2
  73. package/dist/checkCommand-ClRvH_SN.js +0 -2
  74. package/dist/dbCommand-BwQ_Jl98.js +0 -2
@@ -1,20 +1,20 @@
1
- import { _t as e, ht as t, ot as n, t as r } from "./inspectMetrics-BeEAnjqw.js";
1
+ import { _t as e, ht as t, ot as n, t as r } from "./inspectMetrics-BqO4E9G0.js";
2
2
  import { n as i, s as a, t as o } from "./seedRunner-Bqxgp7HZ.js";
3
3
  import { r as s, t as c } from "./appModuleLoader-C9r9mxZt.js";
4
- import { $ as l, $t as u, A as d, At as f, B as p, Bt as ee, C as te, Ct as ne, D as m, Dt as h, E as re, Et as ie, F as g, Ft as ae, G as _, H as oe, I as v, J as y, Jt as se, K as ce, Kt as le, L as ue, Lt as de, M as fe, Mt as pe, N as b, Nt as x, O as S, Ot as me, P as he, Pt as C, Q as w, Qt as ge, R as _e, Rt as ve, S as T, St as ye, T as be, Tt as xe, U as Se, V as Ce, W as we, X as Te, Xt as E, Y as Ee, Yt as D, Z as De, Zt as Oe, _ as ke, _t as O, an as Ae, at as k, b as je, bt as Me, c as A, ct as Ne, d as Pe, dt as Fe, en as Ie, et as Le, ft as Re, g as ze, gt as Be, h as Ve, ht as He, i as j, in as Ue, it as We, j as Ge, jt as Ke, k as qe, kt as Je, lt as Ye, mt as Xe, nn as Ze, nt as Qe, o as M, on as $e, ot as et, pt as tt, q as nt, qt as N, r as P, rt, st as it, t as at, tn as ot, tt as st, u as ct, ut as lt, v as ut, vt as dt, w as ft, wt as pt, x as mt, xt as ht, y as gt, yt as F, zt as _t } from "./dev-DdQEn2Ia.js";
5
- import { b as vt, f as yt, g as I, h as L, m as bt, r as xt, y as St } from "./frameworkTableAssembly-BwIrO5nv.js";
6
- import { S as Ct, c as wt, n as Tt, p as Et, s as R } from "./fileConventions-Cof68_BL.js";
7
- import { m as Dt } from "./inspect-BUUjt773.js";
8
- import { n as Ot, t as kt } from "./startupRunner-DPGFchOa.js";
9
- import { r as At, u as jt } from "./apiBuild-CLPt-pX6.js";
10
- import { t as z } from "./bootTiming-BdyP9nYw.js";
11
- import { n as Mt } from "./cliArgs-qdZSElM3.js";
12
- import { basename as Nt, join as Pt } from "node:path";
13
- import { pathToFileURL as Ft } from "node:url";
14
- import { Cause as It, Effect as B, Layer as V, ManagedRuntime as Lt } from "effect";
15
- import { createLogger as H } from "@voltro/logger";
16
- import { existsSync as Rt } from "node:fs";
17
- import { AggregateRegistry as zt, CostRegistry as Bt, Dispatcher as Vt, ExpectationRegistry as Ht, ExperimentRegistry as Ut, apiKeyManagementRoutes as Wt, attachAnalyticsMirror as Gt, attachExpectations as Kt, attachExperiments as qt, attachFinops as Jt, awaitServerListening as Yt, bindMutation as U, bindStream as Xt, bindSubscription as W, buildTracingLayer as Zt, cancelWakeup as Qt, compileCron as $t, dataStoreApiKeyStore as en, dataStoreIdempotencyStore as tn, formatServerOnlyLeaks as nn, formatUnresolvedSources as rn, frameworkApiKeyStrategy as an, getCredentialExpiry as on, installPolicyGuardResolver as sn, loadResourceTuples as cn, makeActionRunner as ln, makeAdvisoryLockCoordinator as un, makeApiKeyService as dn, makeApiKeyUsageBuffer as fn, makeApiKeyUsageFlusher as pn, makeAsyncKv as mn, makeCoordinatedScheduler as hn, makeEffectStoreLayer as gn, makeLazyWorkflowFacade as _n, makeMutationOutputCodec as vn, makeMutationRunner as yn, makeOneShotQueryRunner as bn, makeQueryDescriptorProducer as xn, makeQueryFinalizer as Sn, makeQueryReauthorizer as Cn, makeQuerySubscriber as wn, makeSchemaRegistry as Tn, makeWorkflowFacade as En, makeWorkflowFacadeWithCallerContext as G, makeWorkflowLayers as Dn, noopKv as K, onProcessShutdown as On, recordCredentialExpiry as kn, recordSubscriptionDelivery as An, recordWorkflowRun as jn, registerWakeup as Mn, resolveSecretsBackend as Nn, runProvidedEffect as Pn, setSecretsBackend as Fn, setSystemStoreHandle as In, setTupleSource as Ln, singleCoordinator as Rn, startRpcServer as zn, startScheduler as Bn, stripForbiddenForWire as Vn, unresolvedSources as Hn, workflowToRpc as Un, wrapStoreWithBootCodec as Wn } from "@voltro/runtime";
4
+ import { $ as l, $t as u, A as d, At as f, B as p, Bt as ee, C as te, Ct as ne, D as m, Dt as h, E as re, Et as ie, F as g, Ft as ae, G as _, H as oe, I as v, J as y, Jt as se, K as ce, Kt as le, L as ue, Lt as de, M as fe, Mt as pe, N as b, Nt as x, O as me, Ot as he, P as ge, Pt as _e, Q as S, Qt as ve, R as ye, Rt as be, S as C, St as xe, T as Se, Tt as Ce, U as w, V as we, W as Te, X as Ee, Xt as De, Y as Oe, Yt as ke, Z as Ae, Zt as je, _ as Me, _t as T, an as Ne, at as E, b as Pe, bt as Fe, c as D, ct as Ie, d as Le, dt as Re, en as ze, et as Be, ft as Ve, g as He, gt as Ue, h as O, ht as We, i as k, in as Ge, it as Ke, j as qe, jt as Je, k as Ye, kt as Xe, lt as Ze, mt as Qe, nn as $e, nt as et, o as A, on as tt, ot as nt, pt as rt, q as it, qt as j, r as M, rt as at, st as ot, t as st, tn as ct, tt as lt, u as ut, ut as dt, v as ft, vt as pt, w as mt, wt as ht, x as gt, xt as _t, y as vt, yt as N, zt as yt } from "./dev-5ficNnvF.js";
5
+ import { b as bt, f as xt, g as P, h as F, m as St, r as Ct, y as wt } from "./frameworkTableAssembly-BwIrO5nv.js";
6
+ import { S as Tt, c as Et, n as Dt, p as Ot, s as kt } from "./fileConventions-Cof68_BL.js";
7
+ import { m as I } from "./inspect-BUUjt773.js";
8
+ import { n as At, t as jt } from "./startupRunner-DPGFchOa.js";
9
+ import { r as Mt, u as L } from "./apiBuild-C4uEbs3s.js";
10
+ import { t as Nt } from "./bootTiming-BdyP9nYw.js";
11
+ import { n as R } from "./cliArgs-qdZSElM3.js";
12
+ import { basename as Pt, join as Ft } from "node:path";
13
+ import { pathToFileURL as It } from "node:url";
14
+ import { Cause as Lt, Effect as z, Layer as B, ManagedRuntime as Rt } from "effect";
15
+ import { createLogger as V } from "@voltro/logger";
16
+ import { existsSync as zt } from "node:fs";
17
+ import { AggregateRegistry as Bt, CostRegistry as Vt, Dispatcher as Ht, ExpectationRegistry as Ut, ExperimentRegistry as H, apiKeyManagementRoutes as Wt, attachAnalyticsMirror as Gt, attachExpectations as Kt, attachExperiments as qt, attachFinops as Jt, awaitServerListening as Yt, bindMutation as U, bindStream as Xt, bindSubscription as W, buildTracingLayer as Zt, cancelWakeup as Qt, compileCron as $t, dataStoreApiKeyStore as en, dataStoreIdempotencyStore as tn, formatServerOnlyLeaks as nn, formatUnresolvedSources as rn, frameworkApiKeyStrategy as an, getCredentialExpiry as on, installPolicyGuardResolver as sn, loadResourceTuples as cn, makeActionRunner as ln, makeAdvisoryLockCoordinator as un, makeApiKeyService as dn, makeApiKeyUsageBuffer as fn, makeApiKeyUsageFlusher as pn, makeAsyncKv as mn, makeCoordinatedScheduler as hn, makeEffectStoreLayer as gn, makeLazyWorkflowFacade as _n, makeMutationOutputCodec as vn, makeMutationRunner as yn, makeOneShotQueryRunner as bn, makeQueryDescriptorProducer as xn, makeQueryFinalizer as Sn, makeQueryReauthorizer as Cn, makeQuerySubscriber as wn, makeSchemaRegistry as Tn, makeWorkflowFacade as En, makeWorkflowFacadeWithCallerContext as G, makeWorkflowLayers as Dn, noopKv as K, onProcessShutdown as On, recordCredentialExpiry as kn, recordSubscriptionDelivery as An, recordWorkflowRun as jn, registerWakeup as Mn, resolveSecretsBackend as Nn, runProvidedEffect as Pn, setSecretsBackend as Fn, setSystemStoreHandle as In, setTupleSource as Ln, singleCoordinator as Rn, startRpcServer as zn, startScheduler as Bn, stripForbiddenForWire as Vn, unresolvedSources as Hn, workflowToRpc as Un, wrapStoreWithBootCodec as Wn } from "@voltro/runtime";
18
18
  import { RpcGroup as Gn } from "@effect/rpc";
19
19
  import { SqlClient as Kn } from "@effect/sql";
20
20
  import { allRegisteredTables as qn, and as Jn, ensureTableRegistered as Yn, eq as q, or as Xn } from "@voltro/database";
@@ -51,7 +51,7 @@ var Ur = (e, t) => {
51
51
  if (!t || t.length < 16) return Q(503, { error: "data transfer misconfigured (no/weak secret)" });
52
52
  let n = qr(e.headers);
53
53
  return !n || !Jr(n, t) ? Q(401, { error: "unauthorized" }) : null;
54
- }, Xr = H({ scope: "voltro:admin-import" }), Zr = "VBUNDLE2", Qr = async function* (e) {
54
+ }, Xr = V({ scope: "voltro:admin-import" }), Zr = "VBUNDLE2", Qr = async function* (e) {
55
55
  yield e;
56
56
  }, $r = (e) => async (t) => {
57
57
  let n = Yr(t, e.secret);
@@ -75,7 +75,7 @@ var Ur = (e, t) => {
75
75
  dir: p,
76
76
  blobs: e.assetSink
77
77
  }) : await Hr(c, p);
78
- let t = await B.runPromiseExit(Rr({
78
+ let t = await z.runPromiseExit(Rr({
79
79
  store: e.store,
80
80
  bundleDir: p,
81
81
  ...r ? { mode: r } : {},
@@ -130,7 +130,7 @@ var Ur = (e, t) => {
130
130
  force: !0
131
131
  });
132
132
  }
133
- }, ei = H({ scope: "voltro:admin-export" }), ti = async (e) => {
133
+ }, ei = V({ scope: "voltro:admin-export" }), ti = async (e) => {
134
134
  let t = [];
135
135
  for await (let n of e) t.push(Buffer.from(n));
136
136
  return new Uint8Array(Buffer.concat(t));
@@ -163,7 +163,7 @@ var Ur = (e, t) => {
163
163
  }
164
164
  let a = r.consistency === "snapshot" ? "snapshot" : i.consistency ?? "live", o = (typeof r.compression == "string" ? r.compression : void 0) ?? i.compression, s = i.scope ?? ni(r), c = typeof r.bundleKey == "string" && r.bundleKey.length > 0, l = r.assets === !0 && e.assetSource ? { blobs: e.assetSource } : {}, u = await import("node:os"), d = await import("node:fs/promises"), f = await import("node:path"), p = await d.mkdtemp(f.join(u.tmpdir(), "voltro-admin-export-"));
165
165
  try {
166
- let t = await B.runPromise(Lr({
166
+ let t = await z.runPromise(Lr({
167
167
  store: e.store,
168
168
  snapshot: e.snapshot,
169
169
  dialect: e.dialect,
@@ -239,7 +239,7 @@ var Ur = (e, t) => {
239
239
  if (!o) throw Error(`data profile '${i}' has no default export`);
240
240
  return o;
241
241
  }, ai = (e, t, n = {}) => (async function* () {
242
- let r = await tr((await B.runPromise($n(e, t).pipe(B.timeout(n.openTimeout ?? "30 seconds")))).stream), i = n.stallMs ?? 12e4, a, o = () => {
242
+ let r = await tr((await z.runPromise($n(e, t).pipe(z.timeout(n.openTimeout ?? "30 seconds")))).stream), i = n.stallMs ?? 12e4, a, o = () => {
243
243
  a && clearTimeout(a), a = setTimeout(() => r.destroy(/* @__PURE__ */ Error(`storage read stalled for ${i}ms reading '${t}'`)), i);
244
244
  };
245
245
  try {
@@ -262,7 +262,7 @@ var Ur = (e, t) => {
262
262
  dataStore: e.store,
263
263
  schemaRegistry: e.schemaRegistry
264
264
  });
265
- let t = (e.discovered.budgets?.length ?? 0) > 0, n, i = new Vt({
265
+ let t = (e.discovered.budgets?.length ?? 0) > 0, n, i = new Ht({
266
266
  store: e.store,
267
267
  ...e.snapshotCache ? { cache: e.snapshotCache } : {},
268
268
  ...t ? { recordCost: (e) => n?.record(e) } : {},
@@ -328,16 +328,16 @@ var Ur = (e, t) => {
328
328
  process.stderr.write(`[workflow] failed to load start context for ${n}: ${e?.message ?? String(e)}\n`);
329
329
  return;
330
330
  }
331
- }, _ = (e.discovered.workflows?.length ?? 0) > 0 ? _n(() => s) : void 0, se = (e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.eventTriggers?.length ?? 0) > 0, ue = se || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster", de = e.tenantIsolation === "namespace", pe = (e.log ?? H({ scope: "voltro:serve" })).child("webhooks"), S, me, w = e.discovered.webhooks;
332
- if (w && w.outgoing.length > 0 && e.workflowEngineLayer !== void 0) {
331
+ }, _ = (e.discovered.workflows?.length ?? 0) > 0 ? _n(() => s) : void 0, se = (e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.eventTriggers?.length ?? 0) > 0, ue = se || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster", de = e.tenantIsolation === "namespace", pe = (e.log ?? V({ scope: "voltro:serve" })).child("webhooks"), me, he, S = e.discovered.webhooks;
332
+ if (S && S.outgoing.length > 0 && e.workflowEngineLayer !== void 0) {
333
333
  e.workflowEngineLayer;
334
- let t = Oe({
334
+ let t = je({
335
335
  store: e.store,
336
336
  schemaRegistry: e.schemaRegistry,
337
337
  cache: a,
338
338
  kv: o
339
- }), n = w.outgoing.map((e) => e.descriptor);
340
- me = Dr.toLayer(wr(t, { events: n })), S = Tr(t, async (e) => {
339
+ }), n = S.outgoing.map((e) => e.descriptor);
340
+ he = Dr.toLayer(wr(t, { events: n })), me = Tr(t, async (e) => {
341
341
  let t = d;
342
342
  if (t === void 0) {
343
343
  pe.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.", {
@@ -354,8 +354,8 @@ var Ur = (e, t) => {
354
354
  });
355
355
  }, { events: n });
356
356
  }
357
- let ge = /* @__PURE__ */ new Map();
358
- if (w) for (let e of w.incoming) {
357
+ let ve = /* @__PURE__ */ new Map();
358
+ if (S) for (let e of S.incoming) {
359
359
  let t = e.descriptor.path ?? Er(e.descriptor.id), n = `VOLTRO_WEBHOOK_SECRET_${e.descriptor.id.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`, r = kr(e.descriptor, {
360
360
  resolveSecret: async () => process.env[n] ?? null,
361
361
  resolveWorkflows: () => _ === void 0 ? void 0 : G(_, {
@@ -373,22 +373,22 @@ var Ur = (e, t) => {
373
373
  e.status >= 500 ? pe.error("incoming delivery failed", t) : e.status >= 400 ? pe.warn("incoming delivery rejected", t) : pe.info("incoming delivery handled", t);
374
374
  }
375
375
  });
376
- ge.set(t, { handle: r });
376
+ ve.set(t, { handle: r });
377
377
  }
378
378
  sn(), Ln((t) => cn(e.store, t.subjectId, t.resourceType, t.resourceId));
379
- let _e = [...e.discovered.outboxHandlers ?? [], ...lt((w?.outgoing.length ?? 0) + (w?.incoming.length ?? 0) + (w?.providers.length ?? 0), []) ? [{
379
+ let ye = [...e.discovered.outboxHandlers ?? [], ...dt((S?.outgoing.length ?? 0) + (S?.incoming.length ?? 0) + (S?.providers.length ?? 0), []) ? [{
380
380
  file: "<framework>/webhooks",
381
381
  id: "voltro-webhook-emit",
382
- definition: Or(() => S)
383
- }] : []], ve = _e.length > 0 ? x({
384
- handlers: _e,
382
+ definition: Or(() => me)
383
+ }] : []], be = ye.length > 0 ? x({
384
+ handlers: ye,
385
385
  store: e.store,
386
- log: (e.log ?? H({ scope: "voltro:serve" })).child("outbox")
387
- }) : void 0, T = Ke({
386
+ log: (e.log ?? V({ scope: "voltro:serve" })).child("outbox")
387
+ }) : void 0, C = Je({
388
388
  definitions: (e.discovered.connections ?? []).map((e) => e.definition),
389
389
  store: e.store,
390
390
  publicUrl: f(e.port ?? 4e3),
391
- log: (e.log ?? H({ scope: "voltro:serve" })).child("connections")
391
+ log: (e.log ?? V({ scope: "voltro:serve" })).child("connections")
392
392
  });
393
393
  fe({
394
394
  events: e.discovered.events ?? [],
@@ -399,113 +399,113 @@ var Ur = (e, t) => {
399
399
  ...(e.discovered.streams ?? []).map((e) => e.descriptor.name)
400
400
  ]
401
401
  });
402
- let ye = (e.log ?? H({ scope: "voltro:serve" })).child("events"), be = e.broadcastNamespace ?? ut(e.plugins, void 0), Te = gt(e.plugins, be, ye), De = e.membership?.instanceId ?? process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, ke = e.membership ?? je(e.plugins, {
403
- instanceId: De,
404
- namespace: be,
402
+ let xe = (e.log ?? V({ scope: "voltro:serve" })).child("events"), Se = e.broadcastNamespace ?? ft(e.plugins, void 0), Ee = vt(e.plugins, Se, xe), Ae = e.membership?.instanceId ?? process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Me = e.membership ?? Pe(e.plugins, {
403
+ instanceId: Ae,
404
+ namespace: Se,
405
405
  meta: { mode: "serve" },
406
- logger: ye
407
- }), O = b({
406
+ logger: xe
407
+ }), T = b({
408
408
  events: e.discovered.events ?? [],
409
- origin: De,
410
- ...Te.publishRemote === void 0 ? {} : { publishRemote: Te.publishRemote }
411
- }), Ae = (e.discovered.events ?? []).length > 0 ? await Te.attach(O.bus) : null, A = E({
409
+ origin: Ae,
410
+ ...Ee.publishRemote === void 0 ? {} : { publishRemote: Ee.publishRemote }
411
+ }), Ne = (e.discovered.events ?? []).length > 0 ? await Ee.attach(T.bus) : null, D = De({
412
412
  store: e.store,
413
413
  schemaRegistry: e.schemaRegistry,
414
414
  cache: a,
415
415
  kv: o,
416
- ...S === void 0 ? {} : { webhooksService: S },
416
+ ...me === void 0 ? {} : { webhooksService: me },
417
417
  ..._ === void 0 ? {} : { workflowsProxy: _ },
418
418
  eventTriggers: e.discovered.eventTriggers ?? [],
419
419
  namespaceIsolationOn: de,
420
- ...ve === void 0 ? {} : { outbox: { nudge: ve.nudge } },
421
- ...T.active ? { connections: { registry: T.registry } } : {},
422
- eventBus: O.bus
423
- }), Pe = V.succeed(zt, Me), Fe = V.succeed(Ht, Xe), Ie = V.succeed(Bt, tt), Re = V.succeed(Ut, He), ze = (t, n) => {
424
- let r = t.pipe(B.provide(gn(n)));
425
- return (e.baseLayer ? r.pipe(B.provide(e.baseLayer)) : r).pipe(B.provide(Pe)).pipe(B.provide(Fe)).pipe(B.provide(Ie)).pipe(B.provide(Re));
426
- }, Be = (e, t) => Pn(ze(e, t)), Ve = r(), j = ce(e.plugins ?? [], Ve), Ue = we(e.plugins ?? [], Ve), Ge = yn({
420
+ ...be === void 0 ? {} : { outbox: { nudge: be.nudge } },
421
+ ...C.active ? { connections: { registry: C.registry } } : {},
422
+ eventBus: T.bus
423
+ }), Le = B.succeed(Bt, Fe), Re = B.succeed(Ut, Qe), ze = B.succeed(Vt, rt), Ve = B.succeed(H, We), He = (t, n) => {
424
+ let r = t.pipe(z.provide(gn(n)));
425
+ return (e.baseLayer ? r.pipe(z.provide(e.baseLayer)) : r).pipe(z.provide(Le)).pipe(z.provide(Re)).pipe(z.provide(ze)).pipe(z.provide(Ve));
426
+ }, Ue = (e, t) => Pn(He(e, t)), O = r(), k = ce(e.plugins ?? [], O), Ge = Te(e.plugins ?? [], O), qe = yn({
427
427
  store: e.store,
428
428
  recordMetric: (e) => {
429
- Ve.record(e);
429
+ O.record(e);
430
430
  },
431
- ...j.mutation === void 0 ? {} : { interceptor: j.mutation },
432
- buildContext: (e, t, n) => A(e, t, n),
433
- runEffect: Be,
434
- undoCapture: Ee()
435
- }), qe = y(), Je = ln({
436
- buildContext: (e) => A(e),
437
- runEffect: Be,
431
+ ...k.mutation === void 0 ? {} : { interceptor: k.mutation },
432
+ buildContext: (e, t, n) => D(e, t, n),
433
+ runEffect: Ue,
434
+ undoCapture: Oe()
435
+ }), Ye = y(), Xe = ln({
436
+ buildContext: (e) => D(e),
437
+ runEffect: Ue,
438
438
  recordMetric: (e) => {
439
- Ve.record(e);
439
+ O.record(e);
440
440
  },
441
- ...j.action === void 0 ? {} : { interceptor: j.action }
442
- }), Ye = Sn({
441
+ ...k.action === void 0 ? {} : { interceptor: k.action }
442
+ }), Ze = Sn({
443
443
  tenantScopedTables: e.tenantScopedTables,
444
444
  softDeleteScopedTables: e.softDeleteScopedTables
445
- }), Ze = {
446
- buildContext: (e) => A(e),
447
- finalize: (e, t) => Ye(e, t.subject),
448
- provideEffect: ze,
449
- ...j.query === void 0 ? {} : { interceptor: j.query }
450
- }, M = xn(Ze), et = bn({
451
- ...Ze,
445
+ }), $e = {
446
+ buildContext: (e) => D(e),
447
+ finalize: (e, t) => Ze(e, t.subject),
448
+ provideEffect: He,
449
+ ...k.query === void 0 ? {} : { interceptor: k.query }
450
+ }, A = xn($e), nt = bn({
451
+ ...$e,
452
452
  queryRows: (t, n) => e.store.query(t).then((e) => Vn(t.table, e, n.subject))
453
- }), nt = wn({
454
- ...Ze,
453
+ }), it = wn({
454
+ ...$e,
455
455
  subscribeDescriptor: (e, t, n) => i.subscribe(e, t, n),
456
456
  subscribeComputed: (e, t, n) => i.subscribeComputed(e, t, n)
457
- }), N = (e) => e.filter((e) => ar(e.descriptor)), P = {};
457
+ }), j = (e) => e.filter((e) => ar(e.descriptor)), M = {};
458
458
  for (let t of [
459
- ...N(e.discovered.queries),
460
- ...qe.queries,
461
- ...T.queries
462
- ]) P[t.descriptor.name] = (e) => W(M(t, e), i, `subscription.${t.descriptor.name}`, void 0, void 0, Cn(t, e));
459
+ ...j(e.discovered.queries),
460
+ ...Ye.queries,
461
+ ...C.queries
462
+ ]) M[t.descriptor.name] = (e) => W(A(t, e), i, `subscription.${t.descriptor.name}`, void 0, void 0, Cn(t, e));
463
463
  for (let t of [
464
- ...N(e.discovered.mutations),
465
- ...qe.mutations,
466
- ...T.mutations
464
+ ...j(e.discovered.mutations),
465
+ ...Ye.mutations,
466
+ ...C.mutations
467
467
  ]) {
468
468
  let n = vn(t.descriptor.output);
469
- P[t.descriptor.name] = (r) => U(async (e, n) => Ge(t, e, n), r, `mutation.${t.descriptor.name}`, n, e.idempotency, t.descriptor.error);
469
+ M[t.descriptor.name] = (r) => U(async (e, n) => qe(t, e, n), r, `mutation.${t.descriptor.name}`, n, e.idempotency, t.descriptor.error);
470
470
  }
471
- for (let t of [...N(e.discovered.actions), ...T.actions]) {
471
+ for (let t of [...j(e.discovered.actions), ...C.actions]) {
472
472
  let n = vn(t.descriptor.output);
473
- P[t.descriptor.name] = (r) => U(async (e, n) => Je(t, e, n), r, `action.${t.descriptor.name}`, n, e.idempotency, t.descriptor.error);
473
+ M[t.descriptor.name] = (r) => U(async (e, n) => Xe(t, e, n), r, `action.${t.descriptor.name}`, n, e.idempotency, t.descriptor.error);
474
474
  }
475
- let rt = () => `public-${Math.random().toString(36).slice(2, 10)}`, it = [
475
+ let at = () => `public-${Math.random().toString(36).slice(2, 10)}`, ot = [
476
476
  ...e.discovered.queries.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
477
477
  descriptor: e.descriptor,
478
- invoke: (t, n) => et(e, t, {
478
+ invoke: (t, n) => nt(e, t, {
479
479
  subject: n.subject,
480
- traceId: rt()
480
+ traceId: at()
481
481
  }),
482
- subscribe: (t, n, r) => nt(e, t, {
482
+ subscribe: (t, n, r) => it(e, t, {
483
483
  subject: n.subject,
484
- traceId: rt()
484
+ traceId: at()
485
485
  }, r)
486
486
  })),
487
487
  ...e.discovered.mutations.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
488
488
  descriptor: e.descriptor,
489
- invoke: (t, n) => Ge(e, t, {
489
+ invoke: (t, n) => qe(e, t, {
490
490
  subject: n.subject,
491
- traceId: rt()
491
+ traceId: at()
492
492
  })
493
493
  })),
494
494
  ...e.discovered.actions.filter((e) => e.descriptor.publicApi !== void 0).map((e) => ({
495
495
  descriptor: e.descriptor,
496
- invoke: (t, n) => Je(e, t, {
496
+ invoke: (t, n) => Xe(e, t, {
497
497
  subject: n.subject,
498
- traceId: rt()
498
+ traceId: at()
499
499
  })
500
500
  }))
501
- ], at = it.length > 0 ? Mr(jr(it), {
501
+ ], st = ot.length > 0 ? Mr(jr(ot), {
502
502
  store: e.store,
503
503
  resolveSubject: (t) => e.resolveSubject(t, -1)
504
- }) : [], ot = e.dataTransferSecret ?? process.env.VOLTRO_DATA_TRANSFER_SECRET, ct = ot && ot.length >= 16 ? [{
504
+ }) : [], ct = e.dataTransferSecret ?? process.env.VOLTRO_DATA_TRANSFER_SECRET, ut = ct && ct.length >= 16 ? [{
505
505
  method: "POST",
506
506
  path: Gr,
507
507
  handle: $r({
508
- secret: ot,
508
+ secret: ct,
509
509
  store: e.store,
510
510
  ...e.dataTransferSnapshot ? { snapshot: e.dataTransferSnapshot } : {},
511
511
  assetSink: zr(Zn()),
@@ -515,7 +515,7 @@ var Ur = (e, t) => {
515
515
  method: "POST",
516
516
  path: Kr,
517
517
  handle: ri({
518
- secret: ot,
518
+ secret: ct,
519
519
  store: e.store,
520
520
  snapshot: e.dataTransferSnapshot ?? { tables: [] },
521
521
  dialect: e.dataTransferDialect ?? "memory",
@@ -524,25 +524,25 @@ var Ur = (e, t) => {
524
524
  assetSource: Br(Zn(), e.store),
525
525
  putArchive: async (e, t) => {
526
526
  let { Readable: n } = await import("node:stream"), r = Zn(), i = Qn("storage", () => n.from(t()));
527
- await B.runPromise(er(r, e, i, { contentType: "application/octet-stream" }));
527
+ await z.runPromise(er(r, e, i, { contentType: "application/octet-stream" }));
528
528
  }
529
529
  })
530
- }] : [], dt = [
530
+ }] : [], pt = [
531
531
  ...e.httpRoutes ?? [],
532
- ...at,
533
- ...ct,
534
- ...T.httpRoutes
532
+ ...st,
533
+ ...ut,
534
+ ...C.httpRoutes
535
535
  ];
536
- Object.assign(P, O.handlers);
537
- for (let t of N(e.discovered.streams ?? [])) P[t.descriptor.name] = (n) => Xt((r) => {
538
- let i = A(r), a = t.executor(n, i);
539
- if (B.isEffect(a)) {
540
- let t = a.pipe(B.provide(gn(i.store)));
541
- return (e.baseLayer ? t.pipe(B.provide(e.baseLayer)) : t).pipe(B.provide(Pe)).pipe(B.provide(Fe)).pipe(B.provide(Ie)).pipe(B.provide(Re));
536
+ Object.assign(M, T.handlers);
537
+ for (let t of j(e.discovered.streams ?? [])) M[t.descriptor.name] = (n) => Xt((r) => {
538
+ let i = D(r), a = t.executor(n, i);
539
+ if (z.isEffect(a)) {
540
+ let t = a.pipe(z.provide(gn(i.store)));
541
+ return (e.baseLayer ? t.pipe(z.provide(e.baseLayer)) : t).pipe(z.provide(Le)).pipe(z.provide(Re)).pipe(z.provide(ze)).pipe(z.provide(Ve));
542
542
  }
543
- return typeof a == "object" && a && typeof a.then == "function" ? B.promise(() => a) : a;
543
+ return typeof a == "object" && a && typeof a.then == "function" ? z.promise(() => a) : a;
544
544
  }, `stream.${t.descriptor.name}`);
545
- for (let t of e.discovered.workflows ?? []) P[t.definition.name] = (e) => U(async (e, n) => {
545
+ for (let t of e.discovered.workflows ?? []) M[t.definition.name] = (e) => U(async (e, n) => {
546
546
  let r = n;
547
547
  return G(_, {
548
548
  subject: r.subject,
@@ -550,7 +550,7 @@ var Ur = (e, t) => {
550
550
  source: "workflow-rpc"
551
551
  }).start(t.definition.name, e);
552
552
  }, e, `workflow.${t.definition.name}`);
553
- se && (P[dr.name] = (e) => W(M({
553
+ se && (M[dr.name] = (e) => W(A({
554
554
  descriptor: dr,
555
555
  executor: (e) => {
556
556
  let t = e.id;
@@ -566,7 +566,7 @@ var Ur = (e, t) => {
566
566
  projection: void 0
567
567
  };
568
568
  }
569
- }, e), i, `subscription.${dr.name}`), P[pr.name] = (e) => W(M({
569
+ }, e), i, `subscription.${dr.name}`), M[pr.name] = (e) => W(A({
570
570
  descriptor: pr,
571
571
  executor: (e) => {
572
572
  let t = e, n = [...t.tag === void 0 ? [] : [q("tag", t.tag)], ...t.status === void 0 ? [] : [q("status", t.status)]], r = Number.isFinite(t.limit) && t.limit !== void 0 ? Math.min(Math.max(Math.floor(t.limit), 1), 500) : 100;
@@ -582,7 +582,7 @@ var Ur = (e, t) => {
582
582
  projection: void 0
583
583
  };
584
584
  }
585
- }, e), i, `subscription.${pr.name}`), P[fr.name] = (e) => W(M({
585
+ }, e), i, `subscription.${pr.name}`), M[fr.name] = (e) => W(A({
586
586
  descriptor: fr,
587
587
  executor: (e) => {
588
588
  let t = e.runId;
@@ -598,7 +598,7 @@ var Ur = (e, t) => {
598
598
  projection: void 0
599
599
  };
600
600
  }
601
- }, e), i, `subscription.${fr.name}`), P[ur.name] = (e) => W(M({
601
+ }, e), i, `subscription.${fr.name}`), M[ur.name] = (e) => W(A({
602
602
  descriptor: ur,
603
603
  executor: (e) => {
604
604
  let t = e.runId;
@@ -614,7 +614,7 @@ var Ur = (e, t) => {
614
614
  projection: void 0
615
615
  };
616
616
  }
617
- }, e), i, `subscription.${ur.name}`), P[sr.name] = (e) => W(M({
617
+ }, e), i, `subscription.${ur.name}`), M[sr.name] = (e) => W(A({
618
618
  descriptor: sr,
619
619
  executor: (e) => {
620
620
  let t = e;
@@ -630,7 +630,7 @@ var Ur = (e, t) => {
630
630
  projection: void 0
631
631
  };
632
632
  }
633
- }, e), i, `subscription.${sr.name}`), P[cr.name] = (e) => W(M({
633
+ }, e), i, `subscription.${sr.name}`), M[cr.name] = (e) => W(A({
634
634
  descriptor: cr,
635
635
  executor: (e) => {
636
636
  let t = e.eventId;
@@ -646,30 +646,30 @@ var Ur = (e, t) => {
646
646
  projection: void 0
647
647
  };
648
648
  }
649
- }, e), i, `subscription.${cr.name}`), P[Z.name] = (t) => U(async (t, n) => {
649
+ }, e), i, `subscription.${cr.name}`), M[Z.name] = (t) => U(async (t, n) => {
650
650
  let r = t;
651
- return await D(e.store, n.subject, { executionId: r.executionId }), await _.cancel(r.workflowName, r.executionId), await xt(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
652
- }, t, `action.${Z.name}`), P[lr.name] = (t) => U(async (t, n) => {
651
+ return await ke(e.store, n.subject, { executionId: r.executionId }), await _.cancel(r.workflowName, r.executionId), await Ct(r.workflowName, r.executionId, "workflow.cancel"), { ok: !0 };
652
+ }, t, `action.${Z.name}`), M[lr.name] = (t) => U(async (t, n) => {
653
653
  let r = t;
654
- return await D(e.store, n.subject, { executionId: r.executionId }), await _.resume(r.workflowName, r.executionId), { ok: !0 };
655
- }, t, `action.${lr.name}`), P[mr.name] = (t) => U(async (t, n) => {
654
+ return await ke(e.store, n.subject, { executionId: r.executionId }), await _.resume(r.workflowName, r.executionId), { ok: !0 };
655
+ }, t, `action.${lr.name}`), M[mr.name] = (t) => U(async (t, n) => {
656
656
  let r = t;
657
- return await D(e.store, n.subject, { id: r.id }), _.signal({ id: r.id }, r.signalName, r.payload);
658
- }, t, `action.${mr.name}`), P[hr.name] = (t) => U(async (t, n) => {
657
+ return await ke(e.store, n.subject, { id: r.id }), _.signal({ id: r.id }, r.signalName, r.payload);
658
+ }, t, `action.${mr.name}`), M[hr.name] = (t) => U(async (t, n) => {
659
659
  let r = t;
660
- return await D(e.store, n.subject, { id: r.id }), _.update({ id: r.id }, r.updateName, r.payload, r.timeoutMs === void 0 ? void 0 : { timeoutMs: r.timeoutMs });
660
+ return await ke(e.store, n.subject, { id: r.id }), _.update({ id: r.id }, r.updateName, r.payload, r.timeoutMs === void 0 ? void 0 : { timeoutMs: r.timeoutMs });
661
661
  }, t, `action.${hr.name}`));
662
- let ft = [
663
- ...N(e.discovered.queries).map((e) => X(e.descriptor)),
664
- ...N(e.discovered.mutations).map((e) => Y(e.descriptor)),
665
- ...N(e.discovered.actions).map((e) => J(e.descriptor)),
666
- ...qe.queries.map((e) => X(e.descriptor)),
667
- ...qe.mutations.map((e) => Y(e.descriptor)),
668
- ...T.queries.map((e) => X(e.descriptor)),
669
- ...T.mutations.map((e) => Y(e.descriptor)),
670
- ...T.actions.map((e) => J(e.descriptor)),
671
- ...N(e.discovered.streams ?? []).map((e) => or(e.descriptor)),
672
- ...O.rpcs,
662
+ let mt = [
663
+ ...j(e.discovered.queries).map((e) => X(e.descriptor)),
664
+ ...j(e.discovered.mutations).map((e) => Y(e.descriptor)),
665
+ ...j(e.discovered.actions).map((e) => J(e.descriptor)),
666
+ ...Ye.queries.map((e) => X(e.descriptor)),
667
+ ...Ye.mutations.map((e) => Y(e.descriptor)),
668
+ ...C.queries.map((e) => X(e.descriptor)),
669
+ ...C.mutations.map((e) => Y(e.descriptor)),
670
+ ...C.actions.map((e) => J(e.descriptor)),
671
+ ...j(e.discovered.streams ?? []).map((e) => or(e.descriptor)),
672
+ ...T.rpcs,
673
673
  ...(e.discovered.workflows ?? []).map((e) => Un(e.definition)),
674
674
  ...se ? [
675
675
  X(dr),
@@ -683,34 +683,34 @@ var Ur = (e, t) => {
683
683
  J(mr),
684
684
  J(hr)
685
685
  ] : []
686
- ], mt = Gn.make(...ft).middleware(nr).middleware(rr), ht = V.succeed(nr, nr.of(({ headers: t, clientId: n }) => B.promise(() => e.resolveSubject(t, n)))), _t = V.succeed(rr, rr.of(({ headers: e, clientId: t }) => B.sync(() => {
686
+ ], gt = Gn.make(...mt).middleware(nr).middleware(rr), _t = B.succeed(nr, nr.of(({ headers: t, clientId: n }) => z.promise(() => e.resolveSubject(t, n)))), yt = B.succeed(rr, rr.of(({ headers: e, clientId: t }) => z.sync(() => {
687
687
  let n = on(t) ?? vr(e);
688
688
  return {
689
689
  clientId: t,
690
690
  ...e["idempotency-key"] ? { idempotencyKey: e["idempotency-key"] } : {},
691
691
  ...n === void 0 ? {} : { credentialExpiresAt: n }
692
692
  };
693
- }))), vt = e.dormancyTenantId ?? "default", yt = e.dormancy === "sleep" ? {
693
+ }))), bt = e.dormancyTenantId ?? "default", xt = e.dormancy === "sleep" ? {
694
694
  register: (t, n, r) => Mn(e.store, {
695
- tenantId: r ?? vt,
695
+ tenantId: r ?? bt,
696
696
  kind: "workflow",
697
697
  refId: t,
698
698
  wakeAt: n
699
699
  }),
700
700
  cancel: (t, n) => Qt(e.store, {
701
- tenantId: n ?? vt,
701
+ tenantId: n ?? bt,
702
702
  kind: "workflow",
703
703
  refId: t
704
704
  }).then(() => {})
705
- } : void 0, I = ue ? await import("@voltro/workflow") : void 0, L = I?.makeWorkflowRunRecorder({
705
+ } : void 0, P = ue ? await import("@voltro/workflow") : void 0, F = P?.makeWorkflowRunRecorder({
706
706
  store: e.store,
707
- ...yt === void 0 ? {} : { wakeups: yt }
708
- }), bt = async (t, n) => {
709
- await I.closeWorkflowChildrenForParent({
707
+ ...xt === void 0 ? {} : { wakeups: xt }
708
+ }), St = async (t, n) => {
709
+ await P.closeWorkflowChildrenForParent({
710
710
  store: e.store,
711
711
  parentExecutionId: t,
712
712
  parentStatus: n,
713
- recorder: L,
713
+ recorder: F,
714
714
  log: { warn: (e, t) => {
715
715
  process.stderr.write(`[workflow] ${e} ${t ? JSON.stringify(t) : ""}\n`);
716
716
  } },
@@ -721,7 +721,7 @@ var Ur = (e, t) => {
721
721
  await d.runPromise(r.definition.interrupt(n));
722
722
  }
723
723
  });
724
- }, xt = async (t, n, r) => {
724
+ }, Ct = async (t, n, r) => {
725
725
  let i = (await e.store.query({
726
726
  table: "_voltro_workflow_runs",
727
727
  order: [],
@@ -736,7 +736,7 @@ var Ur = (e, t) => {
736
736
  cancelled: !0,
737
737
  completedAt: /* @__PURE__ */ new Date()
738
738
  }), o = i.subject?.tenantId ?? void 0;
739
- a && await L.recordEvent({
739
+ a && await F.recordEvent({
740
740
  runId: i.id,
741
741
  eventType: "run-cancelled",
742
742
  payload: {
@@ -745,17 +745,17 @@ var Ur = (e, t) => {
745
745
  executionId: n,
746
746
  ...o == null ? {} : { tenantId: o }
747
747
  }
748
- }), a && await bt(n, "cancelled");
749
- }, St = [
748
+ }), a && await St(n, "cancelled");
749
+ }, wt = [
750
750
  ...Dn(e.discovered.workflows ?? [], {
751
- buildContext: (t, n) => e.buildContextForWorkflow?.(t, n) ?? A({
751
+ buildContext: (t, n) => e.buildContextForWorkflow?.(t, n) ?? D({
752
752
  subject: t.subject,
753
753
  traceId: t.traceId
754
754
  }, e.store, void 0, `workflow:${n.workflowName}`, { parentExecutionId: n.executionId }),
755
755
  resolveStartContext: ae
756
756
  }, (t, n, r) => {
757
- let i = I.getWorkflowVersionMetadata(t.definition);
758
- return I.wrapWorkflowExecuteWithRunRecording({
757
+ let i = P.getWorkflowVersionMetadata(t.definition);
758
+ return P.wrapWorkflowExecuteWithRunRecording({
759
759
  name: t.definition.name,
760
760
  store: e.store,
761
761
  subject: r.subject,
@@ -766,37 +766,37 @@ var Ur = (e, t) => {
766
766
  workflowPatches: i.patches,
767
767
  parentExecutionId: r?.parentExecutionId ?? null,
768
768
  parentClosePolicy: r?.parentClosePolicy ?? null,
769
- onParentClose: ({ executionId: e, status: t }) => bt(e, t),
770
- ...st(t.definition),
769
+ onParentClose: ({ executionId: e, status: t }) => St(e, t),
770
+ ...lt(t.definition),
771
771
  onTerminal: async ({ executionId: e }) => {
772
772
  await u?.gate.release(e);
773
773
  },
774
- recorder: L,
775
- pluginWorkflowStepLayer: Ue,
774
+ recorder: F,
775
+ pluginWorkflowStepLayer: Ge,
776
776
  recordRun: jn
777
777
  }, n);
778
778
  }),
779
779
  ...e.discovered.workflowWorkers ?? [],
780
- ...me === void 0 ? [] : [me]
781
- ], Ct = St.length > 0 ? V.mergeAll(...St) : V.empty;
782
- if (((e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster" || me !== void 0) && e.workflowEngineLayer !== void 0) {
783
- let t = Ct.pipe(V.provideMerge(e.workflowEngineLayer));
784
- d = Lt.make(e.baseLayer === void 0 ? t : t.pipe(V.provideMerge(e.baseLayer))), await d.runPromise(B.void);
780
+ ...he === void 0 ? [] : [he]
781
+ ], Tt = [...(e.discovered.workflows ?? []).map((e) => e.definition.name).filter(Boolean), ...he === void 0 ? [] : ["voltro.deliverWebhook"]], Et = wt.length > 0 ? B.mergeAll(...wt) : B.empty;
782
+ if (((e.discovered.workflows?.length ?? 0) > 0 || (e.discovered.workflowWorkers?.length ?? 0) > 0 || e.scheduleCoordination === "cluster" || he !== void 0) && e.workflowEngineLayer !== void 0) {
783
+ let t = Et.pipe(B.provideMerge(e.workflowEngineLayer));
784
+ d = Rt.make(e.baseLayer === void 0 ? t : t.pipe(B.provideMerge(e.baseLayer))), await d.runPromise(z.void), (e.log ?? V({ scope: "voltro:serve" })).child("workflow").info(`workflow runtime ready — ${Tt.length} entity type(s) registered`, { entities: Tt });
785
785
  let n = await import("@voltro/workflow/cluster"), r = (e) => d.runPromise(n.redriveFailedRun(e)), i = (e) => d.runPromise(n.resumeRunFromStep(e));
786
- ne = await $e({
786
+ ne = await tt({
787
787
  provider: Fr(e.plugins ?? [])?.broadcast?.provider,
788
788
  crossReplica: Fr(e.plugins ?? [])?.broadcast?.crossReplica ?? !1,
789
- namespace: be,
789
+ namespace: Se,
790
790
  replicaId: crypto.randomUUID(),
791
791
  pollStorage: () => d.runPromise(n.pollWorkflowStorage),
792
- log: (e.log ?? H({ scope: "voltro:serve" })).child("workflow")
792
+ log: (e.log ?? V({ scope: "voltro:serve" })).child("workflow")
793
793
  }), ee = async (t) => {
794
- let n = await Ce({
794
+ let n = await we({
795
795
  store: e.store,
796
796
  workflows: e.discovered.workflows ?? [],
797
797
  runRedrive: r
798
798
  }, t.runId);
799
- return n.statusReset && await L.recordEvent({
799
+ return n.statusReset && await F.recordEvent({
800
800
  runId: t.runId,
801
801
  eventType: "run-redriven",
802
802
  payload: {
@@ -814,7 +814,7 @@ var Ur = (e, t) => {
814
814
  workflows: e.discovered.workflows ?? [],
815
815
  runResume: i
816
816
  }, t.runId, t.step);
817
- return n.statusReset && await L.recordEvent({
817
+ return n.statusReset && await F.recordEvent({
818
818
  runId: t.runId,
819
819
  eventType: "run-redriven",
820
820
  payload: {
@@ -844,24 +844,24 @@ var Ur = (e, t) => {
844
844
  }
845
845
  }, f, m = () => {
846
846
  if (f !== void 0) return f;
847
- if (!(s === void 0 || L === void 0)) return f = g({
847
+ if (!(s === void 0 || F === void 0)) return f = g({
848
848
  store: e.store,
849
- log: z,
849
+ log: R,
850
850
  workflows: e.discovered.workflows ?? [],
851
851
  workflowsProxy: s,
852
852
  workflowRuntime: d,
853
- workflowRunRecorder: L,
854
- closeChildrenForParent: bt
853
+ workflowRunRecorder: F,
854
+ closeChildrenForParent: St
855
855
  }), f;
856
856
  };
857
- c = m, u = Ne({
857
+ c = m, u = Ie({
858
858
  store: e.store,
859
859
  workflows: e.discovered.workflows ?? [],
860
860
  facade: () => s,
861
861
  cancelRunWithReason: m,
862
862
  scheduleCoordinated: a,
863
863
  onAbandoned: async (t) => {
864
- await Le({
864
+ await Be({
865
865
  workflows: e.discovered.workflows ?? [],
866
866
  facade: () => s,
867
867
  log: o,
@@ -871,13 +871,13 @@ var Ur = (e, t) => {
871
871
  log: o
872
872
  });
873
873
  let h = u;
874
- h !== void 0 && On(() => h.stop()), l = k({
874
+ h !== void 0 && On(() => h.stop()), l = E({
875
875
  store: e.store,
876
876
  enabled: (e.discovered.workflows?.length ?? 0) > 0,
877
- resumeSignal: () => d === void 0 || I === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
878
- await d.runPromise(I.completeSuspendingSignal({
877
+ resumeSignal: () => d === void 0 || P === void 0 ? void 0 : async ({ executionId: t, workflowName: n, signalName: r, payload: i }) => {
878
+ await d.runPromise(P.completeSuspendingSignal({
879
879
  store: e.store,
880
- target: We(t, n),
880
+ target: Ke(t, n),
881
881
  signalName: r,
882
882
  payload: i
883
883
  }));
@@ -897,65 +897,65 @@ var Ur = (e, t) => {
897
897
  },
898
898
  rememberStartContext: ie,
899
899
  signal: async (t, n, r) => {
900
- let i = await I.sendWorkflowSignal({
900
+ let i = await P.sendWorkflowSignal({
901
901
  store: e.store,
902
- recorder: L,
902
+ recorder: F,
903
903
  target: t,
904
904
  signalName: n,
905
905
  payload: r
906
906
  });
907
- return await d.runPromise(I.completeSuspendingSignal({
907
+ return await d.runPromise(P.completeSuspendingSignal({
908
908
  store: e.store,
909
909
  target: t,
910
910
  signalName: n,
911
911
  payload: r
912
912
  })).catch(() => {}), i;
913
913
  },
914
- update: (t, n, r, i) => I.sendWorkflowUpdate({
914
+ update: (t, n, r, i) => P.sendWorkflowUpdate({
915
915
  store: e.store,
916
- recorder: L,
916
+ recorder: F,
917
917
  target: t,
918
918
  updateName: n,
919
919
  payload: r,
920
920
  ...i === void 0 ? {} : { options: i }
921
921
  }),
922
922
  listRuns: (t) => p(e.store, t),
923
- retry: (t, n) => Se({
923
+ retry: (t, n) => w({
924
924
  store: e.store,
925
925
  workflows: e.discovered.workflows ?? [],
926
926
  runPromise: (e) => d.runPromise(e)
927
927
  }, t, n),
928
- redrive: (t) => Ce({
928
+ redrive: (t) => we({
929
929
  store: e.store,
930
930
  workflows: e.discovered.workflows ?? [],
931
931
  runRedrive: r
932
932
  }, t).then((e) => e.outcome)
933
933
  }) : void 0;
934
934
  }
935
- let wt = V.mergeAll(mt.toLayer(P), ht, _t), Tt = le(P, e.discovered.queries.map((e) => e.descriptor.name), se), Et = V.mergeAll(mt.toLayer(Tt), ht, _t), R = e.observability, Dt = await Zt({
935
+ let Dt = B.mergeAll(gt.toLayer(M), _t, yt), Ot = le(M, e.discovered.queries.map((e) => e.descriptor.name), se), kt = B.mergeAll(gt.toLayer(Ot), _t, yt), I = e.observability, At = await Zt({
936
936
  ...e.appName === void 0 ? {} : { serviceName: e.appName },
937
- ...R && R.spanProcessors.length > 0 ? { extraSpanProcessors: R.spanProcessors } : {},
938
- ...R && R.metricReaders.length > 0 ? { extraMetricReaders: R.metricReaders } : {},
939
- ...R && Object.keys(R.resourceAttributes).length > 0 ? { resourceAttributes: R.resourceAttributes } : {},
940
- ...R && R.sampler !== void 0 ? { sampler: R.sampler } : {}
941
- }), Ot = !1, kt = e.store.ping ? () => e.store.ping().then(() => !0).catch(() => !1) : void 0, { server: At, shutdown: jt } = zn({
942
- group: mt,
943
- handlersLayer: wt,
944
- httpHandlersLayer: Et,
937
+ ...I && I.spanProcessors.length > 0 ? { extraSpanProcessors: I.spanProcessors } : {},
938
+ ...I && I.metricReaders.length > 0 ? { extraMetricReaders: I.metricReaders } : {},
939
+ ...I && Object.keys(I.resourceAttributes).length > 0 ? { resourceAttributes: I.resourceAttributes } : {},
940
+ ...I && I.sampler !== void 0 ? { sampler: I.sampler } : {}
941
+ }), jt = !1, Mt = e.store.ping ? () => e.store.ping().then(() => !0).catch(() => !1) : void 0, { server: L, shutdown: Nt } = zn({
942
+ group: gt,
943
+ handlersLayer: Dt,
944
+ httpHandlersLayer: kt,
945
945
  port: e.port ?? 4e3,
946
946
  ...e.host === void 0 ? {} : { host: e.host },
947
947
  path: e.path ?? "/ws",
948
- tracerLayer: Dt.layer,
948
+ tracerLayer: At.layer,
949
949
  healthCheck: {
950
- isReady: () => Ot,
951
- ...kt ? { ping: kt } : {}
950
+ isReady: () => jt,
951
+ ...Mt ? { ping: Mt } : {}
952
952
  },
953
- ...dt.length > 0 ? { httpRoutes: dt } : {},
953
+ ...pt.length > 0 ? { httpRoutes: pt } : {},
954
954
  ...e.getStore === void 0 ? {} : { getStore: e.getStore },
955
- ...ge.size > 0 ? { webhookRoutes: ge } : {},
955
+ ...ve.size > 0 ? { webhookRoutes: ve } : {},
956
956
  ...e.inspectRoute === void 0 ? {} : { inspectRoute: e.inspectRoute }
957
957
  });
958
- if (await Yt(At), (e.discovered.schedules?.length ?? 0) > 0) {
958
+ if (await Yt(L), (e.discovered.schedules?.length ?? 0) > 0) {
959
959
  let t = (e.scheduleCoordination ?? "single") === "advisoryLock" ? un(e.store, e.scheduleReplicaId ?? `pid-${process.pid}`) : Rn;
960
960
  m = await Bn(e.discovered.schedules ?? [], {
961
961
  store: e.store,
@@ -965,7 +965,7 @@ var Ur = (e, t) => {
965
965
  armSelf: e.scheduleArmSelf ?? !0,
966
966
  dormancy: e.dormancy ?? "always-on",
967
967
  ...e.dormancyTenantId === void 0 ? {} : { dormancyTenantId: e.dormancyTenantId },
968
- buildContext: ({ traceId: t, scheduleName: n, subject: r }) => A({
968
+ buildContext: ({ traceId: t, scheduleName: n, subject: r }) => D({
969
969
  subject: r,
970
970
  traceId: t
971
971
  }, e.store, void 0, `schedule:${n}`),
@@ -985,9 +985,9 @@ var Ur = (e, t) => {
985
985
  ...e.onScheduleRunEvent === void 0 ? {} : { onRunEvent: e.onScheduleRunEvent }
986
986
  }), e.onSchedulerReady?.(m);
987
987
  }
988
- let z = e.log ?? H({ scope: "voltro:serve" }), Mt, Nt;
989
- if ((e.discovered.subscribers?.length ?? 0) > 0 && (Mt = C(e.discovered.subscribers ?? [], e.store, z.child("subscribe"), e.schemaRegistry, O.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
990
- let t = z.child("reaction"), n = async (n, r) => {
988
+ let R = e.log ?? V({ scope: "voltro:serve" }), Pt, Ft;
989
+ if ((e.discovered.subscribers?.length ?? 0) > 0 && (Pt = _e(e.discovered.subscribers ?? [], e.store, R.child("subscribe"), e.schemaRegistry, T.bus)), (e.discovered.reactions?.length ?? 0) > 0) {
990
+ let t = R.child("reaction"), n = async (n, r) => {
991
991
  if (n.kind === "workflow") {
992
992
  if (_ === void 0) {
993
993
  t.warn("reaction workflow act skipped — no workflow engine in this app", { workflow: n.workflow });
@@ -1000,9 +1000,9 @@ var Ur = (e, t) => {
1000
1000
  }).start(n.workflow, e);
1001
1001
  return;
1002
1002
  }
1003
- await xe(n.agent, r, {
1003
+ await Ce(n.agent, r, {
1004
1004
  findAgentSend: (t) => e.discovered.actions.find((e) => e.descriptor.name === `${t}.send`),
1005
- runAction: (e, t, n) => Promise.resolve(Je(e, t, n)),
1005
+ runAction: (e, t, n) => Promise.resolve(Xe(e, t, n)),
1006
1006
  makeSubject: (e) => ir(e),
1007
1007
  now: () => Date.now(),
1008
1008
  log: t
@@ -1010,78 +1010,78 @@ var Ur = (e, t) => {
1010
1010
  }, r = async (n, r) => {
1011
1011
  try {
1012
1012
  let { requireAiBudget: t } = await import("@voltro/ai");
1013
- return (await B.runPromise(B.either(t(e.store, {
1013
+ return (await z.runPromise(z.either(t(e.store, {
1014
1014
  tenantId: n,
1015
1015
  limitUsd: r
1016
1016
  }))))._tag === "Right";
1017
1017
  } catch (e) {
1018
1018
  return t.warn("reaction budget check failed — refusing the act", { tenantId: n }, e), !1;
1019
1019
  }
1020
- }, i = Qe(e.store, { onError: (e) => t.warn("reaction: rate-slot claim failed; refusing the act", { cause: String(e) }) });
1021
- Nt = pt(e.discovered.reactions ?? [], e.store, {
1020
+ }, i = et(e.store, { onError: (e) => t.warn("reaction: rate-slot claim failed; refusing the act", { cause: String(e) }) });
1021
+ Ft = ht(e.discovered.reactions ?? [], e.store, {
1022
1022
  runAct: n,
1023
1023
  checkBudget: r,
1024
1024
  claimRateSlot: (e) => i.claim(e)
1025
1025
  }, t);
1026
1026
  }
1027
- let Pt;
1028
- (e.discovered.aggregates?.length ?? 0) > 0 && (Pt = await F({
1027
+ let It;
1028
+ (e.discovered.aggregates?.length ?? 0) > 0 && (It = await N({
1029
1029
  discovered: e.discovered.aggregates ?? [],
1030
1030
  store: e.store,
1031
- log: z.child("aggregate"),
1031
+ log: R.child("aggregate"),
1032
1032
  ...e.analytics === void 0 ? {} : { analytics: e.analytics },
1033
1033
  ...e.aggregateStorage === void 0 ? {} : { storage: e.aggregateStorage },
1034
1034
  ...e.aggregateCoordinator === void 0 ? {} : { coordinator: e.aggregateCoordinator }
1035
- }), Pe = V.succeed(zt, Pt.registry));
1036
- let Ft;
1037
- (e.discovered.expectations?.length ?? 0) > 0 && (Ft = Kt({
1035
+ }), Le = B.succeed(Bt, It.registry));
1036
+ let Lt;
1037
+ (e.discovered.expectations?.length ?? 0) > 0 && (Lt = Kt({
1038
1038
  discovered: e.discovered.expectations ?? [],
1039
1039
  store: e.store,
1040
- log: z.child("expectation")
1041
- }), Fe = V.succeed(Ht, Ft.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Jt({
1040
+ log: R.child("expectation")
1041
+ }), Re = B.succeed(Ut, Lt.registry)), (e.discovered.budgets?.length ?? 0) > 0 && (n = Jt({
1042
1042
  discovered: e.discovered.budgets ?? [],
1043
- log: z.child("finops")
1044
- }), Ie = V.succeed(Bt, n.registry));
1045
- let It;
1046
- return (e.discovered.experiments?.length ?? 0) > 0 && (It = qt({
1043
+ log: R.child("finops")
1044
+ }), ze = B.succeed(Vt, n.registry));
1045
+ let zt;
1046
+ return (e.discovered.experiments?.length ?? 0) > 0 && (zt = qt({
1047
1047
  discovered: e.discovered.experiments ?? [],
1048
1048
  store: e.store,
1049
- log: z.child("experiment")
1050
- }), Re = V.succeed(Ut, It.registry)), Ot = !0, e.bootTiming?.mark("ready"), {
1049
+ log: R.child("experiment")
1050
+ }), Ve = B.succeed(H, zt.registry)), jt = !0, e.bootTiming?.mark("ready"), {
1051
1051
  dispatcher: i,
1052
- server: At,
1052
+ server: L,
1053
1053
  scheduler: m,
1054
- eventsSnapshot: he(O.bus, O.declared),
1054
+ eventsSnapshot: ge(T.bus, T.declared),
1055
1055
  membersSnapshot: () => ({
1056
- members: ke.membership.list(),
1056
+ members: Me.membership.list(),
1057
1057
  capturedAt: Date.now()
1058
1058
  }),
1059
- rpcMetrics: () => Ve,
1060
- webhooksService: () => S,
1059
+ rpcMetrics: () => O,
1060
+ webhooksService: () => me,
1061
1061
  runCanceller: () => c(),
1062
1062
  flowControlHealth: () => u?.cancelHealth(),
1063
1063
  inferenceHealth: () => l?.health(),
1064
- workflowWriteActions: () => _ === void 0 || L === void 0 ? void 0 : v({
1064
+ workflowWriteActions: () => _ === void 0 || F === void 0 ? void 0 : v({
1065
1065
  store: e.store,
1066
- log: z,
1066
+ log: R,
1067
1067
  workflows: e.discovered.workflows ?? [],
1068
1068
  workflowsProxy: s,
1069
1069
  workflowRuntime: d,
1070
- workflowRunRecorder: L,
1071
- closeChildrenForParent: bt
1070
+ workflowRunRecorder: F,
1071
+ closeChildrenForParent: St
1072
1072
  }),
1073
1073
  redriveWorkflowRun: (e) => ee ? ee(e) : Promise.reject(/* @__PURE__ */ Error("redrive: this app registers no workflows")),
1074
1074
  resumeWorkflowRunFromStep: (e) => te ? te(e) : Promise.reject(/* @__PURE__ */ Error("resume-from-step: this app registers no workflows")),
1075
1075
  close: async () => {
1076
- Ot = !1, await Ae?.detach(), await ke.detach(), Pt?.detach(), Ft?.detach(), n?.detach(), It?.detach(), Nt?.(), Mt?.(), await m?.shutdown(), i.close(), await ne?.detach(), await d?.dispose(), await new Promise((e) => At.close(() => e())), await jt();
1076
+ jt = !1, await Ne?.detach(), await Me.detach(), It?.detach(), Lt?.detach(), n?.detach(), zt?.detach(), Ft?.(), Pt?.(), await m?.shutdown(), i.close(), await ne?.detach(), await d?.dispose(), await new Promise((e) => L.close(() => e())), await Nt();
1077
1077
  }
1078
1078
  };
1079
- }, $ = H({ scope: "voltro:serve" }), ci = (e, t, n) => (e === "production" || e === "staging") && t !== "memory" && n !== "0", li = Mt, ui = async (e) => {
1080
- let t = jt(process.cwd());
1081
- if (Rt(t)) {
1079
+ }, $ = V({ scope: "voltro:serve" }), ci = (e, t, n) => (e === "production" || e === "staging") && t !== "memory" && n !== "0", li = R, ui = async (e) => {
1080
+ let t = L(process.cwd());
1081
+ if (zt(t)) {
1082
1082
  let n;
1083
1083
  try {
1084
- let e = await import(Ft(t).href);
1084
+ let e = await import(It(t).href);
1085
1085
  typeof e.runServe == "function" ? n = e.runServe : $.warn("serve bundle has no runServe export — using the standard serve path");
1086
1086
  } catch (e) {
1087
1087
  $.warn("serve bundle failed to load — using the standard serve path", {}, e);
@@ -1090,14 +1090,14 @@ var Ur = (e, t) => {
1090
1090
  }
1091
1091
  return di(e);
1092
1092
  }, di = async (f) => {
1093
- let p = z();
1093
+ let p = Nt();
1094
1094
  process.env.NODE_ENV || (process.env.NODE_ENV = "production");
1095
1095
  try {
1096
1096
  _r();
1097
1097
  } catch (e) {
1098
1098
  throw n(e instanceof Error ? e.message : String(e));
1099
1099
  }
1100
- let g = process.cwd(), oe = Number(process.env.PORT ?? li(f, "--port") ?? 4e3), v = await A(g);
1100
+ let g = process.cwd(), oe = Number(process.env.PORT ?? li(f, "--port") ?? 4e3), v = await D(g);
1101
1101
  Fn(Nn(v?.secrets)), await e({
1102
1102
  rawEnv: v?.env,
1103
1103
  appType: "api",
@@ -1105,79 +1105,79 @@ var Ur = (e, t) => {
1105
1105
  log: $,
1106
1106
  generateTypes: !1
1107
1107
  }), p.mark("config");
1108
- let y = (process.env.DB_DIALECT ?? v?.store ?? "memory").toLowerCase(), ce = (y === "mariadb" || y === "postgres" || y === "mssql") && (process.env.CDC ?? "1") !== "0", le = y === "mariadb" ? "mariadb" : y === "mssql" ? "mssql" : void 0, fe = At(g);
1109
- if (!c() && Rt(fe)) try {
1110
- let e = await import(Ft(fe).href);
1108
+ let y = (process.env.DB_DIALECT ?? v?.store ?? "memory").toLowerCase(), ce = (y === "mariadb" || y === "postgres" || y === "mssql") && (process.env.CDC ?? "1") !== "0", le = y === "mariadb" ? "mariadb" : y === "mssql" ? "mssql" : void 0, fe = Mt(g);
1109
+ if (!c() && zt(fe)) try {
1110
+ let e = await import(It(fe).href);
1111
1111
  if (e.modules) {
1112
1112
  let t = {};
1113
- for (let [n, r] of Object.entries(e.modules)) t[Pt(g, n)] = r;
1113
+ for (let [n, r] of Object.entries(e.modules)) t[Ft(g, n)] = r;
1114
1114
  s(t), $.info("precompiled api bundle loaded", { modules: Object.keys(t).length });
1115
1115
  }
1116
1116
  } catch (e) {
1117
1117
  $.warn("precompiled api bundle failed to load — falling back to source", {}, e);
1118
1118
  }
1119
- let b = await Ve(g), x = await ct(b, { cdc: ce && le !== void 0 });
1119
+ let b = await O(g), x = await ut(b, { cdc: ce && le !== void 0 });
1120
1120
  {
1121
1121
  let e = /* @__PURE__ */ new Set([
1122
1122
  ...x.queries.filter((e) => e.descriptor.overridesPlugin === !0).map((e) => e.descriptor.name),
1123
1123
  ...x.mutations.filter((e) => e.descriptor.overridesPlugin === !0).map((e) => e.descriptor.name),
1124
1124
  ...x.actions.filter((e) => e.descriptor.overridesPlugin === !0).map((e) => e.descriptor.name)
1125
1125
  ]);
1126
- St(vt(v?.plugins ?? []), [
1126
+ wt(bt(v?.plugins ?? []), [
1127
1127
  ...x.queries.map((e) => e.descriptor.name),
1128
1128
  ...x.mutations.map((e) => e.descriptor.name),
1129
1129
  ...x.actions.map((e) => e.descriptor.name),
1130
1130
  ...x.streams.map((e) => e.descriptor.name)
1131
1131
  ], e);
1132
- let t = Je(x.serverOnlyLeaks, me(process.env, "strict"), nn, "`voltro serve`");
1132
+ let t = Xe(x.serverOnlyLeaks, he(process.env, "strict"), nn, "`voltro serve`");
1133
1133
  if (t.action === "fail") throw n(t.message ?? "");
1134
1134
  t.action === "warn" && $.warn(t.message ?? "");
1135
1135
  }
1136
- let he = b.filter((e) => Ye.test(e)), C = he.length > 0 ? await Fe(he, $.child("webhooks")) : {
1136
+ let ge = b.filter((e) => Ze.test(e)), _e = ge.length > 0 ? await Re(ge, $.child("webhooks")) : {
1137
1137
  outgoing: [],
1138
1138
  incoming: [],
1139
1139
  providers: []
1140
- }, xe = Re(x.events), Se = C.outgoing.length + C.incoming.length + C.providers.length + xe.length === 0 ? void 0 : {
1141
- ...C,
1142
- outgoing: [...C.outgoing, ...xe]
1143
- }, Ce = xt({
1140
+ }, Ce = Ve(x.events), w = _e.outgoing.length + _e.incoming.length + _e.providers.length + Ce.length === 0 ? void 0 : {
1141
+ ..._e,
1142
+ outgoing: [..._e.outgoing, ...Ce]
1143
+ }, we = Ct({
1144
1144
  mix: x.featureMix,
1145
1145
  plugins: v?.plugins ?? [],
1146
1146
  cdc: ce && le !== void 0,
1147
1147
  ...le ? { cdcDialect: le } : {}
1148
- }), we = v?.analytics !== void 0 && v.analytics.kind !== "noop" && y !== "memory" ? (await a(y)).makeSqlLayer(M()) : void 0, E = await ve({
1148
+ }), Te = v?.analytics !== void 0 && v.analytics.kind !== "noop" && y !== "memory" ? (await a(y)).makeSqlLayer(A()) : void 0, De = await be({
1149
1149
  spec: v?.analytics,
1150
- sqlLayer: we,
1150
+ sqlLayer: Te,
1151
1151
  log: $
1152
- }), Ee = (() => {
1152
+ }), Oe = (() => {
1153
1153
  let e = new Set(x.tables.map((e) => e.tableName)), t = [...x.tables];
1154
- for (let n of [...Ce, ...E.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1154
+ for (let n of [...we, ...De.tables]) e.has(n.tableName) || (e.add(n.tableName), t.push(n));
1155
1155
  return t;
1156
1156
  })();
1157
- for (let e of Ee) Yn(e);
1157
+ for (let e of Oe) Yn(e);
1158
1158
  {
1159
1159
  let e = rn(Hn(x.queries.map((e) => ({
1160
1160
  name: e.descriptor.name,
1161
1161
  source: e.descriptor.source
1162
- })), new Set(Ee.flatMap((e) => {
1162
+ })), new Set(Oe.flatMap((e) => {
1163
1163
  let t = e.tableName;
1164
1164
  return t === void 0 ? [] : [t];
1165
1165
  }))));
1166
1166
  e !== void 0 && $.warn(e);
1167
1167
  }
1168
- let D = (process.env.NODE_ENV ?? "").toLowerCase();
1169
- if (ci(D, y, process.env.VOLTRO_AUTO_MIGRATE)) {
1170
- let e = (await a(y)).makeSqlLayer(M()), t = await B.runPromise(Kn.SqlClient.pipe(B.flatMap((e) => Cr(e, Ee, {
1171
- appliedBy: `serve:${D}`,
1168
+ let ke = (process.env.NODE_ENV ?? "").toLowerCase();
1169
+ if (ci(ke, y, process.env.VOLTRO_AUTO_MIGRATE)) {
1170
+ let e = (await a(y)).makeSqlLayer(A()), t = await z.runPromise(Kn.SqlClient.pipe(z.flatMap((e) => Cr(e, Oe, {
1171
+ appliedBy: `serve:${ke}`,
1172
1172
  environment: "prod",
1173
1173
  dialectId: y
1174
- })), B.provide(e)));
1174
+ })), z.provide(e)));
1175
1175
  t.kind === "prod-mismatch" && ($.error(Sr(t, y)), $.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(Sr(t, y));
1176
1176
  }
1177
- let Oe = Tn(Ee);
1177
+ let je = Tn(Oe);
1178
1178
  p.mark("discover");
1179
- let k = await j(v, void 0), Me = Wn(k, y);
1180
- for (let e of Ze({
1179
+ let E = await k(v, void 0), Fe = Wn(E, y);
1180
+ for (let e of $e({
1181
1181
  dialect: String(v?.store ?? process.env.DB_DIALECT ?? "postgres"),
1182
1182
  changeStrategy: (process.env.CDC ?? "1") === "0" ? "inline" : "cdc",
1183
1183
  dbUrl: process.env.DB_URL,
@@ -1191,7 +1191,7 @@ var Ur = (e, t) => {
1191
1191
  })
1192
1192
  })) e.level === "warn" ? $.warn(e.message) : $.info(e.message);
1193
1193
  {
1194
- let e = ot(Ie({
1194
+ let e = ct(ze({
1195
1195
  tables: qn().map((e) => ({ tableName: e.tableName })),
1196
1196
  queries: x.queries.map((e) => ({
1197
1197
  name: e.descriptor.name,
@@ -1201,121 +1201,121 @@ var Ur = (e, t) => {
1201
1201
  e !== void 0 && $.warn(e);
1202
1202
  }
1203
1203
  v?.cache && !process.env.CACHE_BACKEND && (process.env.CACHE_BACKEND = v.cache), v?.cacheRedisUrl && !process.env.CACHE_REDIS_URL && (process.env.CACHE_REDIS_URL = v.cacheRedisUrl), v?.cacheRedisDriver && !process.env.CACHE_REDIS_DRIVER && (process.env.CACHE_REDIS_DRIVER = v.cacheRedisDriver), v?.cacheKeyPrefix && !process.env.CACHE_KEY_PREFIX && (process.env.CACHE_KEY_PREFIX = v.cacheKeyPrefix);
1204
- let { service: Ne, invalidationBus: Le, snapshotCache: He, cache: We, semantic: Ke, evictSource: Xe, backend: Qe, stats: $e, dispose: tt } = await u({
1204
+ let { service: Ie, invalidationBus: Be, snapshotCache: We, cache: Ke, semantic: Je, evictSource: Qe, backend: et, stats: tt, dispose: rt } = await u({
1205
1205
  env: process.env,
1206
1206
  semantic: v?.cacheSemantic ?? !1
1207
1207
  });
1208
- Ke !== void 0 && $.info("semantic cache enabled — reactive eviction on live writes"), $.info(`cache backend resolved: ${Qe}` + (Qe === "redis" ? ` (driver ${process.env.CACHE_REDIS_DRIVER ?? "resp"})` : " — in-process, not cross-instance")), k.onChange((e) => {
1209
- if (B.runFork(Le.publish(e.table)), Xe !== void 0) {
1208
+ Je !== void 0 && $.info("semantic cache enabled — reactive eviction on live writes"), $.info(`cache backend resolved: ${et}` + (et === "redis" ? ` (driver ${process.env.CACHE_REDIS_DRIVER ?? "resp"})` : " — in-process, not cross-instance")), E.onChange((e) => {
1209
+ if (z.runFork(Be.publish(e.table)), Qe !== void 0) {
1210
1210
  let t = (e.new ?? e.old)?.id;
1211
- Xe({
1211
+ Qe({
1212
1212
  table: e.table,
1213
1213
  op: e.op,
1214
1214
  ...t === void 0 ? {} : { id: t }
1215
1215
  });
1216
1216
  }
1217
1217
  }), v?.kv && !process.env.KV_BACKEND && (process.env.KV_BACKEND = v.kv), v?.kvRedisUrl && !process.env.KV_REDIS_URL && (process.env.KV_REDIS_URL = v.kvRedisUrl), v?.kvKeyPrefix && !process.env.KV_KEY_PREFIX && (process.env.KV_KEY_PREFIX = v.kvKeyPrefix);
1218
- let { kv: st, service: lt } = await mn({ store: k });
1219
- $.info(Ur(Pe(), Wr())), p.mark("store");
1220
- let pt = Gt({
1221
- store: k,
1222
- sink: E.sink,
1218
+ let { kv: lt, service: dt } = await mn({ store: E });
1219
+ $.info(Ur(Le(), Wr())), p.mark("store");
1220
+ let ht = Gt({
1221
+ store: E,
1222
+ sink: De.sink,
1223
1223
  log: $
1224
- }), gt = ge({
1225
- store: k,
1224
+ }), vt = ve({
1225
+ store: E,
1226
1226
  dialect: y,
1227
1227
  log: { info: (e) => $.info(e) }
1228
- }), F = v?.plugins ?? [], jt = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Mt, H;
1229
- y !== "memory" && (Mt = Lt.make((await a(y)).makeSqlLayer(M())), H = await Mt.runPromise(Kn.SqlClient));
1230
- let zt = hn({
1228
+ }), N = v?.plugins ?? [], L = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, R, V;
1229
+ y !== "memory" && (R = Rt.make((await a(y)).makeSqlLayer(A())), V = await R.runPromise(Kn.SqlClient));
1230
+ let Bt = hn({
1231
1231
  coordinator: [
1232
1232
  "postgres",
1233
1233
  "mariadb",
1234
1234
  "mysql",
1235
1235
  "mssql"
1236
- ].includes(y) ? un(k, jt, $) : Rn,
1237
- replicaId: jt,
1236
+ ].includes(y) ? un(E, L, $) : Rn,
1237
+ replicaId: L,
1238
1238
  log: $
1239
- }), Bt = [], Vt = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Ht = Fr(v?.plugins ?? [])?.broadcast?.provider, Ut = ut(v?.plugins, v?.name ?? Nt(g));
1239
+ }), Vt = [], Ht = process.env.POD_NAME ?? process.env.HOSTNAME ?? `serve-${process.pid}`, Ut = Fr(v?.plugins ?? [])?.broadcast?.provider, H = ft(v?.plugins, v?.name ?? Pt(g));
1240
1240
  {
1241
- let e = ke(v?.plugins, v?.name ?? Nt(g));
1241
+ let e = Me(v?.plugins, v?.name ?? Pt(g));
1242
1242
  e !== void 0 && $.warn(e);
1243
1243
  }
1244
- let Kt = je(v?.plugins, {
1245
- instanceId: Vt,
1246
- namespace: Ut,
1244
+ let Kt = Pe(v?.plugins, {
1245
+ instanceId: Ht,
1246
+ namespace: H,
1247
1247
  meta: { mode: "serve" },
1248
1248
  logger: $
1249
1249
  }), qt = {
1250
- ...H ? { sql: H } : {},
1251
- instanceId: Vt,
1250
+ ...V ? { sql: V } : {},
1251
+ instanceId: Ht,
1252
1252
  membership: Kt.membership,
1253
- ...Ht === void 0 ? {} : { broadcast: Ht },
1254
- broadcastChannels: { presence: Pr(Ut, "presence") },
1253
+ ...Ut === void 0 ? {} : { broadcast: Ut },
1254
+ broadcastChannels: { presence: Pr(H, "presence") },
1255
1255
  scheduleCoordinated: (e, t, n) => {
1256
- let r = zt(e, t, n);
1257
- return Bt.push(r), r;
1256
+ let r = Bt(e, t, n);
1257
+ return Vt.push(r), r;
1258
1258
  }
1259
1259
  };
1260
- for (let e of F) e.bindDataStore?.(k, qt);
1261
- Ge({
1262
- store: k,
1260
+ for (let e of N) e.bindDataStore?.(E, qt);
1261
+ qe({
1262
+ store: E,
1263
1263
  ...d(),
1264
1264
  log: $
1265
1265
  });
1266
- let Jt = F.filter((e) => typeof e.onChangeEvent == "function");
1266
+ let Jt = N.filter((e) => typeof e.onChangeEvent == "function");
1267
1267
  if (Jt.length > 0) {
1268
- let e = k.changeScope ?? "local";
1269
- k.onChange((t) => {
1268
+ let e = E.changeScope ?? "local";
1269
+ E.onChange((t) => {
1270
1270
  let n = h(t, e);
1271
- for (let e of Jt) B.runFork(e.onChangeEvent(n).pipe(B.catchAllCause((t) => B.sync(() => $.warn(`plugin ${e.name} onChangeEvent failed`, { error: It.pretty(t) })))));
1271
+ for (let e of Jt) z.runFork(e.onChangeEvent(n).pipe(z.catchAllCause((t) => z.sync(() => $.warn(`plugin ${e.name} onChangeEvent failed`, { error: Lt.pretty(t) })))));
1272
1272
  });
1273
1273
  }
1274
- let Yt = nt({
1275
- plugins: F,
1274
+ let Yt = it({
1275
+ plugins: N,
1276
1276
  appName: v?.name ?? "voltro-api",
1277
1277
  appType: "api",
1278
1278
  voltroVersion: process.env.npm_package_version ?? "0.0.0",
1279
1279
  log: $
1280
1280
  });
1281
- F.length && await Yt.activate(), p.mark("plugins");
1281
+ N.length && await Yt.activate(), p.mark("plugins");
1282
1282
  let U = await Yt.gatherObservability(), Xt = {
1283
1283
  info: (e, t) => process.stdout.write(`[broadcast] ${e} ${t ? JSON.stringify(t) : ""}\n`),
1284
1284
  warn: (e, t) => process.stderr.write(`[broadcast] ${e} ${t ? JSON.stringify(t) : ""}\n`),
1285
1285
  debug: () => {}
1286
- }, W, Zt = await ze(k, v, y, Ut, Xt, (e, t) => {
1286
+ }, W, Zt = await He(E, v, y, H, Xt, (e, t) => {
1287
1287
  W?.refreshAll(`broadcast gap: missed ${t} change(s) from ${e}`);
1288
- }), Qt = v?.apiKeys, on = (typeof Qt == "object" ? Qt.prefix : void 0) ?? "voltro_", sn = Qt ? en(k) : void 0, cn = sn ? fn({ flush: pn(sn) }) : void 0;
1288
+ }), Qt = v?.apiKeys, on = (typeof Qt == "object" ? Qt.prefix : void 0) ?? "voltro_", sn = Qt ? en(E) : void 0, cn = sn ? fn({ flush: pn(sn) }) : void 0;
1289
1289
  cn && On(() => cn.shutdown());
1290
1290
  let ln = sn ? dn(sn, {
1291
1291
  prefix: on,
1292
1292
  ...cn ? { usage: cn } : {}
1293
- }) : void 0, gn = ln ? [an(ln, { prefix: on })] : [], _n = P([...v?.auth?.strategies ?? [], ...gn], Ar(v?.plugins ?? []), v?.auth?.anonymousTenantRequired ?? !1, v?.auth?.resolveScopes, () => Me), vn = [...v?.restRoutes ?? [], ...ln ? Wt(ln, (typeof Qt == "object" ? Qt.managementPath : void 0) ?? "/v1/api-keys") : []], yn = v?.idempotency, bn = yn ? {
1294
- store: tn(k),
1293
+ }) : void 0, gn = ln ? [an(ln, { prefix: on })] : [], _n = M([...v?.auth?.strategies ?? [], ...gn], Ar(v?.plugins ?? []), v?.auth?.anonymousTenantRequired ?? !1, v?.auth?.resolveScopes, () => Fe), vn = [...v?.restRoutes ?? [], ...ln ? Wt(ln, (typeof Qt == "object" ? Qt.managementPath : void 0) ?? "/v1/api-keys") : []], yn = v?.idempotency, bn = yn ? {
1294
+ store: tn(E),
1295
1295
  header: (typeof yn == "object" ? yn.header : void 0) ?? "Idempotency-Key",
1296
1296
  ttlMs: (typeof yn == "object" ? yn.ttlMs : void 0) ?? 864e5
1297
1297
  } : void 0, xn = vn.length > 0 ? Mr(vn, {
1298
- store: k,
1298
+ store: E,
1299
1299
  resolveSubject: async (e) => (await _n({
1300
1300
  headers: e,
1301
1301
  clientId: -1
1302
1302
  })).subject,
1303
1303
  ...bn ? { idempotency: bn } : {}
1304
- }) : [], Sn = F.map((e) => e.services).filter((e) => e !== void 0), Cn = V.mergeAll(se({
1305
- analyticsLayer: E.layer,
1306
- cacheService: Ne,
1307
- kvService: lt,
1308
- ...Ke === void 0 ? {} : { semanticCache: Ke },
1304
+ }) : [], Sn = N.map((e) => e.services).filter((e) => e !== void 0), Cn = B.mergeAll(se({
1305
+ analyticsLayer: De.layer,
1306
+ cacheService: Ie,
1307
+ kvService: dt,
1308
+ ...Je === void 0 ? {} : { semanticCache: Je },
1309
1309
  pluginServices: Sn,
1310
1310
  userLayers: v?.layers ?? []
1311
- }), N(v?.http ?? {})), wn = v?.scheduling ?? {}, En = wn.trigger ?? "self", G = /* @__PURE__ */ new Set([
1311
+ }), j(v?.http ?? {})), wn = v?.scheduling ?? {}, En = wn.trigger ?? "self", G = /* @__PURE__ */ new Set([
1312
1312
  "postgres",
1313
1313
  "mysql",
1314
1314
  "mariadb",
1315
1315
  "mssql"
1316
1316
  ]), Dn = wn.coordination ?? (G.has(y) ? "advisoryLock" : "single"), K = Dn === "cluster" && G.has(y), An = K ? "cluster" : Dn === "advisoryLock" && G.has(y) ? "advisoryLock" : "single";
1317
1317
  Dn === "cluster" && !K && $.warn("scheduling.coordination=cluster needs a sql-backed store except sqlite — falling back to single"), Dn === "advisoryLock" && !G.has(y) && $.warn("scheduling.coordination=advisoryLock needs a SQL store (the claim-row gate) — falling back to single");
1318
- let jn, Mn = x.workflows.length > 0 || x.workflowWorkers.length > 0 || x.eventTriggers.length > 0 || (Se?.outgoing.length ?? 0) > 0 || K, Pn;
1318
+ let jn, Mn = x.workflows.length > 0 || x.workflowWorkers.length > 0 || x.eventTriggers.length > 0 || (w?.outgoing.length ?? 0) > 0 || K, Pn;
1319
1319
  if (Mn) {
1320
1320
  if (y === "mssql") {
1321
1321
  let e = await de(process.cwd());
@@ -1331,7 +1331,7 @@ var Ur = (e, t) => {
1331
1331
  Pn = y === "memory" ? e.layerMemory : await (async () => {
1332
1332
  let e = await a(y), t = r({ sqliteFamily: e.id === "sqlite" || e.id === "turso" });
1333
1333
  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({
1334
- sqlClientLayer: e.makeSqlLayer(M()),
1334
+ sqlClientLayer: e.makeSqlLayer(A()),
1335
1335
  runnerStorage: t,
1336
1336
  dialectId: e.id,
1337
1337
  ...process.env.VOLTRO_WORKFLOW_RUNNER_PORT ? { runnerListenPort: Number(process.env.VOLTRO_WORKFLOW_RUNNER_PORT) } : {},
@@ -1340,18 +1340,18 @@ var Ur = (e, t) => {
1340
1340
  });
1341
1341
  })();
1342
1342
  }
1343
- let In = _(F, r()), Ln = b.filter((e) => /\.subscribe\.tsx?$/.test(e)), zn = Ln.length > 0 ? await ae(Ln, $) : [], Bn = b.filter((e) => /\.reaction\.tsx?$/.test(e)), Vn = Bn.length > 0 ? await ie(Bn, $) : [], Un = b.filter((e) => Et.test(e)), Gn = Un.length > 0 ? await pe(Un, $) : [], Jn = b.filter((e) => /\.aggregate\.tsx?$/.test(e)), q = Jn.length > 0 ? await ht(Jn, $) : [], Xn = ye();
1343
+ let In = _(N, r()), Ln = b.filter((e) => /\.subscribe\.tsx?$/.test(e)), zn = Ln.length > 0 ? await ae(Ln, $) : [], Bn = b.filter((e) => /\.reaction\.tsx?$/.test(e)), Vn = Bn.length > 0 ? await ie(Bn, $) : [], Un = b.filter((e) => Ot.test(e)), Gn = Un.length > 0 ? await pe(Un, $) : [], Jn = b.filter((e) => /\.aggregate\.tsx?$/.test(e)), q = Jn.length > 0 ? await _t(Jn, $) : [], Xn = xe();
1344
1344
  if (q.length > 0 && y !== "memory") try {
1345
- Xn = ne((await a(y)).makeSqlLayer(M()));
1345
+ Xn = ne((await a(y)).makeSqlLayer(A()));
1346
1346
  } catch (e) {
1347
1347
  $.warn("aggregate: SQL storage init failed — falling back to in-process", { err: String(e) });
1348
1348
  }
1349
- let Zn = y === "memory" ? Rn : un(k, `aggregate@${process.pid}`, $), Qn = b.filter((e) => R.test(e)), $n = Qn.length > 0 ? await O(Qn, $) : [], er = b.filter((e) => Tt.test(e)), tr = er.length > 0 ? await Be(er, $) : [], nr = b.filter((e) => wt.test(e)), rr = nr.length > 0 ? await dt(nr, $) : [], J = [], ir = [], ar = b.filter((e) => yt.test(e));
1349
+ let Zn = y === "memory" ? Rn : un(E, `aggregate@${process.pid}`, $), Qn = b.filter((e) => kt.test(e)), $n = Qn.length > 0 ? await T(Qn, $) : [], er = b.filter((e) => Dt.test(e)), tr = er.length > 0 ? await Ue(er, $) : [], nr = b.filter((e) => Et.test(e)), rr = nr.length > 0 ? await pt(nr, $) : [], J = [], ir = [], ar = b.filter((e) => xt.test(e));
1350
1350
  if (ar.length > 0) {
1351
- let e = $.child("agent"), t = b.filter((e) => bt.test(e));
1352
- t.length > 0 && await I(t, e);
1353
- let n = await L(ar, e);
1354
- for (let e of n.agents) for (let t of Te(e)) (t.kind === "action" ? J : ir).push({
1351
+ let e = $.child("agent"), t = b.filter((e) => St.test(e));
1352
+ t.length > 0 && await P(t, e);
1353
+ let n = await F(ar, e);
1354
+ for (let e of n.agents) for (let t of Ee(e)) (t.kind === "action" ? J : ir).push({
1355
1355
  file: t.file,
1356
1356
  descriptor: t.descriptor,
1357
1357
  executor: t.executor
@@ -1363,17 +1363,17 @@ var Ur = (e, t) => {
1363
1363
  let e = Z.workflowWriteActions();
1364
1364
  if (e === void 0) throw Error("workflow actions: this app registers no workflows");
1365
1365
  return e;
1366
- }, X = await De({
1366
+ }, X = await Ae({
1367
1367
  files: b,
1368
- store: k,
1368
+ store: E,
1369
1369
  log: $,
1370
1370
  seedPolicy: "report",
1371
1371
  seedPattern: o,
1372
1372
  loadSeedFiles: i,
1373
- startupPattern: Ct,
1374
- loadStartupFiles: kt,
1375
- runStartups: Ot,
1376
- emailPattern: w,
1373
+ startupPattern: Tt,
1374
+ loadStartupFiles: jt,
1375
+ runStartups: At,
1376
+ emailPattern: S,
1377
1377
  loadEmailFiles: l,
1378
1378
  registerEmailTemplates: Nr
1379
1379
  });
@@ -1387,46 +1387,46 @@ var Ur = (e, t) => {
1387
1387
  kind: "api",
1388
1388
  meta: {
1389
1389
  name: v?.name ?? "voltro-api",
1390
- voltroVersion: at,
1390
+ voltroVersion: st,
1391
1391
  port: oe,
1392
1392
  mode: "start",
1393
1393
  store: y,
1394
1394
  cdc: ce ? "on" : "off"
1395
1395
  },
1396
- rpc: Ue(x, g),
1397
- workflows: Ae(x, g),
1396
+ rpc: Ge(x, g),
1397
+ workflows: Ne(x, g),
1398
1398
  events: () => Z.eventsSnapshot(),
1399
1399
  members: () => Z.membersSnapshot(),
1400
1400
  inspectFireSchedule: async ({ name: e, trigger: t }) => {
1401
1401
  if (!jn) throw Error("scheduler not started — this app registers no self-triggered schedules (all schedules are trigger:'external', or there are none).");
1402
1402
  return { runId: await jn.fireNow(e, t) ?? null };
1403
1403
  },
1404
- ...Se === void 0 ? {} : { webhooks: () => qe({
1405
- store: k,
1406
- discoveredWebhooks: Se
1404
+ ...w === void 0 ? {} : { webhooks: () => Ye({
1405
+ store: E,
1406
+ discoveredWebhooks: w
1407
1407
  }) },
1408
1408
  plugins: () => ({
1409
1409
  plugins: Yt.snapshot(),
1410
1410
  capturedAt: Date.now()
1411
1411
  }),
1412
- env: () => t(v?.name ?? Nt(g), {
1412
+ env: () => t(v?.name ?? Pt(g), {
1413
1413
  ...v?.env !== void 0 && gr(v.env) ? { contract: v.env } : {},
1414
1414
  plugins: v?.plugins ?? []
1415
1415
  }),
1416
- dataCache: () => T({
1417
- stats: $e,
1418
- backendKind: Qe
1416
+ dataCache: () => C({
1417
+ stats: tt,
1418
+ backendKind: et
1419
1419
  }),
1420
1420
  subscriptions: () => te(() => W),
1421
1421
  inspectTables: () => ue(x.tables),
1422
- inspectRows: _e({
1423
- store: k,
1422
+ inspectRows: ye({
1423
+ store: E,
1424
1424
  tables: x.tables,
1425
1425
  mask: !0
1426
1426
  }),
1427
1427
  metrics: (e) => Z.rpcMetrics().snapshot(e),
1428
- cluster: () => mt({
1429
- store: k,
1428
+ cluster: () => gt({
1429
+ store: E,
1430
1430
  dialect: y,
1431
1431
  useClusterCron: K,
1432
1432
  scheduleCoordChoice: Dn
@@ -1436,13 +1436,13 @@ var Ur = (e, t) => {
1436
1436
  defaultTrigger: En,
1437
1437
  coordination: An
1438
1438
  }),
1439
- inspectScheduleRuns: (e) => re(k, e),
1440
- ...be(k, {
1441
- controls: it(x.workflows ?? []),
1439
+ inspectScheduleRuns: (e) => re(E, e),
1440
+ ...Se(E, {
1441
+ controls: ot(x.workflows ?? []),
1442
1442
  active: (x.workflows?.length ?? 0) > 0,
1443
1443
  cancellation: () => Z.flowControlHealth()
1444
1444
  }),
1445
- webhookActions: ft(() => Z.webhooksService()),
1445
+ webhookActions: mt(() => Z.webhooksService()),
1446
1446
  inspectStartWorkflow: (e) => Y().inspectStartWorkflow(e),
1447
1447
  inspectCancelWorkflowRun: (e) => Y().inspectCancelWorkflowRun(e),
1448
1448
  inspectSuspendWorkflowRun: (e) => Y().inspectSuspendWorkflowRun(e),
@@ -1451,13 +1451,13 @@ var Ur = (e, t) => {
1451
1451
  inspectRetryWorkflowRun: (e) => Y().inspectRetryWorkflowRun(e),
1452
1452
  inspectSignalWorkflowRun: (e) => Y().inspectSignalWorkflowRun(e),
1453
1453
  inspectUpdateWorkflowRun: (e) => Y().inspectUpdateWorkflowRun(e),
1454
- inspectInferences: (e) => rt({
1455
- store: k,
1454
+ inspectInferences: (e) => at({
1455
+ store: E,
1456
1456
  active: (x.workflows?.length ?? 0) > 0,
1457
1457
  dispatcher: () => Z.inferenceHealth()
1458
1458
  }, e.limit === void 0 ? {} : { limit: e.limit }),
1459
- ...et({
1460
- store: k,
1459
+ ...nt({
1460
+ store: E,
1461
1461
  cancelRun: async (e) => await Z.runCanceller()?.(e) ?? !1,
1462
1462
  retryRun: async (e) => Y().inspectRetryWorkflowRun({ runId: e }),
1463
1463
  redriveRun: async (e) => Z.redriveWorkflowRun({ runId: e }),
@@ -1467,10 +1467,10 @@ var Ur = (e, t) => {
1467
1467
  inspectResumeWorkflowRunFromStep: (e) => Z.resumeWorkflowRunFromStep(e)
1468
1468
  }, Z = await si({
1469
1469
  bootTiming: p,
1470
- broadcastNamespace: Ut,
1470
+ broadcastNamespace: H,
1471
1471
  membership: {
1472
1472
  ...Kt,
1473
- instanceId: Vt
1473
+ instanceId: Ht
1474
1474
  },
1475
1475
  ...v?.plugins === void 0 ? {} : { plugins: v.plugins },
1476
1476
  ...bn ? { idempotency: {
@@ -1495,20 +1495,20 @@ var Ur = (e, t) => {
1495
1495
  expectations: $n,
1496
1496
  budgets: tr,
1497
1497
  experiments: rr,
1498
- ...Se === void 0 ? {} : { webhooks: Se }
1498
+ ...w === void 0 ? {} : { webhooks: w }
1499
1499
  },
1500
1500
  log: $,
1501
- analytics: E.sink,
1501
+ analytics: De.sink,
1502
1502
  aggregateStorage: Xn,
1503
1503
  aggregateCoordinator: Zn,
1504
- store: k,
1505
- kv: st,
1506
- cache: We,
1507
- snapshotCache: He,
1508
- schemaRegistry: Oe,
1504
+ store: E,
1505
+ kv: lt,
1506
+ cache: Ke,
1507
+ snapshotCache: We,
1508
+ schemaRegistry: je,
1509
1509
  tenantScopedTables: x.tenantScopedTables,
1510
1510
  softDeleteScopedTables: x.softDeleteScopedTables,
1511
- dataTransferSnapshot: xr(Ee),
1511
+ dataTransferSnapshot: xr(Oe),
1512
1512
  dataTransferDialect: y,
1513
1513
  tenantIsolation: (process.env.VOLTRO_TENANT_ISOLATION ?? v?.tenancy?.isolation) === "namespace" ? "namespace" : "shared-schema",
1514
1514
  resolveSubject: async (e, t) => {
@@ -1518,8 +1518,8 @@ var Ur = (e, t) => {
1518
1518
  });
1519
1519
  return kn(t, n.credentialExpiresAt), n.subject;
1520
1520
  },
1521
- httpRoutes: [...F.flatMap((e) => e.httpRoutes ?? []), ...xn],
1522
- getStore: () => Me,
1521
+ httpRoutes: [...N.flatMap((e) => e.httpRoutes ?? []), ...xn],
1522
+ getStore: () => Fe,
1523
1523
  ...Cn ? { baseLayer: Cn } : {},
1524
1524
  ...Pn === void 0 ? {} : { workflowEngineLayer: Pn },
1525
1525
  scheduleDefaultTrigger: En,
@@ -1531,10 +1531,10 @@ var Ur = (e, t) => {
1531
1531
  onSchedulerReady: (e) => {
1532
1532
  jn = e;
1533
1533
  },
1534
- inspectRoute: { handle: async (e, t, n, r) => await S(e, or, t, {
1534
+ inspectRoute: { handle: async (e, t, n, r) => await me(e, or, t, {
1535
1535
  method: n,
1536
1536
  ...r === void 0 ? {} : { body: r }
1537
- }) || (Dt(e, or, t, {
1537
+ }) || (I(e, or, t, {
1538
1538
  method: n,
1539
1539
  ...r === void 0 ? {} : { body: r }
1540
1540
  }) ?? {
@@ -1547,7 +1547,7 @@ var Ur = (e, t) => {
1547
1547
  port: oe,
1548
1548
  ...v?.transport?.wsPath ? { path: v.transport.wsPath } : {}
1549
1549
  });
1550
- return W = Z.dispatcher, ee(_t([
1550
+ return W = Z.dispatcher, ee(yt([
1551
1551
  x.queries,
1552
1552
  x.mutations,
1553
1553
  x.actions,
@@ -1565,10 +1565,10 @@ var Ur = (e, t) => {
1565
1565
  schedules: x.schedules.length,
1566
1566
  scheduleCoordination: An
1567
1567
  }), p.finish($), On(async () => {
1568
- for (let e of Bt) e.stop();
1569
- pt.detach(), gt.stop(), tt(), Mt?.dispose();
1568
+ for (let e of Vt) e.stop();
1569
+ ht.detach(), vt.stop(), rt(), R?.dispose();
1570
1570
  try {
1571
- await Yt.deactivate(), await Zt?.close(), await E.dispose(), await Z.close(), await k.close?.();
1571
+ await Yt.deactivate(), await Zt?.close(), await De.dispose(), await Z.close(), await E.close?.();
1572
1572
  } catch (e) {
1573
1573
  console.error("serve: shutdown step failed, exiting anyway:", e);
1574
1574
  }