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