@opencxh/domain 1.196.0 → 1.197.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 Yn = 10, qn = 10, Jn = 10, Zn = 5, Ne = /* @__PURE__ */ new Set([
1
+ const qn = 10, Jn = 10, Zn = 10, Qn = 5, ve = /* @__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 Qn(e, t = () => {
17
+ function er(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,7 +25,7 @@ function Qn(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const i = r;
28
- if (!Ne.has(i.type)) {
28
+ if (!ve.has(i.type)) {
29
29
  t(`unknown block type ${String(i.type)}`);
30
30
  continue;
31
31
  }
@@ -69,7 +69,7 @@ function Qn(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- function ve(e) {
72
+ function Ne(e) {
73
73
  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();
74
74
  }
75
75
  function b(e) {
@@ -439,40 +439,40 @@ const m = {
439
439
  }
440
440
  };
441
441
  function P(e) {
442
- const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() || ve(t.body ?? "");
442
+ const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() || Ne(t.body ?? "");
443
443
  return t.subject ? `${t.subject} — ${n}` : n;
444
444
  }
445
445
  function d(e) {
446
446
  return m[e];
447
447
  }
448
- function er(e) {
448
+ function tr(e) {
449
449
  return d(e)?.icon ?? "circle";
450
450
  }
451
- function tr(e) {
451
+ function nr(e) {
452
452
  return d(e)?.channelKind;
453
453
  }
454
454
  function le(e) {
455
455
  return e === "message" || e === "note";
456
456
  }
457
- function nr(e) {
457
+ function rr(e) {
458
458
  return le(d(e)?.shape);
459
459
  }
460
- function rr(e) {
460
+ function ir(e) {
461
461
  return d(e)?.replyable === !0;
462
462
  }
463
- function ir(e) {
463
+ function or(e) {
464
464
  return d(e)?.carriesText === !0;
465
465
  }
466
466
  function Re(e) {
467
467
  return d(e)?.countsAs;
468
468
  }
469
- function or(e) {
469
+ function ar(e) {
470
470
  return d(e)?.playbookAuthored === !0;
471
471
  }
472
- function ar(e) {
472
+ function sr(e) {
473
473
  return d(e)?.connected === !0;
474
474
  }
475
- function sr(e) {
475
+ function cr(e) {
476
476
  const t = d(e);
477
477
  return t?.shape === "artifact" && t?.carriesText === !0;
478
478
  }
@@ -480,15 +480,15 @@ function $e(e) {
480
480
  const t = d(e.type)?.snippet;
481
481
  return t ? t(e) : "";
482
482
  }
483
- function cr(e, t) {
483
+ function lr(e, t) {
484
484
  const n = d(e.type)?.timeline;
485
485
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
486
486
  }
487
- function lr(e) {
487
+ function ur(e) {
488
488
  const t = d(e.type)?.joinUrl;
489
489
  return t ? t(e) : void 0;
490
490
  }
491
- function N(e, t) {
491
+ function v(e, t) {
492
492
  let n = e;
493
493
  for (const r of t.split(".")) {
494
494
  if (n == null || typeof n != "object") return "";
@@ -496,14 +496,14 @@ function N(e, t) {
496
496
  }
497
497
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
498
498
  }
499
- function v(e, t, n) {
499
+ function N(e, t, n) {
500
500
  if (e === void 0) return null;
501
501
  if (typeof e == "string") return e || null;
502
502
  if ("value" in e)
503
- return N(t, e.value) || null;
503
+ return v(t, e.value) || null;
504
504
  const r = {};
505
505
  for (const [o, a] of Object.entries(e.params ?? {}))
506
- r[o] = N(t, a);
506
+ r[o] = v(t, a);
507
507
  const i = n(e.key, r);
508
508
  return i === e.key ? null : i;
509
509
  }
@@ -511,7 +511,7 @@ function xe(e, t) {
511
511
  if (!e || typeof e == "string" || "value" in e) return null;
512
512
  const n = {};
513
513
  for (const [r, i] of Object.entries(e.params ?? {}))
514
- n[r] = N(t, i);
514
+ n[r] = v(t, i);
515
515
  return { key: e.key, params: n };
516
516
  }
517
517
  const U = 140;
@@ -519,8 +519,8 @@ function De(e) {
519
519
  const t = e.trim();
520
520
  return t.length <= U ? t : `${t.slice(0, U - 1).trimEnd()}…`;
521
521
  }
522
- function ur(e, t) {
523
- const n = xe(t?.text, e), r = t ? v(t.text, e, (i) => i) : null;
522
+ function dr(e, t) {
523
+ const n = xe(t?.text, e), r = t ? N(t.text, e, (i) => i) : null;
524
524
  return {
525
525
  activityId: e.id,
526
526
  type: e.type,
@@ -589,14 +589,14 @@ class Pe {
589
589
  const r = m[t.type];
590
590
  if (r?.timeline) return r.timeline(t, n);
591
591
  const i = this.declared.get(t.type);
592
- return v(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
592
+ return N(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
593
593
  }
594
594
  /** The line for the inbox list. Empty when the type has nothing to show. */
595
595
  snippet(t) {
596
596
  const n = m[t.type];
597
597
  if (n?.snippet) return n.snippet(t);
598
598
  const r = this.declared.get(t.type);
599
- return v(r?.text, t, this.translate) ?? "";
599
+ return N(r?.text, t, this.translate) ?? "";
600
600
  }
601
601
  /** The descriptor as it arrived; needed to store `text` as a key. */
602
602
  descriptor(t) {
@@ -649,8 +649,8 @@ class Pe {
649
649
  return this.translate;
650
650
  }
651
651
  }
652
- const dr = new Pe();
653
- function pr(e, t, n = []) {
652
+ const pr = new Pe();
653
+ function fr(e, t, n = []) {
654
654
  const r = e.createdAt;
655
655
  if (!r) return [];
656
656
  const i = new Set(n);
@@ -659,10 +659,10 @@ function pr(e, t, n = []) {
659
659
  function Ue(e) {
660
660
  return e.createdAt ?? 0;
661
661
  }
662
- function fr(e) {
662
+ function mr(e) {
663
663
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
664
664
  }
665
- function mr(e) {
665
+ function gr(e) {
666
666
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
667
667
  }
668
668
  const ue = [
@@ -758,23 +758,23 @@ const ue = [
758
758
  function T(e) {
759
759
  return ue.find((t) => t.id === e);
760
760
  }
761
- function gr(e) {
761
+ function hr(e) {
762
762
  return T(e)?.label ?? e;
763
763
  }
764
- function hr(e, t = "gpt-5-mini") {
764
+ function yr(e, t = "gpt-5-mini") {
765
765
  return T(e)?.defaultModel ?? t;
766
766
  }
767
- function yr(e) {
767
+ function Ar(e) {
768
768
  return ue.filter((t) => t.capabilities.includes(e));
769
769
  }
770
- function Ar(e) {
770
+ function br(e) {
771
771
  const t = T(e);
772
772
  return !!t && !t.baseUrl;
773
773
  }
774
- function br(e, t) {
774
+ function Er(e, t) {
775
775
  return t === "text" ? !0 : T(e)?.attachmentKinds?.includes(t) === !0;
776
776
  }
777
- function Er(e, t) {
777
+ function Sr(e, t) {
778
778
  if (!e.enabled) return "ok";
779
779
  const n = G(e.hardLimitNanos), r = G(e.softLimitNanos);
780
780
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -786,14 +786,14 @@ function Ke(e, t = "month") {
786
786
  const n = new Date(e);
787
787
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
788
788
  }
789
- function Sr(e, t = "month") {
789
+ function _r(e, t = "month") {
790
790
  const n = new Date(Ke(e, t));
791
791
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
792
792
  }
793
- function _r(e) {
793
+ function Tr(e) {
794
794
  return e?.listeningEnabled !== !1;
795
795
  }
796
- const Tr = [
796
+ const Ir = [
797
797
  { id: "agent", label: "Agent", labelSource: "user" },
798
798
  { id: "team", label: "Team", labelSource: "team" },
799
799
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -815,7 +815,7 @@ function Ge(e, t) {
815
815
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
816
816
  }
817
817
  const Be = 36e5, He = 864e5;
818
- function Ir(e, t, n) {
818
+ function wr(e, t, n) {
819
819
  const r = n === "hour" ? Be : He, i = [];
820
820
  for (let o = Ge(e, n); o <= t; o += r)
821
821
  i.push(je(o, n));
@@ -828,7 +828,7 @@ const Fe = [
828
828
  function We(e, t) {
829
829
  return `${e}.usage.${t}`;
830
830
  }
831
- function wr(e, t) {
831
+ function Mr(e, t) {
832
832
  return t.map((n) => ({
833
833
  id: We(e, n.unit),
834
834
  label: n.label,
@@ -843,7 +843,7 @@ function wr(e, t) {
843
843
  ]
844
844
  }));
845
845
  }
846
- const de = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), B = 200, H = 100, F = 200, V = 12, W = 4, pe = 4e3, C = 500, Mr = 256 * 1024, ze = /* @__PURE__ */ new Set([
846
+ const de = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), B = 200, H = 100, F = 200, V = 12, W = 4, pe = 4e3, C = 500, kr = 256 * 1024, ze = /* @__PURE__ */ new Set([
847
847
  "heading",
848
848
  "paragraph",
849
849
  "list",
@@ -912,7 +912,7 @@ function Qe(e, t = pe) {
912
912
  function et(e, t = "info") {
913
913
  return typeof e == "string" && de.has(e) ? e : t;
914
914
  }
915
- function kr(e, t = () => {
915
+ function Cr(e, t = () => {
916
916
  }) {
917
917
  if (!Array.isArray(e)) return [];
918
918
  const n = [];
@@ -1064,10 +1064,10 @@ function kr(e, t = () => {
1064
1064
  }
1065
1065
  return n;
1066
1066
  }
1067
- function Cr(e) {
1067
+ function Or(e) {
1068
1068
  return JSON.stringify(e).length;
1069
1069
  }
1070
- function Or(e) {
1070
+ function vr(e) {
1071
1071
  return {
1072
1072
  blocks: e.length,
1073
1073
  types: e.map((t) => t.type),
@@ -1133,40 +1133,40 @@ function Nr(e, t) {
1133
1133
  `;
1134
1134
  }
1135
1135
  const me = (e) => `user:${e}`, ge = (e) => `team:${e}`;
1136
- function vr(e) {
1136
+ function Rr(e) {
1137
1137
  const t = /* @__PURE__ */ new Set();
1138
1138
  for (const n of e ?? [])
1139
1139
  n?.id && (n.kind === "user" && t.add(me(n.id)), n.kind === "team" && t.add(ge(n.id)));
1140
1140
  return [...t].sort();
1141
1141
  }
1142
- function Rr(e, t) {
1142
+ function $r(e, t) {
1143
1143
  return [me(e), ...t.map(ge)];
1144
1144
  }
1145
- function $r(e) {
1145
+ function xr(e) {
1146
1146
  const t = /* @__PURE__ */ new Set();
1147
1147
  for (const n of e ?? [])
1148
1148
  n?.kind && t.add(n.kind);
1149
1149
  return [...t];
1150
1150
  }
1151
1151
  const nt = ["done", "escalated"];
1152
- function xr(e) {
1152
+ function Dr(e) {
1153
1153
  return nt.includes(e);
1154
1154
  }
1155
1155
  const rt = "assignment";
1156
- function Dr(e) {
1156
+ function Lr(e) {
1157
1157
  return `${rt}:${e}`;
1158
1158
  }
1159
- function Lr(e, t, n) {
1159
+ function Pr(e, t, n) {
1160
1160
  if (e.direction === "inbound") return !0;
1161
1161
  if (e.author?.type === "user" && e.author.id === t) return !1;
1162
1162
  const r = e.payload?.mentions;
1163
1163
  return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1164
1164
  }
1165
- function Pr(e) {
1165
+ function Ur(e) {
1166
1166
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1167
1167
  }
1168
1168
  const it = 12;
1169
- function Ur(e, t, n = it) {
1169
+ function Kr(e, t, n = it) {
1170
1170
  const r = t + 1;
1171
1171
  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 ? {
1172
1172
  status: "escalated",
@@ -1180,28 +1180,28 @@ function Ur(e, t, n = it) {
1180
1180
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1181
1181
  };
1182
1182
  }
1183
- const Kr = /* @__PURE__ */ new Set(["mail", "message"]);
1183
+ const jr = /* @__PURE__ */ new Set(["mail", "message"]);
1184
1184
  function ot(e, t) {
1185
1185
  const n = e.settings?.signatures?.[t];
1186
1186
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1187
1187
  }
1188
- function jr(e, t, n, r = "html") {
1188
+ function Gr(e, t, n, r = "html") {
1189
1189
  if (!e) return n;
1190
1190
  const i = ot(e, t);
1191
1191
  return i ? `${n}${r === "text" ? `
1192
1192
 
1193
1193
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1194
1194
  }
1195
- function Gr(e) {
1195
+ function Br(e) {
1196
1196
  return e.endpoints ?? [];
1197
1197
  }
1198
- const at = 36e5, st = 864e5, g = -1 / 0, Br = (e) => e.score > g, _ = {
1198
+ const at = 36e5, st = 864e5, g = -1 / 0, Hr = (e) => e.score > g, _ = {
1199
1199
  urgent: 40,
1200
1200
  high: 25,
1201
1201
  normal: 10,
1202
1202
  low: 0
1203
1203
  };
1204
- function Hr(e) {
1204
+ function Fr(e) {
1205
1205
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1206
1206
  }
1207
1207
  const ct = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, lt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
@@ -1209,7 +1209,7 @@ function ut(e, t) {
1209
1209
  return !!(e && ct.test(e) || t && lt.test(t));
1210
1210
  }
1211
1211
  const dt = 3, pt = 600;
1212
- function Fr(e, t) {
1212
+ function Vr(e, t) {
1213
1213
  return e >= dt || t >= pt;
1214
1214
  }
1215
1215
  function ft(e, t) {
@@ -1237,17 +1237,27 @@ const he = (e) => Re(e) === "outbound_message", ye = (e) => mt.includes(e);
1237
1237
  function R(e, t) {
1238
1238
  return Math.max(0, (t - At(e)) / at);
1239
1239
  }
1240
- function Vr(e, t) {
1241
- return !ye(e.status) || e.firstResponseAt ? !1 : R(e, t) > ht[e.priority ?? "normal"];
1242
- }
1243
1240
  function St(e, t) {
1241
+ const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1242
+ return typeof n == "number" && n > 0 ? n : ht[e.priority ?? "normal"];
1243
+ }
1244
+ function Wr(e) {
1245
+ const t = {};
1246
+ for (const n of e)
1247
+ typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1248
+ return t;
1249
+ }
1250
+ function zr(e, t, n) {
1251
+ return !ye(e.status) || e.firstResponseAt ? !1 : R(e, t) > St(e, n);
1252
+ }
1253
+ function _t(e, t) {
1244
1254
  const n = e.lastActivityPreview;
1245
1255
  return n?.direction !== "outbound" || !he(n.type) ? !1 : R(e, t) < yt;
1246
1256
  }
1247
- function Wr(e, t) {
1257
+ function Xr(e, t) {
1248
1258
  if (!ye(e.status)) return { score: g, reasons: [] };
1249
1259
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: g, reasons: [] };
1250
- if (St(e, t.now)) return { score: g, reasons: [] };
1260
+ if (_t(e, t.now)) return { score: g, reasons: [] };
1251
1261
  if (bt(e, t)) return { score: g, reasons: [] };
1252
1262
  let n = 0;
1253
1263
  const r = [], i = e.priority ?? "normal";
@@ -1260,17 +1270,17 @@ function Wr(e, t) {
1260
1270
  const a = e.lastActivityPreview;
1261
1271
  return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && he(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), ut(e.remoteParty?.resource, e.lastActivityPreview?.snippet) && (n -= gt, r.push("bulk")), { score: n, reasons: r };
1262
1272
  }
1263
- const zr = (e) => !!e.assignedUserId || !!e.assignedInboxId, Xr = (e) => e.status === "closed", Yr = (e) => ({
1273
+ const Yr = (e) => !!e.assignedUserId || !!e.assignedInboxId, qr = (e) => e.status === "closed", Jr = (e) => ({
1264
1274
  urgent: 10,
1265
1275
  high: 5,
1266
1276
  normal: 2,
1267
1277
  low: 1
1268
- })[e.priority] || 0, qr = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1269
- function Jr(e, t) {
1278
+ })[e.priority] || 0, Zr = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1279
+ function Qr(e, t) {
1270
1280
  const n = e.labels ?? [];
1271
1281
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1272
1282
  }
1273
- function Zr(e, t, n) {
1283
+ function ei(e, t, n) {
1274
1284
  const r = e.translations ?? [];
1275
1285
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1276
1286
  }
@@ -1293,15 +1303,15 @@ function Ae(e) {
1293
1303
  const t = (e ?? "").toLowerCase();
1294
1304
  return q.find((n) => n.code === t) ?? q.find((n) => n.code === t.split("-")[0]);
1295
1305
  }
1296
- function Qr(e) {
1306
+ function ti(e) {
1297
1307
  return Ae(e)?.label ?? e;
1298
1308
  }
1299
- function ei(e) {
1309
+ function ni(e) {
1300
1310
  const t = Ae(e);
1301
1311
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1302
1312
  }
1303
1313
  const be = 3;
1304
- function _t(e, t) {
1314
+ function Tt(e, t) {
1305
1315
  const n = /* @__PURE__ */ new Set();
1306
1316
  let r = 1, i = t.get(e)?.parentId;
1307
1317
  for (; i; ) {
@@ -1310,15 +1320,15 @@ function _t(e, t) {
1310
1320
  }
1311
1321
  return r;
1312
1322
  }
1313
- function ti(e, t, n) {
1323
+ function ri(e, t, n) {
1314
1324
  if (!e) return !0;
1315
1325
  if (e === t) return !1;
1316
1326
  const r = new Map(n.map((a) => [a.id, a]));
1317
- if (!r.has(e) || t && Tt(e, t, r)) return !1;
1318
- const i = _t(e, r), o = t ? Ee(t, n) : 1;
1327
+ if (!r.has(e) || t && It(e, t, r)) return !1;
1328
+ const i = Tt(e, r), o = t ? Ee(t, n) : 1;
1319
1329
  return i + o <= be;
1320
1330
  }
1321
- function Tt(e, t, n) {
1331
+ function It(e, t, n) {
1322
1332
  const r = /* @__PURE__ */ new Set();
1323
1333
  let i = n.get(e)?.parentId;
1324
1334
  for (; i; ) {
@@ -1334,17 +1344,17 @@ function Ee(e, t, n = /* @__PURE__ */ new Set()) {
1334
1344
  const r = t.filter((i) => i.parentId === e);
1335
1345
  return r.length ? 1 + Math.max(...r.map((i) => Ee(i.id, t, n))) : 1;
1336
1346
  }
1337
- const It = "en";
1338
- function wt(e) {
1339
- return e.defaultLocale || e.locale || It;
1347
+ const wt = "en";
1348
+ function Mt(e) {
1349
+ return e.defaultLocale || e.locale || wt;
1340
1350
  }
1341
- function ni(e) {
1351
+ function ii(e) {
1342
1352
  const t = /* @__PURE__ */ new Set(), n = [];
1343
- for (const r of [wt(e), ...e.locales ?? []])
1353
+ for (const r of [Mt(e), ...e.locales ?? []])
1344
1354
  !r || t.has(r) || (t.add(r), n.push(r));
1345
1355
  return n;
1346
1356
  }
1347
- function ri(e, t, n) {
1357
+ function oi(e, t, n) {
1348
1358
  const r = e.translations ?? [];
1349
1359
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1350
1360
  }
@@ -1365,7 +1375,7 @@ function Z(e) {
1365
1375
  }
1366
1376
  return null;
1367
1377
  }
1368
- function Mt(e, t) {
1378
+ function kt(e, t) {
1369
1379
  switch (e.kind) {
1370
1380
  case "org":
1371
1381
  return !0;
@@ -1375,23 +1385,23 @@ function Mt(e, t) {
1375
1385
  return e.userId === t.userId;
1376
1386
  }
1377
1387
  }
1378
- function ii(e, t) {
1379
- return e.filter((n) => n.enabled && Mt(n.ownerScope, t));
1388
+ function ai(e, t) {
1389
+ return e.filter((n) => n.enabled && kt(n.ownerScope, t));
1380
1390
  }
1381
- function oi(e) {
1391
+ function si(e) {
1382
1392
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1383
1393
  }
1384
- function ai(e) {
1394
+ function ci(e) {
1385
1395
  return `mcp__${e}__`;
1386
1396
  }
1387
- const si = 1e3, ci = 2e3, li = 500, ui = 12e3, di = 4e3, kt = ["contact", "company", "work_item"];
1388
- function pi(e) {
1397
+ const li = 1e3, ui = 2e3, di = 500, pi = 12e3, fi = 4e3, Ct = ["contact", "company", "work_item"];
1398
+ function mi(e) {
1389
1399
  if (!e) return !1;
1390
1400
  const t = e.slice(0, e.indexOf(":"));
1391
- return kt.includes(t);
1401
+ return Ct.includes(t);
1392
1402
  }
1393
- const fi = "onboarding-source", mi = ["support", "billing", "availability", "sales", "onboarding"], gi = ["keep", "replace"];
1394
- function Ct(e) {
1403
+ const gi = "onboarding-source", hi = ["support", "billing", "availability", "sales", "onboarding"], yi = ["keep", "replace"];
1404
+ function Ot(e) {
1395
1405
  switch (e.kind) {
1396
1406
  case "user":
1397
1407
  return `user:${e.userId}`;
@@ -1401,7 +1411,7 @@ function Ct(e) {
1401
1411
  return "org";
1402
1412
  }
1403
1413
  }
1404
- function hi(e) {
1414
+ function Ai(e) {
1405
1415
  if (typeof e != "string") return;
1406
1416
  const t = e.trim();
1407
1417
  if (t === "org") return { kind: "org" };
@@ -1413,8 +1423,8 @@ function hi(e) {
1413
1423
  if (r === "team") return { kind: "team", teamId: i };
1414
1424
  }
1415
1425
  }
1416
- function Ot(e) {
1417
- return Ct(e);
1426
+ function vt(e) {
1427
+ return Ot(e);
1418
1428
  }
1419
1429
  function Nt(e) {
1420
1430
  switch (e.kind) {
@@ -1426,14 +1436,14 @@ function Nt(e) {
1426
1436
  return { kind: "org" };
1427
1437
  }
1428
1438
  }
1429
- const vt = Nt;
1430
- function yi(e) {
1431
- return e.agentId ? { kind: "user", userId: e.agentId } : vt(e.ownerScope);
1439
+ const Rt = Nt;
1440
+ function bi(e) {
1441
+ return e.agentId ? { kind: "user", userId: e.agentId } : Rt(e.ownerScope);
1432
1442
  }
1433
- function Ai(e) {
1434
- return Ot(e);
1443
+ function Ei(e) {
1444
+ return vt(e);
1435
1445
  }
1436
- function bi(e, t) {
1446
+ function Si(e, t) {
1437
1447
  if (!t) return;
1438
1448
  let n = e;
1439
1449
  for (const r of t.split(".")) {
@@ -1442,24 +1452,24 @@ function bi(e, t) {
1442
1452
  }
1443
1453
  return n;
1444
1454
  }
1445
- function Ei(e, t) {
1455
+ function _i(e, t) {
1446
1456
  return e.targets.find((n) => n.activityTypes.includes(t));
1447
1457
  }
1448
- function Si(e, t) {
1458
+ function Ti(e, t) {
1449
1459
  if (t)
1450
1460
  return e.targets.find((n) => n.id === t);
1451
1461
  }
1452
- function Rt(e) {
1462
+ function $t(e) {
1453
1463
  return e?.kind === "assignment";
1454
1464
  }
1455
- function _i(e) {
1465
+ function Ii(e) {
1456
1466
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1457
- return Rt(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";
1467
+ return $t(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";
1458
1468
  }
1459
- function Ti(e) {
1469
+ function wi(e) {
1460
1470
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1461
1471
  }
1462
- const Ii = [
1472
+ const Mi = [
1463
1473
  { name: "text", type: "string" },
1464
1474
  { name: "subject", type: "string" },
1465
1475
  { name: "from", type: "string" },
@@ -1493,7 +1503,7 @@ const Ii = [
1493
1503
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1494
1504
  // the trigger filter runs — like contactId/companyId above.
1495
1505
  { name: "assigneeUserId", type: "string" }
1496
- ], wi = {
1506
+ ], ki = {
1497
1507
  topics: [
1498
1508
  { name: "topicId", type: "string" },
1499
1509
  { name: "topic", type: "string" },
@@ -1507,78 +1517,78 @@ const Ii = [
1507
1517
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1508
1518
  extract: []
1509
1519
  };
1510
- function $t(e) {
1520
+ function xt(e) {
1511
1521
  return `${e.type}:${e.id}`;
1512
1522
  }
1513
- const xt = "interaction";
1514
- function Dt(e) {
1515
- return e?.type === xt ? e.id : void 0;
1523
+ const Dt = "interaction";
1524
+ function Lt(e) {
1525
+ return e?.type === Dt ? e.id : void 0;
1516
1526
  }
1517
- const Lt = 64, Pt = 8e3;
1518
- function Mi(e) {
1527
+ const Pt = 64, Ut = 8e3;
1528
+ function Ci(e) {
1519
1529
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1520
1530
  if (!(!Number.isFinite(t) || t <= 0))
1521
- return Math.min(Math.max(Math.round(t), Lt), Pt);
1531
+ return Math.min(Math.max(Math.round(t), Pt), Ut);
1522
1532
  }
1523
- const ki = { kind: "workflow", steps: [] };
1524
- function Ci(e) {
1533
+ const Oi = { kind: "workflow", steps: [] };
1534
+ function vi(e) {
1525
1535
  return e?.kind === "workflow" ? e.steps : [];
1526
1536
  }
1527
- function Oi(e) {
1537
+ function Ni(e) {
1528
1538
  return e?.kind === "procedure" ? e.procedure : void 0;
1529
1539
  }
1530
- function Ut(e) {
1540
+ function Kt(e) {
1531
1541
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
1532
1542
  return { total: n, rate: n ? t / n : 0 };
1533
1543
  }
1534
- const Kt = 10, jt = 0.9;
1535
- function Ni(e) {
1536
- const { total: t, rate: n } = Ut(e);
1537
- return t >= Kt && n >= jt;
1544
+ const jt = 10, Gt = 0.9;
1545
+ function Ri(e) {
1546
+ const { total: t, rate: n } = Kt(e);
1547
+ return t >= jt && n >= Gt;
1538
1548
  }
1539
- const Gt = ["done", "escalated", "failed", "stopped"];
1540
- function vi(e) {
1541
- return Gt.includes(e);
1549
+ const Bt = ["done", "escalated", "failed", "stopped"];
1550
+ function $i(e) {
1551
+ return Bt.includes(e);
1542
1552
  }
1543
- function Bt(e) {
1553
+ function Ht(e) {
1544
1554
  return e === "waiting";
1545
1555
  }
1546
- function Ri(e) {
1547
- return e === "running" || Bt(e);
1556
+ function xi(e) {
1557
+ return e === "running" || Ht(e);
1548
1558
  }
1549
1559
  function Se(e) {
1550
1560
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1551
1561
  }
1552
- function $i(e) {
1562
+ function Di(e) {
1553
1563
  const t = Se(e);
1554
- return t ? $t(t) : void 0;
1564
+ return t ? xt(t) : void 0;
1555
1565
  }
1556
- function xi(e) {
1557
- return Dt(Se(e));
1566
+ function Li(e) {
1567
+ return Lt(Se(e));
1558
1568
  }
1559
- function Di(e, t) {
1569
+ function Pi(e, t) {
1560
1570
  const n = e.accumulatedSeconds || 0;
1561
1571
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1562
1572
  }
1563
- function Li(e, t) {
1573
+ function Ui(e, t) {
1564
1574
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1565
1575
  if (!t || t === "exact") return n * 60;
1566
1576
  const r = Number(t);
1567
1577
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1568
1578
  }
1569
- function Pi(e) {
1579
+ function Ki(e) {
1570
1580
  const t = Math.max(0, Math.round(e / 60));
1571
1581
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1572
1582
  }
1573
- function Ui(e) {
1583
+ function ji(e) {
1574
1584
  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);
1575
1585
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1576
1586
  }
1577
- function Ht(e) {
1587
+ function Ft(e) {
1578
1588
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1579
1589
  }
1580
- function Ki(e, t) {
1581
- const n = Ht(e) || "werksoort", r = new Set(t);
1590
+ function Gi(e, t) {
1591
+ const n = Ft(e) || "werksoort", r = new Set(t);
1582
1592
  if (!r.has(n)) return n;
1583
1593
  for (let i = 2; i < 500; i++) {
1584
1594
  const o = `${n}-${i}`;
@@ -1586,29 +1596,29 @@ function Ki(e, t) {
1586
1596
  }
1587
1597
  return `${n}-${r.size + 1}`;
1588
1598
  }
1589
- function ji(e, t) {
1599
+ function Bi(e, t) {
1590
1600
  const n = e.ownerScope;
1591
1601
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1592
1602
  }
1593
- function Gi(e) {
1594
- return e.filter((t) => !t.archived).sort(Ft);
1603
+ function Hi(e) {
1604
+ return e.filter((t) => !t.archived).sort(Vt);
1595
1605
  }
1596
- function Ft(e, t) {
1606
+ function Vt(e, t) {
1597
1607
  const n = (e.order ?? 0) - (t.order ?? 0);
1598
1608
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
1599
1609
  }
1600
- const Vt = 20, Wt = 20, O = 300;
1610
+ const Wt = 20, zt = 20, O = 300;
1601
1611
  function h(e) {
1602
1612
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1603
1613
  }
1604
- function zt(e) {
1614
+ function Xt(e) {
1605
1615
  const t = e.replace(/\s+/g, " ").trim();
1606
1616
  if (t.length <= O) return t;
1607
1617
  const n = t.slice(0, O), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1608
1618
  return r > O * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1609
1619
  }
1610
- function Bi(e, t) {
1611
- const n = zt(t.text), r = h(n);
1620
+ function Fi(e, t) {
1621
+ const n = Xt(t.text), r = h(n);
1612
1622
  if (!r || (e.examples ?? []).some((a) => h(a) === r)) return null;
1613
1623
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => h(a.text) === r);
1614
1624
  if (o >= 0) {
@@ -1616,63 +1626,63 @@ function Bi(e, t) {
1616
1626
  const a = [...i];
1617
1627
  return a[o] = { ...a[o], corrected: !0, addedAt: t.addedAt }, Q(a);
1618
1628
  }
1619
- return Q([{ ...t, text: n }, ...i]).slice(0, Wt);
1629
+ return Q([{ ...t, text: n }, ...i]).slice(0, zt);
1620
1630
  }
1621
1631
  function Q(e) {
1622
1632
  return [...e].sort(
1623
1633
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1624
1634
  );
1625
1635
  }
1626
- function Hi(e, t) {
1636
+ function Vi(e, t) {
1627
1637
  const n = h(t), r = (e.examples ?? []).filter((o) => o.trim());
1628
- return { examples: r.some((o) => h(o) === n) ? r : [...r, t].slice(-Vt), exampleCandidates: Xt(e, t) };
1638
+ return { examples: r.some((o) => h(o) === n) ? r : [...r, t].slice(-Wt), exampleCandidates: Yt(e, t) };
1629
1639
  }
1630
- function Xt(e, t) {
1640
+ function Yt(e, t) {
1631
1641
  const n = h(t);
1632
1642
  return (e.exampleCandidates ?? []).filter((r) => h(r.text) !== n);
1633
1643
  }
1634
- function Yt(e, t) {
1644
+ function qt(e, t) {
1635
1645
  const n = e.ownerScope;
1636
1646
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1637
1647
  }
1638
- function Fi(e, t) {
1639
- return e.filter((n) => Yt(n, t));
1648
+ function Wi(e, t) {
1649
+ return e.filter((n) => qt(n, t));
1640
1650
  }
1641
- function Vi(e) {
1651
+ function zi(e) {
1642
1652
  return e.type === "agent";
1643
1653
  }
1644
- const Wi = "WORK_COMMENT_ADDED", zi = "WORK_ITEM_ASSIGNED", Xi = "WORK_ITEM_STATUS_CHANGED";
1645
- function qt(e, t) {
1654
+ const Xi = "WORK_COMMENT_ADDED", Yi = "WORK_ITEM_ASSIGNED", qi = "WORK_ITEM_STATUS_CHANGED";
1655
+ function Jt(e, t) {
1646
1656
  const n = (r) => {
1647
1657
  const i = new Date(r);
1648
1658
  return i.setHours(0, 0, 0, 0), i.getTime();
1649
1659
  };
1650
1660
  return Math.round((n(e) - n(t)) / st);
1651
1661
  }
1652
- function Yi(e, t) {
1662
+ function Ji(e, t) {
1653
1663
  if (e.closedAt != null) return { score: g, reasons: [] };
1654
1664
  const n = t.remindersById?.[e.id];
1655
1665
  if (n && n.remindAt > t.now) return { score: g, reasons: [] };
1656
1666
  let r = 0;
1657
1667
  const i = [], o = e.priority ?? "normal";
1658
1668
  if (_[o] > 0 && (r += _[o], i.push(`priority:${o}`)), typeof e.dueDate == "number") {
1659
- const a = qt(e.dueDate, t.now);
1669
+ const a = Jt(e.dueDate, t.now);
1660
1670
  a < 0 ? (r += 35, i.push("overdue")) : a === 0 && (r += 20, i.push("due-today"));
1661
1671
  }
1662
1672
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, i.push(`auto:${e.source.systemReason}`)), { score: r, reasons: i };
1663
1673
  }
1664
- const Jt = "work_item", Zt = "work_project";
1665
- function Qt(e) {
1666
- return `${Jt}:${e}`;
1674
+ const Zt = "work_item", Qt = "work_project";
1675
+ function en(e) {
1676
+ return `${Zt}:${e}`;
1667
1677
  }
1668
1678
  function _e(e) {
1669
- return `${Zt}:${e}`;
1679
+ return `${Qt}:${e}`;
1670
1680
  }
1671
- function qi(e, t, n) {
1681
+ function Zi(e, t, n) {
1672
1682
  const r = `${e}-${t}`;
1673
1683
  return n ? `${r}-${n}` : r;
1674
1684
  }
1675
- function Ji(e) {
1685
+ function Qi(e) {
1676
1686
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1677
1687
  return t ? {
1678
1688
  projectKey: t[1].toUpperCase(),
@@ -1680,17 +1690,17 @@ function Ji(e) {
1680
1690
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1681
1691
  } : null;
1682
1692
  }
1683
- function Zi(e) {
1693
+ function eo(e) {
1684
1694
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1685
1695
  }
1686
- function Qi(e, t = 25) {
1687
- const n = /* @__PURE__ */ new Set([Qt(e.id)]);
1696
+ function to(e, t = 25) {
1697
+ const n = /* @__PURE__ */ new Set([en(e.id)]);
1688
1698
  e.projectId && n.add(_e(e.projectId));
1689
1699
  for (const r of e.ancestorKeys ?? []) n.add(r);
1690
1700
  for (const r of e.partyKeys ?? []) n.add(r);
1691
1701
  return Array.from(n).slice(0, t);
1692
1702
  }
1693
- function eo(e) {
1703
+ function no(e) {
1694
1704
  return [_e(e.id)];
1695
1705
  }
1696
1706
  const $ = [
@@ -1699,33 +1709,33 @@ const $ = [
1699
1709
  { key: "done", label: "status_done", category: "done", order: 2 },
1700
1710
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1701
1711
  ], Te = $.map((e) => e.key);
1702
- function en(e) {
1712
+ function tn(e) {
1703
1713
  return e?.statuses?.length ? e.statuses : $;
1704
1714
  }
1705
- function tn(e, t) {
1715
+ function nn(e, t) {
1706
1716
  return t.find((n) => n.key === e)?.category ?? "todo";
1707
1717
  }
1708
- function to(e, t) {
1718
+ function ro(e, t) {
1709
1719
  return t.find((n) => n.key === e);
1710
1720
  }
1711
- function no(e) {
1712
- const t = en(e), n = e?.defaultStatusKey;
1713
- return n && t.some((r) => r.key === n) ? n : nn(t)[0]?.key ?? $[0].key;
1721
+ function io(e) {
1722
+ const t = tn(e), n = e?.defaultStatusKey;
1723
+ return n && t.some((r) => r.key === n) ? n : rn(t)[0]?.key ?? $[0].key;
1714
1724
  }
1715
- function nn(e) {
1725
+ function rn(e) {
1716
1726
  return [...e].sort((t, n) => {
1717
1727
  const r = (t.order ?? 0) - (n.order ?? 0);
1718
1728
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1719
1729
  });
1720
1730
  }
1721
- function ro(e, t) {
1722
- return tn(e, t) === "done";
1731
+ function oo(e, t) {
1732
+ return nn(e, t) === "done";
1723
1733
  }
1724
- function rn(e) {
1734
+ function on(e) {
1725
1735
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1726
1736
  }
1727
- function io(e, t) {
1728
- const n = rn(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Te]);
1737
+ function ao(e, t) {
1738
+ const n = on(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Te]);
1729
1739
  if (!r.has(n)) return n;
1730
1740
  for (let i = 2; i < 500; i++) {
1731
1741
  const o = `${n}-${i}`;
@@ -1733,7 +1743,7 @@ function io(e, t) {
1733
1743
  }
1734
1744
  return `${n}-${r.size + 1}`;
1735
1745
  }
1736
- function oo(e) {
1746
+ function so(e) {
1737
1747
  const t = [];
1738
1748
  if (!e.length) return [{ index: -1, reason: "empty" }];
1739
1749
  const n = /* @__PURE__ */ new Set();
@@ -1745,7 +1755,7 @@ function oo(e) {
1745
1755
  Te.includes(r.key) && t.push({ index: i, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: i, reason: "duplicate_key", key: r.key }), n.add(r.key);
1746
1756
  }), e.some((r) => r.category === "todo" || r.category === "in_progress") || t.push({ index: -1, reason: "no_open" }), e.some((r) => r.category === "done") || t.push({ index: -1, reason: "no_done" }), t;
1747
1757
  }
1748
- const on = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), an = /* @__PURE__ */ new Set([
1758
+ const an = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), sn = /* @__PURE__ */ new Set([
1749
1759
  "text/plain",
1750
1760
  "text/markdown",
1751
1761
  "text/csv",
@@ -1754,67 +1764,67 @@ const on = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1754
1764
  "application/xml",
1755
1765
  "text/xml"
1756
1766
  ]);
1757
- function sn(e) {
1767
+ function cn(e) {
1758
1768
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1759
- return t ? on.has(t) ? "image" : t === "application/pdf" ? "pdf" : an.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1769
+ return t ? an.has(t) ? "image" : t === "application/pdf" ? "pdf" : sn.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1760
1770
  }
1761
- const y = 1024 * 1024, cn = {
1771
+ const y = 1024 * 1024, ln = {
1762
1772
  image: 5 * y,
1763
1773
  pdf: 20 * y,
1764
1774
  text: 1 * y,
1765
1775
  audio: 20 * y
1766
- }, ao = 25 * y, so = 5;
1767
- function co(e, t) {
1768
- const n = sn(e);
1769
- return n === "unsupported" ? "unsupported" : t > cn[n] ? "too-large" : null;
1776
+ }, co = 25 * y, lo = 5;
1777
+ function uo(e, t) {
1778
+ const n = cn(e);
1779
+ return n === "unsupported" ? "unsupported" : t > ln[n] ? "too-large" : null;
1770
1780
  }
1771
- function lo(e) {
1781
+ function po(e) {
1772
1782
  return e.access !== "read" && e.effect !== "internal";
1773
1783
  }
1774
- function ln(e) {
1784
+ function un(e) {
1775
1785
  return `${e.kind}:${e.id || e.url || e.title}`;
1776
1786
  }
1777
- function uo(e, t = []) {
1787
+ function fo(e, t = []) {
1778
1788
  const n = new Set(t), r = [], i = [];
1779
1789
  for (const o of e) {
1780
- const a = ln(o);
1790
+ const a = un(o);
1781
1791
  n.has(a) || (n.add(a), r.push(o), i.push(a));
1782
1792
  }
1783
1793
  return { sources: r, keys: i };
1784
1794
  }
1785
- const po = "assist-source", fo = ["blocking", "due", "open"];
1786
- function mo(e, t) {
1795
+ const mo = "assist-source", go = ["blocking", "due", "open"];
1796
+ function ho(e, t) {
1787
1797
  const [n, r] = (e.subjectKey ?? "").split(":");
1788
1798
  return n === t && r ? r : void 0;
1789
1799
  }
1790
1800
  const ee = { blocking: 0, due: 1, open: 2 };
1791
- function go(e, t) {
1801
+ function yo(e, t) {
1792
1802
  return ee[e.band ?? "open"] - ee[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1793
1803
  }
1794
- function ho(e) {
1804
+ function Ao(e) {
1795
1805
  return e.sessions.filter(
1796
1806
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1797
1807
  );
1798
1808
  }
1799
- function yo(e) {
1809
+ function bo(e) {
1800
1810
  return e.sessions.filter(
1801
1811
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1802
1812
  );
1803
1813
  }
1804
- function Ao(e) {
1814
+ function Eo(e) {
1805
1815
  return e.sessions.some(
1806
1816
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1807
1817
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
1808
1818
  }
1809
- function un(e, t) {
1810
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((a) => !n.has(a.intent)).map((a) => pn(a, r[a.intent]));
1819
+ function dn(e, t) {
1820
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((a) => !n.has(a.intent)).map((a) => fn(a, r[a.intent]));
1811
1821
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
1812
1822
  const o = new Set(i.map((a) => a.intent));
1813
1823
  for (const a of e.extraIntents)
1814
1824
  o.has(a.intent) || (i.push(a), o.add(a.intent));
1815
1825
  return i;
1816
1826
  }
1817
- function dn(e, t) {
1827
+ function pn(e, t) {
1818
1828
  const n = {};
1819
1829
  for (const r of e.intents) {
1820
1830
  if (!r.togglable) continue;
@@ -1823,46 +1833,46 @@ function dn(e, t) {
1823
1833
  }
1824
1834
  return n;
1825
1835
  }
1826
- function bo(e, t) {
1827
- const n = dn(e, t);
1836
+ function So(e, t) {
1837
+ const n = pn(e, t);
1828
1838
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1829
1839
  }
1830
- function pn(e, t) {
1840
+ function fn(e, t) {
1831
1841
  return t ? {
1832
1842
  intent: t.intent ?? e.intent,
1833
1843
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1834
1844
  transport: t.transport ?? e.transport
1835
1845
  } : e;
1836
1846
  }
1837
- function Eo(e, t) {
1847
+ function _o(e, t) {
1838
1848
  const n = [];
1839
1849
  for (const r of e) {
1840
1850
  if (!r.enabled) continue;
1841
1851
  const i = t[r.providerId];
1842
1852
  if (i)
1843
- for (const o of un(r, i))
1853
+ for (const o of dn(r, i))
1844
1854
  n.push({ channel: r, description: i, capability: o });
1845
1855
  }
1846
1856
  return n;
1847
1857
  }
1848
- function So(e, t) {
1858
+ function To(e, t) {
1849
1859
  return t.filter((n) => n.capability.intent === e);
1850
1860
  }
1851
- function fn(e, t) {
1861
+ function mn(e, t) {
1852
1862
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1853
1863
  }
1854
- function _o(e, t) {
1855
- return fn(e.scheme, t);
1864
+ function Io(e, t) {
1865
+ return mn(e.scheme, t);
1856
1866
  }
1857
- function To(e, t, n) {
1867
+ function wo(e, t, n) {
1858
1868
  const r = [];
1859
1869
  for (const i of e)
1860
1870
  for (const o of n)
1861
1871
  o.capability.intent === t && o.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: o, endpoint: i });
1862
1872
  return r;
1863
1873
  }
1864
- var mn = /* @__PURE__ */ ((e) => (e.MAILTO = "mailto", e.SIP = "sip", e.TEL = "tel", e.WEBHOOK = "webhook", e.USERNAME = "username", e.ID = "id", e.CUSTOM = "custom", e.URL = "url", e.TELEGRAM = "telegram", e.WHATSAPP = "whatsapp", e.MESSENGER = "messenger", e.INSTAGRAM = "instagram", e.VIBER = "viber", e.SMS = "sms", e.FAX = "fax", e.TEAMS = "teams", e.CALENDAR = "calendar", e))(mn || {});
1865
- const gn = {
1874
+ var gn = /* @__PURE__ */ ((e) => (e.MAILTO = "mailto", e.SIP = "sip", e.TEL = "tel", e.WEBHOOK = "webhook", e.USERNAME = "username", e.ID = "id", e.CUSTOM = "custom", e.URL = "url", e.TELEGRAM = "telegram", e.WHATSAPP = "whatsapp", e.MESSENGER = "messenger", e.INSTAGRAM = "instagram", e.VIBER = "viber", e.SMS = "sms", e.FAX = "fax", e.TEAMS = "teams", e.CALENDAR = "calendar", e))(gn || {});
1875
+ const hn = {
1866
1876
  mailto: "mail",
1867
1877
  sip: "tel",
1868
1878
  tel: "tel",
@@ -1883,10 +1893,10 @@ const gn = {
1883
1893
  id: "note",
1884
1894
  custom: "note"
1885
1895
  };
1886
- function Io(e) {
1887
- return e ? gn[e] ?? "note" : "note";
1896
+ function Mo(e) {
1897
+ return e ? hn[e] ?? "note" : "note";
1888
1898
  }
1889
- const wo = "message_window", Mo = "message_templates", ko = {
1899
+ const ko = "message_window", Co = "message_templates", Oo = {
1890
1900
  // E-mail
1891
1901
  FROM: "from",
1892
1902
  TO: "to",
@@ -1903,19 +1913,19 @@ const wo = "message_window", Mo = "message_templates", ko = {
1903
1913
  // Voice/conference
1904
1914
  HOST: "host",
1905
1915
  PARTICIPANT: "participant"
1906
- }, Co = (e, t) => ({ intent: e, ...t }), Oo = "folder_management", No = "remote_search", vo = {
1916
+ }, vo = (e, t) => ({ intent: e, ...t }), No = "folder_management", Ro = "remote_search", $o = {
1907
1917
  ok: !1,
1908
1918
  code: "UNSUPPORTED",
1909
1919
  message: "Provider does not support this op"
1910
- }, Ro = "context.collect", $o = "installation-id";
1911
- function xo(e) {
1920
+ }, xo = "context.collect", Do = "installation-id";
1921
+ function Lo(e) {
1912
1922
  const t = [];
1913
1923
  for (const n of Object.keys(e))
1914
1924
  for (const r of Object.keys(e[n]))
1915
1925
  t.push({ lang: n, key: r, value: e[n][r] });
1916
1926
  return t;
1917
1927
  }
1918
- const Do = "notification-source", Lo = (e, t) => `${e}.pref.${t}`, Po = {
1928
+ const Po = "notification-source", Uo = (e, t) => `${e}.pref.${t}`, Ko = {
1919
1929
  ai: [
1920
1930
  "account.read",
1921
1931
  "account.write",
@@ -2048,25 +2058,25 @@ const Do = "notification-source", Lo = (e, t) => `${e}.pref.${t}`, Po = {
2048
2058
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
2049
2059
  user: ["user.read", "user.write"],
2050
2060
  work: ["item.read", "item.write", "project.read", "project.write"]
2051
- }, Ie = 9e4, hn = ["out_of_office"], we = (e) => hn.includes(e);
2052
- function Uo(e, t, n) {
2061
+ }, Ie = 9e4, yn = ["out_of_office"], we = (e) => yn.includes(e);
2062
+ function jo(e, t, n) {
2053
2063
  const r = n - e < Ie, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2054
2064
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2055
2065
  const o = i.status;
2056
2066
  return !r && !we(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2057
2067
  }
2058
- function Ko(e, t) {
2068
+ function Go(e, t) {
2059
2069
  const n = t - e.lastSeenAt < Ie, r = n || we(e.status) ? e.status : "offline";
2060
2070
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2061
2071
  }
2062
- function jo(e, t) {
2072
+ function Bo(e, t) {
2063
2073
  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 };
2064
2074
  }
2065
- function Go(e) {
2075
+ function Ho(e) {
2066
2076
  return e.providerAvailable && e.allowed;
2067
2077
  }
2068
- const Bo = "resources.describe", Ho = "resources.search", Fo = "resources.resolve", Vo = "resources.attached";
2069
- function Wo(e) {
2078
+ const Fo = "resources.describe", Vo = "resources.search", Wo = "resources.resolve", zo = "resources.attached";
2079
+ function Xo(e) {
2070
2080
  const t = e.indexOf(":");
2071
2081
  return t === -1 ? e : e.slice(0, t);
2072
2082
  }
@@ -2075,21 +2085,21 @@ function ke(e) {
2075
2085
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2076
2086
  return t ? t[1] : null;
2077
2087
  }
2078
- function zo(e) {
2088
+ function Yo(e) {
2079
2089
  const t = ke(e);
2080
2090
  return t ? t !== Me : typeof e == "string" && e.startsWith("/wake");
2081
2091
  }
2082
- function Xo(e) {
2092
+ function qo(e) {
2083
2093
  return typeof e != "string" || e === "" || e === "/" ? !0 : ke(e) === Me;
2084
2094
  }
2085
- function yn(e) {
2095
+ function An(e) {
2086
2096
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2087
2097
  }
2088
- function An(e) {
2089
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${yn(r)}`).join("");
2098
+ function bn(e) {
2099
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${An(r)}`).join("");
2090
2100
  return new RegExp(`^${n}\\/?$`);
2091
2101
  }
2092
- function bn(e, t) {
2102
+ function En(e, t) {
2093
2103
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
2094
2104
  return n.forEach((o, a) => {
2095
2105
  if (o.startsWith(":")) {
@@ -2098,14 +2108,14 @@ function bn(e, t) {
2098
2108
  }
2099
2109
  }), i;
2100
2110
  }
2101
- function En(e) {
2111
+ function Sn(e) {
2102
2112
  return e.publicBasePath ?? `/apps/${e.name}`;
2103
2113
  }
2104
- function Yo(e) {
2114
+ function Jo(e) {
2105
2115
  const t = [];
2106
2116
  for (const n of e) {
2107
2117
  if (!n?.name) continue;
2108
- const r = En(n);
2118
+ const r = Sn(n);
2109
2119
  for (const i of n.routes ?? []) {
2110
2120
  if (!i.public) continue;
2111
2121
  const o = i.path === "/" ? "" : i.path;
@@ -2119,7 +2129,7 @@ function Yo(e) {
2119
2129
  }
2120
2130
  return t;
2121
2131
  }
2122
- function Sn(e, t) {
2132
+ function _n(e, t) {
2123
2133
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2124
2134
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2125
2135
  const o = n[i].startsWith(":"), a = r[i].startsWith(":");
@@ -2127,17 +2137,17 @@ function Sn(e, t) {
2127
2137
  }
2128
2138
  return n.length > r.length;
2129
2139
  }
2130
- function _n(e, t) {
2140
+ function Tn(e, t) {
2131
2141
  if (typeof e != "string") return null;
2132
2142
  let n = null;
2133
2143
  for (const r of t)
2134
- An(r.pattern).test(e) && (!n || Sn(r.pattern, n.pattern)) && (n = r);
2135
- return n ? { ...n, params: { ...n.props, ...bn(n.pattern, e) } } : null;
2144
+ bn(r.pattern).test(e) && (!n || _n(r.pattern, n.pattern)) && (n = r);
2145
+ return n ? { ...n, params: { ...n.props, ...En(n.pattern, e) } } : null;
2136
2146
  }
2137
- function qo(e, t) {
2138
- return _n(e, t) !== null;
2147
+ function Zo(e, t) {
2148
+ return Tn(e, t) !== null;
2139
2149
  }
2140
- const Jo = "sync-source", Zo = "sync-target", Qo = 20, Tn = {
2150
+ const Qo = "sync-source", ea = "sync-target", ta = 20, In = {
2141
2151
  afrikaans: [
2142
2152
  "[Muziek]",
2143
2153
  "(C) TV GELDERLAND 2021",
@@ -2287,14 +2297,14 @@ const Jo = "sync-source", Zo = "sync-target", Qo = 20, Tn = {
2287
2297
  "[MÚSICA]",
2288
2298
  "[Music cuts in British]"
2289
2299
  ]
2290
- }, In = (e) => {
2300
+ }, wn = (e) => {
2291
2301
  let t = e;
2292
- return Object.values(Tn).forEach((n) => {
2302
+ return Object.values(In).forEach((n) => {
2293
2303
  n.forEach((r) => {
2294
2304
  t = t.replaceAll(r, "");
2295
2305
  });
2296
2306
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2297
- }, wn = 6e4, Mn = 8e3, kn = 2, Cn = 0.4, On = 3, Nn = /* @__PURE__ */ new Set([
2307
+ }, Mn = 6e4, kn = 8e3, Cn = 2, On = 0.4, vn = 3, Nn = /* @__PURE__ */ new Set([
2298
2308
  "aan",
2299
2309
  "als",
2300
2310
  "ben",
@@ -2407,13 +2417,13 @@ const Jo = "sync-source", Zo = "sync-target", Qo = 20, Tn = {
2407
2417
  "you",
2408
2418
  "your"
2409
2419
  ]);
2410
- function vn(e) {
2420
+ function Rn(e) {
2411
2421
  const t = /* @__PURE__ */ new Set();
2412
2422
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
2413
- n.length < On || Nn.has(n) || t.add(n);
2423
+ n.length < vn || Nn.has(n) || t.add(n);
2414
2424
  return [...t];
2415
2425
  }
2416
- function Rn(e, t) {
2426
+ function $n(e, t) {
2417
2427
  if (!e.length) return 0;
2418
2428
  if (!t.length) return 1;
2419
2429
  const n = new Set(t), r = new Set(e);
@@ -2421,32 +2431,32 @@ function Rn(e, t) {
2421
2431
  for (const o of r) n.has(o) || (i += 1);
2422
2432
  return i / r.size;
2423
2433
  }
2424
- function $n(e, t = wn) {
2434
+ function xn(e, t = Mn) {
2425
2435
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
2426
2436
  if (!n.length) return { text: "", segmentCount: 0 };
2427
2437
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
2428
- return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => In(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2438
+ return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => wn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2429
2439
  }
2430
- const xn = 60;
2431
- function ea(e, t, n = xn) {
2440
+ const Dn = 60;
2441
+ function na(e, t, n = Dn) {
2432
2442
  const r = new Set(e), i = [...e];
2433
2443
  for (const o of t)
2434
2444
  !o || r.has(o) || (r.add(o), i.push(o));
2435
2445
  return i.slice(-n);
2436
2446
  }
2437
- function ta(e) {
2447
+ function ra(e) {
2438
2448
  const { segments: t, now: n, state: r } = e;
2439
- if (r.lastTriggerAt && n - r.lastTriggerAt < Mn)
2449
+ if (r.lastTriggerAt && n - r.lastTriggerAt < kn)
2440
2450
  return { trigger: !1, reason: "too_soon" };
2441
- const i = $n(t, e.windowMs);
2451
+ const i = xn(t, e.windowMs);
2442
2452
  if (!i.text) return { trigger: !1, reason: "no_speech" };
2443
2453
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
2444
- if (r.lastQueryTerms && o < kn)
2454
+ if (r.lastQueryTerms && o < Cn)
2445
2455
  return { trigger: !1, reason: "too_few_new" };
2446
- const a = vn(i.text);
2447
- return a.length ? r.lastQueryTerms?.length && Rn(a, r.lastQueryTerms) < Cn ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2456
+ const a = Rn(i.text);
2457
+ return a.length ? r.lastQueryTerms?.length && $n(a, r.lastQueryTerms) < On ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2448
2458
  }
2449
- const na = "navNotice", x = {
2459
+ const ia = "navNotice", x = {
2450
2460
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2451
2461
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2452
2462
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2469,7 +2479,7 @@ const na = "navNotice", x = {
2469
2479
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
2470
2480
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2471
2481
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2472
- }, Dn = "NL", Ln = 15, Pn = 8, Un = Array.from(
2482
+ }, Ln = "NL", Pn = 15, Un = 8, Kn = Array.from(
2473
2483
  new Set(Object.values(x).map((e) => e.callingCode))
2474
2484
  ).sort((e, t) => t.length - e.length);
2475
2485
  function te(e) {
@@ -2480,8 +2490,8 @@ function S(e, t) {
2480
2490
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
2481
2491
  }
2482
2492
  function ne(e) {
2483
- if (e.length > Ln) return null;
2484
- for (const t of Un) {
2493
+ if (e.length > Pn) return null;
2494
+ for (const t of Kn) {
2485
2495
  if (!e.startsWith(t)) continue;
2486
2496
  const n = e.slice(t.length);
2487
2497
  for (const r of Object.values(x)) {
@@ -2491,16 +2501,16 @@ function ne(e) {
2491
2501
  }
2492
2502
  return null;
2493
2503
  }
2494
- return e.length < Pn ? null : `+${e}`;
2504
+ return e.length < Un ? null : `+${e}`;
2495
2505
  }
2496
- function Kn(e) {
2506
+ function jn(e) {
2497
2507
  let t = e.trim();
2498
2508
  const n = t.match(/^(sips?|tel|whatsapp):/i);
2499
2509
  n && (t = t.slice(n[0].length));
2500
2510
  const r = t.indexOf("@");
2501
2511
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2502
2512
  }
2503
- function ra(e) {
2513
+ function oa(e) {
2504
2514
  if (!e) return !1;
2505
2515
  const t = e.indexOf("@");
2506
2516
  if (t <= 0) return !1;
@@ -2509,13 +2519,13 @@ function ra(e) {
2509
2519
  }
2510
2520
  function re(e, t) {
2511
2521
  if (!e) return null;
2512
- const n = Kn(e);
2522
+ const n = jn(e);
2513
2523
  if (!n) return null;
2514
2524
  const r = n.startsWith("+"), i = n.replace(/\D/g, "");
2515
2525
  if (!i) return null;
2516
2526
  if (r) return ne(i);
2517
2527
  if (i.startsWith("00")) return ne(i.slice(2));
2518
- const o = te(t) ?? te(Dn);
2528
+ const o = te(t) ?? te(Ln);
2519
2529
  if (!o) return null;
2520
2530
  const a = o.trunkPrefix;
2521
2531
  if (a && i.startsWith(a)) {
@@ -2528,7 +2538,7 @@ function re(e, t) {
2528
2538
  }
2529
2539
  return !a && S(i, o) ? `+${o.callingCode}${i}` : null;
2530
2540
  }
2531
- function ia(e, t = 9) {
2541
+ function aa(e, t = 9) {
2532
2542
  const n = (e ?? "").replace(/\D/g, "");
2533
2543
  return n.length < t ? null : n.slice(-t);
2534
2544
  }
@@ -2539,11 +2549,11 @@ function Ce(e) {
2539
2549
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2540
2550
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2541
2551
  }
2542
- function oa(e) {
2552
+ function sa(e) {
2543
2553
  const t = Ce(e);
2544
2554
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2545
2555
  }
2546
- const jn = /* @__PURE__ */ new Set([
2556
+ const Gn = /* @__PURE__ */ new Set([
2547
2557
  "co.uk",
2548
2558
  "org.uk",
2549
2559
  "gov.uk",
@@ -2553,14 +2563,14 @@ const jn = /* @__PURE__ */ new Set([
2553
2563
  "com.br",
2554
2564
  "co.za"
2555
2565
  ]);
2556
- function Gn(e) {
2566
+ function Bn(e) {
2557
2567
  if (!e) return null;
2558
2568
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
2559
2569
  if (t.length < 2) return null;
2560
2570
  const n = t.slice(-2).join(".");
2561
- return jn.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
2571
+ return Gn.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
2562
2572
  }
2563
- const Bn = /* @__PURE__ */ new Set([
2573
+ const Hn = /* @__PURE__ */ new Set([
2564
2574
  "gmail.com",
2565
2575
  "googlemail.com",
2566
2576
  "outlook.com",
@@ -2605,16 +2615,16 @@ const Bn = /* @__PURE__ */ new Set([
2605
2615
  "proximus.be",
2606
2616
  "scarlet.be"
2607
2617
  ]);
2608
- function aa(e) {
2609
- const t = Gn(e);
2610
- return t ? Bn.has(t) : !1;
2618
+ function ca(e) {
2619
+ const t = Bn(e);
2620
+ return t ? Hn.has(t) : !1;
2611
2621
  }
2612
- function sa(e) {
2622
+ function la(e) {
2613
2623
  if (!e) return !1;
2614
2624
  const t = e.trim().toLowerCase();
2615
2625
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
2616
2626
  }
2617
- function ca(e, t, n) {
2627
+ function ua(e, t, n) {
2618
2628
  if (!e || !t) return null;
2619
2629
  const r = e.trim().toLowerCase();
2620
2630
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -2632,17 +2642,17 @@ function ca(e, t, n) {
2632
2642
  const i = t.trim().toLowerCase();
2633
2643
  return i ? `${r}:${i}` : null;
2634
2644
  }
2635
- const Hn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Fn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
2636
- function la(e) {
2645
+ const Fn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Vn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
2646
+ function da(e) {
2637
2647
  if (typeof e != "string" || !e) return "";
2638
2648
  let t = e;
2639
2649
  return t = t.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), t = t.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), t = t.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), t = t.split(`
2640
2650
  `).map(
2641
2651
  (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,}$/, "")
2642
2652
  ).join(`
2643
- `), t = t.replace(Hn, "$2"), t = t.replace(Fn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
2653
+ `), t = t.replace(Fn, "$2"), t = t.replace(Vn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
2644
2654
  }
2645
- const Vn = [
2655
+ const Wn = [
2646
2656
  /<blockquote/i,
2647
2657
  /class="?gmail_quote/i,
2648
2658
  // Gmail quote container
@@ -2655,12 +2665,12 @@ const Vn = [
2655
2665
  // Outlook underscore separator before "From:"
2656
2666
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
2657
2667
  // Gmail "On <date> <name> wrote:"
2658
- ], ie = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Wn = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
2659
- function zn(e) {
2668
+ ], ie = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, zn = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
2669
+ function Xn(e) {
2660
2670
  const t = e.split(`
2661
2671
  `);
2662
2672
  for (let n = 0; n < t.length; n++)
2663
- if (Wn.test(t[n]) || ie.test(t[n]) && t.slice(n + 1, n + 4).some((r) => ie.test(r)))
2673
+ if (zn.test(t[n]) || ie.test(t[n]) && t.slice(n + 1, n + 4).some((r) => ie.test(r)))
2664
2674
  return t.slice(0, n).join(`
2665
2675
  `).trim();
2666
2676
  return e;
@@ -2685,31 +2695,31 @@ function ce(e) {
2685
2695
 
2686
2696
  `).trim();
2687
2697
  }
2688
- const Xn = /<\s*(html|body|div|p|table|br|span)\b/i;
2689
- function ua(e) {
2690
- return Xn.test(e);
2698
+ const Yn = /<\s*(html|body|div|p|table|br|span)\b/i;
2699
+ function pa(e) {
2700
+ return Yn.test(e);
2691
2701
  }
2692
- function da(e) {
2702
+ function fa(e) {
2693
2703
  if (typeof e != "string" || !e) return "";
2694
2704
  let t = e.length;
2695
- for (const o of Vn) {
2705
+ for (const o of Wn) {
2696
2706
  const a = e.search(o);
2697
2707
  a >= 0 && a < t && (t = a);
2698
2708
  }
2699
2709
  const n = e.slice(0, t);
2700
2710
  let r = ce(se(oe(n)));
2701
- return r || (r = ce(se(oe(e)))), zn(r) || r;
2711
+ return r || (r = ce(se(oe(e)))), Xn(r) || r;
2702
2712
  }
2703
2713
  export {
2704
2714
  m as ACTIVITY_CATALOG,
2705
- cn as AI_ATTACHMENT_LIMITS,
2706
- so as AI_ATTACHMENT_MAX_PER_TURN,
2707
- ao as AI_ATTACHMENT_TURN_BUDGET,
2715
+ ln as AI_ATTACHMENT_LIMITS,
2716
+ lo as AI_ATTACHMENT_MAX_PER_TURN,
2717
+ co as AI_ATTACHMENT_TURN_BUDGET,
2708
2718
  ue as AI_VENDORS,
2709
2719
  Xe as ALLOWED_LINK_SCHEMES,
2710
- Po as APP_PERMISSIONS,
2720
+ Ko as APP_PERMISSIONS,
2711
2721
  B as ARTIFACT_MAX_BLOCKS,
2712
- Mr as ARTIFACT_MAX_BODY_BYTES,
2722
+ kr as ARTIFACT_MAX_BODY_BYTES,
2713
2723
  C as ARTIFACT_MAX_CELL_LEN,
2714
2724
  W as ARTIFACT_MAX_KPI_ITEMS,
2715
2725
  H as ARTIFACT_MAX_LIST_ITEMS,
@@ -2717,295 +2727,297 @@ export {
2717
2727
  F as ARTIFACT_MAX_TABLE_ROWS,
2718
2728
  pe as ARTIFACT_MAX_TEXT_LEN,
2719
2729
  rt as ASSIGNMENT_SCOPE_KIND,
2720
- fo as ASSIST_BANDS,
2721
- po as ASSIST_SOURCE_PROVIDER_GROUP,
2730
+ go as ASSIST_BANDS,
2731
+ mo as ASSIST_SOURCE_PROVIDER_GROUP,
2722
2732
  mt as ATTENTION_STATUSES,
2723
2733
  Me as AUTH_APP_NAME,
2724
- Kt as AUTO_READY_MIN_PROPOSALS,
2725
- jt as AUTO_READY_RATE,
2734
+ jt as AUTO_READY_MIN_PROPOSALS,
2735
+ Gt as AUTO_READY_RATE,
2726
2736
  Pe as ActivityTypeRegistry,
2727
- dr as BUILT_IN_ONLY,
2737
+ pr as BUILT_IN_ONLY,
2728
2738
  gt as BULK_PENALTY,
2729
- Mn as CADENCE_FLOOR_MS,
2730
- kn as CADENCE_MIN_NEW_SEGMENTS,
2731
- Cn as CADENCE_MIN_NOVELTY,
2732
- wn as CADENCE_WINDOW_MS,
2733
- wi as CLASSIFY_VARS,
2734
- Ro as CONTEXT_COLLECT_SERVICE,
2735
- Tr as CORE_DIMENSIONS,
2736
- mn as CommunicationScheme,
2739
+ kn as CADENCE_FLOOR_MS,
2740
+ Cn as CADENCE_MIN_NEW_SEGMENTS,
2741
+ On as CADENCE_MIN_NOVELTY,
2742
+ Mn as CADENCE_WINDOW_MS,
2743
+ ki as CLASSIFY_VARS,
2744
+ xo as CONTEXT_COLLECT_SERVICE,
2745
+ Ir as CORE_DIMENSIONS,
2746
+ gn as CommunicationScheme,
2737
2747
  st as DAY_MS,
2738
- di as DEFAULT_MEMORY_BUDGET,
2739
- Dn as DEFAULT_PHONE_REGION,
2740
- ki as EMPTY_WORKFLOW,
2741
- Oo as FEATURE_FOLDER_MANAGEMENT,
2742
- No as FEATURE_REMOTE_SEARCH,
2748
+ fi as DEFAULT_MEMORY_BUDGET,
2749
+ Ln as DEFAULT_PHONE_REGION,
2750
+ Oi as EMPTY_WORKFLOW,
2751
+ No as FEATURE_FOLDER_MANAGEMENT,
2752
+ Ro as FEATURE_REMOTE_SEARCH,
2743
2753
  yt as FOLLOW_UP_HOURS,
2744
2754
  at as HOUR_MS,
2745
- Xn as HTML_BODY_RE,
2755
+ Yn as HTML_BODY_RE,
2746
2756
  g as INELIGIBLE,
2747
- $o as INSTALLATION_HEADER,
2748
- xt as INTERACTION_KIND,
2749
- ko as InteractionParticipantRole,
2750
- It as KB_FALLBACK_LOCALE,
2757
+ Do as INSTALLATION_HEADER,
2758
+ Dt as INTERACTION_KIND,
2759
+ Oo as InteractionParticipantRole,
2760
+ wt as KB_FALLBACK_LOCALE,
2751
2761
  q as KB_LOCALES,
2752
2762
  $ as LOOSE_STATUSES,
2753
- Zn as MAX_ACTIONS,
2763
+ Qn as MAX_ACTIONS,
2754
2764
  it as MAX_ASSIGNMENT_TURNS,
2755
- Yn as MAX_BLOCKS,
2765
+ qn as MAX_BLOCKS,
2756
2766
  be as MAX_COLLECTION_DEPTH,
2757
- qn as MAX_FIELDS,
2758
- Jn as MAX_LIST_ITEMS,
2759
- si as MAX_MEMORY_BROWSE,
2760
- ui as MAX_MEMORY_BUDGET,
2761
- ci as MAX_MEMORY_CHARS,
2762
- xn as MAX_SHOWN_KEYS,
2763
- Wt as MAX_TOPIC_CANDIDATES,
2764
- Vt as MAX_TOPIC_EXAMPLES,
2767
+ Jn as MAX_FIELDS,
2768
+ Zn as MAX_LIST_ITEMS,
2769
+ li as MAX_MEMORY_BROWSE,
2770
+ pi as MAX_MEMORY_BUDGET,
2771
+ ui as MAX_MEMORY_CHARS,
2772
+ Dn as MAX_SHOWN_KEYS,
2773
+ zt as MAX_TOPIC_CANDIDATES,
2774
+ Wt as MAX_TOPIC_EXAMPLES,
2765
2775
  O as MAX_TOPIC_EXAMPLE_CHARS,
2766
- li as MIN_MEMORY_BUDGET,
2767
- na as NAV_NOTICE_SLOT,
2768
- Do as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2769
- fi as ONBOARDING_SOURCE_PROVIDER_GROUP,
2776
+ di as MIN_MEMORY_BUDGET,
2777
+ ia as NAV_NOTICE_SLOT,
2778
+ Po as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2779
+ gi as ONBOARDING_SOURCE_PROVIDER_GROUP,
2770
2780
  x as PHONE_REGIONS,
2771
2781
  Ie as PRESENCE_ONLINE_WINDOW_MS,
2772
- hn as PRESENCE_SURVIVES_OFFLINE,
2773
- gi as PROFILE_TOOL_DISPOSITIONS,
2774
- Mo as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2775
- wo as PROVIDER_FEATURE_MESSAGE_WINDOW,
2776
- Bn as PUBLIC_EMAIL_DOMAINS,
2782
+ yn as PRESENCE_SURVIVES_OFFLINE,
2783
+ yi as PROFILE_TOOL_DISPOSITIONS,
2784
+ Co as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2785
+ ko as PROVIDER_FEATURE_MESSAGE_WINDOW,
2786
+ Hn as PUBLIC_EMAIL_DOMAINS,
2777
2787
  J as READ_STEP_TYPES,
2778
- kt as RELATED_SUBJECT_KINDS,
2788
+ Ct as RELATED_SUBJECT_KINDS,
2779
2789
  Te as RESERVED_STATUS_KEYS,
2780
- Vo as RESOURCE_ATTACHED_SERVICE,
2781
- Bo as RESOURCE_DESCRIBE_SERVICE,
2782
- Fo as RESOURCE_RESOLVE_SERVICE,
2783
- Ho as RESOURCE_SEARCH_SERVICE,
2784
- Kr as SIGNATURE_INTENTS,
2790
+ zo as RESOURCE_ATTACHED_SERVICE,
2791
+ Fo as RESOURCE_DESCRIBE_SERVICE,
2792
+ Wo as RESOURCE_RESOLVE_SERVICE,
2793
+ Vo as RESOURCE_SEARCH_SERVICE,
2794
+ jr as SIGNATURE_INTENTS,
2785
2795
  ht as SLA_HOURS_BY_PRIORITY,
2786
- Pt as STEP_MAX_TOKENS_MAX,
2787
- Lt as STEP_MAX_TOKENS_MIN,
2796
+ Ut as STEP_MAX_TOKENS_MAX,
2797
+ Pt as STEP_MAX_TOKENS_MIN,
2788
2798
  pt as SUMMARY_MIN_LAST_CHARS,
2789
2799
  dt as SUMMARY_MIN_MESSAGES,
2790
- Qo as SYNC_RUN_MAX_ERRORS,
2791
- Jo as SYNC_SOURCE_PROVIDER_GROUP,
2792
- Zo as SYNC_TARGET_PROVIDER_GROUP,
2800
+ ta as SYNC_RUN_MAX_ERRORS,
2801
+ Qo as SYNC_SOURCE_PROVIDER_GROUP,
2802
+ ea as SYNC_TARGET_PROVIDER_GROUP,
2793
2803
  nt as TERMINAL_ASSIGNMENT_STATUSES,
2794
- Gt as TERMINAL_RUN_STATUSES,
2795
- Ii as TRIGGER_VARS,
2796
- vo as UNSUPPORTED,
2804
+ Bt as TERMINAL_RUN_STATUSES,
2805
+ Mi as TRIGGER_VARS,
2806
+ $o as UNSUPPORTED,
2797
2807
  Fe as USAGE_DIMENSIONS,
2798
2808
  Ve as USAGE_DIMENSION_IDS,
2799
- mi as WORK_AREAS,
2800
- Wi as WORK_COMMENT_ADDED,
2801
- zi as WORK_ITEM_ASSIGNED,
2802
- Jt as WORK_ITEM_SCOPE_KIND,
2803
- Xi as WORK_ITEM_STATUS_CHANGED,
2804
- Zt as WORK_PROJECT_SCOPE_KIND,
2809
+ hi as WORK_AREAS,
2810
+ Xi as WORK_COMMENT_ADDED,
2811
+ Yi as WORK_ITEM_ASSIGNED,
2812
+ Zt as WORK_ITEM_SCOPE_KIND,
2813
+ qi as WORK_ITEM_STATUS_CHANGED,
2814
+ Qt as WORK_PROJECT_SCOPE_KIND,
2805
2815
  _ as W_PRIORITY,
2806
- Hi as acceptExampleCandidate,
2807
- Ot as actingIdentityKey,
2808
- Gi as activeWorkTypes,
2809
- er as activityIconOf,
2810
- lr as activityJoinUrl,
2816
+ Vi as acceptExampleCandidate,
2817
+ vt as actingIdentityKey,
2818
+ Hi as activeWorkTypes,
2819
+ tr as activityIconOf,
2820
+ ur as activityJoinUrl,
2811
2821
  $e as activitySnippet,
2812
2822
  xe as activityTextParams,
2813
- cr as activityTimelineText,
2823
+ lr as activityTimelineText,
2814
2824
  Ue as activityTimestamp,
2815
2825
  d as activityTypeInfo,
2816
- Ai as actorKey,
2817
- Bi as addExampleCandidate,
2818
- Ko as agePresenceEntry,
2819
- sn as aiAttachmentKind,
2820
- co as aiAttachmentRejection,
2826
+ Ei as actorKey,
2827
+ Fi as addExampleCandidate,
2828
+ Go as agePresenceEntry,
2829
+ cn as aiAttachmentKind,
2830
+ uo as aiAttachmentRejection,
2821
2831
  G as aiBudgetLimit,
2822
- Sr as aiBudgetPeriodKey,
2832
+ _r as aiBudgetPeriodKey,
2823
2833
  Ke as aiBudgetPeriodStart,
2824
- Er as aiBudgetState,
2825
- br as aiVendorAcceptsAttachment,
2826
- hr as aiVendorDefaultModel,
2827
- gr as aiVendorLabel,
2828
- Ar as aiVendorNeedsBaseUrl,
2829
- yr as aiVendorsWith,
2834
+ Sr as aiBudgetState,
2835
+ Er as aiVendorAcceptsAttachment,
2836
+ yr as aiVendorDefaultModel,
2837
+ hr as aiVendorLabel,
2838
+ br as aiVendorNeedsBaseUrl,
2839
+ Ar as aiVendorsWith,
2830
2840
  ke as appNameFromPath,
2831
- Li as applyRounding,
2832
- jr as applySignature,
2833
- Ut as approvalRate,
2834
- Cr as artifactBodyBytes,
2835
- Or as artifactOutline,
2841
+ Ui as applyRounding,
2842
+ Gr as applySignature,
2843
+ Kt as approvalRate,
2844
+ Or as artifactBodyBytes,
2845
+ vr as artifactOutline,
2836
2846
  Nr as artifactToMarkdown,
2837
- _i as assignmentMismatch,
2838
- Dr as assignmentScopeKey,
2839
- Pr as assignmentSubject,
2840
- ur as buildActivityPreview,
2841
- Eo as buildChannelIntents,
2842
- vr as buildShareKeys,
2843
- $n as buildWindow,
2844
- ti as canNestUnder,
2845
- ir as carriesText,
2846
- ri as categoryLabel,
2847
- tn as categoryOf,
2848
- Io as channelKindForScheme,
2849
- tr as channelKindOf,
2850
- Mi as clampStepMaxTokens,
2851
- da as cleanMessageText,
2852
- go as compareAssistRank,
2853
- Ft as compareWorkTypes,
2854
- Ur as decideAssignmentState,
2855
- ta as decideCadence,
2856
- Ao as decideIncomingCall,
2857
- wt as defaultLocaleOf,
2858
- no as defaultStatusKey,
2859
- Co as defineIntent,
2860
- _t as depthOf,
2861
- Uo as derivePresence,
2862
- bo as disabledIntentsFromCapabilities,
2863
- Di as elapsedSeconds,
2864
- oa as emailDomain,
2865
- ca as endpointKey,
2866
- bn as extractParams,
2867
- vn as extractTerms,
2868
- _o as filterByEndpoint,
2869
- So as filterByIntent,
2870
- fn as filterByTargetScheme,
2847
+ Ii as assignmentMismatch,
2848
+ Lr as assignmentScopeKey,
2849
+ Ur as assignmentSubject,
2850
+ dr as buildActivityPreview,
2851
+ _o as buildChannelIntents,
2852
+ Rr as buildShareKeys,
2853
+ xn as buildWindow,
2854
+ ri as canNestUnder,
2855
+ or as carriesText,
2856
+ oi as categoryLabel,
2857
+ nn as categoryOf,
2858
+ Mo as channelKindForScheme,
2859
+ nr as channelKindOf,
2860
+ Ci as clampStepMaxTokens,
2861
+ fa as cleanMessageText,
2862
+ yo as compareAssistRank,
2863
+ Vt as compareWorkTypes,
2864
+ Kr as decideAssignmentState,
2865
+ ra as decideCadence,
2866
+ Eo as decideIncomingCall,
2867
+ Mt as defaultLocaleOf,
2868
+ io as defaultStatusKey,
2869
+ vo as defineIntent,
2870
+ Tt as depthOf,
2871
+ jo as derivePresence,
2872
+ So as disabledIntentsFromCapabilities,
2873
+ Pi as elapsedSeconds,
2874
+ sa as emailDomain,
2875
+ ua as endpointKey,
2876
+ En as extractParams,
2877
+ Rn as extractTerms,
2878
+ Io as filterByEndpoint,
2879
+ To as filterByIntent,
2880
+ mn as filterByTargetScheme,
2871
2881
  T as findAiVendor,
2872
- xo as flattenLocales,
2882
+ Lo as flattenLocales,
2873
2883
  Ge as floorToPeriod,
2874
- Ct as formatActingIdentity,
2875
- Ui as formatClock,
2876
- Pi as formatHm,
2877
- qi as formatItemKey,
2884
+ Ot as formatActingIdentity,
2885
+ ji as formatClock,
2886
+ Ki as formatHm,
2887
+ Zi as formatItemKey,
2878
2888
  je as formatPeriod,
2879
- uo as freshSources,
2880
- pr as getActivitySeenUserIds,
2881
- Gr as getContactEndpoints,
2882
- qr as getShortTitle,
2883
- Yr as getUrgencyScore,
2889
+ fo as freshSources,
2890
+ fr as getActivitySeenUserIds,
2891
+ Br as getContactEndpoints,
2892
+ Zr as getShortTitle,
2893
+ Jr as getUrgencyScore,
2884
2894
  Ee as heightOf,
2885
- Zr as helpCenterText,
2886
- Ti as humanizeAction,
2887
- Dt as interactionIdOf,
2888
- Vi as isAgentUser,
2889
- zr as isAssigned,
2890
- xr as isAssignmentTerminal,
2891
- Rt as isAssignmentTrigger,
2892
- Ni as isAutoReady,
2893
- St as isAwaitingThem,
2894
- mr as isChatMessageActivity,
2895
- Xr as isClosed,
2896
- ar as isConnectedType,
2897
- zo as isDeepLink,
2898
- Tt as isDescendant,
2899
- Br as isEligible,
2900
- fr as isEmailActivity,
2901
- ua as isHtmlBody,
2902
- Ri as isInFlight,
2895
+ ei as helpCenterText,
2896
+ wi as humanizeAction,
2897
+ Lt as interactionIdOf,
2898
+ zi as isAgentUser,
2899
+ Yr as isAssigned,
2900
+ Dr as isAssignmentTerminal,
2901
+ $t as isAssignmentTrigger,
2902
+ Ri as isAutoReady,
2903
+ _t as isAwaitingThem,
2904
+ gr as isChatMessageActivity,
2905
+ qr as isClosed,
2906
+ sr as isConnectedType,
2907
+ Yo as isDeepLink,
2908
+ It as isDescendant,
2909
+ Hr as isEligible,
2910
+ mr as isEmailActivity,
2911
+ pa as isHtmlBody,
2912
+ xi as isInFlight,
2903
2913
  ft as isInteractionUnseen,
2904
- Xo as isLandingPath,
2914
+ qo as isLandingPath,
2905
2915
  ut as isLikelyBulk,
2906
2916
  le as isMessageShape,
2907
- nr as isMessageType,
2908
- Sn as isMoreSpecificPattern,
2909
- lo as isOutwardTool,
2917
+ rr as isMessageType,
2918
+ _n as isMoreSpecificPattern,
2919
+ po as isOutwardTool,
2910
2920
  bt as isParked,
2911
- Bt as isPaused,
2912
- or as isPlaybookAuthoredType,
2913
- aa as isPublicEmailDomain,
2914
- qo as isPublicPath,
2921
+ Ht as isPaused,
2922
+ ar as isPlaybookAuthoredType,
2923
+ ca as isPublicEmailDomain,
2924
+ Zo as isPublicPath,
2915
2925
  Et as isReminderActive,
2916
- rr as isReplyableType,
2917
- Vr as isSlaAtRisk,
2918
- vi as isTerminal,
2919
- Fr as isThreadLongEnough,
2920
- sr as isTranscriptType,
2921
- ro as isWorkClosed,
2922
- ji as isWorkTypeVisible,
2923
- Qi as itemDossierKeys,
2924
- en as ladderFor,
2925
- Jr as linkLabel,
2926
- _r as listeningAllowed,
2927
- ei as localeInstruction,
2928
- Qr as localeName,
2929
- ni as localesOf,
2930
- ra as looksLikeEmail,
2931
- To as matchContactToIntents,
2932
- _n as matchPublicRoute,
2933
- oi as mcpCredentialScope,
2934
- ai as mcpToolPrefix,
2935
- ea as mergeShownKeys,
2926
+ ir as isReplyableType,
2927
+ zr as isSlaAtRisk,
2928
+ $i as isTerminal,
2929
+ Vr as isThreadLongEnough,
2930
+ cr as isTranscriptType,
2931
+ oo as isWorkClosed,
2932
+ Bi as isWorkTypeVisible,
2933
+ to as itemDossierKeys,
2934
+ tn as ladderFor,
2935
+ Qr as linkLabel,
2936
+ Tr as listeningAllowed,
2937
+ ni as localeInstruction,
2938
+ ti as localeName,
2939
+ ii as localesOf,
2940
+ oa as looksLikeEmail,
2941
+ wo as matchContactToIntents,
2942
+ Tn as matchPublicRoute,
2943
+ si as mcpCredentialScope,
2944
+ ci as mcpToolPrefix,
2945
+ na as mergeShownKeys,
2936
2946
  Re as messageCountsAs,
2937
- sa as needsPhoneRegion,
2938
- kr as normalizeArtifactBlocks,
2939
- Qn as normalizeBlocks,
2947
+ la as needsPhoneRegion,
2948
+ Cr as normalizeArtifactBlocks,
2949
+ er as normalizeBlocks,
2940
2950
  Ce as normalizeEmail,
2941
2951
  h as normalizeExample,
2942
- Lo as notificationPrefKey,
2943
- Rn as novelty,
2944
- Hr as parkMarksById,
2945
- hi as parseActingIdentity,
2946
- Ji as parseItemKey,
2947
- An as pathToRegex,
2948
- Ir as periodsInRange,
2949
- ia as phoneSuffix,
2950
- la as plainTextFromMarkdown,
2951
- vt as playbookActor,
2952
- Oi as procedureOf,
2953
- eo as projectDossierKeys,
2954
- En as publicBasePathFor,
2955
- Yo as publicRoutePatterns,
2956
- N as readPath,
2952
+ Uo as notificationPrefKey,
2953
+ $n as novelty,
2954
+ Fr as parkMarksById,
2955
+ Ai as parseActingIdentity,
2956
+ Qi as parseItemKey,
2957
+ bn as pathToRegex,
2958
+ wr as periodsInRange,
2959
+ aa as phoneSuffix,
2960
+ da as plainTextFromMarkdown,
2961
+ Rt as playbookActor,
2962
+ Ni as procedureOf,
2963
+ no as projectDossierKeys,
2964
+ Sn as publicBasePathFor,
2965
+ Jo as publicRoutePatterns,
2966
+ v as readPath,
2957
2967
  Z as readStepError,
2958
2968
  At as recencyOf,
2959
- $t as refKey,
2960
- Gn as registrableDomain,
2961
- Xt as rejectExampleCandidate,
2962
- pi as relatedByDefault,
2963
- dn as resolveAccountCapabilities,
2964
- v as resolveActivityText,
2965
- un as resolveChannelIntents,
2969
+ xt as refKey,
2970
+ Bn as registrableDomain,
2971
+ Yt as rejectExampleCandidate,
2972
+ mi as relatedByDefault,
2973
+ pn as resolveAccountCapabilities,
2974
+ N as resolveActivityText,
2975
+ dn as resolveChannelIntents,
2966
2976
  ot as resolveSignature,
2967
- jo as resolveWorkMode,
2968
- Wo as resourceKindOf,
2969
- yi as runActor,
2970
- xi as runInteractionId,
2977
+ Bo as resolveWorkMode,
2978
+ Xo as resourceKindOf,
2979
+ bi as runActor,
2980
+ Li as runInteractionId,
2971
2981
  Ze as sanitizeInline,
2972
- In as sanitizeTranscript,
2973
- Wr as scoreInteraction,
2974
- Yi as scoreWorkItem,
2975
- ii as selectLenses,
2976
- yo as sessionsHoldCannotReach,
2977
- ho as sessionsToHold,
2982
+ wn as sanitizeTranscript,
2983
+ Xr as scoreInteraction,
2984
+ Ji as scoreWorkItem,
2985
+ ai as selectLenses,
2986
+ bo as sessionsHoldCannotReach,
2987
+ Ao as sessionsToHold,
2978
2988
  ge as shareKeyForTeam,
2979
2989
  me as shareKeyForUser,
2980
- Rr as shareKeysForViewer,
2981
- Go as shouldRunAudioPipeline,
2982
- nn as sortStatuses,
2983
- ln as sourceKey,
2984
- to as statusIn,
2985
- Ci as stepsOf,
2986
- ve as stripHtml,
2987
- $i as subjectKeyOf,
2990
+ $r as shareKeysForViewer,
2991
+ Ho as shouldRunAudioPipeline,
2992
+ Wr as slaHoursByInbox,
2993
+ St as slaHoursFor,
2994
+ rn as sortStatuses,
2995
+ un as sourceKey,
2996
+ ro as statusIn,
2997
+ vi as stepsOf,
2998
+ Ne as stripHtml,
2999
+ Di as subjectKeyOf,
2988
3000
  Se as subjectOf,
2989
- mo as subjectRef,
2990
- Zi as suggestProjectKey,
2991
- Si as targetById,
2992
- Ei as targetForActivityType,
3001
+ ho as subjectRef,
3002
+ eo as suggestProjectKey,
3003
+ Ti as targetById,
3004
+ _i as targetForActivityType,
2993
3005
  Nt as toActingIdentity,
2994
3006
  re as toE164,
2995
- $r as toolSourceKinds,
2996
- Yt as topicOfferedForTeam,
2997
- Fi as topicsForTeam,
2998
- zt as truncateExample,
2999
- io as uniqueWorkStatusKey,
3000
- Ki as uniqueWorkTypeKey,
3007
+ xr as toolSourceKinds,
3008
+ qt as topicOfferedForTeam,
3009
+ Wi as topicsForTeam,
3010
+ Xt as truncateExample,
3011
+ ao as uniqueWorkStatusKey,
3012
+ Gi as uniqueWorkTypeKey,
3001
3013
  We as usageMetricId,
3002
- wr as usageMetrics,
3003
- oo as validateStatuses,
3004
- bi as valueAtPath,
3014
+ Mr as usageMetrics,
3015
+ so as validateStatuses,
3016
+ Si as valueAtPath,
3005
3017
  R as waitHoursOf,
3006
- Lr as wakesAssignment,
3007
- Qt as workItemScopeKey,
3018
+ Pr as wakesAssignment,
3019
+ en as workItemScopeKey,
3008
3020
  _e as workProjectScopeKey,
3009
- rn as workStatusKey,
3010
- Ht as workTypeKey
3021
+ on as workStatusKey,
3022
+ Ft as workTypeKey
3011
3023
  };