@opencxh/domain 1.221.0 → 1.222.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 $r = 10, Lr = 10, Pr = 10, Ur = 5, Ve = /* @__PURE__ */ new Set([
1
+ const Ur = 10, Kr = 10, jr = 10, Br = 5, ze = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function R(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function Kr(e, t = () => {
17
+ function Hr(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,7 +25,7 @@ function Kr(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const i = r;
28
- if (!Ve.has(i.type)) {
28
+ if (!ze.has(i.type)) {
29
29
  t(`unknown block type ${String(i.type)}`);
30
30
  continue;
31
31
  }
@@ -69,20 +69,20 @@ function Kr(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const ze = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Xe = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
- function Ye(e) {
72
+ const Xe = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Ye = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
+ function qe(e) {
74
74
  if (typeof e != "string" || !e) return "";
75
75
  let t = e;
76
76
  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(`
77
77
  `).map(
78
78
  (n) => n.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
79
79
  ).join(`
80
- `), t = t.replace(ze, "$2"), t = t.replace(Xe, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
80
+ `), t = t.replace(Xe, "$2"), t = t.replace(Ye, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
81
81
  }
82
- function qe(e) {
82
+ function Je(e) {
83
83
  return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
84
84
  }
85
- function w(e) {
85
+ function I(e) {
86
86
  if (!e || e < 0) return "";
87
87
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
88
88
  return `${t}:${n.toString().padStart(2, "0")}`;
@@ -133,7 +133,7 @@ const A = {
133
133
  shape: "event",
134
134
  channelKind: "voice",
135
135
  icon: "phone",
136
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${w(e.payload.duration)})` : ""}`,
136
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${I(e.payload.duration)})` : ""}`,
137
137
  timeline: (e) => `Call ended${W(e.payload.duration)}`
138
138
  },
139
139
  VOICE_CALL_MISSED: {
@@ -188,7 +188,7 @@ const A = {
188
188
  shape: "event",
189
189
  channelKind: "video",
190
190
  icon: "video",
191
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${w(e.payload.duration)})` : ""}`,
191
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${I(e.payload.duration)})` : ""}`,
192
192
  timeline: () => "Video call ended"
193
193
  },
194
194
  VIDEO_CALL_MISSED: {
@@ -290,7 +290,7 @@ const A = {
290
290
  shape: "event",
291
291
  channelKind: "chat",
292
292
  icon: "message-circle",
293
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${w(e.payload.duration)})` : ""}`,
293
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${I(e.payload.duration)})` : ""}`,
294
294
  timeline: (e) => `${V(e.payload.callType)} ended${W(e.payload.duration)}`,
295
295
  joinUrl: (e) => e.payload.joinUrl
296
296
  },
@@ -380,7 +380,7 @@ const A = {
380
380
  MEETING_ENDED: {
381
381
  shape: "event",
382
382
  icon: "calendar",
383
- snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${w(e.payload.duration)})` : ""}`,
383
+ snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${I(e.payload.duration)})` : ""}`,
384
384
  timeline: () => "Meeting ended"
385
385
  },
386
386
  MEETING_PARTICIPANT_JOINED: {
@@ -449,56 +449,62 @@ const A = {
449
449
  }
450
450
  };
451
451
  function z(e) {
452
- const t = e.payload, n = Ye(t.bodyText).trim() || t.bodySnippet?.trim() || qe(t.body ?? "");
452
+ const t = e.payload, n = qe(t.bodyText).trim() || t.bodySnippet?.trim() || Je(t.body ?? "");
453
453
  return t.subject ? `${t.subject} — ${n}` : n;
454
454
  }
455
- function h(e) {
455
+ function m(e) {
456
456
  return A[e];
457
457
  }
458
- function Br(e) {
459
- return h(e)?.icon ?? "circle";
458
+ function Gr(e) {
459
+ return m(e)?.icon ?? "circle";
460
460
  }
461
- function Hr(e) {
462
- return h(e)?.channelKind;
461
+ function Fr(e) {
462
+ return m(e)?.channelKind;
463
463
  }
464
464
  function _e(e) {
465
465
  return e === "message" || e === "note";
466
466
  }
467
- function jr(e) {
468
- return _e(h(e)?.shape);
467
+ function Wr(e) {
468
+ return _e(m(e)?.shape);
469
469
  }
470
- function Gr(e) {
471
- return h(e)?.replyable === !0;
470
+ function Te(e) {
471
+ return e === "note";
472
472
  }
473
- function Fr(e) {
474
- return h(e)?.carriesText === !0;
473
+ function Vr(e) {
474
+ return Te(m(e)?.shape);
475
475
  }
476
- function Je(e) {
477
- return h(e)?.countsAs;
476
+ function zr(e) {
477
+ return m(e)?.replyable === !0;
478
478
  }
479
- function Wr(e) {
480
- return h(e)?.playbookAuthored === !0;
479
+ function Xr(e) {
480
+ return m(e)?.carriesText === !0;
481
481
  }
482
- function Vr(e) {
483
- return h(e)?.connected === !0;
482
+ function Ze(e) {
483
+ return m(e)?.countsAs;
484
484
  }
485
- function zr(e) {
486
- const t = h(e);
485
+ function Yr(e) {
486
+ return m(e)?.playbookAuthored === !0;
487
+ }
488
+ function qr(e) {
489
+ return m(e)?.connected === !0;
490
+ }
491
+ function Jr(e) {
492
+ const t = m(e);
487
493
  return t?.shape === "artifact" && t?.carriesText === !0;
488
494
  }
489
- function Ze(e) {
490
- const t = h(e.type)?.snippet;
495
+ function Qe(e) {
496
+ const t = m(e.type)?.snippet;
491
497
  return t ? t(e) : "";
492
498
  }
493
- function Xr(e, t) {
494
- const n = h(e.type)?.timeline;
499
+ function Zr(e, t) {
500
+ const n = m(e.type)?.timeline;
495
501
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
496
502
  }
497
- function Yr(e) {
498
- const t = h(e.type)?.joinUrl;
503
+ function Qr(e) {
504
+ const t = m(e.type)?.joinUrl;
499
505
  return t ? t(e) : void 0;
500
506
  }
501
- function B(e, t) {
507
+ function j(e, t) {
502
508
  let n = e;
503
509
  for (const r of t.split(".")) {
504
510
  if (n == null || typeof n != "object") return "";
@@ -506,42 +512,42 @@ function B(e, t) {
506
512
  }
507
513
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
508
514
  }
509
- function H(e, t, n) {
515
+ function B(e, t, n) {
510
516
  if (e === void 0) return null;
511
517
  if (typeof e == "string") return e || null;
512
518
  if ("value" in e)
513
- return B(t, e.value) || null;
519
+ return j(t, e.value) || null;
514
520
  const r = {};
515
521
  for (const [o, a] of Object.entries(e.params ?? {}))
516
- r[o] = B(t, a);
522
+ r[o] = j(t, a);
517
523
  const i = n(e.key, r);
518
524
  return i === e.key ? null : i;
519
525
  }
520
- function Qe(e, t) {
526
+ function et(e, t) {
521
527
  if (!e || typeof e == "string" || "value" in e) return null;
522
528
  const n = {};
523
529
  for (const [r, i] of Object.entries(e.params ?? {}))
524
- n[r] = B(t, i);
530
+ n[r] = j(t, i);
525
531
  return { key: e.key, params: n };
526
532
  }
527
533
  const X = 140;
528
- function et(e) {
534
+ function tt(e) {
529
535
  const t = e.trim();
530
536
  return t.length <= X ? t : `${t.slice(0, X - 1).trimEnd()}…`;
531
537
  }
532
- function qr(e, t) {
533
- const n = Qe(t?.text, e), r = t ? H(t.text, e, (i) => i) : null;
538
+ function ei(e, t) {
539
+ const n = et(t?.text, e), r = t ? B(t.text, e, (i) => i) : null;
534
540
  return {
535
541
  activityId: e.id,
536
542
  type: e.type,
537
- snippet: et(r ?? Ze(e)),
543
+ snippet: tt(r ?? Qe(e)),
538
544
  authorName: e.author?.name ?? "",
539
545
  direction: e.direction,
540
546
  createdAt: e.createdAt ?? Date.now(),
541
547
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
542
548
  };
543
549
  }
544
- const tt = (e) => e;
550
+ const nt = (e) => e;
545
551
  function Y(e) {
546
552
  const t = A[e];
547
553
  return {
@@ -573,8 +579,8 @@ function q(e) {
573
579
  displayNameKey: e.displayNameKey
574
580
  };
575
581
  }
576
- class nt {
577
- constructor(t = [], n = tt) {
582
+ class rt {
583
+ constructor(t = [], n = nt) {
578
584
  this.translate = n;
579
585
  for (const r of t)
580
586
  r?.type && (r.type in A || this.declared.has(r.type) || this.declared.set(r.type, r));
@@ -599,14 +605,14 @@ class nt {
599
605
  const r = A[t.type];
600
606
  if (r?.timeline) return r.timeline(t, n);
601
607
  const i = this.declared.get(t.type);
602
- return H(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
608
+ return B(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
603
609
  }
604
610
  /** The line for the inbox list. Empty when the type has nothing to show. */
605
611
  snippet(t) {
606
612
  const n = A[t.type];
607
613
  if (n?.snippet) return n.snippet(t);
608
614
  const r = this.declared.get(t.type);
609
- return H(r?.text, t, this.translate) ?? "";
615
+ return B(r?.text, t, this.translate) ?? "";
610
616
  }
611
617
  /** The descriptor as it arrived; needed to store `text` as a key. */
612
618
  descriptor(t) {
@@ -633,6 +639,10 @@ class nt {
633
639
  isMessage(t) {
634
640
  return _e(this.get(t)?.shape);
635
641
  }
642
+ /** Folds into the list under the message it answers. See {@link isNoteShape}. */
643
+ nestsUnderParent(t) {
644
+ return Te(this.get(t)?.shape);
645
+ }
636
646
  /** Can a person reply to this? Notes cannot — those go nowhere. */
637
647
  isReplyable(t) {
638
648
  return this.get(t)?.replyable === !0;
@@ -659,23 +669,23 @@ class nt {
659
669
  return this.translate;
660
670
  }
661
671
  }
662
- const Jr = new nt();
663
- function Zr(e, t, n = []) {
672
+ const ti = new rt();
673
+ function ni(e, t, n = []) {
664
674
  const r = e.createdAt;
665
675
  if (!r) return [];
666
676
  const i = new Set(n);
667
677
  return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([o, a]) => a >= r && !i.has(o)).map(([o]) => o);
668
678
  }
669
- function rt(e) {
679
+ function it(e) {
670
680
  return e.createdAt ?? 0;
671
681
  }
672
- function Qr(e) {
682
+ function ri(e) {
673
683
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
674
684
  }
675
- function ei(e) {
685
+ function ii(e) {
676
686
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
677
687
  }
678
- const Te = [
688
+ const we = [
679
689
  {
680
690
  id: "openai",
681
691
  attachmentKinds: ["image", "pdf"],
@@ -765,26 +775,26 @@ const Te = [
765
775
  defaultModel: "default"
766
776
  }
767
777
  ];
768
- function N(e) {
769
- return Te.find((t) => t.id === e);
778
+ function x(e) {
779
+ return we.find((t) => t.id === e);
770
780
  }
771
- function ti(e) {
772
- return N(e)?.label ?? e;
781
+ function oi(e) {
782
+ return x(e)?.label ?? e;
773
783
  }
774
- function ni(e, t = "gpt-5-mini") {
775
- return N(e)?.defaultModel ?? t;
784
+ function ai(e, t = "gpt-5-mini") {
785
+ return x(e)?.defaultModel ?? t;
776
786
  }
777
- function ri(e) {
778
- return Te.filter((t) => t.capabilities.includes(e));
787
+ function si(e) {
788
+ return we.filter((t) => t.capabilities.includes(e));
779
789
  }
780
- function ii(e) {
781
- const t = N(e);
790
+ function ci(e) {
791
+ const t = x(e);
782
792
  return !!t && !t.baseUrl;
783
793
  }
784
- function oi(e, t) {
785
- return t === "text" ? !0 : N(e)?.attachmentKinds?.includes(t) === !0;
794
+ function li(e, t) {
795
+ return t === "text" ? !0 : x(e)?.attachmentKinds?.includes(t) === !0;
786
796
  }
787
- function ai(e, t) {
797
+ function ui(e, t) {
788
798
  if (!e.enabled) return "ok";
789
799
  const n = J(e.hardLimitNanos), r = J(e.softLimitNanos);
790
800
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -792,18 +802,18 @@ function ai(e, t) {
792
802
  function J(e) {
793
803
  return typeof e == "number" ? e : void 0;
794
804
  }
795
- function it(e, t = "month") {
805
+ function ot(e, t = "month") {
796
806
  const n = new Date(e);
797
807
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
798
808
  }
799
- function si(e, t = "month") {
800
- const n = new Date(it(e, t));
809
+ function di(e, t = "month") {
810
+ const n = new Date(ot(e, t));
801
811
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
802
812
  }
803
- function ci(e) {
813
+ function pi(e) {
804
814
  return e?.listeningEnabled !== !1;
805
815
  }
806
- const li = [
816
+ const fi = [
807
817
  { id: "agent", label: "Agent", labelSource: "user" },
808
818
  { id: "team", label: "Team", labelSource: "team" },
809
819
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -816,44 +826,44 @@ const li = [
816
826
  function $(e) {
817
827
  return e < 10 ? `0${e}` : `${e}`;
818
828
  }
819
- function ot(e, t) {
829
+ function at(e, t) {
820
830
  const n = new Date(e), r = `${n.getUTCFullYear()}-${$(n.getUTCMonth() + 1)}-${$(n.getUTCDate())}`;
821
831
  return t === "day" ? r : `${r}T${$(n.getUTCHours())}`;
822
832
  }
823
- function at(e, t) {
833
+ function st(e, t) {
824
834
  const n = new Date(e);
825
835
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
826
836
  }
827
- const st = 36e5, ct = 864e5;
828
- function ui(e, t, n) {
829
- const r = n === "hour" ? st : ct, i = [];
830
- for (let o = at(e, n); o <= t; o += r)
831
- i.push(ot(o, n));
837
+ const ct = 36e5, lt = 864e5;
838
+ function mi(e, t, n) {
839
+ const r = n === "hour" ? ct : lt, i = [];
840
+ for (let o = st(e, n); o <= t; o += r)
841
+ i.push(at(o, n));
832
842
  return i;
833
843
  }
834
- const lt = [
844
+ const ut = [
835
845
  { id: "resource", label: "Resource", labelSource: "raw" },
836
846
  { id: "origin", label: "Herkomst", labelSource: "raw" }
837
- ], ut = lt.map((e) => e.id);
838
- function dt(e, t) {
847
+ ], dt = ut.map((e) => e.id);
848
+ function pt(e, t) {
839
849
  return `${e}.usage.${t}`;
840
850
  }
841
- function di(e, t) {
851
+ function gi(e, t) {
842
852
  return t.map((n) => ({
843
- id: dt(e, n.unit),
853
+ id: pt(e, n.unit),
844
854
  label: n.label,
845
855
  category: "Verbruik",
846
856
  valueType: n.valueType ?? "count",
847
857
  aggregation: "sum",
848
858
  supportedDimensions: [
849
859
  "provider",
850
- ...ut,
860
+ ...dt,
851
861
  ...n.extraDimensions ?? [],
852
862
  "time"
853
863
  ]
854
864
  }));
855
865
  }
856
- const Ie = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), Z = 200, Q = 100, ee = 200, te = 12, ne = 4, we = 4e3, L = 500, pi = 256 * 1024, pt = /* @__PURE__ */ new Set([
866
+ const Ie = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), Z = 200, Q = 100, ee = 200, te = 12, ne = 4, Me = 4e3, L = 500, hi = 256 * 1024, ft = /* @__PURE__ */ new Set([
857
867
  "heading",
858
868
  "paragraph",
859
869
  "list",
@@ -863,15 +873,15 @@ const Ie = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
863
873
  "table",
864
874
  "kpi",
865
875
  "callout"
866
- ]), ft = ["http:", "https:", "mailto:", "tel:"], mt = /^[a-z][a-z0-9+.-]*:/i;
867
- function Me(e) {
876
+ ]), mt = ["http:", "https:", "mailto:", "tel:"], gt = /^[a-z][a-z0-9+.-]*:/i;
877
+ function Ce(e) {
868
878
  const t = e.trim().replace(/^<|>$/g, "");
869
879
  if (!t) return !1;
870
- const n = mt.exec(t)?.[0];
871
- return n ? ft.includes(n.toLowerCase()) : !t.startsWith("//");
880
+ const n = gt.exec(t)?.[0];
881
+ return n ? mt.includes(n.toLowerCase()) : !t.startsWith("//");
872
882
  }
873
- const gt = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
874
- function ht(e) {
883
+ const ht = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
884
+ function yt(e) {
875
885
  let t = "", n = 0;
876
886
  for (; n < e.length; ) {
877
887
  const r = e[n] === "!" && e[n + 1] === "[";
@@ -890,7 +900,7 @@ function ht(e) {
890
900
  continue;
891
901
  }
892
902
  const s = e.slice(i, o), d = e.slice(o + 2, a).trim().split(/\s+/)[0] ?? "";
893
- t += r || !Me(d) ? s : e.slice(n, a + 1), n = a + 1;
903
+ t += r || !Ce(d) ? s : e.slice(n, a + 1), n = a + 1;
894
904
  }
895
905
  return t;
896
906
  }
@@ -907,22 +917,22 @@ function re(e, t, n, r) {
907
917
  }
908
918
  return -1;
909
919
  }
910
- function yt(e) {
911
- return ht(e).replace(
912
- gt,
913
- (t, n, r) => Me(r) ? t : ""
920
+ function bt(e) {
921
+ return yt(e).replace(
922
+ ht,
923
+ (t, n, r) => Ce(r) ? t : ""
914
924
  );
915
925
  }
916
- function g(e, t = we) {
917
- return typeof e == "string" ? yt(e).slice(0, t) : "";
926
+ function h(e, t = Me) {
927
+ return typeof e == "string" ? bt(e).slice(0, t) : "";
918
928
  }
919
- function bt(e, t = we) {
929
+ function At(e, t = Me) {
920
930
  return typeof e == "string" ? e.slice(0, t) : "";
921
931
  }
922
- function At(e, t = "info") {
932
+ function Et(e, t = "info") {
923
933
  return typeof e == "string" && Ie.has(e) ? e : t;
924
934
  }
925
- function fi(e, t = () => {
935
+ function yi(e, t = () => {
926
936
  }) {
927
937
  if (!Array.isArray(e)) return [];
928
938
  const n = [];
@@ -933,14 +943,14 @@ function fi(e, t = () => {
933
943
  }
934
944
  if (!r || typeof r != "object") continue;
935
945
  const i = r;
936
- if (!pt.has(i.type)) {
946
+ if (!ft.has(i.type)) {
937
947
  t(`unknown block type ${String(i.type)}`);
938
948
  continue;
939
949
  }
940
950
  const o = typeof i.block_id == "string" ? { block_id: i.block_id } : {};
941
951
  switch (i.type) {
942
952
  case "heading": {
943
- const a = g(i.text);
953
+ const a = h(i.text);
944
954
  if (!a) {
945
955
  t("a heading without text");
946
956
  continue;
@@ -950,7 +960,7 @@ function fi(e, t = () => {
950
960
  break;
951
961
  }
952
962
  case "paragraph": {
953
- const a = g(i.text);
963
+ const a = h(i.text);
954
964
  if (!a) {
955
965
  t("a paragraph without text");
956
966
  continue;
@@ -959,7 +969,7 @@ function fi(e, t = () => {
959
969
  break;
960
970
  }
961
971
  case "quote": {
962
- const a = g(i.text);
972
+ const a = h(i.text);
963
973
  if (!a) {
964
974
  t("a quote without text");
965
975
  continue;
@@ -968,7 +978,7 @@ function fi(e, t = () => {
968
978
  break;
969
979
  }
970
980
  case "code": {
971
- const a = bt(i.text);
981
+ const a = At(i.text);
972
982
  if (!a) {
973
983
  t("a code block without text");
974
984
  continue;
@@ -987,10 +997,10 @@ function fi(e, t = () => {
987
997
  t(`more than ${Q} list items`);
988
998
  break;
989
999
  }
990
- const b = g(f?.text);
1000
+ const b = h(f?.text);
991
1001
  if (!b) continue;
992
- const m = g(f?.lead, 200);
993
- s.push(m ? { lead: m, text: b } : { text: b });
1002
+ const g = h(f?.lead, 200);
1003
+ s.push(g ? { lead: g, text: b } : { text: b });
994
1004
  }
995
1005
  if (s.length === 0) {
996
1006
  t("a list without usable items");
@@ -1002,28 +1012,28 @@ function fi(e, t = () => {
1002
1012
  }
1003
1013
  case "table": {
1004
1014
  const a = Array.isArray(i.columns) ? i.columns : [], s = [];
1005
- for (const m of a) {
1015
+ for (const g of a) {
1006
1016
  if (s.length >= te) {
1007
1017
  t(`more than ${te} table columns`);
1008
1018
  break;
1009
1019
  }
1010
- const I = g(m?.label, L), x = m?.align === "right" ? "right" : void 0;
1011
- s.push(x ? { label: I, align: x } : { label: I });
1020
+ const w = h(g?.label, L), N = g?.align === "right" ? "right" : void 0;
1021
+ s.push(N ? { label: w, align: N } : { label: w });
1012
1022
  }
1013
1023
  if (s.length === 0) {
1014
1024
  t("a table without columns");
1015
1025
  continue;
1016
1026
  }
1017
1027
  const d = Array.isArray(i.rows) ? i.rows : [], f = [];
1018
- for (const m of d) {
1028
+ for (const g of d) {
1019
1029
  if (f.length >= ee) {
1020
1030
  t(`more than ${ee} table rows`);
1021
1031
  break;
1022
1032
  }
1023
- const I = Array.isArray(m) ? m : [];
1024
- f.push(s.map((x, We) => g(I[We], L)));
1033
+ const w = Array.isArray(g) ? g : [];
1034
+ f.push(s.map((N, Ve) => h(w[Ve], L)));
1025
1035
  }
1026
- const b = g(i.caption, L);
1036
+ const b = h(i.caption, L);
1027
1037
  n.push({
1028
1038
  ...o,
1029
1039
  type: "table",
@@ -1040,11 +1050,11 @@ function fi(e, t = () => {
1040
1050
  t(`more than ${ne} kpi items`);
1041
1051
  break;
1042
1052
  }
1043
- const f = g(d?.value, 40), b = g(d?.label, 80);
1053
+ const f = h(d?.value, 40), b = h(d?.label, 80);
1044
1054
  if (!f || !b) continue;
1045
- const m = d?.tone;
1055
+ const g = d?.tone;
1046
1056
  s.push(
1047
- typeof m == "string" && Ie.has(m) ? { value: f, label: b, tone: m } : { value: f, label: b }
1057
+ typeof g == "string" && Ie.has(g) ? { value: f, label: b, tone: g } : { value: f, label: b }
1048
1058
  );
1049
1059
  }
1050
1060
  if (s.length === 0) {
@@ -1055,16 +1065,16 @@ function fi(e, t = () => {
1055
1065
  break;
1056
1066
  }
1057
1067
  case "callout": {
1058
- const a = g(i.text);
1068
+ const a = h(i.text);
1059
1069
  if (!a) {
1060
1070
  t("a callout without text");
1061
1071
  continue;
1062
1072
  }
1063
- const s = g(i.title, 200);
1073
+ const s = h(i.title, 200);
1064
1074
  n.push({
1065
1075
  ...o,
1066
1076
  type: "callout",
1067
- tone: At(i.tone),
1077
+ tone: Et(i.tone),
1068
1078
  ...s ? { title: s } : {},
1069
1079
  text: a
1070
1080
  });
@@ -1074,10 +1084,10 @@ function fi(e, t = () => {
1074
1084
  }
1075
1085
  return n;
1076
1086
  }
1077
- function mi(e) {
1087
+ function bi(e) {
1078
1088
  return JSON.stringify(e).length;
1079
1089
  }
1080
- function gi(e) {
1090
+ function Ai(e) {
1081
1091
  return {
1082
1092
  blocks: e.length,
1083
1093
  types: e.map((t) => t.type),
@@ -1095,7 +1105,7 @@ function oe(e, t, n) {
1095
1105
  ...t.map((i) => `| ${i.map(ie).join(" | ")} |`)
1096
1106
  ];
1097
1107
  }
1098
- function Et(e) {
1108
+ function St(e) {
1099
1109
  switch (e.type) {
1100
1110
  case "heading":
1101
1111
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -1129,11 +1139,11 @@ function Et(e) {
1129
1139
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1130
1140
  }
1131
1141
  }
1132
- function hi(e, t) {
1142
+ function Ei(e, t) {
1133
1143
  const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
1134
1144
  t && !r && n.push(`# ${t}`);
1135
1145
  for (const i of e) {
1136
- const o = Et(i);
1146
+ const o = St(i);
1137
1147
  o.length > 0 && n.push(o.join(`
1138
1148
  `));
1139
1149
  }
@@ -1142,41 +1152,41 @@ function hi(e, t) {
1142
1152
  `)}
1143
1153
  `;
1144
1154
  }
1145
- const ke = (e) => `user:${e}`, Ce = (e) => `team:${e}`;
1146
- function yi(e) {
1155
+ const ke = (e) => `user:${e}`, Oe = (e) => `team:${e}`;
1156
+ function Si(e) {
1147
1157
  const t = /* @__PURE__ */ new Set();
1148
1158
  for (const n of e ?? [])
1149
- n?.id && (n.kind === "user" && t.add(ke(n.id)), n.kind === "team" && t.add(Ce(n.id)));
1159
+ n?.id && (n.kind === "user" && t.add(ke(n.id)), n.kind === "team" && t.add(Oe(n.id)));
1150
1160
  return [...t].sort();
1151
1161
  }
1152
- function bi(e, t) {
1153
- return [ke(e), ...t.map(Ce)];
1162
+ function _i(e, t) {
1163
+ return [ke(e), ...t.map(Oe)];
1154
1164
  }
1155
- function Ai(e) {
1165
+ function Ti(e) {
1156
1166
  const t = /* @__PURE__ */ new Set();
1157
1167
  for (const n of e ?? [])
1158
1168
  n?.kind && t.add(n.kind);
1159
1169
  return [...t];
1160
1170
  }
1161
- const St = ["done", "escalated"], Ei = ["open", "waiting"];
1162
- function Si(e) {
1163
- return St.includes(e);
1171
+ const _t = ["done", "escalated"], wi = ["open", "waiting"];
1172
+ function Ii(e) {
1173
+ return _t.includes(e);
1164
1174
  }
1165
- const _t = "assignment";
1166
- function _i(e) {
1167
- return `${_t}:${e}`;
1175
+ const Tt = "assignment";
1176
+ function Mi(e) {
1177
+ return `${Tt}:${e}`;
1168
1178
  }
1169
- function Ti(e, t, n) {
1179
+ function Ci(e, t, n) {
1170
1180
  if (e.direction === "inbound") return !0;
1171
1181
  if (e.author?.type === "user" && e.author.id === t) return !1;
1172
1182
  const r = e.payload?.mentions;
1173
1183
  return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1174
1184
  }
1175
- function Ii(e) {
1185
+ function ki(e) {
1176
1186
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1177
1187
  }
1178
- const Tt = 12;
1179
- function wi(e, t, n = Tt) {
1188
+ const wt = 12;
1189
+ function Oi(e, t, n = wt) {
1180
1190
  const r = t + 1;
1181
1191
  return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
1182
1192
  status: "escalated",
@@ -1190,37 +1200,37 @@ function wi(e, t, n = Tt) {
1190
1200
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1191
1201
  };
1192
1202
  }
1193
- const Mi = /* @__PURE__ */ new Set(["mail", "message"]);
1203
+ const vi = /* @__PURE__ */ new Set(["mail", "message"]);
1194
1204
  function It(e, t) {
1195
1205
  const n = e.settings?.signatures?.[t];
1196
1206
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1197
1207
  }
1198
- function ki(e, t, n, r = "html") {
1208
+ function xi(e, t, n, r = "html") {
1199
1209
  if (!e) return n;
1200
1210
  const i = It(e, t);
1201
1211
  return i ? `${n}${r === "text" ? `
1202
1212
 
1203
1213
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1204
1214
  }
1205
- function Ci(e) {
1215
+ function Ni(e) {
1206
1216
  return e.endpoints ?? [];
1207
1217
  }
1208
- const wt = 36e5, Mt = 864e5, E = -1 / 0, Oi = (e) => e.score > E, O = {
1218
+ const Mt = 36e5, Ct = 864e5, E = -1 / 0, Ri = (e) => e.score > E, O = {
1209
1219
  urgent: 40,
1210
1220
  high: 25,
1211
1221
  normal: 10,
1212
1222
  low: 0
1213
1223
  };
1214
- function vi(e) {
1224
+ function Di(e) {
1215
1225
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1216
1226
  }
1217
- const kt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Oe = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1218
- function Ct(e, t) {
1219
- return !!(e && kt.test(e) || t && Oe.test(t));
1227
+ const kt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ve = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1228
+ function Ot(e, t) {
1229
+ return !!(e && kt.test(e) || t && ve.test(t));
1220
1230
  }
1221
- const Ot = 3, vt = 600;
1222
- function Ni(e, t) {
1223
- return e >= Ot || t >= vt;
1231
+ const vt = 3, xt = 600;
1232
+ function $i(e, t) {
1233
+ return e >= vt || t >= xt;
1224
1234
  }
1225
1235
  const Nt = [
1226
1236
  "list-unsubscribe",
@@ -1232,7 +1242,7 @@ const Nt = [
1232
1242
  "feedback-id",
1233
1243
  "x-mailer"
1234
1244
  ];
1235
- function xi(e) {
1245
+ function Li(e) {
1236
1246
  const t = {};
1237
1247
  for (const n of e) {
1238
1248
  const r = n.name?.toLowerCase();
@@ -1240,26 +1250,26 @@ function xi(e) {
1240
1250
  }
1241
1251
  return t;
1242
1252
  }
1243
- const xt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Rt = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1244
- function Ri(e) {
1253
+ const Rt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Dt = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1254
+ function Pi(e) {
1245
1255
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1246
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && xt.test(n))
1256
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && Rt.test(n))
1247
1257
  return "automated";
1248
1258
  const i = t.precedence?.toLowerCase();
1249
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || i === "bulk" || i === "list" || e.body && Oe.test(e.body) || n && Rt.test(n))
1259
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || i === "bulk" || i === "list" || e.body && ve.test(e.body) || n && Dt.test(n))
1250
1260
  return "marketing";
1251
1261
  }
1252
- function Dt(e, t) {
1262
+ function $t(e, t) {
1253
1263
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1254
1264
  }
1255
- const $t = ["open"], Lt = 1e3, Pt = {
1265
+ const Lt = ["open"], Pt = 1e3, Ut = {
1256
1266
  urgent: 1,
1257
1267
  high: 4,
1258
1268
  normal: 8,
1259
1269
  low: 24
1260
- }, Ut = 72;
1261
- function Kt(e) {
1262
- return e.lastActivityAt ?? (e.createdAt ? new Date(rt(e)).getTime() : 0);
1270
+ }, Kt = 72;
1271
+ function jt(e) {
1272
+ return e.lastActivityAt ?? (e.createdAt ? new Date(it(e)).getTime() : 0);
1263
1273
  }
1264
1274
  function Bt(e, t) {
1265
1275
  return Ht(t.remindersById?.[e.id], e, t.now);
@@ -1267,54 +1277,54 @@ function Bt(e, t) {
1267
1277
  function Ht(e, t, n) {
1268
1278
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1269
1279
  }
1270
- const ve = (e) => Je(e) === "outbound_message", Ne = (e) => $t.includes(e);
1271
- function j(e, t) {
1272
- return Math.max(0, (t - Kt(e)) / wt);
1280
+ const xe = (e) => Ze(e) === "outbound_message", Ne = (e) => Lt.includes(e);
1281
+ function H(e, t) {
1282
+ return Math.max(0, (t - jt(e)) / Mt);
1273
1283
  }
1274
- function jt(e, t) {
1284
+ function Gt(e, t) {
1275
1285
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1276
- return typeof n == "number" && n > 0 ? n : Pt[e.priority ?? "normal"];
1286
+ return typeof n == "number" && n > 0 ? n : Ut[e.priority ?? "normal"];
1277
1287
  }
1278
- function Di(e) {
1288
+ function Ui(e) {
1279
1289
  const t = {};
1280
1290
  for (const n of e)
1281
1291
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1282
1292
  return t;
1283
1293
  }
1284
- function $i(e, t, n) {
1285
- return !Ne(e.status) || e.firstResponseAt ? !1 : j(e, t) > jt(e, n);
1294
+ function Ki(e, t, n) {
1295
+ return !Ne(e.status) || e.firstResponseAt ? !1 : H(e, t) > Gt(e, n);
1286
1296
  }
1287
- function Gt(e, t) {
1297
+ function Ft(e, t) {
1288
1298
  const n = e.lastActivityPreview;
1289
- return n?.direction !== "outbound" || !ve(n.type) ? !1 : j(e, t) < Ut;
1299
+ return n?.direction !== "outbound" || !xe(n.type) ? !1 : H(e, t) < Kt;
1290
1300
  }
1291
- function Li(e, t) {
1301
+ function ji(e, t) {
1292
1302
  if (!Ne(e.status)) return { score: E, reasons: [] };
1293
1303
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: E, reasons: [] };
1294
- if (Gt(e, t.now)) return { score: E, reasons: [] };
1304
+ if (Ft(e, t.now)) return { score: E, reasons: [] };
1295
1305
  if (Bt(e, t)) return { score: E, reasons: [] };
1296
1306
  let n = 0;
1297
1307
  const r = [], i = e.priority ?? "normal";
1298
- O[i] > 0 && (n += O[i], r.push(`priority:${i}`)), Dt(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1299
- const o = j(e, t.now);
1308
+ O[i] > 0 && (n += O[i], r.push(`priority:${i}`)), $t(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1309
+ const o = H(e, t.now);
1300
1310
  if (o > 0) {
1301
1311
  const d = Math.min(o * 2, 30);
1302
1312
  n += d, o >= 1 && r.push(`waiting:${Math.round(o)}h`);
1303
1313
  }
1304
1314
  const a = e.lastActivityPreview;
1305
- return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && ve(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((d) => d === "marketing" || d === "automated") || Ct(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Lt, r.push("bulk")), { score: n, reasons: r };
1315
+ return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && xe(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((d) => d === "marketing" || d === "automated") || Ot(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Pt, r.push("bulk")), { score: n, reasons: r };
1306
1316
  }
1307
- const Pi = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ui = (e) => e.status === "closed", Ki = (e) => ({
1317
+ const Bi = (e) => !!e.assignedUserId || !!e.assignedInboxId, Hi = (e) => e.status === "closed", Gi = (e) => ({
1308
1318
  urgent: 10,
1309
1319
  high: 5,
1310
1320
  normal: 2,
1311
1321
  low: 1
1312
- })[e.priority] || 0, Bi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1313
- function Hi(e, t) {
1322
+ })[e.priority] || 0, Fi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1323
+ function Wi(e, t) {
1314
1324
  const n = e.labels ?? [];
1315
1325
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1316
1326
  }
1317
- function ji(e, t, n) {
1327
+ function Vi(e, t, n) {
1318
1328
  const r = e.translations ?? [];
1319
1329
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1320
1330
  }
@@ -1333,36 +1343,36 @@ const ae = [
1333
1343
  { code: "fi", label: "Suomi", english: "Finnish" },
1334
1344
  { code: "tr", label: "Türkçe", english: "Turkish" }
1335
1345
  ];
1336
- function xe(e) {
1346
+ function Re(e) {
1337
1347
  const t = (e ?? "").toLowerCase();
1338
1348
  return ae.find((n) => n.code === t) ?? ae.find((n) => n.code === t.split("-")[0]);
1339
1349
  }
1340
- function Gi(e) {
1341
- return xe(e)?.label ?? e;
1350
+ function zi(e) {
1351
+ return Re(e)?.label ?? e;
1342
1352
  }
1343
- function Fi(e) {
1344
- const t = xe(e);
1353
+ function Xi(e) {
1354
+ const t = Re(e);
1345
1355
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1346
1356
  }
1347
- const Re = 3;
1348
- function Ft(e, t) {
1357
+ const De = 3;
1358
+ function Wt(e, t) {
1349
1359
  const n = /* @__PURE__ */ new Set();
1350
1360
  let r = 1, i = t.get(e)?.parentId;
1351
1361
  for (; i; ) {
1352
- if (n.has(i) || (n.add(i), r++, r > Re + 1)) return 1 / 0;
1362
+ if (n.has(i) || (n.add(i), r++, r > De + 1)) return 1 / 0;
1353
1363
  i = t.get(i)?.parentId;
1354
1364
  }
1355
1365
  return r;
1356
1366
  }
1357
- function Wi(e, t, n) {
1367
+ function Yi(e, t, n) {
1358
1368
  if (!e) return !0;
1359
1369
  if (e === t) return !1;
1360
1370
  const r = new Map(n.map((a) => [a.id, a]));
1361
- if (!r.has(e) || t && Wt(e, t, r)) return !1;
1362
- const i = Ft(e, r), o = t ? De(t, n) : 1;
1363
- return i + o <= Re;
1371
+ if (!r.has(e) || t && Vt(e, t, r)) return !1;
1372
+ const i = Wt(e, r), o = t ? $e(t, n) : 1;
1373
+ return i + o <= De;
1364
1374
  }
1365
- function Wt(e, t, n) {
1375
+ function Vt(e, t, n) {
1366
1376
  const r = /* @__PURE__ */ new Set();
1367
1377
  let i = n.get(e)?.parentId;
1368
1378
  for (; i; ) {
@@ -1372,23 +1382,23 @@ function Wt(e, t, n) {
1372
1382
  }
1373
1383
  return !1;
1374
1384
  }
1375
- function De(e, t, n = /* @__PURE__ */ new Set()) {
1385
+ function $e(e, t, n = /* @__PURE__ */ new Set()) {
1376
1386
  if (n.has(e)) return 1;
1377
1387
  n.add(e);
1378
1388
  const r = t.filter((i) => i.parentId === e);
1379
- return r.length ? 1 + Math.max(...r.map((i) => De(i.id, t, n))) : 1;
1389
+ return r.length ? 1 + Math.max(...r.map((i) => $e(i.id, t, n))) : 1;
1380
1390
  }
1381
- const Vt = "en";
1382
- function zt(e) {
1383
- return e.defaultLocale || e.locale || Vt;
1391
+ const zt = "en";
1392
+ function Xt(e) {
1393
+ return e.defaultLocale || e.locale || zt;
1384
1394
  }
1385
- function Vi(e) {
1395
+ function qi(e) {
1386
1396
  const t = /* @__PURE__ */ new Set(), n = [];
1387
- for (const r of [zt(e), ...e.locales ?? []])
1397
+ for (const r of [Xt(e), ...e.locales ?? []])
1388
1398
  !r || t.has(r) || (t.add(r), n.push(r));
1389
1399
  return n;
1390
1400
  }
1391
- function zi(e, t, n) {
1401
+ function Ji(e, t, n) {
1392
1402
  const r = e.translations ?? [];
1393
1403
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1394
1404
  }
@@ -1409,7 +1419,7 @@ function ce(e) {
1409
1419
  }
1410
1420
  return null;
1411
1421
  }
1412
- function Xt(e, t) {
1422
+ function Yt(e, t) {
1413
1423
  switch (e.kind) {
1414
1424
  case "org":
1415
1425
  return !0;
@@ -1419,23 +1429,23 @@ function Xt(e, t) {
1419
1429
  return e.userId === t.userId;
1420
1430
  }
1421
1431
  }
1422
- function Xi(e, t) {
1423
- return e.filter((n) => n.enabled && Xt(n.ownerScope, t));
1432
+ function Zi(e, t) {
1433
+ return e.filter((n) => n.enabled && Yt(n.ownerScope, t));
1424
1434
  }
1425
- function Yi(e) {
1435
+ function Qi(e) {
1426
1436
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1427
1437
  }
1428
- function qi(e) {
1438
+ function eo(e) {
1429
1439
  return `mcp__${e}__`;
1430
1440
  }
1431
- const Ji = 1e3, Zi = 2e3, Qi = 500, eo = 12e3, to = 4e3, Yt = ["contact", "company", "work_item"];
1432
- function no(e) {
1441
+ const to = 1e3, no = 2e3, ro = 500, io = 12e3, oo = 4e3, qt = ["contact", "company", "work_item"];
1442
+ function ao(e) {
1433
1443
  if (!e) return !1;
1434
1444
  const t = e.slice(0, e.indexOf(":"));
1435
- return Yt.includes(t);
1445
+ return qt.includes(t);
1436
1446
  }
1437
- const ro = "onboarding-source", io = ["support", "billing", "availability", "sales", "onboarding"], oo = ["keep", "replace"];
1438
- function qt(e) {
1447
+ const so = "onboarding-source", co = ["support", "billing", "availability", "sales", "onboarding"], lo = ["keep", "replace"];
1448
+ function Jt(e) {
1439
1449
  switch (e.kind) {
1440
1450
  case "user":
1441
1451
  return `user:${e.userId}`;
@@ -1445,7 +1455,7 @@ function qt(e) {
1445
1455
  return "org";
1446
1456
  }
1447
1457
  }
1448
- function ao(e) {
1458
+ function uo(e) {
1449
1459
  if (typeof e != "string") return;
1450
1460
  const t = e.trim();
1451
1461
  if (t === "org") return { kind: "org" };
@@ -1457,10 +1467,10 @@ function ao(e) {
1457
1467
  if (r === "team") return { kind: "team", teamId: i };
1458
1468
  }
1459
1469
  }
1460
- function Jt(e) {
1461
- return qt(e);
1462
- }
1463
1470
  function Zt(e) {
1471
+ return Jt(e);
1472
+ }
1473
+ function Qt(e) {
1464
1474
  switch (e.kind) {
1465
1475
  case "personal":
1466
1476
  return { kind: "user", userId: e.userId };
@@ -1470,14 +1480,14 @@ function Zt(e) {
1470
1480
  return { kind: "org" };
1471
1481
  }
1472
1482
  }
1473
- const Qt = Zt;
1474
- function so(e) {
1475
- return e.agentId ? { kind: "user", userId: e.agentId } : Qt(e.ownerScope);
1483
+ const en = Qt;
1484
+ function po(e) {
1485
+ return e.agentId ? { kind: "user", userId: e.agentId } : en(e.ownerScope);
1476
1486
  }
1477
- function co(e) {
1478
- return Jt(e);
1487
+ function fo(e) {
1488
+ return Zt(e);
1479
1489
  }
1480
- function lo(e, t) {
1490
+ function mo(e, t) {
1481
1491
  if (!t) return;
1482
1492
  let n = e;
1483
1493
  for (const r of t.split(".")) {
@@ -1486,24 +1496,24 @@ function lo(e, t) {
1486
1496
  }
1487
1497
  return n;
1488
1498
  }
1489
- function uo(e, t) {
1499
+ function go(e, t) {
1490
1500
  return e.targets.find((n) => n.activityTypes.includes(t));
1491
1501
  }
1492
- function po(e, t) {
1502
+ function ho(e, t) {
1493
1503
  if (t)
1494
1504
  return e.targets.find((n) => n.id === t);
1495
1505
  }
1496
- function en(e) {
1506
+ function tn(e) {
1497
1507
  return e?.kind === "assignment";
1498
1508
  }
1499
- function fo(e) {
1509
+ function yo(e) {
1500
1510
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1501
- return en(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";
1511
+ return tn(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";
1502
1512
  }
1503
- function mo(e) {
1513
+ function bo(e) {
1504
1514
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1505
1515
  }
1506
- const go = [
1516
+ const Ao = [
1507
1517
  { name: "text", type: "string" },
1508
1518
  { name: "subject", type: "string" },
1509
1519
  { name: "from", type: "string" },
@@ -1537,7 +1547,7 @@ const go = [
1537
1547
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1538
1548
  // the trigger filter runs — like contactId/companyId above.
1539
1549
  { name: "assigneeUserId", type: "string" }
1540
- ], ho = {
1550
+ ], Eo = {
1541
1551
  topics: [
1542
1552
  { name: "topicId", type: "string" },
1543
1553
  { name: "topic", type: "string" },
@@ -1551,78 +1561,97 @@ const go = [
1551
1561
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1552
1562
  extract: []
1553
1563
  };
1554
- function tn(e) {
1564
+ function nn(e) {
1555
1565
  return `${e.type}:${e.id}`;
1556
1566
  }
1557
- const nn = "interaction";
1558
- function rn(e) {
1559
- return e?.type === nn ? e.id : void 0;
1567
+ const rn = "interaction";
1568
+ function on(e) {
1569
+ return e?.type === rn ? e.id : void 0;
1560
1570
  }
1561
- const on = 64, an = 8e3;
1562
- function yo(e) {
1571
+ const an = 64, sn = 8e3;
1572
+ function So(e) {
1563
1573
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1564
1574
  if (!(!Number.isFinite(t) || t <= 0))
1565
- return Math.min(Math.max(Math.round(t), on), an);
1575
+ return Math.min(Math.max(Math.round(t), an), sn);
1566
1576
  }
1567
- const bo = { kind: "workflow", steps: [] };
1568
- function Ao(e) {
1577
+ const _o = { kind: "workflow", steps: [] };
1578
+ function To(e) {
1569
1579
  return e?.kind === "workflow" ? e.steps : [];
1570
1580
  }
1571
- function Eo(e) {
1581
+ function wo(e) {
1572
1582
  return e?.kind === "procedure" ? e.procedure : void 0;
1573
1583
  }
1574
- function sn(e) {
1584
+ function cn(e) {
1575
1585
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
1576
1586
  return { total: n, rate: n ? t / n : 0 };
1577
1587
  }
1578
- const cn = 10, ln = 0.9;
1579
- function So(e) {
1580
- const { total: t, rate: n } = sn(e);
1581
- return t >= cn && n >= ln;
1588
+ const ln = 10, un = 0.9;
1589
+ function Io(e) {
1590
+ const { total: t, rate: n } = cn(e);
1591
+ return t >= ln && n >= un;
1582
1592
  }
1583
- const un = ["done", "escalated", "failed", "stopped"];
1584
- function _o(e) {
1585
- return un.includes(e);
1593
+ const dn = ["done", "escalated", "failed", "stopped"];
1594
+ function Mo(e) {
1595
+ return dn.includes(e);
1586
1596
  }
1587
- function dn(e) {
1597
+ function pn(e) {
1588
1598
  return e === "waiting";
1589
1599
  }
1590
- function To(e) {
1591
- return e === "running" || dn(e);
1600
+ function Co(e) {
1601
+ return e === "running" || pn(e);
1592
1602
  }
1593
- function $e(e) {
1603
+ function Le(e) {
1594
1604
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1595
1605
  }
1596
- function Io(e) {
1597
- const t = $e(e);
1598
- return t ? tn(t) : void 0;
1606
+ function ko(e) {
1607
+ const t = Le(e);
1608
+ return t ? nn(t) : void 0;
1599
1609
  }
1600
- function wo(e) {
1601
- return rn($e(e));
1610
+ function Oo(e) {
1611
+ return on(Le(e));
1612
+ }
1613
+ function vo(e) {
1614
+ const t = [], n = /* @__PURE__ */ new Map();
1615
+ for (const r of [...e].sort(fn)) {
1616
+ const i = n.get(r.emoji);
1617
+ if (i) {
1618
+ i.push(r.actor);
1619
+ continue;
1620
+ }
1621
+ t.push(r.emoji), n.set(r.emoji, [r.actor]);
1622
+ }
1623
+ return t.map((r) => {
1624
+ const i = n.get(r);
1625
+ return { emoji: r, count: i.length, actors: i };
1626
+ }).sort((r, i) => i.count - r.count || t.indexOf(r.emoji) - t.indexOf(i.emoji));
1602
1627
  }
1603
- function Mo(e, t) {
1628
+ const fn = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
1629
+ function xo(e, t) {
1630
+ return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
1631
+ }
1632
+ function No(e, t) {
1604
1633
  const n = e.accumulatedSeconds || 0;
1605
1634
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1606
1635
  }
1607
- function ko(e, t) {
1636
+ function Ro(e, t) {
1608
1637
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1609
1638
  if (!t || t === "exact") return n * 60;
1610
1639
  const r = Number(t);
1611
1640
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1612
1641
  }
1613
- function Co(e) {
1642
+ function Do(e) {
1614
1643
  const t = Math.max(0, Math.round(e / 60));
1615
1644
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1616
1645
  }
1617
- function Oo(e) {
1646
+ function $o(e) {
1618
1647
  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);
1619
1648
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1620
1649
  }
1621
- function pn(e) {
1650
+ function mn(e) {
1622
1651
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1623
1652
  }
1624
- function vo(e, t) {
1625
- const n = pn(e) || "werksoort", r = new Set(t);
1653
+ function Lo(e, t) {
1654
+ const n = mn(e) || "werksoort", r = new Set(t);
1626
1655
  if (!r.has(n)) return n;
1627
1656
  for (let i = 2; i < 500; i++) {
1628
1657
  const o = `${n}-${i}`;
@@ -1630,29 +1659,29 @@ function vo(e, t) {
1630
1659
  }
1631
1660
  return `${n}-${r.size + 1}`;
1632
1661
  }
1633
- function No(e, t) {
1662
+ function Po(e, t) {
1634
1663
  const n = e.ownerScope;
1635
1664
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1636
1665
  }
1637
- function xo(e) {
1638
- return e.filter((t) => !t.archived).sort(fn);
1666
+ function Uo(e) {
1667
+ return e.filter((t) => !t.archived).sort(gn);
1639
1668
  }
1640
- function fn(e, t) {
1669
+ function gn(e, t) {
1641
1670
  const n = (e.order ?? 0) - (t.order ?? 0);
1642
1671
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
1643
1672
  }
1644
- const mn = 20, gn = 20, P = 300;
1673
+ const hn = 20, yn = 20, P = 300;
1645
1674
  function S(e) {
1646
1675
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1647
1676
  }
1648
- function hn(e) {
1677
+ function bn(e) {
1649
1678
  const t = e.replace(/\s+/g, " ").trim();
1650
1679
  if (t.length <= P) return t;
1651
1680
  const n = t.slice(0, P), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1652
1681
  return r > P * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1653
1682
  }
1654
- function Ro(e, t) {
1655
- const n = hn(t.text), r = S(n);
1683
+ function Ko(e, t) {
1684
+ const n = bn(t.text), r = S(n);
1656
1685
  if (!r || (e.examples ?? []).some((a) => S(a) === r)) return null;
1657
1686
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => S(a.text) === r);
1658
1687
  if (o >= 0) {
@@ -1660,63 +1689,66 @@ function Ro(e, t) {
1660
1689
  const a = [...i];
1661
1690
  return a[o] = { ...a[o], corrected: !0, addedAt: t.addedAt }, le(a);
1662
1691
  }
1663
- return le([{ ...t, text: n }, ...i]).slice(0, gn);
1692
+ return le([{ ...t, text: n }, ...i]).slice(0, yn);
1664
1693
  }
1665
1694
  function le(e) {
1666
1695
  return [...e].sort(
1667
1696
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1668
1697
  );
1669
1698
  }
1670
- function Do(e, t) {
1699
+ function jo(e, t) {
1671
1700
  const n = S(t), r = (e.examples ?? []).filter((o) => o.trim());
1672
- return { examples: r.some((o) => S(o) === n) ? r : [...r, t].slice(-mn), exampleCandidates: yn(e, t) };
1701
+ return { examples: r.some((o) => S(o) === n) ? r : [...r, t].slice(-hn), exampleCandidates: An(e, t) };
1673
1702
  }
1674
- function yn(e, t) {
1703
+ function An(e, t) {
1675
1704
  const n = S(t);
1676
1705
  return (e.exampleCandidates ?? []).filter((r) => S(r.text) !== n);
1677
1706
  }
1678
- function bn(e, t) {
1707
+ function En(e, t) {
1679
1708
  const n = e.ownerScope;
1680
1709
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1681
1710
  }
1682
- function $o(e, t) {
1683
- return e.filter((n) => bn(n, t));
1711
+ function Bo(e, t) {
1712
+ return e.filter((n) => En(n, t));
1684
1713
  }
1685
- function Lo(e) {
1714
+ function Ho(e) {
1686
1715
  return e.type === "agent";
1687
1716
  }
1688
- const Po = "WORK_COMMENT_ADDED", Uo = "WORK_ITEM_ASSIGNED", Ko = "WORK_ITEM_STATUS_CHANGED";
1689
- function An(e, t) {
1717
+ const Go = "WORK_COMMENT_ADDED", Fo = "WORK_ITEM_ASSIGNED", Wo = "WORK_ITEM_STATUS_CHANGED";
1718
+ function Sn(e, t) {
1690
1719
  const n = (r) => {
1691
1720
  const i = new Date(r);
1692
1721
  return i.setHours(0, 0, 0, 0), i.getTime();
1693
1722
  };
1694
- return Math.round((n(e) - n(t)) / Mt);
1723
+ return Math.round((n(e) - n(t)) / Ct);
1695
1724
  }
1696
- function Bo(e, t) {
1725
+ function Vo(e, t) {
1697
1726
  if (e.closedAt != null) return { score: E, reasons: [] };
1698
1727
  const n = t.remindersById?.[e.id];
1699
1728
  if (n && n.remindAt > t.now) return { score: E, reasons: [] };
1700
1729
  let r = 0;
1701
1730
  const i = [], o = e.priority ?? "normal";
1702
1731
  if (O[o] > 0 && (r += O[o], i.push(`priority:${o}`)), typeof e.dueDate == "number") {
1703
- const a = An(e.dueDate, t.now);
1732
+ const a = Sn(e.dueDate, t.now);
1704
1733
  a < 0 ? (r += 35, i.push("overdue")) : a === 0 && (r += 20, i.push("due-today"));
1705
1734
  }
1706
1735
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, i.push(`auto:${e.source.systemReason}`)), { score: r, reasons: i };
1707
1736
  }
1708
- const En = "work_item", Sn = "work_project";
1709
- function _n(e) {
1710
- return `${En}:${e}`;
1737
+ const _n = "work_item", Tn = "work_project", wn = "work_activity";
1738
+ function In(e) {
1739
+ return `${_n}:${e}`;
1711
1740
  }
1712
- function Le(e) {
1713
- return `${Sn}:${e}`;
1741
+ function Pe(e) {
1742
+ return `${Tn}:${e}`;
1714
1743
  }
1715
- function Ho(e, t, n) {
1744
+ function zo(e) {
1745
+ return `${wn}:${e}`;
1746
+ }
1747
+ function Xo(e, t, n) {
1716
1748
  const r = `${e}-${t}`;
1717
1749
  return n ? `${r}-${n}` : r;
1718
1750
  }
1719
- function jo(e) {
1751
+ function Yo(e) {
1720
1752
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1721
1753
  return t ? {
1722
1754
  projectKey: t[1].toUpperCase(),
@@ -1724,52 +1756,52 @@ function jo(e) {
1724
1756
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1725
1757
  } : null;
1726
1758
  }
1727
- function Go(e) {
1759
+ function qo(e) {
1728
1760
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1729
1761
  }
1730
- function Fo(e, t = 25) {
1731
- const n = /* @__PURE__ */ new Set([_n(e.id)]);
1732
- e.projectId && n.add(Le(e.projectId));
1762
+ function Jo(e, t = 25) {
1763
+ const n = /* @__PURE__ */ new Set([In(e.id)]);
1764
+ e.projectId && n.add(Pe(e.projectId));
1733
1765
  for (const r of e.ancestorKeys ?? []) n.add(r);
1734
1766
  for (const r of e.partyKeys ?? []) n.add(r);
1735
1767
  return Array.from(n).slice(0, t);
1736
1768
  }
1737
- function Wo(e) {
1738
- return [Le(e.id)];
1769
+ function Zo(e) {
1770
+ return [Pe(e.id)];
1739
1771
  }
1740
1772
  const G = [
1741
1773
  { key: "open", label: "status_open", category: "todo", order: 0 },
1742
1774
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1743
1775
  { key: "done", label: "status_done", category: "done", order: 2 },
1744
1776
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1745
- ], Pe = G.map((e) => e.key);
1746
- function Tn(e) {
1777
+ ], Ue = G.map((e) => e.key);
1778
+ function Mn(e) {
1747
1779
  return e?.statuses?.length ? e.statuses : G;
1748
1780
  }
1749
- function In(e, t) {
1781
+ function Cn(e, t) {
1750
1782
  return t.find((n) => n.key === e)?.category ?? "todo";
1751
1783
  }
1752
- function Vo(e, t) {
1784
+ function Qo(e, t) {
1753
1785
  return t.find((n) => n.key === e);
1754
1786
  }
1755
- function zo(e) {
1756
- const t = Tn(e), n = e?.defaultStatusKey;
1757
- return n && t.some((r) => r.key === n) ? n : wn(t)[0]?.key ?? G[0].key;
1787
+ function ea(e) {
1788
+ const t = Mn(e), n = e?.defaultStatusKey;
1789
+ return n && t.some((r) => r.key === n) ? n : kn(t)[0]?.key ?? G[0].key;
1758
1790
  }
1759
- function wn(e) {
1791
+ function kn(e) {
1760
1792
  return [...e].sort((t, n) => {
1761
1793
  const r = (t.order ?? 0) - (n.order ?? 0);
1762
1794
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1763
1795
  });
1764
1796
  }
1765
- function Xo(e, t) {
1766
- return In(e, t) === "done";
1797
+ function ta(e, t) {
1798
+ return Cn(e, t) === "done";
1767
1799
  }
1768
- function Mn(e) {
1800
+ function On(e) {
1769
1801
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1770
1802
  }
1771
- function Yo(e, t) {
1772
- const n = Mn(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Pe]);
1803
+ function na(e, t) {
1804
+ const n = On(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Ue]);
1773
1805
  if (!r.has(n)) return n;
1774
1806
  for (let i = 2; i < 500; i++) {
1775
1807
  const o = `${n}-${i}`;
@@ -1777,7 +1809,7 @@ function Yo(e, t) {
1777
1809
  }
1778
1810
  return `${n}-${r.size + 1}`;
1779
1811
  }
1780
- function qo(e) {
1812
+ function ra(e) {
1781
1813
  const t = [];
1782
1814
  if (!e.length) return [{ index: -1, reason: "empty" }];
1783
1815
  const n = /* @__PURE__ */ new Set();
@@ -1786,10 +1818,10 @@ function qo(e) {
1786
1818
  t.push({ index: i, reason: "missing_key" });
1787
1819
  return;
1788
1820
  }
1789
- Pe.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);
1821
+ Ue.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);
1790
1822
  }), 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;
1791
1823
  }
1792
- const kn = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Cn = /* @__PURE__ */ new Set([
1824
+ const vn = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), xn = /* @__PURE__ */ new Set([
1793
1825
  "text/plain",
1794
1826
  "text/markdown",
1795
1827
  "text/csv",
@@ -1798,67 +1830,67 @@ const kn = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1798
1830
  "application/xml",
1799
1831
  "text/xml"
1800
1832
  ]);
1801
- function On(e) {
1833
+ function Nn(e) {
1802
1834
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1803
- return t ? kn.has(t) ? "image" : t === "application/pdf" ? "pdf" : Cn.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1835
+ return t ? vn.has(t) ? "image" : t === "application/pdf" ? "pdf" : xn.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1804
1836
  }
1805
- const _ = 1024 * 1024, vn = {
1837
+ const _ = 1024 * 1024, Rn = {
1806
1838
  image: 5 * _,
1807
1839
  pdf: 20 * _,
1808
1840
  text: 1 * _,
1809
1841
  audio: 20 * _
1810
- }, Jo = 25 * _, Zo = 5;
1811
- function Qo(e, t) {
1812
- const n = On(e);
1813
- return n === "unsupported" ? "unsupported" : t > vn[n] ? "too-large" : null;
1842
+ }, ia = 25 * _, oa = 5;
1843
+ function aa(e, t) {
1844
+ const n = Nn(e);
1845
+ return n === "unsupported" ? "unsupported" : t > Rn[n] ? "too-large" : null;
1814
1846
  }
1815
- function ea(e) {
1847
+ function sa(e) {
1816
1848
  return e.access !== "read" && e.effect !== "internal";
1817
1849
  }
1818
- function Nn(e) {
1850
+ function Dn(e) {
1819
1851
  return `${e.kind}:${e.id || e.url || e.title}`;
1820
1852
  }
1821
- function ta(e, t = []) {
1853
+ function ca(e, t = []) {
1822
1854
  const n = new Set(t), r = [], i = [];
1823
1855
  for (const o of e) {
1824
- const a = Nn(o);
1856
+ const a = Dn(o);
1825
1857
  n.has(a) || (n.add(a), r.push(o), i.push(a));
1826
1858
  }
1827
1859
  return { sources: r, keys: i };
1828
1860
  }
1829
- const na = "assist-source", ra = ["blocking", "due", "open"];
1830
- function ia(e, t) {
1861
+ const la = "assist-source", ua = ["blocking", "due", "open"];
1862
+ function da(e, t) {
1831
1863
  const [n, r] = (e.subjectKey ?? "").split(":");
1832
1864
  return n === t && r ? r : void 0;
1833
1865
  }
1834
1866
  const ue = { blocking: 0, due: 1, open: 2 };
1835
- function oa(e, t) {
1867
+ function pa(e, t) {
1836
1868
  return ue[e.band ?? "open"] - ue[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1837
1869
  }
1838
- function aa(e) {
1870
+ function fa(e) {
1839
1871
  return e.sessions.filter(
1840
1872
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1841
1873
  );
1842
1874
  }
1843
- function sa(e) {
1875
+ function ma(e) {
1844
1876
  return e.sessions.filter(
1845
1877
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1846
1878
  );
1847
1879
  }
1848
- function ca(e) {
1880
+ function ga(e) {
1849
1881
  return e.sessions.some(
1850
1882
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1851
1883
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
1852
1884
  }
1853
- function xn(e, t) {
1854
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((a) => !n.has(a.intent)).map((a) => Dn(a, r[a.intent]));
1885
+ function $n(e, t) {
1886
+ 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]));
1855
1887
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
1856
1888
  const o = new Set(i.map((a) => a.intent));
1857
1889
  for (const a of e.extraIntents)
1858
1890
  o.has(a.intent) || (i.push(a), o.add(a.intent));
1859
1891
  return i;
1860
1892
  }
1861
- function Rn(e, t) {
1893
+ function Ln(e, t) {
1862
1894
  const n = {};
1863
1895
  for (const r of e.intents) {
1864
1896
  if (!r.togglable) continue;
@@ -1867,46 +1899,46 @@ function Rn(e, t) {
1867
1899
  }
1868
1900
  return n;
1869
1901
  }
1870
- function la(e, t) {
1871
- const n = Rn(e, t);
1902
+ function ha(e, t) {
1903
+ const n = Ln(e, t);
1872
1904
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1873
1905
  }
1874
- function Dn(e, t) {
1906
+ function Pn(e, t) {
1875
1907
  return t ? {
1876
1908
  intent: t.intent ?? e.intent,
1877
1909
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1878
1910
  transport: t.transport ?? e.transport
1879
1911
  } : e;
1880
1912
  }
1881
- function ua(e, t) {
1913
+ function ya(e, t) {
1882
1914
  const n = [];
1883
1915
  for (const r of e) {
1884
1916
  if (!r.enabled) continue;
1885
1917
  const i = t[r.providerId];
1886
1918
  if (i)
1887
- for (const o of xn(r, i))
1919
+ for (const o of $n(r, i))
1888
1920
  n.push({ channel: r, description: i, capability: o });
1889
1921
  }
1890
1922
  return n;
1891
1923
  }
1892
- function da(e, t) {
1924
+ function ba(e, t) {
1893
1925
  return t.filter((n) => n.capability.intent === e);
1894
1926
  }
1895
- function $n(e, t) {
1927
+ function Un(e, t) {
1896
1928
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1897
1929
  }
1898
- function pa(e, t) {
1899
- return $n(e.scheme, t);
1930
+ function Aa(e, t) {
1931
+ return Un(e.scheme, t);
1900
1932
  }
1901
- function fa(e, t, n) {
1933
+ function Ea(e, t, n) {
1902
1934
  const r = [];
1903
1935
  for (const i of e)
1904
1936
  for (const o of n)
1905
1937
  o.capability.intent === t && o.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: o, endpoint: i });
1906
1938
  return r;
1907
1939
  }
1908
- var Ln = /* @__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))(Ln || {});
1909
- const Pn = {
1940
+ var Kn = /* @__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))(Kn || {});
1941
+ const jn = {
1910
1942
  mailto: "mail",
1911
1943
  sip: "tel",
1912
1944
  tel: "tel",
@@ -1927,10 +1959,10 @@ const Pn = {
1927
1959
  id: "note",
1928
1960
  custom: "note"
1929
1961
  };
1930
- function ma(e) {
1931
- return e ? Pn[e] ?? "note" : "note";
1962
+ function Sa(e) {
1963
+ return e ? jn[e] ?? "note" : "note";
1932
1964
  }
1933
- const ga = "message_window", ha = "message_templates", ya = {
1965
+ const _a = "message_window", Ta = "message_templates", wa = {
1934
1966
  // E-mail
1935
1967
  FROM: "from",
1936
1968
  TO: "to",
@@ -1947,11 +1979,11 @@ const ga = "message_window", ha = "message_templates", ya = {
1947
1979
  // Voice/conference
1948
1980
  HOST: "host",
1949
1981
  PARTICIPANT: "participant"
1950
- }, ba = (e, t) => ({ intent: e, ...t }), Aa = "folder_management", Ea = "remote_search", Sa = {
1982
+ }, Ia = (e, t) => ({ intent: e, ...t }), Ma = "folder_management", Ca = "remote_search", ka = "message_reactions", Oa = {
1951
1983
  ok: !1,
1952
1984
  code: "UNSUPPORTED",
1953
1985
  message: "Provider does not support this op"
1954
- }, _a = "context.collect", u = (e) => ({ type: "string", description: e }), l = (e) => ({ type: "number", description: e }), k = (e) => ({ type: "boolean", description: e }), y = u("Sheet name. Omit for the sheet the user is looking at."), de = u("Slide id, as `inspect` reports it.");
1986
+ }, va = "context.collect", u = (e) => ({ type: "string", description: e }), l = (e) => ({ type: "number", description: e }), C = (e) => ({ type: "boolean", description: e }), y = u("Sheet name. Omit for the sheet the user is looking at."), de = u("Slide id, as `inspect` reports it.");
1955
1987
  function c(e, t, n, r, i, o) {
1956
1988
  return {
1957
1989
  op: e,
@@ -1962,7 +1994,7 @@ function c(e, t, n, r, i, o) {
1962
1994
  visible: o.visible
1963
1995
  };
1964
1996
  }
1965
- const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe = { undoable: !1, visible: !0 }, v = { undoable: !1, visible: !1 }, Un = [
1997
+ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe = { undoable: !1, visible: !0 }, v = { undoable: !1, visible: !1 }, Bn = [
1966
1998
  c(
1967
1999
  "pdf.goToPage",
1968
2000
  ["pdf"],
@@ -1975,7 +2007,7 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
1975
2007
  "pdf.search",
1976
2008
  ["pdf"],
1977
2009
  "Search the document and highlight the matches, as the find bar does.",
1978
- { query: u("Text to find."), next: k("Jump to the next match instead of the first.") },
2010
+ { query: u("Text to find."), next: C("Jump to the next match instead of the first.") },
1979
2011
  ["query"],
1980
2012
  T
1981
2013
  ),
@@ -2057,7 +2089,7 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2057
2089
  ["page", "text"],
2058
2090
  v
2059
2091
  )
2060
- ], Kn = [
2092
+ ], Hn = [
2061
2093
  c(
2062
2094
  "sheet.setValues",
2063
2095
  ["sheet"],
@@ -2089,8 +2121,8 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2089
2121
  {
2090
2122
  sheet: y,
2091
2123
  range: u("A1 notation."),
2092
- bold: k("Bold on or off."),
2093
- italic: k("Italic on or off."),
2124
+ bold: C("Bold on or off."),
2125
+ italic: C("Italic on or off."),
2094
2126
  fontSize: l("Point size."),
2095
2127
  fontColor: u("CSS colour, e.g. `#b91c1c`."),
2096
2128
  background: u("CSS colour for the cell fill."),
@@ -2172,7 +2204,7 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2172
2204
  sheet: y,
2173
2205
  range: u("A1 notation covering the rows to sort, header excluded."),
2174
2206
  column: l("1-based column *within the range*, not within the sheet."),
2175
- ascending: k("Ascending. Omit for ascending.")
2207
+ ascending: C("Ascending. Omit for ascending.")
2176
2208
  },
2177
2209
  ["range", "column"],
2178
2210
  p
@@ -2209,19 +2241,34 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2209
2241
  [],
2210
2242
  T
2211
2243
  )
2212
- ], Bn = [
2244
+ ], Gn = [
2213
2245
  c(
2214
- "word.appendText",
2246
+ "word.replaceParagraph",
2215
2247
  ["word"],
2216
- "Add text at the end of the document.",
2217
- { text: u("The text to append.") },
2218
- ["text"],
2248
+ "Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
2249
+ {
2250
+ at: l("The offset the paragraph starts at, exactly as `inspect` prints it."),
2251
+ text: u("The new text for that paragraph. A newline starts a further paragraph.")
2252
+ },
2253
+ ["at", "text"],
2254
+ p
2255
+ ),
2256
+ c(
2257
+ "word.replaceRange",
2258
+ ["word"],
2259
+ "Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",
2260
+ {
2261
+ start: l("Character offset where the replaced text starts, as `inspect` reports offsets."),
2262
+ end: l("Character offset just past the last character to replace."),
2263
+ text: u("The replacement text. A newline starts a new paragraph.")
2264
+ },
2265
+ ["start", "end", "text"],
2219
2266
  p
2220
2267
  ),
2221
2268
  c(
2222
2269
  "word.insertText",
2223
2270
  ["word"],
2224
- "Insert text at a character offset.",
2271
+ "Insert text at a character offset, without removing anything.",
2225
2272
  {
2226
2273
  index: l("Character offset, as `inspect` reports offsets."),
2227
2274
  text: u("The text to insert.")
@@ -2229,23 +2276,34 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2229
2276
  ["index", "text"],
2230
2277
  p
2231
2278
  ),
2279
+ c(
2280
+ "word.appendText",
2281
+ ["word"],
2282
+ "Add text at the end of the document.",
2283
+ { text: u("The text to append.") },
2284
+ ["text"],
2285
+ p
2286
+ ),
2232
2287
  c(
2233
2288
  "word.insertParagraph",
2234
2289
  ["word"],
2235
- "Start a new paragraph at a character offset.",
2236
- { index: l("Character offset. Omit for the end of the document.") },
2290
+ "Start a new paragraph, optionally with text in it.",
2291
+ {
2292
+ text: u("Paragraph text. Newlines start further paragraphs."),
2293
+ index: l("Character offset to insert at. Omit for the end of the document.")
2294
+ },
2237
2295
  [],
2238
2296
  p
2239
2297
  ),
2240
2298
  c(
2241
2299
  "word.setSelection",
2242
2300
  ["word"],
2243
- "Put the user's cursor on a stretch of text.",
2301
+ "Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",
2244
2302
  { start: l("Start character offset."), end: l("End character offset. Omit for a caret.") },
2245
2303
  ["start"],
2246
2304
  T
2247
2305
  )
2248
- ], Hn = [
2306
+ ], Fn = [
2249
2307
  c(
2250
2308
  "slides.setText",
2251
2309
  ["slides"],
@@ -2273,34 +2331,34 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2273
2331
  ["slide", "element"],
2274
2332
  v
2275
2333
  )
2276
- ], Ue = [
2277
- ...Un,
2278
- ...Kn,
2334
+ ], Ke = [
2279
2335
  ...Bn,
2280
- ...Hn
2336
+ ...Hn,
2337
+ ...Gn,
2338
+ ...Fn
2281
2339
  ];
2282
- function Ta(e) {
2283
- return Ue.filter((t) => t.kinds.includes(e));
2340
+ function xa(e) {
2341
+ return Ke.filter((t) => t.kinds.includes(e));
2284
2342
  }
2285
- function Ia(e) {
2286
- return Ue.find((t) => t.op === e);
2343
+ function Na(e) {
2344
+ return Ke.find((t) => t.op === e);
2287
2345
  }
2288
- const wa = "documents.describe", Ma = "documents.inspect", ka = "documents.apply";
2289
- function Ca(e) {
2346
+ const Ra = "documents.describe", Da = "documents.inspect", $a = "documents.apply";
2347
+ function La(e) {
2290
2348
  const t = e.indexOf(":");
2291
2349
  if (t !== -1) return e.slice(0, t);
2292
2350
  const n = e.indexOf(".");
2293
2351
  return n === -1 ? e : e.slice(0, n);
2294
2352
  }
2295
- const Oa = "installation-id";
2296
- function va(e) {
2353
+ const Pa = "installation-id";
2354
+ function Ua(e) {
2297
2355
  const t = [];
2298
2356
  for (const n of Object.keys(e))
2299
2357
  for (const r of Object.keys(e[n]))
2300
2358
  t.push({ lang: n, key: r, value: e[n][r] });
2301
2359
  return t;
2302
2360
  }
2303
- const Na = "notification-source", xa = (e, t) => `${e}.pref.${t}`, Ra = {
2361
+ const Ka = "notification-source", ja = (e, t) => `${e}.pref.${t}`, Ba = {
2304
2362
  ai: [
2305
2363
  "account.read",
2306
2364
  "account.write",
@@ -2357,6 +2415,8 @@ const Na = "notification-source", xa = (e, t) => `${e}.pref.${t}`, Ra = {
2357
2415
  "inbox.write",
2358
2416
  "interaction.read",
2359
2417
  "interaction.write",
2418
+ "reaction.read",
2419
+ "reaction.write",
2360
2420
  "reminder.read",
2361
2421
  "template.read",
2362
2422
  "template.write",
@@ -2433,48 +2493,48 @@ const Na = "notification-source", xa = (e, t) => `${e}.pref.${t}`, Ra = {
2433
2493
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
2434
2494
  user: ["user.read", "user.write"],
2435
2495
  work: ["item.read", "item.write", "project.read", "project.write"]
2436
- }, Ke = 9e4, jn = ["out_of_office"], Be = (e) => jn.includes(e);
2437
- function Da(e, t, n) {
2438
- const r = n - e < Ke, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2496
+ }, je = 9e4, Wn = ["out_of_office"], Be = (e) => Wn.includes(e);
2497
+ function Ha(e, t, n) {
2498
+ const r = n - e < je, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2439
2499
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2440
2500
  const o = i.status;
2441
2501
  return !r && !Be(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2442
2502
  }
2443
- function $a(e, t) {
2444
- const n = t - e.lastSeenAt < Ke, r = n || Be(e.status) ? e.status : "offline";
2503
+ function Ga(e, t) {
2504
+ const n = t - e.lastSeenAt < je, r = n || Be(e.status) ? e.status : "offline";
2445
2505
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2446
2506
  }
2447
- function La(e, t) {
2507
+ function Fa(e, t) {
2448
2508
  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 };
2449
2509
  }
2450
- function Pa(e) {
2510
+ function Wa(e) {
2451
2511
  return e.providerAvailable && e.allowed;
2452
2512
  }
2453
- const Ua = "resources.describe", Ka = "resources.search", Ba = "resources.resolve", Ha = "resources.attached";
2454
- function ja(e) {
2513
+ const Va = "resources.describe", za = "resources.search", Xa = "resources.resolve", Ya = "resources.attached";
2514
+ function qa(e) {
2455
2515
  const t = e.indexOf(":");
2456
2516
  return t === -1 ? e : e.slice(0, t);
2457
2517
  }
2458
- const Ga = "/provider/scope/related", Fa = "/provider/scope/read", He = "auth";
2459
- function je(e) {
2518
+ const Ja = "/provider/scope/related", Za = "/provider/scope/read", He = "auth";
2519
+ function Ge(e) {
2460
2520
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2461
2521
  return t ? t[1] : null;
2462
2522
  }
2463
- function Wa(e) {
2464
- const t = je(e);
2523
+ function Qa(e) {
2524
+ const t = Ge(e);
2465
2525
  return t ? t !== He : typeof e == "string" && e.startsWith("/wake");
2466
2526
  }
2467
- function Va(e) {
2468
- return typeof e != "string" || e === "" || e === "/" ? !0 : je(e) === He;
2527
+ function es(e) {
2528
+ return typeof e != "string" || e === "" || e === "/" ? !0 : Ge(e) === He;
2469
2529
  }
2470
- function Gn(e) {
2530
+ function Vn(e) {
2471
2531
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2472
2532
  }
2473
- function Fn(e) {
2474
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Gn(r)}`).join("");
2533
+ function zn(e) {
2534
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Vn(r)}`).join("");
2475
2535
  return new RegExp(`^${n}\\/?$`);
2476
2536
  }
2477
- function Wn(e, t) {
2537
+ function Xn(e, t) {
2478
2538
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
2479
2539
  return n.forEach((o, a) => {
2480
2540
  if (o.startsWith(":")) {
@@ -2483,14 +2543,14 @@ function Wn(e, t) {
2483
2543
  }
2484
2544
  }), i;
2485
2545
  }
2486
- function Vn(e) {
2546
+ function Yn(e) {
2487
2547
  return e.publicBasePath ?? `/apps/${e.name}`;
2488
2548
  }
2489
- function za(e) {
2549
+ function ts(e) {
2490
2550
  const t = [];
2491
2551
  for (const n of e) {
2492
2552
  if (!n?.name) continue;
2493
- const r = Vn(n);
2553
+ const r = Yn(n);
2494
2554
  for (const i of n.routes ?? []) {
2495
2555
  if (!i.public) continue;
2496
2556
  const o = i.path === "/" ? "" : i.path;
@@ -2504,7 +2564,7 @@ function za(e) {
2504
2564
  }
2505
2565
  return t;
2506
2566
  }
2507
- function zn(e, t) {
2567
+ function qn(e, t) {
2508
2568
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2509
2569
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2510
2570
  const o = n[i].startsWith(":"), a = r[i].startsWith(":");
@@ -2512,17 +2572,17 @@ function zn(e, t) {
2512
2572
  }
2513
2573
  return n.length > r.length;
2514
2574
  }
2515
- function Xn(e, t) {
2575
+ function Jn(e, t) {
2516
2576
  if (typeof e != "string") return null;
2517
2577
  let n = null;
2518
2578
  for (const r of t)
2519
- Fn(r.pattern).test(e) && (!n || zn(r.pattern, n.pattern)) && (n = r);
2520
- return n ? { ...n, params: { ...n.props, ...Wn(n.pattern, e) } } : null;
2579
+ zn(r.pattern).test(e) && (!n || qn(r.pattern, n.pattern)) && (n = r);
2580
+ return n ? { ...n, params: { ...n.props, ...Xn(n.pattern, e) } } : null;
2521
2581
  }
2522
- function Xa(e, t) {
2523
- return Xn(e, t) !== null;
2582
+ function ns(e, t) {
2583
+ return Jn(e, t) !== null;
2524
2584
  }
2525
- const Ya = 10 * 1024 * 1024, qa = 25 * 1024 * 1024, Ja = "sync-source", Za = "sync-target", Qa = 20, Yn = {
2585
+ const rs = 10 * 1024 * 1024, is = 25 * 1024 * 1024, os = "sync-source", as = "sync-target", ss = 20, Zn = {
2526
2586
  afrikaans: [
2527
2587
  "[Muziek]",
2528
2588
  "(C) TV GELDERLAND 2021",
@@ -2672,14 +2732,14 @@ const Ya = 10 * 1024 * 1024, qa = 25 * 1024 * 1024, Ja = "sync-source", Za = "sy
2672
2732
  "[MÚSICA]",
2673
2733
  "[Music cuts in British]"
2674
2734
  ]
2675
- }, qn = (e) => {
2735
+ }, Qn = (e) => {
2676
2736
  let t = e;
2677
- return Object.values(Yn).forEach((n) => {
2737
+ return Object.values(Zn).forEach((n) => {
2678
2738
  n.forEach((r) => {
2679
2739
  t = t.replaceAll(r, "");
2680
2740
  });
2681
2741
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2682
- }, Jn = 6e4, Zn = 8e3, Qn = 2, er = 0.4, tr = 3, nr = /* @__PURE__ */ new Set([
2742
+ }, er = 6e4, tr = 8e3, nr = 2, rr = 0.4, ir = 3, or = /* @__PURE__ */ new Set([
2683
2743
  "aan",
2684
2744
  "als",
2685
2745
  "ben",
@@ -2792,13 +2852,13 @@ const Ya = 10 * 1024 * 1024, qa = 25 * 1024 * 1024, Ja = "sync-source", Za = "sy
2792
2852
  "you",
2793
2853
  "your"
2794
2854
  ]);
2795
- function rr(e) {
2855
+ function ar(e) {
2796
2856
  const t = /* @__PURE__ */ new Set();
2797
2857
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
2798
- n.length < tr || nr.has(n) || t.add(n);
2858
+ n.length < ir || or.has(n) || t.add(n);
2799
2859
  return [...t];
2800
2860
  }
2801
- function ir(e, t) {
2861
+ function sr(e, t) {
2802
2862
  if (!e.length) return 0;
2803
2863
  if (!t.length) return 1;
2804
2864
  const n = new Set(t), r = new Set(e);
@@ -2806,38 +2866,38 @@ function ir(e, t) {
2806
2866
  for (const o of r) n.has(o) || (i += 1);
2807
2867
  return i / r.size;
2808
2868
  }
2809
- function or(e, t = Jn) {
2869
+ function cr(e, t = er) {
2810
2870
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
2811
2871
  if (!n.length) return { text: "", segmentCount: 0 };
2812
2872
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
2813
- return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => qn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2873
+ return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => Qn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2814
2874
  }
2815
- const ar = 60;
2816
- function es(e, t, n = ar) {
2875
+ const lr = 60;
2876
+ function cs(e, t, n = lr) {
2817
2877
  const r = new Set(e), i = [...e];
2818
2878
  for (const o of t)
2819
2879
  !o || r.has(o) || (r.add(o), i.push(o));
2820
2880
  return i.slice(-n);
2821
2881
  }
2822
- function ts(e) {
2882
+ function ls(e) {
2823
2883
  const { segments: t, now: n, state: r } = e;
2824
- if (r.lastTriggerAt && n - r.lastTriggerAt < Zn)
2884
+ if (r.lastTriggerAt && n - r.lastTriggerAt < tr)
2825
2885
  return { trigger: !1, reason: "too_soon" };
2826
- const i = or(t, e.windowMs);
2886
+ const i = cr(t, e.windowMs);
2827
2887
  if (!i.text) return { trigger: !1, reason: "no_speech" };
2828
2888
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
2829
- if (r.lastQueryTerms && o < Qn)
2889
+ if (r.lastQueryTerms && o < nr)
2830
2890
  return { trigger: !1, reason: "too_few_new" };
2831
- const a = rr(i.text);
2832
- return a.length ? r.lastQueryTerms?.length && ir(a, r.lastQueryTerms) < er ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2891
+ const a = ar(i.text);
2892
+ return a.length ? r.lastQueryTerms?.length && sr(a, r.lastQueryTerms) < rr ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2833
2893
  }
2834
- const ns = [
2894
+ const us = [
2835
2895
  "personal",
2836
2896
  "workspace",
2837
2897
  "connections",
2838
2898
  "work",
2839
2899
  "ai"
2840
- ], rs = "navNotice", F = {
2900
+ ], ds = "navNotice", F = {
2841
2901
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2842
2902
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2843
2903
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2860,38 +2920,38 @@ const ns = [
2860
2920
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
2861
2921
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2862
2922
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2863
- }, sr = "NL", cr = 15, lr = 8, ur = Array.from(
2923
+ }, ur = "NL", dr = 15, pr = 8, fr = Array.from(
2864
2924
  new Set(Object.values(F).map((e) => e.callingCode))
2865
2925
  ).sort((e, t) => t.length - e.length);
2866
2926
  function fe(e) {
2867
2927
  if (e)
2868
2928
  return F[e.trim().toUpperCase()];
2869
2929
  }
2870
- function C(e, t) {
2930
+ function k(e, t) {
2871
2931
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
2872
2932
  }
2873
2933
  function me(e) {
2874
- if (e.length > cr) return null;
2875
- for (const t of ur) {
2934
+ if (e.length > dr) return null;
2935
+ for (const t of fr) {
2876
2936
  if (!e.startsWith(t)) continue;
2877
2937
  const n = e.slice(t.length);
2878
2938
  for (const r of Object.values(F)) {
2879
2939
  if (r.callingCode !== t) continue;
2880
2940
  const i = r.trunkPrefix, o = i && n.startsWith(i) ? n.slice(i.length) : n;
2881
- if (C(o, r)) return `+${t}${o}`;
2941
+ if (k(o, r)) return `+${t}${o}`;
2882
2942
  }
2883
2943
  return null;
2884
2944
  }
2885
- return e.length < lr ? null : `+${e}`;
2945
+ return e.length < pr ? null : `+${e}`;
2886
2946
  }
2887
- function dr(e) {
2947
+ function mr(e) {
2888
2948
  let t = e.trim();
2889
2949
  const n = t.match(/^(sips?|tel|whatsapp):/i);
2890
2950
  n && (t = t.slice(n[0].length));
2891
2951
  const r = t.indexOf("@");
2892
2952
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2893
2953
  }
2894
- function is(e) {
2954
+ function ps(e) {
2895
2955
  if (!e) return !1;
2896
2956
  const t = e.indexOf("@");
2897
2957
  if (t <= 0) return !1;
@@ -2900,41 +2960,41 @@ function is(e) {
2900
2960
  }
2901
2961
  function ge(e, t) {
2902
2962
  if (!e) return null;
2903
- const n = dr(e);
2963
+ const n = mr(e);
2904
2964
  if (!n) return null;
2905
2965
  const r = n.startsWith("+"), i = n.replace(/\D/g, "");
2906
2966
  if (!i) return null;
2907
2967
  if (r) return me(i);
2908
2968
  if (i.startsWith("00")) return me(i.slice(2));
2909
- const o = fe(t) ?? fe(sr);
2969
+ const o = fe(t) ?? fe(ur);
2910
2970
  if (!o) return null;
2911
2971
  const a = o.trunkPrefix;
2912
2972
  if (a && i.startsWith(a)) {
2913
2973
  const s = i.slice(a.length);
2914
- return C(s, o) ? `+${o.callingCode}${s}` : null;
2974
+ return k(s, o) ? `+${o.callingCode}${s}` : null;
2915
2975
  }
2916
2976
  if (i.startsWith(o.callingCode)) {
2917
2977
  const s = i.slice(o.callingCode.length);
2918
- if (C(s, o)) return `+${o.callingCode}${s}`;
2978
+ if (k(s, o)) return `+${o.callingCode}${s}`;
2919
2979
  }
2920
- return !a && C(i, o) ? `+${o.callingCode}${i}` : null;
2980
+ return !a && k(i, o) ? `+${o.callingCode}${i}` : null;
2921
2981
  }
2922
- function os(e, t = 9) {
2982
+ function fs(e, t = 9) {
2923
2983
  const n = (e ?? "").replace(/\D/g, "");
2924
2984
  return n.length < t ? null : n.slice(-t);
2925
2985
  }
2926
- function Ge(e) {
2986
+ function Fe(e) {
2927
2987
  if (!e) return null;
2928
2988
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
2929
2989
  if (n <= 0 || n === t.length - 1) return null;
2930
2990
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2931
2991
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2932
2992
  }
2933
- function as(e) {
2934
- const t = Ge(e);
2993
+ function ms(e) {
2994
+ const t = Fe(e);
2935
2995
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2936
2996
  }
2937
- const pr = /* @__PURE__ */ new Set([
2997
+ const gr = /* @__PURE__ */ new Set([
2938
2998
  "co.uk",
2939
2999
  "org.uk",
2940
3000
  "gov.uk",
@@ -2944,14 +3004,14 @@ const pr = /* @__PURE__ */ new Set([
2944
3004
  "com.br",
2945
3005
  "co.za"
2946
3006
  ]);
2947
- function fr(e) {
3007
+ function hr(e) {
2948
3008
  if (!e) return null;
2949
3009
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
2950
3010
  if (t.length < 2) return null;
2951
3011
  const n = t.slice(-2).join(".");
2952
- return pr.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
3012
+ return gr.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
2953
3013
  }
2954
- const mr = /* @__PURE__ */ new Set([
3014
+ const yr = /* @__PURE__ */ new Set([
2955
3015
  "gmail.com",
2956
3016
  "googlemail.com",
2957
3017
  "outlook.com",
@@ -2996,16 +3056,16 @@ const mr = /* @__PURE__ */ new Set([
2996
3056
  "proximus.be",
2997
3057
  "scarlet.be"
2998
3058
  ]);
2999
- function ss(e) {
3000
- const t = fr(e);
3001
- return t ? mr.has(t) : !1;
3059
+ function gs(e) {
3060
+ const t = hr(e);
3061
+ return t ? yr.has(t) : !1;
3002
3062
  }
3003
- function cs(e) {
3063
+ function hs(e) {
3004
3064
  if (!e) return !1;
3005
3065
  const t = e.trim().toLowerCase();
3006
3066
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
3007
3067
  }
3008
- function ls(e, t, n) {
3068
+ function ys(e, t, n) {
3009
3069
  if (!e || !t) return null;
3010
3070
  const r = e.trim().toLowerCase();
3011
3071
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -3017,13 +3077,13 @@ function ls(e, t, n) {
3017
3077
  return o ? `fax:${o}` : null;
3018
3078
  }
3019
3079
  if (r === "mailto" || r === "email") {
3020
- const o = Ge(t);
3080
+ const o = Fe(t);
3021
3081
  return o ? `mailto:${o}` : null;
3022
3082
  }
3023
3083
  const i = t.trim().toLowerCase();
3024
3084
  return i ? `${r}:${i}` : null;
3025
3085
  }
3026
- const gr = [
3086
+ const br = [
3027
3087
  /<blockquote/i,
3028
3088
  /class="?gmail_quote/i,
3029
3089
  // Gmail quote container
@@ -3036,24 +3096,24 @@ const gr = [
3036
3096
  // Outlook underscore separator before "From:"
3037
3097
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
3038
3098
  // Gmail "On <date> <name> wrote:"
3039
- ], he = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, hr = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3040
- function yr(e) {
3099
+ ], he = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Ar = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3100
+ function Er(e) {
3041
3101
  const t = e.split(`
3042
3102
  `);
3043
3103
  for (let n = 0; n < t.length; n++)
3044
- if (hr.test(t[n]) || he.test(t[n]) && t.slice(n + 1, n + 4).some((r) => he.test(r)))
3104
+ if (Ar.test(t[n]) || he.test(t[n]) && t.slice(n + 1, n + 4).some((r) => he.test(r)))
3045
3105
  return t.slice(0, n).join(`
3046
3106
  `).trim();
3047
3107
  return e;
3048
3108
  }
3049
- const br = /^(?:https?:|mailto:|tel:)/i, Ar = /^(?:https?:|cid:|data:image\/)/i;
3109
+ const Sr = /^(?:https?:|mailto:|tel:)/i, _r = /^(?:https?:|cid:|data:image\/)/i;
3050
3110
  function U(e, t) {
3051
3111
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
3052
3112
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
3053
3113
  }
3054
- const Er = /(!\[[^\]]*\]\([^)]*\))/;
3114
+ const Tr = /(!\[[^\]]*\]\([^)]*\))/;
3055
3115
  function ye(e) {
3056
- return e.replace(/\s+/g, " ").trim().split(Er).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
3116
+ return e.replace(/\s+/g, " ").trim().split(Tr).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
3057
3117
  }
3058
3118
  function K(e) {
3059
3119
  return e.replace(
@@ -3061,47 +3121,47 @@ function K(e) {
3061
3121
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
3062
3122
  );
3063
3123
  }
3064
- function Sr(e) {
3124
+ function wr(e) {
3065
3125
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
3066
3126
  const i = U(r, "src");
3067
- return Ar.test(i) ? `![${ye(U(r, "alt"))}](${K(i)})` : "";
3127
+ return _r.test(i) ? `![${ye(U(r, "alt"))}](${K(i)})` : "";
3068
3128
  }).replace(
3069
3129
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
3070
3130
  (n, r, i) => {
3071
3131
  const o = ye(i.replace(/<[^>]*>/g, "")), a = U(r, "href");
3072
- return br.test(a) ? `[${o || K(a)}](${K(a)})` : o;
3132
+ return Sr.test(a) ? `[${o || K(a)}](${K(a)})` : o;
3073
3133
  }
3074
3134
  );
3075
3135
  }
3076
- const _r = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Tr = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Ir = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
3077
- function wr(e, t) {
3136
+ const Ir = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Mr = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Cr = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
3137
+ function kr(e, t) {
3078
3138
  return /<table\b/i.test(e) || e.includes(`
3079
3139
 
3080
3140
  |`) || t.includes("![") || t.length > 200;
3081
3141
  }
3082
- const Mr = 40, kr = { left: "---", center: ":---:", right: "---:" };
3083
- function Cr(e) {
3142
+ const Or = 40, vr = { left: "---", center: ":---:", right: "---:" };
3143
+ function xr(e) {
3084
3144
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
3085
3145
  return t ? t[1].toLowerCase() : "left";
3086
3146
  }
3087
- function Or(e) {
3147
+ function Nr(e) {
3088
3148
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
3089
3149
  }
3090
- function vr(e) {
3150
+ function Rr(e) {
3091
3151
  const t = [];
3092
- for (const a of e.matchAll(Tr)) {
3152
+ for (const a of e.matchAll(Mr)) {
3093
3153
  const s = [];
3094
- for (const d of a[1].matchAll(Ir)) {
3095
- const f = Or(d[3]);
3096
- if (wr(d[3], f)) return null;
3097
- s.push({ text: f, align: Cr(d[2]) });
3154
+ for (const d of a[1].matchAll(Cr)) {
3155
+ const f = Nr(d[3]);
3156
+ if (kr(d[3], f)) return null;
3157
+ s.push({ text: f, align: xr(d[2]) });
3098
3158
  }
3099
3159
  if (s.length === 0) return null;
3100
3160
  s.some((d) => d.text !== "") && t.push(s);
3101
3161
  }
3102
3162
  const n = t[0]?.length ?? 0;
3103
3163
  if (t.length < 2 || n < 2 || t.some((a) => a.length !== n)) return null;
3104
- const r = (a) => `| ${a.map((s) => s.text).join(" | ")} |`, i = t[1].map((a) => kr[a.align]).join(" | "), o = t.slice(1).map(r).join(`
3164
+ const r = (a) => `| ${a.map((s) => s.text).join(" | ")} |`, i = t[1].map((a) => vr[a.align]).join(" | "), o = t.slice(1).map(r).join(`
3105
3165
  `);
3106
3166
  return `
3107
3167
 
@@ -3111,18 +3171,18 @@ ${o}
3111
3171
 
3112
3172
  `;
3113
3173
  }
3114
- function Nr(e) {
3174
+ function Dr(e) {
3115
3175
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
3116
3176
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
3117
3177
  }
3118
- function xr(e) {
3178
+ function $r(e) {
3119
3179
  let t = e;
3120
- for (let n = 0; n < Mr; n++) {
3121
- const r = _r.exec(t);
3180
+ for (let n = 0; n < Or; n++) {
3181
+ const r = Ir.exec(t);
3122
3182
  if (!r || r.index === void 0) break;
3123
- const o = vr(r[1]) ?? `
3183
+ const o = Rr(r[1]) ?? `
3124
3184
 
3125
- ${Nr(r[1])}
3185
+ ${Dr(r[1])}
3126
3186
 
3127
3187
  `;
3128
3188
  t = t.slice(0, r.index) + o + t.slice(r.index + r[0].length);
@@ -3132,7 +3192,7 @@ ${Nr(r[1])}
3132
3192
  function be(e, t) {
3133
3193
  let n = e;
3134
3194
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
3135
- `), t && (n = xr(Sr(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
3195
+ `), t && (n = $r(wr(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
3136
3196
 
3137
3197
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
3138
3198
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -3140,7 +3200,7 @@ function be(e, t) {
3140
3200
  function Ae(e) {
3141
3201
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
3142
3202
  }
3143
- const Rr = {
3203
+ const Lr = {
3144
3204
  euro: "€",
3145
3205
  pound: "£",
3146
3206
  yen: "¥",
@@ -3163,7 +3223,7 @@ const Rr = {
3163
3223
  apos: "'"
3164
3224
  };
3165
3225
  function Ee(e) {
3166
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => Rr[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Ae(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Ae(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
3226
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => Lr[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Ae(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Ae(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
3167
3227
  }
3168
3228
  function Se(e) {
3169
3229
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -3171,352 +3231,359 @@ function Se(e) {
3171
3231
 
3172
3232
  `).trim();
3173
3233
  }
3174
- const Dr = /<\s*(html|body|div|p|table|br|span)\b/i;
3175
- function us(e) {
3176
- return Dr.test(e);
3234
+ const Pr = /<\s*(html|body|div|p|table|br|span)\b/i;
3235
+ function bs(e) {
3236
+ return Pr.test(e);
3177
3237
  }
3178
- function ds(e) {
3179
- return Fe(e, !1);
3238
+ function As(e) {
3239
+ return We(e, !1);
3180
3240
  }
3181
- function ps(e) {
3182
- return Fe(e, !0);
3241
+ function Es(e) {
3242
+ return We(e, !0);
3183
3243
  }
3184
- function Fe(e, t) {
3244
+ function We(e, t) {
3185
3245
  if (typeof e != "string" || !e) return "";
3186
3246
  let n = e.length;
3187
- for (const a of gr) {
3247
+ for (const a of br) {
3188
3248
  const s = e.search(a);
3189
3249
  s >= 0 && s < n && (n = s);
3190
3250
  }
3191
3251
  const r = e.slice(0, n);
3192
3252
  let i = Se(Ee(be(r, t)));
3193
- return i || (i = Se(Ee(be(e, t)))), yr(i) || i;
3253
+ return i || (i = Se(Ee(be(e, t)))), Er(i) || i;
3194
3254
  }
3195
3255
  export {
3196
- Ei as ACTIVE_ASSIGNMENT_STATUSES,
3256
+ wi as ACTIVE_ASSIGNMENT_STATUSES,
3197
3257
  A as ACTIVITY_CATALOG,
3198
- vn as AI_ATTACHMENT_LIMITS,
3199
- Zo as AI_ATTACHMENT_MAX_PER_TURN,
3200
- Jo as AI_ATTACHMENT_TURN_BUDGET,
3201
- Te as AI_VENDORS,
3202
- ft as ALLOWED_LINK_SCHEMES,
3203
- Ra as APP_PERMISSIONS,
3258
+ Rn as AI_ATTACHMENT_LIMITS,
3259
+ oa as AI_ATTACHMENT_MAX_PER_TURN,
3260
+ ia as AI_ATTACHMENT_TURN_BUDGET,
3261
+ we as AI_VENDORS,
3262
+ mt as ALLOWED_LINK_SCHEMES,
3263
+ Ba as APP_PERMISSIONS,
3204
3264
  Z as ARTIFACT_MAX_BLOCKS,
3205
- pi as ARTIFACT_MAX_BODY_BYTES,
3265
+ hi as ARTIFACT_MAX_BODY_BYTES,
3206
3266
  L as ARTIFACT_MAX_CELL_LEN,
3207
3267
  ne as ARTIFACT_MAX_KPI_ITEMS,
3208
3268
  Q as ARTIFACT_MAX_LIST_ITEMS,
3209
3269
  te as ARTIFACT_MAX_TABLE_COLUMNS,
3210
3270
  ee as ARTIFACT_MAX_TABLE_ROWS,
3211
- we as ARTIFACT_MAX_TEXT_LEN,
3212
- _t as ASSIGNMENT_SCOPE_KIND,
3213
- ra as ASSIST_BANDS,
3214
- na as ASSIST_SOURCE_PROVIDER_GROUP,
3215
- $t as ATTENTION_STATUSES,
3271
+ Me as ARTIFACT_MAX_TEXT_LEN,
3272
+ Tt as ASSIGNMENT_SCOPE_KIND,
3273
+ ua as ASSIST_BANDS,
3274
+ la as ASSIST_SOURCE_PROVIDER_GROUP,
3275
+ Lt as ATTENTION_STATUSES,
3216
3276
  He as AUTH_APP_NAME,
3217
- cn as AUTO_READY_MIN_PROPOSALS,
3218
- ln as AUTO_READY_RATE,
3219
- nt as ActivityTypeRegistry,
3220
- Jr as BUILT_IN_ONLY,
3221
- Lt as BULK_PENALTY,
3222
- Zn as CADENCE_FLOOR_MS,
3223
- Qn as CADENCE_MIN_NEW_SEGMENTS,
3224
- er as CADENCE_MIN_NOVELTY,
3225
- Jn as CADENCE_WINDOW_MS,
3226
- ho as CLASSIFY_VARS,
3227
- _a as CONTEXT_COLLECT_SERVICE,
3228
- li as CORE_DIMENSIONS,
3229
- Ln as CommunicationScheme,
3230
- Mt as DAY_MS,
3231
- to as DEFAULT_MEMORY_BUDGET,
3232
- sr as DEFAULT_PHONE_REGION,
3233
- ka as DOCUMENT_APPLY_SERVICE,
3234
- wa as DOCUMENT_DESCRIBE_SERVICE,
3235
- Ma as DOCUMENT_INSPECT_SERVICE,
3236
- Ue as DOCUMENT_OPERATIONS,
3237
- bo as EMPTY_WORKFLOW,
3238
- Aa as FEATURE_FOLDER_MANAGEMENT,
3239
- Ea as FEATURE_REMOTE_SEARCH,
3240
- Ut as FOLLOW_UP_HOURS,
3241
- wt as HOUR_MS,
3242
- Dr as HTML_BODY_RE,
3277
+ ln as AUTO_READY_MIN_PROPOSALS,
3278
+ un as AUTO_READY_RATE,
3279
+ rt as ActivityTypeRegistry,
3280
+ ti as BUILT_IN_ONLY,
3281
+ Pt as BULK_PENALTY,
3282
+ tr as CADENCE_FLOOR_MS,
3283
+ nr as CADENCE_MIN_NEW_SEGMENTS,
3284
+ rr as CADENCE_MIN_NOVELTY,
3285
+ er as CADENCE_WINDOW_MS,
3286
+ Eo as CLASSIFY_VARS,
3287
+ va as CONTEXT_COLLECT_SERVICE,
3288
+ fi as CORE_DIMENSIONS,
3289
+ Kn as CommunicationScheme,
3290
+ Ct as DAY_MS,
3291
+ oo as DEFAULT_MEMORY_BUDGET,
3292
+ ur as DEFAULT_PHONE_REGION,
3293
+ $a as DOCUMENT_APPLY_SERVICE,
3294
+ Ra as DOCUMENT_DESCRIBE_SERVICE,
3295
+ Da as DOCUMENT_INSPECT_SERVICE,
3296
+ Ke as DOCUMENT_OPERATIONS,
3297
+ _o as EMPTY_WORKFLOW,
3298
+ Ma as FEATURE_FOLDER_MANAGEMENT,
3299
+ ka as FEATURE_MESSAGE_REACTIONS,
3300
+ Ca as FEATURE_REMOTE_SEARCH,
3301
+ Kt as FOLLOW_UP_HOURS,
3302
+ Mt as HOUR_MS,
3303
+ Pr as HTML_BODY_RE,
3243
3304
  E as INELIGIBLE,
3244
- Oa as INSTALLATION_HEADER,
3245
- nn as INTERACTION_KIND,
3246
- ya as InteractionParticipantRole,
3247
- Vt as KB_FALLBACK_LOCALE,
3305
+ Pa as INSTALLATION_HEADER,
3306
+ rn as INTERACTION_KIND,
3307
+ wa as InteractionParticipantRole,
3308
+ zt as KB_FALLBACK_LOCALE,
3248
3309
  ae as KB_LOCALES,
3249
3310
  G as LOOSE_STATUSES,
3250
3311
  Nt as MAIL_HINT_HEADERS,
3251
- Ur as MAX_ACTIONS,
3252
- Tt as MAX_ASSIGNMENT_TURNS,
3253
- $r as MAX_BLOCKS,
3254
- Re as MAX_COLLECTION_DEPTH,
3255
- Ya as MAX_EDITABLE_FILE_BYTES,
3256
- Lr as MAX_FIELDS,
3257
- Pr as MAX_LIST_ITEMS,
3258
- Ji as MAX_MEMORY_BROWSE,
3259
- eo as MAX_MEMORY_BUDGET,
3260
- Zi as MAX_MEMORY_CHARS,
3261
- ar as MAX_SHOWN_KEYS,
3262
- gn as MAX_TOPIC_CANDIDATES,
3263
- mn as MAX_TOPIC_EXAMPLES,
3312
+ Br as MAX_ACTIONS,
3313
+ wt as MAX_ASSIGNMENT_TURNS,
3314
+ Ur as MAX_BLOCKS,
3315
+ De as MAX_COLLECTION_DEPTH,
3316
+ rs as MAX_EDITABLE_FILE_BYTES,
3317
+ Kr as MAX_FIELDS,
3318
+ jr as MAX_LIST_ITEMS,
3319
+ to as MAX_MEMORY_BROWSE,
3320
+ io as MAX_MEMORY_BUDGET,
3321
+ no as MAX_MEMORY_CHARS,
3322
+ lr as MAX_SHOWN_KEYS,
3323
+ yn as MAX_TOPIC_CANDIDATES,
3324
+ hn as MAX_TOPIC_EXAMPLES,
3264
3325
  P as MAX_TOPIC_EXAMPLE_CHARS,
3265
- qa as MAX_VIEWABLE_FILE_BYTES,
3266
- Qi as MIN_MEMORY_BUDGET,
3267
- rs as NAV_NOTICE_SLOT,
3268
- Na as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3269
- ro as ONBOARDING_SOURCE_PROVIDER_GROUP,
3326
+ is as MAX_VIEWABLE_FILE_BYTES,
3327
+ ro as MIN_MEMORY_BUDGET,
3328
+ ds as NAV_NOTICE_SLOT,
3329
+ Ka as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3330
+ so as ONBOARDING_SOURCE_PROVIDER_GROUP,
3270
3331
  F as PHONE_REGIONS,
3271
- Ke as PRESENCE_ONLINE_WINDOW_MS,
3272
- jn as PRESENCE_SURVIVES_OFFLINE,
3273
- oo as PROFILE_TOOL_DISPOSITIONS,
3274
- ha as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3275
- ga as PROVIDER_FEATURE_MESSAGE_WINDOW,
3276
- mr as PUBLIC_EMAIL_DOMAINS,
3332
+ je as PRESENCE_ONLINE_WINDOW_MS,
3333
+ Wn as PRESENCE_SURVIVES_OFFLINE,
3334
+ lo as PROFILE_TOOL_DISPOSITIONS,
3335
+ Ta as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3336
+ _a as PROVIDER_FEATURE_MESSAGE_WINDOW,
3337
+ yr as PUBLIC_EMAIL_DOMAINS,
3277
3338
  se as READ_STEP_TYPES,
3278
- Yt as RELATED_SUBJECT_KINDS,
3279
- Pe as RESERVED_STATUS_KEYS,
3280
- Ha as RESOURCE_ATTACHED_SERVICE,
3281
- Ua as RESOURCE_DESCRIBE_SERVICE,
3282
- Ba as RESOURCE_RESOLVE_SERVICE,
3283
- Ka as RESOURCE_SEARCH_SERVICE,
3284
- Fa as SCOPE_READ_ROUTE,
3285
- Ga as SCOPE_RELATED_ROUTE,
3286
- ns as SETTINGS_CATEGORIES,
3287
- Mi as SIGNATURE_INTENTS,
3288
- Pt as SLA_HOURS_BY_PRIORITY,
3289
- an as STEP_MAX_TOKENS_MAX,
3290
- on as STEP_MAX_TOKENS_MIN,
3291
- vt as SUMMARY_MIN_LAST_CHARS,
3292
- Ot as SUMMARY_MIN_MESSAGES,
3293
- Qa as SYNC_RUN_MAX_ERRORS,
3294
- Ja as SYNC_SOURCE_PROVIDER_GROUP,
3295
- Za as SYNC_TARGET_PROVIDER_GROUP,
3296
- St as TERMINAL_ASSIGNMENT_STATUSES,
3297
- un as TERMINAL_RUN_STATUSES,
3298
- go as TRIGGER_VARS,
3299
- Sa as UNSUPPORTED,
3300
- lt as USAGE_DIMENSIONS,
3301
- ut as USAGE_DIMENSION_IDS,
3302
- io as WORK_AREAS,
3303
- Po as WORK_COMMENT_ADDED,
3304
- Uo as WORK_ITEM_ASSIGNED,
3305
- En as WORK_ITEM_SCOPE_KIND,
3306
- Ko as WORK_ITEM_STATUS_CHANGED,
3307
- Sn as WORK_PROJECT_SCOPE_KIND,
3339
+ qt as RELATED_SUBJECT_KINDS,
3340
+ Ue as RESERVED_STATUS_KEYS,
3341
+ Ya as RESOURCE_ATTACHED_SERVICE,
3342
+ Va as RESOURCE_DESCRIBE_SERVICE,
3343
+ Xa as RESOURCE_RESOLVE_SERVICE,
3344
+ za as RESOURCE_SEARCH_SERVICE,
3345
+ Za as SCOPE_READ_ROUTE,
3346
+ Ja as SCOPE_RELATED_ROUTE,
3347
+ us as SETTINGS_CATEGORIES,
3348
+ vi as SIGNATURE_INTENTS,
3349
+ Ut as SLA_HOURS_BY_PRIORITY,
3350
+ sn as STEP_MAX_TOKENS_MAX,
3351
+ an as STEP_MAX_TOKENS_MIN,
3352
+ xt as SUMMARY_MIN_LAST_CHARS,
3353
+ vt as SUMMARY_MIN_MESSAGES,
3354
+ ss as SYNC_RUN_MAX_ERRORS,
3355
+ os as SYNC_SOURCE_PROVIDER_GROUP,
3356
+ as as SYNC_TARGET_PROVIDER_GROUP,
3357
+ _t as TERMINAL_ASSIGNMENT_STATUSES,
3358
+ dn as TERMINAL_RUN_STATUSES,
3359
+ Ao as TRIGGER_VARS,
3360
+ Oa as UNSUPPORTED,
3361
+ ut as USAGE_DIMENSIONS,
3362
+ dt as USAGE_DIMENSION_IDS,
3363
+ wn as WORK_ACTIVITY_SCOPE_KIND,
3364
+ co as WORK_AREAS,
3365
+ Go as WORK_COMMENT_ADDED,
3366
+ Fo as WORK_ITEM_ASSIGNED,
3367
+ _n as WORK_ITEM_SCOPE_KIND,
3368
+ Wo as WORK_ITEM_STATUS_CHANGED,
3369
+ Tn as WORK_PROJECT_SCOPE_KIND,
3308
3370
  O as W_PRIORITY,
3309
- Do as acceptExampleCandidate,
3310
- Jt as actingIdentityKey,
3311
- xo as activeWorkTypes,
3312
- Br as activityIconOf,
3313
- Yr as activityJoinUrl,
3314
- Ze as activitySnippet,
3315
- Qe as activityTextParams,
3316
- Xr as activityTimelineText,
3317
- rt as activityTimestamp,
3318
- h as activityTypeInfo,
3319
- co as actorKey,
3320
- Ro as addExampleCandidate,
3321
- $a as agePresenceEntry,
3322
- On as aiAttachmentKind,
3323
- Qo as aiAttachmentRejection,
3371
+ jo as acceptExampleCandidate,
3372
+ Zt as actingIdentityKey,
3373
+ Uo as activeWorkTypes,
3374
+ Gr as activityIconOf,
3375
+ Qr as activityJoinUrl,
3376
+ Qe as activitySnippet,
3377
+ et as activityTextParams,
3378
+ Zr as activityTimelineText,
3379
+ it as activityTimestamp,
3380
+ m as activityTypeInfo,
3381
+ fo as actorKey,
3382
+ Ko as addExampleCandidate,
3383
+ Ga as agePresenceEntry,
3384
+ Nn as aiAttachmentKind,
3385
+ aa as aiAttachmentRejection,
3324
3386
  J as aiBudgetLimit,
3325
- si as aiBudgetPeriodKey,
3326
- it as aiBudgetPeriodStart,
3327
- ai as aiBudgetState,
3328
- oi as aiVendorAcceptsAttachment,
3329
- ni as aiVendorDefaultModel,
3330
- ti as aiVendorLabel,
3331
- ii as aiVendorNeedsBaseUrl,
3332
- ri as aiVendorsWith,
3333
- je as appNameFromPath,
3334
- ko as applyRounding,
3335
- ki as applySignature,
3336
- sn as approvalRate,
3337
- mi as artifactBodyBytes,
3338
- gi as artifactOutline,
3339
- hi as artifactToMarkdown,
3340
- fo as assignmentMismatch,
3341
- _i as assignmentScopeKey,
3342
- Ii as assignmentSubject,
3343
- qr as buildActivityPreview,
3344
- ua as buildChannelIntents,
3345
- yi as buildShareKeys,
3346
- or as buildWindow,
3347
- Wi as canNestUnder,
3348
- Fr as carriesText,
3349
- zi as categoryLabel,
3350
- In as categoryOf,
3351
- ma as channelKindForScheme,
3352
- Hr as channelKindOf,
3353
- yo as clampStepMaxTokens,
3354
- Ri as classifyMail,
3355
- ps as cleanMessageMarkdown,
3356
- ds as cleanMessageText,
3357
- oa as compareAssistRank,
3358
- fn as compareWorkTypes,
3359
- wi as decideAssignmentState,
3360
- ts as decideCadence,
3361
- ca as decideIncomingCall,
3362
- zt as defaultLocaleOf,
3363
- zo as defaultStatusKey,
3364
- ba as defineIntent,
3365
- Ft as depthOf,
3366
- Da as derivePresence,
3367
- la as disabledIntentsFromCapabilities,
3368
- Ca as documentKindOf,
3369
- Mo as elapsedSeconds,
3370
- as as emailDomain,
3371
- ls as endpointKey,
3372
- Wn as extractParams,
3373
- rr as extractTerms,
3374
- pa as filterByEndpoint,
3375
- da as filterByIntent,
3376
- $n as filterByTargetScheme,
3377
- N as findAiVendor,
3378
- va as flattenLocales,
3379
- at as floorToPeriod,
3380
- qt as formatActingIdentity,
3381
- Oo as formatClock,
3382
- Co as formatHm,
3383
- Ho as formatItemKey,
3384
- ot as formatPeriod,
3385
- ta as freshSources,
3386
- Zr as getActivitySeenUserIds,
3387
- Ci as getContactEndpoints,
3388
- Bi as getShortTitle,
3389
- Ki as getUrgencyScore,
3390
- De as heightOf,
3391
- ji as helpCenterText,
3392
- mo as humanizeAction,
3393
- rn as interactionIdOf,
3394
- Lo as isAgentUser,
3395
- Pi as isAssigned,
3396
- Si as isAssignmentTerminal,
3397
- en as isAssignmentTrigger,
3398
- So as isAutoReady,
3399
- Gt as isAwaitingThem,
3400
- ei as isChatMessageActivity,
3401
- Ui as isClosed,
3402
- Vr as isConnectedType,
3403
- Wa as isDeepLink,
3404
- Wt as isDescendant,
3405
- Oi as isEligible,
3406
- Qr as isEmailActivity,
3407
- us as isHtmlBody,
3408
- To as isInFlight,
3409
- Dt as isInteractionUnseen,
3410
- Va as isLandingPath,
3411
- Ct as isLikelyBulk,
3387
+ di as aiBudgetPeriodKey,
3388
+ ot as aiBudgetPeriodStart,
3389
+ ui as aiBudgetState,
3390
+ li as aiVendorAcceptsAttachment,
3391
+ ai as aiVendorDefaultModel,
3392
+ oi as aiVendorLabel,
3393
+ ci as aiVendorNeedsBaseUrl,
3394
+ si as aiVendorsWith,
3395
+ Ge as appNameFromPath,
3396
+ Ro as applyRounding,
3397
+ xi as applySignature,
3398
+ cn as approvalRate,
3399
+ bi as artifactBodyBytes,
3400
+ Ai as artifactOutline,
3401
+ Ei as artifactToMarkdown,
3402
+ yo as assignmentMismatch,
3403
+ Mi as assignmentScopeKey,
3404
+ ki as assignmentSubject,
3405
+ ei as buildActivityPreview,
3406
+ ya as buildChannelIntents,
3407
+ Si as buildShareKeys,
3408
+ cr as buildWindow,
3409
+ Yi as canNestUnder,
3410
+ Xr as carriesText,
3411
+ Ji as categoryLabel,
3412
+ Cn as categoryOf,
3413
+ Sa as channelKindForScheme,
3414
+ Fr as channelKindOf,
3415
+ So as clampStepMaxTokens,
3416
+ Pi as classifyMail,
3417
+ Es as cleanMessageMarkdown,
3418
+ As as cleanMessageText,
3419
+ pa as compareAssistRank,
3420
+ gn as compareWorkTypes,
3421
+ Oi as decideAssignmentState,
3422
+ ls as decideCadence,
3423
+ ga as decideIncomingCall,
3424
+ Xt as defaultLocaleOf,
3425
+ ea as defaultStatusKey,
3426
+ Ia as defineIntent,
3427
+ Wt as depthOf,
3428
+ Ha as derivePresence,
3429
+ ha as disabledIntentsFromCapabilities,
3430
+ La as documentKindOf,
3431
+ No as elapsedSeconds,
3432
+ ms as emailDomain,
3433
+ ys as endpointKey,
3434
+ Xn as extractParams,
3435
+ ar as extractTerms,
3436
+ Aa as filterByEndpoint,
3437
+ ba as filterByIntent,
3438
+ Un as filterByTargetScheme,
3439
+ x as findAiVendor,
3440
+ Ua as flattenLocales,
3441
+ st as floorToPeriod,
3442
+ Jt as formatActingIdentity,
3443
+ $o as formatClock,
3444
+ Do as formatHm,
3445
+ Xo as formatItemKey,
3446
+ at as formatPeriod,
3447
+ ca as freshSources,
3448
+ ni as getActivitySeenUserIds,
3449
+ Ni as getContactEndpoints,
3450
+ Fi as getShortTitle,
3451
+ Gi as getUrgencyScore,
3452
+ xo as hasReacted,
3453
+ $e as heightOf,
3454
+ Vi as helpCenterText,
3455
+ bo as humanizeAction,
3456
+ on as interactionIdOf,
3457
+ Ho as isAgentUser,
3458
+ Bi as isAssigned,
3459
+ Ii as isAssignmentTerminal,
3460
+ tn as isAssignmentTrigger,
3461
+ Io as isAutoReady,
3462
+ Ft as isAwaitingThem,
3463
+ ii as isChatMessageActivity,
3464
+ Hi as isClosed,
3465
+ qr as isConnectedType,
3466
+ Qa as isDeepLink,
3467
+ Vt as isDescendant,
3468
+ Ri as isEligible,
3469
+ ri as isEmailActivity,
3470
+ bs as isHtmlBody,
3471
+ Co as isInFlight,
3472
+ $t as isInteractionUnseen,
3473
+ es as isLandingPath,
3474
+ Ot as isLikelyBulk,
3412
3475
  _e as isMessageShape,
3413
- jr as isMessageType,
3414
- zn as isMoreSpecificPattern,
3415
- ea as isOutwardTool,
3476
+ Wr as isMessageType,
3477
+ qn as isMoreSpecificPattern,
3478
+ Te as isNoteShape,
3479
+ sa as isOutwardTool,
3416
3480
  Bt as isParked,
3417
- dn as isPaused,
3418
- Wr as isPlaybookAuthoredType,
3419
- ss as isPublicEmailDomain,
3420
- Xa as isPublicPath,
3481
+ pn as isPaused,
3482
+ Yr as isPlaybookAuthoredType,
3483
+ gs as isPublicEmailDomain,
3484
+ ns as isPublicPath,
3421
3485
  Ht as isReminderActive,
3422
- Gr as isReplyableType,
3423
- $i as isSlaAtRisk,
3424
- _o as isTerminal,
3425
- Ni as isThreadLongEnough,
3426
- zr as isTranscriptType,
3427
- Xo as isWorkClosed,
3428
- No as isWorkTypeVisible,
3429
- Fo as itemDossierKeys,
3430
- Tn as ladderFor,
3431
- Hi as linkLabel,
3432
- ci as listeningAllowed,
3433
- Fi as localeInstruction,
3434
- Gi as localeName,
3435
- Vi as localesOf,
3436
- is as looksLikeEmail,
3437
- fa as matchContactToIntents,
3438
- Xn as matchPublicRoute,
3439
- Yi as mcpCredentialScope,
3440
- qi as mcpToolPrefix,
3441
- es as mergeShownKeys,
3442
- Je as messageCountsAs,
3443
- cs as needsPhoneRegion,
3444
- fi as normalizeArtifactBlocks,
3445
- Kr as normalizeBlocks,
3446
- Ge as normalizeEmail,
3486
+ zr as isReplyableType,
3487
+ Ki as isSlaAtRisk,
3488
+ Mo as isTerminal,
3489
+ $i as isThreadLongEnough,
3490
+ Jr as isTranscriptType,
3491
+ ta as isWorkClosed,
3492
+ Po as isWorkTypeVisible,
3493
+ Jo as itemDossierKeys,
3494
+ Mn as ladderFor,
3495
+ Wi as linkLabel,
3496
+ pi as listeningAllowed,
3497
+ Xi as localeInstruction,
3498
+ zi as localeName,
3499
+ qi as localesOf,
3500
+ ps as looksLikeEmail,
3501
+ Ea as matchContactToIntents,
3502
+ Jn as matchPublicRoute,
3503
+ Qi as mcpCredentialScope,
3504
+ eo as mcpToolPrefix,
3505
+ cs as mergeShownKeys,
3506
+ Ze as messageCountsAs,
3507
+ hs as needsPhoneRegion,
3508
+ Vr as nestsUnderParent,
3509
+ yi as normalizeArtifactBlocks,
3510
+ Hr as normalizeBlocks,
3511
+ Fe as normalizeEmail,
3447
3512
  S as normalizeExample,
3448
- xa as notificationPrefKey,
3449
- ir as novelty,
3450
- Ia as operationDescriptor,
3451
- Ta as operationsForKind,
3452
- vi as parkMarksById,
3453
- ao as parseActingIdentity,
3454
- jo as parseItemKey,
3455
- Fn as pathToRegex,
3456
- ui as periodsInRange,
3457
- os as phoneSuffix,
3458
- xi as pickMailHeaders,
3459
- Ye as plainTextFromMarkdown,
3460
- Qt as playbookActor,
3461
- Eo as procedureOf,
3462
- Wo as projectDossierKeys,
3463
- Vn as publicBasePathFor,
3464
- za as publicRoutePatterns,
3465
- B as readPath,
3513
+ ja as notificationPrefKey,
3514
+ sr as novelty,
3515
+ Na as operationDescriptor,
3516
+ xa as operationsForKind,
3517
+ Di as parkMarksById,
3518
+ uo as parseActingIdentity,
3519
+ Yo as parseItemKey,
3520
+ zn as pathToRegex,
3521
+ mi as periodsInRange,
3522
+ fs as phoneSuffix,
3523
+ Li as pickMailHeaders,
3524
+ qe as plainTextFromMarkdown,
3525
+ en as playbookActor,
3526
+ wo as procedureOf,
3527
+ Zo as projectDossierKeys,
3528
+ Yn as publicBasePathFor,
3529
+ ts as publicRoutePatterns,
3530
+ j as readPath,
3466
3531
  ce as readStepError,
3467
- Kt as recencyOf,
3468
- tn as refKey,
3469
- fr as registrableDomain,
3470
- yn as rejectExampleCandidate,
3471
- no as relatedByDefault,
3472
- Rn as resolveAccountCapabilities,
3473
- H as resolveActivityText,
3474
- xn as resolveChannelIntents,
3532
+ jt as recencyOf,
3533
+ nn as refKey,
3534
+ hr as registrableDomain,
3535
+ An as rejectExampleCandidate,
3536
+ ao as relatedByDefault,
3537
+ Ln as resolveAccountCapabilities,
3538
+ B as resolveActivityText,
3539
+ $n as resolveChannelIntents,
3475
3540
  It as resolveSignature,
3476
- La as resolveWorkMode,
3477
- ja as resourceKindOf,
3478
- so as runActor,
3479
- wo as runInteractionId,
3480
- yt as sanitizeInline,
3481
- qn as sanitizeTranscript,
3482
- Li as scoreInteraction,
3483
- Bo as scoreWorkItem,
3484
- Xi as selectLenses,
3485
- sa as sessionsHoldCannotReach,
3486
- aa as sessionsToHold,
3487
- Ce as shareKeyForTeam,
3541
+ Fa as resolveWorkMode,
3542
+ qa as resourceKindOf,
3543
+ po as runActor,
3544
+ Oo as runInteractionId,
3545
+ bt as sanitizeInline,
3546
+ Qn as sanitizeTranscript,
3547
+ ji as scoreInteraction,
3548
+ Vo as scoreWorkItem,
3549
+ Zi as selectLenses,
3550
+ ma as sessionsHoldCannotReach,
3551
+ fa as sessionsToHold,
3552
+ Oe as shareKeyForTeam,
3488
3553
  ke as shareKeyForUser,
3489
- bi as shareKeysForViewer,
3490
- Pa as shouldRunAudioPipeline,
3491
- Di as slaHoursByInbox,
3492
- jt as slaHoursFor,
3493
- wn as sortStatuses,
3494
- Nn as sourceKey,
3495
- Vo as statusIn,
3496
- Ao as stepsOf,
3497
- qe as stripHtml,
3498
- Io as subjectKeyOf,
3499
- $e as subjectOf,
3500
- ia as subjectRef,
3501
- Go as suggestProjectKey,
3502
- po as targetById,
3503
- uo as targetForActivityType,
3504
- Zt as toActingIdentity,
3554
+ _i as shareKeysForViewer,
3555
+ Wa as shouldRunAudioPipeline,
3556
+ Ui as slaHoursByInbox,
3557
+ Gt as slaHoursFor,
3558
+ kn as sortStatuses,
3559
+ Dn as sourceKey,
3560
+ Qo as statusIn,
3561
+ To as stepsOf,
3562
+ Je as stripHtml,
3563
+ ko as subjectKeyOf,
3564
+ Le as subjectOf,
3565
+ da as subjectRef,
3566
+ qo as suggestProjectKey,
3567
+ vo as summarizeReactions,
3568
+ ho as targetById,
3569
+ go as targetForActivityType,
3570
+ Qt as toActingIdentity,
3505
3571
  ge as toE164,
3506
- Ai as toolSourceKinds,
3507
- bn as topicOfferedForTeam,
3508
- $o as topicsForTeam,
3509
- hn as truncateExample,
3510
- Yo as uniqueWorkStatusKey,
3511
- vo as uniqueWorkTypeKey,
3512
- dt as usageMetricId,
3513
- di as usageMetrics,
3514
- qo as validateStatuses,
3515
- lo as valueAtPath,
3516
- j as waitHoursOf,
3517
- Ti as wakesAssignment,
3518
- _n as workItemScopeKey,
3519
- Le as workProjectScopeKey,
3520
- Mn as workStatusKey,
3521
- pn as workTypeKey
3572
+ Ti as toolSourceKinds,
3573
+ En as topicOfferedForTeam,
3574
+ Bo as topicsForTeam,
3575
+ bn as truncateExample,
3576
+ na as uniqueWorkStatusKey,
3577
+ Lo as uniqueWorkTypeKey,
3578
+ pt as usageMetricId,
3579
+ gi as usageMetrics,
3580
+ ra as validateStatuses,
3581
+ mo as valueAtPath,
3582
+ H as waitHoursOf,
3583
+ Ci as wakesAssignment,
3584
+ zo as workActivityScopeKey,
3585
+ In as workItemScopeKey,
3586
+ Pe as workProjectScopeKey,
3587
+ On as workStatusKey,
3588
+ mn as workTypeKey
3522
3589
  };