@opencxh/domain 1.151.0 → 1.153.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 Lt = 10, $t = 10, Rt = 10, wt = 5, me = /* @__PURE__ */ new Set([
1
+ const Pt = 10, Ut = 10, Kt = 10, Bt = 5, ye = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,62 +14,62 @@ function I(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function Dt(e, t = () => {
17
+ function Gt(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
21
- for (const r of e) {
21
+ for (const i of e) {
22
22
  if (n.length >= 10) {
23
23
  t("more than 10 blocks; the rest was dropped");
24
24
  break;
25
25
  }
26
- if (!r || typeof r != "object") continue;
27
- const i = r;
28
- if (!me.has(i.type)) {
29
- t("unknown block type " + String(i.type));
26
+ if (!i || typeof i != "object") continue;
27
+ const a = i;
28
+ if (!ye.has(a.type)) {
29
+ t("unknown block type " + String(a.type));
30
30
  continue;
31
31
  }
32
- switch (i.type) {
32
+ switch (a.type) {
33
33
  case "header":
34
- if (!I(i.text)) {
34
+ if (!I(a.text)) {
35
35
  t("a header without text");
36
36
  continue;
37
37
  }
38
38
  break;
39
39
  case "context":
40
- if (!I(i.text)) {
40
+ if (!I(a.text)) {
41
41
  t("a context block without text");
42
42
  continue;
43
43
  }
44
44
  break;
45
45
  case "image":
46
- if (!i.url || !i.alt) {
46
+ if (!a.url || !a.alt) {
47
47
  t("an image without url or alt");
48
48
  continue;
49
49
  }
50
50
  break;
51
51
  case "section":
52
- Array.isArray(i.fields) && i.fields.length > 10 && (t("more than 10 fields in a section"), i.fields = i.fields.slice(0, 10));
52
+ Array.isArray(a.fields) && a.fields.length > 10 && (t("more than 10 fields in a section"), a.fields = a.fields.slice(0, 10));
53
53
  break;
54
54
  case "list":
55
- if (!Array.isArray(i.items) || i.items.length === 0) {
55
+ if (!Array.isArray(a.items) || a.items.length === 0) {
56
56
  t("a list without items");
57
57
  continue;
58
58
  }
59
- i.items.length > 10 && (t("more than 10 list items"), i.items = i.items.slice(0, 10));
59
+ a.items.length > 10 && (t("more than 10 list items"), a.items = a.items.slice(0, 10));
60
60
  break;
61
61
  case "actions": {
62
- const a = Array.isArray(i.elements) ? i.elements : [], o = a.filter((s) => s && s.action_id && s.invoke && I(s.text));
63
- if (o.length !== a.length && t("an action without action_id, invoke or text"), o.length === 0) continue;
64
- o.length > 5 && t("more than 5 actions"), i.elements = o.slice(0, 5);
62
+ const r = Array.isArray(a.elements) ? a.elements : [], o = r.filter((s) => s && s.action_id && s.invoke && I(s.text));
63
+ if (o.length !== r.length && t("an action without action_id, invoke or text"), o.length === 0) continue;
64
+ o.length > 5 && t("more than 5 actions"), a.elements = o.slice(0, 5);
65
65
  break;
66
66
  }
67
67
  }
68
- n.push(i);
68
+ n.push(a);
69
69
  }
70
70
  return n;
71
71
  }
72
- function ge(e) {
72
+ function be(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) {
@@ -77,16 +77,16 @@ function b(e) {
77
77
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
78
78
  return `${t}:${n.toString().padStart(2, "0")}`;
79
79
  }
80
- function O(e) {
80
+ function L(e) {
81
81
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
82
82
  }
83
83
  function S(e) {
84
84
  return e?.split("@")?.[0] || e || "";
85
85
  }
86
- function A(e) {
86
+ function E(e) {
87
87
  return e.map((t) => t.name).join(", ");
88
88
  }
89
- function L(e) {
89
+ function O(e) {
90
90
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
91
91
  }
92
92
  const m = {
@@ -123,7 +123,7 @@ const m = {
123
123
  channelKind: "voice",
124
124
  icon: "phone",
125
125
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
126
- timeline: (e) => `Call ended${O(e.payload.duration)}`
126
+ timeline: (e) => `Call ended${L(e.payload.duration)}`
127
127
  },
128
128
  VOICE_CALL_MISSED: {
129
129
  shape: "event",
@@ -243,9 +243,9 @@ const m = {
243
243
  shape: "event",
244
244
  channelKind: "chat",
245
245
  icon: "message-circle",
246
- snippet: (e) => `${A(e.payload.members)} toegevoegd`,
246
+ snippet: (e) => `${E(e.payload.members)} toegevoegd`,
247
247
  timeline: (e) => {
248
- const t = A(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
248
+ const t = E(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
249
249
  return `${t} joined the chat${n}`;
250
250
  }
251
251
  },
@@ -253,9 +253,9 @@ const m = {
253
253
  shape: "event",
254
254
  channelKind: "chat",
255
255
  icon: "message-circle",
256
- snippet: (e) => `${A(e.payload.members)} verlaten`,
256
+ snippet: (e) => `${E(e.payload.members)} verlaten`,
257
257
  timeline: (e) => {
258
- const t = A(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
258
+ const t = E(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
259
259
  return `${t} left the chat${n}`;
260
260
  }
261
261
  },
@@ -271,7 +271,7 @@ const m = {
271
271
  channelKind: "chat",
272
272
  icon: "message-circle",
273
273
  snippet: () => "Gesprek gestart",
274
- timeline: (e) => `${L(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
274
+ timeline: (e) => `${O(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
275
275
  joinUrl: (e) => e.payload.joinUrl
276
276
  },
277
277
  CHAT_CALL_ENDED: {
@@ -279,7 +279,7 @@ const m = {
279
279
  channelKind: "chat",
280
280
  icon: "message-circle",
281
281
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
282
- timeline: (e) => `${L(e.payload.callType)} ended${O(e.payload.duration)}`,
282
+ timeline: (e) => `${O(e.payload.callType)} ended${L(e.payload.duration)}`,
283
283
  joinUrl: (e) => e.payload.joinUrl
284
284
  },
285
285
  CHAT_EVENT: {
@@ -405,73 +405,73 @@ const m = {
405
405
  }
406
406
  };
407
407
  function $(e) {
408
- const t = e.payload, n = t.bodySnippet?.trim() || ge(t.body ?? "");
408
+ const t = e.payload, n = t.bodySnippet?.trim() || be(t.body ?? "");
409
409
  return t.subject ? `${t.subject} — ${n}` : n;
410
410
  }
411
411
  function f(e) {
412
412
  return m[e];
413
413
  }
414
- function Pt(e) {
414
+ function Ft(e) {
415
415
  return f(e)?.icon ?? "circle";
416
416
  }
417
- function Ut(e) {
417
+ function Ht(e) {
418
418
  return f(e)?.channelKind;
419
419
  }
420
- function Kt(e) {
420
+ function Vt(e) {
421
421
  const t = f(e)?.shape;
422
422
  return t === "message" || t === "note";
423
423
  }
424
- function Bt(e) {
424
+ function jt(e) {
425
425
  return f(e)?.replyable === !0;
426
426
  }
427
- function Gt(e) {
427
+ function Xt(e) {
428
428
  return f(e)?.carriesText === !0;
429
429
  }
430
- function Ft(e) {
430
+ function Wt(e) {
431
431
  return f(e)?.countsAs;
432
432
  }
433
- function Ht(e) {
433
+ function Yt(e) {
434
434
  return f(e)?.playbookAuthored === !0;
435
435
  }
436
- function he(e) {
436
+ function Ee(e) {
437
437
  const t = f(e.type)?.snippet;
438
438
  return t ? t(e) : "";
439
439
  }
440
- function jt(e, t) {
440
+ function zt(e, t) {
441
441
  const n = f(e.type)?.timeline;
442
442
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
443
443
  }
444
- function Vt(e) {
444
+ function qt(e) {
445
445
  const t = f(e.type)?.joinUrl;
446
446
  return t ? t(e) : void 0;
447
447
  }
448
448
  function N(e, t) {
449
449
  let n = e;
450
- for (const r of t.split(".")) {
450
+ for (const i of t.split(".")) {
451
451
  if (n == null || typeof n != "object") return "";
452
- n = n[r];
452
+ n = n[i];
453
453
  }
454
454
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
455
455
  }
456
- function k(e, t, n) {
456
+ function v(e, t, n) {
457
457
  if (e === void 0) return null;
458
458
  if (typeof e == "string") return e || null;
459
459
  if ("value" in e)
460
460
  return N(t, e.value) || null;
461
- const r = {};
462
- for (const [a, o] of Object.entries(e.params ?? {}))
463
- r[a] = N(t, o);
464
- const i = n(e.key, r);
465
- return i === e.key ? null : i;
461
+ const i = {};
462
+ for (const [r, o] of Object.entries(e.params ?? {}))
463
+ i[r] = N(t, o);
464
+ const a = n(e.key, i);
465
+ return a === e.key ? null : a;
466
466
  }
467
- function ye(e, t) {
467
+ function Ae(e, t) {
468
468
  if (!e || typeof e == "string" || "value" in e) return null;
469
469
  const n = {};
470
- for (const [r, i] of Object.entries(e.params ?? {}))
471
- n[r] = N(t, i);
470
+ for (const [i, a] of Object.entries(e.params ?? {}))
471
+ n[i] = N(t, a);
472
472
  return { key: e.key, params: n };
473
473
  }
474
- const be = (e) => e;
474
+ const _e = (e) => e;
475
475
  function R(e) {
476
476
  const t = m[e];
477
477
  return {
@@ -503,11 +503,11 @@ function w(e) {
503
503
  displayNameKey: e.displayNameKey
504
504
  };
505
505
  }
506
- class Ae {
507
- constructor(t = [], n = be) {
506
+ class Te {
507
+ constructor(t = [], n = _e) {
508
508
  this.translate = n;
509
- for (const r of t)
510
- r?.type && (r.type in m || this.declared.has(r.type) || this.declared.set(r.type, r));
509
+ for (const i of t)
510
+ i?.type && (i.type in m || this.declared.has(i.type) || this.declared.set(i.type, i));
511
511
  }
512
512
  declared = /* @__PURE__ */ new Map();
513
513
  get(t) {
@@ -517,7 +517,7 @@ class Ae {
517
517
  }
518
518
  /** Alles wat als trigger aangeboden mag worden, ingebouwd en gedeclareerd. */
519
519
  triggerable() {
520
- const t = Object.keys(m).filter((r) => m[r].triggerable).map(R), n = [...this.declared.values()].map(w).filter((r) => r.triggerable);
520
+ const t = Object.keys(m).filter((i) => m[i].triggerable).map(R), n = [...this.declared.values()].map(w).filter((i) => i.triggerable);
521
521
  return [...t, ...n];
522
522
  }
523
523
  /**
@@ -526,17 +526,17 @@ class Ae {
526
526
  * typenaam — dezelfde regel die de feed altijd al toonde voor onbekende types.
527
527
  */
528
528
  timelineText(t, n) {
529
- const r = m[t.type];
530
- if (r?.timeline) return r.timeline(t, n);
531
- const i = this.declared.get(t.type);
532
- return k(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
529
+ const i = m[t.type];
530
+ if (i?.timeline) return i.timeline(t, n);
531
+ const a = this.declared.get(t.type);
532
+ return v(a?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
533
533
  }
534
534
  /** De regel voor de inboxlijst. Leeg wanneer het type niets te tonen heeft. */
535
535
  snippet(t) {
536
536
  const n = m[t.type];
537
537
  if (n?.snippet) return n.snippet(t);
538
- const r = this.declared.get(t.type);
539
- return k(r?.text, t, this.translate) ?? "";
538
+ const i = this.declared.get(t.type);
539
+ return v(i?.text, t, this.translate) ?? "";
540
540
  }
541
541
  /** De descriptor zoals hij binnenkwam; nodig om `text` als sleutel op te slaan. */
542
542
  descriptor(t) {
@@ -552,33 +552,33 @@ class Ae {
552
552
  return this.translate;
553
553
  }
554
554
  }
555
- const Xt = new Ae(), D = 140;
556
- function Ee(e) {
555
+ const Jt = new Te(), D = 140;
556
+ function Ie(e) {
557
557
  const t = e.trim();
558
558
  return t.length <= D ? t : t.slice(0, D - 1).trimEnd() + "…";
559
559
  }
560
- function Wt(e, t) {
561
- const n = ye(t?.text, e), r = t ? k(t.text, e, (i) => i) : null;
560
+ function Qt(e, t) {
561
+ const n = Ae(t?.text, e), i = t ? v(t.text, e, (a) => a) : null;
562
562
  return {
563
563
  activityId: e.id,
564
564
  type: e.type,
565
- snippet: Ee(r ?? he(e)),
565
+ snippet: Ie(i ?? Ee(e)),
566
566
  authorName: e.author?.name ?? "",
567
567
  direction: e.direction,
568
568
  createdAt: e.createdAt ?? Date.now(),
569
569
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
570
570
  };
571
571
  }
572
- function zt(e, t, n = []) {
573
- const r = e.createdAt;
574
- if (!r) return [];
575
- const i = new Set(n);
576
- return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([a, o]) => o >= r && !i.has(a)).map(([a]) => a);
572
+ function Zt(e, t, n = []) {
573
+ const i = e.createdAt;
574
+ if (!i) return [];
575
+ const a = new Set(n);
576
+ return e.author.type === "user" && e.author.id && a.add(e.author.id), Object.entries(t).filter(([r, o]) => o >= i && !a.has(r)).map(([r]) => r);
577
577
  }
578
- function Yt(e) {
578
+ function en(e) {
579
579
  return e.createdAt ?? 0;
580
580
  }
581
- const qt = [
581
+ const tn = [
582
582
  { id: "agent", label: "Agent", labelSource: "user" },
583
583
  { id: "team", label: "Team", labelSource: "team" },
584
584
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -588,54 +588,54 @@ const qt = [
588
588
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
589
589
  { id: "time", label: "Tijd", labelSource: "raw" }
590
590
  ];
591
- function Jt(e) {
591
+ function nn(e) {
592
592
  const t = [];
593
593
  for (const n of Object.keys(e))
594
- for (const r of Object.keys(e[n]))
595
- t.push({ lang: n, key: r, value: e[n][r] });
594
+ for (const i of Object.keys(e[n]))
595
+ t.push({ lang: n, key: i, value: e[n][i] });
596
596
  return t;
597
597
  }
598
598
  function M(e) {
599
599
  return e < 10 ? `0${e}` : `${e}`;
600
600
  }
601
- function _e(e, t) {
602
- const n = new Date(e), r = `${n.getUTCFullYear()}-${M(n.getUTCMonth() + 1)}-${M(n.getUTCDate())}`;
603
- return t === "day" ? r : `${r}T${M(n.getUTCHours())}`;
601
+ function Se(e, t) {
602
+ const n = new Date(e), i = `${n.getUTCFullYear()}-${M(n.getUTCMonth() + 1)}-${M(n.getUTCDate())}`;
603
+ return t === "day" ? i : `${i}T${M(n.getUTCHours())}`;
604
604
  }
605
- function Te(e, t) {
605
+ function Me(e, t) {
606
606
  const n = new Date(e);
607
607
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
608
608
  }
609
- const Ie = 36e5, Se = 864e5;
610
- function Qt(e, t, n) {
611
- const r = n === "hour" ? Ie : Se, i = [];
612
- for (let a = Te(e, n); a <= t; a += r)
613
- i.push(_e(a, n));
614
- return i;
609
+ const Ce = 36e5, xe = 864e5;
610
+ function an(e, t, n) {
611
+ const i = n === "hour" ? Ce : xe, a = [];
612
+ for (let r = Me(e, n); r <= t; r += i)
613
+ a.push(Se(r, n));
614
+ return a;
615
615
  }
616
- const Me = [
616
+ const Ne = [
617
617
  { id: "resource", label: "Resource", labelSource: "raw" },
618
618
  { id: "origin", label: "Herkomst", labelSource: "raw" }
619
- ], Ce = Me.map((e) => e.id);
620
- function xe(e, t) {
619
+ ], ve = Ne.map((e) => e.id);
620
+ function ke(e, t) {
621
621
  return `${e}.usage.${t}`;
622
622
  }
623
- function Zt(e, t) {
623
+ function rn(e, t) {
624
624
  return t.map((n) => ({
625
- id: xe(e, n.unit),
625
+ id: ke(e, n.unit),
626
626
  label: n.label,
627
627
  category: "Verbruik",
628
628
  valueType: n.valueType ?? "count",
629
629
  aggregation: "sum",
630
630
  supportedDimensions: [
631
631
  "provider",
632
- ...Ce,
632
+ ...ve,
633
633
  ...n.extraDimensions ?? [],
634
634
  "time"
635
635
  ]
636
636
  }));
637
637
  }
638
- const te = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), P = 200, U = 100, K = 200, B = 12, G = 4, ne = 4e3, C = 500, en = 256 * 1024, Ne = /* @__PURE__ */ new Set([
638
+ const ne = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), P = 200, U = 100, K = 200, B = 12, G = 4, ie = 4e3, C = 500, on = 256 * 1024, Le = /* @__PURE__ */ new Set([
639
639
  "heading",
640
640
  "paragraph",
641
641
  "list",
@@ -645,125 +645,125 @@ const te = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
645
645
  "table",
646
646
  "kpi",
647
647
  "callout"
648
- ]), ke = ["http:", "https:", "mailto:", "tel:"], ve = /^[a-z][a-z0-9+.-]*:/i;
649
- function ie(e) {
648
+ ]), Oe = ["http:", "https:", "mailto:", "tel:"], $e = /^[a-z][a-z0-9+.-]*:/i;
649
+ function ae(e) {
650
650
  const t = e.trim().replace(/^<|>$/g, "");
651
651
  if (!t) return !1;
652
- const n = ve.exec(t)?.[0];
653
- return n ? ke.includes(n.toLowerCase()) : !t.startsWith("//");
652
+ const n = $e.exec(t)?.[0];
653
+ return n ? Oe.includes(n.toLowerCase()) : !t.startsWith("//");
654
654
  }
655
- const Oe = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
656
- function Le(e) {
655
+ const Re = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
656
+ function we(e) {
657
657
  let t = "", n = 0;
658
658
  for (; n < e.length; ) {
659
- const r = e[n] === "!" && e[n + 1] === "[";
660
- if (e[n] !== "[" && !r) {
659
+ const i = e[n] === "!" && e[n + 1] === "[";
660
+ if (e[n] !== "[" && !i) {
661
661
  t += e[n], n += 1;
662
662
  continue;
663
663
  }
664
- const i = n + (r ? 2 : 1), a = F(e, i, "[", "]");
665
- if (a < 0 || e[a + 1] !== "(") {
664
+ const a = n + (i ? 2 : 1), r = F(e, a, "[", "]");
665
+ if (r < 0 || e[r + 1] !== "(") {
666
666
  t += e[n], n += 1;
667
667
  continue;
668
668
  }
669
- const o = F(e, a + 2, "(", ")");
669
+ const o = F(e, r + 2, "(", ")");
670
670
  if (o < 0) {
671
671
  t += e[n], n += 1;
672
672
  continue;
673
673
  }
674
- const s = e.slice(i, a), l = e.slice(a + 2, o).trim().split(/\s+/)[0] ?? "";
675
- t += r || !ie(l) ? s : e.slice(n, o + 1), n = o + 1;
674
+ const s = e.slice(a, r), l = e.slice(r + 2, o).trim().split(/\s+/)[0] ?? "";
675
+ t += i || !ae(l) ? s : e.slice(n, o + 1), n = o + 1;
676
676
  }
677
677
  return t;
678
678
  }
679
- function F(e, t, n, r) {
680
- let i = 1;
681
- for (let a = t; a < e.length; a += 1) {
682
- if (e[a] === "\\") {
683
- a += 1;
679
+ function F(e, t, n, i) {
680
+ let a = 1;
681
+ for (let r = t; r < e.length; r += 1) {
682
+ if (e[r] === "\\") {
683
+ r += 1;
684
684
  continue;
685
685
  }
686
- if (e[a] === n) i += 1;
687
- else if (e[a] === r && (i -= 1, i === 0))
688
- return a;
686
+ if (e[r] === n) a += 1;
687
+ else if (e[r] === i && (a -= 1, a === 0))
688
+ return r;
689
689
  }
690
690
  return -1;
691
691
  }
692
- function $e(e) {
693
- return Le(e).replace(
694
- Oe,
695
- (t, n, r) => ie(r) ? t : ""
692
+ function De(e) {
693
+ return we(e).replace(
694
+ Re,
695
+ (t, n, i) => ae(i) ? t : ""
696
696
  );
697
697
  }
698
- function u(e, t = ne) {
699
- return typeof e == "string" ? $e(e).slice(0, t) : "";
698
+ function u(e, t = ie) {
699
+ return typeof e == "string" ? De(e).slice(0, t) : "";
700
700
  }
701
- function Re(e, t = ne) {
701
+ function Pe(e, t = ie) {
702
702
  return typeof e == "string" ? e.slice(0, t) : "";
703
703
  }
704
- function we(e, t = "info") {
705
- return typeof e == "string" && te.has(e) ? e : t;
704
+ function Ue(e, t = "info") {
705
+ return typeof e == "string" && ne.has(e) ? e : t;
706
706
  }
707
- function tn(e, t = () => {
707
+ function sn(e, t = () => {
708
708
  }) {
709
709
  if (!Array.isArray(e)) return [];
710
710
  const n = [];
711
- for (const r of e) {
711
+ for (const i of e) {
712
712
  if (n.length >= P) {
713
713
  t("more than " + P + " blocks; the rest was dropped");
714
714
  break;
715
715
  }
716
- if (!r || typeof r != "object") continue;
717
- const i = r;
718
- if (!Ne.has(i.type)) {
719
- t("unknown block type " + String(i.type));
716
+ if (!i || typeof i != "object") continue;
717
+ const a = i;
718
+ if (!Le.has(a.type)) {
719
+ t("unknown block type " + String(a.type));
720
720
  continue;
721
721
  }
722
- const a = typeof i.block_id == "string" ? { block_id: i.block_id } : {};
723
- switch (i.type) {
722
+ const r = typeof a.block_id == "string" ? { block_id: a.block_id } : {};
723
+ switch (a.type) {
724
724
  case "heading": {
725
- const o = u(i.text);
725
+ const o = u(a.text);
726
726
  if (!o) {
727
727
  t("a heading without text");
728
728
  continue;
729
729
  }
730
- const s = i.level === 2 || i.level === 3 ? i.level : 1;
731
- n.push({ ...a, type: "heading", level: s, text: o });
730
+ const s = a.level === 2 || a.level === 3 ? a.level : 1;
731
+ n.push({ ...r, type: "heading", level: s, text: o });
732
732
  break;
733
733
  }
734
734
  case "paragraph": {
735
- const o = u(i.text);
735
+ const o = u(a.text);
736
736
  if (!o) {
737
737
  t("a paragraph without text");
738
738
  continue;
739
739
  }
740
- n.push({ ...a, type: "paragraph", text: o });
740
+ n.push({ ...r, type: "paragraph", text: o });
741
741
  break;
742
742
  }
743
743
  case "quote": {
744
- const o = u(i.text);
744
+ const o = u(a.text);
745
745
  if (!o) {
746
746
  t("a quote without text");
747
747
  continue;
748
748
  }
749
- n.push({ ...a, type: "quote", text: o });
749
+ n.push({ ...r, type: "quote", text: o });
750
750
  break;
751
751
  }
752
752
  case "code": {
753
- const o = Re(i.text);
753
+ const o = Pe(a.text);
754
754
  if (!o) {
755
755
  t("a code block without text");
756
756
  continue;
757
757
  }
758
- const s = typeof i.lang == "string" ? { lang: i.lang.slice(0, 32) } : {};
759
- n.push({ ...a, type: "code", ...s, text: o });
758
+ const s = typeof a.lang == "string" ? { lang: a.lang.slice(0, 32) } : {};
759
+ n.push({ ...r, type: "code", ...s, text: o });
760
760
  break;
761
761
  }
762
762
  case "divider":
763
- n.push({ ...a, type: "divider" });
763
+ n.push({ ...r, type: "divider" });
764
764
  break;
765
765
  case "list": {
766
- const o = Array.isArray(i.items) ? i.items : [], s = [];
766
+ const o = Array.isArray(a.items) ? a.items : [], s = [];
767
767
  for (const p of o) {
768
768
  if (s.length >= U) {
769
769
  t("more than " + U + " list items");
@@ -778,12 +778,12 @@ function tn(e, t = () => {
778
778
  t("a list without usable items");
779
779
  continue;
780
780
  }
781
- const l = i.style === "numbered" ? "numbered" : "bulleted";
782
- n.push({ ...a, type: "list", style: l, items: s });
781
+ const l = a.style === "numbered" ? "numbered" : "bulleted";
782
+ n.push({ ...r, type: "list", style: l, items: s });
783
783
  break;
784
784
  }
785
785
  case "table": {
786
- const o = Array.isArray(i.columns) ? i.columns : [], s = [];
786
+ const o = Array.isArray(a.columns) ? a.columns : [], s = [];
787
787
  for (const c of o) {
788
788
  if (s.length >= B) {
789
789
  t("more than " + B + " table columns");
@@ -796,7 +796,7 @@ function tn(e, t = () => {
796
796
  t("a table without columns");
797
797
  continue;
798
798
  }
799
- const l = Array.isArray(i.rows) ? i.rows : [], p = [];
799
+ const l = Array.isArray(a.rows) ? a.rows : [], p = [];
800
800
  for (const c of l) {
801
801
  if (p.length >= K) {
802
802
  t("more than " + K + " table rows");
@@ -804,12 +804,12 @@ function tn(e, t = () => {
804
804
  }
805
805
  const y = Array.isArray(c) ? c : [];
806
806
  p.push(
807
- s.map((T, fe) => u(y[fe], C))
807
+ s.map((T, he) => u(y[he], C))
808
808
  );
809
809
  }
810
- const d = u(i.caption, C);
810
+ const d = u(a.caption, C);
811
811
  n.push({
812
- ...a,
812
+ ...r,
813
813
  type: "table",
814
814
  columns: s,
815
815
  rows: p,
@@ -818,7 +818,7 @@ function tn(e, t = () => {
818
818
  break;
819
819
  }
820
820
  case "kpi": {
821
- const o = Array.isArray(i.items) ? i.items : [], s = [];
821
+ const o = Array.isArray(a.items) ? a.items : [], s = [];
822
822
  for (const l of o) {
823
823
  if (s.length >= G) {
824
824
  t("more than " + G + " kpi items");
@@ -828,27 +828,27 @@ function tn(e, t = () => {
828
828
  if (!p || !d) continue;
829
829
  const c = l?.tone;
830
830
  s.push(
831
- typeof c == "string" && te.has(c) ? { value: p, label: d, tone: c } : { value: p, label: d }
831
+ typeof c == "string" && ne.has(c) ? { value: p, label: d, tone: c } : { value: p, label: d }
832
832
  );
833
833
  }
834
834
  if (s.length === 0) {
835
835
  t("a kpi block without usable items");
836
836
  continue;
837
837
  }
838
- n.push({ ...a, type: "kpi", items: s });
838
+ n.push({ ...r, type: "kpi", items: s });
839
839
  break;
840
840
  }
841
841
  case "callout": {
842
- const o = u(i.text);
842
+ const o = u(a.text);
843
843
  if (!o) {
844
844
  t("a callout without text");
845
845
  continue;
846
846
  }
847
- const s = u(i.title, 200);
847
+ const s = u(a.title, 200);
848
848
  n.push({
849
- ...a,
849
+ ...r,
850
850
  type: "callout",
851
- tone: we(i.tone),
851
+ tone: Ue(a.tone),
852
852
  ...s ? { title: s } : {},
853
853
  text: o
854
854
  });
@@ -858,10 +858,10 @@ function tn(e, t = () => {
858
858
  }
859
859
  return n;
860
860
  }
861
- function nn(e) {
861
+ function ln(e) {
862
862
  return JSON.stringify(e).length;
863
863
  }
864
- function rn(e) {
864
+ function cn(e) {
865
865
  return {
866
866
  blocks: e.length,
867
867
  types: e.map((t) => t.type),
@@ -871,15 +871,15 @@ function rn(e) {
871
871
  function H(e) {
872
872
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
873
873
  }
874
- function j(e, t, n) {
875
- const r = e.map((i, a) => n?.[a] === "right" ? "---:" : "---");
874
+ function V(e, t, n) {
875
+ const i = e.map((a, r) => n?.[r] === "right" ? "---:" : "---");
876
876
  return [
877
877
  `| ${e.map(H).join(" | ")} |`,
878
- `| ${r.join(" | ")} |`,
879
- ...t.map((i) => `| ${i.map(H).join(" | ")} |`)
878
+ `| ${i.join(" | ")} |`,
879
+ ...t.map((a) => `| ${a.map(H).join(" | ")} |`)
880
880
  ];
881
881
  }
882
- function De(e) {
882
+ function Ke(e) {
883
883
  switch (e.type) {
884
884
  case "heading":
885
885
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -893,11 +893,11 @@ function De(e) {
893
893
  return ["---"];
894
894
  case "list":
895
895
  return e.items.map((t, n) => {
896
- const r = e.style === "numbered" ? `${n + 1}.` : "-";
897
- return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
896
+ const i = e.style === "numbered" ? `${n + 1}.` : "-";
897
+ return t.lead ? `${i} **${t.lead}** ${t.text}` : `${i} ${t.text}`;
898
898
  });
899
899
  case "table": {
900
- const t = j(
900
+ const t = V(
901
901
  e.columns.map((n) => n.label),
902
902
  e.rows,
903
903
  e.columns.map((n) => n.align ?? "left")
@@ -905,7 +905,7 @@ function De(e) {
905
905
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
906
906
  }
907
907
  case "kpi":
908
- return j(
908
+ return V(
909
909
  e.items.map((t) => t.value),
910
910
  [e.items.map((t) => t.label)]
911
911
  );
@@ -913,12 +913,12 @@ function De(e) {
913
913
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
914
914
  }
915
915
  }
916
- function an(e, t) {
917
- const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
918
- t && !r && n.push(`# ${t}`);
919
- for (const i of e) {
920
- const a = De(i);
921
- a.length > 0 && n.push(a.join(`
916
+ function un(e, t) {
917
+ const n = [], i = e.some((a) => a.type === "heading" && a.level === 1);
918
+ t && !i && n.push(`# ${t}`);
919
+ for (const a of e) {
920
+ const r = Ke(a);
921
+ r.length > 0 && n.push(r.join(`
922
922
  `));
923
923
  }
924
924
  return `${n.join(`
@@ -926,26 +926,26 @@ function an(e, t) {
926
926
  `)}
927
927
  `;
928
928
  }
929
- const re = (e) => `user:${e}`, ae = (e) => `team:${e}`;
930
- function on(e) {
929
+ const re = (e) => `user:${e}`, oe = (e) => `team:${e}`;
930
+ function pn(e) {
931
931
  const t = /* @__PURE__ */ new Set();
932
932
  for (const n of e ?? [])
933
- n?.id && (n.kind === "user" && t.add(re(n.id)), n.kind === "team" && t.add(ae(n.id)));
933
+ n?.id && (n.kind === "user" && t.add(re(n.id)), n.kind === "team" && t.add(oe(n.id)));
934
934
  return [...t].sort();
935
935
  }
936
- function sn(e, t) {
937
- return [re(e), ...t.map(ae)];
936
+ function dn(e, t) {
937
+ return [re(e), ...t.map(oe)];
938
938
  }
939
- function ln(e) {
939
+ function fn(e) {
940
940
  const t = /* @__PURE__ */ new Set();
941
941
  for (const n of e ?? [])
942
942
  n?.kind && t.add(n.kind);
943
943
  return [...t];
944
944
  }
945
- function cn(e) {
945
+ function mn(e) {
946
946
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
947
947
  }
948
- const un = [
948
+ const gn = [
949
949
  { name: "text", type: "string" },
950
950
  { name: "subject", type: "string" },
951
951
  { name: "from", type: "string" },
@@ -968,7 +968,7 @@ const un = [
968
968
  // een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
969
969
  { name: "contactId", type: "string" },
970
970
  { name: "companyId", type: "string" }
971
- ], pn = {
971
+ ], hn = {
972
972
  topics: [
973
973
  { name: "topic", type: "string" },
974
974
  { name: "confidence", type: "number" }
@@ -979,7 +979,7 @@ const un = [
979
979
  ],
980
980
  extract: []
981
981
  };
982
- function Pe(e) {
982
+ function Be(e) {
983
983
  switch (e.kind) {
984
984
  case "user":
985
985
  return `user:${e.userId}`;
@@ -989,22 +989,22 @@ function Pe(e) {
989
989
  return "org";
990
990
  }
991
991
  }
992
- function dn(e) {
992
+ function yn(e) {
993
993
  if (typeof e != "string") return;
994
994
  const t = e.trim();
995
995
  if (t === "org") return { kind: "org" };
996
996
  const n = t.indexOf(":");
997
997
  if (n <= 0) return;
998
- const r = t.slice(0, n), i = t.slice(n + 1).trim();
999
- if (i) {
1000
- if (r === "user") return { kind: "user", userId: i };
1001
- if (r === "team") return { kind: "team", teamId: i };
998
+ const i = t.slice(0, n), a = t.slice(n + 1).trim();
999
+ if (a) {
1000
+ if (i === "user") return { kind: "user", userId: a };
1001
+ if (i === "team") return { kind: "team", teamId: a };
1002
1002
  }
1003
1003
  }
1004
- function Ue(e) {
1005
- return Pe(e);
1004
+ function Ge(e) {
1005
+ return Be(e);
1006
1006
  }
1007
- function fn(e) {
1007
+ function bn(e) {
1008
1008
  switch (e.kind) {
1009
1009
  case "personal":
1010
1010
  return { kind: "user", userId: e.userId };
@@ -1014,28 +1014,28 @@ function fn(e) {
1014
1014
  return { kind: "org" };
1015
1015
  }
1016
1016
  }
1017
- function mn(e) {
1018
- return Ue(e);
1017
+ function En(e) {
1018
+ return Ge(e);
1019
1019
  }
1020
- const Ke = ["done", "escalated", "failed", "timed_out", "stopped"], Be = ["awaiting_approval", "awaiting_reply"];
1021
- function Ge(e) {
1022
- return Ke.includes(e);
1020
+ const Fe = ["done", "escalated", "failed", "timed_out", "stopped"], He = ["awaiting_approval", "awaiting_reply"];
1021
+ function Ve(e) {
1022
+ return Fe.includes(e);
1023
1023
  }
1024
- function gn(e) {
1025
- return Ge(e);
1024
+ function An(e) {
1025
+ return Ve(e);
1026
1026
  }
1027
- function hn(e) {
1028
- return Be.includes(e);
1027
+ function _n(e) {
1028
+ return He.includes(e);
1029
1029
  }
1030
- function yn(e, t) {
1030
+ function Tn(e, t) {
1031
1031
  const n = e.labels ?? [];
1032
- return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1032
+ return n.find((i) => i.locale === t)?.label ?? n[0]?.label ?? e.url;
1033
1033
  }
1034
- function bn(e, t, n) {
1035
- const r = e.translations ?? [];
1036
- return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1034
+ function In(e, t, n) {
1035
+ const i = e.translations ?? [];
1036
+ return i.find((a) => a.locale === t) ?? (n ? i.find((a) => a.locale === n) : void 0) ?? { locale: t };
1037
1037
  }
1038
- const V = [
1038
+ const j = [
1039
1039
  { code: "nl", label: "Nederlands", english: "Dutch" },
1040
1040
  { code: "en", label: "English", english: "English" },
1041
1041
  { code: "de", label: "Deutsch", english: "German" },
@@ -1050,105 +1050,105 @@ const V = [
1050
1050
  { code: "fi", label: "Suomi", english: "Finnish" },
1051
1051
  { code: "tr", label: "Türkçe", english: "Turkish" }
1052
1052
  ];
1053
- function oe(e) {
1053
+ function se(e) {
1054
1054
  const t = (e ?? "").toLowerCase();
1055
- return V.find((n) => n.code === t) ?? V.find((n) => n.code === t.split("-")[0]);
1055
+ return j.find((n) => n.code === t) ?? j.find((n) => n.code === t.split("-")[0]);
1056
1056
  }
1057
- function An(e) {
1058
- return oe(e)?.label ?? e;
1057
+ function Sn(e) {
1058
+ return se(e)?.label ?? e;
1059
1059
  }
1060
- function En(e) {
1061
- const t = oe(e);
1060
+ function Mn(e) {
1061
+ const t = se(e);
1062
1062
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1063
1063
  }
1064
- const se = 3;
1065
- function Fe(e, t) {
1064
+ const le = 3;
1065
+ function je(e, t) {
1066
1066
  const n = /* @__PURE__ */ new Set();
1067
- let r = 1, i = t.get(e)?.parentId;
1068
- for (; i; ) {
1069
- if (n.has(i) || (n.add(i), r++, r > se + 1)) return 1 / 0;
1070
- i = t.get(i)?.parentId;
1067
+ let i = 1, a = t.get(e)?.parentId;
1068
+ for (; a; ) {
1069
+ if (n.has(a) || (n.add(a), i++, i > le + 1)) return 1 / 0;
1070
+ a = t.get(a)?.parentId;
1071
1071
  }
1072
- return r;
1072
+ return i;
1073
1073
  }
1074
- function _n(e, t, n) {
1074
+ function Cn(e, t, n) {
1075
1075
  if (!e) return !0;
1076
1076
  if (e === t) return !1;
1077
- const r = new Map(n.map((o) => [o.id, o]));
1078
- if (!r.has(e) || t && He(e, t, r)) return !1;
1079
- const i = Fe(e, r), a = t ? le(t, n) : 1;
1080
- return i + a <= se;
1081
- }
1082
- function He(e, t, n) {
1083
- const r = /* @__PURE__ */ new Set();
1084
- let i = n.get(e)?.parentId;
1085
- for (; i; ) {
1086
- if (i === t) return !0;
1087
- if (r.has(i)) return !1;
1088
- r.add(i), i = n.get(i)?.parentId;
1077
+ const i = new Map(n.map((o) => [o.id, o]));
1078
+ if (!i.has(e) || t && Xe(e, t, i)) return !1;
1079
+ const a = je(e, i), r = t ? ce(t, n) : 1;
1080
+ return a + r <= le;
1081
+ }
1082
+ function Xe(e, t, n) {
1083
+ const i = /* @__PURE__ */ new Set();
1084
+ let a = n.get(e)?.parentId;
1085
+ for (; a; ) {
1086
+ if (a === t) return !0;
1087
+ if (i.has(a)) return !1;
1088
+ i.add(a), a = n.get(a)?.parentId;
1089
1089
  }
1090
1090
  return !1;
1091
1091
  }
1092
- function le(e, t, n = /* @__PURE__ */ new Set()) {
1092
+ function ce(e, t, n = /* @__PURE__ */ new Set()) {
1093
1093
  if (n.has(e)) return 1;
1094
1094
  n.add(e);
1095
- const r = t.filter((i) => i.parentId === e);
1096
- return r.length ? 1 + Math.max(...r.map((i) => le(i.id, t, n))) : 1;
1095
+ const i = t.filter((a) => a.parentId === e);
1096
+ return i.length ? 1 + Math.max(...i.map((a) => ce(a.id, t, n))) : 1;
1097
1097
  }
1098
- const je = "en";
1099
- function Ve(e) {
1100
- return e.defaultLocale || e.locale || je;
1098
+ const We = "en";
1099
+ function Ye(e) {
1100
+ return e.defaultLocale || e.locale || We;
1101
1101
  }
1102
- function Tn(e) {
1102
+ function xn(e) {
1103
1103
  const t = /* @__PURE__ */ new Set(), n = [];
1104
- for (const r of [Ve(e), ...e.locales ?? []])
1105
- !r || t.has(r) || (t.add(r), n.push(r));
1104
+ for (const i of [Ye(e), ...e.locales ?? []])
1105
+ !i || t.has(i) || (t.add(i), n.push(i));
1106
1106
  return n;
1107
1107
  }
1108
- function In(e, t, n) {
1109
- const r = e.translations ?? [];
1110
- return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1108
+ function Nn(e, t, n) {
1109
+ const i = e.translations ?? [];
1110
+ return i.find((a) => a.locale === t)?.name ?? (n ? i.find((a) => a.locale === n)?.name : void 0) ?? e.name;
1111
1111
  }
1112
- const Xe = 20, We = 20, x = 300;
1112
+ const ze = 20, qe = 20, x = 300;
1113
1113
  function g(e) {
1114
1114
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1115
1115
  }
1116
- function ze(e) {
1116
+ function Je(e) {
1117
1117
  const t = e.replace(/\s+/g, " ").trim();
1118
1118
  if (t.length <= x) return t;
1119
- const n = t.slice(0, x), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1120
- return r > x * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1121
- }
1122
- function Sn(e, t) {
1123
- const n = ze(t.text), r = g(n);
1124
- if (!r || (e.examples ?? []).some((o) => g(o) === r)) return null;
1125
- const i = e.exampleCandidates ?? [], a = i.findIndex((o) => g(o.text) === r);
1126
- if (a >= 0) {
1127
- if (i[a].corrected || !t.corrected) return null;
1128
- const o = [...i];
1129
- return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, X(o);
1119
+ const n = t.slice(0, x), i = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1120
+ return i > x * 0.6 ? n.slice(0, i + 1) : `${n.trimEnd()}…`;
1121
+ }
1122
+ function vn(e, t) {
1123
+ const n = Je(t.text), i = g(n);
1124
+ if (!i || (e.examples ?? []).some((o) => g(o) === i)) return null;
1125
+ const a = e.exampleCandidates ?? [], r = a.findIndex((o) => g(o.text) === i);
1126
+ if (r >= 0) {
1127
+ if (a[r].corrected || !t.corrected) return null;
1128
+ const o = [...a];
1129
+ return o[r] = { ...o[r], corrected: !0, addedAt: t.addedAt }, X(o);
1130
1130
  }
1131
- return X([{ ...t, text: n }, ...i]).slice(0, We);
1131
+ return X([{ ...t, text: n }, ...a]).slice(0, qe);
1132
1132
  }
1133
1133
  function X(e) {
1134
1134
  return [...e].sort((t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt);
1135
1135
  }
1136
- function Mn(e, t) {
1137
- const n = g(t), r = (e.examples ?? []).filter((a) => a.trim());
1138
- return { examples: r.some((a) => g(a) === n) ? r : [...r, t].slice(-Xe), exampleCandidates: Ye(e, t) };
1136
+ function kn(e, t) {
1137
+ const n = g(t), i = (e.examples ?? []).filter((r) => r.trim());
1138
+ return { examples: i.some((r) => g(r) === n) ? i : [...i, t].slice(-ze), exampleCandidates: Qe(e, t) };
1139
1139
  }
1140
- function Ye(e, t) {
1140
+ function Qe(e, t) {
1141
1141
  const n = g(t);
1142
- return (e.exampleCandidates ?? []).filter((r) => g(r.text) !== n);
1142
+ return (e.exampleCandidates ?? []).filter((i) => g(i.text) !== n);
1143
1143
  }
1144
- function qe(e, t) {
1144
+ function Ze(e, t) {
1145
1145
  const n = e.ownerScope;
1146
1146
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1147
1147
  }
1148
- function Cn(e, t) {
1149
- return e.filter((n) => qe(n, t));
1148
+ function Ln(e, t) {
1149
+ return e.filter((n) => Ze(n, t));
1150
1150
  }
1151
- const ce = [
1151
+ const ue = [
1152
1152
  {
1153
1153
  id: "openai",
1154
1154
  attachmentKinds: ["image", "pdf"],
@@ -1240,55 +1240,71 @@ const ce = [
1240
1240
  }
1241
1241
  ];
1242
1242
  function _(e) {
1243
- return ce.find((t) => t.id === e);
1243
+ return ue.find((t) => t.id === e);
1244
1244
  }
1245
- function xn(e) {
1245
+ function On(e) {
1246
1246
  return _(e)?.label ?? e;
1247
1247
  }
1248
- function Nn(e, t = "gpt-5-mini") {
1248
+ function $n(e, t = "gpt-5-mini") {
1249
1249
  return _(e)?.defaultModel ?? t;
1250
1250
  }
1251
- function kn(e) {
1252
- return ce.filter((t) => t.capabilities.includes(e));
1251
+ function Rn(e) {
1252
+ return ue.filter((t) => t.capabilities.includes(e));
1253
1253
  }
1254
- function vn(e) {
1254
+ function wn(e) {
1255
1255
  const t = _(e);
1256
1256
  return !!t && !t.baseUrl;
1257
1257
  }
1258
- function On(e, t) {
1258
+ function Dn(e, t) {
1259
1259
  return t === "text" ? !0 : _(e)?.attachmentKinds?.includes(t) === !0;
1260
1260
  }
1261
- const Ln = /* @__PURE__ */ new Set(["mail", "message"]);
1262
- function Je(e, t) {
1261
+ function Pn(e, t) {
1262
+ if (!e.enabled) return "ok";
1263
+ const n = W(e.hardLimitNanos), i = W(e.softLimitNanos);
1264
+ return n !== void 0 && t >= n ? "hard" : i !== void 0 && t >= i ? "soft" : "ok";
1265
+ }
1266
+ function W(e) {
1267
+ return typeof e == "number" ? e : void 0;
1268
+ }
1269
+ function et(e, t = "month") {
1270
+ const n = new Date(e);
1271
+ return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
1272
+ }
1273
+ function Un(e, t = "month") {
1274
+ const n = new Date(et(e, t));
1275
+ return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
1276
+ }
1277
+ const Kn = /* @__PURE__ */ new Set(["mail", "message"]);
1278
+ function tt(e, t) {
1263
1279
  const n = e.settings?.signatures?.[t];
1264
1280
  return !n || !n.enabled || !n.body || n.body.trim() === "" ? null : n;
1265
1281
  }
1266
- function $n(e, t, n, r = "html") {
1282
+ function Bn(e, t, n, i = "html") {
1267
1283
  if (!e) return n;
1268
- const i = Je(e, t);
1269
- return i ? `${n}${r === "text" ? `
1284
+ const a = tt(e, t);
1285
+ return a ? `${n}${i === "text" ? `
1270
1286
 
1271
- ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1287
+ ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${a.body}` : n;
1272
1288
  }
1273
- function Rn(e) {
1289
+ function Gn(e) {
1274
1290
  return e.endpoints ?? [];
1275
1291
  }
1276
- const wn = (e) => !!e.assignedUserId || !!e.assignedInboxId, Dn = (e) => e.status === "closed", Pn = (e) => ({
1292
+ const Fn = (e) => !!e.assignedUserId || !!e.assignedInboxId, Hn = (e) => e.status === "closed", Vn = (e) => ({
1277
1293
  urgent: 10,
1278
1294
  high: 5,
1279
1295
  normal: 2,
1280
1296
  low: 1
1281
- })[e.priority] || 0, Un = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1282
- function Kn(e, t) {
1297
+ })[e.priority] || 0, jn = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1298
+ function Xn(e, t) {
1283
1299
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1284
1300
  }
1285
- const Bn = 1e3, Gn = 2e3, Fn = 500, Hn = 12e3, jn = 4e3, Qe = ["contact", "company"];
1286
- function Vn(e) {
1301
+ const Wn = 1e3, Yn = 2e3, zn = 500, qn = 12e3, Jn = 4e3, nt = ["contact", "company"];
1302
+ function Qn(e) {
1287
1303
  if (!e) return !1;
1288
1304
  const t = e.slice(0, e.indexOf(":"));
1289
- return Qe.includes(t);
1305
+ return nt.includes(t);
1290
1306
  }
1291
- const v = {
1307
+ const k = {
1292
1308
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
1293
1309
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
1294
1310
  // An over-permissive key is harmless — it simply matches nothing.
@@ -1311,81 +1327,81 @@ const v = {
1311
1327
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
1312
1328
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
1313
1329
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
1314
- }, Ze = "NL", et = 15, tt = 8, nt = Array.from(
1315
- new Set(Object.values(v).map((e) => e.callingCode))
1330
+ }, it = "NL", at = 15, rt = 8, ot = Array.from(
1331
+ new Set(Object.values(k).map((e) => e.callingCode))
1316
1332
  ).sort((e, t) => t.length - e.length);
1317
- function W(e) {
1333
+ function Y(e) {
1318
1334
  if (e)
1319
- return v[e.trim().toUpperCase()];
1335
+ return k[e.trim().toUpperCase()];
1320
1336
  }
1321
- function E(e, t) {
1337
+ function A(e, t) {
1322
1338
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
1323
1339
  }
1324
1340
  function z(e) {
1325
- if (e.length > et) return null;
1326
- for (const t of nt) {
1341
+ if (e.length > at) return null;
1342
+ for (const t of ot) {
1327
1343
  if (!e.startsWith(t)) continue;
1328
1344
  const n = e.slice(t.length);
1329
- for (const r of Object.values(v)) {
1330
- if (r.callingCode !== t) continue;
1331
- const i = r.trunkPrefix, a = i && n.startsWith(i) ? n.slice(i.length) : n;
1332
- if (E(a, r)) return `+${t}${a}`;
1345
+ for (const i of Object.values(k)) {
1346
+ if (i.callingCode !== t) continue;
1347
+ const a = i.trunkPrefix, r = a && n.startsWith(a) ? n.slice(a.length) : n;
1348
+ if (A(r, i)) return `+${t}${r}`;
1333
1349
  }
1334
1350
  return null;
1335
1351
  }
1336
- return e.length < tt ? null : `+${e}`;
1352
+ return e.length < rt ? null : `+${e}`;
1337
1353
  }
1338
- function it(e) {
1354
+ function st(e) {
1339
1355
  let t = e.trim();
1340
1356
  const n = t.match(/^(sips?|tel|whatsapp):/i);
1341
1357
  n && (t = t.slice(n[0].length));
1342
- const r = t.indexOf("@");
1343
- return r >= 0 && (t = t.slice(0, r)), t.trim();
1358
+ const i = t.indexOf("@");
1359
+ return i >= 0 && (t = t.slice(0, i)), t.trim();
1344
1360
  }
1345
- function Xn(e) {
1361
+ function Zn(e) {
1346
1362
  if (!e) return !1;
1347
1363
  const t = e.indexOf("@");
1348
1364
  if (t <= 0) return !1;
1349
1365
  const n = e.slice(0, t).trim();
1350
1366
  return !/^[+\d\s().-]+$/.test(n);
1351
1367
  }
1352
- function Y(e, t) {
1368
+ function q(e, t) {
1353
1369
  if (!e) return null;
1354
- const n = it(e);
1370
+ const n = st(e);
1355
1371
  if (!n) return null;
1356
- const r = n.startsWith("+"), i = n.replace(/\D/g, "");
1357
- if (!i) return null;
1358
- if (r) return z(i);
1359
- if (i.startsWith("00")) return z(i.slice(2));
1360
- const a = W(t) ?? W(Ze);
1372
+ const i = n.startsWith("+"), a = n.replace(/\D/g, "");
1361
1373
  if (!a) return null;
1362
- const o = a.trunkPrefix;
1363
- if (o && i.startsWith(o)) {
1364
- const s = i.slice(o.length);
1365
- return E(s, a) ? `+${a.callingCode}${s}` : null;
1374
+ if (i) return z(a);
1375
+ if (a.startsWith("00")) return z(a.slice(2));
1376
+ const r = Y(t) ?? Y(it);
1377
+ if (!r) return null;
1378
+ const o = r.trunkPrefix;
1379
+ if (o && a.startsWith(o)) {
1380
+ const s = a.slice(o.length);
1381
+ return A(s, r) ? `+${r.callingCode}${s}` : null;
1366
1382
  }
1367
- if (i.startsWith(a.callingCode)) {
1368
- const s = i.slice(a.callingCode.length);
1369
- if (E(s, a)) return `+${a.callingCode}${s}`;
1383
+ if (a.startsWith(r.callingCode)) {
1384
+ const s = a.slice(r.callingCode.length);
1385
+ if (A(s, r)) return `+${r.callingCode}${s}`;
1370
1386
  }
1371
- return !o && E(i, a) ? `+${a.callingCode}${i}` : null;
1387
+ return !o && A(a, r) ? `+${r.callingCode}${a}` : null;
1372
1388
  }
1373
- function Wn(e, t = 9) {
1389
+ function ei(e, t = 9) {
1374
1390
  const n = (e ?? "").replace(/\D/g, "");
1375
1391
  return n.length < t ? null : n.slice(-t);
1376
1392
  }
1377
- function ue(e) {
1393
+ function pe(e) {
1378
1394
  if (!e) return null;
1379
1395
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
1380
1396
  if (n <= 0 || n === t.length - 1) return null;
1381
- const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
1382
- return !r || !i.includes(".") ? null : `${r}@${i}`;
1397
+ const i = t.slice(0, n).split("+")[0], a = t.slice(n + 1);
1398
+ return !i || !a.includes(".") ? null : `${i}@${a}`;
1383
1399
  }
1384
- function zn(e) {
1385
- const t = ue(e);
1400
+ function ti(e) {
1401
+ const t = pe(e);
1386
1402
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
1387
1403
  }
1388
- const rt = /* @__PURE__ */ new Set([
1404
+ const lt = /* @__PURE__ */ new Set([
1389
1405
  "co.uk",
1390
1406
  "org.uk",
1391
1407
  "gov.uk",
@@ -1395,14 +1411,14 @@ const rt = /* @__PURE__ */ new Set([
1395
1411
  "com.br",
1396
1412
  "co.za"
1397
1413
  ]);
1398
- function at(e) {
1414
+ function ct(e) {
1399
1415
  if (!e) return null;
1400
1416
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
1401
1417
  if (t.length < 2) return null;
1402
1418
  const n = t.slice(-2).join(".");
1403
- return rt.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1419
+ return lt.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1404
1420
  }
1405
- const ot = /* @__PURE__ */ new Set([
1421
+ const ut = /* @__PURE__ */ new Set([
1406
1422
  "gmail.com",
1407
1423
  "googlemail.com",
1408
1424
  "outlook.com",
@@ -1447,44 +1463,44 @@ const ot = /* @__PURE__ */ new Set([
1447
1463
  "proximus.be",
1448
1464
  "scarlet.be"
1449
1465
  ]);
1450
- function Yn(e) {
1451
- const t = at(e);
1452
- return t ? ot.has(t) : !1;
1466
+ function ni(e) {
1467
+ const t = ct(e);
1468
+ return t ? ut.has(t) : !1;
1453
1469
  }
1454
- function qn(e) {
1470
+ function ii(e) {
1455
1471
  if (!e) return !1;
1456
1472
  const t = e.trim().toLowerCase();
1457
1473
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
1458
1474
  }
1459
- function Jn(e, t, n) {
1475
+ function ai(e, t, n) {
1460
1476
  if (!e || !t) return null;
1461
- const r = e.trim().toLowerCase();
1462
- if (r === "tel" || r === "sms" || r === "whatsapp") {
1463
- const a = Y(t, n);
1464
- return a ? `tel:${a}` : null;
1477
+ const i = e.trim().toLowerCase();
1478
+ if (i === "tel" || i === "sms" || i === "whatsapp") {
1479
+ const r = q(t, n);
1480
+ return r ? `tel:${r}` : null;
1465
1481
  }
1466
- if (r === "fax") {
1467
- const a = Y(t, n);
1468
- return a ? `fax:${a}` : null;
1482
+ if (i === "fax") {
1483
+ const r = q(t, n);
1484
+ return r ? `fax:${r}` : null;
1469
1485
  }
1470
- if (r === "mailto" || r === "email") {
1471
- const a = ue(t);
1472
- return a ? `mailto:${a}` : null;
1486
+ if (i === "mailto" || i === "email") {
1487
+ const r = pe(t);
1488
+ return r ? `mailto:${r}` : null;
1473
1489
  }
1474
- const i = t.trim().toLowerCase();
1475
- return i ? `${r}:${i}` : null;
1490
+ const a = t.trim().toLowerCase();
1491
+ return a ? `${i}:${a}` : null;
1476
1492
  }
1477
- const st = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, lt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1478
- function Qn(e) {
1493
+ const pt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, dt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1494
+ function ri(e) {
1479
1495
  if (typeof e != "string" || !e) return "";
1480
1496
  let t = e;
1481
1497
  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(`
1482
1498
  `).map(
1483
1499
  (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,}$/, "")
1484
1500
  ).join(`
1485
- `), t = t.replace(st, "$2"), t = t.replace(lt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1501
+ `), t = t.replace(pt, "$2"), t = t.replace(dt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1486
1502
  }
1487
- const ct = [
1503
+ const ft = [
1488
1504
  /<blockquote/i,
1489
1505
  /class="?gmail_quote/i,
1490
1506
  // Gmail quote container
@@ -1497,17 +1513,17 @@ const ct = [
1497
1513
  // Outlook underscore separator before "From:"
1498
1514
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
1499
1515
  // Gmail "On <date> <name> wrote:"
1500
- ], q = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ut = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1501
- function pt(e) {
1516
+ ], J = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, mt = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1517
+ function gt(e) {
1502
1518
  const t = e.split(`
1503
1519
  `);
1504
1520
  for (let n = 0; n < t.length; n++)
1505
- if (ut.test(t[n]) || q.test(t[n]) && t.slice(n + 1, n + 4).some((r) => q.test(r)))
1521
+ if (mt.test(t[n]) || J.test(t[n]) && t.slice(n + 1, n + 4).some((i) => J.test(i)))
1506
1522
  return t.slice(0, n).join(`
1507
1523
  `).trim();
1508
1524
  return e;
1509
1525
  }
1510
- function J(e) {
1526
+ function Q(e) {
1511
1527
  let t = e;
1512
1528
  return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
1513
1529
  `), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
@@ -1515,38 +1531,38 @@ function J(e) {
1515
1531
  `), t = t.replace(/<\/(div|li|tr)>/gi, `
1516
1532
  `), t = t.replace(/<\/(td|th)>/gi, " "), t = t.replace(/<[^>]+>/g, ""), t = t.replace(/<[^>]*$/, ""), t;
1517
1533
  }
1518
- function Q(e) {
1519
- return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
1520
- }
1521
1534
  function Z(e) {
1522
- return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Q(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Q(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
1535
+ return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
1523
1536
  }
1524
1537
  function ee(e) {
1538
+ return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Z(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Z(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
1539
+ }
1540
+ function te(e) {
1525
1541
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
1526
1542
  `).replace(/\n{3,}/g, `
1527
1543
 
1528
1544
  `).trim();
1529
1545
  }
1530
- function Zn(e) {
1546
+ function oi(e) {
1531
1547
  if (typeof e != "string" || !e) return "";
1532
1548
  let t = e.length;
1533
- for (const a of ct) {
1534
- const o = e.search(a);
1549
+ for (const r of ft) {
1550
+ const o = e.search(r);
1535
1551
  o >= 0 && o < t && (t = o);
1536
1552
  }
1537
1553
  const n = e.slice(0, t);
1538
- let r = ee(Z(J(n)));
1539
- return r || (r = ee(Z(J(e)))), pt(r) || r;
1554
+ let i = te(ee(Q(n)));
1555
+ return i || (i = te(ee(Q(e)))), gt(i) || i;
1540
1556
  }
1541
- const dt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ft = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1542
- function ei(e, t) {
1543
- return !!(e && dt.test(e) || t && ft.test(t));
1557
+ const ht = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, yt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1558
+ function si(e, t) {
1559
+ return !!(e && ht.test(e) || t && yt.test(t));
1544
1560
  }
1545
- const mt = 3, gt = 600;
1546
- function ti(e, t) {
1547
- return e >= mt || t >= gt;
1561
+ const bt = 3, Et = 600;
1562
+ function li(e, t) {
1563
+ return e >= bt || t >= Et;
1548
1564
  }
1549
- const ht = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), yt = /* @__PURE__ */ new Set([
1565
+ const At = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), _t = /* @__PURE__ */ new Set([
1550
1566
  "text/plain",
1551
1567
  "text/markdown",
1552
1568
  "text/csv",
@@ -1555,77 +1571,77 @@ const ht = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1555
1571
  "application/xml",
1556
1572
  "text/xml"
1557
1573
  ]);
1558
- function bt(e) {
1574
+ function Tt(e) {
1559
1575
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1560
- return t ? ht.has(t) ? "image" : t === "application/pdf" ? "pdf" : yt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1576
+ return t ? At.has(t) ? "image" : t === "application/pdf" ? "pdf" : _t.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1561
1577
  }
1562
- const h = 1024 * 1024, At = {
1578
+ const h = 1024 * 1024, It = {
1563
1579
  image: 5 * h,
1564
1580
  pdf: 20 * h,
1565
1581
  text: 1 * h,
1566
1582
  audio: 20 * h
1567
- }, ni = 25 * h, ii = 5;
1568
- function ri(e, t) {
1569
- const n = bt(e);
1570
- return n === "unsupported" ? "unsupported" : t > At[n] ? "too-large" : null;
1571
- }
1572
- function Et(e, t) {
1573
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => Tt(o, r[o.intent]));
1574
- if (!e.extraIntents || e.extraIntents.length === 0) return i;
1575
- const a = new Set(i.map((o) => o.intent));
1583
+ }, ci = 25 * h, ui = 5;
1584
+ function pi(e, t) {
1585
+ const n = Tt(e);
1586
+ return n === "unsupported" ? "unsupported" : t > It[n] ? "too-large" : null;
1587
+ }
1588
+ function St(e, t) {
1589
+ const n = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, a = t.intents.filter((o) => !n.has(o.intent)).map((o) => Ct(o, i[o.intent]));
1590
+ if (!e.extraIntents || e.extraIntents.length === 0) return a;
1591
+ const r = new Set(a.map((o) => o.intent));
1576
1592
  for (const o of e.extraIntents)
1577
- a.has(o.intent) || (i.push(o), a.add(o.intent));
1578
- return i;
1593
+ r.has(o.intent) || (a.push(o), r.add(o.intent));
1594
+ return a;
1579
1595
  }
1580
- function _t(e, t) {
1596
+ function Mt(e, t) {
1581
1597
  const n = {};
1582
- for (const r of e.intents) {
1583
- if (!r.togglable) continue;
1584
- const i = t?.[r.intent];
1585
- n[r.intent] = i ?? r.defaultEnabled ?? !0;
1598
+ for (const i of e.intents) {
1599
+ if (!i.togglable) continue;
1600
+ const a = t?.[i.intent];
1601
+ n[i.intent] = a ?? i.defaultEnabled ?? !0;
1586
1602
  }
1587
1603
  return n;
1588
1604
  }
1589
- function ai(e, t) {
1590
- const n = _t(e, t);
1591
- return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1605
+ function di(e, t) {
1606
+ const n = Mt(e, t);
1607
+ return Object.entries(n).filter(([, i]) => !i).map(([i]) => i);
1592
1608
  }
1593
- function Tt(e, t) {
1609
+ function Ct(e, t) {
1594
1610
  return t ? {
1595
1611
  intent: t.intent ?? e.intent,
1596
1612
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1597
1613
  transport: t.transport ?? e.transport
1598
1614
  } : e;
1599
1615
  }
1600
- function oi(e, t) {
1616
+ function fi(e, t) {
1601
1617
  const n = [];
1602
- for (const r of e) {
1603
- if (!r.enabled) continue;
1604
- const i = t[r.providerId];
1605
- if (i)
1606
- for (const a of Et(r, i))
1607
- n.push({ channel: r, description: i, capability: a });
1618
+ for (const i of e) {
1619
+ if (!i.enabled) continue;
1620
+ const a = t[i.providerId];
1621
+ if (a)
1622
+ for (const r of St(i, a))
1623
+ n.push({ channel: i, description: a, capability: r });
1608
1624
  }
1609
1625
  return n;
1610
1626
  }
1611
- function si(e, t) {
1627
+ function mi(e, t) {
1612
1628
  return t.filter((n) => n.capability.intent === e);
1613
1629
  }
1614
- function It(e, t) {
1630
+ function xt(e, t) {
1615
1631
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1616
1632
  }
1617
- function li(e, t) {
1618
- return It(e.scheme, t);
1633
+ function gi(e, t) {
1634
+ return xt(e.scheme, t);
1619
1635
  }
1620
- function ci(e, t, n) {
1621
- const r = [];
1622
- for (const i of e)
1623
- for (const a of n)
1624
- a.capability.intent === t && a.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: a, endpoint: i });
1625
- return r;
1636
+ function hi(e, t, n) {
1637
+ const i = [];
1638
+ for (const a of e)
1639
+ for (const r of n)
1640
+ r.capability.intent === t && r.capability.targetSchemes.includes(a.scheme) && i.push({ channelIntent: r, endpoint: a });
1641
+ return i;
1626
1642
  }
1627
- var St = /* @__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))(St || {});
1628
- const Mt = {
1643
+ var Nt = /* @__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))(Nt || {});
1644
+ const vt = {
1629
1645
  mailto: "mail",
1630
1646
  sip: "tel",
1631
1647
  tel: "tel",
@@ -1647,10 +1663,10 @@ const Mt = {
1647
1663
  id: "note",
1648
1664
  custom: "note"
1649
1665
  };
1650
- function ui(e) {
1651
- return e ? Mt[e] ?? "note" : "note";
1666
+ function yi(e) {
1667
+ return e ? vt[e] ?? "note" : "note";
1652
1668
  }
1653
- const pi = "message_window", di = "message_templates", fi = {
1669
+ const bi = "message_window", Ei = "message_templates", Ai = {
1654
1670
  // E-mail
1655
1671
  FROM: "from",
1656
1672
  TO: "to",
@@ -1667,240 +1683,258 @@ const pi = "message_window", di = "message_templates", fi = {
1667
1683
  // Voice/conference
1668
1684
  HOST: "host",
1669
1685
  PARTICIPANT: "participant"
1670
- }, mi = (e, t) => ({ intent: e, ...t }), gi = "folder_management", hi = "remote_search", yi = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, pe = "auth";
1671
- function de(e) {
1686
+ }, _i = (e, t) => ({ intent: e, ...t }), Ti = "folder_management", Ii = "remote_search", Si = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, de = "auth";
1687
+ function fe(e) {
1672
1688
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
1673
1689
  return t ? t[1] : null;
1674
1690
  }
1675
- function bi(e) {
1676
- const t = de(e);
1677
- return t ? t !== pe : typeof e == "string" && e.startsWith("/wake");
1691
+ function Mi(e) {
1692
+ const t = fe(e);
1693
+ return t ? t !== de : typeof e == "string" && e.startsWith("/wake");
1678
1694
  }
1679
- function Ai(e) {
1680
- return typeof e != "string" || e === "" || e === "/" ? !0 : de(e) === pe;
1695
+ function Ci(e) {
1696
+ return typeof e != "string" || e === "" || e === "/" ? !0 : fe(e) === de;
1681
1697
  }
1682
- function Ct(e) {
1698
+ function kt(e) {
1683
1699
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1684
1700
  }
1685
- function xt(e) {
1686
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + Ct(r)).join("");
1701
+ function Lt(e) {
1702
+ const n = e.split("/").filter(Boolean).map((i) => i.startsWith(":") ? i.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + kt(i)).join("");
1687
1703
  return new RegExp(`^${n}\\/?$`);
1688
1704
  }
1689
- function Nt(e, t) {
1690
- const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
1691
- return n.forEach((a, o) => {
1692
- if (a.startsWith(":")) {
1693
- const s = a.endsWith("?") ? a.slice(1, -1) : a.slice(1), l = r[o];
1694
- l && (i[s] = l);
1705
+ function Ot(e, t) {
1706
+ const n = e.split("/").filter(Boolean), i = t.split("/").filter(Boolean), a = {};
1707
+ return n.forEach((r, o) => {
1708
+ if (r.startsWith(":")) {
1709
+ const s = r.endsWith("?") ? r.slice(1, -1) : r.slice(1), l = i[o];
1710
+ l && (a[s] = l);
1695
1711
  }
1696
- }), i;
1712
+ }), a;
1697
1713
  }
1698
- function kt(e) {
1714
+ function $t(e) {
1699
1715
  return e.publicBasePath ?? `/apps/${e.name}`;
1700
1716
  }
1701
- function Ei(e) {
1717
+ function xi(e) {
1702
1718
  const t = [];
1703
1719
  for (const n of e) {
1704
1720
  if (!n?.name) continue;
1705
- const r = kt(n);
1706
- for (const i of n.routes ?? []) {
1707
- if (!i.public) continue;
1708
- const a = i.path === "/" ? "" : i.path;
1721
+ const i = $t(n);
1722
+ for (const a of n.routes ?? []) {
1723
+ if (!a.public) continue;
1724
+ const r = a.path === "/" ? "" : a.path;
1709
1725
  t.push({
1710
1726
  appName: n.name,
1711
- resource: i.resource,
1712
- pattern: `${r}${a}`,
1713
- props: i.props
1727
+ resource: a.resource,
1728
+ pattern: `${i}${r}`,
1729
+ props: a.props
1714
1730
  });
1715
1731
  }
1716
1732
  }
1717
1733
  return t;
1718
1734
  }
1719
- function vt(e, t) {
1720
- const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
1721
- for (let i = 0; i < Math.min(n.length, r.length); i++) {
1722
- const a = n[i].startsWith(":"), o = r[i].startsWith(":");
1723
- if (a !== o) return o;
1735
+ function Rt(e, t) {
1736
+ const n = e.split("/").filter(Boolean), i = t.split("/").filter(Boolean);
1737
+ for (let a = 0; a < Math.min(n.length, i.length); a++) {
1738
+ const r = n[a].startsWith(":"), o = i[a].startsWith(":");
1739
+ if (r !== o) return o;
1724
1740
  }
1725
- return n.length > r.length;
1741
+ return n.length > i.length;
1726
1742
  }
1727
- function Ot(e, t) {
1743
+ function wt(e, t) {
1728
1744
  if (typeof e != "string") return null;
1729
1745
  let n = null;
1730
- for (const r of t)
1731
- xt(r.pattern).test(e) && (!n || vt(r.pattern, n.pattern)) && (n = r);
1732
- return n ? { ...n, params: { ...n.props, ...Nt(n.pattern, e) } } : null;
1746
+ for (const i of t)
1747
+ Lt(i.pattern).test(e) && (!n || Rt(i.pattern, n.pattern)) && (n = i);
1748
+ return n ? { ...n, params: { ...n.props, ...Ot(n.pattern, e) } } : null;
1749
+ }
1750
+ function Ni(e, t) {
1751
+ return wt(e, t) !== null;
1752
+ }
1753
+ const me = 9e4, Dt = ["out_of_office"], ge = (e) => Dt.includes(e);
1754
+ function vi(e, t, n) {
1755
+ const i = n - e < me, a = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
1756
+ if (!a?.status) return { online: i, status: i ? "available" : "offline" };
1757
+ const r = a.status;
1758
+ return !i && !ge(r) ? { online: !1, status: "offline" } : { online: i, status: r, message: a.message };
1733
1759
  }
1734
- function _i(e, t) {
1735
- return Ot(e, t) !== null;
1760
+ function ki(e, t) {
1761
+ const n = t - e.lastSeenAt < me, i = n || ge(e.status) ? e.status : "offline";
1762
+ return n === e.online && i === e.status ? e : { ...e, online: n, status: i };
1736
1763
  }
1737
- const Ti = 9e4, Ii = "installation-id";
1764
+ const Li = "installation-id";
1738
1765
  export {
1739
1766
  m as ACTIVITY_CATALOG,
1740
- At as AI_ATTACHMENT_LIMITS,
1741
- ii as AI_ATTACHMENT_MAX_PER_TURN,
1742
- ni as AI_ATTACHMENT_TURN_BUDGET,
1743
- ce as AI_VENDORS,
1744
- ke as ALLOWED_LINK_SCHEMES,
1767
+ It as AI_ATTACHMENT_LIMITS,
1768
+ ui as AI_ATTACHMENT_MAX_PER_TURN,
1769
+ ci as AI_ATTACHMENT_TURN_BUDGET,
1770
+ ue as AI_VENDORS,
1771
+ Oe as ALLOWED_LINK_SCHEMES,
1745
1772
  P as ARTIFACT_MAX_BLOCKS,
1746
- en as ARTIFACT_MAX_BODY_BYTES,
1773
+ on as ARTIFACT_MAX_BODY_BYTES,
1747
1774
  C as ARTIFACT_MAX_CELL_LEN,
1748
1775
  G as ARTIFACT_MAX_KPI_ITEMS,
1749
1776
  U as ARTIFACT_MAX_LIST_ITEMS,
1750
1777
  B as ARTIFACT_MAX_TABLE_COLUMNS,
1751
1778
  K as ARTIFACT_MAX_TABLE_ROWS,
1752
- ne as ARTIFACT_MAX_TEXT_LEN,
1753
- pe as AUTH_APP_NAME,
1754
- Ae as ActivityTypeRegistry,
1755
- Xt as BUILT_IN_ONLY,
1756
- pn as CLASSIFY_VARS,
1757
- qt as CORE_DIMENSIONS,
1758
- St as CommunicationScheme,
1759
- jn as DEFAULT_MEMORY_BUDGET,
1760
- Ze as DEFAULT_PHONE_REGION,
1761
- gi as FEATURE_FOLDER_MANAGEMENT,
1762
- hi as FEATURE_REMOTE_SEARCH,
1763
- Ii as INSTALLATION_HEADER,
1764
- fi as InteractionParticipantRole,
1765
- je as KB_FALLBACK_LOCALE,
1766
- V as KB_LOCALES,
1767
- wt as MAX_ACTIONS,
1768
- Lt as MAX_BLOCKS,
1769
- se as MAX_COLLECTION_DEPTH,
1770
- $t as MAX_FIELDS,
1771
- Rt as MAX_LIST_ITEMS,
1772
- Bn as MAX_MEMORY_BROWSE,
1773
- Hn as MAX_MEMORY_BUDGET,
1774
- Gn as MAX_MEMORY_CHARS,
1775
- We as MAX_TOPIC_CANDIDATES,
1776
- Xe as MAX_TOPIC_EXAMPLES,
1779
+ ie as ARTIFACT_MAX_TEXT_LEN,
1780
+ de as AUTH_APP_NAME,
1781
+ Te as ActivityTypeRegistry,
1782
+ Jt as BUILT_IN_ONLY,
1783
+ hn as CLASSIFY_VARS,
1784
+ tn as CORE_DIMENSIONS,
1785
+ Nt as CommunicationScheme,
1786
+ Jn as DEFAULT_MEMORY_BUDGET,
1787
+ it as DEFAULT_PHONE_REGION,
1788
+ Ti as FEATURE_FOLDER_MANAGEMENT,
1789
+ Ii as FEATURE_REMOTE_SEARCH,
1790
+ Li as INSTALLATION_HEADER,
1791
+ Ai as InteractionParticipantRole,
1792
+ We as KB_FALLBACK_LOCALE,
1793
+ j as KB_LOCALES,
1794
+ Bt as MAX_ACTIONS,
1795
+ Pt as MAX_BLOCKS,
1796
+ le as MAX_COLLECTION_DEPTH,
1797
+ Ut as MAX_FIELDS,
1798
+ Kt as MAX_LIST_ITEMS,
1799
+ Wn as MAX_MEMORY_BROWSE,
1800
+ qn as MAX_MEMORY_BUDGET,
1801
+ Yn as MAX_MEMORY_CHARS,
1802
+ qe as MAX_TOPIC_CANDIDATES,
1803
+ ze as MAX_TOPIC_EXAMPLES,
1777
1804
  x as MAX_TOPIC_EXAMPLE_CHARS,
1778
- Fn as MIN_MEMORY_BUDGET,
1779
- Be as PAUSED_RUN_STATUSES,
1780
- v as PHONE_REGIONS,
1781
- Ti as PRESENCE_ONLINE_WINDOW_MS,
1782
- di as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1783
- pi as PROVIDER_FEATURE_MESSAGE_WINDOW,
1784
- ot as PUBLIC_EMAIL_DOMAINS,
1785
- Qe as RELATED_SUBJECT_KINDS,
1786
- Ln as SIGNATURE_INTENTS,
1787
- gt as SUMMARY_MIN_LAST_CHARS,
1788
- mt as SUMMARY_MIN_MESSAGES,
1789
- Ke as TERMINAL_RUN_STATUSES,
1790
- un as TRIGGER_VARS,
1791
- yi as UNSUPPORTED,
1792
- Me as USAGE_DIMENSIONS,
1793
- Ce as USAGE_DIMENSION_IDS,
1794
- Mn as acceptExampleCandidate,
1795
- Ue as actingIdentityKey,
1796
- Pt as activityIconOf,
1797
- Vt as activityJoinUrl,
1798
- he as activitySnippet,
1799
- ye as activityTextParams,
1800
- jt as activityTimelineText,
1801
- Yt as activityTimestamp,
1805
+ zn as MIN_MEMORY_BUDGET,
1806
+ He as PAUSED_RUN_STATUSES,
1807
+ k as PHONE_REGIONS,
1808
+ me as PRESENCE_ONLINE_WINDOW_MS,
1809
+ Dt as PRESENCE_SURVIVES_OFFLINE,
1810
+ Ei as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1811
+ bi as PROVIDER_FEATURE_MESSAGE_WINDOW,
1812
+ ut as PUBLIC_EMAIL_DOMAINS,
1813
+ nt as RELATED_SUBJECT_KINDS,
1814
+ Kn as SIGNATURE_INTENTS,
1815
+ Et as SUMMARY_MIN_LAST_CHARS,
1816
+ bt as SUMMARY_MIN_MESSAGES,
1817
+ Fe as TERMINAL_RUN_STATUSES,
1818
+ gn as TRIGGER_VARS,
1819
+ Si as UNSUPPORTED,
1820
+ Ne as USAGE_DIMENSIONS,
1821
+ ve as USAGE_DIMENSION_IDS,
1822
+ kn as acceptExampleCandidate,
1823
+ Ge as actingIdentityKey,
1824
+ Ft as activityIconOf,
1825
+ qt as activityJoinUrl,
1826
+ Ee as activitySnippet,
1827
+ Ae as activityTextParams,
1828
+ zt as activityTimelineText,
1829
+ en as activityTimestamp,
1802
1830
  f as activityTypeInfo,
1803
- mn as actorKey,
1804
- Sn as addExampleCandidate,
1805
- bt as aiAttachmentKind,
1806
- ri as aiAttachmentRejection,
1807
- On as aiVendorAcceptsAttachment,
1808
- Nn as aiVendorDefaultModel,
1809
- xn as aiVendorLabel,
1810
- vn as aiVendorNeedsBaseUrl,
1811
- kn as aiVendorsWith,
1812
- de as appNameFromPath,
1813
- $n as applySignature,
1814
- nn as artifactBodyBytes,
1815
- rn as artifactOutline,
1816
- an as artifactToMarkdown,
1817
- Wt as buildActivityPreview,
1818
- oi as buildChannelIntents,
1819
- on as buildShareKeys,
1820
- _n as canNestUnder,
1821
- Gt as carriesText,
1822
- In as categoryLabel,
1823
- ui as channelKindForScheme,
1824
- Ut as channelKindOf,
1825
- Zn as cleanMessageText,
1826
- Ve as defaultLocaleOf,
1827
- mi as defineIntent,
1828
- Fe as depthOf,
1829
- ai as disabledIntentsFromCapabilities,
1830
- zn as emailDomain,
1831
- Jn as endpointKey,
1832
- Nt as extractParams,
1833
- li as filterByEndpoint,
1834
- si as filterByIntent,
1835
- It as filterByTargetScheme,
1831
+ En as actorKey,
1832
+ vn as addExampleCandidate,
1833
+ ki as agePresenceEntry,
1834
+ Tt as aiAttachmentKind,
1835
+ pi as aiAttachmentRejection,
1836
+ W as aiBudgetLimit,
1837
+ Un as aiBudgetPeriodKey,
1838
+ et as aiBudgetPeriodStart,
1839
+ Pn as aiBudgetState,
1840
+ Dn as aiVendorAcceptsAttachment,
1841
+ $n as aiVendorDefaultModel,
1842
+ On as aiVendorLabel,
1843
+ wn as aiVendorNeedsBaseUrl,
1844
+ Rn as aiVendorsWith,
1845
+ fe as appNameFromPath,
1846
+ Bn as applySignature,
1847
+ ln as artifactBodyBytes,
1848
+ cn as artifactOutline,
1849
+ un as artifactToMarkdown,
1850
+ Qt as buildActivityPreview,
1851
+ fi as buildChannelIntents,
1852
+ pn as buildShareKeys,
1853
+ Cn as canNestUnder,
1854
+ Xt as carriesText,
1855
+ Nn as categoryLabel,
1856
+ yi as channelKindForScheme,
1857
+ Ht as channelKindOf,
1858
+ oi as cleanMessageText,
1859
+ Ye as defaultLocaleOf,
1860
+ _i as defineIntent,
1861
+ je as depthOf,
1862
+ vi as derivePresence,
1863
+ di as disabledIntentsFromCapabilities,
1864
+ ti as emailDomain,
1865
+ ai as endpointKey,
1866
+ Ot as extractParams,
1867
+ gi as filterByEndpoint,
1868
+ mi as filterByIntent,
1869
+ xt as filterByTargetScheme,
1836
1870
  _ as findAiVendor,
1837
- Jt as flattenLocales,
1838
- Te as floorToPeriod,
1839
- Pe as formatActingIdentity,
1840
- _e as formatPeriod,
1841
- zt as getActivitySeenUserIds,
1842
- Rn as getContactEndpoints,
1843
- Un as getShortTitle,
1844
- Pn as getUrgencyScore,
1845
- le as heightOf,
1846
- bn as helpCenterText,
1847
- cn as humanizeAction,
1848
- wn as isAssigned,
1849
- Dn as isClosed,
1850
- bi as isDeepLink,
1851
- He as isDescendant,
1852
- Kn as isInteractionUnseen,
1853
- Ai as isLandingPath,
1854
- ei as isLikelyBulk,
1855
- Kt as isMessageType,
1856
- vt as isMoreSpecificPattern,
1857
- hn as isPaused,
1858
- Ht as isPlaybookAuthoredType,
1859
- Yn as isPublicEmailDomain,
1860
- _i as isPublicPath,
1861
- Bt as isReplyableType,
1862
- gn as isRetryable,
1863
- Ge as isTerminal,
1864
- ti as isThreadLongEnough,
1865
- yn as linkLabel,
1866
- En as localeInstruction,
1867
- An as localeName,
1868
- Tn as localesOf,
1869
- Xn as looksLikeEmail,
1870
- ci as matchContactToIntents,
1871
- Ot as matchPublicRoute,
1872
- Ft as messageCountsAs,
1873
- qn as needsPhoneRegion,
1874
- tn as normalizeArtifactBlocks,
1875
- Dt as normalizeBlocks,
1876
- ue as normalizeEmail,
1871
+ nn as flattenLocales,
1872
+ Me as floorToPeriod,
1873
+ Be as formatActingIdentity,
1874
+ Se as formatPeriod,
1875
+ Zt as getActivitySeenUserIds,
1876
+ Gn as getContactEndpoints,
1877
+ jn as getShortTitle,
1878
+ Vn as getUrgencyScore,
1879
+ ce as heightOf,
1880
+ In as helpCenterText,
1881
+ mn as humanizeAction,
1882
+ Fn as isAssigned,
1883
+ Hn as isClosed,
1884
+ Mi as isDeepLink,
1885
+ Xe as isDescendant,
1886
+ Xn as isInteractionUnseen,
1887
+ Ci as isLandingPath,
1888
+ si as isLikelyBulk,
1889
+ Vt as isMessageType,
1890
+ Rt as isMoreSpecificPattern,
1891
+ _n as isPaused,
1892
+ Yt as isPlaybookAuthoredType,
1893
+ ni as isPublicEmailDomain,
1894
+ Ni as isPublicPath,
1895
+ jt as isReplyableType,
1896
+ An as isRetryable,
1897
+ Ve as isTerminal,
1898
+ li as isThreadLongEnough,
1899
+ Tn as linkLabel,
1900
+ Mn as localeInstruction,
1901
+ Sn as localeName,
1902
+ xn as localesOf,
1903
+ Zn as looksLikeEmail,
1904
+ hi as matchContactToIntents,
1905
+ wt as matchPublicRoute,
1906
+ Wt as messageCountsAs,
1907
+ ii as needsPhoneRegion,
1908
+ sn as normalizeArtifactBlocks,
1909
+ Gt as normalizeBlocks,
1910
+ pe as normalizeEmail,
1877
1911
  g as normalizeExample,
1878
- dn as parseActingIdentity,
1879
- xt as pathToRegex,
1880
- Qt as periodsInRange,
1881
- Wn as phoneSuffix,
1882
- Qn as plainTextFromMarkdown,
1883
- fn as playbookActor,
1884
- kt as publicBasePathFor,
1885
- Ei as publicRoutePatterns,
1912
+ yn as parseActingIdentity,
1913
+ Lt as pathToRegex,
1914
+ an as periodsInRange,
1915
+ ei as phoneSuffix,
1916
+ ri as plainTextFromMarkdown,
1917
+ bn as playbookActor,
1918
+ $t as publicBasePathFor,
1919
+ xi as publicRoutePatterns,
1886
1920
  N as readPath,
1887
- at as registrableDomain,
1888
- Ye as rejectExampleCandidate,
1889
- Vn as relatedByDefault,
1890
- _t as resolveAccountCapabilities,
1891
- k as resolveActivityText,
1892
- Et as resolveChannelIntents,
1893
- Je as resolveSignature,
1894
- $e as sanitizeInline,
1895
- ae as shareKeyForTeam,
1921
+ ct as registrableDomain,
1922
+ Qe as rejectExampleCandidate,
1923
+ Qn as relatedByDefault,
1924
+ Mt as resolveAccountCapabilities,
1925
+ v as resolveActivityText,
1926
+ St as resolveChannelIntents,
1927
+ tt as resolveSignature,
1928
+ De as sanitizeInline,
1929
+ oe as shareKeyForTeam,
1896
1930
  re as shareKeyForUser,
1897
- sn as shareKeysForViewer,
1898
- ge as stripHtml,
1899
- Y as toE164,
1900
- ln as toolSourceKinds,
1901
- qe as topicOfferedForTeam,
1902
- Cn as topicsForTeam,
1903
- ze as truncateExample,
1904
- xe as usageMetricId,
1905
- Zt as usageMetrics
1931
+ dn as shareKeysForViewer,
1932
+ be as stripHtml,
1933
+ q as toE164,
1934
+ fn as toolSourceKinds,
1935
+ Ze as topicOfferedForTeam,
1936
+ Ln as topicsForTeam,
1937
+ Je as truncateExample,
1938
+ ke as usageMetricId,
1939
+ rn as usageMetrics
1906
1940
  };