@lambdacurry/arbor 0.20.30 → 0.20.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/arbor.js +1729 -1029
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -31,6 +31,19 @@ var CONTRIBUTION_TYPES = [
31
31
  "decision"
32
32
  ];
33
33
  var STAMP_FACETS = ["quality", "impact", "fit", "originality"];
34
+ // ../core/src/feedback/constants.ts
35
+ var ARBOR_FEEDBACK_TYPES = [
36
+ "comment",
37
+ "question",
38
+ "assertion",
39
+ "evidence",
40
+ "critique",
41
+ "proposal",
42
+ "risk",
43
+ "correction"
44
+ ];
45
+ var ARBOR_FEEDBACK_CAPABILITIES = ["moderate", "review_private"];
46
+ var ARBOR_FEEDBACK_STATUSES = ["new", "reviewed", "linked", "resolved"];
34
47
  // ../core/src/errors/contract.ts
35
48
  var ERROR_REASONS = new Set([
36
49
  "validation.missing_field",
@@ -178,6 +191,60 @@ class ColumnBuilder {
178
191
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/table.utils.js
179
192
  var TableName = Symbol.for("drizzle:Name");
180
193
 
194
+ // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/pg-core/foreign-keys.js
195
+ class ForeignKeyBuilder {
196
+ static [entityKind] = "PgForeignKeyBuilder";
197
+ reference;
198
+ _onUpdate = "no action";
199
+ _onDelete = "no action";
200
+ constructor(config, actions) {
201
+ this.reference = () => {
202
+ const { name, columns, foreignColumns } = config();
203
+ return { name, columns, foreignTable: foreignColumns[0].table, foreignColumns };
204
+ };
205
+ if (actions) {
206
+ this._onUpdate = actions.onUpdate;
207
+ this._onDelete = actions.onDelete;
208
+ }
209
+ }
210
+ onUpdate(action) {
211
+ this._onUpdate = action === undefined ? "no action" : action;
212
+ return this;
213
+ }
214
+ onDelete(action) {
215
+ this._onDelete = action === undefined ? "no action" : action;
216
+ return this;
217
+ }
218
+ build(table) {
219
+ return new ForeignKey(table, this);
220
+ }
221
+ }
222
+
223
+ class ForeignKey {
224
+ constructor(table, builder) {
225
+ this.table = table;
226
+ this.reference = builder.reference;
227
+ this.onUpdate = builder._onUpdate;
228
+ this.onDelete = builder._onDelete;
229
+ }
230
+ static [entityKind] = "PgForeignKey";
231
+ reference;
232
+ onUpdate;
233
+ onDelete;
234
+ getName() {
235
+ const { name, columns, foreignColumns } = this.reference();
236
+ const columnNames = columns.map((column) => column.name);
237
+ const foreignColumnNames = foreignColumns.map((column) => column.name);
238
+ const chunks = [
239
+ this.table[TableName],
240
+ ...columnNames,
241
+ foreignColumns[0].table[TableName],
242
+ ...foreignColumnNames
243
+ ];
244
+ return name ?? `${chunks.join("_")}_fk`;
245
+ }
246
+ }
247
+
181
248
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/tracing-utils.js
182
249
  function iife(fn, ...args) {
183
250
  return fn(...args);
@@ -188,7 +255,173 @@ function uniqueKeyName(table, columns) {
188
255
  return `${table[TableName]}_${columns.join("_")}_unique`;
189
256
  }
190
257
 
258
+ class UniqueConstraintBuilder {
259
+ constructor(columns, name) {
260
+ this.name = name;
261
+ this.columns = columns;
262
+ }
263
+ static [entityKind] = "PgUniqueConstraintBuilder";
264
+ columns;
265
+ nullsNotDistinctConfig = false;
266
+ nullsNotDistinct() {
267
+ this.nullsNotDistinctConfig = true;
268
+ return this;
269
+ }
270
+ build(table) {
271
+ return new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);
272
+ }
273
+ }
274
+
275
+ class UniqueOnConstraintBuilder {
276
+ static [entityKind] = "PgUniqueOnConstraintBuilder";
277
+ name;
278
+ constructor(name) {
279
+ this.name = name;
280
+ }
281
+ on(...columns) {
282
+ return new UniqueConstraintBuilder(columns, this.name);
283
+ }
284
+ }
285
+
286
+ class UniqueConstraint {
287
+ constructor(table, columns, nullsNotDistinct, name) {
288
+ this.table = table;
289
+ this.columns = columns;
290
+ this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));
291
+ this.nullsNotDistinct = nullsNotDistinct;
292
+ }
293
+ static [entityKind] = "PgUniqueConstraint";
294
+ columns;
295
+ name;
296
+ nullsNotDistinct = false;
297
+ getName() {
298
+ return this.name;
299
+ }
300
+ }
301
+
302
+ // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/pg-core/utils/array.js
303
+ function parsePgArrayValue(arrayString, startFrom, inQuotes) {
304
+ for (let i = startFrom;i < arrayString.length; i++) {
305
+ const char = arrayString[i];
306
+ if (char === "\\") {
307
+ i++;
308
+ continue;
309
+ }
310
+ if (char === '"') {
311
+ return [arrayString.slice(startFrom, i).replace(/\\/g, ""), i + 1];
312
+ }
313
+ if (inQuotes) {
314
+ continue;
315
+ }
316
+ if (char === "," || char === "}") {
317
+ return [arrayString.slice(startFrom, i).replace(/\\/g, ""), i];
318
+ }
319
+ }
320
+ return [arrayString.slice(startFrom).replace(/\\/g, ""), arrayString.length];
321
+ }
322
+ function parsePgNestedArray(arrayString, startFrom = 0) {
323
+ const result = [];
324
+ let i = startFrom;
325
+ let lastCharIsComma = false;
326
+ while (i < arrayString.length) {
327
+ const char = arrayString[i];
328
+ if (char === ",") {
329
+ if (lastCharIsComma || i === startFrom) {
330
+ result.push("");
331
+ }
332
+ lastCharIsComma = true;
333
+ i++;
334
+ continue;
335
+ }
336
+ lastCharIsComma = false;
337
+ if (char === "\\") {
338
+ i += 2;
339
+ continue;
340
+ }
341
+ if (char === '"') {
342
+ const [value2, startFrom2] = parsePgArrayValue(arrayString, i + 1, true);
343
+ result.push(value2);
344
+ i = startFrom2;
345
+ continue;
346
+ }
347
+ if (char === "}") {
348
+ return [result, i + 1];
349
+ }
350
+ if (char === "{") {
351
+ const [value2, startFrom2] = parsePgNestedArray(arrayString, i + 1);
352
+ result.push(value2);
353
+ i = startFrom2;
354
+ continue;
355
+ }
356
+ const [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);
357
+ result.push(value);
358
+ i = newStartFrom;
359
+ }
360
+ return [result, i];
361
+ }
362
+ function parsePgArray(arrayString) {
363
+ const [result] = parsePgNestedArray(arrayString, 1);
364
+ return result;
365
+ }
366
+ function makePgArray(array) {
367
+ return `{${array.map((item) => {
368
+ if (Array.isArray(item)) {
369
+ return makePgArray(item);
370
+ }
371
+ if (typeof item === "string") {
372
+ return `"${item.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
373
+ }
374
+ return `${item}`;
375
+ }).join(",")}}`;
376
+ }
377
+
191
378
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/pg-core/columns/common.js
379
+ class PgColumnBuilder extends ColumnBuilder {
380
+ foreignKeyConfigs = [];
381
+ static [entityKind] = "PgColumnBuilder";
382
+ array(size) {
383
+ return new PgArrayBuilder(this.config.name, this, size);
384
+ }
385
+ references(ref, actions = {}) {
386
+ this.foreignKeyConfigs.push({ ref, actions });
387
+ return this;
388
+ }
389
+ unique(name, config) {
390
+ this.config.isUnique = true;
391
+ this.config.uniqueName = name;
392
+ this.config.uniqueType = config?.nulls;
393
+ return this;
394
+ }
395
+ generatedAlwaysAs(as) {
396
+ this.config.generated = {
397
+ as,
398
+ type: "always",
399
+ mode: "stored"
400
+ };
401
+ return this;
402
+ }
403
+ buildForeignKeys(column, table) {
404
+ return this.foreignKeyConfigs.map(({ ref, actions }) => {
405
+ return iife((ref2, actions2) => {
406
+ const builder = new ForeignKeyBuilder(() => {
407
+ const foreignColumn = ref2();
408
+ return { columns: [column], foreignColumns: [foreignColumn] };
409
+ });
410
+ if (actions2.onUpdate) {
411
+ builder.onUpdate(actions2.onUpdate);
412
+ }
413
+ if (actions2.onDelete) {
414
+ builder.onDelete(actions2.onDelete);
415
+ }
416
+ return builder.build(table);
417
+ }, ref, actions);
418
+ });
419
+ }
420
+ buildExtraConfigColumn(table) {
421
+ return new ExtraConfigColumn(table, this.config);
422
+ }
423
+ }
424
+
192
425
  class PgColumn extends Column {
193
426
  constructor(table, config) {
194
427
  if (!config.uniqueName) {
@@ -237,11 +470,76 @@ class ExtraConfigColumn extends PgColumn {
237
470
  }
238
471
  }
239
472
 
473
+ class IndexedColumn {
474
+ static [entityKind] = "IndexedColumn";
475
+ constructor(name, keyAsName, type, indexConfig) {
476
+ this.name = name;
477
+ this.keyAsName = keyAsName;
478
+ this.type = type;
479
+ this.indexConfig = indexConfig;
480
+ }
481
+ name;
482
+ keyAsName;
483
+ type;
484
+ indexConfig;
485
+ }
486
+
487
+ class PgArrayBuilder extends PgColumnBuilder {
488
+ static [entityKind] = "PgArrayBuilder";
489
+ constructor(name, baseBuilder, size) {
490
+ super(name, "array", "PgArray");
491
+ this.config.baseBuilder = baseBuilder;
492
+ this.config.size = size;
493
+ }
494
+ build(table) {
495
+ const baseColumn = this.config.baseBuilder.build(table);
496
+ return new PgArray(table, this.config, baseColumn);
497
+ }
498
+ }
499
+
500
+ class PgArray extends PgColumn {
501
+ constructor(table, config, baseColumn, range) {
502
+ super(table, config);
503
+ this.baseColumn = baseColumn;
504
+ this.range = range;
505
+ this.size = config.size;
506
+ }
507
+ size;
508
+ static [entityKind] = "PgArray";
509
+ getSQLType() {
510
+ return `${this.baseColumn.getSQLType()}[${typeof this.size === "number" ? this.size : ""}]`;
511
+ }
512
+ mapFromDriverValue(value) {
513
+ if (typeof value === "string") {
514
+ value = parsePgArray(value);
515
+ }
516
+ return value.map((v) => this.baseColumn.mapFromDriverValue(v));
517
+ }
518
+ mapToDriverValue(value, isNestedArray = false) {
519
+ const a = value.map((v) => v === null ? null : is(this.baseColumn, PgArray) ? this.baseColumn.mapToDriverValue(v, true) : this.baseColumn.mapToDriverValue(v));
520
+ if (isNestedArray)
521
+ return a;
522
+ return makePgArray(a);
523
+ }
524
+ }
525
+
240
526
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/pg-core/columns/enum.js
241
527
  var isPgEnumSym = Symbol.for("drizzle:isPgEnum");
242
528
  function isPgEnum(obj) {
243
529
  return !!obj && typeof obj === "function" && isPgEnumSym in obj && obj[isPgEnumSym] === true;
244
530
  }
531
+
532
+ class PgEnumColumnBuilder extends PgColumnBuilder {
533
+ static [entityKind] = "PgEnumColumnBuilder";
534
+ constructor(name, enumInstance) {
535
+ super(name, "string", "PgEnumColumn");
536
+ this.config.enum = enumInstance;
537
+ }
538
+ build(table) {
539
+ return new PgEnumColumn(table, this.config);
540
+ }
541
+ }
542
+
245
543
  class PgEnumColumn extends PgColumn {
246
544
  static [entityKind] = "PgEnumColumn";
247
545
  enum = this.config.enum;
@@ -269,6 +567,10 @@ class Subquery {
269
567
  }
270
568
  }
271
569
 
570
+ class WithSubquery extends Subquery {
571
+ static [entityKind] = "WithSubquery";
572
+ }
573
+
272
574
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/version.js
273
575
  var version = "0.38.4";
274
576
 
@@ -341,6 +643,9 @@ class Table {
341
643
  }
342
644
 
343
645
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/sql/sql.js
646
+ class FakePrimitiveParam {
647
+ static [entityKind] = "FakePrimitiveParam";
648
+ }
344
649
  function isSQLWrapper(value) {
345
650
  return value !== null && value !== undefined && typeof value.getSQL === "function";
346
651
  }
@@ -749,6 +1054,22 @@ class TableAliasProxyHandler {
749
1054
  }
750
1055
  }
751
1056
 
1057
+ class RelationTableAliasProxyHandler {
1058
+ constructor(alias) {
1059
+ this.alias = alias;
1060
+ }
1061
+ static [entityKind] = "RelationTableAliasProxyHandler";
1062
+ get(target, prop) {
1063
+ if (prop === "sourceTable") {
1064
+ return aliasedTable(target.sourceTable, this.alias);
1065
+ }
1066
+ return target[prop];
1067
+ }
1068
+ }
1069
+ function aliasedTable(table, tableAlias) {
1070
+ return new Proxy(table, new TableAliasProxyHandler(tableAlias, false));
1071
+ }
1072
+
752
1073
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/sqlite-core/alias.js
753
1074
  function alias(table, alias2) {
754
1075
  return new Proxy(table, new TableAliasProxyHandler(alias2, false));
@@ -790,7 +1111,7 @@ function getColumnNameAndConfig(a, b) {
790
1111
  }
791
1112
 
792
1113
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/sqlite-core/foreign-keys.js
793
- class ForeignKeyBuilder {
1114
+ class ForeignKeyBuilder2 {
794
1115
  static [entityKind] = "SQLiteForeignKeyBuilder";
795
1116
  reference;
796
1117
  _onUpdate;
@@ -814,11 +1135,11 @@ class ForeignKeyBuilder {
814
1135
  return this;
815
1136
  }
816
1137
  build(table) {
817
- return new ForeignKey(table, this);
1138
+ return new ForeignKey2(table, this);
818
1139
  }
819
1140
  }
820
1141
 
821
- class ForeignKey {
1142
+ class ForeignKey2 {
822
1143
  constructor(table, builder) {
823
1144
  this.table = table;
824
1145
  this.reference = builder.reference;
@@ -847,6 +1168,42 @@ class ForeignKey {
847
1168
  function uniqueKeyName2(table, columns) {
848
1169
  return `${table[TableName]}_${columns.join("_")}_unique`;
849
1170
  }
1171
+ class UniqueConstraintBuilder2 {
1172
+ constructor(columns, name) {
1173
+ this.name = name;
1174
+ this.columns = columns;
1175
+ }
1176
+ static [entityKind] = "SQLiteUniqueConstraintBuilder";
1177
+ columns;
1178
+ build(table) {
1179
+ return new UniqueConstraint2(table, this.columns, this.name);
1180
+ }
1181
+ }
1182
+
1183
+ class UniqueOnConstraintBuilder2 {
1184
+ static [entityKind] = "SQLiteUniqueOnConstraintBuilder";
1185
+ name;
1186
+ constructor(name) {
1187
+ this.name = name;
1188
+ }
1189
+ on(...columns) {
1190
+ return new UniqueConstraintBuilder2(columns, this.name);
1191
+ }
1192
+ }
1193
+
1194
+ class UniqueConstraint2 {
1195
+ constructor(table, columns, name) {
1196
+ this.table = table;
1197
+ this.columns = columns;
1198
+ this.name = name ?? uniqueKeyName2(this.table, this.columns.map((column) => column.name));
1199
+ }
1200
+ static [entityKind] = "SQLiteUniqueConstraint";
1201
+ columns;
1202
+ name;
1203
+ getName() {
1204
+ return this.name;
1205
+ }
1206
+ }
850
1207
 
851
1208
  // ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/sqlite-core/columns/common.js
852
1209
  class SQLiteColumnBuilder extends ColumnBuilder {
@@ -872,7 +1229,7 @@ class SQLiteColumnBuilder extends ColumnBuilder {
872
1229
  buildForeignKeys(column, table) {
873
1230
  return this.foreignKeyConfigs.map(({ ref, actions }) => {
874
1231
  return ((ref2, actions2) => {
875
- const builder = new ForeignKeyBuilder(() => {
1232
+ const builder = new ForeignKeyBuilder2(() => {
876
1233
  const foreignColumn = ref2();
877
1234
  return { columns: [column], foreignColumns: [foreignColumn] };
878
1235
  });
@@ -1362,7 +1719,8 @@ var orgs = sqliteTable("orgs", {
1362
1719
  createdAt: ts("created_at").notNull(),
1363
1720
  status: text("status").$type().notNull().default("active"),
1364
1721
  lockedAt: ts("locked_at"),
1365
- lockedReason: text("locked_reason")
1722
+ lockedReason: text("locked_reason"),
1723
+ systemKind: text("system_kind").unique()
1366
1724
  });
1367
1725
  var profiles = sqliteTable("profiles", {
1368
1726
  id: text("id").primaryKey(),
@@ -1411,8 +1769,12 @@ var spaces = sqliteTable("spaces", {
1411
1769
  contributionLanes: text("contribution_lanes", { mode: "json" }).$type().notNull().default([]),
1412
1770
  defaultReviewDimensions: text("default_review_dimensions", { mode: "json" }).$type().notNull().default([]),
1413
1771
  stage: text("stage").$type().notNull().default("exploration"),
1772
+ systemKind: text("system_kind"),
1414
1773
  createdAt: ts("created_at").notNull()
1415
- }, (t) => ({ orgIdx: index("spaces_org_idx").on(t.orgId) }));
1774
+ }, (t) => ({
1775
+ orgIdx: index("spaces_org_idx").on(t.orgId),
1776
+ systemKindUq: uniqueIndex("spaces_system_kind_uq").on(t.systemKind)
1777
+ }));
1416
1778
  var spaceMemberships = sqliteTable("space_memberships", {
1417
1779
  id: text("id").primaryKey(),
1418
1780
  spaceId: text("space_id").notNull().references(() => spaces.id),
@@ -1471,6 +1833,7 @@ var topics = sqliteTable("topics", {
1471
1833
  purpose: text("purpose"),
1472
1834
  guidance: text("guidance", { mode: "json" }).$type().notNull().default([]),
1473
1835
  contributionLanes: text("contribution_lanes", { mode: "json" }).$type().notNull().default([]),
1836
+ archivedAt: ts("archived_at"),
1474
1837
  createdAt: ts("created_at").notNull()
1475
1838
  }, (t) => ({ spaceIdx: index("topics_space_idx").on(t.spaceId) }));
1476
1839
  var initiatives = sqliteTable("initiatives", {
@@ -2006,6 +2369,7 @@ var appBundles = sqliteTable("app_bundles", {
2006
2369
  runtimeEntrypoint: text("runtime_entrypoint").$type().notNull(),
2007
2370
  capabilityRequirements: text("capability_requirements", { mode: "json" }).$type().notNull().default([]),
2008
2371
  runtimeConfigRequirements: text("runtime_config_requirements", { mode: "json" }).$type().notNull().default([]),
2372
+ protectedIngress: text("protected_ingress", { mode: "json" }).$type().notNull().default([]),
2009
2373
  stateSchemaVersion: integer("state_schema_version").notNull().default(0),
2010
2374
  stateCompatibleFrom: integer("state_compatible_from").notNull().default(0),
2011
2375
  stateCompatibleThrough: integer("state_compatible_through").notNull().default(0),
@@ -2145,6 +2509,29 @@ var appStateResets = sqliteTable("app_state_resets", {
2145
2509
  generationUq: uniqueIndex("app_state_resets_generation_uq").on(t.appId, t.fromGeneration),
2146
2510
  appIdx: index("app_state_resets_app_idx").on(t.appId, t.createdAt)
2147
2511
  }));
2512
+ var appIngressOAuthCodes = sqliteTable("app_ingress_oauth_codes", {
2513
+ codeHash: text("code_hash").primaryKey(),
2514
+ appId: text("app_id").notNull().references(() => apps.id),
2515
+ profileId: text("profile_id").notNull().references(() => profiles.id),
2516
+ clientId: text("client_id").notNull(),
2517
+ resource: text("resource").notNull(),
2518
+ expiresAt: ts("expires_at").notNull(),
2519
+ createdAt: ts("created_at").notNull()
2520
+ }, (t) => ({
2521
+ appExpiryIdx: index("app_ingress_oauth_codes_app_expiry_idx").on(t.appId, t.expiresAt)
2522
+ }));
2523
+ var appIngressTokens = sqliteTable("app_ingress_tokens", {
2524
+ tokenHash: text("token_hash").primaryKey(),
2525
+ appId: text("app_id").notNull().references(() => apps.id),
2526
+ profileId: text("profile_id").notNull().references(() => profiles.id),
2527
+ clientId: text("client_id").notNull(),
2528
+ resource: text("resource").notNull(),
2529
+ expiresAt: ts("expires_at").notNull(),
2530
+ createdAt: ts("created_at").notNull()
2531
+ }, (t) => ({
2532
+ appExpiryIdx: index("app_ingress_tokens_app_expiry_idx").on(t.appId, t.expiresAt),
2533
+ profileIdx: index("app_ingress_tokens_profile_idx").on(t.profileId, t.expiresAt)
2534
+ }));
2148
2535
  var appViewerGrantUses = sqliteTable("app_viewer_grant_uses", {
2149
2536
  jti: text("jti").primaryKey(),
2150
2537
  appId: text("app_id").notNull().references(() => apps.id),
@@ -2189,24 +2576,111 @@ var inboxItems = sqliteTable("inbox_items", {
2189
2576
  targetIdx: index("inbox_target_idx").on(t.targetProfileId, t.status),
2190
2577
  dedupeIdx: index("inbox_dedupe_idx").on(t.dedupeKey)
2191
2578
  }));
2192
- var events = sqliteTable("events", {
2579
+ var arborFeedback = sqliteTable("arbor_feedback", {
2193
2580
  id: text("id").primaryKey(),
2194
- type: text("type").notNull(),
2195
- objectType: text("object_type").notNull(),
2196
- objectId: text("object_id").notNull(),
2197
- actorProfileId: text("actor_profile_id"),
2198
- executionContextId: text("execution_context_id"),
2199
- payload: text("payload", { mode: "json" }).$type().notNull().default({}),
2581
+ reporterProfileId: text("reporter_profile_id").notNull().references(() => profiles.id),
2582
+ reporterOrgId: text("reporter_org_id").notNull().references(() => orgs.id),
2583
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2584
+ computerSessionId: text("computer_session_id").references(() => computerSessions.id),
2585
+ type: text("type").$type().notNull(),
2586
+ body: text("body").notNull(),
2587
+ summary: text("summary"),
2588
+ confidence: integer("confidence"),
2589
+ idempotencyKey: text("idempotency_key"),
2590
+ idempotencyFingerprint: text("idempotency_fingerprint"),
2591
+ source: text("source", { mode: "json" }).$type().notNull(),
2592
+ status: text("status").$type().notNull().default("new"),
2593
+ reviewedAt: ts("reviewed_at"),
2594
+ reviewedByProfileId: text("reviewed_by_profile_id").references(() => profiles.id),
2595
+ resolvedAt: ts("resolved_at"),
2596
+ resolvedByProfileId: text("resolved_by_profile_id").references(() => profiles.id),
2597
+ createdAt: ts("created_at").notNull(),
2598
+ updatedAt: ts("updated_at").notNull()
2599
+ }, (t) => ({
2600
+ reporterReplayUq: uniqueIndex("arbor_feedback_reporter_replay_uq").on(t.reporterProfileId, t.idempotencyKey),
2601
+ statusCreatedIdx: index("arbor_feedback_status_created_idx").on(t.status, t.createdAt),
2602
+ orgCreatedIdx: index("arbor_feedback_org_created_idx").on(t.reporterOrgId, t.createdAt)
2603
+ }));
2604
+ var arborFeedbackAssociations = sqliteTable("arbor_feedback_associations", {
2605
+ id: text("id").primaryKey(),
2606
+ feedbackId: text("feedback_id").notNull().references(() => arborFeedback.id),
2607
+ targetType: text("target_type").$type().notNull(),
2608
+ topicId: text("topic_id").references(() => topics.id),
2609
+ threadId: text("thread_id").references(() => threads.id),
2610
+ createdByProfileId: text("created_by_profile_id").notNull().references(() => profiles.id),
2611
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2200
2612
  createdAt: ts("created_at").notNull()
2201
2613
  }, (t) => ({
2202
- objectIdx: index("events_object_idx").on(t.objectType, t.objectId, t.createdAt),
2203
- createdIdx: index("events_created_idx").on(t.createdAt)
2614
+ targetShape: check("arbor_feedback_associations_target_shape", sql`(${t.targetType} = 'topic' and ${t.topicId} is not null and ${t.threadId} is null) or (${t.targetType} = 'thread' and ${t.threadId} is not null and ${t.topicId} is null)`),
2615
+ feedbackTopicUq: uniqueIndex("arbor_feedback_associations_feedback_topic_uq").on(t.feedbackId, t.topicId).where(sql`${t.topicId} is not null`),
2616
+ feedbackThreadUq: uniqueIndex("arbor_feedback_associations_feedback_thread_uq").on(t.feedbackId, t.threadId).where(sql`${t.threadId} is not null`),
2617
+ feedbackIdx: index("arbor_feedback_associations_feedback_idx").on(t.feedbackId),
2618
+ threadIdx: index("arbor_feedback_associations_thread_idx").on(t.threadId)
2204
2619
  }));
2205
- var notifications = sqliteTable("notifications", {
2620
+ var arborFeedbackGrants = sqliteTable("arbor_feedback_grants", {
2206
2621
  id: text("id").primaryKey(),
2207
- recipientProfileId: text("recipient_profile_id").notNull().references(() => profiles.id),
2208
- kind: text("kind").$type().notNull(),
2209
- eventId: text("event_id").references(() => events.id),
2622
+ profileId: text("profile_id").notNull().references(() => profiles.id),
2623
+ capability: text("capability").$type().notNull(),
2624
+ grantedByProfileId: text("granted_by_profile_id").notNull().references(() => profiles.id),
2625
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2626
+ createdAt: ts("created_at").notNull()
2627
+ }, (t) => ({
2628
+ profileCapabilityUq: uniqueIndex("arbor_feedback_grants_profile_capability_uq").on(t.profileId, t.capability),
2629
+ capabilityIdx: index("arbor_feedback_grants_capability_idx").on(t.capability, t.profileId)
2630
+ }));
2631
+ var arborFeedbackPublications = sqliteTable("arbor_feedback_publications", {
2632
+ id: text("id").primaryKey(),
2633
+ feedbackId: text("feedback_id").notNull().references(() => arborFeedback.id),
2634
+ contributionId: text("contribution_id").notNull().references(() => contributions.id),
2635
+ createdByProfileId: text("created_by_profile_id").notNull().references(() => profiles.id),
2636
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2637
+ createdAt: ts("created_at").notNull()
2638
+ }, (t) => ({
2639
+ pairUq: uniqueIndex("arbor_feedback_publications_pair_uq").on(t.feedbackId, t.contributionId),
2640
+ feedbackIdx: index("arbor_feedback_publications_feedback_idx").on(t.feedbackId),
2641
+ contributionIdx: index("arbor_feedback_publications_contribution_idx").on(t.contributionId)
2642
+ }));
2643
+ var arborFeedbackThreadMerges = sqliteTable("arbor_feedback_thread_merges", {
2644
+ sourceThreadId: text("source_thread_id").primaryKey().references(() => threads.id),
2645
+ targetThreadId: text("target_thread_id").notNull().references(() => threads.id),
2646
+ mergedByProfileId: text("merged_by_profile_id").notNull().references(() => profiles.id),
2647
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2648
+ reason: text("reason"),
2649
+ createdAt: ts("created_at").notNull()
2650
+ }, (t) => ({
2651
+ notSelf: check("arbor_feedback_thread_merges_not_self", sql`${t.sourceThreadId} <> ${t.targetThreadId}`),
2652
+ targetIdx: index("arbor_feedback_thread_merges_target_idx").on(t.targetThreadId)
2653
+ }));
2654
+ var arborFeedbackAuditEvents = sqliteTable("arbor_feedback_audit_events", {
2655
+ id: text("id").primaryKey(),
2656
+ feedbackId: text("feedback_id").references(() => arborFeedback.id),
2657
+ action: text("action").$type().notNull(),
2658
+ actorProfileId: text("actor_profile_id").notNull().references(() => profiles.id),
2659
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2660
+ metadata: text("metadata", { mode: "json" }).$type().notNull(),
2661
+ createdAt: ts("created_at").notNull()
2662
+ }, (t) => ({
2663
+ feedbackCreatedIdx: index("arbor_feedback_audit_feedback_created_idx").on(t.feedbackId, t.createdAt),
2664
+ actionCreatedIdx: index("arbor_feedback_audit_action_created_idx").on(t.action, t.createdAt)
2665
+ }));
2666
+ var events = sqliteTable("events", {
2667
+ id: text("id").primaryKey(),
2668
+ type: text("type").notNull(),
2669
+ objectType: text("object_type").notNull(),
2670
+ objectId: text("object_id").notNull(),
2671
+ actorProfileId: text("actor_profile_id"),
2672
+ executionContextId: text("execution_context_id"),
2673
+ payload: text("payload", { mode: "json" }).$type().notNull().default({}),
2674
+ createdAt: ts("created_at").notNull()
2675
+ }, (t) => ({
2676
+ objectIdx: index("events_object_idx").on(t.objectType, t.objectId, t.createdAt),
2677
+ createdIdx: index("events_created_idx").on(t.createdAt)
2678
+ }));
2679
+ var notifications = sqliteTable("notifications", {
2680
+ id: text("id").primaryKey(),
2681
+ recipientProfileId: text("recipient_profile_id").notNull().references(() => profiles.id),
2682
+ kind: text("kind").$type().notNull(),
2683
+ eventId: text("event_id").references(() => events.id),
2210
2684
  objectType: text("object_type").notNull(),
2211
2685
  objectId: text("object_id").notNull(),
2212
2686
  summary: text("summary").notNull().default(""),
@@ -2299,110 +2773,64 @@ var PREVIEW_MIME_TYPES = new Set([
2299
2773
  // ../core/src/ops/app.ts
2300
2774
  var APP_MAX_MODULE_BYTES = 10 * 1024 * 1024;
2301
2775
  var APP_MAX_ASSET_BYTES = 25 * 1024 * 1024;
2302
- // ../core/src/queries/lane-match.ts
2303
- var STOP_WORDS = new Set("a an and are as at be by for from has have here how i in is it me of on or our the their they this to was what when where which who will with you your".split(" "));
2304
- // ../core/src/queries/activity.ts
2305
- var targetAuthor = alias(profiles, "target_author");
2306
- // ../core/src/blob/in-memory.ts
2307
- class InMemoryBlobStore {
2308
- store = new Map;
2309
- async put(key, bytes, mimeType) {
2310
- this.store.set(key, { bytes: new Uint8Array(bytes), mimeType });
2311
- }
2312
- async putStream(key, stream, size, mimeType) {
2313
- const reader = stream.getReader();
2314
- const bytes = new Uint8Array(size);
2315
- let offset = 0;
2316
- try {
2317
- while (true) {
2318
- const { done, value } = await reader.read();
2319
- if (done)
2320
- break;
2321
- if (offset + value.byteLength > size) {
2322
- throw new Error(`Blob stream exceeded its declared ${size} bytes`);
2323
- }
2324
- bytes.set(value, offset);
2325
- offset += value.byteLength;
2326
- }
2327
- } finally {
2328
- reader.releaseLock();
2329
- }
2330
- if (offset !== size)
2331
- throw new Error(`Blob stream ended at ${offset} of ${size} bytes`);
2332
- this.store.set(key, { bytes, mimeType });
2333
- }
2334
- async get(key, range) {
2335
- const blob2 = this.store.get(key);
2336
- if (!blob2)
2337
- return null;
2338
- const bytes = range ? blob2.bytes.slice(range.offset, range.offset + range.length) : new Uint8Array(blob2.bytes);
2339
- return { bytes, mimeType: blob2.mimeType };
2340
- }
2341
- async delete(key) {
2342
- this.store.delete(key);
2343
- }
2344
- get size() {
2345
- return this.store.size;
2346
- }
2347
- }
2348
- // ../core/src/retrieval/in-memory.ts
2349
- function cosine(a, b) {
2350
- let dot = 0;
2351
- let na = 0;
2352
- let nb = 0;
2353
- const n = Math.min(a.length, b.length);
2354
- for (let i = 0;i < n; i++) {
2355
- dot += a[i] * b[i];
2356
- na += a[i] * a[i];
2357
- nb += b[i] * b[i];
2776
+ class AppBundleValidationError extends Error {
2777
+ constructor(message) {
2778
+ super(message);
2779
+ this.name = "AppBundleValidationError";
2358
2780
  }
2359
- const denom = Math.sqrt(na) * Math.sqrt(nb);
2360
- return denom === 0 ? 0 : dot / denom;
2361
2781
  }
2362
- function matchesFilter(metadata, filter) {
2363
- if (!filter)
2364
- return true;
2365
- for (const [key, cond] of Object.entries(filter)) {
2366
- const value = metadata[key];
2367
- if (cond !== null && typeof cond === "object" && "$in" in cond) {
2368
- if (!cond.$in.includes(value))
2369
- return false;
2370
- } else if (value !== cond) {
2371
- return false;
2372
- }
2373
- }
2374
- return true;
2782
+ function invalidBundle(message) {
2783
+ throw new AppBundleValidationError(message);
2375
2784
  }
2376
-
2377
- class InMemoryVectorStore {
2378
- records = new Map;
2379
- async upsert(records) {
2380
- for (const r of records)
2381
- this.records.set(r.id, r);
2382
- }
2383
- async query(vector, q) {
2384
- const scored = [];
2385
- for (const r of this.records.values()) {
2386
- if ((r.namespace ?? null) !== (q.namespace ?? null))
2387
- continue;
2388
- if (!matchesFilter(r.metadata, q.filter))
2389
- continue;
2390
- scored.push({ id: r.id, score: cosine(vector, r.vector), metadata: r.metadata });
2785
+ function normalizeProtectedIngress(entries) {
2786
+ if (entries.length > 1)
2787
+ invalidBundle("AppBundle may declare at most one MCP protected ingress route");
2788
+ const seen = new Set;
2789
+ const normalized = entries.map((entry) => {
2790
+ const path = entry.path.trim();
2791
+ const hasControl = [...path].some((char) => {
2792
+ const code = char.charCodeAt(0);
2793
+ return code <= 31 || code === 127;
2794
+ });
2795
+ if (!path || path.length > 240 || !path.startsWith("/") || path.startsWith("//") || path.includes("\\") || path.includes("?") || path.includes("#") || hasControl) {
2796
+ invalidBundle("AppBundle protected ingress path is invalid");
2391
2797
  }
2392
- scored.sort((a, b) => b.score - a.score);
2393
- return scored.slice(0, q.topK);
2394
- }
2395
- async deleteByIds(ids) {
2396
- for (const id of ids)
2397
- this.records.delete(id);
2398
- }
2399
- get size() {
2400
- return this.records.size;
2401
- }
2402
- has(id) {
2403
- return this.records.has(id);
2404
- }
2798
+ let decoded;
2799
+ try {
2800
+ decoded = decodeURIComponent(path);
2801
+ } catch {
2802
+ invalidBundle("AppBundle protected ingress path has invalid encoding");
2803
+ }
2804
+ const canonical = new URL(path, "https://app.invalid").pathname;
2805
+ if (canonical !== path || decoded.includes("/../") || decoded.endsWith("/..") || decoded.includes("/./") || decoded.endsWith("/.")) {
2806
+ invalidBundle("AppBundle protected ingress path must be canonical");
2807
+ }
2808
+ const lowered = decoded.toLowerCase();
2809
+ if (lowered === "/__arbor" || lowered.startsWith("/__arbor/")) {
2810
+ invalidBundle("AppBundle protected ingress cannot use reserved App control paths");
2811
+ }
2812
+ if (seen.has(path))
2813
+ invalidBundle("AppBundle protected ingress paths must be unique");
2814
+ seen.add(path);
2815
+ if (entry.protocol !== "mcp")
2816
+ invalidBundle("AppBundle protected ingress protocol must be mcp");
2817
+ if (entry.auth !== "arbor-oauth")
2818
+ invalidBundle("AppBundle protected ingress auth must be arbor-oauth");
2819
+ if (entry.principal !== "none")
2820
+ invalidBundle("AppBundle protected ingress principal must be none in this release");
2821
+ return {
2822
+ path,
2823
+ protocol: "mcp",
2824
+ auth: "arbor-oauth",
2825
+ principal: "none"
2826
+ };
2827
+ });
2828
+ return normalized.sort((a, b) => a.path.localeCompare(b.path));
2405
2829
  }
2830
+ // ../core/src/queries/lane-match.ts
2831
+ var STOP_WORDS = new Set("a an and are as at be by for from has have here how i in is it me of on or our the their they this to was what when where which who will with you your".split(" "));
2832
+ // ../core/src/queries/activity.ts
2833
+ var targetAuthor = alias(profiles, "target_author");
2406
2834
  // ../core/src/retrieval/fts.ts
2407
2835
  var recallFts = sqliteTable("recall_fts", {
2408
2836
  id: text("id"),
@@ -2421,6 +2849,7 @@ var INDEX_ON = new Set([
2421
2849
  "artifact.edited",
2422
2850
  "review.added",
2423
2851
  "thread.created",
2852
+ "thread.edited",
2424
2853
  "topic.created",
2425
2854
  "topic.edited",
2426
2855
  "contribution.restored"
@@ -2429,523 +2858,523 @@ var PURGE_ON = new Set(["contribution.deleted"]);
2429
2858
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
2430
2859
  var exports_external = {};
2431
2860
  __export(exports_external, {
2432
- xor: () => xor,
2433
- xid: () => xid2,
2434
- void: () => _void2,
2435
- uuidv7: () => uuidv7,
2436
- uuidv6: () => uuidv6,
2437
- uuidv4: () => uuidv4,
2438
- uuid: () => uuid2,
2439
- util: () => exports_util,
2440
- url: () => url,
2441
- uppercase: () => _uppercase,
2442
- unknown: () => unknown,
2443
- union: () => union,
2444
- undefined: () => _undefined3,
2445
- ulid: () => ulid2,
2446
- uint64: () => uint64,
2447
- uint32: () => uint32,
2448
- tuple: () => tuple,
2449
- trim: () => _trim,
2450
- treeifyError: () => treeifyError,
2451
- transform: () => transform,
2452
- toUpperCase: () => _toUpperCase,
2453
- toLowerCase: () => _toLowerCase,
2454
- toJSONSchema: () => toJSONSchema,
2455
- templateLiteral: () => templateLiteral,
2456
- symbol: () => symbol,
2457
- superRefine: () => superRefine,
2458
- success: () => success,
2459
- stringbool: () => stringbool,
2460
- stringFormat: () => stringFormat,
2461
- string: () => string2,
2462
- strictObject: () => strictObject,
2463
- startsWith: () => _startsWith,
2464
- slugify: () => _slugify,
2465
- size: () => _size,
2466
- setErrorMap: () => setErrorMap,
2467
- set: () => set,
2468
- safeParseAsync: () => safeParseAsync2,
2469
- safeParse: () => safeParse2,
2470
- safeEncodeAsync: () => safeEncodeAsync2,
2471
- safeEncode: () => safeEncode2,
2472
- safeDecodeAsync: () => safeDecodeAsync2,
2473
- safeDecode: () => safeDecode2,
2474
- registry: () => registry,
2475
- regexes: () => exports_regexes,
2476
- regex: () => _regex,
2477
- refine: () => refine,
2478
- record: () => record,
2479
- readonly: () => readonly,
2480
- property: () => _property,
2481
- promise: () => promise,
2482
- prettifyError: () => prettifyError,
2483
- preprocess: () => preprocess,
2484
- prefault: () => prefault,
2485
- positive: () => _positive,
2486
- pipe: () => pipe,
2487
- partialRecord: () => partialRecord,
2488
- parseAsync: () => parseAsync2,
2489
- parse: () => parse3,
2490
- overwrite: () => _overwrite,
2491
- optional: () => optional,
2492
- object: () => object,
2493
- number: () => number2,
2494
- nullish: () => nullish2,
2495
- nullable: () => nullable,
2496
- null: () => _null3,
2497
- normalize: () => _normalize,
2498
- nonpositive: () => _nonpositive,
2499
- nonoptional: () => nonoptional,
2500
- nonnegative: () => _nonnegative,
2501
- never: () => never,
2502
- negative: () => _negative,
2503
- nativeEnum: () => nativeEnum,
2504
- nanoid: () => nanoid2,
2505
- nan: () => nan,
2506
- multipleOf: () => _multipleOf,
2507
- minSize: () => _minSize,
2508
- minLength: () => _minLength,
2509
- mime: () => _mime,
2510
- meta: () => meta2,
2511
- maxSize: () => _maxSize,
2512
- maxLength: () => _maxLength,
2513
- map: () => map,
2514
- mac: () => mac2,
2515
- lte: () => _lte,
2516
- lt: () => _lt,
2517
- lowercase: () => _lowercase,
2518
- looseRecord: () => looseRecord,
2519
- looseObject: () => looseObject,
2520
- locales: () => exports_locales,
2521
- literal: () => literal,
2522
- length: () => _length,
2523
- lazy: () => lazy,
2524
- ksuid: () => ksuid2,
2525
- keyof: () => keyof,
2526
- jwt: () => jwt,
2527
- json: () => json,
2528
- iso: () => exports_iso,
2529
- ipv6: () => ipv62,
2530
- ipv4: () => ipv42,
2531
- invertCodec: () => invertCodec,
2532
- intersection: () => intersection,
2533
- int64: () => int64,
2534
- int32: () => int32,
2535
- int: () => int,
2536
- instanceof: () => _instanceof,
2537
- includes: () => _includes,
2538
- httpUrl: () => httpUrl,
2539
- hostname: () => hostname2,
2540
- hex: () => hex2,
2541
- hash: () => hash,
2542
- guid: () => guid2,
2543
- gte: () => _gte,
2544
- gt: () => _gt,
2545
- globalRegistry: () => globalRegistry,
2546
- getErrorMap: () => getErrorMap,
2547
- function: () => _function,
2548
- fromJSONSchema: () => fromJSONSchema,
2549
- formatError: () => formatError,
2550
- float64: () => float64,
2551
- float32: () => float32,
2552
- flattenError: () => flattenError,
2553
- file: () => file,
2554
- exactOptional: () => exactOptional,
2555
- enum: () => _enum2,
2556
- endsWith: () => _endsWith,
2557
- encodeAsync: () => encodeAsync2,
2558
- encode: () => encode2,
2559
- emoji: () => emoji2,
2560
- email: () => email2,
2561
- e164: () => e1642,
2562
- discriminatedUnion: () => discriminatedUnion,
2563
- describe: () => describe2,
2564
- decodeAsync: () => decodeAsync2,
2565
- decode: () => decode2,
2566
- date: () => date3,
2567
- custom: () => custom,
2568
- cuid2: () => cuid22,
2569
- cuid: () => cuid3,
2570
- core: () => exports_core2,
2571
- config: () => config,
2572
- coerce: () => exports_coerce,
2573
- codec: () => codec,
2574
- clone: () => clone,
2575
- cidrv6: () => cidrv62,
2576
- cidrv4: () => cidrv42,
2577
- check: () => check2,
2578
- catch: () => _catch2,
2579
- boolean: () => boolean2,
2580
- bigint: () => bigint2,
2581
- base64url: () => base64url2,
2582
- base64: () => base642,
2583
- array: () => array,
2584
- any: () => any,
2585
- _function: () => _function,
2586
- _default: () => _default2,
2587
- _ZodString: () => _ZodString,
2588
- ZodXor: () => ZodXor,
2589
- ZodXID: () => ZodXID,
2590
- ZodVoid: () => ZodVoid,
2591
- ZodUnknown: () => ZodUnknown,
2592
- ZodUnion: () => ZodUnion,
2593
- ZodUndefined: () => ZodUndefined,
2594
- ZodUUID: () => ZodUUID,
2595
- ZodURL: () => ZodURL,
2596
- ZodULID: () => ZodULID,
2597
- ZodType: () => ZodType,
2598
- ZodTuple: () => ZodTuple,
2599
- ZodTransform: () => ZodTransform,
2600
- ZodTemplateLiteral: () => ZodTemplateLiteral,
2601
- ZodSymbol: () => ZodSymbol,
2602
- ZodSuccess: () => ZodSuccess,
2603
- ZodStringFormat: () => ZodStringFormat,
2604
- ZodString: () => ZodString,
2605
- ZodSet: () => ZodSet,
2606
- ZodRecord: () => ZodRecord,
2607
- ZodRealError: () => ZodRealError,
2608
- ZodReadonly: () => ZodReadonly,
2609
- ZodPromise: () => ZodPromise,
2610
- ZodPreprocess: () => ZodPreprocess,
2611
- ZodPrefault: () => ZodPrefault,
2612
- ZodPipe: () => ZodPipe,
2613
- ZodOptional: () => ZodOptional,
2614
- ZodObject: () => ZodObject,
2615
- ZodNumberFormat: () => ZodNumberFormat,
2616
- ZodNumber: () => ZodNumber,
2617
- ZodNullable: () => ZodNullable,
2618
- ZodNull: () => ZodNull,
2619
- ZodNonOptional: () => ZodNonOptional,
2620
- ZodNever: () => ZodNever,
2621
- ZodNanoID: () => ZodNanoID,
2622
- ZodNaN: () => ZodNaN,
2623
- ZodMap: () => ZodMap,
2624
- ZodMAC: () => ZodMAC,
2625
- ZodLiteral: () => ZodLiteral,
2626
- ZodLazy: () => ZodLazy,
2627
- ZodKSUID: () => ZodKSUID,
2628
- ZodJWT: () => ZodJWT,
2629
- ZodIssueCode: () => ZodIssueCode,
2630
- ZodIntersection: () => ZodIntersection,
2631
- ZodISOTime: () => ZodISOTime,
2632
- ZodISODuration: () => ZodISODuration,
2633
- ZodISODateTime: () => ZodISODateTime,
2634
- ZodISODate: () => ZodISODate,
2635
- ZodIPv6: () => ZodIPv6,
2636
- ZodIPv4: () => ZodIPv4,
2637
- ZodGUID: () => ZodGUID,
2638
- ZodFunction: () => ZodFunction,
2639
- ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,
2640
- ZodFile: () => ZodFile,
2641
- ZodExactOptional: () => ZodExactOptional,
2642
- ZodError: () => ZodError,
2643
- ZodEnum: () => ZodEnum,
2644
- ZodEmoji: () => ZodEmoji,
2645
- ZodEmail: () => ZodEmail,
2646
- ZodE164: () => ZodE164,
2647
- ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
2648
- ZodDefault: () => ZodDefault,
2649
- ZodDate: () => ZodDate,
2650
- ZodCustomStringFormat: () => ZodCustomStringFormat,
2651
- ZodCustom: () => ZodCustom,
2652
- ZodCodec: () => ZodCodec,
2653
- ZodCatch: () => ZodCatch,
2654
- ZodCUID2: () => ZodCUID2,
2655
- ZodCUID: () => ZodCUID,
2656
- ZodCIDRv6: () => ZodCIDRv6,
2657
- ZodCIDRv4: () => ZodCIDRv4,
2658
- ZodBoolean: () => ZodBoolean,
2659
- ZodBigIntFormat: () => ZodBigIntFormat,
2660
- ZodBigInt: () => ZodBigInt,
2661
- ZodBase64URL: () => ZodBase64URL,
2662
- ZodBase64: () => ZodBase64,
2663
- ZodArray: () => ZodArray,
2664
- ZodAny: () => ZodAny,
2665
- TimePrecision: () => TimePrecision,
2666
- NEVER: () => NEVER,
2667
- $output: () => $output,
2861
+ $brand: () => $brand,
2668
2862
  $input: () => $input,
2669
- $brand: () => $brand
2670
- });
2671
-
2672
- // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.js
2673
- var exports_core2 = {};
2674
- __export(exports_core2, {
2675
- version: () => version2,
2676
- util: () => exports_util,
2677
- treeifyError: () => treeifyError,
2678
- toJSONSchema: () => toJSONSchema,
2679
- toDotPath: () => toDotPath,
2680
- safeParseAsync: () => safeParseAsync,
2681
- safeParse: () => safeParse,
2682
- safeEncodeAsync: () => safeEncodeAsync,
2683
- safeEncode: () => safeEncode,
2684
- safeDecodeAsync: () => safeDecodeAsync,
2685
- safeDecode: () => safeDecode,
2686
- registry: () => registry,
2687
- regexes: () => exports_regexes,
2688
- process: () => process2,
2689
- prettifyError: () => prettifyError,
2690
- parseAsync: () => parseAsync,
2691
- parse: () => parse,
2692
- meta: () => meta,
2693
- locales: () => exports_locales,
2694
- isValidJWT: () => isValidJWT,
2695
- isValidBase64URL: () => isValidBase64URL,
2696
- isValidBase64: () => isValidBase64,
2697
- initializeContext: () => initializeContext,
2698
- globalRegistry: () => globalRegistry,
2699
- globalConfig: () => globalConfig,
2700
- formatError: () => formatError,
2701
- flattenError: () => flattenError,
2702
- finalize: () => finalize,
2703
- extractDefs: () => extractDefs,
2704
- encodeAsync: () => encodeAsync,
2705
- encode: () => encode,
2706
- describe: () => describe,
2707
- decodeAsync: () => decodeAsync,
2708
- decode: () => decode,
2709
- createToJSONSchemaMethod: () => createToJSONSchemaMethod,
2710
- createStandardJSONSchemaMethod: () => createStandardJSONSchemaMethod,
2711
- config: () => config,
2712
- clone: () => clone,
2713
- _xor: () => _xor,
2714
- _xid: () => _xid,
2715
- _void: () => _void,
2716
- _uuidv7: () => _uuidv7,
2717
- _uuidv6: () => _uuidv6,
2718
- _uuidv4: () => _uuidv4,
2719
- _uuid: () => _uuid,
2720
- _url: () => _url,
2721
- _uppercase: () => _uppercase,
2722
- _unknown: () => _unknown,
2723
- _union: () => _union,
2724
- _undefined: () => _undefined2,
2725
- _ulid: () => _ulid,
2726
- _uint64: () => _uint64,
2727
- _uint32: () => _uint32,
2728
- _tuple: () => _tuple,
2729
- _trim: () => _trim,
2730
- _transform: () => _transform,
2731
- _toUpperCase: () => _toUpperCase,
2732
- _toLowerCase: () => _toLowerCase,
2733
- _templateLiteral: () => _templateLiteral,
2734
- _symbol: () => _symbol,
2735
- _superRefine: () => _superRefine,
2736
- _success: () => _success,
2737
- _stringbool: () => _stringbool,
2738
- _stringFormat: () => _stringFormat,
2739
- _string: () => _string,
2740
- _startsWith: () => _startsWith,
2741
- _slugify: () => _slugify,
2742
- _size: () => _size,
2743
- _set: () => _set,
2744
- _safeParseAsync: () => _safeParseAsync,
2745
- _safeParse: () => _safeParse,
2746
- _safeEncodeAsync: () => _safeEncodeAsync,
2747
- _safeEncode: () => _safeEncode,
2748
- _safeDecodeAsync: () => _safeDecodeAsync,
2749
- _safeDecode: () => _safeDecode,
2750
- _regex: () => _regex,
2751
- _refine: () => _refine,
2752
- _record: () => _record,
2753
- _readonly: () => _readonly,
2754
- _property: () => _property,
2755
- _promise: () => _promise,
2756
- _positive: () => _positive,
2757
- _pipe: () => _pipe,
2758
- _parseAsync: () => _parseAsync,
2759
- _parse: () => _parse,
2760
- _overwrite: () => _overwrite,
2761
- _optional: () => _optional,
2762
- _number: () => _number,
2763
- _nullable: () => _nullable,
2764
- _null: () => _null2,
2765
- _normalize: () => _normalize,
2766
- _nonpositive: () => _nonpositive,
2767
- _nonoptional: () => _nonoptional,
2768
- _nonnegative: () => _nonnegative,
2769
- _never: () => _never,
2770
- _negative: () => _negative,
2771
- _nativeEnum: () => _nativeEnum,
2772
- _nanoid: () => _nanoid,
2773
- _nan: () => _nan,
2774
- _multipleOf: () => _multipleOf,
2775
- _minSize: () => _minSize,
2776
- _minLength: () => _minLength,
2777
- _min: () => _gte,
2778
- _mime: () => _mime,
2779
- _maxSize: () => _maxSize,
2780
- _maxLength: () => _maxLength,
2781
- _max: () => _lte,
2782
- _map: () => _map,
2783
- _mac: () => _mac,
2784
- _lte: () => _lte,
2785
- _lt: () => _lt,
2786
- _lowercase: () => _lowercase,
2787
- _literal: () => _literal,
2788
- _length: () => _length,
2789
- _lazy: () => _lazy,
2790
- _ksuid: () => _ksuid,
2791
- _jwt: () => _jwt,
2792
- _isoTime: () => _isoTime,
2793
- _isoDuration: () => _isoDuration,
2794
- _isoDateTime: () => _isoDateTime,
2795
- _isoDate: () => _isoDate,
2796
- _ipv6: () => _ipv6,
2797
- _ipv4: () => _ipv4,
2798
- _intersection: () => _intersection,
2799
- _int64: () => _int64,
2800
- _int32: () => _int32,
2801
- _int: () => _int,
2802
- _includes: () => _includes,
2803
- _guid: () => _guid,
2804
- _gte: () => _gte,
2805
- _gt: () => _gt,
2806
- _float64: () => _float64,
2807
- _float32: () => _float32,
2808
- _file: () => _file,
2809
- _enum: () => _enum,
2810
- _endsWith: () => _endsWith,
2811
- _encodeAsync: () => _encodeAsync,
2812
- _encode: () => _encode,
2813
- _emoji: () => _emoji2,
2814
- _email: () => _email,
2815
- _e164: () => _e164,
2816
- _discriminatedUnion: () => _discriminatedUnion,
2817
- _default: () => _default,
2818
- _decodeAsync: () => _decodeAsync,
2819
- _decode: () => _decode,
2820
- _date: () => _date,
2821
- _custom: () => _custom,
2822
- _cuid2: () => _cuid2,
2823
- _cuid: () => _cuid,
2824
- _coercedString: () => _coercedString,
2825
- _coercedNumber: () => _coercedNumber,
2826
- _coercedDate: () => _coercedDate,
2827
- _coercedBoolean: () => _coercedBoolean,
2828
- _coercedBigint: () => _coercedBigint,
2829
- _cidrv6: () => _cidrv6,
2830
- _cidrv4: () => _cidrv4,
2831
- _check: () => _check,
2832
- _catch: () => _catch,
2833
- _boolean: () => _boolean,
2834
- _bigint: () => _bigint,
2835
- _base64url: () => _base64url,
2836
- _base64: () => _base64,
2837
- _array: () => _array,
2838
- _any: () => _any,
2839
- TimePrecision: () => TimePrecision,
2840
- NEVER: () => NEVER,
2841
- JSONSchemaGenerator: () => JSONSchemaGenerator,
2842
- JSONSchema: () => exports_json_schema,
2843
- Doc: () => Doc,
2844
2863
  $output: () => $output,
2845
- $input: () => $input,
2846
- $constructor: () => $constructor,
2847
- $brand: () => $brand,
2848
- $ZodXor: () => $ZodXor,
2849
- $ZodXID: () => $ZodXID,
2850
- $ZodVoid: () => $ZodVoid,
2851
- $ZodUnknown: () => $ZodUnknown,
2852
- $ZodUnion: () => $ZodUnion,
2853
- $ZodUndefined: () => $ZodUndefined,
2854
- $ZodUUID: () => $ZodUUID,
2855
- $ZodURL: () => $ZodURL,
2856
- $ZodULID: () => $ZodULID,
2857
- $ZodType: () => $ZodType,
2858
- $ZodTuple: () => $ZodTuple,
2859
- $ZodTransform: () => $ZodTransform,
2860
- $ZodTemplateLiteral: () => $ZodTemplateLiteral,
2861
- $ZodSymbol: () => $ZodSymbol,
2862
- $ZodSuccess: () => $ZodSuccess,
2863
- $ZodStringFormat: () => $ZodStringFormat,
2864
- $ZodString: () => $ZodString,
2865
- $ZodSet: () => $ZodSet,
2866
- $ZodRegistry: () => $ZodRegistry,
2867
- $ZodRecord: () => $ZodRecord,
2868
- $ZodRealError: () => $ZodRealError,
2869
- $ZodReadonly: () => $ZodReadonly,
2870
- $ZodPromise: () => $ZodPromise,
2871
- $ZodPreprocess: () => $ZodPreprocess,
2872
- $ZodPrefault: () => $ZodPrefault,
2873
- $ZodPipe: () => $ZodPipe,
2874
- $ZodOptional: () => $ZodOptional,
2875
- $ZodObjectJIT: () => $ZodObjectJIT,
2876
- $ZodObject: () => $ZodObject,
2877
- $ZodNumberFormat: () => $ZodNumberFormat,
2878
- $ZodNumber: () => $ZodNumber,
2879
- $ZodNullable: () => $ZodNullable,
2880
- $ZodNull: () => $ZodNull,
2881
- $ZodNonOptional: () => $ZodNonOptional,
2882
- $ZodNever: () => $ZodNever,
2883
- $ZodNanoID: () => $ZodNanoID,
2884
- $ZodNaN: () => $ZodNaN,
2885
- $ZodMap: () => $ZodMap,
2886
- $ZodMAC: () => $ZodMAC,
2887
- $ZodLiteral: () => $ZodLiteral,
2888
- $ZodLazy: () => $ZodLazy,
2889
- $ZodKSUID: () => $ZodKSUID,
2890
- $ZodJWT: () => $ZodJWT,
2891
- $ZodIntersection: () => $ZodIntersection,
2892
- $ZodISOTime: () => $ZodISOTime,
2893
- $ZodISODuration: () => $ZodISODuration,
2894
- $ZodISODateTime: () => $ZodISODateTime,
2895
- $ZodISODate: () => $ZodISODate,
2896
- $ZodIPv6: () => $ZodIPv6,
2897
- $ZodIPv4: () => $ZodIPv4,
2898
- $ZodGUID: () => $ZodGUID,
2899
- $ZodFunction: () => $ZodFunction,
2900
- $ZodFile: () => $ZodFile,
2901
- $ZodExactOptional: () => $ZodExactOptional,
2902
- $ZodError: () => $ZodError,
2903
- $ZodEnum: () => $ZodEnum,
2904
- $ZodEncodeError: () => $ZodEncodeError,
2905
- $ZodEmoji: () => $ZodEmoji,
2906
- $ZodEmail: () => $ZodEmail,
2907
- $ZodE164: () => $ZodE164,
2908
- $ZodDiscriminatedUnion: () => $ZodDiscriminatedUnion,
2909
- $ZodDefault: () => $ZodDefault,
2910
- $ZodDate: () => $ZodDate,
2911
- $ZodCustomStringFormat: () => $ZodCustomStringFormat,
2912
- $ZodCustom: () => $ZodCustom,
2913
- $ZodCodec: () => $ZodCodec,
2914
- $ZodCheckUpperCase: () => $ZodCheckUpperCase,
2915
- $ZodCheckStringFormat: () => $ZodCheckStringFormat,
2916
- $ZodCheckStartsWith: () => $ZodCheckStartsWith,
2917
- $ZodCheckSizeEquals: () => $ZodCheckSizeEquals,
2918
- $ZodCheckRegex: () => $ZodCheckRegex,
2919
- $ZodCheckProperty: () => $ZodCheckProperty,
2920
- $ZodCheckOverwrite: () => $ZodCheckOverwrite,
2921
- $ZodCheckNumberFormat: () => $ZodCheckNumberFormat,
2922
- $ZodCheckMultipleOf: () => $ZodCheckMultipleOf,
2923
- $ZodCheckMinSize: () => $ZodCheckMinSize,
2924
- $ZodCheckMinLength: () => $ZodCheckMinLength,
2925
- $ZodCheckMimeType: () => $ZodCheckMimeType,
2926
- $ZodCheckMaxSize: () => $ZodCheckMaxSize,
2927
- $ZodCheckMaxLength: () => $ZodCheckMaxLength,
2928
- $ZodCheckLowerCase: () => $ZodCheckLowerCase,
2929
- $ZodCheckLessThan: () => $ZodCheckLessThan,
2930
- $ZodCheckLengthEquals: () => $ZodCheckLengthEquals,
2931
- $ZodCheckIncludes: () => $ZodCheckIncludes,
2932
- $ZodCheckGreaterThan: () => $ZodCheckGreaterThan,
2933
- $ZodCheckEndsWith: () => $ZodCheckEndsWith,
2934
- $ZodCheckBigIntFormat: () => $ZodCheckBigIntFormat,
2935
- $ZodCheck: () => $ZodCheck,
2936
- $ZodCatch: () => $ZodCatch,
2937
- $ZodCUID2: () => $ZodCUID2,
2938
- $ZodCUID: () => $ZodCUID,
2939
- $ZodCIDRv6: () => $ZodCIDRv6,
2940
- $ZodCIDRv4: () => $ZodCIDRv4,
2941
- $ZodBoolean: () => $ZodBoolean,
2942
- $ZodBigIntFormat: () => $ZodBigIntFormat,
2943
- $ZodBigInt: () => $ZodBigInt,
2944
- $ZodBase64URL: () => $ZodBase64URL,
2945
- $ZodBase64: () => $ZodBase64,
2946
- $ZodAsyncError: () => $ZodAsyncError,
2864
+ NEVER: () => NEVER,
2865
+ TimePrecision: () => TimePrecision,
2866
+ ZodAny: () => ZodAny,
2867
+ ZodArray: () => ZodArray,
2868
+ ZodBase64: () => ZodBase64,
2869
+ ZodBase64URL: () => ZodBase64URL,
2870
+ ZodBigInt: () => ZodBigInt,
2871
+ ZodBigIntFormat: () => ZodBigIntFormat,
2872
+ ZodBoolean: () => ZodBoolean,
2873
+ ZodCIDRv4: () => ZodCIDRv4,
2874
+ ZodCIDRv6: () => ZodCIDRv6,
2875
+ ZodCUID: () => ZodCUID,
2876
+ ZodCUID2: () => ZodCUID2,
2877
+ ZodCatch: () => ZodCatch,
2878
+ ZodCodec: () => ZodCodec,
2879
+ ZodCustom: () => ZodCustom,
2880
+ ZodCustomStringFormat: () => ZodCustomStringFormat,
2881
+ ZodDate: () => ZodDate,
2882
+ ZodDefault: () => ZodDefault,
2883
+ ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
2884
+ ZodE164: () => ZodE164,
2885
+ ZodEmail: () => ZodEmail,
2886
+ ZodEmoji: () => ZodEmoji,
2887
+ ZodEnum: () => ZodEnum,
2888
+ ZodError: () => ZodError,
2889
+ ZodExactOptional: () => ZodExactOptional,
2890
+ ZodFile: () => ZodFile,
2891
+ ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,
2892
+ ZodFunction: () => ZodFunction,
2893
+ ZodGUID: () => ZodGUID,
2894
+ ZodIPv4: () => ZodIPv4,
2895
+ ZodIPv6: () => ZodIPv6,
2896
+ ZodISODate: () => ZodISODate,
2897
+ ZodISODateTime: () => ZodISODateTime,
2898
+ ZodISODuration: () => ZodISODuration,
2899
+ ZodISOTime: () => ZodISOTime,
2900
+ ZodIntersection: () => ZodIntersection,
2901
+ ZodIssueCode: () => ZodIssueCode,
2902
+ ZodJWT: () => ZodJWT,
2903
+ ZodKSUID: () => ZodKSUID,
2904
+ ZodLazy: () => ZodLazy,
2905
+ ZodLiteral: () => ZodLiteral,
2906
+ ZodMAC: () => ZodMAC,
2907
+ ZodMap: () => ZodMap,
2908
+ ZodNaN: () => ZodNaN,
2909
+ ZodNanoID: () => ZodNanoID,
2910
+ ZodNever: () => ZodNever,
2911
+ ZodNonOptional: () => ZodNonOptional,
2912
+ ZodNull: () => ZodNull,
2913
+ ZodNullable: () => ZodNullable,
2914
+ ZodNumber: () => ZodNumber,
2915
+ ZodNumberFormat: () => ZodNumberFormat,
2916
+ ZodObject: () => ZodObject,
2917
+ ZodOptional: () => ZodOptional,
2918
+ ZodPipe: () => ZodPipe,
2919
+ ZodPrefault: () => ZodPrefault,
2920
+ ZodPreprocess: () => ZodPreprocess,
2921
+ ZodPromise: () => ZodPromise,
2922
+ ZodReadonly: () => ZodReadonly,
2923
+ ZodRealError: () => ZodRealError,
2924
+ ZodRecord: () => ZodRecord,
2925
+ ZodSet: () => ZodSet,
2926
+ ZodString: () => ZodString,
2927
+ ZodStringFormat: () => ZodStringFormat,
2928
+ ZodSuccess: () => ZodSuccess,
2929
+ ZodSymbol: () => ZodSymbol,
2930
+ ZodTemplateLiteral: () => ZodTemplateLiteral,
2931
+ ZodTransform: () => ZodTransform,
2932
+ ZodTuple: () => ZodTuple,
2933
+ ZodType: () => ZodType,
2934
+ ZodULID: () => ZodULID,
2935
+ ZodURL: () => ZodURL,
2936
+ ZodUUID: () => ZodUUID,
2937
+ ZodUndefined: () => ZodUndefined,
2938
+ ZodUnion: () => ZodUnion,
2939
+ ZodUnknown: () => ZodUnknown,
2940
+ ZodVoid: () => ZodVoid,
2941
+ ZodXID: () => ZodXID,
2942
+ ZodXor: () => ZodXor,
2943
+ _ZodString: () => _ZodString,
2944
+ _default: () => _default2,
2945
+ _function: () => _function,
2946
+ any: () => any,
2947
+ array: () => array,
2948
+ base64: () => base642,
2949
+ base64url: () => base64url2,
2950
+ bigint: () => bigint2,
2951
+ boolean: () => boolean2,
2952
+ catch: () => _catch2,
2953
+ check: () => check2,
2954
+ cidrv4: () => cidrv42,
2955
+ cidrv6: () => cidrv62,
2956
+ clone: () => clone,
2957
+ codec: () => codec,
2958
+ coerce: () => exports_coerce,
2959
+ config: () => config,
2960
+ core: () => exports_core2,
2961
+ cuid: () => cuid3,
2962
+ cuid2: () => cuid22,
2963
+ custom: () => custom,
2964
+ date: () => date3,
2965
+ decode: () => decode2,
2966
+ decodeAsync: () => decodeAsync2,
2967
+ describe: () => describe2,
2968
+ discriminatedUnion: () => discriminatedUnion,
2969
+ e164: () => e1642,
2970
+ email: () => email2,
2971
+ emoji: () => emoji2,
2972
+ encode: () => encode2,
2973
+ encodeAsync: () => encodeAsync2,
2974
+ endsWith: () => _endsWith,
2975
+ enum: () => _enum2,
2976
+ exactOptional: () => exactOptional,
2977
+ file: () => file,
2978
+ flattenError: () => flattenError,
2979
+ float32: () => float32,
2980
+ float64: () => float64,
2981
+ formatError: () => formatError,
2982
+ fromJSONSchema: () => fromJSONSchema,
2983
+ function: () => _function,
2984
+ getErrorMap: () => getErrorMap,
2985
+ globalRegistry: () => globalRegistry,
2986
+ gt: () => _gt,
2987
+ gte: () => _gte,
2988
+ guid: () => guid2,
2989
+ hash: () => hash,
2990
+ hex: () => hex2,
2991
+ hostname: () => hostname2,
2992
+ httpUrl: () => httpUrl,
2993
+ includes: () => _includes,
2994
+ instanceof: () => _instanceof,
2995
+ int: () => int,
2996
+ int32: () => int32,
2997
+ int64: () => int64,
2998
+ intersection: () => intersection,
2999
+ invertCodec: () => invertCodec,
3000
+ ipv4: () => ipv42,
3001
+ ipv6: () => ipv62,
3002
+ iso: () => exports_iso,
3003
+ json: () => json,
3004
+ jwt: () => jwt,
3005
+ keyof: () => keyof,
3006
+ ksuid: () => ksuid2,
3007
+ lazy: () => lazy,
3008
+ length: () => _length,
3009
+ literal: () => literal,
3010
+ locales: () => exports_locales,
3011
+ looseObject: () => looseObject,
3012
+ looseRecord: () => looseRecord,
3013
+ lowercase: () => _lowercase,
3014
+ lt: () => _lt,
3015
+ lte: () => _lte,
3016
+ mac: () => mac2,
3017
+ map: () => map,
3018
+ maxLength: () => _maxLength,
3019
+ maxSize: () => _maxSize,
3020
+ meta: () => meta2,
3021
+ mime: () => _mime,
3022
+ minLength: () => _minLength,
3023
+ minSize: () => _minSize,
3024
+ multipleOf: () => _multipleOf,
3025
+ nan: () => nan,
3026
+ nanoid: () => nanoid2,
3027
+ nativeEnum: () => nativeEnum,
3028
+ negative: () => _negative,
3029
+ never: () => never,
3030
+ nonnegative: () => _nonnegative,
3031
+ nonoptional: () => nonoptional,
3032
+ nonpositive: () => _nonpositive,
3033
+ normalize: () => _normalize,
3034
+ null: () => _null3,
3035
+ nullable: () => nullable,
3036
+ nullish: () => nullish2,
3037
+ number: () => number2,
3038
+ object: () => object,
3039
+ optional: () => optional,
3040
+ overwrite: () => _overwrite,
3041
+ parse: () => parse3,
3042
+ parseAsync: () => parseAsync2,
3043
+ partialRecord: () => partialRecord,
3044
+ pipe: () => pipe,
3045
+ positive: () => _positive,
3046
+ prefault: () => prefault,
3047
+ preprocess: () => preprocess,
3048
+ prettifyError: () => prettifyError,
3049
+ promise: () => promise,
3050
+ property: () => _property,
3051
+ readonly: () => readonly,
3052
+ record: () => record,
3053
+ refine: () => refine,
3054
+ regex: () => _regex,
3055
+ regexes: () => exports_regexes,
3056
+ registry: () => registry,
3057
+ safeDecode: () => safeDecode2,
3058
+ safeDecodeAsync: () => safeDecodeAsync2,
3059
+ safeEncode: () => safeEncode2,
3060
+ safeEncodeAsync: () => safeEncodeAsync2,
3061
+ safeParse: () => safeParse2,
3062
+ safeParseAsync: () => safeParseAsync2,
3063
+ set: () => set,
3064
+ setErrorMap: () => setErrorMap,
3065
+ size: () => _size,
3066
+ slugify: () => _slugify,
3067
+ startsWith: () => _startsWith,
3068
+ strictObject: () => strictObject,
3069
+ string: () => string2,
3070
+ stringFormat: () => stringFormat,
3071
+ stringbool: () => stringbool,
3072
+ success: () => success,
3073
+ superRefine: () => superRefine,
3074
+ symbol: () => symbol,
3075
+ templateLiteral: () => templateLiteral,
3076
+ toJSONSchema: () => toJSONSchema,
3077
+ toLowerCase: () => _toLowerCase,
3078
+ toUpperCase: () => _toUpperCase,
3079
+ transform: () => transform,
3080
+ treeifyError: () => treeifyError,
3081
+ trim: () => _trim,
3082
+ tuple: () => tuple,
3083
+ uint32: () => uint32,
3084
+ uint64: () => uint64,
3085
+ ulid: () => ulid2,
3086
+ undefined: () => _undefined3,
3087
+ union: () => union,
3088
+ unknown: () => unknown,
3089
+ uppercase: () => _uppercase,
3090
+ url: () => url,
3091
+ util: () => exports_util,
3092
+ uuid: () => uuid2,
3093
+ uuidv4: () => uuidv4,
3094
+ uuidv6: () => uuidv6,
3095
+ uuidv7: () => uuidv7,
3096
+ void: () => _void2,
3097
+ xid: () => xid2,
3098
+ xor: () => xor
3099
+ });
3100
+
3101
+ // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.js
3102
+ var exports_core2 = {};
3103
+ __export(exports_core2, {
3104
+ $ZodAny: () => $ZodAny,
2947
3105
  $ZodArray: () => $ZodArray,
2948
- $ZodAny: () => $ZodAny
3106
+ $ZodAsyncError: () => $ZodAsyncError,
3107
+ $ZodBase64: () => $ZodBase64,
3108
+ $ZodBase64URL: () => $ZodBase64URL,
3109
+ $ZodBigInt: () => $ZodBigInt,
3110
+ $ZodBigIntFormat: () => $ZodBigIntFormat,
3111
+ $ZodBoolean: () => $ZodBoolean,
3112
+ $ZodCIDRv4: () => $ZodCIDRv4,
3113
+ $ZodCIDRv6: () => $ZodCIDRv6,
3114
+ $ZodCUID: () => $ZodCUID,
3115
+ $ZodCUID2: () => $ZodCUID2,
3116
+ $ZodCatch: () => $ZodCatch,
3117
+ $ZodCheck: () => $ZodCheck,
3118
+ $ZodCheckBigIntFormat: () => $ZodCheckBigIntFormat,
3119
+ $ZodCheckEndsWith: () => $ZodCheckEndsWith,
3120
+ $ZodCheckGreaterThan: () => $ZodCheckGreaterThan,
3121
+ $ZodCheckIncludes: () => $ZodCheckIncludes,
3122
+ $ZodCheckLengthEquals: () => $ZodCheckLengthEquals,
3123
+ $ZodCheckLessThan: () => $ZodCheckLessThan,
3124
+ $ZodCheckLowerCase: () => $ZodCheckLowerCase,
3125
+ $ZodCheckMaxLength: () => $ZodCheckMaxLength,
3126
+ $ZodCheckMaxSize: () => $ZodCheckMaxSize,
3127
+ $ZodCheckMimeType: () => $ZodCheckMimeType,
3128
+ $ZodCheckMinLength: () => $ZodCheckMinLength,
3129
+ $ZodCheckMinSize: () => $ZodCheckMinSize,
3130
+ $ZodCheckMultipleOf: () => $ZodCheckMultipleOf,
3131
+ $ZodCheckNumberFormat: () => $ZodCheckNumberFormat,
3132
+ $ZodCheckOverwrite: () => $ZodCheckOverwrite,
3133
+ $ZodCheckProperty: () => $ZodCheckProperty,
3134
+ $ZodCheckRegex: () => $ZodCheckRegex,
3135
+ $ZodCheckSizeEquals: () => $ZodCheckSizeEquals,
3136
+ $ZodCheckStartsWith: () => $ZodCheckStartsWith,
3137
+ $ZodCheckStringFormat: () => $ZodCheckStringFormat,
3138
+ $ZodCheckUpperCase: () => $ZodCheckUpperCase,
3139
+ $ZodCodec: () => $ZodCodec,
3140
+ $ZodCustom: () => $ZodCustom,
3141
+ $ZodCustomStringFormat: () => $ZodCustomStringFormat,
3142
+ $ZodDate: () => $ZodDate,
3143
+ $ZodDefault: () => $ZodDefault,
3144
+ $ZodDiscriminatedUnion: () => $ZodDiscriminatedUnion,
3145
+ $ZodE164: () => $ZodE164,
3146
+ $ZodEmail: () => $ZodEmail,
3147
+ $ZodEmoji: () => $ZodEmoji,
3148
+ $ZodEncodeError: () => $ZodEncodeError,
3149
+ $ZodEnum: () => $ZodEnum,
3150
+ $ZodError: () => $ZodError,
3151
+ $ZodExactOptional: () => $ZodExactOptional,
3152
+ $ZodFile: () => $ZodFile,
3153
+ $ZodFunction: () => $ZodFunction,
3154
+ $ZodGUID: () => $ZodGUID,
3155
+ $ZodIPv4: () => $ZodIPv4,
3156
+ $ZodIPv6: () => $ZodIPv6,
3157
+ $ZodISODate: () => $ZodISODate,
3158
+ $ZodISODateTime: () => $ZodISODateTime,
3159
+ $ZodISODuration: () => $ZodISODuration,
3160
+ $ZodISOTime: () => $ZodISOTime,
3161
+ $ZodIntersection: () => $ZodIntersection,
3162
+ $ZodJWT: () => $ZodJWT,
3163
+ $ZodKSUID: () => $ZodKSUID,
3164
+ $ZodLazy: () => $ZodLazy,
3165
+ $ZodLiteral: () => $ZodLiteral,
3166
+ $ZodMAC: () => $ZodMAC,
3167
+ $ZodMap: () => $ZodMap,
3168
+ $ZodNaN: () => $ZodNaN,
3169
+ $ZodNanoID: () => $ZodNanoID,
3170
+ $ZodNever: () => $ZodNever,
3171
+ $ZodNonOptional: () => $ZodNonOptional,
3172
+ $ZodNull: () => $ZodNull,
3173
+ $ZodNullable: () => $ZodNullable,
3174
+ $ZodNumber: () => $ZodNumber,
3175
+ $ZodNumberFormat: () => $ZodNumberFormat,
3176
+ $ZodObject: () => $ZodObject,
3177
+ $ZodObjectJIT: () => $ZodObjectJIT,
3178
+ $ZodOptional: () => $ZodOptional,
3179
+ $ZodPipe: () => $ZodPipe,
3180
+ $ZodPrefault: () => $ZodPrefault,
3181
+ $ZodPreprocess: () => $ZodPreprocess,
3182
+ $ZodPromise: () => $ZodPromise,
3183
+ $ZodReadonly: () => $ZodReadonly,
3184
+ $ZodRealError: () => $ZodRealError,
3185
+ $ZodRecord: () => $ZodRecord,
3186
+ $ZodRegistry: () => $ZodRegistry,
3187
+ $ZodSet: () => $ZodSet,
3188
+ $ZodString: () => $ZodString,
3189
+ $ZodStringFormat: () => $ZodStringFormat,
3190
+ $ZodSuccess: () => $ZodSuccess,
3191
+ $ZodSymbol: () => $ZodSymbol,
3192
+ $ZodTemplateLiteral: () => $ZodTemplateLiteral,
3193
+ $ZodTransform: () => $ZodTransform,
3194
+ $ZodTuple: () => $ZodTuple,
3195
+ $ZodType: () => $ZodType,
3196
+ $ZodULID: () => $ZodULID,
3197
+ $ZodURL: () => $ZodURL,
3198
+ $ZodUUID: () => $ZodUUID,
3199
+ $ZodUndefined: () => $ZodUndefined,
3200
+ $ZodUnion: () => $ZodUnion,
3201
+ $ZodUnknown: () => $ZodUnknown,
3202
+ $ZodVoid: () => $ZodVoid,
3203
+ $ZodXID: () => $ZodXID,
3204
+ $ZodXor: () => $ZodXor,
3205
+ $brand: () => $brand,
3206
+ $constructor: () => $constructor,
3207
+ $input: () => $input,
3208
+ $output: () => $output,
3209
+ Doc: () => Doc,
3210
+ JSONSchema: () => exports_json_schema,
3211
+ JSONSchemaGenerator: () => JSONSchemaGenerator,
3212
+ NEVER: () => NEVER,
3213
+ TimePrecision: () => TimePrecision,
3214
+ _any: () => _any,
3215
+ _array: () => _array,
3216
+ _base64: () => _base64,
3217
+ _base64url: () => _base64url,
3218
+ _bigint: () => _bigint,
3219
+ _boolean: () => _boolean,
3220
+ _catch: () => _catch,
3221
+ _check: () => _check,
3222
+ _cidrv4: () => _cidrv4,
3223
+ _cidrv6: () => _cidrv6,
3224
+ _coercedBigint: () => _coercedBigint,
3225
+ _coercedBoolean: () => _coercedBoolean,
3226
+ _coercedDate: () => _coercedDate,
3227
+ _coercedNumber: () => _coercedNumber,
3228
+ _coercedString: () => _coercedString,
3229
+ _cuid: () => _cuid,
3230
+ _cuid2: () => _cuid2,
3231
+ _custom: () => _custom,
3232
+ _date: () => _date,
3233
+ _decode: () => _decode,
3234
+ _decodeAsync: () => _decodeAsync,
3235
+ _default: () => _default,
3236
+ _discriminatedUnion: () => _discriminatedUnion,
3237
+ _e164: () => _e164,
3238
+ _email: () => _email,
3239
+ _emoji: () => _emoji2,
3240
+ _encode: () => _encode,
3241
+ _encodeAsync: () => _encodeAsync,
3242
+ _endsWith: () => _endsWith,
3243
+ _enum: () => _enum,
3244
+ _file: () => _file,
3245
+ _float32: () => _float32,
3246
+ _float64: () => _float64,
3247
+ _gt: () => _gt,
3248
+ _gte: () => _gte,
3249
+ _guid: () => _guid,
3250
+ _includes: () => _includes,
3251
+ _int: () => _int,
3252
+ _int32: () => _int32,
3253
+ _int64: () => _int64,
3254
+ _intersection: () => _intersection,
3255
+ _ipv4: () => _ipv4,
3256
+ _ipv6: () => _ipv6,
3257
+ _isoDate: () => _isoDate,
3258
+ _isoDateTime: () => _isoDateTime,
3259
+ _isoDuration: () => _isoDuration,
3260
+ _isoTime: () => _isoTime,
3261
+ _jwt: () => _jwt,
3262
+ _ksuid: () => _ksuid,
3263
+ _lazy: () => _lazy,
3264
+ _length: () => _length,
3265
+ _literal: () => _literal,
3266
+ _lowercase: () => _lowercase,
3267
+ _lt: () => _lt,
3268
+ _lte: () => _lte,
3269
+ _mac: () => _mac,
3270
+ _map: () => _map,
3271
+ _max: () => _lte,
3272
+ _maxLength: () => _maxLength,
3273
+ _maxSize: () => _maxSize,
3274
+ _mime: () => _mime,
3275
+ _min: () => _gte,
3276
+ _minLength: () => _minLength,
3277
+ _minSize: () => _minSize,
3278
+ _multipleOf: () => _multipleOf,
3279
+ _nan: () => _nan,
3280
+ _nanoid: () => _nanoid,
3281
+ _nativeEnum: () => _nativeEnum,
3282
+ _negative: () => _negative,
3283
+ _never: () => _never,
3284
+ _nonnegative: () => _nonnegative,
3285
+ _nonoptional: () => _nonoptional,
3286
+ _nonpositive: () => _nonpositive,
3287
+ _normalize: () => _normalize,
3288
+ _null: () => _null2,
3289
+ _nullable: () => _nullable,
3290
+ _number: () => _number,
3291
+ _optional: () => _optional,
3292
+ _overwrite: () => _overwrite,
3293
+ _parse: () => _parse,
3294
+ _parseAsync: () => _parseAsync,
3295
+ _pipe: () => _pipe,
3296
+ _positive: () => _positive,
3297
+ _promise: () => _promise,
3298
+ _property: () => _property,
3299
+ _readonly: () => _readonly,
3300
+ _record: () => _record,
3301
+ _refine: () => _refine,
3302
+ _regex: () => _regex,
3303
+ _safeDecode: () => _safeDecode,
3304
+ _safeDecodeAsync: () => _safeDecodeAsync,
3305
+ _safeEncode: () => _safeEncode,
3306
+ _safeEncodeAsync: () => _safeEncodeAsync,
3307
+ _safeParse: () => _safeParse,
3308
+ _safeParseAsync: () => _safeParseAsync,
3309
+ _set: () => _set,
3310
+ _size: () => _size,
3311
+ _slugify: () => _slugify,
3312
+ _startsWith: () => _startsWith,
3313
+ _string: () => _string,
3314
+ _stringFormat: () => _stringFormat,
3315
+ _stringbool: () => _stringbool,
3316
+ _success: () => _success,
3317
+ _superRefine: () => _superRefine,
3318
+ _symbol: () => _symbol,
3319
+ _templateLiteral: () => _templateLiteral,
3320
+ _toLowerCase: () => _toLowerCase,
3321
+ _toUpperCase: () => _toUpperCase,
3322
+ _transform: () => _transform,
3323
+ _trim: () => _trim,
3324
+ _tuple: () => _tuple,
3325
+ _uint32: () => _uint32,
3326
+ _uint64: () => _uint64,
3327
+ _ulid: () => _ulid,
3328
+ _undefined: () => _undefined2,
3329
+ _union: () => _union,
3330
+ _unknown: () => _unknown,
3331
+ _uppercase: () => _uppercase,
3332
+ _url: () => _url,
3333
+ _uuid: () => _uuid,
3334
+ _uuidv4: () => _uuidv4,
3335
+ _uuidv6: () => _uuidv6,
3336
+ _uuidv7: () => _uuidv7,
3337
+ _void: () => _void,
3338
+ _xid: () => _xid,
3339
+ _xor: () => _xor,
3340
+ clone: () => clone,
3341
+ config: () => config,
3342
+ createStandardJSONSchemaMethod: () => createStandardJSONSchemaMethod,
3343
+ createToJSONSchemaMethod: () => createToJSONSchemaMethod,
3344
+ decode: () => decode,
3345
+ decodeAsync: () => decodeAsync,
3346
+ describe: () => describe,
3347
+ encode: () => encode,
3348
+ encodeAsync: () => encodeAsync,
3349
+ extractDefs: () => extractDefs,
3350
+ finalize: () => finalize,
3351
+ flattenError: () => flattenError,
3352
+ formatError: () => formatError,
3353
+ globalConfig: () => globalConfig,
3354
+ globalRegistry: () => globalRegistry,
3355
+ initializeContext: () => initializeContext,
3356
+ isValidBase64: () => isValidBase64,
3357
+ isValidBase64URL: () => isValidBase64URL,
3358
+ isValidJWT: () => isValidJWT,
3359
+ locales: () => exports_locales,
3360
+ meta: () => meta,
3361
+ parse: () => parse,
3362
+ parseAsync: () => parseAsync,
3363
+ prettifyError: () => prettifyError,
3364
+ process: () => process2,
3365
+ regexes: () => exports_regexes,
3366
+ registry: () => registry,
3367
+ safeDecode: () => safeDecode,
3368
+ safeDecodeAsync: () => safeDecodeAsync,
3369
+ safeEncode: () => safeEncode,
3370
+ safeEncodeAsync: () => safeEncodeAsync,
3371
+ safeParse: () => safeParse,
3372
+ safeParseAsync: () => safeParseAsync,
3373
+ toDotPath: () => toDotPath,
3374
+ toJSONSchema: () => toJSONSchema,
3375
+ treeifyError: () => treeifyError,
3376
+ util: () => exports_util,
3377
+ version: () => version2
2949
3378
  });
2950
3379
 
2951
3380
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
@@ -3009,89 +3438,89 @@ var $brand = Symbol("zod_brand");
3009
3438
 
3010
3439
  class $ZodAsyncError extends Error {
3011
3440
  constructor() {
3012
- super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
3013
- }
3014
- }
3015
-
3016
- class $ZodEncodeError extends Error {
3017
- constructor(name) {
3018
- super(`Encountered unidirectional transform during encode: ${name}`);
3019
- this.name = "ZodEncodeError";
3020
- }
3021
- }
3022
- (_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});
3023
- var globalConfig = globalThis.__zod_globalConfig;
3024
- function config(newConfig) {
3025
- if (newConfig)
3026
- Object.assign(globalConfig, newConfig);
3027
- return globalConfig;
3028
- }
3029
- // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js
3030
- var exports_util = {};
3031
- __export(exports_util, {
3032
- unwrapMessage: () => unwrapMessage,
3033
- uint8ArrayToHex: () => uint8ArrayToHex,
3034
- uint8ArrayToBase64url: () => uint8ArrayToBase64url,
3035
- uint8ArrayToBase64: () => uint8ArrayToBase64,
3036
- stringifyPrimitive: () => stringifyPrimitive,
3037
- slugify: () => slugify,
3038
- shallowClone: () => shallowClone,
3039
- safeExtend: () => safeExtend,
3040
- required: () => required,
3041
- randomString: () => randomString,
3042
- propertyKeyTypes: () => propertyKeyTypes,
3043
- promiseAllObject: () => promiseAllObject,
3044
- primitiveTypes: () => primitiveTypes,
3045
- prefixIssues: () => prefixIssues,
3046
- pick: () => pick,
3047
- partial: () => partial,
3048
- parsedType: () => parsedType,
3049
- optionalKeys: () => optionalKeys,
3050
- omit: () => omit,
3051
- objectClone: () => objectClone,
3052
- numKeys: () => numKeys,
3053
- nullish: () => nullish,
3054
- normalizeParams: () => normalizeParams,
3055
- mergeDefs: () => mergeDefs,
3056
- merge: () => merge,
3057
- jsonStringifyReplacer: () => jsonStringifyReplacer,
3058
- joinValues: () => joinValues,
3059
- issue: () => issue,
3060
- isPlainObject: () => isPlainObject,
3061
- isObject: () => isObject,
3062
- hexToUint8Array: () => hexToUint8Array,
3063
- getSizableOrigin: () => getSizableOrigin,
3064
- getParsedType: () => getParsedType,
3065
- getLengthableOrigin: () => getLengthableOrigin,
3066
- getEnumValues: () => getEnumValues,
3067
- getElementAtPath: () => getElementAtPath,
3068
- floatSafeRemainder: () => floatSafeRemainder,
3069
- finalizeIssue: () => finalizeIssue,
3070
- extend: () => extend,
3071
- explicitlyAborted: () => explicitlyAborted,
3072
- escapeRegex: () => escapeRegex,
3073
- esc: () => esc,
3074
- defineLazy: () => defineLazy,
3075
- createTransparentProxy: () => createTransparentProxy,
3076
- cloneDef: () => cloneDef,
3077
- clone: () => clone,
3078
- cleanRegex: () => cleanRegex,
3079
- cleanEnum: () => cleanEnum,
3080
- captureStackTrace: () => captureStackTrace,
3081
- cached: () => cached,
3082
- base64urlToUint8Array: () => base64urlToUint8Array,
3083
- base64ToUint8Array: () => base64ToUint8Array,
3084
- assignProp: () => assignProp,
3085
- assertNotEqual: () => assertNotEqual,
3086
- assertNever: () => assertNever,
3087
- assertIs: () => assertIs,
3088
- assertEqual: () => assertEqual,
3089
- assert: () => assert,
3090
- allowsEval: () => allowsEval,
3091
- aborted: () => aborted,
3092
- NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
3441
+ super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
3442
+ }
3443
+ }
3444
+
3445
+ class $ZodEncodeError extends Error {
3446
+ constructor(name) {
3447
+ super(`Encountered unidirectional transform during encode: ${name}`);
3448
+ this.name = "ZodEncodeError";
3449
+ }
3450
+ }
3451
+ (_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});
3452
+ var globalConfig = globalThis.__zod_globalConfig;
3453
+ function config(newConfig) {
3454
+ if (newConfig)
3455
+ Object.assign(globalConfig, newConfig);
3456
+ return globalConfig;
3457
+ }
3458
+ // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js
3459
+ var exports_util = {};
3460
+ __export(exports_util, {
3461
+ BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
3093
3462
  Class: () => Class,
3094
- BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES
3463
+ NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
3464
+ aborted: () => aborted,
3465
+ allowsEval: () => allowsEval,
3466
+ assert: () => assert,
3467
+ assertEqual: () => assertEqual,
3468
+ assertIs: () => assertIs,
3469
+ assertNever: () => assertNever,
3470
+ assertNotEqual: () => assertNotEqual,
3471
+ assignProp: () => assignProp,
3472
+ base64ToUint8Array: () => base64ToUint8Array,
3473
+ base64urlToUint8Array: () => base64urlToUint8Array,
3474
+ cached: () => cached,
3475
+ captureStackTrace: () => captureStackTrace,
3476
+ cleanEnum: () => cleanEnum,
3477
+ cleanRegex: () => cleanRegex,
3478
+ clone: () => clone,
3479
+ cloneDef: () => cloneDef,
3480
+ createTransparentProxy: () => createTransparentProxy,
3481
+ defineLazy: () => defineLazy,
3482
+ esc: () => esc,
3483
+ escapeRegex: () => escapeRegex,
3484
+ explicitlyAborted: () => explicitlyAborted,
3485
+ extend: () => extend,
3486
+ finalizeIssue: () => finalizeIssue,
3487
+ floatSafeRemainder: () => floatSafeRemainder,
3488
+ getElementAtPath: () => getElementAtPath,
3489
+ getEnumValues: () => getEnumValues,
3490
+ getLengthableOrigin: () => getLengthableOrigin,
3491
+ getParsedType: () => getParsedType,
3492
+ getSizableOrigin: () => getSizableOrigin,
3493
+ hexToUint8Array: () => hexToUint8Array,
3494
+ isObject: () => isObject,
3495
+ isPlainObject: () => isPlainObject,
3496
+ issue: () => issue,
3497
+ joinValues: () => joinValues,
3498
+ jsonStringifyReplacer: () => jsonStringifyReplacer,
3499
+ merge: () => merge,
3500
+ mergeDefs: () => mergeDefs,
3501
+ normalizeParams: () => normalizeParams,
3502
+ nullish: () => nullish,
3503
+ numKeys: () => numKeys,
3504
+ objectClone: () => objectClone,
3505
+ omit: () => omit,
3506
+ optionalKeys: () => optionalKeys,
3507
+ parsedType: () => parsedType,
3508
+ partial: () => partial,
3509
+ pick: () => pick,
3510
+ prefixIssues: () => prefixIssues,
3511
+ primitiveTypes: () => primitiveTypes,
3512
+ promiseAllObject: () => promiseAllObject,
3513
+ propertyKeyTypes: () => propertyKeyTypes,
3514
+ randomString: () => randomString,
3515
+ required: () => required,
3516
+ safeExtend: () => safeExtend,
3517
+ shallowClone: () => shallowClone,
3518
+ slugify: () => slugify,
3519
+ stringifyPrimitive: () => stringifyPrimitive,
3520
+ uint8ArrayToBase64: () => uint8ArrayToBase64,
3521
+ uint8ArrayToBase64url: () => uint8ArrayToBase64url,
3522
+ uint8ArrayToHex: () => uint8ArrayToHex,
3523
+ unwrapMessage: () => unwrapMessage
3095
3524
  });
3096
3525
  function assertEqual(val) {
3097
3526
  return val;
@@ -3948,65 +4377,65 @@ var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
3948
4377
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js
3949
4378
  var exports_regexes = {};
3950
4379
  __export(exports_regexes, {
3951
- xid: () => xid,
3952
- uuid7: () => uuid7,
3953
- uuid6: () => uuid6,
3954
- uuid4: () => uuid4,
3955
- uuid: () => uuid,
3956
- uppercase: () => uppercase,
3957
- unicodeEmail: () => unicodeEmail,
3958
- undefined: () => _undefined,
3959
- ulid: () => ulid,
3960
- time: () => time,
3961
- string: () => string,
3962
- sha512_hex: () => sha512_hex,
3963
- sha512_base64url: () => sha512_base64url,
3964
- sha512_base64: () => sha512_base64,
3965
- sha384_hex: () => sha384_hex,
3966
- sha384_base64url: () => sha384_base64url,
3967
- sha384_base64: () => sha384_base64,
3968
- sha256_hex: () => sha256_hex,
3969
- sha256_base64url: () => sha256_base64url,
3970
- sha256_base64: () => sha256_base64,
3971
- sha1_hex: () => sha1_hex,
3972
- sha1_base64url: () => sha1_base64url,
3973
- sha1_base64: () => sha1_base64,
3974
- rfc5322Email: () => rfc5322Email,
3975
- number: () => number,
3976
- null: () => _null,
3977
- nanoid: () => nanoid,
3978
- md5_hex: () => md5_hex,
3979
- md5_base64url: () => md5_base64url,
3980
- md5_base64: () => md5_base64,
3981
- mac: () => mac,
3982
- lowercase: () => lowercase,
3983
- ksuid: () => ksuid,
3984
- ipv6: () => ipv6,
3985
- ipv4: () => ipv4,
3986
- integer: () => integer2,
3987
- idnEmail: () => idnEmail,
3988
- httpProtocol: () => httpProtocol,
3989
- html5Email: () => html5Email,
3990
- hostname: () => hostname,
3991
- hex: () => hex,
3992
- guid: () => guid,
3993
- extendedDuration: () => extendedDuration,
3994
- emoji: () => emoji,
3995
- email: () => email,
3996
- e164: () => e164,
3997
- duration: () => duration,
3998
- domain: () => domain,
3999
- datetime: () => datetime,
4000
- date: () => date,
4001
- cuid2: () => cuid2,
4002
- cuid: () => cuid,
4003
- cidrv6: () => cidrv6,
4004
- cidrv4: () => cidrv4,
4005
- browserEmail: () => browserEmail,
4006
- boolean: () => boolean,
4007
- bigint: () => bigint,
4380
+ base64: () => base64,
4008
4381
  base64url: () => base64url,
4009
- base64: () => base64
4382
+ bigint: () => bigint,
4383
+ boolean: () => boolean,
4384
+ browserEmail: () => browserEmail,
4385
+ cidrv4: () => cidrv4,
4386
+ cidrv6: () => cidrv6,
4387
+ cuid: () => cuid,
4388
+ cuid2: () => cuid2,
4389
+ date: () => date,
4390
+ datetime: () => datetime,
4391
+ domain: () => domain,
4392
+ duration: () => duration,
4393
+ e164: () => e164,
4394
+ email: () => email,
4395
+ emoji: () => emoji,
4396
+ extendedDuration: () => extendedDuration,
4397
+ guid: () => guid,
4398
+ hex: () => hex,
4399
+ hostname: () => hostname,
4400
+ html5Email: () => html5Email,
4401
+ httpProtocol: () => httpProtocol,
4402
+ idnEmail: () => idnEmail,
4403
+ integer: () => integer2,
4404
+ ipv4: () => ipv4,
4405
+ ipv6: () => ipv6,
4406
+ ksuid: () => ksuid,
4407
+ lowercase: () => lowercase,
4408
+ mac: () => mac,
4409
+ md5_base64: () => md5_base64,
4410
+ md5_base64url: () => md5_base64url,
4411
+ md5_hex: () => md5_hex,
4412
+ nanoid: () => nanoid,
4413
+ null: () => _null,
4414
+ number: () => number,
4415
+ rfc5322Email: () => rfc5322Email,
4416
+ sha1_base64: () => sha1_base64,
4417
+ sha1_base64url: () => sha1_base64url,
4418
+ sha1_hex: () => sha1_hex,
4419
+ sha256_base64: () => sha256_base64,
4420
+ sha256_base64url: () => sha256_base64url,
4421
+ sha256_hex: () => sha256_hex,
4422
+ sha384_base64: () => sha384_base64,
4423
+ sha384_base64url: () => sha384_base64url,
4424
+ sha384_hex: () => sha384_hex,
4425
+ sha512_base64: () => sha512_base64,
4426
+ sha512_base64url: () => sha512_base64url,
4427
+ sha512_hex: () => sha512_hex,
4428
+ string: () => string,
4429
+ time: () => time,
4430
+ ulid: () => ulid,
4431
+ undefined: () => _undefined,
4432
+ unicodeEmail: () => unicodeEmail,
4433
+ uppercase: () => uppercase,
4434
+ uuid: () => uuid,
4435
+ uuid4: () => uuid4,
4436
+ uuid6: () => uuid6,
4437
+ uuid7: () => uuid7,
4438
+ xid: () => xid
4010
4439
  });
4011
4440
  var cuid = /^[cC][0-9a-z]{6,}$/;
4012
4441
  var cuid2 = /^[0-9a-z]+$/;
@@ -6783,58 +7212,58 @@ function handleRefineResult(result, payload, input, inst) {
6783
7212
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.js
6784
7213
  var exports_locales = {};
6785
7214
  __export(exports_locales, {
6786
- zhTW: () => zh_TW_default,
6787
- zhCN: () => zh_CN_default,
6788
- yo: () => yo_default,
6789
- vi: () => vi_default,
6790
- uz: () => uz_default,
6791
- ur: () => ur_default,
6792
- uk: () => uk_default,
6793
- ua: () => ua_default,
6794
- tr: () => tr_default,
6795
- th: () => th_default,
6796
- ta: () => ta_default,
6797
- sv: () => sv_default,
6798
- sl: () => sl_default,
6799
- ru: () => ru_default,
6800
- ro: () => ro_default,
6801
- pt: () => pt_default,
6802
- ps: () => ps_default,
6803
- pl: () => pl_default,
6804
- ota: () => ota_default,
6805
- no: () => no_default,
6806
- nl: () => nl_default,
6807
- ms: () => ms_default,
6808
- mk: () => mk_default,
6809
- lt: () => lt_default,
6810
- ko: () => ko_default,
6811
- km: () => km_default,
6812
- kh: () => kh_default,
6813
- ka: () => ka_default,
6814
- ja: () => ja_default,
6815
- it: () => it_default,
6816
- is: () => is_default,
6817
- id: () => id_default,
6818
- hy: () => hy_default,
6819
- hu: () => hu_default,
6820
- hr: () => hr_default,
6821
- he: () => he_default,
6822
- frCA: () => fr_CA_default,
6823
- fr: () => fr_default,
6824
- fi: () => fi_default,
6825
- fa: () => fa_default,
6826
- es: () => es_default,
6827
- eo: () => eo_default,
6828
- en: () => en_default,
6829
- el: () => el_default,
6830
- de: () => de_default,
6831
- da: () => da_default,
6832
- cs: () => cs_default,
6833
- ca: () => ca_default,
6834
- bg: () => bg_default,
6835
- be: () => be_default,
7215
+ ar: () => ar_default,
6836
7216
  az: () => az_default,
6837
- ar: () => ar_default
7217
+ be: () => be_default,
7218
+ bg: () => bg_default,
7219
+ ca: () => ca_default,
7220
+ cs: () => cs_default,
7221
+ da: () => da_default,
7222
+ de: () => de_default,
7223
+ el: () => el_default,
7224
+ en: () => en_default,
7225
+ eo: () => eo_default,
7226
+ es: () => es_default,
7227
+ fa: () => fa_default,
7228
+ fi: () => fi_default,
7229
+ fr: () => fr_default,
7230
+ frCA: () => fr_CA_default,
7231
+ he: () => he_default,
7232
+ hr: () => hr_default,
7233
+ hu: () => hu_default,
7234
+ hy: () => hy_default,
7235
+ id: () => id_default,
7236
+ is: () => is_default,
7237
+ it: () => it_default,
7238
+ ja: () => ja_default,
7239
+ ka: () => ka_default,
7240
+ kh: () => kh_default,
7241
+ km: () => km_default,
7242
+ ko: () => ko_default,
7243
+ lt: () => lt_default,
7244
+ mk: () => mk_default,
7245
+ ms: () => ms_default,
7246
+ nl: () => nl_default,
7247
+ no: () => no_default,
7248
+ ota: () => ota_default,
7249
+ pl: () => pl_default,
7250
+ ps: () => ps_default,
7251
+ pt: () => pt_default,
7252
+ ro: () => ro_default,
7253
+ ru: () => ru_default,
7254
+ sl: () => sl_default,
7255
+ sv: () => sv_default,
7256
+ ta: () => ta_default,
7257
+ th: () => th_default,
7258
+ tr: () => tr_default,
7259
+ ua: () => ua_default,
7260
+ uk: () => uk_default,
7261
+ ur: () => ur_default,
7262
+ uz: () => uz_default,
7263
+ vi: () => vi_default,
7264
+ yo: () => yo_default,
7265
+ zhCN: () => zh_CN_default,
7266
+ zhTW: () => zh_TW_default
6838
7267
  });
6839
7268
 
6840
7269
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.js
@@ -14605,219 +15034,219 @@ var exports_json_schema = {};
14605
15034
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js
14606
15035
  var exports_schemas2 = {};
14607
15036
  __export(exports_schemas2, {
14608
- xor: () => xor,
14609
- xid: () => xid2,
14610
- void: () => _void2,
14611
- uuidv7: () => uuidv7,
14612
- uuidv6: () => uuidv6,
14613
- uuidv4: () => uuidv4,
14614
- uuid: () => uuid2,
14615
- url: () => url,
14616
- unknown: () => unknown,
14617
- union: () => union,
14618
- undefined: () => _undefined3,
14619
- ulid: () => ulid2,
14620
- uint64: () => uint64,
14621
- uint32: () => uint32,
14622
- tuple: () => tuple,
14623
- transform: () => transform,
14624
- templateLiteral: () => templateLiteral,
14625
- symbol: () => symbol,
14626
- superRefine: () => superRefine,
14627
- success: () => success,
14628
- stringbool: () => stringbool,
14629
- stringFormat: () => stringFormat,
14630
- string: () => string2,
14631
- strictObject: () => strictObject,
14632
- set: () => set,
14633
- refine: () => refine,
14634
- record: () => record,
14635
- readonly: () => readonly,
14636
- promise: () => promise,
14637
- preprocess: () => preprocess,
14638
- prefault: () => prefault,
14639
- pipe: () => pipe,
14640
- partialRecord: () => partialRecord,
14641
- optional: () => optional,
14642
- object: () => object,
14643
- number: () => number2,
14644
- nullish: () => nullish2,
14645
- nullable: () => nullable,
14646
- null: () => _null3,
14647
- nonoptional: () => nonoptional,
14648
- never: () => never,
14649
- nativeEnum: () => nativeEnum,
14650
- nanoid: () => nanoid2,
14651
- nan: () => nan,
14652
- meta: () => meta2,
14653
- map: () => map,
14654
- mac: () => mac2,
14655
- looseRecord: () => looseRecord,
14656
- looseObject: () => looseObject,
14657
- literal: () => literal,
14658
- lazy: () => lazy,
14659
- ksuid: () => ksuid2,
14660
- keyof: () => keyof,
14661
- jwt: () => jwt,
14662
- json: () => json,
14663
- ipv6: () => ipv62,
14664
- ipv4: () => ipv42,
14665
- invertCodec: () => invertCodec,
14666
- intersection: () => intersection,
14667
- int64: () => int64,
14668
- int32: () => int32,
14669
- int: () => int,
14670
- instanceof: () => _instanceof,
14671
- httpUrl: () => httpUrl,
14672
- hostname: () => hostname2,
14673
- hex: () => hex2,
14674
- hash: () => hash,
14675
- guid: () => guid2,
14676
- function: () => _function,
14677
- float64: () => float64,
14678
- float32: () => float32,
14679
- file: () => file,
14680
- exactOptional: () => exactOptional,
14681
- enum: () => _enum2,
14682
- emoji: () => emoji2,
14683
- email: () => email2,
14684
- e164: () => e1642,
14685
- discriminatedUnion: () => discriminatedUnion,
14686
- describe: () => describe2,
14687
- date: () => date3,
14688
- custom: () => custom,
14689
- cuid2: () => cuid22,
14690
- cuid: () => cuid3,
14691
- codec: () => codec,
14692
- cidrv6: () => cidrv62,
14693
- cidrv4: () => cidrv42,
14694
- check: () => check2,
14695
- catch: () => _catch2,
14696
- boolean: () => boolean2,
14697
- bigint: () => bigint2,
14698
- base64url: () => base64url2,
14699
- base64: () => base642,
14700
- array: () => array,
14701
- any: () => any,
14702
- _function: () => _function,
14703
- _default: () => _default2,
14704
- _ZodString: () => _ZodString,
14705
- ZodXor: () => ZodXor,
14706
- ZodXID: () => ZodXID,
14707
- ZodVoid: () => ZodVoid,
14708
- ZodUnknown: () => ZodUnknown,
14709
- ZodUnion: () => ZodUnion,
14710
- ZodUndefined: () => ZodUndefined,
14711
- ZodUUID: () => ZodUUID,
14712
- ZodURL: () => ZodURL,
14713
- ZodULID: () => ZodULID,
14714
- ZodType: () => ZodType,
14715
- ZodTuple: () => ZodTuple,
14716
- ZodTransform: () => ZodTransform,
14717
- ZodTemplateLiteral: () => ZodTemplateLiteral,
14718
- ZodSymbol: () => ZodSymbol,
14719
- ZodSuccess: () => ZodSuccess,
14720
- ZodStringFormat: () => ZodStringFormat,
14721
- ZodString: () => ZodString,
14722
- ZodSet: () => ZodSet,
14723
- ZodRecord: () => ZodRecord,
14724
- ZodReadonly: () => ZodReadonly,
14725
- ZodPromise: () => ZodPromise,
14726
- ZodPreprocess: () => ZodPreprocess,
14727
- ZodPrefault: () => ZodPrefault,
14728
- ZodPipe: () => ZodPipe,
14729
- ZodOptional: () => ZodOptional,
14730
- ZodObject: () => ZodObject,
14731
- ZodNumberFormat: () => ZodNumberFormat,
14732
- ZodNumber: () => ZodNumber,
14733
- ZodNullable: () => ZodNullable,
14734
- ZodNull: () => ZodNull,
14735
- ZodNonOptional: () => ZodNonOptional,
14736
- ZodNever: () => ZodNever,
14737
- ZodNanoID: () => ZodNanoID,
14738
- ZodNaN: () => ZodNaN,
14739
- ZodMap: () => ZodMap,
14740
- ZodMAC: () => ZodMAC,
14741
- ZodLiteral: () => ZodLiteral,
14742
- ZodLazy: () => ZodLazy,
14743
- ZodKSUID: () => ZodKSUID,
14744
- ZodJWT: () => ZodJWT,
14745
- ZodIntersection: () => ZodIntersection,
14746
- ZodIPv6: () => ZodIPv6,
14747
- ZodIPv4: () => ZodIPv4,
14748
- ZodGUID: () => ZodGUID,
14749
- ZodFunction: () => ZodFunction,
14750
- ZodFile: () => ZodFile,
14751
- ZodExactOptional: () => ZodExactOptional,
14752
- ZodEnum: () => ZodEnum,
14753
- ZodEmoji: () => ZodEmoji,
14754
- ZodEmail: () => ZodEmail,
14755
- ZodE164: () => ZodE164,
14756
- ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
14757
- ZodDefault: () => ZodDefault,
14758
- ZodDate: () => ZodDate,
14759
- ZodCustomStringFormat: () => ZodCustomStringFormat,
14760
- ZodCustom: () => ZodCustom,
14761
- ZodCodec: () => ZodCodec,
14762
- ZodCatch: () => ZodCatch,
14763
- ZodCUID2: () => ZodCUID2,
14764
- ZodCUID: () => ZodCUID,
14765
- ZodCIDRv6: () => ZodCIDRv6,
14766
- ZodCIDRv4: () => ZodCIDRv4,
14767
- ZodBoolean: () => ZodBoolean,
14768
- ZodBigIntFormat: () => ZodBigIntFormat,
14769
- ZodBigInt: () => ZodBigInt,
14770
- ZodBase64URL: () => ZodBase64URL,
14771
- ZodBase64: () => ZodBase64,
15037
+ ZodAny: () => ZodAny,
14772
15038
  ZodArray: () => ZodArray,
14773
- ZodAny: () => ZodAny
15039
+ ZodBase64: () => ZodBase64,
15040
+ ZodBase64URL: () => ZodBase64URL,
15041
+ ZodBigInt: () => ZodBigInt,
15042
+ ZodBigIntFormat: () => ZodBigIntFormat,
15043
+ ZodBoolean: () => ZodBoolean,
15044
+ ZodCIDRv4: () => ZodCIDRv4,
15045
+ ZodCIDRv6: () => ZodCIDRv6,
15046
+ ZodCUID: () => ZodCUID,
15047
+ ZodCUID2: () => ZodCUID2,
15048
+ ZodCatch: () => ZodCatch,
15049
+ ZodCodec: () => ZodCodec,
15050
+ ZodCustom: () => ZodCustom,
15051
+ ZodCustomStringFormat: () => ZodCustomStringFormat,
15052
+ ZodDate: () => ZodDate,
15053
+ ZodDefault: () => ZodDefault,
15054
+ ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
15055
+ ZodE164: () => ZodE164,
15056
+ ZodEmail: () => ZodEmail,
15057
+ ZodEmoji: () => ZodEmoji,
15058
+ ZodEnum: () => ZodEnum,
15059
+ ZodExactOptional: () => ZodExactOptional,
15060
+ ZodFile: () => ZodFile,
15061
+ ZodFunction: () => ZodFunction,
15062
+ ZodGUID: () => ZodGUID,
15063
+ ZodIPv4: () => ZodIPv4,
15064
+ ZodIPv6: () => ZodIPv6,
15065
+ ZodIntersection: () => ZodIntersection,
15066
+ ZodJWT: () => ZodJWT,
15067
+ ZodKSUID: () => ZodKSUID,
15068
+ ZodLazy: () => ZodLazy,
15069
+ ZodLiteral: () => ZodLiteral,
15070
+ ZodMAC: () => ZodMAC,
15071
+ ZodMap: () => ZodMap,
15072
+ ZodNaN: () => ZodNaN,
15073
+ ZodNanoID: () => ZodNanoID,
15074
+ ZodNever: () => ZodNever,
15075
+ ZodNonOptional: () => ZodNonOptional,
15076
+ ZodNull: () => ZodNull,
15077
+ ZodNullable: () => ZodNullable,
15078
+ ZodNumber: () => ZodNumber,
15079
+ ZodNumberFormat: () => ZodNumberFormat,
15080
+ ZodObject: () => ZodObject,
15081
+ ZodOptional: () => ZodOptional,
15082
+ ZodPipe: () => ZodPipe,
15083
+ ZodPrefault: () => ZodPrefault,
15084
+ ZodPreprocess: () => ZodPreprocess,
15085
+ ZodPromise: () => ZodPromise,
15086
+ ZodReadonly: () => ZodReadonly,
15087
+ ZodRecord: () => ZodRecord,
15088
+ ZodSet: () => ZodSet,
15089
+ ZodString: () => ZodString,
15090
+ ZodStringFormat: () => ZodStringFormat,
15091
+ ZodSuccess: () => ZodSuccess,
15092
+ ZodSymbol: () => ZodSymbol,
15093
+ ZodTemplateLiteral: () => ZodTemplateLiteral,
15094
+ ZodTransform: () => ZodTransform,
15095
+ ZodTuple: () => ZodTuple,
15096
+ ZodType: () => ZodType,
15097
+ ZodULID: () => ZodULID,
15098
+ ZodURL: () => ZodURL,
15099
+ ZodUUID: () => ZodUUID,
15100
+ ZodUndefined: () => ZodUndefined,
15101
+ ZodUnion: () => ZodUnion,
15102
+ ZodUnknown: () => ZodUnknown,
15103
+ ZodVoid: () => ZodVoid,
15104
+ ZodXID: () => ZodXID,
15105
+ ZodXor: () => ZodXor,
15106
+ _ZodString: () => _ZodString,
15107
+ _default: () => _default2,
15108
+ _function: () => _function,
15109
+ any: () => any,
15110
+ array: () => array,
15111
+ base64: () => base642,
15112
+ base64url: () => base64url2,
15113
+ bigint: () => bigint2,
15114
+ boolean: () => boolean2,
15115
+ catch: () => _catch2,
15116
+ check: () => check2,
15117
+ cidrv4: () => cidrv42,
15118
+ cidrv6: () => cidrv62,
15119
+ codec: () => codec,
15120
+ cuid: () => cuid3,
15121
+ cuid2: () => cuid22,
15122
+ custom: () => custom,
15123
+ date: () => date3,
15124
+ describe: () => describe2,
15125
+ discriminatedUnion: () => discriminatedUnion,
15126
+ e164: () => e1642,
15127
+ email: () => email2,
15128
+ emoji: () => emoji2,
15129
+ enum: () => _enum2,
15130
+ exactOptional: () => exactOptional,
15131
+ file: () => file,
15132
+ float32: () => float32,
15133
+ float64: () => float64,
15134
+ function: () => _function,
15135
+ guid: () => guid2,
15136
+ hash: () => hash,
15137
+ hex: () => hex2,
15138
+ hostname: () => hostname2,
15139
+ httpUrl: () => httpUrl,
15140
+ instanceof: () => _instanceof,
15141
+ int: () => int,
15142
+ int32: () => int32,
15143
+ int64: () => int64,
15144
+ intersection: () => intersection,
15145
+ invertCodec: () => invertCodec,
15146
+ ipv4: () => ipv42,
15147
+ ipv6: () => ipv62,
15148
+ json: () => json,
15149
+ jwt: () => jwt,
15150
+ keyof: () => keyof,
15151
+ ksuid: () => ksuid2,
15152
+ lazy: () => lazy,
15153
+ literal: () => literal,
15154
+ looseObject: () => looseObject,
15155
+ looseRecord: () => looseRecord,
15156
+ mac: () => mac2,
15157
+ map: () => map,
15158
+ meta: () => meta2,
15159
+ nan: () => nan,
15160
+ nanoid: () => nanoid2,
15161
+ nativeEnum: () => nativeEnum,
15162
+ never: () => never,
15163
+ nonoptional: () => nonoptional,
15164
+ null: () => _null3,
15165
+ nullable: () => nullable,
15166
+ nullish: () => nullish2,
15167
+ number: () => number2,
15168
+ object: () => object,
15169
+ optional: () => optional,
15170
+ partialRecord: () => partialRecord,
15171
+ pipe: () => pipe,
15172
+ prefault: () => prefault,
15173
+ preprocess: () => preprocess,
15174
+ promise: () => promise,
15175
+ readonly: () => readonly,
15176
+ record: () => record,
15177
+ refine: () => refine,
15178
+ set: () => set,
15179
+ strictObject: () => strictObject,
15180
+ string: () => string2,
15181
+ stringFormat: () => stringFormat,
15182
+ stringbool: () => stringbool,
15183
+ success: () => success,
15184
+ superRefine: () => superRefine,
15185
+ symbol: () => symbol,
15186
+ templateLiteral: () => templateLiteral,
15187
+ transform: () => transform,
15188
+ tuple: () => tuple,
15189
+ uint32: () => uint32,
15190
+ uint64: () => uint64,
15191
+ ulid: () => ulid2,
15192
+ undefined: () => _undefined3,
15193
+ union: () => union,
15194
+ unknown: () => unknown,
15195
+ url: () => url,
15196
+ uuid: () => uuid2,
15197
+ uuidv4: () => uuidv4,
15198
+ uuidv6: () => uuidv6,
15199
+ uuidv7: () => uuidv7,
15200
+ void: () => _void2,
15201
+ xid: () => xid2,
15202
+ xor: () => xor
14774
15203
  });
14775
15204
 
14776
15205
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.js
14777
15206
  var exports_checks2 = {};
14778
15207
  __export(exports_checks2, {
14779
- uppercase: () => _uppercase,
14780
- trim: () => _trim,
14781
- toUpperCase: () => _toUpperCase,
14782
- toLowerCase: () => _toLowerCase,
14783
- startsWith: () => _startsWith,
14784
- slugify: () => _slugify,
14785
- size: () => _size,
14786
- regex: () => _regex,
14787
- property: () => _property,
14788
- positive: () => _positive,
14789
- overwrite: () => _overwrite,
14790
- normalize: () => _normalize,
14791
- nonpositive: () => _nonpositive,
14792
- nonnegative: () => _nonnegative,
14793
- negative: () => _negative,
14794
- multipleOf: () => _multipleOf,
14795
- minSize: () => _minSize,
14796
- minLength: () => _minLength,
14797
- mime: () => _mime,
14798
- maxSize: () => _maxSize,
14799
- maxLength: () => _maxLength,
14800
- lte: () => _lte,
14801
- lt: () => _lt,
14802
- lowercase: () => _lowercase,
14803
- length: () => _length,
14804
- includes: () => _includes,
14805
- gte: () => _gte,
15208
+ endsWith: () => _endsWith,
14806
15209
  gt: () => _gt,
14807
- endsWith: () => _endsWith
15210
+ gte: () => _gte,
15211
+ includes: () => _includes,
15212
+ length: () => _length,
15213
+ lowercase: () => _lowercase,
15214
+ lt: () => _lt,
15215
+ lte: () => _lte,
15216
+ maxLength: () => _maxLength,
15217
+ maxSize: () => _maxSize,
15218
+ mime: () => _mime,
15219
+ minLength: () => _minLength,
15220
+ minSize: () => _minSize,
15221
+ multipleOf: () => _multipleOf,
15222
+ negative: () => _negative,
15223
+ nonnegative: () => _nonnegative,
15224
+ nonpositive: () => _nonpositive,
15225
+ normalize: () => _normalize,
15226
+ overwrite: () => _overwrite,
15227
+ positive: () => _positive,
15228
+ property: () => _property,
15229
+ regex: () => _regex,
15230
+ size: () => _size,
15231
+ slugify: () => _slugify,
15232
+ startsWith: () => _startsWith,
15233
+ toLowerCase: () => _toLowerCase,
15234
+ toUpperCase: () => _toUpperCase,
15235
+ trim: () => _trim,
15236
+ uppercase: () => _uppercase
14808
15237
  });
14809
15238
 
14810
15239
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js
14811
15240
  var exports_iso = {};
14812
15241
  __export(exports_iso, {
14813
- time: () => time2,
14814
- duration: () => duration2,
14815
- datetime: () => datetime2,
14816
- date: () => date2,
14817
- ZodISOTime: () => ZodISOTime,
14818
- ZodISODuration: () => ZodISODuration,
15242
+ ZodISODate: () => ZodISODate,
14819
15243
  ZodISODateTime: () => ZodISODateTime,
14820
- ZodISODate: () => ZodISODate
15244
+ ZodISODuration: () => ZodISODuration,
15245
+ ZodISOTime: () => ZodISOTime,
15246
+ date: () => date2,
15247
+ datetime: () => datetime2,
15248
+ duration: () => duration2,
15249
+ time: () => time2
14821
15250
  });
14822
15251
  var ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => {
14823
15252
  $ZodISODateTime.init(inst, def);
@@ -16678,11 +17107,11 @@ function fromJSONSchema(schema, params) {
16678
17107
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.js
16679
17108
  var exports_coerce = {};
16680
17109
  __export(exports_coerce, {
16681
- string: () => string3,
16682
- number: () => number3,
16683
- date: () => date4,
17110
+ bigint: () => bigint3,
16684
17111
  boolean: () => boolean3,
16685
- bigint: () => bigint3
17112
+ date: () => date4,
17113
+ number: () => number3,
17114
+ string: () => string3
16686
17115
  });
16687
17116
  function string3(params) {
16688
17117
  return _coercedString(ZodString, params);
@@ -17257,6 +17686,44 @@ var MCP_OUTPUT_SCHEMAS = {
17257
17686
  deployment: exports_external.looseObject({ id: exports_external.string(), sourceRevision: exports_external.string().nullable(), deployedAt: timestamp }).nullable()
17258
17687
  }),
17259
17688
  recall: exports_external.object({ result: exports_external.array(recallHit) }),
17689
+ feedback_tree: exports_external.looseObject({
17690
+ scope: exports_external.literal("global"),
17691
+ forum: exports_external.looseObject({ title: exports_external.string(), purpose: nullableString }),
17692
+ topics: exports_external.array(jsonObject),
17693
+ privacy: exports_external.string()
17694
+ }),
17695
+ feedback_recall: exports_external.looseObject({
17696
+ query: exports_external.string(),
17697
+ topicId: nullableString,
17698
+ hits: exports_external.array(jsonObject),
17699
+ privacy: exports_external.string()
17700
+ }),
17701
+ feedback_thread_get: exports_external.looseObject({
17702
+ requestedThreadId: id,
17703
+ canonicalThreadId: id,
17704
+ thread: jsonObject,
17705
+ topic: jsonObject,
17706
+ contributions: exports_external.array(jsonObject),
17707
+ mergedFrom: exports_external.array(jsonObject),
17708
+ redirects: exports_external.array(jsonObject),
17709
+ privacy: exports_external.string()
17710
+ }),
17711
+ contribute_arbor_feedback: exports_external.looseObject({
17712
+ feedbackId: id,
17713
+ type: exports_external.string(),
17714
+ status: exports_external.string(),
17715
+ private: exports_external.literal(true),
17716
+ replayed: exports_external.boolean(),
17717
+ association: jsonObject.nullable(),
17718
+ message: exports_external.string()
17719
+ }),
17720
+ admin_feedback_capability: jsonObject,
17721
+ admin_feedback_evidence: jsonObject,
17722
+ admin_feedback_topic: jsonObject,
17723
+ admin_feedback_thread: jsonObject,
17724
+ admin_feedback_publish: jsonObject,
17725
+ admin_feedback_edit: jsonObject,
17726
+ admin_feedback_curate: jsonObject,
17260
17727
  contribute: exports_external.looseObject({
17261
17728
  contributionId: id,
17262
17729
  replayed: exports_external.boolean(),
@@ -17814,6 +18281,12 @@ var MCP_OUTPUT_SCHEMAS = {
17814
18281
  buildProvenance: jsonObject,
17815
18282
  sourceProvenance: appBundleSourceProvenance.nullable(),
17816
18283
  warnings: exports_external.array(exports_external.string()),
18284
+ protectedIngress: exports_external.array(exports_external.object({
18285
+ path: exports_external.string(),
18286
+ protocol: exports_external.literal("mcp"),
18287
+ auth: exports_external.literal("arbor-oauth"),
18288
+ principal: exports_external.literal("none")
18289
+ })).optional(),
17817
18290
  replayed: exports_external.boolean()
17818
18291
  }),
17819
18292
  computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject }),
@@ -18099,6 +18572,17 @@ var destructiveOpenWorld = {
18099
18572
  var MCP_TOOL_ANNOTATIONS = {
18100
18573
  server_info: readOnly,
18101
18574
  recall: readOnly,
18575
+ feedback_tree: readOnly,
18576
+ feedback_recall: readOnly,
18577
+ feedback_thread_get: readOnly,
18578
+ contribute_arbor_feedback: additive,
18579
+ admin_feedback_capability: destructiveIdempotent,
18580
+ admin_feedback_evidence: destructive,
18581
+ admin_feedback_topic: destructive,
18582
+ admin_feedback_thread: destructive,
18583
+ admin_feedback_publish: additive,
18584
+ admin_feedback_edit: destructive,
18585
+ admin_feedback_curate: destructive,
18102
18586
  contribute: additive,
18103
18587
  edit: additive,
18104
18588
  stamp: additive,
@@ -18210,6 +18694,8 @@ var CONTRIBUTION_ADD_LINK_RELS = [
18210
18694
  ];
18211
18695
  var ORIENTATION = `Arbor is your team's deliberation room and shared memory — people and agents settle typed work here, and Arbor remembers what's decided. To work well:
18212
18696
 
18697
+ Meaningful friction with Arbor itself can be privately contributed through \`contribute_arbor_feedback\`; the raw body is never posted into the current Thread or the shared Arbor Feedback forum. Browse the curated shared forum with \`feedback_tree\` → \`feedback_recall\` → \`feedback_thread_get\`.
18698
+
18213
18699
  1. RECALL FIRST — but Arbor is MEMORY, NOT TRUTH. Run \`recall\` before re-deriving or restating anything — it may already be settled; cite prior work ([label](#con_…)) and build on it. Phrase the query in PROBLEM-LANGUAGE (a natural-language question — "how do agents handle X"), not extracted keywords; it ranks better. Empty recall is itself worth noting. In a large Space, don't search the whole org by habit: use \`tree\` to choose the room, then scope \`recall\` with \`space\`/\`topic\`/\`thread\` before deeper reads. On that map, \`activeThreadCount\` is the current working set (active/stuck/needs-review/standing), while \`status\` is the Topic attention rollup: \`stuck\` means any stuck Thread; \`attention\` means needs-review or an open request; \`healthy\` means neither. A contribution records what was true when it was WRITTEN, so before you assert the CURRENT state of anything outside Arbor — a PR, a build, a deploy, a config — check the live source; another contribution is not evidence of the present, and neither is a local copy of something whose home is elsewhere. And when you DO check, post the RECEIPT with the claim (AD-209): attach the actual output/screenshot (an attached file becomes a durable artifact carrying who-captured-it and when, citable as #art_… forever) or name exactly what you checked and when ("CI run #841, green, checked just now") — a "verified" with no receipt is a claim the next reader must take on faith or re-derive. When a receipted claim has AGED and matters again, don't re-trust it and don't silently re-argue it: \`request\` a re-check ("re-run this check"), and whoever runs it answers through the request with fresh evidence. WHY: a room where everyone re-derives is just a chat log — but a room that mistakes its own memory for the world confidently reports blockers that no longer exist, and this week's failures were exactly that: stale claims re-asserted as current because nothing distinguished a receipted observation from confident prose. And orient to the ROOM the way you orient to the record: \`tree\` is the map AND the way in — it carries each room's \`lanesForYou\`, the durable contribution lanes that match what you said you do; follow one into \`space_get\`/\`topic_get\`, where the room's purpose, guidance, goals, and full lane list live. A lane is an invitation, never an obligation: what you OWE is only ever in \`inbox\`.
18214
18700
  2. CONTRIBUTE typed points — but ADD ONLY WHAT'S ADDITIVE (AD-205). Ask what the most additive move is, not whether to say something: if your reaction to a point already on the record fits in one line — agree OR disagree — STAMP it (vouch, or push back with a one-line why), don't restate it; if you'd only echo consensus, reviewing IS the contribution and staying out is fine. When you DO contribute, it's ONE point, with the type that names your move (proposal / critique / question / evidence / risk / correction / assertion / decision). Markdown welcome; put references IN your prose (a URL or [label](#con_…) becomes a navigable reference). Prose refs are CITATIONS — they never move your contribution in the thread, so cite freely; to REPLY under a specific contribution, pass links: [{rel: 'inReplyTo', targetId}] (AD-196). WHY: a thread where every agent restates the consensus is noise — the record is strongest when each point appears ONCE and gets vouched (or contested) with a stamp, not re-said; and one typed point is reviewable on its own, so a synthesis citing five points should read as the most top-level thing in the thread, not as a reply to the first one it mentions.
18215
18701
  3. ANSWER through requests. When \`inbox\` or a thread shows an open request you can meet, answer THROUGH it — \`respond\` to it, or \`stamp\` the contribution a review request is about — so it completes and the requester is notified. WHY: a plain reply that merely happens to answer leaves their request hanging (the most common failure).
@@ -18331,6 +18817,173 @@ var ACTION_DEFINITIONS = [
18331
18817
  toolset: "loop",
18332
18818
  run: forward("knowledge.recall")
18333
18819
  },
18820
+ {
18821
+ name: "feedback_tree",
18822
+ title: "Browse the shared Arbor Feedback forum",
18823
+ description: "READ ONLY: Browse the global curated Arbor Feedback forum by Topic and optional Thread roster; the global scope is implied and no Space id is required. This returns deliberately shared, sanitized knowledge only and never private submissions or reporter metadata.",
18824
+ inputSchema: {
18825
+ depth: exports_external.enum(["topics", "threads"]).optional().describe("topics (default) or threads to include each Topic's shared Thread roster"),
18826
+ includeArchived: exports_external.boolean().optional().describe("include archived Topics/Threads for historical moderation or lookup (default false)")
18827
+ },
18828
+ surfaces: ["mcp", "cli"],
18829
+ toolset: "feedback",
18830
+ run: forward("feedback.tree")
18831
+ },
18832
+ {
18833
+ name: "feedback_recall",
18834
+ title: "Find known Arbor feedback",
18835
+ description: "READ ONLY: Search the global shared Arbor Feedback forum for sanitized issues, workarounds, and decisions; scope to a Topic after feedback_tree when useful. Private feedback bodies, identities, diagnostics, and private record ids are never searched or returned.",
18836
+ inputSchema: {
18837
+ query: exports_external.string().min(1).describe("the Arbor friction, issue, workaround, or idea to find"),
18838
+ topicId: exports_external.string().optional().describe("optional shared Feedback Topic id from feedback_tree"),
18839
+ topK: exports_external.number().int().min(1).max(50).optional().describe("results to return (default 10)")
18840
+ },
18841
+ surfaces: ["mcp", "cli"],
18842
+ toolset: "feedback",
18843
+ run: forward("feedback.recall")
18844
+ },
18845
+ {
18846
+ name: "feedback_thread_get",
18847
+ title: "Read a shared Arbor Feedback thread",
18848
+ description: "READ ONLY: Read one curated shared Arbor Feedback Thread, following a merge redirect to its canonical destination while preserving shared provenance. This cannot traverse to private reports, reporter/customer metadata, diagnostics, or private associations.",
18849
+ inputSchema: {
18850
+ threadId: exports_external.string().describe("the shared Feedback Thread id, thr_…")
18851
+ },
18852
+ surfaces: ["mcp", "cli"],
18853
+ toolset: "feedback",
18854
+ run: forward("feedback.thread_get")
18855
+ },
18856
+ {
18857
+ name: "contribute_arbor_feedback",
18858
+ title: "Privately contribute feedback about Arbor",
18859
+ description: "Privately contribute feedback about using Arbor, including friction, evidence, critiques, questions, risks, or improvement proposals. The submitted body is not posted into the current Thread or shared Arbor Feedback forum; optional Topic/Thread ids only associate the private evidence with sanitized shared knowledge.",
18860
+ inputSchema: {
18861
+ type: exports_external.enum(ARBOR_FEEDBACK_TYPES).optional().describe("the contribution move (default comment); decision is reserved for shared forum curation"),
18862
+ body: exports_external.string().min(1).describe("the private feedback body"),
18863
+ summary: exports_external.string().max(500).optional().describe("optional private gist, at most 500 characters"),
18864
+ confidence: exports_external.number().int().min(0).max(100).optional().describe("optional 0–100 confidence"),
18865
+ idempotencyKey: exports_external.string().min(1).max(200).optional().describe("stable key for this ONE private submission; safe retries return the same receipt"),
18866
+ threadId: exports_external.string().optional().describe("optional shared Feedback Thread this private evidence relates to; not a write destination"),
18867
+ topicId: exports_external.string().optional().describe("optional shared Feedback Topic this private evidence relates to; not a write destination"),
18868
+ computerSessionId: exports_external.string().optional().describe("optional Arbor Computer session you own; only its id is attached, never shell output or files")
18869
+ },
18870
+ surfaces: ["mcp", "cli"],
18871
+ toolset: "feedback",
18872
+ run: forward("feedback.contribute")
18873
+ },
18874
+ {
18875
+ name: "admin_feedback_capability",
18876
+ title: "Manage Arbor Feedback capabilities",
18877
+ description: "Privileged: list or set explicit shared-moderation and private-review grants. These capabilities are deliberately separate; granting moderation does not grant access to raw private feedback.",
18878
+ inputSchema: {
18879
+ verb: exports_external.enum(["list", "set"]).describe("list grants, or set one profile capability"),
18880
+ profileId: exports_external.string().optional().describe("set: the profile receiving or losing the grant"),
18881
+ capability: exports_external.enum(ARBOR_FEEDBACK_CAPABILITIES).optional().describe("set: moderate shared forum or review_private raw evidence"),
18882
+ enabled: exports_external.boolean().optional().describe("set: true to grant; false to revoke")
18883
+ },
18884
+ surfaces: ["mcp", "cli"],
18885
+ toolset: "admin",
18886
+ run: dispatch({ list: "feedback_admin.grants", set: "feedback_admin.grant" })
18887
+ },
18888
+ {
18889
+ name: "admin_feedback_evidence",
18890
+ title: "Review private Arbor feedback evidence",
18891
+ description: "Privileged private-review surface: list/get private reports, associate or disassociate them with shared Topics/Threads, and mark review state. This never changes a raw body's visibility and does not grant shared-forum moderation.",
18892
+ inputSchema: {
18893
+ verb: exports_external.enum(["list", "get", "associate", "disassociate", "status"]).describe("the private-evidence review action"),
18894
+ feedbackId: exports_external.string().optional().describe("get/associate/disassociate/status: private feedback id"),
18895
+ associationId: exports_external.string().optional().describe("disassociate: association id to remove"),
18896
+ topicId: exports_external.string().optional().describe("associate: shared Feedback Topic id"),
18897
+ threadId: exports_external.string().optional().describe("associate: shared Feedback Thread id"),
18898
+ status: exports_external.enum(ARBOR_FEEDBACK_STATUSES).optional().describe("list filter or status: new, reviewed, linked, or resolved"),
18899
+ limit: exports_external.number().int().min(1).max(100).optional().describe("list: rows to return (default 50)")
18900
+ },
18901
+ surfaces: ["mcp", "cli"],
18902
+ toolset: "admin",
18903
+ run: dispatch({
18904
+ list: "feedback_admin.list",
18905
+ get: "feedback_admin.get",
18906
+ associate: "feedback_admin.link",
18907
+ disassociate: "feedback_admin.unlink",
18908
+ status: "feedback_admin.status"
18909
+ })
18910
+ },
18911
+ {
18912
+ name: "admin_feedback_topic",
18913
+ title: "Maintain shared Feedback Topics",
18914
+ description: "Privileged shared-forum moderation: create, update, archive, or restore one global Feedback Topic without database intervention. This capability does not expose private evidence.",
18915
+ inputSchema: {
18916
+ action: exports_external.enum(["create", "update", "archive", "restore"]),
18917
+ topicId: exports_external.string().optional().describe("update/archive/restore: shared Feedback Topic id"),
18918
+ title: exports_external.string().min(1).optional().describe("create/update: Topic title"),
18919
+ purpose: exports_external.string().optional().describe("create/update: Topic purpose")
18920
+ },
18921
+ surfaces: ["mcp", "cli"],
18922
+ toolset: "admin",
18923
+ run: forward("feedback_admin.topic")
18924
+ },
18925
+ {
18926
+ name: "admin_feedback_thread",
18927
+ title: "Maintain and merge shared Feedback Threads",
18928
+ description: "Privileged shared-forum moderation: create/update/move/transition/archive/restore Threads or merge a duplicate into a canonical destination with redirect and provenance. Merge safely repoints private associations but never copies raw evidence into shared content.",
18929
+ inputSchema: {
18930
+ action: exports_external.enum(["create", "update", "move", "transition", "archive", "restore", "merge"]).describe("the Thread lifecycle or merge action"),
18931
+ threadId: exports_external.string().optional().describe("update/move/transition/archive/restore: Thread id"),
18932
+ sourceThreadId: exports_external.string().optional().describe("merge: duplicate source Thread id"),
18933
+ targetThreadId: exports_external.string().optional().describe("merge: canonical destination Thread id"),
18934
+ topicId: exports_external.string().optional().describe("create/move/update: destination Feedback Topic id"),
18935
+ title: exports_external.string().min(1).optional().describe("create/update: Thread title"),
18936
+ objective: exports_external.string().min(1).optional().describe("create/update: Thread objective"),
18937
+ status: exports_external.enum(["active", "needs-review", "stuck", "standing", "resolved", "archived"]).optional().describe("transition/update: target Thread status"),
18938
+ reason: exports_external.string().optional().describe("merge: concise auditable rationale")
18939
+ },
18940
+ surfaces: ["mcp", "cli"],
18941
+ toolset: "admin",
18942
+ run: forward("feedback_admin.thread")
18943
+ },
18944
+ {
18945
+ name: "admin_feedback_publish",
18946
+ title: "Publish sanitized shared Feedback content",
18947
+ description: "Privileged: author a new sanitized shared contribution in a Feedback Thread, optionally recording that private evidence informed it. The body must be separately authored; Arbor refuses an exact raw-body copy and never flips private visibility.",
18948
+ inputSchema: {
18949
+ threadId: exports_external.string().describe("shared Feedback Thread id or merged source redirect"),
18950
+ type: exports_external.enum(CONTRIBUTION_TYPES).describe("shared contribution type, including maintainer decision"),
18951
+ body: exports_external.string().min(1).describe("deliberately sanitized shared body"),
18952
+ summary: exports_external.string().max(500).optional().describe("optional shared gist"),
18953
+ confidence: exports_external.number().int().min(0).max(100).optional(),
18954
+ idempotencyKey: exports_external.string().min(1).max(200).optional(),
18955
+ feedbackId: exports_external.string().optional().describe("optional private evidence id; additionally requires review_private")
18956
+ },
18957
+ surfaces: ["mcp", "cli"],
18958
+ toolset: "admin",
18959
+ run: forward("feedback_admin.publish")
18960
+ },
18961
+ {
18962
+ name: "admin_feedback_edit",
18963
+ title: "Edit sanitized shared Feedback content",
18964
+ description: "Privileged shared-forum moderation: correct a shared Feedback contribution's body, summary, or type while preserving normal Arbor audit history. This cannot target private feedback records.",
18965
+ inputSchema: {
18966
+ contributionId: exports_external.string().describe("shared Feedback contribution id"),
18967
+ body: exports_external.string().min(1).optional().describe("replacement sanitized body"),
18968
+ summary: exports_external.string().max(500).nullable().optional().describe("replacement gist; null/empty clears"),
18969
+ type: exports_external.enum(CONTRIBUTION_TYPES).optional().describe("replacement shared contribution type")
18970
+ },
18971
+ surfaces: ["mcp", "cli"],
18972
+ toolset: "admin",
18973
+ run: forward("feedback_admin.edit")
18974
+ },
18975
+ {
18976
+ name: "admin_feedback_curate",
18977
+ title: "Curate shared Feedback content",
18978
+ description: "Privileged shared-forum moderation: soft-delete or restore a sanitized shared contribution. This capability remains independent of private-feedback review access.",
18979
+ inputSchema: {
18980
+ verb: exports_external.enum(["delete", "restore"]),
18981
+ contributionId: exports_external.string().describe("shared Feedback contribution id")
18982
+ },
18983
+ surfaces: ["mcp", "cli"],
18984
+ toolset: "admin",
18985
+ run: dispatch({ delete: "feedback_admin.remove", restore: "feedback_admin.restore" })
18986
+ },
18334
18987
  {
18335
18988
  name: "contribute",
18336
18989
  title: "Contribute to a thread",
@@ -18861,6 +19514,21 @@ var ACTION_DEFINITIONS = [
18861
19514
  stateCompatibleFrom: exports_external.number().int().min(0).optional().describe("oldest durable schema this code can open"),
18862
19515
  stateCompatibleThrough: exports_external.number().int().min(0).optional().describe("newest durable schema this code can open"),
18863
19516
  runtimeConfigRequirements: exports_external.array(exports_external.object({ name: exports_external.string().min(1).max(64), kind: exports_external.enum(["var", "secret"]) })).optional().describe("required runtime config keys and kinds; values are never part of the AppBundle"),
19517
+ protectedIngress: exports_external.array(exports_external.object({
19518
+ path: exports_external.string().min(1).max(240),
19519
+ protocol: exports_external.literal("mcp"),
19520
+ auth: exports_external.literal("arbor-oauth"),
19521
+ principal: exports_external.literal("none")
19522
+ })).max(1).superRefine((routes, ctx) => {
19523
+ try {
19524
+ normalizeProtectedIngress(routes);
19525
+ } catch (error51) {
19526
+ ctx.addIssue({
19527
+ code: "custom",
19528
+ message: error51 instanceof AppBundleValidationError ? error51.message : "protected ingress declaration is invalid"
19529
+ });
19530
+ }
19531
+ }).optional().describe("externally routable protected App paths; v1 supports one MCP route using Arbor OAuth and injects no caller principal into App code"),
18864
19532
  idempotencyKey: exports_external.string().min(1).max(200).describe("stable key for this one logical bundle publication")
18865
19533
  },
18866
19534
  surfaces: ["computer-mcp", "computer-cli"],
@@ -20827,13 +21495,27 @@ function buildInput(inputSchema, flags, command) {
20827
21495
  }
20828
21496
 
20829
21497
  // src/commands.ts
21498
+ var COMMAND_WORD_OVERRIDES = {
21499
+ contribute_arbor_feedback: "feedback",
21500
+ feedback_recall: "feedback find",
21501
+ feedback_thread_get: "feedback thread"
21502
+ };
20830
21503
  function commandWords(action) {
20831
- return action.name.replace(/_/g, " ");
21504
+ return COMMAND_WORD_OVERRIDES[action.name] ?? action.name.replace(/_/g, " ");
20832
21505
  }
20833
21506
  var CLI_ACTIONS = ACTIONS.filter((a) => a.surfaces.includes("cli") || a.surfaces.includes("computer-cli"));
20834
21507
  var BY_COMMAND = new Map(CLI_ACTIONS.map((a) => [commandWords(a), a]));
20835
21508
  var MAX_WORDS = Math.max(1, ...CLI_ACTIONS.map((a) => commandWords(a).split(" ").length));
20836
21509
  var POSITIONAL_FIELDS = {
21510
+ contribute_arbor_feedback: ["body"],
21511
+ feedback_recall: ["query"],
21512
+ feedback_thread_get: ["threadId"],
21513
+ admin_feedback_capability: ["verb"],
21514
+ admin_feedback_evidence: ["verb"],
21515
+ admin_feedback_topic: ["action"],
21516
+ admin_feedback_thread: ["action"],
21517
+ admin_feedback_edit: ["contributionId"],
21518
+ admin_feedback_curate: ["verb", "contributionId"],
20837
21519
  app_fetch: ["appId", "path"],
20838
21520
  app_request: ["appId", "path"],
20839
21521
  computer_run_start: ["computerSessionId", "mode"],
@@ -21001,8 +21683,26 @@ function applyPositionals(action, extras, flags) {
21001
21683
  flags[target.flag] = value;
21002
21684
  }
21003
21685
  }
21686
+ function resolveCommand(positionals, flags) {
21687
+ const normalized = positionals.map((word) => word.replace(/_/g, " "));
21688
+ const feedbackInputFlags = new Set([
21689
+ "type",
21690
+ "body",
21691
+ "body-file",
21692
+ "summary",
21693
+ "summary-file",
21694
+ "confidence",
21695
+ "idempotency-key",
21696
+ "thread-id",
21697
+ "topic-id",
21698
+ "computer-session-id"
21699
+ ]);
21700
+ const explicitFeedbackInput = Object.keys(flags).some((flag) => feedbackInputFlags.has(flag));
21701
+ const bareFeedbackTree = normalized.length === 1 && normalized[0] === "feedback" && !explicitFeedbackInput;
21702
+ return bareFeedbackTree ? { action: CLI_ACTIONS.find((action) => action.name === "feedback_tree"), words: 1 } : matchCommand(positionals);
21703
+ }
21004
21704
  async function runObjectVerb(positionals, flags, ctx) {
21005
- const match = matchCommand(positionals);
21705
+ const match = resolveCommand(positionals, flags);
21006
21706
  if (!match) {
21007
21707
  const typed = positionals.join(" ") || "(none)";
21008
21708
  throw new UsageError(`unknown command: ${typed} — ${suggestCommand(positionals)}`);