@opencxh/domain 1.209.0 → 1.210.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const or = 10, ar = 10, sr = 10, cr = 5, xe = /* @__PURE__ */ new Set([
1
+ const fr = 10, mr = 10, gr = 10, hr = 5, xe = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function w(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function lr(e, t = () => {
17
+ function yr(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -69,7 +69,7 @@ function lr(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const De = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Le = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
72
+ const Le = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, De = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
73
  function Pe(e) {
74
74
  if (typeof e != "string" || !e) return "";
75
75
  let t = e;
@@ -77,7 +77,7 @@ function Pe(e) {
77
77
  `).map(
78
78
  (n) => n.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
79
79
  ).join(`
80
- `), t = t.replace(De, "$2"), t = t.replace(Le, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
80
+ `), t = t.replace(Le, "$2"), t = t.replace(De, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
81
81
  }
82
82
  function Ue(e) {
83
83
  return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
@@ -455,46 +455,46 @@ function K(e) {
455
455
  function d(e) {
456
456
  return m[e];
457
457
  }
458
- function ur(e) {
458
+ function Ar(e) {
459
459
  return d(e)?.icon ?? "circle";
460
460
  }
461
- function dr(e) {
461
+ function br(e) {
462
462
  return d(e)?.channelKind;
463
463
  }
464
464
  function pe(e) {
465
465
  return e === "message" || e === "note";
466
466
  }
467
- function pr(e) {
467
+ function Er(e) {
468
468
  return pe(d(e)?.shape);
469
469
  }
470
- function fr(e) {
470
+ function Sr(e) {
471
471
  return d(e)?.replyable === !0;
472
472
  }
473
- function mr(e) {
473
+ function _r(e) {
474
474
  return d(e)?.carriesText === !0;
475
475
  }
476
476
  function Ke(e) {
477
477
  return d(e)?.countsAs;
478
478
  }
479
- function gr(e) {
479
+ function Tr(e) {
480
480
  return d(e)?.playbookAuthored === !0;
481
481
  }
482
- function hr(e) {
482
+ function Ir(e) {
483
483
  return d(e)?.connected === !0;
484
484
  }
485
- function yr(e) {
485
+ function wr(e) {
486
486
  const t = d(e);
487
487
  return t?.shape === "artifact" && t?.carriesText === !0;
488
488
  }
489
- function Ge(e) {
489
+ function je(e) {
490
490
  const t = d(e.type)?.snippet;
491
491
  return t ? t(e) : "";
492
492
  }
493
- function Ar(e, t) {
493
+ function Mr(e, t) {
494
494
  const n = d(e.type)?.timeline;
495
495
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
496
496
  }
497
- function br(e) {
497
+ function kr(e) {
498
498
  const t = d(e.type)?.joinUrl;
499
499
  return t ? t(e) : void 0;
500
500
  }
@@ -517,24 +517,24 @@ function $(e, t, n) {
517
517
  const i = n(e.key, r);
518
518
  return i === e.key ? null : i;
519
519
  }
520
- function je(e, t) {
520
+ function Ge(e, t) {
521
521
  if (!e || typeof e == "string" || "value" in e) return null;
522
522
  const n = {};
523
523
  for (const [r, i] of Object.entries(e.params ?? {}))
524
524
  n[r] = R(t, i);
525
525
  return { key: e.key, params: n };
526
526
  }
527
- const G = 140;
527
+ const j = 140;
528
528
  function Be(e) {
529
529
  const t = e.trim();
530
- return t.length <= G ? t : `${t.slice(0, G - 1).trimEnd()}…`;
530
+ return t.length <= j ? t : `${t.slice(0, j - 1).trimEnd()}…`;
531
531
  }
532
- function Er(e, t) {
533
- const n = je(t?.text, e), r = t ? $(t.text, e, (i) => i) : null;
532
+ function Cr(e, t) {
533
+ const n = Ge(t?.text, e), r = t ? $(t.text, e, (i) => i) : null;
534
534
  return {
535
535
  activityId: e.id,
536
536
  type: e.type,
537
- snippet: Be(r ?? Ge(e)),
537
+ snippet: Be(r ?? je(e)),
538
538
  authorName: e.author?.name ?? "",
539
539
  direction: e.direction,
540
540
  createdAt: e.createdAt ?? Date.now(),
@@ -542,7 +542,7 @@ function Er(e, t) {
542
542
  };
543
543
  }
544
544
  const He = (e) => e;
545
- function j(e) {
545
+ function G(e) {
546
546
  const t = m[e];
547
547
  return {
548
548
  type: e,
@@ -581,13 +581,13 @@ class Fe {
581
581
  }
582
582
  declared = /* @__PURE__ */ new Map();
583
583
  get(t) {
584
- if (t in m) return j(t);
584
+ if (t in m) return G(t);
585
585
  const n = this.declared.get(t);
586
586
  return n ? B(n) : void 0;
587
587
  }
588
588
  /** Everything that may be offered as a trigger, built-in and declared. */
589
589
  triggerable() {
590
- const t = Object.keys(m).filter((r) => m[r].triggerable).map(j), n = [...this.declared.values()].map(B).filter((r) => r.triggerable);
590
+ const t = Object.keys(m).filter((r) => m[r].triggerable).map(G), n = [...this.declared.values()].map(B).filter((r) => r.triggerable);
591
591
  return [...t, ...n];
592
592
  }
593
593
  /**
@@ -659,20 +659,20 @@ class Fe {
659
659
  return this.translate;
660
660
  }
661
661
  }
662
- const Sr = new Fe();
663
- function _r(e, t, n = []) {
662
+ const Or = new Fe();
663
+ function vr(e, t, n = []) {
664
664
  const r = e.createdAt;
665
665
  if (!r) return [];
666
666
  const i = new Set(n);
667
667
  return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([o, a]) => a >= r && !i.has(o)).map(([o]) => o);
668
668
  }
669
- function Ve(e) {
669
+ function We(e) {
670
670
  return e.createdAt ?? 0;
671
671
  }
672
- function Tr(e) {
672
+ function Nr(e) {
673
673
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
674
674
  }
675
- function Ir(e) {
675
+ function Rr(e) {
676
676
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
677
677
  }
678
678
  const fe = [
@@ -768,23 +768,23 @@ const fe = [
768
768
  function T(e) {
769
769
  return fe.find((t) => t.id === e);
770
770
  }
771
- function wr(e) {
771
+ function $r(e) {
772
772
  return T(e)?.label ?? e;
773
773
  }
774
- function Mr(e, t = "gpt-5-mini") {
774
+ function xr(e, t = "gpt-5-mini") {
775
775
  return T(e)?.defaultModel ?? t;
776
776
  }
777
- function kr(e) {
777
+ function Lr(e) {
778
778
  return fe.filter((t) => t.capabilities.includes(e));
779
779
  }
780
- function Cr(e) {
780
+ function Dr(e) {
781
781
  const t = T(e);
782
782
  return !!t && !t.baseUrl;
783
783
  }
784
- function Or(e, t) {
784
+ function Pr(e, t) {
785
785
  return t === "text" ? !0 : T(e)?.attachmentKinds?.includes(t) === !0;
786
786
  }
787
- function Nr(e, t) {
787
+ function Ur(e, t) {
788
788
  if (!e.enabled) return "ok";
789
789
  const n = H(e.hardLimitNanos), r = H(e.softLimitNanos);
790
790
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -792,18 +792,18 @@ function Nr(e, t) {
792
792
  function H(e) {
793
793
  return typeof e == "number" ? e : void 0;
794
794
  }
795
- function We(e, t = "month") {
795
+ function Ve(e, t = "month") {
796
796
  const n = new Date(e);
797
797
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
798
798
  }
799
- function vr(e, t = "month") {
800
- const n = new Date(We(e, t));
799
+ function Kr(e, t = "month") {
800
+ const n = new Date(Ve(e, t));
801
801
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
802
802
  }
803
- function Rr(e) {
803
+ function jr(e) {
804
804
  return e?.listeningEnabled !== !1;
805
805
  }
806
- const $r = [
806
+ const Gr = [
807
807
  { id: "agent", label: "Agent", labelSource: "user" },
808
808
  { id: "team", label: "Team", labelSource: "team" },
809
809
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -825,7 +825,7 @@ function Xe(e, t) {
825
825
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
826
826
  }
827
827
  const Ye = 36e5, qe = 864e5;
828
- function xr(e, t, n) {
828
+ function Br(e, t, n) {
829
829
  const r = n === "hour" ? Ye : qe, i = [];
830
830
  for (let o = Xe(e, n); o <= t; o += r)
831
831
  i.push(ze(o, n));
@@ -838,7 +838,7 @@ const Je = [
838
838
  function Qe(e, t) {
839
839
  return `${e}.usage.${t}`;
840
840
  }
841
- function Dr(e, t) {
841
+ function Hr(e, t) {
842
842
  return t.map((n) => ({
843
843
  id: Qe(e, n.unit),
844
844
  label: n.label,
@@ -853,7 +853,7 @@ function Dr(e, t) {
853
853
  ]
854
854
  }));
855
855
  }
856
- const me = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), F = 200, V = 100, W = 200, z = 12, X = 4, ge = 4e3, C = 500, Lr = 256 * 1024, et = /* @__PURE__ */ new Set([
856
+ const me = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), F = 200, W = 100, V = 200, z = 12, X = 4, ge = 4e3, C = 500, Fr = 256 * 1024, et = /* @__PURE__ */ new Set([
857
857
  "heading",
858
858
  "paragraph",
859
859
  "list",
@@ -922,7 +922,7 @@ function at(e, t = ge) {
922
922
  function st(e, t = "info") {
923
923
  return typeof e == "string" && me.has(e) ? e : t;
924
924
  }
925
- function Pr(e, t = () => {
925
+ function Wr(e, t = () => {
926
926
  }) {
927
927
  if (!Array.isArray(e)) return [];
928
928
  const n = [];
@@ -983,8 +983,8 @@ function Pr(e, t = () => {
983
983
  case "list": {
984
984
  const a = Array.isArray(i.items) ? i.items : [], s = [];
985
985
  for (const p of a) {
986
- if (s.length >= V) {
987
- t(`more than ${V} list items`);
986
+ if (s.length >= W) {
987
+ t(`more than ${W} list items`);
988
988
  break;
989
989
  }
990
990
  const f = u(p?.text);
@@ -1016,8 +1016,8 @@ function Pr(e, t = () => {
1016
1016
  }
1017
1017
  const c = Array.isArray(i.rows) ? i.rows : [], p = [];
1018
1018
  for (const l of c) {
1019
- if (p.length >= W) {
1020
- t(`more than ${W} table rows`);
1019
+ if (p.length >= V) {
1020
+ t(`more than ${V} table rows`);
1021
1021
  break;
1022
1022
  }
1023
1023
  const A = Array.isArray(l) ? l : [];
@@ -1074,10 +1074,10 @@ function Pr(e, t = () => {
1074
1074
  }
1075
1075
  return n;
1076
1076
  }
1077
- function Ur(e) {
1077
+ function Vr(e) {
1078
1078
  return JSON.stringify(e).length;
1079
1079
  }
1080
- function Kr(e) {
1080
+ function zr(e) {
1081
1081
  return {
1082
1082
  blocks: e.length,
1083
1083
  types: e.map((t) => t.type),
@@ -1129,7 +1129,7 @@ function ct(e) {
1129
1129
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1130
1130
  }
1131
1131
  }
1132
- function Gr(e, t) {
1132
+ function Xr(e, t) {
1133
1133
  const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
1134
1134
  t && !r && n.push(`# ${t}`);
1135
1135
  for (const i of e) {
@@ -1143,40 +1143,40 @@ function Gr(e, t) {
1143
1143
  `;
1144
1144
  }
1145
1145
  const ye = (e) => `user:${e}`, Ae = (e) => `team:${e}`;
1146
- function jr(e) {
1146
+ function Yr(e) {
1147
1147
  const t = /* @__PURE__ */ new Set();
1148
1148
  for (const n of e ?? [])
1149
1149
  n?.id && (n.kind === "user" && t.add(ye(n.id)), n.kind === "team" && t.add(Ae(n.id)));
1150
1150
  return [...t].sort();
1151
1151
  }
1152
- function Br(e, t) {
1152
+ function qr(e, t) {
1153
1153
  return [ye(e), ...t.map(Ae)];
1154
1154
  }
1155
- function Hr(e) {
1155
+ function Jr(e) {
1156
1156
  const t = /* @__PURE__ */ new Set();
1157
1157
  for (const n of e ?? [])
1158
1158
  n?.kind && t.add(n.kind);
1159
1159
  return [...t];
1160
1160
  }
1161
1161
  const lt = ["done", "escalated"];
1162
- function Fr(e) {
1162
+ function Zr(e) {
1163
1163
  return lt.includes(e);
1164
1164
  }
1165
1165
  const ut = "assignment";
1166
- function Vr(e) {
1166
+ function Qr(e) {
1167
1167
  return `${ut}:${e}`;
1168
1168
  }
1169
- function Wr(e, t, n) {
1169
+ function ei(e, t, n) {
1170
1170
  if (e.direction === "inbound") return !0;
1171
1171
  if (e.author?.type === "user" && e.author.id === t) return !1;
1172
1172
  const r = e.payload?.mentions;
1173
1173
  return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1174
1174
  }
1175
- function zr(e) {
1175
+ function ti(e) {
1176
1176
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1177
1177
  }
1178
1178
  const dt = 12;
1179
- function Xr(e, t, n = dt) {
1179
+ function ni(e, t, n = dt) {
1180
1180
  const r = t + 1;
1181
1181
  return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
1182
1182
  status: "escalated",
@@ -1190,28 +1190,28 @@ function Xr(e, t, n = dt) {
1190
1190
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1191
1191
  };
1192
1192
  }
1193
- const Yr = /* @__PURE__ */ new Set(["mail", "message"]);
1193
+ const ri = /* @__PURE__ */ new Set(["mail", "message"]);
1194
1194
  function pt(e, t) {
1195
1195
  const n = e.settings?.signatures?.[t];
1196
1196
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1197
1197
  }
1198
- function qr(e, t, n, r = "html") {
1198
+ function ii(e, t, n, r = "html") {
1199
1199
  if (!e) return n;
1200
1200
  const i = pt(e, t);
1201
1201
  return i ? `${n}${r === "text" ? `
1202
1202
 
1203
1203
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1204
1204
  }
1205
- function Jr(e) {
1205
+ function oi(e) {
1206
1206
  return e.endpoints ?? [];
1207
1207
  }
1208
- const ft = 36e5, mt = 864e5, g = -1 / 0, Zr = (e) => e.score > g, _ = {
1208
+ const ft = 36e5, mt = 864e5, g = -1 / 0, ai = (e) => e.score > g, _ = {
1209
1209
  urgent: 40,
1210
1210
  high: 25,
1211
1211
  normal: 10,
1212
1212
  low: 0
1213
1213
  };
1214
- function Qr(e) {
1214
+ function si(e) {
1215
1215
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1216
1216
  }
1217
1217
  const gt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ht = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
@@ -1219,7 +1219,7 @@ function yt(e, t) {
1219
1219
  return !!(e && gt.test(e) || t && ht.test(t));
1220
1220
  }
1221
1221
  const At = 3, bt = 600;
1222
- function ei(e, t) {
1222
+ function ci(e, t) {
1223
1223
  return e >= At || t >= bt;
1224
1224
  }
1225
1225
  function Et(e, t) {
@@ -1232,7 +1232,7 @@ const St = ["open"], _t = 1e3, Tt = {
1232
1232
  low: 24
1233
1233
  }, It = 72;
1234
1234
  function wt(e) {
1235
- return e.lastActivityAt ?? (e.createdAt ? new Date(Ve(e)).getTime() : 0);
1235
+ return e.lastActivityAt ?? (e.createdAt ? new Date(We(e)).getTime() : 0);
1236
1236
  }
1237
1237
  function Mt(e, t) {
1238
1238
  return kt(t.remindersById?.[e.id], e, t.now);
@@ -1248,20 +1248,20 @@ function Ct(e, t) {
1248
1248
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1249
1249
  return typeof n == "number" && n > 0 ? n : Tt[e.priority ?? "normal"];
1250
1250
  }
1251
- function ti(e) {
1251
+ function li(e) {
1252
1252
  const t = {};
1253
1253
  for (const n of e)
1254
1254
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1255
1255
  return t;
1256
1256
  }
1257
- function ni(e, t, n) {
1257
+ function ui(e, t, n) {
1258
1258
  return !Ee(e.status) || e.firstResponseAt ? !1 : x(e, t) > Ct(e, n);
1259
1259
  }
1260
1260
  function Ot(e, t) {
1261
1261
  const n = e.lastActivityPreview;
1262
1262
  return n?.direction !== "outbound" || !be(n.type) ? !1 : x(e, t) < It;
1263
1263
  }
1264
- function ri(e, t) {
1264
+ function di(e, t) {
1265
1265
  if (!Ee(e.status)) return { score: g, reasons: [] };
1266
1266
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: g, reasons: [] };
1267
1267
  if (Ot(e, t.now)) return { score: g, reasons: [] };
@@ -1277,17 +1277,17 @@ function ri(e, t) {
1277
1277
  const a = e.lastActivityPreview;
1278
1278
  return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && be(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), yt(e.remoteParty?.resource, e.lastActivityPreview?.snippet) && (n -= _t, r.push("bulk")), { score: n, reasons: r };
1279
1279
  }
1280
- const ii = (e) => !!e.assignedUserId || !!e.assignedInboxId, oi = (e) => e.status === "closed", ai = (e) => ({
1280
+ const pi = (e) => !!e.assignedUserId || !!e.assignedInboxId, fi = (e) => e.status === "closed", mi = (e) => ({
1281
1281
  urgent: 10,
1282
1282
  high: 5,
1283
1283
  normal: 2,
1284
1284
  low: 1
1285
- })[e.priority] || 0, si = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1286
- function ci(e, t) {
1285
+ })[e.priority] || 0, gi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1286
+ function hi(e, t) {
1287
1287
  const n = e.labels ?? [];
1288
1288
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1289
1289
  }
1290
- function li(e, t, n) {
1290
+ function yi(e, t, n) {
1291
1291
  const r = e.translations ?? [];
1292
1292
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1293
1293
  }
@@ -1310,15 +1310,15 @@ function Se(e) {
1310
1310
  const t = (e ?? "").toLowerCase();
1311
1311
  return Z.find((n) => n.code === t) ?? Z.find((n) => n.code === t.split("-")[0]);
1312
1312
  }
1313
- function ui(e) {
1313
+ function Ai(e) {
1314
1314
  return Se(e)?.label ?? e;
1315
1315
  }
1316
- function di(e) {
1316
+ function bi(e) {
1317
1317
  const t = Se(e);
1318
1318
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1319
1319
  }
1320
1320
  const _e = 3;
1321
- function Nt(e, t) {
1321
+ function vt(e, t) {
1322
1322
  const n = /* @__PURE__ */ new Set();
1323
1323
  let r = 1, i = t.get(e)?.parentId;
1324
1324
  for (; i; ) {
@@ -1327,15 +1327,15 @@ function Nt(e, t) {
1327
1327
  }
1328
1328
  return r;
1329
1329
  }
1330
- function pi(e, t, n) {
1330
+ function Ei(e, t, n) {
1331
1331
  if (!e) return !0;
1332
1332
  if (e === t) return !1;
1333
1333
  const r = new Map(n.map((a) => [a.id, a]));
1334
- if (!r.has(e) || t && vt(e, t, r)) return !1;
1335
- const i = Nt(e, r), o = t ? Te(t, n) : 1;
1334
+ if (!r.has(e) || t && Nt(e, t, r)) return !1;
1335
+ const i = vt(e, r), o = t ? Te(t, n) : 1;
1336
1336
  return i + o <= _e;
1337
1337
  }
1338
- function vt(e, t, n) {
1338
+ function Nt(e, t, n) {
1339
1339
  const r = /* @__PURE__ */ new Set();
1340
1340
  let i = n.get(e)?.parentId;
1341
1341
  for (; i; ) {
@@ -1355,13 +1355,13 @@ const Rt = "en";
1355
1355
  function $t(e) {
1356
1356
  return e.defaultLocale || e.locale || Rt;
1357
1357
  }
1358
- function fi(e) {
1358
+ function Si(e) {
1359
1359
  const t = /* @__PURE__ */ new Set(), n = [];
1360
1360
  for (const r of [$t(e), ...e.locales ?? []])
1361
1361
  !r || t.has(r) || (t.add(r), n.push(r));
1362
1362
  return n;
1363
1363
  }
1364
- function mi(e, t, n) {
1364
+ function _i(e, t, n) {
1365
1365
  const r = e.translations ?? [];
1366
1366
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1367
1367
  }
@@ -1392,23 +1392,23 @@ function xt(e, t) {
1392
1392
  return e.userId === t.userId;
1393
1393
  }
1394
1394
  }
1395
- function gi(e, t) {
1395
+ function Ti(e, t) {
1396
1396
  return e.filter((n) => n.enabled && xt(n.ownerScope, t));
1397
1397
  }
1398
- function hi(e) {
1398
+ function Ii(e) {
1399
1399
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1400
1400
  }
1401
- function yi(e) {
1401
+ function wi(e) {
1402
1402
  return `mcp__${e}__`;
1403
1403
  }
1404
- const Ai = 1e3, bi = 2e3, Ei = 500, Si = 12e3, _i = 4e3, Dt = ["contact", "company", "work_item"];
1405
- function Ti(e) {
1404
+ const Mi = 1e3, ki = 2e3, Ci = 500, Oi = 12e3, vi = 4e3, Lt = ["contact", "company", "work_item"];
1405
+ function Ni(e) {
1406
1406
  if (!e) return !1;
1407
1407
  const t = e.slice(0, e.indexOf(":"));
1408
- return Dt.includes(t);
1408
+ return Lt.includes(t);
1409
1409
  }
1410
- const Ii = "onboarding-source", wi = ["support", "billing", "availability", "sales", "onboarding"], Mi = ["keep", "replace"];
1411
- function Lt(e) {
1410
+ const Ri = "onboarding-source", $i = ["support", "billing", "availability", "sales", "onboarding"], xi = ["keep", "replace"];
1411
+ function Dt(e) {
1412
1412
  switch (e.kind) {
1413
1413
  case "user":
1414
1414
  return `user:${e.userId}`;
@@ -1418,7 +1418,7 @@ function Lt(e) {
1418
1418
  return "org";
1419
1419
  }
1420
1420
  }
1421
- function ki(e) {
1421
+ function Li(e) {
1422
1422
  if (typeof e != "string") return;
1423
1423
  const t = e.trim();
1424
1424
  if (t === "org") return { kind: "org" };
@@ -1431,7 +1431,7 @@ function ki(e) {
1431
1431
  }
1432
1432
  }
1433
1433
  function Pt(e) {
1434
- return Lt(e);
1434
+ return Dt(e);
1435
1435
  }
1436
1436
  function Ut(e) {
1437
1437
  switch (e.kind) {
@@ -1444,13 +1444,13 @@ function Ut(e) {
1444
1444
  }
1445
1445
  }
1446
1446
  const Kt = Ut;
1447
- function Ci(e) {
1447
+ function Di(e) {
1448
1448
  return e.agentId ? { kind: "user", userId: e.agentId } : Kt(e.ownerScope);
1449
1449
  }
1450
- function Oi(e) {
1450
+ function Pi(e) {
1451
1451
  return Pt(e);
1452
1452
  }
1453
- function Ni(e, t) {
1453
+ function Ui(e, t) {
1454
1454
  if (!t) return;
1455
1455
  let n = e;
1456
1456
  for (const r of t.split(".")) {
@@ -1459,24 +1459,24 @@ function Ni(e, t) {
1459
1459
  }
1460
1460
  return n;
1461
1461
  }
1462
- function vi(e, t) {
1462
+ function Ki(e, t) {
1463
1463
  return e.targets.find((n) => n.activityTypes.includes(t));
1464
1464
  }
1465
- function Ri(e, t) {
1465
+ function ji(e, t) {
1466
1466
  if (t)
1467
1467
  return e.targets.find((n) => n.id === t);
1468
1468
  }
1469
- function Gt(e) {
1469
+ function jt(e) {
1470
1470
  return e?.kind === "assignment";
1471
1471
  }
1472
- function $i(e) {
1472
+ function Gi(e) {
1473
1473
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1474
- return Gt(t) ? n ? r ? r.activityTypes.includes(i) ? o ? o !== n ? "assigned to someone else" : a && a === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1474
+ return jt(t) ? n ? r ? r.activityTypes.includes(i) ? o ? o !== n ? "assigned to someone else" : a && a === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1475
1475
  }
1476
- function xi(e) {
1476
+ function Bi(e) {
1477
1477
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1478
1478
  }
1479
- const Di = [
1479
+ const Hi = [
1480
1480
  { name: "text", type: "string" },
1481
1481
  { name: "subject", type: "string" },
1482
1482
  { name: "from", type: "string" },
@@ -1510,7 +1510,7 @@ const Di = [
1510
1510
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1511
1511
  // the trigger filter runs — like contactId/companyId above.
1512
1512
  { name: "assigneeUserId", type: "string" }
1513
- ], Li = {
1513
+ ], Fi = {
1514
1514
  topics: [
1515
1515
  { name: "topicId", type: "string" },
1516
1516
  { name: "topic", type: "string" },
@@ -1524,77 +1524,77 @@ const Di = [
1524
1524
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1525
1525
  extract: []
1526
1526
  };
1527
- function jt(e) {
1527
+ function Gt(e) {
1528
1528
  return `${e.type}:${e.id}`;
1529
1529
  }
1530
1530
  const Bt = "interaction";
1531
1531
  function Ht(e) {
1532
1532
  return e?.type === Bt ? e.id : void 0;
1533
1533
  }
1534
- const Ft = 64, Vt = 8e3;
1535
- function Pi(e) {
1534
+ const Ft = 64, Wt = 8e3;
1535
+ function Wi(e) {
1536
1536
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1537
1537
  if (!(!Number.isFinite(t) || t <= 0))
1538
- return Math.min(Math.max(Math.round(t), Ft), Vt);
1538
+ return Math.min(Math.max(Math.round(t), Ft), Wt);
1539
1539
  }
1540
- const Ui = { kind: "workflow", steps: [] };
1541
- function Ki(e) {
1540
+ const Vi = { kind: "workflow", steps: [] };
1541
+ function zi(e) {
1542
1542
  return e?.kind === "workflow" ? e.steps : [];
1543
1543
  }
1544
- function Gi(e) {
1544
+ function Xi(e) {
1545
1545
  return e?.kind === "procedure" ? e.procedure : void 0;
1546
1546
  }
1547
- function Wt(e) {
1547
+ function Vt(e) {
1548
1548
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
1549
1549
  return { total: n, rate: n ? t / n : 0 };
1550
1550
  }
1551
1551
  const zt = 10, Xt = 0.9;
1552
- function ji(e) {
1553
- const { total: t, rate: n } = Wt(e);
1552
+ function Yi(e) {
1553
+ const { total: t, rate: n } = Vt(e);
1554
1554
  return t >= zt && n >= Xt;
1555
1555
  }
1556
1556
  const Yt = ["done", "escalated", "failed", "stopped"];
1557
- function Bi(e) {
1557
+ function qi(e) {
1558
1558
  return Yt.includes(e);
1559
1559
  }
1560
1560
  function qt(e) {
1561
1561
  return e === "waiting";
1562
1562
  }
1563
- function Hi(e) {
1563
+ function Ji(e) {
1564
1564
  return e === "running" || qt(e);
1565
1565
  }
1566
1566
  function Ie(e) {
1567
1567
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1568
1568
  }
1569
- function Fi(e) {
1569
+ function Zi(e) {
1570
1570
  const t = Ie(e);
1571
- return t ? jt(t) : void 0;
1571
+ return t ? Gt(t) : void 0;
1572
1572
  }
1573
- function Vi(e) {
1573
+ function Qi(e) {
1574
1574
  return Ht(Ie(e));
1575
1575
  }
1576
- function Wi(e, t) {
1576
+ function eo(e, t) {
1577
1577
  const n = e.accumulatedSeconds || 0;
1578
1578
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1579
1579
  }
1580
- function zi(e, t) {
1580
+ function to(e, t) {
1581
1581
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1582
1582
  if (!t || t === "exact") return n * 60;
1583
1583
  const r = Number(t);
1584
1584
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1585
1585
  }
1586
- function Xi(e) {
1586
+ function no(e) {
1587
1587
  const t = Math.max(0, Math.round(e / 60));
1588
1588
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1589
1589
  }
1590
- function Yi(e) {
1590
+ function ro(e) {
1591
1591
  const t = Math.max(0, Math.floor(e)), n = (o) => String(o).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
1592
1592
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1593
1593
  }
1594
1594
  function Jt(e) {
1595
1595
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1596
1596
  }
1597
- function qi(e, t) {
1597
+ function io(e, t) {
1598
1598
  const n = Jt(e) || "werksoort", r = new Set(t);
1599
1599
  if (!r.has(n)) return n;
1600
1600
  for (let i = 2; i < 500; i++) {
@@ -1603,11 +1603,11 @@ function qi(e, t) {
1603
1603
  }
1604
1604
  return `${n}-${r.size + 1}`;
1605
1605
  }
1606
- function Ji(e, t) {
1606
+ function oo(e, t) {
1607
1607
  const n = e.ownerScope;
1608
1608
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1609
1609
  }
1610
- function Zi(e) {
1610
+ function ao(e) {
1611
1611
  return e.filter((t) => !t.archived).sort(Zt);
1612
1612
  }
1613
1613
  function Zt(e, t) {
@@ -1624,7 +1624,7 @@ function tn(e) {
1624
1624
  const n = t.slice(0, O), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1625
1625
  return r > O * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1626
1626
  }
1627
- function Qi(e, t) {
1627
+ function so(e, t) {
1628
1628
  const n = tn(t.text), r = h(n);
1629
1629
  if (!r || (e.examples ?? []).some((a) => h(a) === r)) return null;
1630
1630
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => h(a.text) === r);
@@ -1640,7 +1640,7 @@ function te(e) {
1640
1640
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1641
1641
  );
1642
1642
  }
1643
- function eo(e, t) {
1643
+ function co(e, t) {
1644
1644
  const n = h(t), r = (e.examples ?? []).filter((o) => o.trim());
1645
1645
  return { examples: r.some((o) => h(o) === n) ? r : [...r, t].slice(-Qt), exampleCandidates: nn(e, t) };
1646
1646
  }
@@ -1652,13 +1652,13 @@ function rn(e, t) {
1652
1652
  const n = e.ownerScope;
1653
1653
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1654
1654
  }
1655
- function to(e, t) {
1655
+ function lo(e, t) {
1656
1656
  return e.filter((n) => rn(n, t));
1657
1657
  }
1658
- function no(e) {
1658
+ function uo(e) {
1659
1659
  return e.type === "agent";
1660
1660
  }
1661
- const ro = "WORK_COMMENT_ADDED", io = "WORK_ITEM_ASSIGNED", oo = "WORK_ITEM_STATUS_CHANGED";
1661
+ const po = "WORK_COMMENT_ADDED", fo = "WORK_ITEM_ASSIGNED", mo = "WORK_ITEM_STATUS_CHANGED";
1662
1662
  function on(e, t) {
1663
1663
  const n = (r) => {
1664
1664
  const i = new Date(r);
@@ -1666,7 +1666,7 @@ function on(e, t) {
1666
1666
  };
1667
1667
  return Math.round((n(e) - n(t)) / mt);
1668
1668
  }
1669
- function ao(e, t) {
1669
+ function go(e, t) {
1670
1670
  if (e.closedAt != null) return { score: g, reasons: [] };
1671
1671
  const n = t.remindersById?.[e.id];
1672
1672
  if (n && n.remindAt > t.now) return { score: g, reasons: [] };
@@ -1685,11 +1685,11 @@ function cn(e) {
1685
1685
  function we(e) {
1686
1686
  return `${sn}:${e}`;
1687
1687
  }
1688
- function so(e, t, n) {
1688
+ function ho(e, t, n) {
1689
1689
  const r = `${e}-${t}`;
1690
1690
  return n ? `${r}-${n}` : r;
1691
1691
  }
1692
- function co(e) {
1692
+ function yo(e) {
1693
1693
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1694
1694
  return t ? {
1695
1695
  projectKey: t[1].toUpperCase(),
@@ -1697,37 +1697,37 @@ function co(e) {
1697
1697
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1698
1698
  } : null;
1699
1699
  }
1700
- function lo(e) {
1700
+ function Ao(e) {
1701
1701
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1702
1702
  }
1703
- function uo(e, t = 25) {
1703
+ function bo(e, t = 25) {
1704
1704
  const n = /* @__PURE__ */ new Set([cn(e.id)]);
1705
1705
  e.projectId && n.add(we(e.projectId));
1706
1706
  for (const r of e.ancestorKeys ?? []) n.add(r);
1707
1707
  for (const r of e.partyKeys ?? []) n.add(r);
1708
1708
  return Array.from(n).slice(0, t);
1709
1709
  }
1710
- function po(e) {
1710
+ function Eo(e) {
1711
1711
  return [we(e.id)];
1712
1712
  }
1713
- const D = [
1713
+ const L = [
1714
1714
  { key: "open", label: "status_open", category: "todo", order: 0 },
1715
1715
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1716
1716
  { key: "done", label: "status_done", category: "done", order: 2 },
1717
1717
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1718
- ], Me = D.map((e) => e.key);
1718
+ ], Me = L.map((e) => e.key);
1719
1719
  function ln(e) {
1720
- return e?.statuses?.length ? e.statuses : D;
1720
+ return e?.statuses?.length ? e.statuses : L;
1721
1721
  }
1722
1722
  function un(e, t) {
1723
1723
  return t.find((n) => n.key === e)?.category ?? "todo";
1724
1724
  }
1725
- function fo(e, t) {
1725
+ function So(e, t) {
1726
1726
  return t.find((n) => n.key === e);
1727
1727
  }
1728
- function mo(e) {
1728
+ function _o(e) {
1729
1729
  const t = ln(e), n = e?.defaultStatusKey;
1730
- return n && t.some((r) => r.key === n) ? n : dn(t)[0]?.key ?? D[0].key;
1730
+ return n && t.some((r) => r.key === n) ? n : dn(t)[0]?.key ?? L[0].key;
1731
1731
  }
1732
1732
  function dn(e) {
1733
1733
  return [...e].sort((t, n) => {
@@ -1735,13 +1735,13 @@ function dn(e) {
1735
1735
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1736
1736
  });
1737
1737
  }
1738
- function go(e, t) {
1738
+ function To(e, t) {
1739
1739
  return un(e, t) === "done";
1740
1740
  }
1741
1741
  function pn(e) {
1742
1742
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1743
1743
  }
1744
- function ho(e, t) {
1744
+ function Io(e, t) {
1745
1745
  const n = pn(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Me]);
1746
1746
  if (!r.has(n)) return n;
1747
1747
  for (let i = 2; i < 500; i++) {
@@ -1750,7 +1750,7 @@ function ho(e, t) {
1750
1750
  }
1751
1751
  return `${n}-${r.size + 1}`;
1752
1752
  }
1753
- function yo(e) {
1753
+ function wo(e) {
1754
1754
  const t = [];
1755
1755
  if (!e.length) return [{ index: -1, reason: "empty" }];
1756
1756
  const n = /* @__PURE__ */ new Set();
@@ -1780,18 +1780,18 @@ const y = 1024 * 1024, hn = {
1780
1780
  pdf: 20 * y,
1781
1781
  text: 1 * y,
1782
1782
  audio: 20 * y
1783
- }, Ao = 25 * y, bo = 5;
1784
- function Eo(e, t) {
1783
+ }, Mo = 25 * y, ko = 5;
1784
+ function Co(e, t) {
1785
1785
  const n = gn(e);
1786
1786
  return n === "unsupported" ? "unsupported" : t > hn[n] ? "too-large" : null;
1787
1787
  }
1788
- function So(e) {
1788
+ function Oo(e) {
1789
1789
  return e.access !== "read" && e.effect !== "internal";
1790
1790
  }
1791
1791
  function yn(e) {
1792
1792
  return `${e.kind}:${e.id || e.url || e.title}`;
1793
1793
  }
1794
- function _o(e, t = []) {
1794
+ function vo(e, t = []) {
1795
1795
  const n = new Set(t), r = [], i = [];
1796
1796
  for (const o of e) {
1797
1797
  const a = yn(o);
@@ -1799,26 +1799,26 @@ function _o(e, t = []) {
1799
1799
  }
1800
1800
  return { sources: r, keys: i };
1801
1801
  }
1802
- const To = "assist-source", Io = ["blocking", "due", "open"];
1803
- function wo(e, t) {
1802
+ const No = "assist-source", Ro = ["blocking", "due", "open"];
1803
+ function $o(e, t) {
1804
1804
  const [n, r] = (e.subjectKey ?? "").split(":");
1805
1805
  return n === t && r ? r : void 0;
1806
1806
  }
1807
1807
  const ne = { blocking: 0, due: 1, open: 2 };
1808
- function Mo(e, t) {
1808
+ function xo(e, t) {
1809
1809
  return ne[e.band ?? "open"] - ne[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1810
1810
  }
1811
- function ko(e) {
1811
+ function Lo(e) {
1812
1812
  return e.sessions.filter(
1813
1813
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1814
1814
  );
1815
1815
  }
1816
- function Co(e) {
1816
+ function Do(e) {
1817
1817
  return e.sessions.filter(
1818
1818
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1819
1819
  );
1820
1820
  }
1821
- function Oo(e) {
1821
+ function Po(e) {
1822
1822
  return e.sessions.some(
1823
1823
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1824
1824
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
@@ -1840,7 +1840,7 @@ function bn(e, t) {
1840
1840
  }
1841
1841
  return n;
1842
1842
  }
1843
- function No(e, t) {
1843
+ function Uo(e, t) {
1844
1844
  const n = bn(e, t);
1845
1845
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1846
1846
  }
@@ -1851,7 +1851,7 @@ function En(e, t) {
1851
1851
  transport: t.transport ?? e.transport
1852
1852
  } : e;
1853
1853
  }
1854
- function vo(e, t) {
1854
+ function Ko(e, t) {
1855
1855
  const n = [];
1856
1856
  for (const r of e) {
1857
1857
  if (!r.enabled) continue;
@@ -1862,16 +1862,16 @@ function vo(e, t) {
1862
1862
  }
1863
1863
  return n;
1864
1864
  }
1865
- function Ro(e, t) {
1865
+ function jo(e, t) {
1866
1866
  return t.filter((n) => n.capability.intent === e);
1867
1867
  }
1868
1868
  function Sn(e, t) {
1869
1869
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1870
1870
  }
1871
- function $o(e, t) {
1871
+ function Go(e, t) {
1872
1872
  return Sn(e.scheme, t);
1873
1873
  }
1874
- function xo(e, t, n) {
1874
+ function Bo(e, t, n) {
1875
1875
  const r = [];
1876
1876
  for (const i of e)
1877
1877
  for (const o of n)
@@ -1900,10 +1900,10 @@ const Tn = {
1900
1900
  id: "note",
1901
1901
  custom: "note"
1902
1902
  };
1903
- function Do(e) {
1903
+ function Ho(e) {
1904
1904
  return e ? Tn[e] ?? "note" : "note";
1905
1905
  }
1906
- const Lo = "message_window", Po = "message_templates", Uo = {
1906
+ const Fo = "message_window", Wo = "message_templates", Vo = {
1907
1907
  // E-mail
1908
1908
  FROM: "from",
1909
1909
  TO: "to",
@@ -1920,19 +1920,19 @@ const Lo = "message_window", Po = "message_templates", Uo = {
1920
1920
  // Voice/conference
1921
1921
  HOST: "host",
1922
1922
  PARTICIPANT: "participant"
1923
- }, Ko = (e, t) => ({ intent: e, ...t }), Go = "folder_management", jo = "remote_search", Bo = {
1923
+ }, zo = (e, t) => ({ intent: e, ...t }), Xo = "folder_management", Yo = "remote_search", qo = {
1924
1924
  ok: !1,
1925
1925
  code: "UNSUPPORTED",
1926
1926
  message: "Provider does not support this op"
1927
- }, Ho = "context.collect", Fo = "installation-id";
1928
- function Vo(e) {
1927
+ }, Jo = "context.collect", Zo = "installation-id";
1928
+ function Qo(e) {
1929
1929
  const t = [];
1930
1930
  for (const n of Object.keys(e))
1931
1931
  for (const r of Object.keys(e[n]))
1932
1932
  t.push({ lang: n, key: r, value: e[n][r] });
1933
1933
  return t;
1934
1934
  }
1935
- const Wo = "notification-source", zo = (e, t) => `${e}.pref.${t}`, Xo = {
1935
+ const ea = "notification-source", ta = (e, t) => `${e}.pref.${t}`, na = {
1936
1936
  ai: [
1937
1937
  "account.read",
1938
1938
  "account.write",
@@ -2066,38 +2066,38 @@ const Wo = "notification-source", zo = (e, t) => `${e}.pref.${t}`, Xo = {
2066
2066
  user: ["user.read", "user.write"],
2067
2067
  work: ["item.read", "item.write", "project.read", "project.write"]
2068
2068
  }, ke = 9e4, In = ["out_of_office"], Ce = (e) => In.includes(e);
2069
- function Yo(e, t, n) {
2069
+ function ra(e, t, n) {
2070
2070
  const r = n - e < ke, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2071
2071
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2072
2072
  const o = i.status;
2073
2073
  return !r && !Ce(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2074
2074
  }
2075
- function qo(e, t) {
2075
+ function ia(e, t) {
2076
2076
  const n = t - e.lastSeenAt < ke, r = n || Ce(e.status) ? e.status : "offline";
2077
2077
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2078
2078
  }
2079
- function Jo(e, t) {
2079
+ function oa(e, t) {
2080
2080
  return e?.teamId && t.includes(e.teamId) ? { teamId: e.teamId, mustChoose: !1 } : t.length === 1 ? { teamId: t[0], mustChoose: !1 } : { teamId: void 0, mustChoose: t.length > 1 };
2081
2081
  }
2082
- function Zo(e) {
2082
+ function aa(e) {
2083
2083
  return e.providerAvailable && e.allowed;
2084
2084
  }
2085
- const Qo = "resources.describe", ea = "resources.search", ta = "resources.resolve", na = "resources.attached";
2086
- function ra(e) {
2085
+ const sa = "resources.describe", ca = "resources.search", la = "resources.resolve", ua = "resources.attached";
2086
+ function da(e) {
2087
2087
  const t = e.indexOf(":");
2088
2088
  return t === -1 ? e : e.slice(0, t);
2089
2089
  }
2090
2090
  const Oe = "auth";
2091
- function Ne(e) {
2091
+ function ve(e) {
2092
2092
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2093
2093
  return t ? t[1] : null;
2094
2094
  }
2095
- function ia(e) {
2096
- const t = Ne(e);
2095
+ function pa(e) {
2096
+ const t = ve(e);
2097
2097
  return t ? t !== Oe : typeof e == "string" && e.startsWith("/wake");
2098
2098
  }
2099
- function oa(e) {
2100
- return typeof e != "string" || e === "" || e === "/" ? !0 : Ne(e) === Oe;
2099
+ function fa(e) {
2100
+ return typeof e != "string" || e === "" || e === "/" ? !0 : ve(e) === Oe;
2101
2101
  }
2102
2102
  function wn(e) {
2103
2103
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
@@ -2118,7 +2118,7 @@ function kn(e, t) {
2118
2118
  function Cn(e) {
2119
2119
  return e.publicBasePath ?? `/apps/${e.name}`;
2120
2120
  }
2121
- function aa(e) {
2121
+ function ma(e) {
2122
2122
  const t = [];
2123
2123
  for (const n of e) {
2124
2124
  if (!n?.name) continue;
@@ -2144,17 +2144,17 @@ function On(e, t) {
2144
2144
  }
2145
2145
  return n.length > r.length;
2146
2146
  }
2147
- function Nn(e, t) {
2147
+ function vn(e, t) {
2148
2148
  if (typeof e != "string") return null;
2149
2149
  let n = null;
2150
2150
  for (const r of t)
2151
2151
  Mn(r.pattern).test(e) && (!n || On(r.pattern, n.pattern)) && (n = r);
2152
2152
  return n ? { ...n, params: { ...n.props, ...kn(n.pattern, e) } } : null;
2153
2153
  }
2154
- function sa(e, t) {
2155
- return Nn(e, t) !== null;
2154
+ function ga(e, t) {
2155
+ return vn(e, t) !== null;
2156
2156
  }
2157
- const ca = "sync-source", la = "sync-target", ua = 20, vn = {
2157
+ const ha = "sync-source", ya = "sync-target", Aa = 20, Nn = {
2158
2158
  afrikaans: [
2159
2159
  "[Muziek]",
2160
2160
  "(C) TV GELDERLAND 2021",
@@ -2306,12 +2306,12 @@ const ca = "sync-source", la = "sync-target", ua = 20, vn = {
2306
2306
  ]
2307
2307
  }, Rn = (e) => {
2308
2308
  let t = e;
2309
- return Object.values(vn).forEach((n) => {
2309
+ return Object.values(Nn).forEach((n) => {
2310
2310
  n.forEach((r) => {
2311
2311
  t = t.replaceAll(r, "");
2312
2312
  });
2313
2313
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2314
- }, $n = 6e4, xn = 8e3, Dn = 2, Ln = 0.4, Pn = 3, Un = /* @__PURE__ */ new Set([
2314
+ }, $n = 6e4, xn = 8e3, Ln = 2, Dn = 0.4, Pn = 3, Un = /* @__PURE__ */ new Set([
2315
2315
  "aan",
2316
2316
  "als",
2317
2317
  "ben",
@@ -2430,7 +2430,7 @@ function Kn(e) {
2430
2430
  n.length < Pn || Un.has(n) || t.add(n);
2431
2431
  return [...t];
2432
2432
  }
2433
- function Gn(e, t) {
2433
+ function jn(e, t) {
2434
2434
  if (!e.length) return 0;
2435
2435
  if (!t.length) return 1;
2436
2436
  const n = new Set(t), r = new Set(e);
@@ -2438,38 +2438,38 @@ function Gn(e, t) {
2438
2438
  for (const o of r) n.has(o) || (i += 1);
2439
2439
  return i / r.size;
2440
2440
  }
2441
- function jn(e, t = $n) {
2441
+ function Gn(e, t = $n) {
2442
2442
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
2443
2443
  if (!n.length) return { text: "", segmentCount: 0 };
2444
2444
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
2445
2445
  return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => Rn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2446
2446
  }
2447
2447
  const Bn = 60;
2448
- function da(e, t, n = Bn) {
2448
+ function ba(e, t, n = Bn) {
2449
2449
  const r = new Set(e), i = [...e];
2450
2450
  for (const o of t)
2451
2451
  !o || r.has(o) || (r.add(o), i.push(o));
2452
2452
  return i.slice(-n);
2453
2453
  }
2454
- function pa(e) {
2454
+ function Ea(e) {
2455
2455
  const { segments: t, now: n, state: r } = e;
2456
2456
  if (r.lastTriggerAt && n - r.lastTriggerAt < xn)
2457
2457
  return { trigger: !1, reason: "too_soon" };
2458
- const i = jn(t, e.windowMs);
2458
+ const i = Gn(t, e.windowMs);
2459
2459
  if (!i.text) return { trigger: !1, reason: "no_speech" };
2460
2460
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
2461
- if (r.lastQueryTerms && o < Dn)
2461
+ if (r.lastQueryTerms && o < Ln)
2462
2462
  return { trigger: !1, reason: "too_few_new" };
2463
2463
  const a = Kn(i.text);
2464
- return a.length ? r.lastQueryTerms?.length && Gn(a, r.lastQueryTerms) < Ln ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2464
+ return a.length ? r.lastQueryTerms?.length && jn(a, r.lastQueryTerms) < Dn ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2465
2465
  }
2466
- const fa = [
2466
+ const Sa = [
2467
2467
  "personal",
2468
2468
  "workspace",
2469
2469
  "connections",
2470
2470
  "work",
2471
2471
  "ai"
2472
- ], ma = "navNotice", L = {
2472
+ ], _a = "navNotice", D = {
2473
2473
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2474
2474
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2475
2475
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2492,29 +2492,29 @@ const fa = [
2492
2492
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
2493
2493
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2494
2494
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2495
- }, Hn = "NL", Fn = 15, Vn = 8, Wn = Array.from(
2496
- new Set(Object.values(L).map((e) => e.callingCode))
2495
+ }, Hn = "NL", Fn = 15, Wn = 8, Vn = Array.from(
2496
+ new Set(Object.values(D).map((e) => e.callingCode))
2497
2497
  ).sort((e, t) => t.length - e.length);
2498
2498
  function re(e) {
2499
2499
  if (e)
2500
- return L[e.trim().toUpperCase()];
2500
+ return D[e.trim().toUpperCase()];
2501
2501
  }
2502
2502
  function S(e, t) {
2503
2503
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
2504
2504
  }
2505
2505
  function ie(e) {
2506
2506
  if (e.length > Fn) return null;
2507
- for (const t of Wn) {
2507
+ for (const t of Vn) {
2508
2508
  if (!e.startsWith(t)) continue;
2509
2509
  const n = e.slice(t.length);
2510
- for (const r of Object.values(L)) {
2510
+ for (const r of Object.values(D)) {
2511
2511
  if (r.callingCode !== t) continue;
2512
2512
  const i = r.trunkPrefix, o = i && n.startsWith(i) ? n.slice(i.length) : n;
2513
2513
  if (S(o, r)) return `+${t}${o}`;
2514
2514
  }
2515
2515
  return null;
2516
2516
  }
2517
- return e.length < Vn ? null : `+${e}`;
2517
+ return e.length < Wn ? null : `+${e}`;
2518
2518
  }
2519
2519
  function zn(e) {
2520
2520
  let t = e.trim();
@@ -2523,7 +2523,7 @@ function zn(e) {
2523
2523
  const r = t.indexOf("@");
2524
2524
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2525
2525
  }
2526
- function ga(e) {
2526
+ function Ta(e) {
2527
2527
  if (!e) return !1;
2528
2528
  const t = e.indexOf("@");
2529
2529
  if (t <= 0) return !1;
@@ -2551,19 +2551,19 @@ function oe(e, t) {
2551
2551
  }
2552
2552
  return !a && S(i, o) ? `+${o.callingCode}${i}` : null;
2553
2553
  }
2554
- function ha(e, t = 9) {
2554
+ function Ia(e, t = 9) {
2555
2555
  const n = (e ?? "").replace(/\D/g, "");
2556
2556
  return n.length < t ? null : n.slice(-t);
2557
2557
  }
2558
- function ve(e) {
2558
+ function Ne(e) {
2559
2559
  if (!e) return null;
2560
2560
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
2561
2561
  if (n <= 0 || n === t.length - 1) return null;
2562
2562
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2563
2563
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2564
2564
  }
2565
- function ya(e) {
2566
- const t = ve(e);
2565
+ function wa(e) {
2566
+ const t = Ne(e);
2567
2567
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2568
2568
  }
2569
2569
  const Xn = /* @__PURE__ */ new Set([
@@ -2628,16 +2628,16 @@ const qn = /* @__PURE__ */ new Set([
2628
2628
  "proximus.be",
2629
2629
  "scarlet.be"
2630
2630
  ]);
2631
- function Aa(e) {
2631
+ function Ma(e) {
2632
2632
  const t = Yn(e);
2633
2633
  return t ? qn.has(t) : !1;
2634
2634
  }
2635
- function ba(e) {
2635
+ function ka(e) {
2636
2636
  if (!e) return !1;
2637
2637
  const t = e.trim().toLowerCase();
2638
2638
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
2639
2639
  }
2640
- function Ea(e, t, n) {
2640
+ function Ca(e, t, n) {
2641
2641
  if (!e || !t) return null;
2642
2642
  const r = e.trim().toLowerCase();
2643
2643
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -2649,7 +2649,7 @@ function Ea(e, t, n) {
2649
2649
  return o ? `fax:${o}` : null;
2650
2650
  }
2651
2651
  if (r === "mailto" || r === "email") {
2652
- const o = ve(t);
2652
+ const o = Ne(t);
2653
2653
  return o ? `mailto:${o}` : null;
2654
2654
  }
2655
2655
  const i = t.trim().toLowerCase();
@@ -2679,7 +2679,7 @@ function Qn(e) {
2679
2679
  return e;
2680
2680
  }
2681
2681
  const er = /^(?:https?:|mailto:|tel:)/i, tr = /^(?:https?:|cid:|data:image\/)/i;
2682
- function N(e, t) {
2682
+ function v(e, t) {
2683
2683
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
2684
2684
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
2685
2685
  }
@@ -2687,7 +2687,7 @@ const nr = /(!\[[^\]]*\]\([^)]*\))/;
2687
2687
  function se(e) {
2688
2688
  return e.replace(/\s+/g, " ").trim().split(nr).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
2689
2689
  }
2690
- function v(e) {
2690
+ function N(e) {
2691
2691
  return e.replace(
2692
2692
  /[()\s<>"]/g,
2693
2693
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
@@ -2695,20 +2695,63 @@ function v(e) {
2695
2695
  }
2696
2696
  function rr(e) {
2697
2697
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
2698
- const i = N(r, "src");
2699
- return tr.test(i) ? `![${se(N(r, "alt"))}](${v(i)})` : "";
2698
+ const i = v(r, "src");
2699
+ return tr.test(i) ? `![${se(v(r, "alt"))}](${N(i)})` : "";
2700
2700
  }).replace(
2701
2701
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
2702
2702
  (n, r, i) => {
2703
- const o = se(i.replace(/<[^>]*>/g, "")), a = N(r, "href");
2704
- return er.test(a) ? `[${o || v(a)}](${v(a)})` : o;
2703
+ const o = se(i.replace(/<[^>]*>/g, "")), a = v(r, "href");
2704
+ return er.test(a) ? `[${o || N(a)}](${N(a)})` : o;
2705
2705
  }
2706
2706
  );
2707
2707
  }
2708
+ const ir = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, or = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, ar = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi, sr = /<(?:div|p|table|ul|ol|h[1-6])\b/i, cr = 40;
2709
+ function lr(e) {
2710
+ return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
2711
+ }
2712
+ function ur(e) {
2713
+ const t = [];
2714
+ for (const a of e.matchAll(or)) {
2715
+ const s = [];
2716
+ for (const c of a[1].matchAll(ar)) {
2717
+ if (sr.test(c[3])) return null;
2718
+ s.push({
2719
+ text: lr(c[3]),
2720
+ // Excel writes both shapes, and a column of figures reads wrong ragged.
2721
+ right: /align\s*[=:]\s*["']?\s*right/i.test(c[2])
2722
+ });
2723
+ }
2724
+ if (s.length === 0) return null;
2725
+ s.some((c) => c.text !== "") && t.push(s);
2726
+ }
2727
+ const n = t.reduce((a, s) => Math.max(a, s.length), 0);
2728
+ if (t.length < 2 || n < 2) return null;
2729
+ const r = (a) => `| ${Array.from({ length: n }, (s, c) => a[c]?.text ?? "").join(" | ")} |`, i = Array.from({ length: n }, (a, s) => t[1][s]?.right ? "---:" : "---").join(
2730
+ " | "
2731
+ ), o = t.slice(1).map(r).join(`
2732
+ `);
2733
+ return `
2734
+
2735
+ ${r(t[0])}
2736
+ | ${i} |
2737
+ ${o}
2738
+
2739
+ `;
2740
+ }
2741
+ function dr(e) {
2742
+ let t = e;
2743
+ for (let n = 0; n < cr; n++) {
2744
+ const r = ir.exec(t);
2745
+ if (!r || r.index === void 0) break;
2746
+ const o = ur(r[1]) ?? `<div>${r[1]}</div>`;
2747
+ t = t.slice(0, r.index) + o + t.slice(r.index + r[0].length);
2748
+ }
2749
+ return t;
2750
+ }
2708
2751
  function ce(e, t) {
2709
2752
  let n = e;
2710
- return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<br\s*\/?>/gi, `
2711
- `), t && (n = rr(n)), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
2753
+ return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
2754
+ `), t && (n = dr(rr(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
2712
2755
 
2713
2756
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
2714
2757
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -2725,14 +2768,14 @@ function de(e) {
2725
2768
 
2726
2769
  `).trim();
2727
2770
  }
2728
- const ir = /<\s*(html|body|div|p|table|br|span)\b/i;
2729
- function Sa(e) {
2730
- return ir.test(e);
2771
+ const pr = /<\s*(html|body|div|p|table|br|span)\b/i;
2772
+ function Oa(e) {
2773
+ return pr.test(e);
2731
2774
  }
2732
- function _a(e) {
2775
+ function va(e) {
2733
2776
  return Re(e, !1);
2734
2777
  }
2735
- function Ta(e) {
2778
+ function Na(e) {
2736
2779
  return Re(e, !0);
2737
2780
  }
2738
2781
  function Re(e, t) {
@@ -2749,311 +2792,311 @@ function Re(e, t) {
2749
2792
  export {
2750
2793
  m as ACTIVITY_CATALOG,
2751
2794
  hn as AI_ATTACHMENT_LIMITS,
2752
- bo as AI_ATTACHMENT_MAX_PER_TURN,
2753
- Ao as AI_ATTACHMENT_TURN_BUDGET,
2795
+ ko as AI_ATTACHMENT_MAX_PER_TURN,
2796
+ Mo as AI_ATTACHMENT_TURN_BUDGET,
2754
2797
  fe as AI_VENDORS,
2755
2798
  tt as ALLOWED_LINK_SCHEMES,
2756
- Xo as APP_PERMISSIONS,
2799
+ na as APP_PERMISSIONS,
2757
2800
  F as ARTIFACT_MAX_BLOCKS,
2758
- Lr as ARTIFACT_MAX_BODY_BYTES,
2801
+ Fr as ARTIFACT_MAX_BODY_BYTES,
2759
2802
  C as ARTIFACT_MAX_CELL_LEN,
2760
2803
  X as ARTIFACT_MAX_KPI_ITEMS,
2761
- V as ARTIFACT_MAX_LIST_ITEMS,
2804
+ W as ARTIFACT_MAX_LIST_ITEMS,
2762
2805
  z as ARTIFACT_MAX_TABLE_COLUMNS,
2763
- W as ARTIFACT_MAX_TABLE_ROWS,
2806
+ V as ARTIFACT_MAX_TABLE_ROWS,
2764
2807
  ge as ARTIFACT_MAX_TEXT_LEN,
2765
2808
  ut as ASSIGNMENT_SCOPE_KIND,
2766
- Io as ASSIST_BANDS,
2767
- To as ASSIST_SOURCE_PROVIDER_GROUP,
2809
+ Ro as ASSIST_BANDS,
2810
+ No as ASSIST_SOURCE_PROVIDER_GROUP,
2768
2811
  St as ATTENTION_STATUSES,
2769
2812
  Oe as AUTH_APP_NAME,
2770
2813
  zt as AUTO_READY_MIN_PROPOSALS,
2771
2814
  Xt as AUTO_READY_RATE,
2772
2815
  Fe as ActivityTypeRegistry,
2773
- Sr as BUILT_IN_ONLY,
2816
+ Or as BUILT_IN_ONLY,
2774
2817
  _t as BULK_PENALTY,
2775
2818
  xn as CADENCE_FLOOR_MS,
2776
- Dn as CADENCE_MIN_NEW_SEGMENTS,
2777
- Ln as CADENCE_MIN_NOVELTY,
2819
+ Ln as CADENCE_MIN_NEW_SEGMENTS,
2820
+ Dn as CADENCE_MIN_NOVELTY,
2778
2821
  $n as CADENCE_WINDOW_MS,
2779
- Li as CLASSIFY_VARS,
2780
- Ho as CONTEXT_COLLECT_SERVICE,
2781
- $r as CORE_DIMENSIONS,
2822
+ Fi as CLASSIFY_VARS,
2823
+ Jo as CONTEXT_COLLECT_SERVICE,
2824
+ Gr as CORE_DIMENSIONS,
2782
2825
  _n as CommunicationScheme,
2783
2826
  mt as DAY_MS,
2784
- _i as DEFAULT_MEMORY_BUDGET,
2827
+ vi as DEFAULT_MEMORY_BUDGET,
2785
2828
  Hn as DEFAULT_PHONE_REGION,
2786
- Ui as EMPTY_WORKFLOW,
2787
- Go as FEATURE_FOLDER_MANAGEMENT,
2788
- jo as FEATURE_REMOTE_SEARCH,
2829
+ Vi as EMPTY_WORKFLOW,
2830
+ Xo as FEATURE_FOLDER_MANAGEMENT,
2831
+ Yo as FEATURE_REMOTE_SEARCH,
2789
2832
  It as FOLLOW_UP_HOURS,
2790
2833
  ft as HOUR_MS,
2791
- ir as HTML_BODY_RE,
2834
+ pr as HTML_BODY_RE,
2792
2835
  g as INELIGIBLE,
2793
- Fo as INSTALLATION_HEADER,
2836
+ Zo as INSTALLATION_HEADER,
2794
2837
  Bt as INTERACTION_KIND,
2795
- Uo as InteractionParticipantRole,
2838
+ Vo as InteractionParticipantRole,
2796
2839
  Rt as KB_FALLBACK_LOCALE,
2797
2840
  Z as KB_LOCALES,
2798
- D as LOOSE_STATUSES,
2799
- cr as MAX_ACTIONS,
2841
+ L as LOOSE_STATUSES,
2842
+ hr as MAX_ACTIONS,
2800
2843
  dt as MAX_ASSIGNMENT_TURNS,
2801
- or as MAX_BLOCKS,
2844
+ fr as MAX_BLOCKS,
2802
2845
  _e as MAX_COLLECTION_DEPTH,
2803
- ar as MAX_FIELDS,
2804
- sr as MAX_LIST_ITEMS,
2805
- Ai as MAX_MEMORY_BROWSE,
2806
- Si as MAX_MEMORY_BUDGET,
2807
- bi as MAX_MEMORY_CHARS,
2846
+ mr as MAX_FIELDS,
2847
+ gr as MAX_LIST_ITEMS,
2848
+ Mi as MAX_MEMORY_BROWSE,
2849
+ Oi as MAX_MEMORY_BUDGET,
2850
+ ki as MAX_MEMORY_CHARS,
2808
2851
  Bn as MAX_SHOWN_KEYS,
2809
2852
  en as MAX_TOPIC_CANDIDATES,
2810
2853
  Qt as MAX_TOPIC_EXAMPLES,
2811
2854
  O as MAX_TOPIC_EXAMPLE_CHARS,
2812
- Ei as MIN_MEMORY_BUDGET,
2813
- ma as NAV_NOTICE_SLOT,
2814
- Wo as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2815
- Ii as ONBOARDING_SOURCE_PROVIDER_GROUP,
2816
- L as PHONE_REGIONS,
2855
+ Ci as MIN_MEMORY_BUDGET,
2856
+ _a as NAV_NOTICE_SLOT,
2857
+ ea as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2858
+ Ri as ONBOARDING_SOURCE_PROVIDER_GROUP,
2859
+ D as PHONE_REGIONS,
2817
2860
  ke as PRESENCE_ONLINE_WINDOW_MS,
2818
2861
  In as PRESENCE_SURVIVES_OFFLINE,
2819
- Mi as PROFILE_TOOL_DISPOSITIONS,
2820
- Po as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2821
- Lo as PROVIDER_FEATURE_MESSAGE_WINDOW,
2862
+ xi as PROFILE_TOOL_DISPOSITIONS,
2863
+ Wo as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2864
+ Fo as PROVIDER_FEATURE_MESSAGE_WINDOW,
2822
2865
  qn as PUBLIC_EMAIL_DOMAINS,
2823
2866
  Q as READ_STEP_TYPES,
2824
- Dt as RELATED_SUBJECT_KINDS,
2867
+ Lt as RELATED_SUBJECT_KINDS,
2825
2868
  Me as RESERVED_STATUS_KEYS,
2826
- na as RESOURCE_ATTACHED_SERVICE,
2827
- Qo as RESOURCE_DESCRIBE_SERVICE,
2828
- ta as RESOURCE_RESOLVE_SERVICE,
2829
- ea as RESOURCE_SEARCH_SERVICE,
2830
- fa as SETTINGS_CATEGORIES,
2831
- Yr as SIGNATURE_INTENTS,
2869
+ ua as RESOURCE_ATTACHED_SERVICE,
2870
+ sa as RESOURCE_DESCRIBE_SERVICE,
2871
+ la as RESOURCE_RESOLVE_SERVICE,
2872
+ ca as RESOURCE_SEARCH_SERVICE,
2873
+ Sa as SETTINGS_CATEGORIES,
2874
+ ri as SIGNATURE_INTENTS,
2832
2875
  Tt as SLA_HOURS_BY_PRIORITY,
2833
- Vt as STEP_MAX_TOKENS_MAX,
2876
+ Wt as STEP_MAX_TOKENS_MAX,
2834
2877
  Ft as STEP_MAX_TOKENS_MIN,
2835
2878
  bt as SUMMARY_MIN_LAST_CHARS,
2836
2879
  At as SUMMARY_MIN_MESSAGES,
2837
- ua as SYNC_RUN_MAX_ERRORS,
2838
- ca as SYNC_SOURCE_PROVIDER_GROUP,
2839
- la as SYNC_TARGET_PROVIDER_GROUP,
2880
+ Aa as SYNC_RUN_MAX_ERRORS,
2881
+ ha as SYNC_SOURCE_PROVIDER_GROUP,
2882
+ ya as SYNC_TARGET_PROVIDER_GROUP,
2840
2883
  lt as TERMINAL_ASSIGNMENT_STATUSES,
2841
2884
  Yt as TERMINAL_RUN_STATUSES,
2842
- Di as TRIGGER_VARS,
2843
- Bo as UNSUPPORTED,
2885
+ Hi as TRIGGER_VARS,
2886
+ qo as UNSUPPORTED,
2844
2887
  Je as USAGE_DIMENSIONS,
2845
2888
  Ze as USAGE_DIMENSION_IDS,
2846
- wi as WORK_AREAS,
2847
- ro as WORK_COMMENT_ADDED,
2848
- io as WORK_ITEM_ASSIGNED,
2889
+ $i as WORK_AREAS,
2890
+ po as WORK_COMMENT_ADDED,
2891
+ fo as WORK_ITEM_ASSIGNED,
2849
2892
  an as WORK_ITEM_SCOPE_KIND,
2850
- oo as WORK_ITEM_STATUS_CHANGED,
2893
+ mo as WORK_ITEM_STATUS_CHANGED,
2851
2894
  sn as WORK_PROJECT_SCOPE_KIND,
2852
2895
  _ as W_PRIORITY,
2853
- eo as acceptExampleCandidate,
2896
+ co as acceptExampleCandidate,
2854
2897
  Pt as actingIdentityKey,
2855
- Zi as activeWorkTypes,
2856
- ur as activityIconOf,
2857
- br as activityJoinUrl,
2858
- Ge as activitySnippet,
2859
- je as activityTextParams,
2860
- Ar as activityTimelineText,
2861
- Ve as activityTimestamp,
2898
+ ao as activeWorkTypes,
2899
+ Ar as activityIconOf,
2900
+ kr as activityJoinUrl,
2901
+ je as activitySnippet,
2902
+ Ge as activityTextParams,
2903
+ Mr as activityTimelineText,
2904
+ We as activityTimestamp,
2862
2905
  d as activityTypeInfo,
2863
- Oi as actorKey,
2864
- Qi as addExampleCandidate,
2865
- qo as agePresenceEntry,
2906
+ Pi as actorKey,
2907
+ so as addExampleCandidate,
2908
+ ia as agePresenceEntry,
2866
2909
  gn as aiAttachmentKind,
2867
- Eo as aiAttachmentRejection,
2910
+ Co as aiAttachmentRejection,
2868
2911
  H as aiBudgetLimit,
2869
- vr as aiBudgetPeriodKey,
2870
- We as aiBudgetPeriodStart,
2871
- Nr as aiBudgetState,
2872
- Or as aiVendorAcceptsAttachment,
2873
- Mr as aiVendorDefaultModel,
2874
- wr as aiVendorLabel,
2875
- Cr as aiVendorNeedsBaseUrl,
2876
- kr as aiVendorsWith,
2877
- Ne as appNameFromPath,
2878
- zi as applyRounding,
2879
- qr as applySignature,
2880
- Wt as approvalRate,
2881
- Ur as artifactBodyBytes,
2882
- Kr as artifactOutline,
2883
- Gr as artifactToMarkdown,
2884
- $i as assignmentMismatch,
2885
- Vr as assignmentScopeKey,
2886
- zr as assignmentSubject,
2887
- Er as buildActivityPreview,
2888
- vo as buildChannelIntents,
2889
- jr as buildShareKeys,
2890
- jn as buildWindow,
2891
- pi as canNestUnder,
2892
- mr as carriesText,
2893
- mi as categoryLabel,
2912
+ Kr as aiBudgetPeriodKey,
2913
+ Ve as aiBudgetPeriodStart,
2914
+ Ur as aiBudgetState,
2915
+ Pr as aiVendorAcceptsAttachment,
2916
+ xr as aiVendorDefaultModel,
2917
+ $r as aiVendorLabel,
2918
+ Dr as aiVendorNeedsBaseUrl,
2919
+ Lr as aiVendorsWith,
2920
+ ve as appNameFromPath,
2921
+ to as applyRounding,
2922
+ ii as applySignature,
2923
+ Vt as approvalRate,
2924
+ Vr as artifactBodyBytes,
2925
+ zr as artifactOutline,
2926
+ Xr as artifactToMarkdown,
2927
+ Gi as assignmentMismatch,
2928
+ Qr as assignmentScopeKey,
2929
+ ti as assignmentSubject,
2930
+ Cr as buildActivityPreview,
2931
+ Ko as buildChannelIntents,
2932
+ Yr as buildShareKeys,
2933
+ Gn as buildWindow,
2934
+ Ei as canNestUnder,
2935
+ _r as carriesText,
2936
+ _i as categoryLabel,
2894
2937
  un as categoryOf,
2895
- Do as channelKindForScheme,
2896
- dr as channelKindOf,
2897
- Pi as clampStepMaxTokens,
2898
- Ta as cleanMessageMarkdown,
2899
- _a as cleanMessageText,
2900
- Mo as compareAssistRank,
2938
+ Ho as channelKindForScheme,
2939
+ br as channelKindOf,
2940
+ Wi as clampStepMaxTokens,
2941
+ Na as cleanMessageMarkdown,
2942
+ va as cleanMessageText,
2943
+ xo as compareAssistRank,
2901
2944
  Zt as compareWorkTypes,
2902
- Xr as decideAssignmentState,
2903
- pa as decideCadence,
2904
- Oo as decideIncomingCall,
2945
+ ni as decideAssignmentState,
2946
+ Ea as decideCadence,
2947
+ Po as decideIncomingCall,
2905
2948
  $t as defaultLocaleOf,
2906
- mo as defaultStatusKey,
2907
- Ko as defineIntent,
2908
- Nt as depthOf,
2909
- Yo as derivePresence,
2910
- No as disabledIntentsFromCapabilities,
2911
- Wi as elapsedSeconds,
2912
- ya as emailDomain,
2913
- Ea as endpointKey,
2949
+ _o as defaultStatusKey,
2950
+ zo as defineIntent,
2951
+ vt as depthOf,
2952
+ ra as derivePresence,
2953
+ Uo as disabledIntentsFromCapabilities,
2954
+ eo as elapsedSeconds,
2955
+ wa as emailDomain,
2956
+ Ca as endpointKey,
2914
2957
  kn as extractParams,
2915
2958
  Kn as extractTerms,
2916
- $o as filterByEndpoint,
2917
- Ro as filterByIntent,
2959
+ Go as filterByEndpoint,
2960
+ jo as filterByIntent,
2918
2961
  Sn as filterByTargetScheme,
2919
2962
  T as findAiVendor,
2920
- Vo as flattenLocales,
2963
+ Qo as flattenLocales,
2921
2964
  Xe as floorToPeriod,
2922
- Lt as formatActingIdentity,
2923
- Yi as formatClock,
2924
- Xi as formatHm,
2925
- so as formatItemKey,
2965
+ Dt as formatActingIdentity,
2966
+ ro as formatClock,
2967
+ no as formatHm,
2968
+ ho as formatItemKey,
2926
2969
  ze as formatPeriod,
2927
- _o as freshSources,
2928
- _r as getActivitySeenUserIds,
2929
- Jr as getContactEndpoints,
2930
- si as getShortTitle,
2931
- ai as getUrgencyScore,
2970
+ vo as freshSources,
2971
+ vr as getActivitySeenUserIds,
2972
+ oi as getContactEndpoints,
2973
+ gi as getShortTitle,
2974
+ mi as getUrgencyScore,
2932
2975
  Te as heightOf,
2933
- li as helpCenterText,
2934
- xi as humanizeAction,
2976
+ yi as helpCenterText,
2977
+ Bi as humanizeAction,
2935
2978
  Ht as interactionIdOf,
2936
- no as isAgentUser,
2937
- ii as isAssigned,
2938
- Fr as isAssignmentTerminal,
2939
- Gt as isAssignmentTrigger,
2940
- ji as isAutoReady,
2979
+ uo as isAgentUser,
2980
+ pi as isAssigned,
2981
+ Zr as isAssignmentTerminal,
2982
+ jt as isAssignmentTrigger,
2983
+ Yi as isAutoReady,
2941
2984
  Ot as isAwaitingThem,
2942
- Ir as isChatMessageActivity,
2943
- oi as isClosed,
2944
- hr as isConnectedType,
2945
- ia as isDeepLink,
2946
- vt as isDescendant,
2947
- Zr as isEligible,
2948
- Tr as isEmailActivity,
2949
- Sa as isHtmlBody,
2950
- Hi as isInFlight,
2985
+ Rr as isChatMessageActivity,
2986
+ fi as isClosed,
2987
+ Ir as isConnectedType,
2988
+ pa as isDeepLink,
2989
+ Nt as isDescendant,
2990
+ ai as isEligible,
2991
+ Nr as isEmailActivity,
2992
+ Oa as isHtmlBody,
2993
+ Ji as isInFlight,
2951
2994
  Et as isInteractionUnseen,
2952
- oa as isLandingPath,
2995
+ fa as isLandingPath,
2953
2996
  yt as isLikelyBulk,
2954
2997
  pe as isMessageShape,
2955
- pr as isMessageType,
2998
+ Er as isMessageType,
2956
2999
  On as isMoreSpecificPattern,
2957
- So as isOutwardTool,
3000
+ Oo as isOutwardTool,
2958
3001
  Mt as isParked,
2959
3002
  qt as isPaused,
2960
- gr as isPlaybookAuthoredType,
2961
- Aa as isPublicEmailDomain,
2962
- sa as isPublicPath,
3003
+ Tr as isPlaybookAuthoredType,
3004
+ Ma as isPublicEmailDomain,
3005
+ ga as isPublicPath,
2963
3006
  kt as isReminderActive,
2964
- fr as isReplyableType,
2965
- ni as isSlaAtRisk,
2966
- Bi as isTerminal,
2967
- ei as isThreadLongEnough,
2968
- yr as isTranscriptType,
2969
- go as isWorkClosed,
2970
- Ji as isWorkTypeVisible,
2971
- uo as itemDossierKeys,
3007
+ Sr as isReplyableType,
3008
+ ui as isSlaAtRisk,
3009
+ qi as isTerminal,
3010
+ ci as isThreadLongEnough,
3011
+ wr as isTranscriptType,
3012
+ To as isWorkClosed,
3013
+ oo as isWorkTypeVisible,
3014
+ bo as itemDossierKeys,
2972
3015
  ln as ladderFor,
2973
- ci as linkLabel,
2974
- Rr as listeningAllowed,
2975
- di as localeInstruction,
2976
- ui as localeName,
2977
- fi as localesOf,
2978
- ga as looksLikeEmail,
2979
- xo as matchContactToIntents,
2980
- Nn as matchPublicRoute,
2981
- hi as mcpCredentialScope,
2982
- yi as mcpToolPrefix,
2983
- da as mergeShownKeys,
3016
+ hi as linkLabel,
3017
+ jr as listeningAllowed,
3018
+ bi as localeInstruction,
3019
+ Ai as localeName,
3020
+ Si as localesOf,
3021
+ Ta as looksLikeEmail,
3022
+ Bo as matchContactToIntents,
3023
+ vn as matchPublicRoute,
3024
+ Ii as mcpCredentialScope,
3025
+ wi as mcpToolPrefix,
3026
+ ba as mergeShownKeys,
2984
3027
  Ke as messageCountsAs,
2985
- ba as needsPhoneRegion,
2986
- Pr as normalizeArtifactBlocks,
2987
- lr as normalizeBlocks,
2988
- ve as normalizeEmail,
3028
+ ka as needsPhoneRegion,
3029
+ Wr as normalizeArtifactBlocks,
3030
+ yr as normalizeBlocks,
3031
+ Ne as normalizeEmail,
2989
3032
  h as normalizeExample,
2990
- zo as notificationPrefKey,
2991
- Gn as novelty,
2992
- Qr as parkMarksById,
2993
- ki as parseActingIdentity,
2994
- co as parseItemKey,
3033
+ ta as notificationPrefKey,
3034
+ jn as novelty,
3035
+ si as parkMarksById,
3036
+ Li as parseActingIdentity,
3037
+ yo as parseItemKey,
2995
3038
  Mn as pathToRegex,
2996
- xr as periodsInRange,
2997
- ha as phoneSuffix,
3039
+ Br as periodsInRange,
3040
+ Ia as phoneSuffix,
2998
3041
  Pe as plainTextFromMarkdown,
2999
3042
  Kt as playbookActor,
3000
- Gi as procedureOf,
3001
- po as projectDossierKeys,
3043
+ Xi as procedureOf,
3044
+ Eo as projectDossierKeys,
3002
3045
  Cn as publicBasePathFor,
3003
- aa as publicRoutePatterns,
3046
+ ma as publicRoutePatterns,
3004
3047
  R as readPath,
3005
3048
  ee as readStepError,
3006
3049
  wt as recencyOf,
3007
- jt as refKey,
3050
+ Gt as refKey,
3008
3051
  Yn as registrableDomain,
3009
3052
  nn as rejectExampleCandidate,
3010
- Ti as relatedByDefault,
3053
+ Ni as relatedByDefault,
3011
3054
  bn as resolveAccountCapabilities,
3012
3055
  $ as resolveActivityText,
3013
3056
  An as resolveChannelIntents,
3014
3057
  pt as resolveSignature,
3015
- Jo as resolveWorkMode,
3016
- ra as resourceKindOf,
3017
- Ci as runActor,
3018
- Vi as runInteractionId,
3058
+ oa as resolveWorkMode,
3059
+ da as resourceKindOf,
3060
+ Di as runActor,
3061
+ Qi as runInteractionId,
3019
3062
  ot as sanitizeInline,
3020
3063
  Rn as sanitizeTranscript,
3021
- ri as scoreInteraction,
3022
- ao as scoreWorkItem,
3023
- gi as selectLenses,
3024
- Co as sessionsHoldCannotReach,
3025
- ko as sessionsToHold,
3064
+ di as scoreInteraction,
3065
+ go as scoreWorkItem,
3066
+ Ti as selectLenses,
3067
+ Do as sessionsHoldCannotReach,
3068
+ Lo as sessionsToHold,
3026
3069
  Ae as shareKeyForTeam,
3027
3070
  ye as shareKeyForUser,
3028
- Br as shareKeysForViewer,
3029
- Zo as shouldRunAudioPipeline,
3030
- ti as slaHoursByInbox,
3071
+ qr as shareKeysForViewer,
3072
+ aa as shouldRunAudioPipeline,
3073
+ li as slaHoursByInbox,
3031
3074
  Ct as slaHoursFor,
3032
3075
  dn as sortStatuses,
3033
3076
  yn as sourceKey,
3034
- fo as statusIn,
3035
- Ki as stepsOf,
3077
+ So as statusIn,
3078
+ zi as stepsOf,
3036
3079
  Ue as stripHtml,
3037
- Fi as subjectKeyOf,
3080
+ Zi as subjectKeyOf,
3038
3081
  Ie as subjectOf,
3039
- wo as subjectRef,
3040
- lo as suggestProjectKey,
3041
- Ri as targetById,
3042
- vi as targetForActivityType,
3082
+ $o as subjectRef,
3083
+ Ao as suggestProjectKey,
3084
+ ji as targetById,
3085
+ Ki as targetForActivityType,
3043
3086
  Ut as toActingIdentity,
3044
3087
  oe as toE164,
3045
- Hr as toolSourceKinds,
3088
+ Jr as toolSourceKinds,
3046
3089
  rn as topicOfferedForTeam,
3047
- to as topicsForTeam,
3090
+ lo as topicsForTeam,
3048
3091
  tn as truncateExample,
3049
- ho as uniqueWorkStatusKey,
3050
- qi as uniqueWorkTypeKey,
3092
+ Io as uniqueWorkStatusKey,
3093
+ io as uniqueWorkTypeKey,
3051
3094
  Qe as usageMetricId,
3052
- Dr as usageMetrics,
3053
- yo as validateStatuses,
3054
- Ni as valueAtPath,
3095
+ Hr as usageMetrics,
3096
+ wo as validateStatuses,
3097
+ Ui as valueAtPath,
3055
3098
  x as waitHoursOf,
3056
- Wr as wakesAssignment,
3099
+ ei as wakesAssignment,
3057
3100
  cn as workItemScopeKey,
3058
3101
  we as workProjectScopeKey,
3059
3102
  pn as workStatusKey,