@voltro/protocol 0.64.0 → 0.65.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.
package/dist/index.js CHANGED
@@ -1,54 +1,54 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as ee, L as te, M as ne, N as c, O as re, P as ie, R as ae, S as oe, T as se, U as ce, V as le, W as ue, _ as de, a as l, b as fe, c as pe, d as me, f as he, g as ge, h as u, i as _e, j as ve, k as ye, l as be, m as xe, n as Se, o as Ce, p as we, r as Te, s as Ee, t as De, u as Oe, v as d, w as ke, x as Ae, y as je, z as Me } from "./scopes-D9t3tYc7.js";
2
- import { a as Ne, c as Pe, i as f, l as Fe, n as Ie, o as Le, r as Re, s as ze, t as Be, u as Ve } from "./serverErrorBus-QQgyq6fV.js";
3
- import { Context as He, Layer as Ue, Schema as p } from "effect";
4
- import { Rpc as m } from "@effect/rpc";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, K as ee, L as te, M as ne, N as re, O as ie, P as l, R as ae, S as oe, T as se, U as ce, V as le, W as ue, _ as de, a as u, b as fe, c as pe, d as me, f as he, g as d, h as ge, i as _e, j as ve, k as ye, l as be, m as xe, n as Se, o as Ce, p as we, r as Te, s as Ee, t as De, u as Oe, v as ke, w as Ae, x as je, y as f, z as Me } from "./scopes-C86BDyNJ.js";
2
+ import { a as Ne, c as Pe, i as p, l as Fe, n as Ie, o as Le, r as Re, s as ze, t as Be, u as Ve } from "./serverErrorBus-QQgyq6fV.js";
3
+ import { Context as He, Layer as Ue, Schema as m } from "effect";
4
+ import { Rpc as h } from "@effect/rpc";
5
5
  import { VersionConflict as We } from "@voltro/database/wire";
6
6
  //#region src/rowPatch.ts
7
- var Ge = p.Union(p.String, p.Number), h = p.Record({
8
- key: p.String,
9
- value: p.Unknown
10
- }).pipe(p.filter((e) => "id" in e, { message: () => "patch row must carry an id" })), g = p.Union(p.Struct({
11
- op: p.Literal("add"),
12
- path: p.String,
13
- value: h
14
- }), p.Struct({
15
- op: p.Literal("replace"),
16
- path: p.String,
17
- value: h
18
- }), p.Struct({
19
- op: p.Literal("remove"),
20
- path: p.String
21
- }), p.Struct({
22
- op: p.Literal("mergeCells"),
23
- path: p.String,
24
- value: p.Record({
25
- key: p.String,
26
- value: p.Unknown
7
+ var Ge = m.Union(m.String, m.Number), g = m.Record({
8
+ key: m.String,
9
+ value: m.Unknown
10
+ }).pipe(m.filter((e) => "id" in e, { message: () => "patch row must carry an id" })), _ = m.Union(m.Struct({
11
+ op: m.Literal("add"),
12
+ path: m.String,
13
+ value: g
14
+ }), m.Struct({
15
+ op: m.Literal("replace"),
16
+ path: m.String,
17
+ value: g
18
+ }), m.Struct({
19
+ op: m.Literal("remove"),
20
+ path: m.String
21
+ }), m.Struct({
22
+ op: m.Literal("mergeCells"),
23
+ path: m.String,
24
+ value: m.Record({
25
+ key: m.String,
26
+ value: m.Unknown
27
27
  })
28
- })), _ = p.Struct({
29
- ops: p.Array(g),
30
- order: p.Array(Ge)
31
- }), v = (e) => `/${String(e).replace(/~/g, "~0").replace(/\//g, "~1")}`, y = (e) => (e.startsWith("/") ? e.slice(1) : e).replace(/~1/g, "/").replace(/~0/g, "~"), b = (e) => {
28
+ })), v = m.Struct({
29
+ ops: m.Array(_),
30
+ order: m.Array(Ge)
31
+ }), y = (e) => `/${String(e).replace(/~/g, "~0").replace(/\//g, "~1")}`, b = (e) => (e.startsWith("/") ? e.slice(1) : e).replace(/~1/g, "/").replace(/~0/g, "~"), x = (e) => {
32
32
  let t = Object.keys(e).sort(), n = {};
33
33
  for (let r of t) n[r] = e[r];
34
34
  return JSON.stringify(n);
35
- }, x = (e, t) => b(e) === b(t), Ke = (e, t) => {
35
+ }, S = (e, t) => x(e) === x(t), Ke = (e, t) => {
36
36
  if (e instanceof Uint8Array && t instanceof Uint8Array) {
37
37
  if (e.length !== t.length) return !1;
38
38
  for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1;
39
39
  return !0;
40
40
  }
41
- return b({
41
+ return x({
42
42
  id: 0,
43
43
  v: e
44
- }) === b({
44
+ }) === x({
45
45
  id: 0,
46
46
  v: t
47
47
  });
48
48
  }, qe = (e, t, n = {}) => {
49
49
  let r = /* @__PURE__ */ new Map();
50
50
  for (let t of e) r.set(t.id, t);
51
- let i = [], a = [], o = /* @__PURE__ */ new Set(), s = n.crdt, ee = (e, t) => {
51
+ let i = [], a = [], o = /* @__PURE__ */ new Set(), s = n.crdt, c = (e, t) => {
52
52
  if (s === void 0 || s.columns.size === 0) return;
53
53
  let n = {}, r = !1;
54
54
  for (let i of s.columns) {
@@ -70,29 +70,29 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
70
70
  let t = r.get(e.id);
71
71
  if (t === void 0) i.push({
72
72
  op: "add",
73
- path: v(e.id),
73
+ path: y(e.id),
74
74
  value: e
75
75
  });
76
- else if (!x(t, e)) {
77
- let n = ee(t, e);
76
+ else if (!S(t, e)) {
77
+ let n = c(t, e);
78
78
  n === void 0 ? i.push({
79
79
  op: "replace",
80
- path: v(e.id),
80
+ path: y(e.id),
81
81
  value: e
82
- }) : (x(Object.fromEntries(Object.entries(t).filter(([e]) => !s.columns.has(e))), n.scalars) || i.push({
82
+ }) : (S(Object.fromEntries(Object.entries(t).filter(([e]) => !s.columns.has(e))), n.scalars) || i.push({
83
83
  op: "replace",
84
- path: v(e.id),
84
+ path: y(e.id),
85
85
  value: n.scalars
86
86
  }), i.push({
87
87
  op: "mergeCells",
88
- path: v(e.id),
88
+ path: y(e.id),
89
89
  value: n.merges
90
90
  }));
91
91
  }
92
92
  }
93
93
  for (let t of e) o.has(t.id) || i.push({
94
94
  op: "remove",
95
- path: v(t.id)
95
+ path: y(t.id)
96
96
  });
97
97
  return {
98
98
  ops: i,
@@ -106,7 +106,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
106
106
  for (let t of e) r.set(t.id, t);
107
107
  for (let e of t.ops) {
108
108
  if (e.op === "mergeCells") {
109
- let t = y(e.path), i = r.get(t) ?? r.get(Number(t)), a = r.has(t) ? t : Number(t);
109
+ let t = b(e.path), i = r.get(t) ?? r.get(Number(t)), a = r.has(t) ? t : Number(t);
110
110
  if (i === void 0) continue;
111
111
  let o = { ...i };
112
112
  for (let [t, r] of Object.entries(e.value)) o[t] = n.mergeCell === void 0 ? r : n.mergeCell(t, i[t], r);
@@ -121,56 +121,56 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
121
121
  t !== void 0 && i.push(t);
122
122
  }
123
123
  return i;
124
- }, S = (e) => p.Union(p.Struct({
125
- _tag: p.Literal("snapshot"),
126
- revision: p.Number,
124
+ }, C = (e) => m.Union(m.Struct({
125
+ _tag: m.Literal("snapshot"),
126
+ revision: m.Number,
127
127
  data: e,
128
- computed: p.optional(p.Boolean)
129
- }), p.Struct({
130
- _tag: p.Literal("delta"),
131
- revision: p.Number,
132
- emittedAt: p.Number,
133
- patch: _
134
- }), p.Struct({
135
- _tag: p.Literal("error"),
136
- error: p.Unknown,
137
- revision: p.optional(p.Number)
138
- })), C = (e, t) => {
128
+ computed: m.optional(m.Boolean)
129
+ }), m.Struct({
130
+ _tag: m.Literal("delta"),
131
+ revision: m.Number,
132
+ emittedAt: m.Number,
133
+ patch: v
134
+ }), m.Struct({
135
+ _tag: m.Literal("error"),
136
+ error: m.Unknown,
137
+ revision: m.optional(m.Number)
138
+ })), w = (e, t) => {
139
139
  let n = `${e ?? "this procedure"} input`;
140
140
  return t === !0 ? `${n} (guarded — the guard did NOT run: the payload failed to decode first, so this says nothing about access)` : n;
141
141
  }, Xe = (e) => {
142
142
  let t = e.ast;
143
143
  return t._tag === "TypeLiteral" && (t.propertySignatures?.length ?? 0) === 0 && (t.indexSignatures?.length ?? 0) === 0;
144
- }, w = (e, t, n) => {
145
- let r = C(t, n), i = e.annotations({
144
+ }, T = (e, t, n) => {
145
+ let r = w(t, n), i = e.annotations({
146
146
  parseOptions: { onExcessProperty: "error" },
147
147
  parseIssueTitle: () => r
148
148
  });
149
- return Xe(e) ? p.filter((e) => typeof e == "object" && e && Object.keys(e).length > 0 ? `this procedure declares no input; received: ${Object.keys(e).join(", ")}` : void 0)(i).annotations({ identifier: r }) : i;
150
- }, T = class extends p.TaggedError()("BusinessRuleViolation", {
151
- rule: p.String,
152
- params: p.optional(p.Record({
153
- key: p.String,
154
- value: p.Unknown
149
+ return Xe(e) ? m.filter((e) => typeof e == "object" && e && Object.keys(e).length > 0 ? `this procedure declares no input; received: ${Object.keys(e).join(", ")}` : void 0)(i).annotations({ identifier: r }) : i;
150
+ }, E = class extends m.TaggedError()("BusinessRuleViolation", {
151
+ rule: m.String,
152
+ params: m.optional(m.Record({
153
+ key: m.String,
154
+ value: m.Unknown
155
155
  })),
156
- field: p.optional(p.String),
157
- message: p.optional(p.String),
158
- severity: p.Literal("error", "warning")
159
- }) {}, E = p.Struct({
160
- field: p.String,
161
- message: p.String,
162
- params: p.optional(p.Record({
163
- key: p.String,
164
- value: p.Unknown
156
+ field: m.optional(m.String),
157
+ message: m.optional(m.String),
158
+ severity: m.Literal("error", "warning")
159
+ }) {}, D = m.Struct({
160
+ field: m.String,
161
+ message: m.String,
162
+ params: m.optional(m.Record({
163
+ key: m.String,
164
+ value: m.Unknown
165
165
  }))
166
- }), D = class extends p.TaggedError()("ValidationError", {
167
- field: p.String,
168
- message: p.String,
169
- params: p.optional(p.Record({
170
- key: p.String,
171
- value: p.Unknown
166
+ }), O = class extends m.TaggedError()("ValidationError", {
167
+ field: m.String,
168
+ message: m.String,
169
+ params: m.optional(m.Record({
170
+ key: m.String,
171
+ value: m.Unknown
172
172
  }))
173
- }) {}, O = class extends p.TaggedError()("ValidationErrors", { issues: p.Array(E).pipe(p.minItems(1)) }) {}, Ze = (e) => {
173
+ }) {}, Ze = class extends m.TaggedError()("ValidationErrors", { issues: m.Array(D).pipe(m.minItems(1)) }) {}, Qe = (e) => {
174
174
  if (typeof e != "object" || !e) return [];
175
175
  let t = e._tag;
176
176
  if (t === "ValidationError") {
@@ -196,49 +196,49 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
196
196
  }];
197
197
  }
198
198
  return [];
199
- }, Qe = class extends p.TaggedError()("ApprovalRequired", {
200
- approvalId: p.String,
201
- procedure: p.String,
202
- expiresAt: p.String,
203
- requiredScopes: p.Array(p.String),
204
- reason: p.NullOr(p.String),
205
- created: p.Boolean
206
- }) {}, $e = class extends p.TaggedError()("ApprovalNotFound", { approvalId: p.String }) {}, et = class extends p.TaggedError()("ApprovalSelfApproval", {
207
- approvalId: p.String,
208
- subjectId: p.NullOr(p.String)
209
- }) {}, tt = class extends p.TaggedError()("ApprovalRejected", {
210
- approvalId: p.String,
211
- decidedBy: p.NullOr(p.String),
212
- note: p.NullOr(p.String)
213
- }) {}, k = class extends p.TaggedError()("ApprovalExpired", {
214
- approvalId: p.String,
215
- expiredAt: p.String
216
- }) {}, nt = class extends p.TaggedError()("ApprovalNotPending", {
217
- approvalId: p.String,
218
- status: p.String
219
- }) {}, rt = class extends p.TaggedError()("ApprovalForbidden", {
220
- approvalId: p.String,
221
- required: p.NullOr(p.String),
222
- message: p.String
223
- }) {}, A = class extends p.TaggedError()("ApprovalUnavailable", {
224
- procedure: p.String,
225
- message: p.String
226
- }) {}, it = p.Union(Qe, tt, k, A), at = p.Union($e, et, k, nt, rt, A), ot = p.Struct({
227
- id: p.String,
228
- procedure: p.String,
229
- kind: p.Literal("mutation", "action"),
230
- requestedBy: p.NullOr(p.String),
231
- status: p.Literal("pending", "approved", "rejected", "expired", "consumed"),
232
- reason: p.NullOr(p.String),
233
- requiredScopes: p.Array(p.String),
234
- requestedAt: p.String,
235
- expiresAt: p.String,
236
- decidedBy: p.NullOr(p.String),
237
- decidedAt: p.NullOr(p.String),
238
- note: p.NullOr(p.String),
239
- relation: p.Literal("to-decide", "requested")
240
- }), j = "channel:", st = Symbol.for("@voltro/protocol/reactivityChannels"), ct = globalThis, M = ct[st] ?? (ct[st] = /* @__PURE__ */ new Map()), lt = /^[a-z][a-z0-9-]*(\.[a-z0-9-]+)*$/, ut = (e) => {
241
- if (!lt.test(e)) throw Error(`reactivityChannel('${e}'): invalid channel name.\n Use lowercase kebab segments separated by dots — \`presence\`, \`job-queue\`,
199
+ }, $e = class extends m.TaggedError()("ApprovalRequired", {
200
+ approvalId: m.String,
201
+ procedure: m.String,
202
+ expiresAt: m.String,
203
+ requiredScopes: m.Array(m.String),
204
+ reason: m.NullOr(m.String),
205
+ created: m.Boolean
206
+ }) {}, et = class extends m.TaggedError()("ApprovalNotFound", { approvalId: m.String }) {}, tt = class extends m.TaggedError()("ApprovalSelfApproval", {
207
+ approvalId: m.String,
208
+ subjectId: m.NullOr(m.String)
209
+ }) {}, nt = class extends m.TaggedError()("ApprovalRejected", {
210
+ approvalId: m.String,
211
+ decidedBy: m.NullOr(m.String),
212
+ note: m.NullOr(m.String)
213
+ }) {}, k = class extends m.TaggedError()("ApprovalExpired", {
214
+ approvalId: m.String,
215
+ expiredAt: m.String
216
+ }) {}, rt = class extends m.TaggedError()("ApprovalNotPending", {
217
+ approvalId: m.String,
218
+ status: m.String
219
+ }) {}, it = class extends m.TaggedError()("ApprovalForbidden", {
220
+ approvalId: m.String,
221
+ required: m.NullOr(m.String),
222
+ message: m.String
223
+ }) {}, A = class extends m.TaggedError()("ApprovalUnavailable", {
224
+ procedure: m.String,
225
+ message: m.String
226
+ }) {}, at = m.Union($e, nt, k, A), ot = m.Union(et, tt, k, rt, it, A), st = m.Struct({
227
+ id: m.String,
228
+ procedure: m.String,
229
+ kind: m.Literal("mutation", "action"),
230
+ requestedBy: m.NullOr(m.String),
231
+ status: m.Literal("pending", "approved", "rejected", "expired", "consumed"),
232
+ reason: m.NullOr(m.String),
233
+ requiredScopes: m.Array(m.String),
234
+ requestedAt: m.String,
235
+ expiresAt: m.String,
236
+ decidedBy: m.NullOr(m.String),
237
+ decidedAt: m.NullOr(m.String),
238
+ note: m.NullOr(m.String),
239
+ relation: m.Literal("to-decide", "requested")
240
+ }), j = "channel:", ct = Symbol.for("@voltro/protocol/reactivityChannels"), lt = globalThis, M = lt[ct] ?? (lt[ct] = /* @__PURE__ */ new Map()), ut = /^[a-z][a-z0-9-]*(\.[a-z0-9-]+)*$/, dt = (e) => {
241
+ if (!ut.test(e)) throw Error(`reactivityChannel('${e}'): invalid channel name.\n Use lowercase kebab segments separated by dots — \`presence\`, \`job-queue\`,
242
242
  \`billing.usage\`. A \`:\` is refused because it is the namespace separator in
243
243
  the routing key (\`${j}<name>\`), and an uppercase letter is\n refused because a key that differs only by case reads as one channel and
244
244
  routes as two.`);
@@ -251,14 +251,14 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
251
251
  toString: () => n
252
252
  });
253
253
  return M.set(e, r), r;
254
- }, dt = (e) => typeof e == "object" && !!e && e.kind === "reactivity-channel", ft = (e) => e.startsWith(j), pt = () => new Set([...M.values()].map((e) => e.key)), N = (e) => dt(e) ? e.key : e, mt = (e) => e === void 0 ? [] : Array.isArray(e) ? e.map(N) : [N(e)], ht = (e) => e === void 0 ? void 0 : Array.isArray(e) ? e.map(N) : N(e), gt = (e) => {
255
- let t = pt(), n = [];
256
- for (let r of e) for (let e of mt(r.source)) !ft(e) || t.has(e) || n.push({
254
+ }, ft = (e) => typeof e == "object" && !!e && e.kind === "reactivity-channel", pt = (e) => e.startsWith(j), mt = () => new Set([...M.values()].map((e) => e.key)), N = (e) => ft(e) ? e.key : e, ht = (e) => e === void 0 ? [] : Array.isArray(e) ? e.map(N) : [N(e)], gt = (e) => e === void 0 ? void 0 : Array.isArray(e) ? e.map(N) : N(e), _t = (e) => {
255
+ let t = mt(), n = [];
256
+ for (let r of e) for (let e of ht(r.source)) !pt(e) || t.has(e) || n.push({
257
257
  procedure: r.name,
258
258
  key: e
259
259
  });
260
260
  return n;
261
- }, _t = (e, t) => {
261
+ }, vt = (e, t) => {
262
262
  let n = e?.injectExternalChange;
263
263
  return n !== void 0 && (n.call(e, {
264
264
  table: t.key,
@@ -267,8 +267,8 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
267
267
  old: {},
268
268
  origin: "inline"
269
269
  }), !0);
270
- }, vt = (e) => e.internal !== !0, P = (e) => {
271
- if (yt(e), Array.isArray(e.guards) && e.guards.length === 0) throw Error(`${e.name}: \`guards: []\` is empty, so it enforces nothing — but it reads\n at the call site as if this procedure were protected. Omit the field for an
270
+ }, yt = (e) => e.internal !== !0, P = (e) => {
271
+ if (bt(e), Array.isArray(e.guards) && e.guards.length === 0) throw Error(`${e.name}: \`guards: []\` is empty, so it enforces nothing — but it reads\n at the call site as if this procedure were protected. Omit the field for an
272
272
  unguarded procedure, or list the scopes required to call it.`);
273
273
  let t = typeof e.source == "string" ? [e.source] : Array.isArray(e.source) ? e.source : void 0;
274
274
  if (t !== void 0 && (t.length === 0 || t.some((e) => String(e).trim() === ""))) throw Error(`${e.name}: \`source\` is empty, so this query declares reactivity and\n subscribes to nothing — it serves one snapshot and never updates again,
@@ -285,7 +285,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
285
285
  let n = [e.publicApi === void 0 ? void 0 : "publicApi", e.exposeAsTool === void 0 ? void 0 : "exposeAsTool"].filter((e) => e !== void 0);
286
286
  if (n.length === 0) return e;
287
287
  throw Error(`${e.name}: \`internal: true\` cannot be combined with ${n.map((e) => `\`${e}\``).join(" or ")}. \`internal\` takes the procedure OFF the wire; those put it back ON a different one (${n.includes("publicApi") ? "a REST route" : "an agent tool"}), and that surface is projected without consulting the flag — so the procedure would be unreachable from your client and reachable from the internet. Drop \`internal: true\` if the wider surface is intended, or remove the ${n.join(" / ")} annotation if it is not.`);
288
- }, yt = (e) => {
288
+ }, bt = (e) => {
289
289
  let t = e.requiresApproval;
290
290
  if (t !== void 0) {
291
291
  if (!Array.isArray(t.approvers) || t.approvers.length === 0) throw Error(`${e.name}: \`requiresApproval.approvers\` is empty, so NOBODY can approve this\n procedure and every call would park forever. Name the scope(s) an approver must hold
@@ -295,20 +295,20 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
295
295
  human from every other, and the second-pair-of-eyes control would enforce nothing.
296
296
  Give the procedure a \`guards:\` decision, or drop \`requiresApproval\`.`);
297
297
  }
298
- }, bt = (e) => e.action !== void 0 && e.resourceType !== void 0, xt = (e) => e.openAccess !== void 0 || e.guards !== void 0 && e.guards.length > 0, F = (e, t, n) => {
298
+ }, xt = (e) => e.action !== void 0 && e.resourceType !== void 0, St = (e) => e.authenticated === !0, Ct = (e) => e.openAccess !== void 0 || e.guards !== void 0 && e.guards.length > 0, F = (e, t, n) => {
299
299
  if (n === void 0) return t;
300
300
  if (n.trim() === "") throw Error(`${e}: \`openAccess\` needs a REASON, not an empty string. It is the sentence a\n reviewer reads to decide whether this procedure should really be callable
301
301
  without an authorization check — e.g. \`openAccess: 'public pricing, no caller data'\`.`);
302
302
  if (t !== void 0 && t.length > 0) throw Error(`${e}: \`openAccess\` and \`guards\` are two different access decisions, so\n declaring both says the procedure is protected AND open. Keep the guards if a
303
303
  caller must hold a scope; drop them if anyone may call it.`);
304
- return [d(n.trim())];
304
+ return [f(n.trim())];
305
305
  }, I = (e) => P({
306
306
  kind: "query",
307
307
  name: e.name,
308
308
  input: e.input,
309
309
  output: e.output,
310
- error: e.error ?? p.Never,
311
- source: ht(e.source),
310
+ error: e.error ?? m.Never,
311
+ source: gt(e.source),
312
312
  cache: e.cache,
313
313
  guards: F(e.name, e.guards, e.openAccess),
314
314
  openAccess: e.openAccess,
@@ -321,7 +321,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
321
321
  name: e.name,
322
322
  input: e.input,
323
323
  output: e.output,
324
- error: e.error ?? p.Never,
324
+ error: e.error ?? m.Never,
325
325
  target: e.target,
326
326
  guards: F(e.name, e.guards, e.openAccess),
327
327
  openAccess: e.openAccess,
@@ -335,7 +335,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
335
335
  name: e.name,
336
336
  input: e.input,
337
337
  output: e.output,
338
- error: e.error ?? p.Never,
338
+ error: e.error ?? m.Never,
339
339
  guards: F(e.name, e.guards, e.openAccess),
340
340
  openAccess: e.openAccess,
341
341
  source: e.source,
@@ -345,53 +345,53 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
345
345
  requiresApproval: e.requiresApproval,
346
346
  internal: e.internal,
347
347
  overridesPlugin: e.overridesPlugin
348
- }), St = (e) => P({
348
+ }), wt = (e) => P({
349
349
  kind: "stream",
350
350
  name: e.name,
351
351
  input: e.input,
352
352
  element: e.element,
353
- error: e.error ?? p.Never,
353
+ error: e.error ?? m.Never,
354
354
  internal: e.internal,
355
355
  overridesPlugin: e.overridesPlugin,
356
356
  guards: F(e.name, e.guards, e.openAccess),
357
357
  openAccess: e.openAccess
358
- }), z = (e, t) => t && t.length > 0 ? p.Union(e, ...t) : e, B = (e) => e !== void 0 && e.some((e) => !u(e)), Ct = (e, t) => B(t) ? p.Union(e, l, c) : e, wt = (e) => p.Union(e, T), Tt = (e) => p.Union(e, D, O), Et = (e, t) => t === void 0 ? e : p.Union(e, it), V = (e, t) => {
358
+ }), z = (e, t) => t && t.length > 0 ? m.Union(e, ...t) : e, B = (e) => e !== void 0 && e.some((e) => !d(e)), V = (e, t) => B(t) ? m.Union(e, u, l) : e, Tt = (e) => m.Union(e, E), Et = (e) => m.Union(e, O, Ze), Dt = (e, t) => t === void 0 ? e : m.Union(e, at), H = (e, t) => {
359
359
  if (t === "stream") return e.error;
360
- let n = Ct(e.error, e.guards);
361
- return t === "query" ? n : Et(Tt(t === "mutation" ? p.Union(wt(n), f, We) : n), e.requiresApproval);
362
- }, Dt = (e, t) => z(Ct(e.errorSchema, e.guards), t), Ot = (e, t) => ({
360
+ let n = V(e.error, e.guards);
361
+ return t === "query" ? n : Dt(Et(t === "mutation" ? m.Union(Tt(n), p, We) : n), e.requiresApproval);
362
+ }, Ot = (e, t) => z(V(e.errorSchema, e.guards), t), kt = (e, t) => ({
363
363
  ...e,
364
364
  name: t
365
- }), kt = (e, t) => m.make(e.name, {
366
- payload: w(e.input, e.name, B(e.guards)),
367
- success: S(e.output),
368
- error: z(V(e, "query"), t),
365
+ }), At = (e, t) => h.make(e.name, {
366
+ payload: T(e.input, e.name, B(e.guards)),
367
+ success: C(e.output),
368
+ error: z(H(e, "query"), t),
369
369
  stream: !0
370
- }), At = (e, t) => m.make(e.name, {
371
- payload: w(e.input, e.name, B(e.guards)),
370
+ }), jt = (e, t) => h.make(e.name, {
371
+ payload: T(e.input, e.name, B(e.guards)),
372
372
  success: e.output,
373
- error: z(V(e, "mutation"), t)
374
- }), jt = (e, t) => m.make(e.name, {
375
- payload: w(e.input, e.name, B(e.guards)),
373
+ error: z(H(e, "mutation"), t)
374
+ }), Mt = (e, t) => h.make(e.name, {
375
+ payload: T(e.input, e.name, B(e.guards)),
376
376
  success: e.output,
377
- error: z(V(e, "action"), t)
378
- }), Mt = (e, t) => m.make(e.name, {
379
- payload: w(e.input, e.name, B(e.guards)),
377
+ error: z(H(e, "action"), t)
378
+ }), Nt = (e, t) => h.make(e.name, {
379
+ payload: T(e.input, e.name, B(e.guards)),
380
380
  success: e.element,
381
381
  error: z(e.error, t),
382
382
  stream: !0
383
- }), Nt = (e) => {
383
+ }), Pt = (e) => {
384
384
  if (typeof e != "object" || !e) return;
385
385
  let t = e._tag;
386
386
  return typeof t == "string" ? t : void 0;
387
- }, Pt = (e) => {
387
+ }, Ft = (e) => {
388
388
  switch (e.kind) {
389
- case "query": return kt(e);
390
- case "mutation": return At(e);
391
- case "action": return jt(e);
392
- case "stream": return Mt(e);
389
+ case "query": return At(e);
390
+ case "mutation": return jt(e);
391
+ case "action": return Mt(e);
392
+ case "stream": return Nt(e);
393
393
  }
394
- }, Ft = (e) => {
394
+ }, It = (e) => {
395
395
  let t = e.input, n = t === void 0 ? {} : { input: t }, r = e.output, i = r === void 0 ? {} : { output: r };
396
396
  if (e.kind === "query") return {
397
397
  kind: "query",
@@ -433,7 +433,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
433
433
  ..."relations" in e && e.relations !== void 0 ? { relations: e.relations } : {}
434
434
  }))
435
435
  };
436
- }, It = 7500, Lt = (e) => typeof e == "object" && !!e && e.kind === "event", Rt = (e) => {
436
+ }, Lt = 7500, Rt = (e) => typeof e == "object" && !!e && e.kind === "event", zt = (e) => {
437
437
  if (e.name.length === 0) throw Error("defineEvent: `name` must not be empty");
438
438
  if (/\s/.test(e.name)) throw Error(`defineEvent("${e.name}"): \`name\` must not contain whitespace.\n The name is used as a broker subject segment. NATS refuses a subject with
439
439
  whitespace and delivers nothing — silently, and only on that broker, so an
@@ -462,66 +462,66 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
462
462
  name: e.name,
463
463
  key: e.key,
464
464
  payload: e.payload,
465
- guards: e.openAccess === void 0 ? e.guards : [d(e.openAccess.trim())],
465
+ guards: e.openAccess === void 0 ? e.guards : [f(e.openAccess.trim())],
466
466
  openAccess: e.openAccess,
467
467
  rewind: e.rewind,
468
468
  webhook: e.webhook,
469
469
  delivery: e.delivery
470
470
  };
471
- }, zt = (e) => p.Struct({
472
- _tag: p.Literal("event"),
473
- origin: p.String,
474
- n: p.Number,
475
- emittedAt: p.Number,
471
+ }, Bt = (e) => m.Struct({
472
+ _tag: m.Literal("event"),
473
+ origin: m.String,
474
+ n: m.Number,
475
+ emittedAt: m.Number,
476
476
  payload: e
477
- }), Bt = p.Struct({
478
- _tag: p.Literal("gap"),
479
- missed: p.Number,
480
- reason: p.Literal("buffer", "resume")
481
- }), Vt = p.Struct({ _tag: p.Literal("attached") }), Ht = (e) => p.Union(Vt, zt(e), Bt), Ut = p.Struct({
482
- origin: p.String,
483
- n: p.Number
484
- }), Wt = (e) => p.Struct({
477
+ }), Vt = m.Struct({
478
+ _tag: m.Literal("gap"),
479
+ missed: m.Number,
480
+ reason: m.Literal("buffer", "resume")
481
+ }), Ht = m.Struct({ _tag: m.Literal("attached") }), Ut = (e) => m.Union(Ht, Bt(e), Vt), Wt = m.Struct({
482
+ origin: m.String,
483
+ n: m.Number
484
+ }), Gt = (e) => m.Struct({
485
485
  key: e,
486
- resume: p.optional(p.Array(Ut))
487
- }), Gt = (e, t) => {
488
- let n = e.guards !== void 0 && e.guards.some((e) => !u(e)) ? p.Union(l, c) : p.Never, r = t && t.length > 0 ? p.Union(n, ...t) : n;
489
- return m.make(e.name, {
490
- payload: w(Wt(e.key), e.name, B(e.guards)),
491
- success: Ht(e.payload),
486
+ resume: m.optional(m.Array(Wt))
487
+ }), Kt = (e, t) => {
488
+ let n = e.guards !== void 0 && e.guards.some((e) => !d(e)) ? m.Union(u, l) : m.Never, r = t && t.length > 0 ? m.Union(n, ...t) : n;
489
+ return h.make(e.name, {
490
+ payload: T(Gt(e.key), e.name, B(e.guards)),
491
+ success: Ut(e.payload),
492
492
  error: r,
493
493
  stream: !0
494
494
  });
495
- }, Kt = class extends p.TaggedError()("EventPayloadInvalid", {
496
- event: p.String,
497
- message: p.String
498
- }) {}, qt = class extends p.TaggedError()("EventKeyInvalid", {
499
- event: p.String,
500
- message: p.String
501
- }) {}, Jt = class extends p.TaggedError()("EventPayloadTooLarge", {
502
- event: p.String,
503
- bytes: p.Number,
504
- limit: p.Number
505
- }) {}, Yt = (e) => {
495
+ }, qt = class extends m.TaggedError()("EventPayloadInvalid", {
496
+ event: m.String,
497
+ message: m.String
498
+ }) {}, Jt = class extends m.TaggedError()("EventKeyInvalid", {
499
+ event: m.String,
500
+ message: m.String
501
+ }) {}, Yt = class extends m.TaggedError()("EventPayloadTooLarge", {
502
+ event: m.String,
503
+ bytes: m.Number,
504
+ limit: m.Number
505
+ }) {}, Xt = (e) => {
506
506
  if (typeof e != "object" || !e) return JSON.stringify(e) ?? "null";
507
507
  let t = Object.entries(e).filter(([, e]) => e !== void 0).sort(([e], [t]) => e < t ? -1 : +(e > t));
508
508
  return JSON.stringify(t);
509
- }, Xt = "\0", Zt = (e, t, n) => [
509
+ }, Zt = "\0", Qt = (e, t, n) => [
510
510
  e ?? "~",
511
511
  t,
512
- Yt(n)
513
- ].join("\0"), Qt = (e) => {
512
+ Xt(n)
513
+ ].join("\0"), $t = (e) => {
514
514
  let [t = "~", n = "", r = ""] = e.split("\0");
515
515
  return {
516
516
  tenantId: t === "~" ? null : t,
517
517
  event: n,
518
518
  key: r
519
519
  };
520
- }, $t = (e) => e.split("\0").join(" · "), H = Symbol.for("@voltro/protocol/workflow-access"), en = {
520
+ }, en = (e) => e.split("\0").join(" · "), U = Symbol.for("@voltro/protocol/workflow-access"), tn = {
521
521
  guards: void 0,
522
522
  openAccess: void 0,
523
523
  internal: !1
524
- }, tn = (e, t) => {
524
+ }, nn = (e, t) => {
525
525
  let n = t.guards;
526
526
  if (n !== void 0 && n.length === 0) throw Error(`workflow("${e}"): \`guards: []\` is empty, so it enforces nothing —\n but it reads at the call site as if the start were protected. Omit the field
527
527
  and decide with \`openAccess\` or \`internal\`, or list the scopes that may start it.`);
@@ -537,41 +537,41 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
537
537
  \`internal: true\` if the workflow really is meant to be startable by clients.`);
538
538
  }
539
539
  return {
540
- guards: t.openAccess === void 0 ? t.guards : [d(t.openAccess.trim())],
540
+ guards: t.openAccess === void 0 ? t.guards : [f(t.openAccess.trim())],
541
541
  openAccess: t.openAccess?.trim(),
542
542
  internal: t.internal === !0
543
543
  };
544
- }, nn = (e, t) => {
545
- Object.defineProperty(e, H, {
544
+ }, rn = (e, t) => {
545
+ Object.defineProperty(e, U, {
546
546
  value: t,
547
547
  enumerable: !1
548
548
  });
549
- }, U = (e) => {
550
- if (typeof e != "object" || !e) return en;
551
- let t = e[H];
552
- return t === void 0 ? en : t;
553
- }, rn = (e) => {
554
- let t = U(e);
549
+ }, W = (e) => {
550
+ if (typeof e != "object" || !e) return tn;
551
+ let t = e[U];
552
+ return t === void 0 ? tn : t;
553
+ }, an = (e) => {
554
+ let t = W(e);
555
555
  return {
556
556
  name: e.name,
557
557
  internal: t.internal,
558
558
  guards: t.guards,
559
559
  openAccess: t.openAccess
560
560
  };
561
- }, an = (e) => e, on = (e) => e, sn = (e) => {
561
+ }, on = (e) => e, sn = (e) => e, cn = (e) => {
562
562
  let t = e.alias?.trim(), n = e.instance?.trim(), r = t !== void 0 && t !== "" ? t : e.base;
563
563
  return n !== void 0 && n !== "" ? `${r}#${n}` : r;
564
- }, cn = (e) => {
564
+ }, ln = (e) => {
565
565
  if (e.length !== 0) return (t, n) => e.reduceRight((e, t) => t(e, n), t);
566
- }, ln = (e, t) => {
566
+ }, un = (e, t) => {
567
567
  let n = He.GenericTag(e);
568
568
  return {
569
569
  Tag: n,
570
570
  Live: Ue.succeed(n, t)
571
571
  };
572
- }, un = (e, t, n) => {
572
+ }, dn = (e, t, n) => {
573
573
  if (!t) return { ok: !0 };
574
- let r = n === void 0 ? null : W(n);
574
+ let r = n === void 0 ? null : G(n);
575
575
  if (!r) return {
576
576
  ok: !0,
577
577
  unverified: `plugin "${e}" requires framework ${t}, but the running framework version is ${n === void 0 ? "unknown" : `unreadable ("${n}")`} — not checked.`
@@ -579,12 +579,12 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
579
579
  let i = t.trim();
580
580
  if (i === "*" || i === "") return { ok: !0 };
581
581
  let a = i.split(/\s+/).filter((e) => e.length > 0);
582
- for (let i of a) if (!dn(i, r)) return {
582
+ for (let i of a) if (!fn(i, r)) return {
583
583
  ok: !1,
584
584
  reason: `plugin "${e}" requires framework ${t}, running ${n}`
585
585
  };
586
586
  return { ok: !0 };
587
- }, W = (e) => {
587
+ }, G = (e) => {
588
588
  let t = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9a-zA-Z.-]+))?$/.exec(e.trim());
589
589
  return t ? {
590
590
  major: Number(t[1]),
@@ -592,266 +592,273 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
592
592
  patch: Number(t[3]),
593
593
  pre: t[4] ?? ""
594
594
  } : null;
595
- }, G = (e, t) => e.major === t.major ? e.minor === t.minor ? e.patch === t.patch ? e.pre && !t.pre ? -1 : !e.pre && t.pre ? 1 : e.pre && t.pre ? e.pre < t.pre ? -1 : +(e.pre > t.pre) : 0 : e.patch - t.patch : e.minor - t.minor : e.major - t.major, dn = (e, t) => {
595
+ }, K = (e, t) => e.major === t.major ? e.minor === t.minor ? e.patch === t.patch ? e.pre && !t.pre ? -1 : !e.pre && t.pre ? 1 : e.pre && t.pre ? e.pre < t.pre ? -1 : +(e.pre > t.pre) : 0 : e.patch - t.patch : e.minor - t.minor : e.major - t.major, fn = (e, t) => {
596
596
  if (e === "*") return !0;
597
597
  if (e.startsWith("^")) {
598
- let n = W(e.slice(1));
599
- return !n || t.major !== n.major ? !1 : G(t, n) >= 0;
598
+ let n = G(e.slice(1));
599
+ return !n || t.major !== n.major ? !1 : K(t, n) >= 0;
600
600
  }
601
601
  if (e.startsWith("~")) {
602
- let n = W(e.slice(1));
603
- return !n || t.major !== n.major || t.minor !== n.minor ? !1 : G(t, n) >= 0;
602
+ let n = G(e.slice(1));
603
+ return !n || t.major !== n.major || t.minor !== n.minor ? !1 : K(t, n) >= 0;
604
604
  }
605
605
  let n = /^(>=|<=|>|<)(.+)$/.exec(e);
606
606
  if (n) {
607
- let e = n[1], r = W(n[2]);
607
+ let e = n[1], r = G(n[2]);
608
608
  if (!r) return !1;
609
- let i = G(t, r);
609
+ let i = K(t, r);
610
610
  if (e === ">=") return i >= 0;
611
611
  if (e === "<=") return i <= 0;
612
612
  if (e === ">") return i > 0;
613
613
  if (e === "<") return i < 0;
614
614
  }
615
- let r = W(e);
616
- return r ? G(t, r) === 0 : !1;
617
- }, fn = (e) => {
615
+ let r = G(e);
616
+ return r ? K(t, r) === 0 : !1;
617
+ }, pn = (e) => {
618
618
  let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
619
619
  return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/-([a-zA-Z0-9])/g, (e, t) => t.toUpperCase());
620
- }, pn = (e) => {
620
+ }, mn = (e) => {
621
621
  let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
622
622
  return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/#/g, "--").replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
623
- }, mn = Symbol.for("@voltro/protocol/pluginAliases"), K = () => {
624
- let e = globalThis, t = e[mn];
623
+ }, hn = Symbol.for("@voltro/protocol/pluginAliases"), q = () => {
624
+ let e = globalThis, t = e[hn];
625
625
  if (t instanceof Map) return t;
626
626
  let n = /* @__PURE__ */ new Map();
627
- return e[mn] = n, n;
628
- }, hn = (e) => {
629
- let t = K();
627
+ return e[hn] = n, n;
628
+ }, gn = (e) => {
629
+ let t = q();
630
630
  for (let [n, r] of Object.entries(e)) {
631
631
  if (r === "") continue;
632
632
  let e = t.get(n);
633
633
  e === void 0 ? t.set(n, /* @__PURE__ */ new Set([r])) : e.add(r);
634
634
  }
635
- }, gn = () => {
636
- K().clear();
637
- }, _n = (e, t) => {
638
- let n = K().get(e);
639
- if (n === void 0 || n.size === 0) return `${fn(e)}.${t}`;
635
+ }, _n = () => {
636
+ q().clear();
637
+ }, vn = (e, t) => {
638
+ let n = q().get(e);
639
+ if (n === void 0 || n.size === 0) return `${pn(e)}.${t}`;
640
640
  if (n.size === 1) return `${[...n][0]}.${t}`;
641
641
  let r = [...n].filter((e) => !e.includes("#"));
642
642
  if (r.length === 1) return `${r[0]}.${t}`;
643
643
  throw Error(`[voltro] ${e} is installed more than once (${[...n].sort().join(", ")}) and no single install is the primary one, so a plugin hook cannot tell which of them it addresses. Call the route by its full tag instead — e.g. useSubscription(api, '${[...n].sort()[0]}.${t}').`);
644
- }, q = p.Literal("running", "succeeded", "failed", "cancelled", "suspended"), vn = p.Literal("cancel", "terminate", "abandon"), yn = p.Struct({
645
- mode: p.String,
646
- dueAt: p.NullOr(p.Number),
647
- retryAfterMs: p.NullOr(p.Number),
648
- intentId: p.NullOr(p.String)
649
- }), bn = p.Struct({
650
- id: p.String,
651
- workflowName: p.String,
652
- executionId: p.NullOr(p.String),
653
- status: p.Literal("running", "queued", "dropped", "skipped", "replayed"),
654
- deferral: p.optional(yn)
655
- }), xn = (e, t) => {
656
- let n = U(e);
657
- return m.make(e.name, {
658
- payload: w(e.payloadSchema, e.name, B(n.guards)),
659
- success: bn,
660
- error: Dt({
644
+ }, J = m.Literal("running", "succeeded", "failed", "cancelled", "suspended"), yn = m.Literal("cancel", "terminate", "abandon"), bn = m.Struct({
645
+ mode: m.String,
646
+ dueAt: m.NullOr(m.Number),
647
+ retryAfterMs: m.NullOr(m.Number),
648
+ intentId: m.NullOr(m.String)
649
+ }), xn = m.Struct({
650
+ id: m.String,
651
+ workflowName: m.String,
652
+ executionId: m.NullOr(m.String),
653
+ status: m.Literal("running", "queued", "dropped", "skipped", "replayed"),
654
+ deferral: m.optional(bn)
655
+ }), Sn = (e, t) => {
656
+ let n = W(e);
657
+ return h.make(e.name, {
658
+ payload: T(e.payloadSchema, e.name, B(n.guards)),
659
+ success: xn,
660
+ error: Ot({
661
661
  errorSchema: e.errorSchema,
662
662
  guards: n.guards
663
663
  }, t)
664
664
  });
665
- }, J = p.Struct({
666
- id: p.String,
667
- tag: p.String,
668
- executionId: p.String,
669
- status: q,
670
- payload: p.Unknown,
671
- workflowVersion: p.NullOr(p.String),
672
- workflowPatches: p.NullOr(p.Unknown),
673
- output: p.NullOr(p.Unknown),
674
- subject: p.NullOr(p.Unknown),
675
- source: p.NullOr(p.String),
676
- errorTag: p.NullOr(p.String),
677
- errorMessage: p.NullOr(p.String),
678
- cancelled: p.Boolean,
679
- startedAt: p.Date,
680
- completedAt: p.NullOr(p.Date),
681
- durationMs: p.NullOr(p.Number),
682
- traceId: p.NullOr(p.String),
683
- parentExecutionId: p.NullOr(p.String),
684
- parentClosePolicy: p.NullOr(vn)
685
- }), Sn = p.Struct({
686
- tag: p.optional(p.String),
687
- status: p.optional(q),
688
- limit: p.optional(p.Number)
689
- }), Cn = p.Struct({
690
- id: p.String,
691
- runId: p.String,
692
- stepName: p.String,
693
- attempt: p.Number,
694
- status: p.Literal("running", "succeeded", "failed"),
695
- input: p.NullOr(p.Unknown),
696
- retryPolicy: p.NullOr(p.Unknown),
697
- output: p.NullOr(p.Unknown),
698
- errorTag: p.NullOr(p.String),
699
- errorMessage: p.NullOr(p.String),
700
- errorCause: p.NullOr(p.Unknown),
701
- startedAt: p.Date,
702
- completedAt: p.NullOr(p.Date),
703
- durationMs: p.NullOr(p.Number)
704
- }), wn = p.Struct({
705
- id: p.String,
706
- runId: p.String,
707
- eventType: p.String,
708
- payload: p.NullOr(p.Unknown),
709
- occurredAt: p.Date,
710
- stepName: p.NullOr(p.String),
711
- attempt: p.NullOr(p.Number)
712
- }), Tn = p.Struct({
713
- id: p.String,
714
- name: p.String,
715
- payload: p.Unknown,
716
- source: p.String,
717
- subject: p.NullOr(p.Unknown),
718
- traceId: p.NullOr(p.String),
719
- occurredAt: p.Date
720
- }), En = p.Struct({
721
- id: p.String,
722
- eventId: p.String,
723
- eventName: p.String,
724
- triggerId: p.String,
725
- workflowName: p.String,
726
- executionId: p.NullOr(p.String),
727
- status: p.Literal("starting", "started", "skipped", "failed"),
728
- idempotencyKey: p.String,
729
- skipped: p.Boolean,
730
- errorMessage: p.NullOr(p.String),
731
- createdAt: p.Date,
732
- completedAt: p.NullOr(p.Date)
733
- }), Dn = p.Struct({ id: p.String }), Y = p.Struct({ runId: p.String }), On = p.Struct({
734
- name: p.optional(p.String),
735
- limit: p.optional(p.Number)
736
- }), kn = p.Struct({ eventId: p.String }), X = p.Struct({
737
- workflowName: p.String,
738
- executionId: p.String
739
- }), An = p.Struct({
740
- id: p.String,
741
- signalName: p.String,
742
- payload: p.optional(p.Unknown)
743
- }), jn = p.Struct({
744
- id: p.String,
745
- updateName: p.String,
746
- payload: p.optional(p.Unknown),
747
- timeoutMs: p.optional(p.Number)
748
- }), Mn = p.Struct({
749
- eventId: p.String,
750
- updateId: p.String,
751
- completedEventId: p.String,
752
- result: p.Unknown
753
- }), Nn = I({
665
+ }, Y = m.Struct({
666
+ id: m.String,
667
+ tag: m.String,
668
+ executionId: m.String,
669
+ status: J,
670
+ payload: m.Unknown,
671
+ workflowVersion: m.NullOr(m.String),
672
+ workflowPatches: m.NullOr(m.Unknown),
673
+ output: m.NullOr(m.Unknown),
674
+ subject: m.NullOr(m.Unknown),
675
+ source: m.NullOr(m.String),
676
+ errorTag: m.NullOr(m.String),
677
+ errorMessage: m.NullOr(m.String),
678
+ cancelled: m.Boolean,
679
+ startedAt: m.Date,
680
+ completedAt: m.NullOr(m.Date),
681
+ durationMs: m.NullOr(m.Number),
682
+ traceId: m.NullOr(m.String),
683
+ parentExecutionId: m.NullOr(m.String),
684
+ parentClosePolicy: m.NullOr(yn)
685
+ }), Cn = m.Struct({
686
+ tag: m.optional(m.String),
687
+ status: m.optional(J),
688
+ limit: m.optional(m.Number)
689
+ }), wn = m.Struct({
690
+ id: m.String,
691
+ runId: m.String,
692
+ stepName: m.String,
693
+ attempt: m.Number,
694
+ status: m.Literal("running", "succeeded", "failed"),
695
+ input: m.NullOr(m.Unknown),
696
+ retryPolicy: m.NullOr(m.Unknown),
697
+ output: m.NullOr(m.Unknown),
698
+ errorTag: m.NullOr(m.String),
699
+ errorMessage: m.NullOr(m.String),
700
+ errorCause: m.NullOr(m.Unknown),
701
+ startedAt: m.Date,
702
+ completedAt: m.NullOr(m.Date),
703
+ durationMs: m.NullOr(m.Number)
704
+ }), Tn = m.Struct({
705
+ id: m.String,
706
+ runId: m.String,
707
+ eventType: m.String,
708
+ payload: m.NullOr(m.Unknown),
709
+ occurredAt: m.Date,
710
+ stepName: m.NullOr(m.String),
711
+ attempt: m.NullOr(m.Number)
712
+ }), En = m.Struct({
713
+ id: m.String,
714
+ name: m.String,
715
+ payload: m.Unknown,
716
+ source: m.String,
717
+ subject: m.NullOr(m.Unknown),
718
+ traceId: m.NullOr(m.String),
719
+ occurredAt: m.Date
720
+ }), Dn = m.Struct({
721
+ id: m.String,
722
+ eventId: m.String,
723
+ eventName: m.String,
724
+ triggerId: m.String,
725
+ workflowName: m.String,
726
+ executionId: m.NullOr(m.String),
727
+ status: m.Literal("starting", "started", "skipped", "failed"),
728
+ idempotencyKey: m.String,
729
+ skipped: m.Boolean,
730
+ errorMessage: m.NullOr(m.String),
731
+ createdAt: m.Date,
732
+ completedAt: m.NullOr(m.Date)
733
+ }), On = m.Struct({ id: m.String }), X = m.Struct({ runId: m.String }), kn = m.Struct({
734
+ name: m.optional(m.String),
735
+ limit: m.optional(m.Number)
736
+ }), An = m.Struct({ eventId: m.String }), Z = m.Struct({
737
+ workflowName: m.String,
738
+ executionId: m.String
739
+ }), jn = m.Struct({
740
+ id: m.String,
741
+ signalName: m.String,
742
+ payload: m.optional(m.Unknown)
743
+ }), Mn = m.Struct({
744
+ id: m.String,
745
+ updateName: m.String,
746
+ payload: m.optional(m.Unknown),
747
+ timeoutMs: m.optional(m.Number)
748
+ }), Nn = m.Struct({
749
+ eventId: m.String,
750
+ updateId: m.String,
751
+ completedEventId: m.String,
752
+ result: m.Unknown
753
+ }), Pn = I({
754
754
  name: "__voltro.workflow.run",
755
755
  source: "_voltro_workflow_runs",
756
- input: Dn,
757
- output: p.Array(J)
758
- }), Pn = I({
756
+ input: On,
757
+ output: m.Array(Y)
758
+ }), Fn = I({
759
759
  name: "__voltro.workflow.runs",
760
760
  source: "_voltro_workflow_runs",
761
- input: Sn,
762
- output: p.Array(J)
763
- }), Fn = I({
761
+ input: Cn,
762
+ output: m.Array(Y)
763
+ }), In = I({
764
764
  name: "__voltro.workflow.run.steps",
765
765
  source: "_voltro_workflow_run_steps",
766
- input: Y,
767
- output: p.Array(Cn)
768
- }), In = I({
766
+ input: X,
767
+ output: m.Array(wn)
768
+ }), Ln = I({
769
769
  name: "__voltro.workflow.run.events",
770
770
  source: "_voltro_workflow_run_events",
771
- input: Y,
772
- output: p.Array(wn)
773
- }), Ln = I({
771
+ input: X,
772
+ output: m.Array(Tn)
773
+ }), Rn = I({
774
774
  name: "__voltro.workflow.domainEvents",
775
775
  source: "_voltro_workflow_events",
776
- input: On,
777
- output: p.Array(Tn)
778
- }), Rn = I({
776
+ input: kn,
777
+ output: m.Array(En)
778
+ }), zn = I({
779
779
  name: "__voltro.workflow.event.deliveries",
780
780
  source: "_voltro_workflow_event_deliveries",
781
- input: kn,
782
- output: p.Array(En)
783
- }), zn = R({
784
- name: "__voltro.workflow.cancel",
785
- input: X,
786
- output: p.Struct({ ok: p.Boolean })
781
+ input: An,
782
+ output: m.Array(Dn)
787
783
  }), Bn = R({
788
- name: "__voltro.workflow.resume",
789
- input: X,
790
- output: p.Struct({ ok: p.Boolean })
784
+ name: "__voltro.workflow.cancel",
785
+ input: Z,
786
+ output: m.Struct({ ok: m.Boolean })
791
787
  }), Vn = R({
792
- name: "__voltro.workflow.signal",
793
- input: An,
794
- output: p.Struct({ eventId: p.String })
788
+ name: "__voltro.workflow.resume",
789
+ input: Z,
790
+ output: m.Struct({ ok: m.Boolean })
795
791
  }), Hn = R({
796
- name: "__voltro.workflow.update",
792
+ name: "__voltro.workflow.signal",
797
793
  input: jn,
798
- output: Mn
799
- }), Un = "__voltro.undo.log", Wn = "__voltro.undo.apply", Gn = "__voltro.undo.redo", Kn = p.Struct({
800
- id: p.String,
801
- tag: p.String,
802
- label: p.NullOr(p.String),
803
- undone: p.Boolean,
804
- crossesAction: p.Boolean,
805
- createdAt: p.String
806
- }), qn = class extends p.TaggedError()("UndoNotFound", { invocationId: p.String }) {}, Jn = class extends p.TaggedError()("UndoForbidden", { invocationId: p.String }) {}, Yn = class extends p.TaggedError()("UndoConflict", {
807
- invocationId: p.String,
808
- reason: p.Literal("conflict", "action")
809
- }) {}, Xn = p.Union(qn, Jn, Yn), Zn = I({
810
- name: Un,
794
+ output: m.Struct({ eventId: m.String })
795
+ }), Un = R({
796
+ name: "__voltro.workflow.update",
797
+ input: Mn,
798
+ output: Nn
799
+ }), Wn = "__voltro.undo.log", Gn = "__voltro.undo.apply", Kn = "__voltro.undo.redo", qn = m.Struct({
800
+ id: m.String,
801
+ tag: m.String,
802
+ label: m.NullOr(m.String),
803
+ undone: m.Boolean,
804
+ crossesAction: m.Boolean,
805
+ createdAt: m.String
806
+ }), Jn = class extends m.TaggedError()("UndoNotFound", { invocationId: m.String }) {}, Yn = class extends m.TaggedError()("UndoForbidden", { invocationId: m.String }) {}, Xn = class extends m.TaggedError()("UndoConflict", {
807
+ invocationId: m.String,
808
+ reason: m.Literal("conflict", "action")
809
+ }) {}, Zn = m.Union(Jn, Yn, Xn), Qn = I({
810
+ name: Wn,
811
811
  source: "_voltro_undo_log",
812
- input: p.Struct({ limit: p.optional(p.Number) }),
813
- output: p.Array(Kn),
812
+ input: m.Struct({ limit: m.optional(m.Number) }),
813
+ output: m.Array(qn),
814
814
  openAccess: "subject-scoped by construction: lists only the calling subject's own undoable actions"
815
- }), Qn = L({
816
- name: Wn,
817
- input: p.Struct({ invocationId: p.String }),
818
- output: p.Struct({ ok: p.Boolean }),
819
- error: Xn,
820
- openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
821
815
  }), $n = L({
822
816
  name: Gn,
823
- input: p.Struct({ invocationId: p.String }),
824
- output: p.Struct({ ok: p.Boolean }),
825
- error: Xn,
817
+ input: m.Struct({ invocationId: m.String }),
818
+ output: m.Struct({ ok: m.Boolean }),
819
+ error: Zn,
820
+ openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
821
+ }), er = L({
822
+ name: Kn,
823
+ input: m.Struct({ invocationId: m.String }),
824
+ output: m.Struct({ ok: m.Boolean }),
825
+ error: Zn,
826
826
  openAccess: "subject-scoped by construction: redo is per-actor — another subject's invocation fails typed with UndoForbidden"
827
- }), er = class extends p.TaggedError()("TenantScopeViolation", {
828
- table: p.String,
829
- reason: p.String
830
- }) {}, tr = class extends p.TaggedError()("StoreOperationFailed", {
831
- operation: p.String,
832
- table: p.String,
833
- cause: p.String
834
- }) {}, nr = class extends p.TaggedError()("TableValidationFailed", {
835
- table: p.String,
836
- summary: p.String,
837
- issues: p.Array(p.Struct({
838
- path: p.String,
839
- message: p.String
827
+ }), tr = class extends m.TaggedError()("TenantScopeViolation", {
828
+ table: m.String,
829
+ reason: m.String
830
+ }) {}, nr = class extends m.TaggedError()("StoreOperationFailed", {
831
+ operation: m.String,
832
+ table: m.String,
833
+ cause: m.String
834
+ }) {}, rr = class extends m.TaggedError()("NoRowFound", {
835
+ table: m.String,
836
+ found: m.Number
837
+ }) {
838
+ get message() {
839
+ return this.found === 0 ? `expected exactly one row in '${this.table}', found none` : `expected exactly one row in '${this.table}', found more than one`;
840
+ }
841
+ }, ir = class extends m.TaggedError()("TableValidationFailed", {
842
+ table: m.String,
843
+ summary: m.String,
844
+ issues: m.Array(m.Struct({
845
+ path: m.String,
846
+ message: m.String
840
847
  }))
841
- }) {}, rr = class extends p.TaggedError()("TenantRowNotFound", {
842
- table: p.String,
843
- id: p.String,
844
- reason: p.String
845
- }) {}, ir = class extends p.TaggedError()("ServerOnlyColumnWrite", {
846
- table: p.String,
847
- columns: p.Array(p.String)
848
- }) {}, ar = class extends p.TaggedError()("ConstraintViolation", {
849
- kind: p.Literal("foreignKey", "foreignKeyInUse", "unique", "notNull", "check"),
850
- table: p.String,
851
- operation: p.String,
852
- constraint: p.optional(p.String),
853
- column: p.optional(p.String),
854
- detail: p.optional(p.String)
848
+ }) {}, ar = class extends m.TaggedError()("TenantRowNotFound", {
849
+ table: m.String,
850
+ id: m.String,
851
+ reason: m.String
852
+ }) {}, or = class extends m.TaggedError()("ServerOnlyColumnWrite", {
853
+ table: m.String,
854
+ columns: m.Array(m.String)
855
+ }) {}, sr = class extends m.TaggedError()("ConstraintViolation", {
856
+ kind: m.Literal("foreignKey", "foreignKeyInUse", "unique", "notNull", "check"),
857
+ table: m.String,
858
+ operation: m.String,
859
+ constraint: m.optional(m.String),
860
+ column: m.optional(m.String),
861
+ detail: m.optional(m.String)
855
862
  }) {
856
863
  get message() {
857
864
  if (this.detail !== void 0) return this.detail;
@@ -864,85 +871,85 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
864
871
  case "check": return `check constraint ${t}: the row does not satisfy it`;
865
872
  }
866
873
  }
867
- }, or = "__voltro.approvals.pending", sr = "__voltro.approvals.decide", cr = I({
868
- name: or,
874
+ }, cr = "__voltro.approvals.pending", lr = "__voltro.approvals.decide", ur = I({
875
+ name: cr,
869
876
  source: "_voltro_approvals",
870
- input: p.Struct({ limit: p.optional(p.Number) }),
871
- output: p.Array(ot),
877
+ input: m.Struct({ limit: m.optional(m.Number) }),
878
+ output: m.Array(st),
872
879
  openAccess: "the answer is scoped to the caller — a row appears only if they requested it or hold its recorded approver scopes, so an anonymous caller sees nothing"
873
- }), lr = L({
874
- name: sr,
875
- input: p.Struct({
876
- approvalId: p.String,
877
- decision: p.Literal("approve", "reject"),
878
- note: p.optional(p.String)
880
+ }), dr = L({
881
+ name: lr,
882
+ input: m.Struct({
883
+ approvalId: m.String,
884
+ decision: m.Literal("approve", "reject"),
885
+ note: m.optional(m.String)
879
886
  }),
880
- output: p.Struct({
881
- approvalId: p.String,
882
- status: p.Literal("approved", "rejected")
887
+ output: m.Struct({
888
+ approvalId: m.String,
889
+ status: m.Literal("approved", "rejected")
883
890
  }),
884
- error: at,
891
+ error: ot,
885
892
  openAccess: "the approver authority is the PENDING ROW's own recorded scopes (plus an unconditional self-approval refusal), checked in-handler — a descriptor-level scope would have to be the union of every approval-requiring procedure in the app"
886
- }), Z = "__voltro.connections.list", ur = "__voltro.connections.start", dr = "__voltro.connections.submitToken", fr = "__voltro.connections.disconnect", Q = p.Literal("oauth2", "pat"), pr = p.Literal("disconnected", "connected", "expired", "revoked", "error"), mr = p.Struct({
887
- connectionId: p.String,
893
+ }), fr = "__voltro.connections.list", pr = "__voltro.connections.start", mr = "__voltro.connections.submitToken", hr = "__voltro.connections.disconnect", Q = m.Literal("oauth2", "pat"), gr = m.Literal("disconnected", "connected", "expired", "revoked", "error"), _r = m.Struct({
894
+ connectionId: m.String,
888
895
  kind: Q,
889
- label: p.String,
890
- status: pr,
891
- accountId: p.NullOr(p.String),
892
- accountLabel: p.NullOr(p.String),
893
- scopes: p.Array(p.String),
894
- expiresAt: p.NullOr(p.String),
895
- lastError: p.NullOr(p.String),
896
- connectedAt: p.NullOr(p.String)
897
- }), hr = class extends p.TaggedError()("ConnectionNotDeclared", { connectionId: p.String }) {}, gr = class extends p.TaggedError()("ConnectionSubjectRequired", { connectionId: p.String }) {}, _r = class extends p.TaggedError()("ConnectionKindMismatch", {
898
- connectionId: p.String,
896
+ label: m.String,
897
+ status: gr,
898
+ accountId: m.NullOr(m.String),
899
+ accountLabel: m.NullOr(m.String),
900
+ scopes: m.Array(m.String),
901
+ expiresAt: m.NullOr(m.String),
902
+ lastError: m.NullOr(m.String),
903
+ connectedAt: m.NullOr(m.String)
904
+ }), vr = class extends m.TaggedError()("ConnectionNotDeclared", { connectionId: m.String }) {}, yr = class extends m.TaggedError()("ConnectionSubjectRequired", { connectionId: m.String }) {}, br = class extends m.TaggedError()("ConnectionKindMismatch", {
905
+ connectionId: m.String,
899
906
  expected: Q,
900
907
  actual: Q
901
- }) {}, vr = class extends p.TaggedError()("ConnectionHandshakeFailed", {
902
- connectionId: p.String,
903
- reason: p.String,
904
- transient: p.Boolean
905
- }) {}, $ = p.Union(hr, gr, _r, vr), yr = I({
906
- name: Z,
908
+ }) {}, xr = class extends m.TaggedError()("ConnectionHandshakeFailed", {
909
+ connectionId: m.String,
910
+ reason: m.String,
911
+ transient: m.Boolean
912
+ }) {}, $ = m.Union(vr, yr, br, xr), Sr = I({
913
+ name: fr,
907
914
  source: "_voltro_connections",
908
- input: p.Struct({}),
909
- output: p.Array(mr),
915
+ input: m.Struct({}),
916
+ output: m.Array(_r),
910
917
  openAccess: "self-scoped read: projects the declared connections for the calling subject only (its own connect/disconnect state)"
911
- }), br = R({
912
- name: ur,
913
- input: p.Struct({
914
- connectionId: p.String,
915
- redirectTo: p.optional(p.String)
918
+ }), Cr = R({
919
+ name: pr,
920
+ input: m.Struct({
921
+ connectionId: m.String,
922
+ redirectTo: m.optional(m.String)
916
923
  }),
917
- output: p.Struct({
918
- authorizeUrl: p.String,
919
- state: p.String
924
+ output: m.Struct({
925
+ authorizeUrl: m.String,
926
+ state: m.String
920
927
  }),
921
928
  error: $,
922
929
  openAccess: "self-service: begins an oauth handshake that stores a credential for the calling subject only; anonymous callers fail typed with ConnectionSubjectRequired"
923
- }), xr = L({
924
- name: dr,
925
- input: p.Struct({
926
- connectionId: p.String,
927
- token: p.String
930
+ }), wr = L({
931
+ name: mr,
932
+ input: m.Struct({
933
+ connectionId: m.String,
934
+ token: m.String
928
935
  }),
929
- output: p.Struct({ ok: p.Boolean }),
936
+ output: m.Struct({ ok: m.Boolean }),
930
937
  error: $,
931
938
  openAccess: "self-service: stores a pasted token as the calling subject's own credential; anonymous callers fail typed with ConnectionSubjectRequired"
932
- }), Sr = L({
933
- name: fr,
934
- input: p.Struct({ connectionId: p.String }),
935
- output: p.Struct({ ok: p.Boolean }),
939
+ }), Tr = L({
940
+ name: hr,
941
+ input: m.Struct({ connectionId: m.String }),
942
+ output: m.Struct({ ok: m.Boolean }),
936
943
  error: $,
937
944
  openAccess: "self-service: deletes only the calling subject's own credential row for this connection"
938
- }), Cr = (e) => {
945
+ }), Er = (e) => {
939
946
  let t = e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : 0;
940
947
  return Number.isNaN(t) ? 0 : t;
941
- }, wr = 4001, Tr = /* @__PURE__ */ new Set(["/rpc", "/ws"]), Er = (e) => {
948
+ }, Dr = 4001, Or = /* @__PURE__ */ new Set(["/rpc", "/ws"]), kr = (e) => {
942
949
  if (!e.path.startsWith("/")) throw Error(`defineWebSocket: path must be absolute, got '${e.path}'`);
943
- if (Tr.has(e.path)) throw Error(`defineWebSocket: '${e.path}' is the framework's own socket surface — mount the gateway elsewhere`);
950
+ if (Or.has(e.path)) throw Error(`defineWebSocket: '${e.path}' is the framework's own socket surface — mount the gateway elsewhere`);
944
951
  if (e.auth !== "subject" && e.auth !== "public") throw Error(`defineWebSocket: auth must be 'subject' or 'public' (explicitly — an unauthenticated socket has to be a decision somebody wrote down), got '${String(e.auth)}'`);
945
952
  return e;
946
- }, Dr = 1;
953
+ }, Ar = 1;
947
954
  //#endregion
948
- export { De as ADMIN_SCOPE, Se as APIKEY_ISSUE_ORG_SCOPE, Te as APIKEY_ISSUE_OTHER_SCOPE, _e as APIKEY_ISSUE_SELF_SCOPE, sr as APPROVALS_DECIDE_TAG, or as APPROVALS_PENDING_TAG, at as ApprovalDecisionErrors, it as ApprovalErrors, k as ApprovalExpired, rt as ApprovalForbidden, $e as ApprovalNotFound, nt as ApprovalNotPending, tt as ApprovalRejected, Qe as ApprovalRequired, et as ApprovalSelfApproval, A as ApprovalUnavailable, ke as AuthMiddleware, T as BusinessRuleViolation, Z as CONNECTIONS_LIST_TAG, fr as CONNECTION_DISCONNECT_TAG, ur as CONNECTION_START_TAG, dr as CONNECTION_SUBMIT_TOKEN_TAG, vr as ConnectionHandshakeFailed, se as ConnectionInfo, i as ConnectionInfoMiddleware, Q as ConnectionKind, _r as ConnectionKindMismatch, hr as ConnectionNotDeclared, mr as ConnectionState, pr as ConnectionStatus, gr as ConnectionSubjectRequired, ar as ConstraintViolation, r as DEFAULT_SCOPE_CACHE_MAX_ENTRIES, re as DEFAULT_SCOPE_CACHE_TTL_MS, Xt as EVENT_ROUTE_SEP, qt as EventKeyInvalid, Kt as EventPayloadInvalid, Jt as EventPayloadTooLarge, wr as GATEWAY_CREDENTIAL_EXPIRED_CLOSE_CODE, ye as IMPERSONATION_METADATA_KEY, It as MAX_EVENT_ENVELOPE_BYTES, Re as MUTATION_IN_FLIGHT_RETRY_AFTER_MS, f as MutationInFlight, Dr as PROTOCOL_VERSION, ot as PendingApproval, j as REACTIVITY_CHANNEL_PREFIX, l as ScopeError, ir as ServerOnlyColumnWrite, tr as StoreOperationFailed, e as Subject, ve as SubjectIdentity, ne as SubjectService, nr as TableValidationFailed, rr as TenantRowNotFound, er as TenantScopeViolation, Wn as UNDO_APPLY_TAG, Un as UNDO_LOG_TAG, Gn as UNDO_REDO_TAG, c as Unauthenticated, Yn as UndoConflict, Jn as UndoForbidden, Kn as UndoLogEntry, qn as UndoNotFound, D as ValidationError, O as ValidationErrors, E as ValidationIssue, H as WorkflowAccessProperty, X as WorkflowControlInputSchema, Tn as WorkflowDomainEventRowSchema, On as WorkflowDomainEventsInputSchema, kn as WorkflowEventDeliveriesInputSchema, En as WorkflowEventDeliveryRowSchema, vn as WorkflowParentClosePolicySchema, wn as WorkflowRunEventRowSchema, bn as WorkflowRunHandleSchema, Dn as WorkflowRunRefSchema, J as WorkflowRunRowSchema, q as WorkflowRunStatusSchema, Cn as WorkflowRunStepRowSchema, Y as WorkflowRunTableRefSchema, Sn as WorkflowRunsInputSchema, An as WorkflowSignalInputSchema, yn as WorkflowStartDeferralSchema, jn as WorkflowUpdateInputSchema, Mn as WorkflowUpdateResultSchema, jt as actionToRpc, Ce as advisoryResourceGuardWarning, ie as anonymousSubject, Ye as applyRowPatch, a as applyScopeDecision, lr as approvalsDecideDescriptor, cr as approvalsPendingQueryDescriptor, ee as assertAuthenticated, nn as attachWorkflowAccess, Ne as beginIdempotent, un as checkFrameworkCompat, Ee as checkGuards, pe as checkGuardsEffect, te as composeAuthStrategies, cn as composeRpcInterceptors, Sr as connectionDisconnectDescriptor, br as connectionStartDescriptor, xr as connectionSubmitTokenDescriptor, yr as connectionsListQueryDescriptor, pt as declaredReactivityChannelKeys, R as defineAction, Rt as defineEvent, L as defineMutation, an as definePlugin, on as definePluginRoute, ln as definePluginService, I as defineQuery, St as defineStream, Er as defineWebSocket, qe as diffRows, be as effectiveScopes, Yt as encodeEventKey, Nt as errorTag, Vt as eventAttached, zt as eventEnvelope, Bt as eventGap, Ut as eventResumePoint, Zt as eventRoute, Ht as eventStreamEvent, Wt as eventSubscribeInput, Gt as eventToRpc, Le as failIdempotent, Ze as fieldIssuesOf, Oe as findAdvisoryResourceGuards, ze as finishIdempotent, $t as formatEventRoute, me as getPolicyGuardResolver, he as getResourceScopeResolver, U as getWorkflowAccess, xt as hasAccessDecision, ae as hasCallbackRoutes, we as hasEffectiveScope, B as hasEnforcedGuard, xe as hasScope, v as idToPath, Pe as idempotencyScope, C as inputLabel, Lt as isEventDescriptor, Je as isIdKeyed, u as isOpenAccess, ge as isPolicyCheck, bt as isPolicyGuard, dt as isReactivityChannel, ft as isReactivityChannelKey, Me as isSystemSubject, vt as isWireReachable, t as makeScopeCache, Fe as memoryIdempotencyStore, de as missingAccessDecision, At as mutationToRpc, Ft as normalizeDescriptor, ht as normalizeSource, d as openAccessSpec, Qt as parseEventRoute, y as pathToId, fn as pluginAlias, sn as pluginInstanceName, pn as pluginSlug, _n as pluginTag, _t as publishReactivity, Be as publishServerError, kt as queryToRpc, le as rawImpersonationMark, ut as reactivityChannel, hn as registerPluginAliases, je as requireScope, gn as resetPluginAliases, tn as resolveWorkflowAccess, g as rowPatchOpSchema, _ as rowPatchSchema, s as scopeCacheKey, fe as setEffectiveScopes, Ae as setPolicyGuardResolver, oe as setResourceScopeResolver, mt as sourceKeys, Mt as streamToRpc, w as strictInput, ce as subjectIdentity, n as subjectScopes, Ie as subscribeServerErrors, S as subscriptionEvent, ue as systemSubject, o as tenantScopedSubject, Pt as toRpc, Cr as tsMs, gt as undeclaredChannelKeys, Qn as undoApplyDescriptor, Zn as undoLogQueryDescriptor, $n as undoRedoDescriptor, V as wireErrorUnion, Ot as withRpcTag, rn as workflowAccessDescriptor, zn as workflowCancelDescriptor, Ln as workflowDomainEventsQueryDescriptor, Rn as workflowEventDeliveriesQueryDescriptor, Bn as workflowResumeDescriptor, In as workflowRunEventsQueryDescriptor, Nn as workflowRunQueryDescriptor, Fn as workflowRunStepsQueryDescriptor, Pn as workflowRunsQueryDescriptor, Vn as workflowSignalDescriptor, xn as workflowToRpc, Hn as workflowUpdateDescriptor, Dt as workflowWireErrorUnion, Ve as wsMutationIdempotencyScope };
955
+ export { De as ADMIN_SCOPE, Se as APIKEY_ISSUE_ORG_SCOPE, Te as APIKEY_ISSUE_OTHER_SCOPE, _e as APIKEY_ISSUE_SELF_SCOPE, lr as APPROVALS_DECIDE_TAG, cr as APPROVALS_PENDING_TAG, ot as ApprovalDecisionErrors, at as ApprovalErrors, k as ApprovalExpired, it as ApprovalForbidden, et as ApprovalNotFound, rt as ApprovalNotPending, nt as ApprovalRejected, $e as ApprovalRequired, tt as ApprovalSelfApproval, A as ApprovalUnavailable, se as AuthMiddleware, E as BusinessRuleViolation, fr as CONNECTIONS_LIST_TAG, hr as CONNECTION_DISCONNECT_TAG, pr as CONNECTION_START_TAG, mr as CONNECTION_SUBMIT_TOKEN_TAG, xr as ConnectionHandshakeFailed, i as ConnectionInfo, r as ConnectionInfoMiddleware, Q as ConnectionKind, br as ConnectionKindMismatch, vr as ConnectionNotDeclared, _r as ConnectionState, gr as ConnectionStatus, yr as ConnectionSubjectRequired, sr as ConstraintViolation, ie as DEFAULT_SCOPE_CACHE_MAX_ENTRIES, ye as DEFAULT_SCOPE_CACHE_TTL_MS, Zt as EVENT_ROUTE_SEP, Jt as EventKeyInvalid, qt as EventPayloadInvalid, Yt as EventPayloadTooLarge, Dr as GATEWAY_CREDENTIAL_EXPIRED_CLOSE_CODE, e as IMPERSONATION_METADATA_KEY, Lt as MAX_EVENT_ENVELOPE_BYTES, Re as MUTATION_IN_FLIGHT_RETRY_AFTER_MS, p as MutationInFlight, rr as NoRowFound, Ar as PROTOCOL_VERSION, st as PendingApproval, j as REACTIVITY_CHANNEL_PREFIX, u as ScopeError, or as ServerOnlyColumnWrite, nr as StoreOperationFailed, ve as Subject, ne as SubjectIdentity, re as SubjectService, ir as TableValidationFailed, ar as TenantRowNotFound, tr as TenantScopeViolation, Gn as UNDO_APPLY_TAG, Wn as UNDO_LOG_TAG, Kn as UNDO_REDO_TAG, l as Unauthenticated, Xn as UndoConflict, Yn as UndoForbidden, qn as UndoLogEntry, Jn as UndoNotFound, O as ValidationError, Ze as ValidationErrors, D as ValidationIssue, U as WorkflowAccessProperty, Z as WorkflowControlInputSchema, En as WorkflowDomainEventRowSchema, kn as WorkflowDomainEventsInputSchema, An as WorkflowEventDeliveriesInputSchema, Dn as WorkflowEventDeliveryRowSchema, yn as WorkflowParentClosePolicySchema, Tn as WorkflowRunEventRowSchema, xn as WorkflowRunHandleSchema, On as WorkflowRunRefSchema, Y as WorkflowRunRowSchema, J as WorkflowRunStatusSchema, wn as WorkflowRunStepRowSchema, X as WorkflowRunTableRefSchema, Cn as WorkflowRunsInputSchema, jn as WorkflowSignalInputSchema, bn as WorkflowStartDeferralSchema, Mn as WorkflowUpdateInputSchema, Nn as WorkflowUpdateResultSchema, Mt as actionToRpc, Ce as advisoryResourceGuardWarning, a as anonymousSubject, Ye as applyRowPatch, c as applyScopeDecision, dr as approvalsDecideDescriptor, ur as approvalsPendingQueryDescriptor, te as assertAuthenticated, rn as attachWorkflowAccess, Ne as beginIdempotent, dn as checkFrameworkCompat, Ee as checkGuards, pe as checkGuardsEffect, ae as composeAuthStrategies, ln as composeRpcInterceptors, Tr as connectionDisconnectDescriptor, Cr as connectionStartDescriptor, wr as connectionSubmitTokenDescriptor, Sr as connectionsListQueryDescriptor, mt as declaredReactivityChannelKeys, R as defineAction, zt as defineEvent, L as defineMutation, on as definePlugin, sn as definePluginRoute, un as definePluginService, I as defineQuery, wt as defineStream, kr as defineWebSocket, qe as diffRows, be as effectiveScopes, Xt as encodeEventKey, Pt as errorTag, Ht as eventAttached, Bt as eventEnvelope, Vt as eventGap, Wt as eventResumePoint, Qt as eventRoute, Ut as eventStreamEvent, Gt as eventSubscribeInput, Kt as eventToRpc, Le as failIdempotent, Qe as fieldIssuesOf, Oe as findAdvisoryResourceGuards, ze as finishIdempotent, en as formatEventRoute, me as getPolicyGuardResolver, he as getResourceScopeResolver, W as getWorkflowAccess, Ct as hasAccessDecision, Me as hasCallbackRoutes, we as hasEffectiveScope, B as hasEnforcedGuard, xe as hasScope, y as idToPath, Pe as idempotencyScope, w as inputLabel, ge as isAuthenticatedCheck, St as isAuthenticatedGuard, Rt as isEventDescriptor, Je as isIdKeyed, d as isOpenAccess, de as isPolicyCheck, xt as isPolicyGuard, ft as isReactivityChannel, pt as isReactivityChannelKey, t as isSystemSubject, yt as isWireReachable, le as makeScopeCache, Fe as memoryIdempotencyStore, ke as missingAccessDecision, jt as mutationToRpc, It as normalizeDescriptor, gt as normalizeSource, f as openAccessSpec, $t as parseEventRoute, b as pathToId, pn as pluginAlias, cn as pluginInstanceName, mn as pluginSlug, vn as pluginTag, vt as publishReactivity, Be as publishServerError, At as queryToRpc, s as rawImpersonationMark, dt as reactivityChannel, gn as registerPluginAliases, fe as requireScope, _n as resetPluginAliases, nn as resolveWorkflowAccess, _ as rowPatchOpSchema, v as rowPatchSchema, ce as scopeCacheKey, je as setEffectiveScopes, oe as setPolicyGuardResolver, n as setResourceScopeResolver, ht as sourceKeys, Nt as streamToRpc, T as strictInput, ue as subjectIdentity, Ae as subjectScopes, Ie as subscribeServerErrors, C as subscriptionEvent, o as systemSubject, ee as tenantScopedSubject, Ft as toRpc, Er as tsMs, _t as undeclaredChannelKeys, $n as undoApplyDescriptor, Qn as undoLogQueryDescriptor, er as undoRedoDescriptor, H as wireErrorUnion, kt as withRpcTag, an as workflowAccessDescriptor, Bn as workflowCancelDescriptor, Rn as workflowDomainEventsQueryDescriptor, zn as workflowEventDeliveriesQueryDescriptor, Vn as workflowResumeDescriptor, Ln as workflowRunEventsQueryDescriptor, Pn as workflowRunQueryDescriptor, In as workflowRunStepsQueryDescriptor, Fn as workflowRunsQueryDescriptor, Hn as workflowSignalDescriptor, Sn as workflowToRpc, Un as workflowUpdateDescriptor, Ot as workflowWireErrorUnion, Ve as wsMutationIdempotencyScope };