@opencxh/domain 1.231.0 → 1.232.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 hi = 10, yi = 10, bi = 10, Ai = 5, ht = /* @__PURE__ */ new Set([
1
+ const Ci = 10, vi = 10, Ni = 10, xi = 5, _t = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function j(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function Ei(e, t = () => {
17
+ function Ri(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,7 +25,7 @@ function Ei(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const i = r;
28
- if (!ht.has(i.type)) {
28
+ if (!_t.has(i.type)) {
29
29
  t(`unknown block type ${String(i.type)}`);
30
30
  continue;
31
31
  }
@@ -69,17 +69,17 @@ function Ei(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const yt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, bt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
- function At(e) {
72
+ const Tt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, wt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
+ function It(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(yt, "$2"), t = t.replace(bt, "$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(Tt, "$2"), t = t.replace(wt, "$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 Et(e) {
82
+ function Mt(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
85
  function R(e) {
@@ -87,7 +87,7 @@ function R(e) {
87
87
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
88
88
  return `${t}:${n.toString().padStart(2, "0")}`;
89
89
  }
90
- function se(e) {
90
+ function de(e) {
91
91
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
92
92
  }
93
93
  function H(e) {
@@ -96,7 +96,7 @@ function H(e) {
96
96
  function D(e) {
97
97
  return e.map((t) => t.name).join(", ");
98
98
  }
99
- function ce(e) {
99
+ function pe(e) {
100
100
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
101
101
  }
102
102
  const _ = {
@@ -134,7 +134,7 @@ const _ = {
134
134
  channelKind: "voice",
135
135
  icon: "phone",
136
136
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${R(e.payload.duration)})` : ""}`,
137
- timeline: (e) => `Call ended${se(e.payload.duration)}`
137
+ timeline: (e) => `Call ended${de(e.payload.duration)}`
138
138
  },
139
139
  VOICE_CALL_MISSED: {
140
140
  shape: "event",
@@ -216,7 +216,7 @@ const _ = {
216
216
  replyable: !0,
217
217
  carriesText: !0,
218
218
  countsAs: "inbound_message",
219
- snippet: le
219
+ snippet: fe
220
220
  },
221
221
  EMAIL_SENT: {
222
222
  shape: "message",
@@ -226,7 +226,7 @@ const _ = {
226
226
  replyable: !0,
227
227
  carriesText: !0,
228
228
  countsAs: "outbound_message",
229
- snippet: le
229
+ snippet: fe
230
230
  },
231
231
  /* ---- chat ---- */
232
232
  CHAT_MESSAGE_SENT: {
@@ -283,7 +283,7 @@ const _ = {
283
283
  channelKind: "chat",
284
284
  icon: "message-circle",
285
285
  snippet: () => "Gesprek gestart",
286
- timeline: (e) => `${ce(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
286
+ timeline: (e) => `${pe(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
287
287
  joinUrl: (e) => e.payload.joinUrl
288
288
  },
289
289
  CHAT_CALL_ENDED: {
@@ -291,7 +291,7 @@ const _ = {
291
291
  channelKind: "chat",
292
292
  icon: "message-circle",
293
293
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${R(e.payload.duration)})` : ""}`,
294
- timeline: (e) => `${ce(e.payload.callType)} ended${se(e.payload.duration)}`,
294
+ timeline: (e) => `${pe(e.payload.callType)} ended${de(e.payload.duration)}`,
295
295
  joinUrl: (e) => e.payload.joinUrl
296
296
  },
297
297
  CHAT_EVENT: {
@@ -460,63 +460,63 @@ const _ = {
460
460
  timeline: (e, t) => `Status changed by ${t}`
461
461
  }
462
462
  };
463
- function le(e) {
464
- const t = e.payload, n = At(t.bodyText).trim() || t.bodySnippet?.trim() || Et(t.body ?? "");
463
+ function fe(e) {
464
+ const t = e.payload, n = It(t.bodyText).trim() || t.bodySnippet?.trim() || Mt(t.body ?? "");
465
465
  return t.subject ? `${t.subject} — ${n}` : n;
466
466
  }
467
467
  function b(e) {
468
468
  return _[e];
469
469
  }
470
- function Si(e) {
470
+ function Di(e) {
471
471
  return b(e)?.icon ?? "circle";
472
472
  }
473
- function _i(e) {
473
+ function $i(e) {
474
474
  return b(e)?.channelKind;
475
475
  }
476
- function Be(e) {
476
+ function We(e) {
477
477
  return e === "message" || e === "note";
478
478
  }
479
- function Ti(e) {
480
- return Be(b(e)?.shape);
479
+ function Li(e) {
480
+ return We(b(e)?.shape);
481
481
  }
482
- function je(e) {
482
+ function Ve(e) {
483
483
  return e === "note";
484
484
  }
485
- function wi(e) {
486
- return je(b(e)?.shape);
485
+ function Pi(e) {
486
+ return Ve(b(e)?.shape);
487
487
  }
488
- function Ii(e) {
488
+ function Ui(e) {
489
489
  return b(e)?.replyable === !0;
490
490
  }
491
- function Mi(e) {
491
+ function Ki(e) {
492
492
  return b(e)?.carriesText === !0;
493
493
  }
494
- function St(e) {
494
+ function kt(e) {
495
495
  return b(e)?.countsAs;
496
496
  }
497
- function Oi(e) {
497
+ function Fi(e) {
498
498
  return b(e)?.playbookAuthored === !0;
499
499
  }
500
- function Ci(e) {
500
+ function Bi(e) {
501
501
  return b(e)?.connected === !0;
502
502
  }
503
- function ki(e) {
503
+ function ji(e) {
504
504
  const t = b(e);
505
505
  return t?.shape === "artifact" && t?.carriesText === !0;
506
506
  }
507
- function _t(e) {
507
+ function Ot(e) {
508
508
  const t = b(e.type)?.snippet;
509
509
  return t ? t(e) : "";
510
510
  }
511
- function vi(e, t) {
511
+ function Hi(e, t) {
512
512
  const n = b(e.type)?.timeline;
513
513
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
514
514
  }
515
- function xi(e) {
515
+ function Gi(e) {
516
516
  const t = b(e.type)?.joinUrl;
517
517
  return t ? t(e) : void 0;
518
518
  }
519
- function X(e, t) {
519
+ function Y(e, t) {
520
520
  let n = e;
521
521
  for (const r of t.split(".")) {
522
522
  if (n == null || typeof n != "object") return "";
@@ -524,43 +524,43 @@ function X(e, t) {
524
524
  }
525
525
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
526
526
  }
527
- function Y(e, t, n) {
527
+ function q(e, t, n) {
528
528
  if (e === void 0) return null;
529
529
  if (typeof e == "string") return e || null;
530
530
  if ("value" in e)
531
- return X(t, e.value) || null;
531
+ return Y(t, e.value) || null;
532
532
  const r = {};
533
533
  for (const [o, a] of Object.entries(e.params ?? {}))
534
- r[o] = X(t, a);
534
+ r[o] = Y(t, a);
535
535
  const i = n(e.key, r);
536
536
  return i === e.key ? null : i;
537
537
  }
538
- function Tt(e, t) {
538
+ function Ct(e, t) {
539
539
  if (!e || typeof e == "string" || "value" in e) return null;
540
540
  const n = {};
541
541
  for (const [r, i] of Object.entries(e.params ?? {}))
542
- n[r] = X(t, i);
542
+ n[r] = Y(t, i);
543
543
  return { key: e.key, params: n };
544
544
  }
545
- const ue = 140;
546
- function wt(e) {
545
+ const me = 140;
546
+ function vt(e) {
547
547
  const t = e.trim();
548
- return t.length <= ue ? t : `${t.slice(0, ue - 1).trimEnd()}…`;
548
+ return t.length <= me ? t : `${t.slice(0, me - 1).trimEnd()}…`;
549
549
  }
550
- function Ni(e, t) {
551
- const n = Tt(t?.text, e), r = t ? Y(t.text, e, (i) => i) : null;
550
+ function Wi(e, t) {
551
+ const n = Ct(t?.text, e), r = t ? q(t.text, e, (i) => i) : null;
552
552
  return {
553
553
  activityId: e.id,
554
554
  type: e.type,
555
- snippet: wt(r ?? _t(e)),
555
+ snippet: vt(r ?? Ot(e)),
556
556
  authorName: e.author?.name ?? "",
557
557
  direction: e.direction,
558
558
  createdAt: e.createdAt ?? Date.now(),
559
559
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
560
560
  };
561
561
  }
562
- const It = (e) => e;
563
- function de(e) {
562
+ const Nt = (e) => e;
563
+ function ge(e) {
564
564
  const t = _[e];
565
565
  return {
566
566
  type: e,
@@ -576,7 +576,7 @@ function de(e) {
576
576
  displayNameKey: t.displayNameKey
577
577
  };
578
578
  }
579
- function pe(e) {
579
+ function he(e) {
580
580
  return {
581
581
  type: e.type,
582
582
  shape: e.shape,
@@ -591,21 +591,21 @@ function pe(e) {
591
591
  displayNameKey: e.displayNameKey
592
592
  };
593
593
  }
594
- class Mt {
595
- constructor(t = [], n = It) {
594
+ class xt {
595
+ constructor(t = [], n = Nt) {
596
596
  this.translate = n;
597
597
  for (const r of t)
598
598
  r?.type && (r.type in _ || this.declared.has(r.type) || this.declared.set(r.type, r));
599
599
  }
600
600
  declared = /* @__PURE__ */ new Map();
601
601
  get(t) {
602
- if (t in _) return de(t);
602
+ if (t in _) return ge(t);
603
603
  const n = this.declared.get(t);
604
- return n ? pe(n) : void 0;
604
+ return n ? he(n) : void 0;
605
605
  }
606
606
  /** Everything that may be offered as a trigger, built-in and declared. */
607
607
  triggerable() {
608
- const t = Object.keys(_).filter((r) => _[r].triggerable).map(de), n = [...this.declared.values()].map(pe).filter((r) => r.triggerable);
608
+ const t = Object.keys(_).filter((r) => _[r].triggerable).map(ge), n = [...this.declared.values()].map(he).filter((r) => r.triggerable);
609
609
  return [...t, ...n];
610
610
  }
611
611
  /**
@@ -617,14 +617,14 @@ class Mt {
617
617
  const r = _[t.type];
618
618
  if (r?.timeline) return r.timeline(t, n);
619
619
  const i = this.declared.get(t.type);
620
- return Y(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
620
+ return q(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
621
621
  }
622
622
  /** The line for the inbox list. Empty when the type has nothing to show. */
623
623
  snippet(t) {
624
624
  const n = _[t.type];
625
625
  if (n?.snippet) return n.snippet(t);
626
626
  const r = this.declared.get(t.type);
627
- return Y(r?.text, t, this.translate) ?? "";
627
+ return q(r?.text, t, this.translate) ?? "";
628
628
  }
629
629
  /** The descriptor as it arrived; needed to store `text` as a key. */
630
630
  descriptor(t) {
@@ -649,11 +649,11 @@ class Mt {
649
649
  * {@link ResolvedActivityType}.
650
650
  */
651
651
  isMessage(t) {
652
- return Be(this.get(t)?.shape);
652
+ return We(this.get(t)?.shape);
653
653
  }
654
654
  /** Folds into the list under the message it answers. See {@link isNoteShape}. */
655
655
  nestsUnderParent(t) {
656
- return je(this.get(t)?.shape);
656
+ return Ve(this.get(t)?.shape);
657
657
  }
658
658
  /** Can a person reply to this? Notes cannot — those go nowhere. */
659
659
  isReplyable(t) {
@@ -681,23 +681,23 @@ class Mt {
681
681
  return this.translate;
682
682
  }
683
683
  }
684
- const Ri = new Mt();
685
- function Di(e, t, n = []) {
684
+ const Vi = new xt();
685
+ function zi(e, t, n = []) {
686
686
  const r = e.createdAt;
687
687
  if (!r) return [];
688
688
  const i = new Set(n);
689
689
  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);
690
690
  }
691
- function Ot(e) {
691
+ function Rt(e) {
692
692
  return e.createdAt ?? 0;
693
693
  }
694
- function $i(e) {
694
+ function Xi(e) {
695
695
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
696
696
  }
697
- function Li(e) {
697
+ function Yi(e) {
698
698
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
699
699
  }
700
- const He = [
700
+ const ze = [
701
701
  {
702
702
  id: "openai",
703
703
  attachmentKinds: ["image", "pdf"],
@@ -788,44 +788,44 @@ const He = [
788
788
  }
789
789
  ];
790
790
  function K(e) {
791
- return He.find((t) => t.id === e);
791
+ return ze.find((t) => t.id === e);
792
792
  }
793
- function Pi(e) {
793
+ function qi(e) {
794
794
  return K(e)?.label ?? e;
795
795
  }
796
- function Ui(e, t = "gpt-5-mini") {
796
+ function Ji(e, t = "gpt-5-mini") {
797
797
  return K(e)?.defaultModel ?? t;
798
798
  }
799
- function Ki(e) {
800
- return He.filter((t) => t.capabilities.includes(e));
799
+ function Zi(e) {
800
+ return ze.filter((t) => t.capabilities.includes(e));
801
801
  }
802
- function Bi(e) {
802
+ function Qi(e) {
803
803
  const t = K(e);
804
804
  return !!t && !t.baseUrl;
805
805
  }
806
- function ji(e, t) {
806
+ function eo(e, t) {
807
807
  return t === "text" ? !0 : K(e)?.attachmentKinds?.includes(t) === !0;
808
808
  }
809
- function Hi(e, t) {
809
+ function to(e, t) {
810
810
  if (!e.enabled) return "ok";
811
- const n = fe(e.hardLimitNanos), r = fe(e.softLimitNanos);
811
+ const n = ye(e.hardLimitNanos), r = ye(e.softLimitNanos);
812
812
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
813
813
  }
814
- function fe(e) {
814
+ function ye(e) {
815
815
  return typeof e == "number" ? e : void 0;
816
816
  }
817
- function Ct(e, t = "month") {
817
+ function Dt(e, t = "month") {
818
818
  const n = new Date(e);
819
819
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
820
820
  }
821
- function Fi(e, t = "month") {
822
- const n = new Date(Ct(e, t));
821
+ function no(e, t = "month") {
822
+ const n = new Date(Dt(e, t));
823
823
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
824
824
  }
825
- function Gi(e) {
825
+ function ro(e) {
826
826
  return e?.listeningEnabled !== !1;
827
827
  }
828
- const Wi = [
828
+ const io = [
829
829
  { id: "agent", label: "Agent", labelSource: "user" },
830
830
  { id: "team", label: "Team", labelSource: "team" },
831
831
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -835,47 +835,47 @@ const Wi = [
835
835
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
836
836
  { id: "time", label: "Tijd", labelSource: "raw" }
837
837
  ];
838
- function F(e) {
838
+ function G(e) {
839
839
  return e < 10 ? `0${e}` : `${e}`;
840
840
  }
841
- function kt(e, t) {
842
- const n = new Date(e), r = `${n.getUTCFullYear()}-${F(n.getUTCMonth() + 1)}-${F(n.getUTCDate())}`;
843
- return t === "day" ? r : `${r}T${F(n.getUTCHours())}`;
841
+ function $t(e, t) {
842
+ const n = new Date(e), r = `${n.getUTCFullYear()}-${G(n.getUTCMonth() + 1)}-${G(n.getUTCDate())}`;
843
+ return t === "day" ? r : `${r}T${G(n.getUTCHours())}`;
844
844
  }
845
- function vt(e, t) {
845
+ function Lt(e, t) {
846
846
  const n = new Date(e);
847
847
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
848
848
  }
849
- const xt = 36e5, Nt = 864e5;
850
- function Vi(e, t, n) {
851
- const r = n === "hour" ? xt : Nt, i = [];
852
- for (let o = vt(e, n); o <= t; o += r)
853
- i.push(kt(o, n));
849
+ const Pt = 36e5, Ut = 864e5;
850
+ function oo(e, t, n) {
851
+ const r = n === "hour" ? Pt : Ut, i = [];
852
+ for (let o = Lt(e, n); o <= t; o += r)
853
+ i.push($t(o, n));
854
854
  return i;
855
855
  }
856
- const Rt = [
856
+ const Kt = [
857
857
  { id: "resource", label: "Resource", labelSource: "raw" },
858
858
  { id: "origin", label: "Herkomst", labelSource: "raw" }
859
- ], Dt = Rt.map((e) => e.id);
860
- function $t(e, t) {
859
+ ], Ft = Kt.map((e) => e.id);
860
+ function Bt(e, t) {
861
861
  return `${e}.usage.${t}`;
862
862
  }
863
- function zi(e, t) {
863
+ function ao(e, t) {
864
864
  return t.map((n) => ({
865
- id: $t(e, n.unit),
865
+ id: Bt(e, n.unit),
866
866
  label: n.label,
867
867
  category: "Verbruik",
868
868
  valueType: n.valueType ?? "count",
869
869
  aggregation: "sum",
870
870
  supportedDimensions: [
871
871
  "provider",
872
- ...Dt,
872
+ ...Ft,
873
873
  ...n.extraDimensions ?? [],
874
874
  "time"
875
875
  ]
876
876
  }));
877
877
  }
878
- const Fe = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), me = 200, ge = 100, he = 200, ye = 12, be = 4, Ge = 4e3, G = 500, Xi = 256 * 1024, Lt = /* @__PURE__ */ new Set([
878
+ const Xe = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), be = 200, Ae = 100, Ee = 200, Se = 12, _e = 4, Ye = 4e3, W = 500, so = 256 * 1024, jt = /* @__PURE__ */ new Set([
879
879
  "heading",
880
880
  "paragraph",
881
881
  "list",
@@ -885,15 +885,15 @@ const Fe = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
885
885
  "table",
886
886
  "kpi",
887
887
  "callout"
888
- ]), Pt = ["http:", "https:", "mailto:", "tel:"], Ut = /^[a-z][a-z0-9+.-]*:/i;
889
- function We(e) {
888
+ ]), Ht = ["http:", "https:", "mailto:", "tel:"], Gt = /^[a-z][a-z0-9+.-]*:/i;
889
+ function qe(e) {
890
890
  const t = e.trim().replace(/^<|>$/g, "");
891
891
  if (!t) return !1;
892
- const n = Ut.exec(t)?.[0];
893
- return n ? Pt.includes(n.toLowerCase()) : !t.startsWith("//");
892
+ const n = Gt.exec(t)?.[0];
893
+ return n ? Ht.includes(n.toLowerCase()) : !t.startsWith("//");
894
894
  }
895
- const Kt = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
896
- function Bt(e) {
895
+ const Wt = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
896
+ function Vt(e) {
897
897
  let t = "", n = 0;
898
898
  for (; n < e.length; ) {
899
899
  const r = e[n] === "!" && e[n + 1] === "[";
@@ -901,22 +901,22 @@ function Bt(e) {
901
901
  t += e[n], n += 1;
902
902
  continue;
903
903
  }
904
- const i = n + (r ? 2 : 1), o = Ae(e, i, "[", "]");
904
+ const i = n + (r ? 2 : 1), o = Te(e, i, "[", "]");
905
905
  if (o < 0 || e[o + 1] !== "(") {
906
906
  t += e[n], n += 1;
907
907
  continue;
908
908
  }
909
- const a = Ae(e, o + 2, "(", ")");
909
+ const a = Te(e, o + 2, "(", ")");
910
910
  if (a < 0) {
911
911
  t += e[n], n += 1;
912
912
  continue;
913
913
  }
914
914
  const s = e.slice(i, o), c = e.slice(o + 2, a).trim().split(/\s+/)[0] ?? "";
915
- t += r || !We(c) ? s : e.slice(n, a + 1), n = a + 1;
915
+ t += r || !qe(c) ? s : e.slice(n, a + 1), n = a + 1;
916
916
  }
917
917
  return t;
918
918
  }
919
- function Ae(e, t, n, r) {
919
+ function Te(e, t, n, r) {
920
920
  let i = 1;
921
921
  for (let o = t; o < e.length; o += 1) {
922
922
  if (e[o] === "\\") {
@@ -929,33 +929,33 @@ function Ae(e, t, n, r) {
929
929
  }
930
930
  return -1;
931
931
  }
932
- function jt(e) {
933
- return Bt(e).replace(
934
- Kt,
935
- (t, n, r) => We(r) ? t : ""
932
+ function zt(e) {
933
+ return Vt(e).replace(
934
+ Wt,
935
+ (t, n, r) => qe(r) ? t : ""
936
936
  );
937
937
  }
938
- function A(e, t = Ge) {
939
- return typeof e == "string" ? jt(e).slice(0, t) : "";
938
+ function A(e, t = Ye) {
939
+ return typeof e == "string" ? zt(e).slice(0, t) : "";
940
940
  }
941
- function Ht(e, t = Ge) {
941
+ function Xt(e, t = Ye) {
942
942
  return typeof e == "string" ? e.slice(0, t) : "";
943
943
  }
944
- function Ft(e, t = "info") {
945
- return typeof e == "string" && Fe.has(e) ? e : t;
944
+ function Yt(e, t = "info") {
945
+ return typeof e == "string" && Xe.has(e) ? e : t;
946
946
  }
947
- function Yi(e, t = () => {
947
+ function co(e, t = () => {
948
948
  }) {
949
949
  if (!Array.isArray(e)) return [];
950
950
  const n = [];
951
951
  for (const r of e) {
952
- if (n.length >= me) {
953
- t(`more than ${me} blocks; the rest was dropped`);
952
+ if (n.length >= be) {
953
+ t(`more than ${be} blocks; the rest was dropped`);
954
954
  break;
955
955
  }
956
956
  if (!r || typeof r != "object") continue;
957
957
  const i = r;
958
- if (!Lt.has(i.type)) {
958
+ if (!jt.has(i.type)) {
959
959
  t(`unknown block type ${String(i.type)}`);
960
960
  continue;
961
961
  }
@@ -990,7 +990,7 @@ function Yi(e, t = () => {
990
990
  break;
991
991
  }
992
992
  case "code": {
993
- const a = Ht(i.text);
993
+ const a = Xt(i.text);
994
994
  if (!a) {
995
995
  t("a code block without text");
996
996
  continue;
@@ -1005,8 +1005,8 @@ function Yi(e, t = () => {
1005
1005
  case "list": {
1006
1006
  const a = Array.isArray(i.items) ? i.items : [], s = [];
1007
1007
  for (const m of a) {
1008
- if (s.length >= ge) {
1009
- t(`more than ${ge} list items`);
1008
+ if (s.length >= Ae) {
1009
+ t(`more than ${Ae} list items`);
1010
1010
  break;
1011
1011
  }
1012
1012
  const h = A(m?.text);
@@ -1025,11 +1025,11 @@ function Yi(e, t = () => {
1025
1025
  case "table": {
1026
1026
  const a = Array.isArray(i.columns) ? i.columns : [], s = [];
1027
1027
  for (const y of a) {
1028
- if (s.length >= ye) {
1029
- t(`more than ${ye} table columns`);
1028
+ if (s.length >= Se) {
1029
+ t(`more than ${Se} table columns`);
1030
1030
  break;
1031
1031
  }
1032
- const T = A(y?.label, G), M = y?.align === "right" ? "right" : void 0;
1032
+ const T = A(y?.label, W), M = y?.align === "right" ? "right" : void 0;
1033
1033
  s.push(M ? { label: T, align: M } : { label: T });
1034
1034
  }
1035
1035
  if (s.length === 0) {
@@ -1038,14 +1038,14 @@ function Yi(e, t = () => {
1038
1038
  }
1039
1039
  const c = Array.isArray(i.rows) ? i.rows : [], m = [];
1040
1040
  for (const y of c) {
1041
- if (m.length >= he) {
1042
- t(`more than ${he} table rows`);
1041
+ if (m.length >= Ee) {
1042
+ t(`more than ${Ee} table rows`);
1043
1043
  break;
1044
1044
  }
1045
1045
  const T = Array.isArray(y) ? y : [];
1046
- m.push(s.map((M, B) => A(T[B], G)));
1046
+ m.push(s.map((M, B) => A(T[B], W)));
1047
1047
  }
1048
- const h = A(i.caption, G);
1048
+ const h = A(i.caption, W);
1049
1049
  n.push({
1050
1050
  ...o,
1051
1051
  type: "table",
@@ -1058,15 +1058,15 @@ function Yi(e, t = () => {
1058
1058
  case "kpi": {
1059
1059
  const a = Array.isArray(i.items) ? i.items : [], s = [];
1060
1060
  for (const c of a) {
1061
- if (s.length >= be) {
1062
- t(`more than ${be} kpi items`);
1061
+ if (s.length >= _e) {
1062
+ t(`more than ${_e} kpi items`);
1063
1063
  break;
1064
1064
  }
1065
1065
  const m = A(c?.value, 40), h = A(c?.label, 80);
1066
1066
  if (!m || !h) continue;
1067
1067
  const y = c?.tone;
1068
1068
  s.push(
1069
- typeof y == "string" && Fe.has(y) ? { value: m, label: h, tone: y } : { value: m, label: h }
1069
+ typeof y == "string" && Xe.has(y) ? { value: m, label: h, tone: y } : { value: m, label: h }
1070
1070
  );
1071
1071
  }
1072
1072
  if (s.length === 0) {
@@ -1086,7 +1086,7 @@ function Yi(e, t = () => {
1086
1086
  n.push({
1087
1087
  ...o,
1088
1088
  type: "callout",
1089
- tone: Ft(i.tone),
1089
+ tone: Yt(i.tone),
1090
1090
  ...s ? { title: s } : {},
1091
1091
  text: a
1092
1092
  });
@@ -1096,28 +1096,28 @@ function Yi(e, t = () => {
1096
1096
  }
1097
1097
  return n;
1098
1098
  }
1099
- function qi(e) {
1099
+ function lo(e) {
1100
1100
  return JSON.stringify(e).length;
1101
1101
  }
1102
- function Ji(e) {
1102
+ function uo(e) {
1103
1103
  return {
1104
1104
  blocks: e.length,
1105
1105
  types: e.map((t) => t.type),
1106
1106
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
1107
1107
  };
1108
1108
  }
1109
- function Ee(e) {
1109
+ function we(e) {
1110
1110
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1111
1111
  }
1112
- function Se(e, t, n) {
1112
+ function Ie(e, t, n) {
1113
1113
  const r = e.map((i, o) => n?.[o] === "right" ? "---:" : "---");
1114
1114
  return [
1115
- `| ${e.map(Ee).join(" | ")} |`,
1115
+ `| ${e.map(we).join(" | ")} |`,
1116
1116
  `| ${r.join(" | ")} |`,
1117
- ...t.map((i) => `| ${i.map(Ee).join(" | ")} |`)
1117
+ ...t.map((i) => `| ${i.map(we).join(" | ")} |`)
1118
1118
  ];
1119
1119
  }
1120
- function Gt(e) {
1120
+ function qt(e) {
1121
1121
  switch (e.type) {
1122
1122
  case "heading":
1123
1123
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -1135,7 +1135,7 @@ function Gt(e) {
1135
1135
  return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
1136
1136
  });
1137
1137
  case "table": {
1138
- const t = Se(
1138
+ const t = Ie(
1139
1139
  e.columns.map((n) => n.label),
1140
1140
  e.rows,
1141
1141
  e.columns.map((n) => n.align ?? "left")
@@ -1143,7 +1143,7 @@ function Gt(e) {
1143
1143
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
1144
1144
  }
1145
1145
  case "kpi":
1146
- return Se(
1146
+ return Ie(
1147
1147
  e.items.map((t) => t.value),
1148
1148
  [e.items.map((t) => t.label)]
1149
1149
  );
@@ -1151,11 +1151,11 @@ function Gt(e) {
1151
1151
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1152
1152
  }
1153
1153
  }
1154
- function Zi(e, t) {
1154
+ function po(e, t) {
1155
1155
  const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
1156
1156
  t && !r && n.push(`# ${t}`);
1157
1157
  for (const i of e) {
1158
- const o = Gt(i);
1158
+ const o = qt(i);
1159
1159
  o.length > 0 && n.push(o.join(`
1160
1160
  `));
1161
1161
  }
@@ -1164,45 +1164,45 @@ function Zi(e, t) {
1164
1164
  `)}
1165
1165
  `;
1166
1166
  }
1167
- const Ve = (e) => `user:${e}`, ze = (e) => `team:${e}`;
1168
- function Qi(e) {
1167
+ const Je = (e) => `user:${e}`, Ze = (e) => `team:${e}`;
1168
+ function fo(e) {
1169
1169
  const t = /* @__PURE__ */ new Set();
1170
1170
  for (const n of e ?? [])
1171
- n?.id && (n.kind === "user" && t.add(Ve(n.id)), n.kind === "team" && t.add(ze(n.id)));
1171
+ n?.id && (n.kind === "user" && t.add(Je(n.id)), n.kind === "team" && t.add(Ze(n.id)));
1172
1172
  return [...t].sort();
1173
1173
  }
1174
- function eo(e, t) {
1175
- return [Ve(e), ...t.map(ze)];
1174
+ function mo(e, t) {
1175
+ return [Je(e), ...t.map(Ze)];
1176
1176
  }
1177
- function to(e) {
1177
+ function go(e) {
1178
1178
  const t = /* @__PURE__ */ new Set();
1179
1179
  for (const n of e ?? [])
1180
1180
  n?.kind && t.add(n.kind);
1181
1181
  return [...t];
1182
1182
  }
1183
- const Wt = ["done", "escalated"], no = ["open", "waiting"];
1184
- function ro(e) {
1185
- return Wt.includes(e);
1183
+ const Jt = ["done", "escalated"], ho = ["open", "waiting"];
1184
+ function yo(e) {
1185
+ return Jt.includes(e);
1186
1186
  }
1187
- const Vt = "assignment";
1188
- function io(e) {
1189
- return `${Vt}:${e}`;
1187
+ const Zt = "assignment";
1188
+ function bo(e) {
1189
+ return `${Zt}:${e}`;
1190
1190
  }
1191
- function oo(e, t, n, r) {
1191
+ function Ao(e, t, n, r) {
1192
1192
  if (e.direction === "inbound") return !0;
1193
1193
  if (e.author?.type === "user" && e.author.id === t) return !1;
1194
1194
  const i = e.payload?.mentions;
1195
1195
  return Array.isArray(i) && i.includes(t) || r && r === t ? !0 : n === "reply";
1196
1196
  }
1197
- function ao(e) {
1197
+ function Eo(e) {
1198
1198
  const { targetAuthorId: t, reactorId: n, agentId: r, on: i } = e;
1199
1199
  return !i || !t || t !== r ? !1 : n !== r;
1200
1200
  }
1201
- function so(e) {
1201
+ function So(e) {
1202
1202
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1203
1203
  }
1204
- const zt = 12;
1205
- function co(e, t, n = zt) {
1204
+ const Qt = 12;
1205
+ function _o(e, t, n = Qt) {
1206
1206
  const r = t + 1;
1207
1207
  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 ? {
1208
1208
  status: "escalated",
@@ -1216,39 +1216,39 @@ function co(e, t, n = zt) {
1216
1216
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1217
1217
  };
1218
1218
  }
1219
- const lo = /* @__PURE__ */ new Set(["mail", "message"]);
1220
- function Xt(e, t) {
1219
+ const To = /* @__PURE__ */ new Set(["mail", "message"]);
1220
+ function en(e, t) {
1221
1221
  const n = e.settings?.signatures?.[t];
1222
1222
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1223
1223
  }
1224
- function uo(e, t, n, r = "html") {
1224
+ function wo(e, t, n, r = "html") {
1225
1225
  if (!e) return n;
1226
- const i = Xt(e, t);
1226
+ const i = en(e, t);
1227
1227
  return i ? `${n}${r === "text" ? `
1228
1228
 
1229
1229
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1230
1230
  }
1231
- function po(e) {
1231
+ function Io(e) {
1232
1232
  return e.endpoints ?? [];
1233
1233
  }
1234
- const Yt = 36e5, qt = 864e5, w = -1 / 0, fo = (e) => e.score > w, P = {
1234
+ const tn = 36e5, nn = 864e5, w = -1 / 0, Mo = (e) => e.score > w, P = {
1235
1235
  urgent: 40,
1236
1236
  high: 25,
1237
1237
  normal: 10,
1238
1238
  low: 0
1239
1239
  };
1240
- function mo(e) {
1240
+ function ko(e) {
1241
1241
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1242
1242
  }
1243
- const Jt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Xe = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1244
- function Zt(e, t) {
1245
- return !!(e && Jt.test(e) || t && Xe.test(t));
1243
+ const rn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Qe = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1244
+ function on(e, t) {
1245
+ return !!(e && rn.test(e) || t && Qe.test(t));
1246
1246
  }
1247
- const Qt = 3, en = 600;
1248
- function go(e, t) {
1249
- return e >= Qt || t >= en;
1247
+ const an = 3, sn = 600;
1248
+ function Oo(e, t) {
1249
+ return e >= an || t >= sn;
1250
1250
  }
1251
- const tn = [
1251
+ const cn = [
1252
1252
  "list-unsubscribe",
1253
1253
  "list-unsubscribe-post",
1254
1254
  "list-id",
@@ -1258,93 +1258,93 @@ const tn = [
1258
1258
  "feedback-id",
1259
1259
  "x-mailer"
1260
1260
  ];
1261
- function ho(e) {
1261
+ function Co(e) {
1262
1262
  const t = {};
1263
1263
  for (const n of e) {
1264
1264
  const r = n.name?.toLowerCase();
1265
- r && n.value !== void 0 && tn.includes(r) && (t[r] = n.value);
1265
+ r && n.value !== void 0 && cn.includes(r) && (t[r] = n.value);
1266
1266
  }
1267
1267
  return t;
1268
1268
  }
1269
- const nn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, rn = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1270
- function yo(e) {
1269
+ const ln = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, un = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1270
+ function vo(e) {
1271
1271
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1272
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && nn.test(n))
1272
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && ln.test(n))
1273
1273
  return "automated";
1274
1274
  const i = t.precedence?.toLowerCase();
1275
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || i === "bulk" || i === "list" || e.body && Xe.test(e.body) || n && rn.test(n))
1275
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || i === "bulk" || i === "list" || e.body && Qe.test(e.body) || n && un.test(n))
1276
1276
  return "marketing";
1277
1277
  }
1278
- function on(e, t) {
1278
+ function dn(e, t) {
1279
1279
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1280
1280
  }
1281
- const an = ["open"], sn = 1e3, cn = {
1281
+ const pn = ["open"], fn = 1e3, mn = {
1282
1282
  urgent: 1,
1283
1283
  high: 4,
1284
1284
  normal: 8,
1285
1285
  low: 24
1286
- }, ln = 72;
1287
- function un(e) {
1288
- return e.lastActivityAt ?? (e.createdAt ? new Date(Ot(e)).getTime() : 0);
1286
+ }, gn = 72;
1287
+ function hn(e) {
1288
+ return e.lastActivityAt ?? (e.createdAt ? new Date(Rt(e)).getTime() : 0);
1289
1289
  }
1290
- function dn(e, t) {
1291
- return pn(t.remindersById?.[e.id], e, t.now);
1290
+ function yn(e, t) {
1291
+ return bn(t.remindersById?.[e.id], e, t.now);
1292
1292
  }
1293
- function pn(e, t, n) {
1293
+ function bn(e, t, n) {
1294
1294
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1295
1295
  }
1296
- const Ye = (e) => St(e) === "outbound_message", qe = (e) => an.includes(e);
1297
- function te(e, t) {
1298
- return Math.max(0, (t - un(e)) / Yt);
1296
+ const et = (e) => kt(e) === "outbound_message", tt = (e) => pn.includes(e);
1297
+ function re(e, t) {
1298
+ return Math.max(0, (t - hn(e)) / tn);
1299
1299
  }
1300
- function fn(e, t) {
1300
+ function An(e, t) {
1301
1301
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1302
- return typeof n == "number" && n > 0 ? n : cn[e.priority ?? "normal"];
1302
+ return typeof n == "number" && n > 0 ? n : mn[e.priority ?? "normal"];
1303
1303
  }
1304
- function bo(e) {
1304
+ function No(e) {
1305
1305
  const t = {};
1306
1306
  for (const n of e)
1307
1307
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1308
1308
  return t;
1309
1309
  }
1310
- function Ao(e, t, n) {
1311
- return !qe(e.status) || e.firstResponseAt ? !1 : te(e, t) > fn(e, n);
1310
+ function xo(e, t, n) {
1311
+ return !tt(e.status) || e.firstResponseAt ? !1 : re(e, t) > An(e, n);
1312
1312
  }
1313
- function mn(e, t) {
1313
+ function En(e, t) {
1314
1314
  const n = e.lastActivityPreview;
1315
- return n?.direction !== "outbound" || !Ye(n.type) ? !1 : te(e, t) < ln;
1315
+ return n?.direction !== "outbound" || !et(n.type) ? !1 : re(e, t) < gn;
1316
1316
  }
1317
- function Eo(e, t) {
1318
- if (!qe(e.status)) return { score: w, reasons: [] };
1317
+ function Ro(e, t) {
1318
+ if (!tt(e.status)) return { score: w, reasons: [] };
1319
1319
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: w, reasons: [] };
1320
- if (mn(e, t.now)) return { score: w, reasons: [] };
1321
- if (dn(e, t)) return { score: w, reasons: [] };
1320
+ if (En(e, t.now)) return { score: w, reasons: [] };
1321
+ if (yn(e, t)) return { score: w, reasons: [] };
1322
1322
  let n = 0;
1323
1323
  const r = [], i = e.priority ?? "normal";
1324
- P[i] > 0 && (n += P[i], r.push(`priority:${i}`)), on(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1325
- const o = te(e, t.now);
1324
+ P[i] > 0 && (n += P[i], r.push(`priority:${i}`)), dn(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1325
+ const o = re(e, t.now);
1326
1326
  if (o > 0) {
1327
1327
  const c = Math.min(o * 2, 30);
1328
1328
  n += c, o >= 1 && r.push(`waiting:${Math.round(o)}h`);
1329
1329
  }
1330
1330
  const a = e.lastActivityPreview;
1331
- return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && Ye(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((c) => c === "marketing" || c === "automated") || Zt(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= sn, r.push("bulk")), { score: n, reasons: r };
1331
+ return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && et(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((c) => c === "marketing" || c === "automated") || on(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= fn, r.push("bulk")), { score: n, reasons: r };
1332
1332
  }
1333
- const So = (e) => !!e.assignedUserId || !!e.assignedInboxId, _o = (e) => e.status === "closed", To = (e) => ({
1333
+ const Do = (e) => !!e.assignedUserId || !!e.assignedInboxId, $o = (e) => e.status === "closed", Lo = (e) => ({
1334
1334
  urgent: 10,
1335
1335
  high: 5,
1336
1336
  normal: 2,
1337
1337
  low: 1
1338
- })[e.priority] || 0, wo = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1339
- function Io(e, t) {
1338
+ })[e.priority] || 0, Po = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1339
+ function Uo(e, t) {
1340
1340
  const n = e.labels ?? [];
1341
1341
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1342
1342
  }
1343
- function Mo(e, t, n) {
1343
+ function Ko(e, t, n) {
1344
1344
  const r = e.translations ?? [];
1345
1345
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1346
1346
  }
1347
- const _e = [
1347
+ const Me = [
1348
1348
  { code: "nl", label: "Nederlands", english: "Dutch" },
1349
1349
  { code: "en", label: "English", english: "English" },
1350
1350
  { code: "de", label: "Deutsch", english: "German" },
@@ -1359,36 +1359,36 @@ const _e = [
1359
1359
  { code: "fi", label: "Suomi", english: "Finnish" },
1360
1360
  { code: "tr", label: "Türkçe", english: "Turkish" }
1361
1361
  ];
1362
- function Je(e) {
1362
+ function nt(e) {
1363
1363
  const t = (e ?? "").toLowerCase();
1364
- return _e.find((n) => n.code === t) ?? _e.find((n) => n.code === t.split("-")[0]);
1364
+ return Me.find((n) => n.code === t) ?? Me.find((n) => n.code === t.split("-")[0]);
1365
1365
  }
1366
- function Oo(e) {
1367
- return Je(e)?.label ?? e;
1366
+ function Fo(e) {
1367
+ return nt(e)?.label ?? e;
1368
1368
  }
1369
- function Co(e) {
1370
- const t = Je(e);
1369
+ function Bo(e) {
1370
+ const t = nt(e);
1371
1371
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1372
1372
  }
1373
- const Ze = 3;
1374
- function gn(e, t) {
1373
+ const rt = 3;
1374
+ function Sn(e, t) {
1375
1375
  const n = /* @__PURE__ */ new Set();
1376
1376
  let r = 1, i = t.get(e)?.parentId;
1377
1377
  for (; i; ) {
1378
- if (n.has(i) || (n.add(i), r++, r > Ze + 1)) return 1 / 0;
1378
+ if (n.has(i) || (n.add(i), r++, r > rt + 1)) return 1 / 0;
1379
1379
  i = t.get(i)?.parentId;
1380
1380
  }
1381
1381
  return r;
1382
1382
  }
1383
- function ko(e, t, n) {
1383
+ function jo(e, t, n) {
1384
1384
  if (!e) return !0;
1385
1385
  if (e === t) return !1;
1386
1386
  const r = new Map(n.map((a) => [a.id, a]));
1387
- if (!r.has(e) || t && hn(e, t, r)) return !1;
1388
- const i = gn(e, r), o = t ? Qe(t, n) : 1;
1389
- return i + o <= Ze;
1387
+ if (!r.has(e) || t && _n(e, t, r)) return !1;
1388
+ const i = Sn(e, r), o = t ? it(t, n) : 1;
1389
+ return i + o <= rt;
1390
1390
  }
1391
- function hn(e, t, n) {
1391
+ function _n(e, t, n) {
1392
1392
  const r = /* @__PURE__ */ new Set();
1393
1393
  let i = n.get(e)?.parentId;
1394
1394
  for (; i; ) {
@@ -1398,44 +1398,44 @@ function hn(e, t, n) {
1398
1398
  }
1399
1399
  return !1;
1400
1400
  }
1401
- function Qe(e, t, n = /* @__PURE__ */ new Set()) {
1401
+ function it(e, t, n = /* @__PURE__ */ new Set()) {
1402
1402
  if (n.has(e)) return 1;
1403
1403
  n.add(e);
1404
1404
  const r = t.filter((i) => i.parentId === e);
1405
- return r.length ? 1 + Math.max(...r.map((i) => Qe(i.id, t, n))) : 1;
1405
+ return r.length ? 1 + Math.max(...r.map((i) => it(i.id, t, n))) : 1;
1406
1406
  }
1407
- const yn = "en";
1408
- function bn(e) {
1409
- return e.defaultLocale || e.locale || yn;
1407
+ const Tn = "en";
1408
+ function wn(e) {
1409
+ return e.defaultLocale || e.locale || Tn;
1410
1410
  }
1411
- function vo(e) {
1411
+ function Ho(e) {
1412
1412
  const t = /* @__PURE__ */ new Set(), n = [];
1413
- for (const r of [bn(e), ...e.locales ?? []])
1413
+ for (const r of [wn(e), ...e.locales ?? []])
1414
1414
  !r || t.has(r) || (t.add(r), n.push(r));
1415
1415
  return n;
1416
1416
  }
1417
- function xo(e, t, n) {
1417
+ function Go(e, t, n) {
1418
1418
  const r = e.translations ?? [];
1419
1419
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1420
1420
  }
1421
- const Te = ["lookup", "condition", "parallel", "for-each"];
1422
- function we(e) {
1421
+ const ke = ["lookup", "condition", "parallel", "for-each"];
1422
+ function Oe(e) {
1423
1423
  for (const t of e) {
1424
- if (!Te.includes(t.type))
1425
- return `staptype "${t.type}" mag niet meelezen (alleen ${Te.join(", ")})`;
1424
+ if (!ke.includes(t.type))
1425
+ return `staptype "${t.type}" mag niet meelezen (alleen ${ke.join(", ")})`;
1426
1426
  if (t.type === "parallel")
1427
1427
  for (const n of t.branches ?? []) {
1428
- const r = we(n);
1428
+ const r = Oe(n);
1429
1429
  if (r) return r;
1430
1430
  }
1431
1431
  if (t.type === "for-each") {
1432
- const n = we(t.body ?? []);
1432
+ const n = Oe(t.body ?? []);
1433
1433
  if (n) return n;
1434
1434
  }
1435
1435
  }
1436
1436
  return null;
1437
1437
  }
1438
- function An(e, t) {
1438
+ function In(e, t) {
1439
1439
  switch (e.kind) {
1440
1440
  case "org":
1441
1441
  return !0;
@@ -1445,23 +1445,23 @@ function An(e, t) {
1445
1445
  return e.userId === t.userId;
1446
1446
  }
1447
1447
  }
1448
- function No(e, t) {
1449
- return e.filter((n) => n.enabled && An(n.ownerScope, t));
1448
+ function Wo(e, t) {
1449
+ return e.filter((n) => n.enabled && In(n.ownerScope, t));
1450
1450
  }
1451
- function Ro(e) {
1451
+ function Vo(e) {
1452
1452
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1453
1453
  }
1454
- function Do(e) {
1454
+ function zo(e) {
1455
1455
  return `mcp__${e}__`;
1456
1456
  }
1457
- const $o = 1e3, Lo = 2e3, Po = 500, Uo = 12e3, Ko = 4e3, En = ["contact", "company", "work_item"];
1458
- function Bo(e) {
1457
+ const Xo = 1e3, Yo = 2e3, qo = 500, Jo = 12e3, Zo = 4e3, Mn = ["contact", "company", "work_item"];
1458
+ function Qo(e) {
1459
1459
  if (!e) return !1;
1460
1460
  const t = e.slice(0, e.indexOf(":"));
1461
- return En.includes(t);
1461
+ return Mn.includes(t);
1462
1462
  }
1463
- const jo = "onboarding-source", Ho = ["support", "billing", "availability", "sales", "onboarding"], Fo = ["keep", "replace"];
1464
- function Sn(e) {
1463
+ const ea = "onboarding-source", ta = ["support", "billing", "availability", "sales", "onboarding"], na = ["keep", "replace"];
1464
+ function kn(e) {
1465
1465
  switch (e.kind) {
1466
1466
  case "user":
1467
1467
  return `user:${e.userId}`;
@@ -1471,7 +1471,7 @@ function Sn(e) {
1471
1471
  return "org";
1472
1472
  }
1473
1473
  }
1474
- function Go(e) {
1474
+ function ra(e) {
1475
1475
  if (typeof e != "string") return;
1476
1476
  const t = e.trim();
1477
1477
  if (t === "org") return { kind: "org" };
@@ -1483,10 +1483,10 @@ function Go(e) {
1483
1483
  if (r === "team") return { kind: "team", teamId: i };
1484
1484
  }
1485
1485
  }
1486
- function _n(e) {
1487
- return Sn(e);
1486
+ function On(e) {
1487
+ return kn(e);
1488
1488
  }
1489
- function Tn(e) {
1489
+ function Cn(e) {
1490
1490
  switch (e.kind) {
1491
1491
  case "personal":
1492
1492
  return { kind: "user", userId: e.userId };
@@ -1496,14 +1496,14 @@ function Tn(e) {
1496
1496
  return { kind: "org" };
1497
1497
  }
1498
1498
  }
1499
- const wn = Tn;
1500
- function Wo(e) {
1501
- return e.agentId ? { kind: "user", userId: e.agentId } : wn(e.ownerScope);
1499
+ const vn = Cn;
1500
+ function ia(e) {
1501
+ return e.agentId ? { kind: "user", userId: e.agentId } : vn(e.ownerScope);
1502
1502
  }
1503
- function Vo(e) {
1504
- return _n(e);
1503
+ function oa(e) {
1504
+ return On(e);
1505
1505
  }
1506
- function zo(e, t) {
1506
+ function aa(e, t) {
1507
1507
  if (!t) return;
1508
1508
  let n = e;
1509
1509
  for (const r of t.split(".")) {
@@ -1512,24 +1512,24 @@ function zo(e, t) {
1512
1512
  }
1513
1513
  return n;
1514
1514
  }
1515
- function Xo(e, t) {
1515
+ function sa(e, t) {
1516
1516
  return e.targets.find((n) => n.activityTypes.includes(t));
1517
1517
  }
1518
- function Yo(e, t) {
1518
+ function ca(e, t) {
1519
1519
  if (t)
1520
1520
  return e.targets.find((n) => n.id === t);
1521
1521
  }
1522
- function In(e) {
1522
+ function Nn(e) {
1523
1523
  return e?.kind === "assignment";
1524
1524
  }
1525
- function qo(e) {
1525
+ function la(e) {
1526
1526
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1527
- return In(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";
1527
+ return Nn(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";
1528
1528
  }
1529
- function Jo(e) {
1529
+ function ua(e) {
1530
1530
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1531
1531
  }
1532
- const Zo = [
1532
+ const da = [
1533
1533
  { name: "text", type: "string" },
1534
1534
  { name: "subject", type: "string" },
1535
1535
  { name: "from", type: "string" },
@@ -1569,7 +1569,7 @@ const Zo = [
1569
1569
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1570
1570
  // the trigger filter runs — like contactId/companyId above.
1571
1571
  { name: "assigneeUserId", type: "string" }
1572
- ], Qo = {
1572
+ ], pa = {
1573
1573
  topics: [
1574
1574
  { name: "topicId", type: "string" },
1575
1575
  { name: "topic", type: "string" },
@@ -1583,58 +1583,58 @@ const Zo = [
1583
1583
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1584
1584
  extract: []
1585
1585
  };
1586
- function Mn(e) {
1586
+ function xn(e) {
1587
1587
  return `${e.type}:${e.id}`;
1588
1588
  }
1589
- const On = "interaction";
1590
- function Cn(e) {
1591
- return e?.type === On ? e.id : void 0;
1589
+ const Rn = "interaction";
1590
+ function Dn(e) {
1591
+ return e?.type === Rn ? e.id : void 0;
1592
1592
  }
1593
- const kn = 64, vn = 8e3;
1594
- function ea(e) {
1593
+ const $n = 64, Ln = 8e3;
1594
+ function fa(e) {
1595
1595
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1596
1596
  if (!(!Number.isFinite(t) || t <= 0))
1597
- return Math.min(Math.max(Math.round(t), kn), vn);
1597
+ return Math.min(Math.max(Math.round(t), $n), Ln);
1598
1598
  }
1599
- const ta = { kind: "workflow", steps: [] };
1600
- function na(e) {
1599
+ const ma = { kind: "workflow", steps: [] };
1600
+ function ga(e) {
1601
1601
  return e?.kind === "workflow" ? e.steps : [];
1602
1602
  }
1603
- function ra(e) {
1603
+ function ha(e) {
1604
1604
  return e?.kind === "procedure" ? e.procedure : void 0;
1605
1605
  }
1606
- function xn(e) {
1606
+ function Pn(e) {
1607
1607
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
1608
1608
  return { total: n, rate: n ? t / n : 0 };
1609
1609
  }
1610
- const Nn = 10, Rn = 0.9;
1611
- function ia(e) {
1612
- const { total: t, rate: n } = xn(e);
1613
- return t >= Nn && n >= Rn;
1610
+ const Un = 10, Kn = 0.9;
1611
+ function ya(e) {
1612
+ const { total: t, rate: n } = Pn(e);
1613
+ return t >= Un && n >= Kn;
1614
1614
  }
1615
- const Dn = ["done", "escalated", "failed", "stopped"];
1616
- function oa(e) {
1617
- return Dn.includes(e);
1615
+ const Fn = ["done", "escalated", "failed", "stopped"];
1616
+ function ba(e) {
1617
+ return Fn.includes(e);
1618
1618
  }
1619
- function $n(e) {
1619
+ function Bn(e) {
1620
1620
  return e === "waiting";
1621
1621
  }
1622
- function aa(e) {
1623
- return e === "running" || $n(e);
1622
+ function Aa(e) {
1623
+ return e === "running" || Bn(e);
1624
1624
  }
1625
- function et(e) {
1625
+ function ot(e) {
1626
1626
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1627
1627
  }
1628
- function sa(e) {
1629
- const t = et(e);
1630
- return t ? Mn(t) : void 0;
1628
+ function Ea(e) {
1629
+ const t = ot(e);
1630
+ return t ? xn(t) : void 0;
1631
1631
  }
1632
- function ca(e) {
1633
- return Cn(et(e));
1632
+ function Sa(e) {
1633
+ return Dn(ot(e));
1634
1634
  }
1635
- function la(e) {
1635
+ function _a(e) {
1636
1636
  const t = [], n = /* @__PURE__ */ new Map();
1637
- for (const r of [...e].sort(Ln)) {
1637
+ for (const r of [...e].sort(jn)) {
1638
1638
  const i = n.get(r.emoji);
1639
1639
  if (i) {
1640
1640
  i.push(r.actor);
@@ -1647,58 +1647,58 @@ function la(e) {
1647
1647
  return { emoji: r, count: i.length, actors: i };
1648
1648
  }).sort((r, i) => i.count - r.count || t.indexOf(r.emoji) - t.indexOf(i.emoji));
1649
1649
  }
1650
- const Ln = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
1651
- function ua(e, t) {
1650
+ const jn = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
1651
+ function Ta(e, t) {
1652
1652
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
1653
1653
  }
1654
- const q = 6e4, Pn = 36e5, k = 864e5, tt = 800;
1655
- function Ie(e, t) {
1654
+ const J = 6e4, Hn = 36e5, C = 864e5, at = 800;
1655
+ function Ce(e, t) {
1656
1656
  const n = Date.UTC(e, t + 1, 0);
1657
- return n - new Date(n).getUTCDay() * k + Pn;
1657
+ return n - new Date(n).getUTCDay() * C + Hn;
1658
1658
  }
1659
- function Un(e) {
1659
+ function Gn(e) {
1660
1660
  const t = new Date(e).getUTCFullYear();
1661
- return e >= Ie(t, 2) && e < Ie(t, 9);
1661
+ return e >= Ce(t, 2) && e < Ce(t, 9);
1662
1662
  }
1663
- function nt(e, t) {
1664
- const n = t.dst === "eu" && Un(e) ? 60 : 0;
1665
- return (t.utcOffsetMinutes + n) * q;
1663
+ function st(e, t) {
1664
+ const n = t.dst === "eu" && Gn(e) ? 60 : 0;
1665
+ return (t.utcOffsetMinutes + n) * J;
1666
1666
  }
1667
- function Kn(e) {
1667
+ function Wn(e) {
1668
1668
  return (e + 3) % 7 + 1;
1669
1669
  }
1670
- function rt(e, t) {
1671
- const n = nt(e, t), r = e + n, i = Math.floor(r / k);
1672
- if (!t.days.includes(Kn(i))) return null;
1673
- const o = i * k;
1670
+ function ct(e, t) {
1671
+ const n = st(e, t), r = e + n, i = Math.floor(r / C);
1672
+ if (!t.days.includes(Wn(i))) return null;
1673
+ const o = i * C;
1674
1674
  return {
1675
- open: o + t.fromMinutes * q - n,
1676
- close: o + t.toMinutes * q - n
1675
+ open: o + t.fromMinutes * J - n,
1676
+ close: o + t.toMinutes * J - n
1677
1677
  };
1678
1678
  }
1679
- function it(e, t) {
1680
- const n = nt(e, t), r = e + n;
1681
- return (Math.floor(r / k) + 1) * k - n;
1679
+ function lt(e, t) {
1680
+ const n = st(e, t), r = e + n;
1681
+ return (Math.floor(r / C) + 1) * C - n;
1682
1682
  }
1683
- function J(e, t, n) {
1683
+ function Z(e, t, n) {
1684
1684
  if (t <= e) return 0;
1685
1685
  if (!n) return t - e;
1686
1686
  let r = 0, i = e;
1687
- for (let o = 0; o < tt && i < t; o++) {
1688
- const a = rt(i, n);
1687
+ for (let o = 0; o < at && i < t; o++) {
1688
+ const a = ct(i, n);
1689
1689
  if (a) {
1690
1690
  const s = Math.max(i, a.open), c = Math.min(t, a.close);
1691
1691
  c > s && (r += c - s);
1692
1692
  }
1693
- i = it(i, n);
1693
+ i = lt(i, n);
1694
1694
  }
1695
1695
  return r;
1696
1696
  }
1697
- function ne(e, t, n) {
1697
+ function ie(e, t, n) {
1698
1698
  if (!n) return e + t;
1699
1699
  let r = t, i = e;
1700
- for (let o = 0; o < tt; o++) {
1701
- const a = rt(i, n);
1700
+ for (let o = 0; o < at; o++) {
1701
+ const a = ct(i, n);
1702
1702
  if (a) {
1703
1703
  const s = Math.max(i, a.open);
1704
1704
  if (a.close > s) {
@@ -1707,83 +1707,83 @@ function ne(e, t, n) {
1707
1707
  r -= c;
1708
1708
  }
1709
1709
  }
1710
- i = it(i, n);
1710
+ i = lt(i, n);
1711
1711
  }
1712
1712
  return e + t;
1713
1713
  }
1714
- function da(e) {
1714
+ function wa(e) {
1715
1715
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
1716
1716
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
1717
1717
  }
1718
- const Z = 1, Q = 2;
1719
- function pa(e) {
1720
- return e === "snoozed" ? Z : Q;
1718
+ const Q = 1, ee = 2;
1719
+ function Ia(e) {
1720
+ return e === "snoozed" ? Q : ee;
1721
1721
  }
1722
- function re(e) {
1722
+ function oe(e) {
1723
1723
  const t = e.calendar;
1724
1724
  return t && Array.isArray(t.days) ? t : null;
1725
1725
  }
1726
- const fa = [
1726
+ const Ma = [
1727
1727
  "speed_of_answer",
1728
1728
  "first_response",
1729
1729
  "next_response",
1730
1730
  "resolution",
1731
1731
  "close"
1732
- ], ma = ["snoozed", "waiting_for_customer"], Bn = 6e4, ot = ["speed_of_answer", "first_response", "next_response"], jn = [...ot, "resolution", "close"];
1732
+ ], ka = ["snoozed", "waiting_for_customer"], Vn = 6e4, ut = ["speed_of_answer", "first_response", "next_response"], zn = [...ut, "resolution", "close"];
1733
1733
  function v(e) {
1734
1734
  return e.state === "running" || e.state === "paused";
1735
1735
  }
1736
- function Hn(e, t) {
1736
+ function Xn(e, t) {
1737
1737
  return v(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
1738
1738
  }
1739
- function Me(e) {
1739
+ function ve(e) {
1740
1740
  return v(e) ? { state: "void" } : null;
1741
1741
  }
1742
- function Fn(e, t, n, r) {
1742
+ function Yn(e, t, n, r) {
1743
1743
  if (!v(e) || (e.pauseBits & t) !== 0) return null;
1744
1744
  const i = e.pauseBits | t;
1745
- return e.state === "paused" ? { pauseBits: i } : { pauseBits: i, state: "paused", remainingMs: J(n, e.dueAt, r) };
1745
+ return e.state === "paused" ? { pauseBits: i } : { pauseBits: i, state: "paused", remainingMs: Z(n, e.dueAt, r) };
1746
1746
  }
1747
- function Gn(e, t, n, r) {
1747
+ function qn(e, t, n, r) {
1748
1748
  if (!v(e) || (e.pauseBits & t) === 0) return null;
1749
1749
  const i = e.pauseBits & ~t;
1750
- return i !== 0 ? { pauseBits: i } : { pauseBits: i, state: "running", dueAt: ne(n, e.remainingMs, r) };
1750
+ return i !== 0 ? { pauseBits: i } : { pauseBits: i, state: "running", dueAt: ie(n, e.remainingMs, r) };
1751
1751
  }
1752
- function ga({ event: e, at: t, now: n, clocks: r, profile: i }) {
1753
- const o = re(i), a = Math.min(t, n), s = r.map((p) => ({ ...p })), c = [], m = (p, f) => {
1752
+ function Oa({ event: e, at: t, now: n, clocks: r, profile: i }) {
1753
+ const o = oe(i), a = Math.min(t, n), s = r.map((p) => ({ ...p })), c = [], m = (p, f) => {
1754
1754
  f && (c.push({ op: "patch", clockId: p.id, patch: f }), Object.assign(p, f));
1755
1755
  }, h = (p) => {
1756
1756
  for (const f of s)
1757
- f.metric === p && m(f, Hn(f, a));
1757
+ f.metric === p && m(f, Xn(f, a));
1758
1758
  }, y = (p) => {
1759
1759
  for (const f of s)
1760
- p.includes(f.metric) && m(f, Me(f));
1760
+ p.includes(f.metric) && m(f, ve(f));
1761
1761
  }, T = (p) => {
1762
- for (const f of s) m(f, Fn(f, p, a, o));
1762
+ for (const f of s) m(f, Yn(f, p, a, o));
1763
1763
  }, M = (p) => {
1764
- for (const f of s) m(f, Gn(f, p, a, o));
1765
- }, B = (p) => s.reduce((f, S) => S.metric === p ? Math.max(f, S.attempt) : f, 0) + 1, x = (p) => s.some((f) => f.metric === p && v(f)), N = (p, f) => {
1766
- const S = i.targets.find((gt) => gt.metric === p);
1764
+ for (const f of s) m(f, qn(f, p, a, o));
1765
+ }, B = (p) => s.reduce((f, S) => S.metric === p ? Math.max(f, S.attempt) : f, 0) + 1, N = (p) => s.some((f) => f.metric === p && v(f)), x = (p, f) => {
1766
+ const S = i.targets.find((St) => St.metric === p);
1767
1767
  if (!S) return;
1768
- const ae = S.minutes * Bn;
1768
+ const ue = S.minutes * Vn;
1769
1769
  c.push({
1770
1770
  op: "start",
1771
1771
  metric: p,
1772
1772
  attempt: B(p),
1773
1773
  startedAt: f,
1774
- targetMs: ae,
1775
- dueAt: ne(f, ae, o)
1774
+ targetMs: ue,
1775
+ dueAt: ie(f, ue, o)
1776
1776
  });
1777
1777
  };
1778
1778
  switch (e) {
1779
1779
  case "apply": {
1780
1780
  for (const p of s)
1781
- p.profileId !== i.id && m(p, Me(p));
1781
+ p.profileId !== i.id && m(p, ve(p));
1782
1782
  for (const p of i.targets) {
1783
1783
  if (p.metric === "next_response") continue;
1784
1784
  s.some(
1785
1785
  (S) => S.metric === p.metric && S.profileId === i.id
1786
- ) || N(p.metric, a);
1786
+ ) || x(p.metric, a);
1787
1787
  }
1788
1788
  break;
1789
1789
  }
@@ -1791,87 +1791,169 @@ function ga({ event: e, at: t, now: n, clocks: r, profile: i }) {
1791
1791
  h("speed_of_answer");
1792
1792
  break;
1793
1793
  case "outbound": {
1794
- h("first_response"), h("next_response"), i.pauseOn.includes("waiting_for_customer") && T(Q);
1794
+ h("first_response"), h("next_response"), i.pauseOn.includes("waiting_for_customer") && T(ee);
1795
1795
  break;
1796
1796
  }
1797
1797
  case "inbound": {
1798
- M(Q), !x("first_response") && !x("next_response") && N("next_response", a);
1798
+ M(ee), !N("first_response") && !N("next_response") && x("next_response", a);
1799
1799
  break;
1800
1800
  }
1801
1801
  case "resolved":
1802
1802
  h("resolution");
1803
1803
  break;
1804
1804
  case "closed":
1805
- h("close"), h("resolution"), y(ot);
1805
+ h("close"), h("resolution"), y(ut);
1806
1806
  break;
1807
1807
  case "reopened":
1808
- x("resolution") || N("resolution", a), x("close") || N("close", a);
1808
+ N("resolution") || x("resolution", a), N("close") || x("close", a);
1809
1809
  break;
1810
1810
  case "snoozed":
1811
- i.pauseOn.includes("snoozed") && T(Z);
1811
+ i.pauseOn.includes("snoozed") && T(Q);
1812
1812
  break;
1813
1813
  case "unsnoozed":
1814
- M(Z);
1814
+ M(Q);
1815
1815
  break;
1816
1816
  case "discarded":
1817
- y(jn);
1817
+ y(zn);
1818
1818
  break;
1819
1819
  }
1820
1820
  return c;
1821
1821
  }
1822
- function Wn(e) {
1822
+ function Jn(e) {
1823
1823
  return e.state === "running" || e.state === "paused";
1824
1824
  }
1825
- function ee(e, t) {
1826
- const n = re(e);
1827
- return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -J(e.dueAt, t, n) : J(t, e.dueAt, n);
1825
+ function te(e, t) {
1826
+ const n = oe(e);
1827
+ return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -Z(e.dueAt, t, n) : Z(t, e.dueAt, n);
1828
1828
  }
1829
- function ha(e, t) {
1830
- return e.state === "paused" ? ne(t, e.remainingMs, re(e)) : e.dueAt;
1829
+ function Ca(e, t) {
1830
+ return e.state === "paused" ? ie(t, e.remainingMs, oe(e)) : e.dueAt;
1831
1831
  }
1832
- function ya(e, t) {
1833
- const n = e.filter(Wn);
1832
+ function va(e, t) {
1833
+ const n = e.filter(Jn);
1834
1834
  if (!n.length) return;
1835
1835
  const r = n.filter((o) => o.state === "running");
1836
1836
  return (r.length ? r : n).reduce(
1837
- (o, a) => ee(a, t) < ee(o, t) ? a : o
1837
+ (o, a) => te(a, t) < te(o, t) ? a : o
1838
1838
  );
1839
1839
  }
1840
- function ba(e, t) {
1840
+ function Na(e, t) {
1841
1841
  if (e.state === "missed") return "breached";
1842
1842
  if (e.state === "hit") return "met";
1843
1843
  if (e.state === "paused") return "paused";
1844
1844
  if (e.state === "void") return "met";
1845
- const n = ee(e, t);
1845
+ const n = te(e, t);
1846
1846
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
1847
1847
  }
1848
- function Aa(e) {
1848
+ function xa(e) {
1849
1849
  const t = Math.floor(Math.abs(e) / 1e3), n = Math.floor(t / 86400), r = Math.floor(t % 86400 / 3600), i = Math.floor(t % 3600 / 60);
1850
1850
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? i ? `${r}u ${i}m` : `${r}u` : i ? `${i}m` : `${t % 60}s`;
1851
1851
  }
1852
- function Ea(e, t) {
1852
+ const Zn = "strategy_item";
1853
+ function dt(e) {
1854
+ return `${Zn}:${e}`;
1855
+ }
1856
+ function Ra(e, t = 25) {
1857
+ const n = /* @__PURE__ */ new Set([dt(e.id)]);
1858
+ for (const r of e.ancestorKeys ?? []) n.add(r);
1859
+ return Array.from(n).slice(0, t);
1860
+ }
1861
+ function Da(e) {
1862
+ return e ? [...e.ancestorKeys ?? [], dt(e.id)] : [];
1863
+ }
1864
+ const ae = [
1865
+ { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
1866
+ { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
1867
+ { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
1868
+ ], Qn = 999, er = 7;
1869
+ function tr(e, t = ae) {
1870
+ return t.find((n) => n.key === e);
1871
+ }
1872
+ function Ne(e, t = ae) {
1873
+ return tr(e, t)?.order ?? Qn;
1874
+ }
1875
+ function $a(e, t, n = ae) {
1876
+ return Ne(t, n) <= Ne(e, n);
1877
+ }
1878
+ function La(e) {
1879
+ const t = e.trim().toLowerCase();
1880
+ return t ? t.includes("key result") || t.includes("keyresult") || t === "kr" ? "key_result" : t.includes("objective") || t.includes("goal") || t.includes("doel") ? "objective" : t.includes("focus") || t.includes("area") || t.includes("theme") ? "area" : null : null;
1881
+ }
1882
+ const ne = {
1883
+ pending: "open",
1884
+ on_track: "open",
1885
+ at_risk: "open",
1886
+ off_track: "open",
1887
+ paused: "paused",
1888
+ achieved: "closed",
1889
+ missed: "closed"
1890
+ };
1891
+ function Pa(e) {
1892
+ return ne[e] ?? "open";
1893
+ }
1894
+ function Ua(e) {
1895
+ return Object.keys(ne).filter(
1896
+ (t) => e.includes(ne[t])
1897
+ );
1898
+ }
1899
+ const nr = 864e5, F = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
1900
+ function Ka(e, t) {
1901
+ const { direction: n } = e, r = e.startValue ?? 0, i = e.targetValue ?? 0;
1902
+ return Number.isFinite(t) ? i === r ? (n === "down" ? t <= i : t >= i) ? 1 : 0 : F((t - r) / (i - r)) : 0;
1903
+ }
1904
+ function Fa(e, t) {
1905
+ const { startDate: n, targetDate: r } = e;
1906
+ if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
1907
+ return F((t - n) / (r - n));
1908
+ }
1909
+ const rr = 0.1, ir = 0.25;
1910
+ function Ba(e, t) {
1911
+ if (typeof e != "number" || typeof t != "number") return;
1912
+ if (e >= 1) return "achieved";
1913
+ const n = t - e;
1914
+ return n >= ir ? "off_track" : n >= rr ? "at_risk" : "on_track";
1915
+ }
1916
+ function ja(e, t) {
1917
+ if (t)
1918
+ return F(e / t);
1919
+ }
1920
+ function Ha(e) {
1921
+ const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
1922
+ if (t.length)
1923
+ return F(t.reduce((n, r) => n + r, 0) / t.length);
1924
+ }
1925
+ function Ga(e, t) {
1926
+ const n = e.lastCheckInAt ?? e.createdAt;
1927
+ if (typeof n != "number") return 0;
1928
+ const r = (e.checkInEveryDays ?? er) * nr, i = t - n - r;
1929
+ return i > 0 ? i : 0;
1930
+ }
1931
+ function Wa(e) {
1932
+ return e.targetDate ?? Number.MAX_SAFE_INTEGER;
1933
+ }
1934
+ function Va(e, t) {
1853
1935
  const n = e.accumulatedSeconds || 0;
1854
1936
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1855
1937
  }
1856
- function Sa(e, t) {
1938
+ function za(e, t) {
1857
1939
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1858
1940
  if (!t || t === "exact") return n * 60;
1859
1941
  const r = Number(t);
1860
1942
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1861
1943
  }
1862
- function _a(e) {
1944
+ function Xa(e) {
1863
1945
  const t = Math.max(0, Math.round(e / 60));
1864
1946
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1865
1947
  }
1866
- function Ta(e) {
1948
+ function Ya(e) {
1867
1949
  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);
1868
1950
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1869
1951
  }
1870
- function Vn(e) {
1952
+ function or(e) {
1871
1953
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1872
1954
  }
1873
- function wa(e, t) {
1874
- const n = Vn(e) || "werksoort", r = new Set(t);
1955
+ function qa(e, t) {
1956
+ const n = or(e) || "werksoort", r = new Set(t);
1875
1957
  if (!r.has(n)) return n;
1876
1958
  for (let i = 2; i < 500; i++) {
1877
1959
  const o = `${n}-${i}`;
@@ -1879,96 +1961,118 @@ function wa(e, t) {
1879
1961
  }
1880
1962
  return `${n}-${r.size + 1}`;
1881
1963
  }
1882
- function Ia(e, t) {
1964
+ function Ja(e, t) {
1883
1965
  const n = e.ownerScope;
1884
1966
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1885
1967
  }
1886
- function Ma(e) {
1887
- return e.filter((t) => !t.archived).sort(zn);
1968
+ function Za(e) {
1969
+ return e.filter((t) => !t.archived).sort(ar);
1888
1970
  }
1889
- function zn(e, t) {
1971
+ function ar(e, t) {
1890
1972
  const n = (e.order ?? 0) - (t.order ?? 0);
1891
1973
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
1892
1974
  }
1893
- const Xn = 20, Yn = 20, W = 300;
1975
+ const sr = 20, cr = 20, V = 300;
1894
1976
  function I(e) {
1895
1977
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1896
1978
  }
1897
- function qn(e) {
1979
+ function lr(e) {
1898
1980
  const t = e.replace(/\s+/g, " ").trim();
1899
- if (t.length <= W) return t;
1900
- const n = t.slice(0, W), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1901
- return r > W * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1981
+ if (t.length <= V) return t;
1982
+ const n = t.slice(0, V), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1983
+ return r > V * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1902
1984
  }
1903
- function Oa(e, t) {
1904
- const n = qn(t.text), r = I(n);
1985
+ function Qa(e, t) {
1986
+ const n = lr(t.text), r = I(n);
1905
1987
  if (!r || (e.examples ?? []).some((a) => I(a) === r)) return null;
1906
1988
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => I(a.text) === r);
1907
1989
  if (o >= 0) {
1908
1990
  if (i[o].corrected || !t.corrected) return null;
1909
1991
  const a = [...i];
1910
- return a[o] = { ...a[o], corrected: !0, addedAt: t.addedAt }, Oe(a);
1992
+ return a[o] = { ...a[o], corrected: !0, addedAt: t.addedAt }, xe(a);
1911
1993
  }
1912
- return Oe([{ ...t, text: n }, ...i]).slice(0, Yn);
1994
+ return xe([{ ...t, text: n }, ...i]).slice(0, cr);
1913
1995
  }
1914
- function Oe(e) {
1996
+ function xe(e) {
1915
1997
  return [...e].sort(
1916
1998
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1917
1999
  );
1918
2000
  }
1919
- function Ca(e, t) {
2001
+ function es(e, t) {
1920
2002
  const n = I(t), r = (e.examples ?? []).filter((o) => o.trim());
1921
- return { examples: r.some((o) => I(o) === n) ? r : [...r, t].slice(-Xn), exampleCandidates: Jn(e, t) };
2003
+ return { examples: r.some((o) => I(o) === n) ? r : [...r, t].slice(-sr), exampleCandidates: ur(e, t) };
1922
2004
  }
1923
- function Jn(e, t) {
2005
+ function ur(e, t) {
1924
2006
  const n = I(t);
1925
2007
  return (e.exampleCandidates ?? []).filter((r) => I(r.text) !== n);
1926
2008
  }
1927
- function Zn(e, t) {
2009
+ function dr(e, t) {
1928
2010
  const n = e.ownerScope;
1929
2011
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1930
2012
  }
1931
- function ka(e, t) {
1932
- return e.filter((n) => Zn(n, t));
2013
+ function ts(e, t) {
2014
+ return e.filter((n) => dr(n, t));
1933
2015
  }
1934
- function va(e) {
2016
+ function ns(e) {
1935
2017
  return e.type === "agent";
1936
2018
  }
1937
- const xa = "WORK_COMMENT_ADDED", Na = "WORK_ITEM_ASSIGNED", Ra = "WORK_ITEM_STATUS_CHANGED";
1938
- function Qn(e, t) {
2019
+ const rs = "WORK_COMMENT_ADDED", is = "WORK_ITEM_ASSIGNED", os = "WORK_ITEM_STATUS_CHANGED";
2020
+ function pr(e, t) {
1939
2021
  const n = (r) => {
1940
2022
  const i = new Date(r);
1941
2023
  return i.setHours(0, 0, 0, 0), i.getTime();
1942
2024
  };
1943
- return Math.round((n(e) - n(t)) / qt);
2025
+ return Math.round((n(e) - n(t)) / nn);
1944
2026
  }
1945
- function Da(e, t) {
2027
+ function as(e, t) {
1946
2028
  if (e.closedAt != null) return { score: w, reasons: [] };
1947
2029
  const n = t.remindersById?.[e.id];
1948
2030
  if (n && n.remindAt > t.now) return { score: w, reasons: [] };
1949
2031
  let r = 0;
1950
2032
  const i = [], o = e.priority ?? "normal";
1951
2033
  if (P[o] > 0 && (r += P[o], i.push(`priority:${o}`)), typeof e.dueDate == "number") {
1952
- const a = Qn(e.dueDate, t.now);
2034
+ const a = pr(e.dueDate, t.now);
1953
2035
  a < 0 ? (r += 35, i.push("overdue")) : a === 0 && (r += 20, i.push("due-today"));
1954
2036
  }
1955
2037
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, i.push(`auto:${e.source.systemReason}`)), { score: r, reasons: i };
1956
2038
  }
1957
- const er = "work_item", tr = "work_project", nr = "work_activity", $a = "work_cycle";
1958
- function rr(e) {
1959
- return `${er}:${e}`;
2039
+ const se = [
2040
+ { key: "task", label: "type_task" },
2041
+ { key: "bug", label: "type_bug" },
2042
+ { key: "story", label: "type_story" },
2043
+ { key: "epic", label: "type_epic" },
2044
+ { key: "subtask", label: "type_subtask" },
2045
+ { key: "case", label: "type_case" },
2046
+ { key: "deal", label: "type_deal" }
2047
+ ], ss = se.map((e) => e.key);
2048
+ function cs(e) {
2049
+ return e?.types?.length ? e.types : se;
1960
2050
  }
1961
- function at(e) {
1962
- return `${tr}:${e}`;
2051
+ function ls(e, t) {
2052
+ return t.find((n) => n.key === e);
1963
2053
  }
1964
- function La(e) {
1965
- return `${nr}:${e}`;
2054
+ function us(e) {
2055
+ const t = e.trim().toLowerCase();
2056
+ return t ? t.includes("sub-task") || t.includes("subtask") || t.includes("sub task") ? "subtask" : t.includes("bug") || t.includes("defect") ? "bug" : t.includes("epic") ? "epic" : t.includes("story") ? "story" : t.includes("incident") || t.includes("problem") || t.includes("service request") || t.includes("change") ? "case" : t.includes("task") ? "task" : null : null;
2057
+ }
2058
+ function ds(...e) {
2059
+ return e.map((t) => se.find((n) => n.key === t)).filter((t) => !!t);
2060
+ }
2061
+ const fr = "work_item", mr = "work_project", gr = "work_activity", ps = "work_cycle";
2062
+ function hr(e) {
2063
+ return `${fr}:${e}`;
2064
+ }
2065
+ function pt(e) {
2066
+ return `${mr}:${e}`;
1966
2067
  }
1967
- function Pa(e, t, n) {
2068
+ function fs(e) {
2069
+ return `${gr}:${e}`;
2070
+ }
2071
+ function ms(e, t, n) {
1968
2072
  const r = `${e}-${t}`;
1969
2073
  return n ? `${r}-${n}` : r;
1970
2074
  }
1971
- function Ua(e) {
2075
+ function gs(e) {
1972
2076
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1973
2077
  return t ? {
1974
2078
  projectKey: t[1].toUpperCase(),
@@ -1976,52 +2080,52 @@ function Ua(e) {
1976
2080
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1977
2081
  } : null;
1978
2082
  }
1979
- function Ka(e) {
2083
+ function hs(e) {
1980
2084
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1981
2085
  }
1982
- function Ba(e, t = 25) {
1983
- const n = /* @__PURE__ */ new Set([rr(e.id)]);
1984
- e.projectId && n.add(at(e.projectId));
2086
+ function ys(e, t = 25) {
2087
+ const n = /* @__PURE__ */ new Set([hr(e.id)]);
2088
+ e.projectId && n.add(pt(e.projectId));
1985
2089
  for (const r of e.ancestorKeys ?? []) n.add(r);
1986
2090
  for (const r of e.partyKeys ?? []) n.add(r);
1987
2091
  return Array.from(n).slice(0, t);
1988
2092
  }
1989
- function ja(e) {
1990
- return [at(e.id)];
2093
+ function bs(e) {
2094
+ return [pt(e.id)];
1991
2095
  }
1992
- const ie = [
2096
+ const ce = [
1993
2097
  { key: "open", label: "status_open", category: "todo", order: 0 },
1994
2098
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1995
2099
  { key: "done", label: "status_done", category: "done", order: 2 },
1996
2100
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1997
- ], st = ie.map((e) => e.key);
1998
- function ir(e) {
1999
- return e?.statuses?.length ? e.statuses : ie;
2101
+ ], ft = ce.map((e) => e.key);
2102
+ function yr(e) {
2103
+ return e?.statuses?.length ? e.statuses : ce;
2000
2104
  }
2001
- function or(e, t) {
2105
+ function br(e, t) {
2002
2106
  return t.find((n) => n.key === e)?.category ?? "todo";
2003
2107
  }
2004
- function Ha(e, t) {
2108
+ function As(e, t) {
2005
2109
  return t.find((n) => n.key === e);
2006
2110
  }
2007
- function Fa(e) {
2008
- const t = ir(e), n = e?.defaultStatusKey;
2009
- return n && t.some((r) => r.key === n) ? n : ar(t)[0]?.key ?? ie[0].key;
2111
+ function Es(e) {
2112
+ const t = yr(e), n = e?.defaultStatusKey;
2113
+ return n && t.some((r) => r.key === n) ? n : Ar(t)[0]?.key ?? ce[0].key;
2010
2114
  }
2011
- function ar(e) {
2115
+ function Ar(e) {
2012
2116
  return [...e].sort((t, n) => {
2013
2117
  const r = (t.order ?? 0) - (n.order ?? 0);
2014
2118
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
2015
2119
  });
2016
2120
  }
2017
- function Ga(e, t) {
2018
- return or(e, t) === "done";
2121
+ function Ss(e, t) {
2122
+ return br(e, t) === "done";
2019
2123
  }
2020
- function sr(e) {
2124
+ function Er(e) {
2021
2125
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2022
2126
  }
2023
- function Wa(e, t) {
2024
- const n = sr(e) || "status", r = /* @__PURE__ */ new Set([...t, ...st]);
2127
+ function _s(e, t) {
2128
+ const n = Er(e) || "status", r = /* @__PURE__ */ new Set([...t, ...ft]);
2025
2129
  if (!r.has(n)) return n;
2026
2130
  for (let i = 2; i < 500; i++) {
2027
2131
  const o = `${n}-${i}`;
@@ -2029,7 +2133,7 @@ function Wa(e, t) {
2029
2133
  }
2030
2134
  return `${n}-${r.size + 1}`;
2031
2135
  }
2032
- function Va(e) {
2136
+ function Ts(e) {
2033
2137
  const t = [];
2034
2138
  if (!e.length) return [{ index: -1, reason: "empty" }];
2035
2139
  const n = /* @__PURE__ */ new Set();
@@ -2038,16 +2142,16 @@ function Va(e) {
2038
2142
  t.push({ index: i, reason: "missing_key" });
2039
2143
  return;
2040
2144
  }
2041
- st.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);
2145
+ ft.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);
2042
2146
  }), 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;
2043
2147
  }
2044
- function za(e) {
2148
+ function ws(e) {
2045
2149
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
2046
2150
  }
2047
- function Xa(e) {
2151
+ function Is(e) {
2048
2152
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
2049
2153
  }
2050
- const cr = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), lr = /* @__PURE__ */ new Set([
2154
+ const Sr = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), _r = /* @__PURE__ */ new Set([
2051
2155
  "text/plain",
2052
2156
  "text/markdown",
2053
2157
  "text/csv",
@@ -2056,67 +2160,67 @@ const cr = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
2056
2160
  "application/xml",
2057
2161
  "text/xml"
2058
2162
  ]);
2059
- function ur(e) {
2163
+ function Tr(e) {
2060
2164
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
2061
- return t ? cr.has(t) ? "image" : t === "application/pdf" ? "pdf" : lr.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
2062
- }
2063
- const O = 1024 * 1024, dr = {
2064
- image: 5 * O,
2065
- pdf: 20 * O,
2066
- text: 1 * O,
2067
- audio: 20 * O
2068
- }, Ya = 25 * O, qa = 5;
2069
- function Ja(e, t) {
2070
- const n = ur(e);
2071
- return n === "unsupported" ? "unsupported" : t > dr[n] ? "too-large" : null;
2165
+ return t ? Sr.has(t) ? "image" : t === "application/pdf" ? "pdf" : _r.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
2166
+ }
2167
+ const k = 1024 * 1024, wr = {
2168
+ image: 5 * k,
2169
+ pdf: 20 * k,
2170
+ text: 1 * k,
2171
+ audio: 20 * k
2172
+ }, Ms = 25 * k, ks = 5;
2173
+ function Os(e, t) {
2174
+ const n = Tr(e);
2175
+ return n === "unsupported" ? "unsupported" : t > wr[n] ? "too-large" : null;
2072
2176
  }
2073
- function Za(e) {
2177
+ function Cs(e) {
2074
2178
  return e.access !== "read" && e.effect !== "internal";
2075
2179
  }
2076
- function pr(e) {
2180
+ function Ir(e) {
2077
2181
  return `${e.kind}:${e.id || e.url || e.title}`;
2078
2182
  }
2079
- function Qa(e, t = []) {
2183
+ function vs(e, t = []) {
2080
2184
  const n = new Set(t), r = [], i = [];
2081
2185
  for (const o of e) {
2082
- const a = pr(o);
2186
+ const a = Ir(o);
2083
2187
  n.has(a) || (n.add(a), r.push(o), i.push(a));
2084
2188
  }
2085
2189
  return { sources: r, keys: i };
2086
2190
  }
2087
- const es = "assist-source", ts = ["blocking", "due", "open"];
2088
- function ns(e, t) {
2191
+ const Ns = "assist-source", xs = ["blocking", "due", "open"];
2192
+ function Rs(e, t) {
2089
2193
  const [n, r] = (e.subjectKey ?? "").split(":");
2090
2194
  return n === t && r ? r : void 0;
2091
2195
  }
2092
- const Ce = { blocking: 0, due: 1, open: 2 };
2093
- function rs(e, t) {
2094
- return Ce[e.band ?? "open"] - Ce[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
2196
+ const Re = { blocking: 0, due: 1, open: 2 };
2197
+ function Ds(e, t) {
2198
+ return Re[e.band ?? "open"] - Re[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
2095
2199
  }
2096
- function is(e) {
2200
+ function $s(e) {
2097
2201
  return e.sessions.filter(
2098
2202
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
2099
2203
  );
2100
2204
  }
2101
- function os(e) {
2205
+ function Ls(e) {
2102
2206
  return e.sessions.filter(
2103
2207
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
2104
2208
  );
2105
2209
  }
2106
- function as(e) {
2210
+ function Ps(e) {
2107
2211
  return e.sessions.some(
2108
2212
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
2109
2213
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
2110
2214
  }
2111
- function fr(e, t) {
2112
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((a) => !n.has(a.intent)).map((a) => gr(a, r[a.intent]));
2215
+ function Mr(e, t) {
2216
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((a) => !n.has(a.intent)).map((a) => Or(a, r[a.intent]));
2113
2217
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
2114
2218
  const o = new Set(i.map((a) => a.intent));
2115
2219
  for (const a of e.extraIntents)
2116
2220
  o.has(a.intent) || (i.push(a), o.add(a.intent));
2117
2221
  return i;
2118
2222
  }
2119
- function mr(e, t) {
2223
+ function kr(e, t) {
2120
2224
  const n = {};
2121
2225
  for (const r of e.intents) {
2122
2226
  if (!r.togglable) continue;
@@ -2125,46 +2229,46 @@ function mr(e, t) {
2125
2229
  }
2126
2230
  return n;
2127
2231
  }
2128
- function ss(e, t) {
2129
- const n = mr(e, t);
2232
+ function Us(e, t) {
2233
+ const n = kr(e, t);
2130
2234
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
2131
2235
  }
2132
- function gr(e, t) {
2236
+ function Or(e, t) {
2133
2237
  return t ? {
2134
2238
  intent: t.intent ?? e.intent,
2135
2239
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
2136
2240
  transport: t.transport ?? e.transport
2137
2241
  } : e;
2138
2242
  }
2139
- function cs(e, t) {
2243
+ function Ks(e, t) {
2140
2244
  const n = [];
2141
2245
  for (const r of e) {
2142
2246
  if (!r.enabled) continue;
2143
2247
  const i = t[r.providerId];
2144
2248
  if (i)
2145
- for (const o of fr(r, i))
2249
+ for (const o of Mr(r, i))
2146
2250
  n.push({ channel: r, description: i, capability: o });
2147
2251
  }
2148
2252
  return n;
2149
2253
  }
2150
- function ls(e, t) {
2254
+ function Fs(e, t) {
2151
2255
  return t.filter((n) => n.capability.intent === e);
2152
2256
  }
2153
- function hr(e, t) {
2257
+ function Cr(e, t) {
2154
2258
  return t.filter((n) => n.capability.targetSchemes.includes(e));
2155
2259
  }
2156
- function us(e, t) {
2157
- return hr(e.scheme, t);
2260
+ function Bs(e, t) {
2261
+ return Cr(e.scheme, t);
2158
2262
  }
2159
- function ds(e, t, n) {
2263
+ function js(e, t, n) {
2160
2264
  const r = [];
2161
2265
  for (const i of e)
2162
2266
  for (const o of n)
2163
2267
  o.capability.intent === t && o.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: o, endpoint: i });
2164
2268
  return r;
2165
2269
  }
2166
- var yr = /* @__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))(yr || {});
2167
- const br = {
2270
+ var vr = /* @__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))(vr || {});
2271
+ const Nr = {
2168
2272
  mailto: "mail",
2169
2273
  sip: "tel",
2170
2274
  tel: "tel",
@@ -2185,10 +2289,10 @@ const br = {
2185
2289
  id: "note",
2186
2290
  custom: "note"
2187
2291
  };
2188
- function ps(e) {
2189
- return e ? br[e] ?? "note" : "note";
2292
+ function Hs(e) {
2293
+ return e ? Nr[e] ?? "note" : "note";
2190
2294
  }
2191
- const fs = "message_window", ms = "message_templates", gs = {
2295
+ const Gs = "message_window", Ws = "message_templates", Vs = {
2192
2296
  // E-mail
2193
2297
  FROM: "from",
2194
2298
  TO: "to",
@@ -2205,11 +2309,11 @@ const fs = "message_window", ms = "message_templates", gs = {
2205
2309
  // Voice/conference
2206
2310
  HOST: "host",
2207
2311
  PARTICIPANT: "participant"
2208
- }, hs = (e, t) => ({ intent: e, ...t }), ys = "folder_management", bs = "remote_search", As = "message_reactions", Es = {
2312
+ }, zs = (e, t) => ({ intent: e, ...t }), Xs = "folder_management", Ys = "remote_search", qs = "message_reactions", Js = {
2209
2313
  ok: !1,
2210
2314
  code: "UNSUPPORTED",
2211
2315
  message: "Provider does not support this op"
2212
- }, Ss = "connector", _s = "context.collect", d = (e) => ({ type: "string", description: e }), u = (e) => ({ type: "number", description: e }), $ = (e) => ({ type: "boolean", description: e }), E = d("Sheet name. Omit for the sheet the user is looking at."), ke = d("Slide id, as `inspect` reports it.");
2316
+ }, Zs = "connector", Qs = "context.collect", d = (e) => ({ type: "string", description: e }), u = (e) => ({ type: "number", description: e }), $ = (e) => ({ type: "boolean", description: e }), E = d("Sheet name. Omit for the sheet the user is looking at."), De = d("Slide id, as `inspect` reports it.");
2213
2317
  function l(e, t, n, r, i, o) {
2214
2318
  return {
2215
2319
  op: e,
@@ -2220,14 +2324,14 @@ function l(e, t, n, r, i, o) {
2220
2324
  visible: o.visible
2221
2325
  };
2222
2326
  }
2223
- const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve = { undoable: !1, visible: !0 }, U = { undoable: !1, visible: !1 }, Ar = [
2327
+ const O = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, $e = { undoable: !1, visible: !0 }, U = { undoable: !1, visible: !1 }, xr = [
2224
2328
  l(
2225
2329
  "pdf.goToPage",
2226
2330
  ["pdf"],
2227
2331
  "Scroll the viewer to a page.",
2228
2332
  { page: u("1-based page number.") },
2229
2333
  ["page"],
2230
- C
2334
+ O
2231
2335
  ),
2232
2336
  l(
2233
2337
  "pdf.search",
@@ -2235,7 +2339,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2235
2339
  "Search the document and highlight the matches, as the find bar does.",
2236
2340
  { query: d("Text to find."), next: $("Jump to the next match instead of the first.") },
2237
2341
  ["query"],
2238
- C
2342
+ O
2239
2343
  ),
2240
2344
  l(
2241
2345
  "pdf.setTool",
@@ -2249,7 +2353,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2249
2353
  }
2250
2354
  },
2251
2355
  ["tool"],
2252
- C
2356
+ O
2253
2357
  ),
2254
2358
  l(
2255
2359
  "pdf.fillField",
@@ -2277,7 +2381,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2277
2381
  }
2278
2382
  },
2279
2383
  ["order"],
2280
- ve
2384
+ $e
2281
2385
  ),
2282
2386
  l(
2283
2387
  "pdf.deletePages",
@@ -2285,7 +2389,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2285
2389
  "Remove pages, keeping the rest in order.",
2286
2390
  { pages: { type: "array", items: { type: "number" }, description: "1-based page numbers." } },
2287
2391
  ["pages"],
2288
- ve
2392
+ $e
2289
2393
  ),
2290
2394
  l(
2291
2395
  "pdf.addNote",
@@ -2315,7 +2419,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2315
2419
  ["page", "text"],
2316
2420
  U
2317
2421
  )
2318
- ], Er = [
2422
+ ], Rr = [
2319
2423
  l(
2320
2424
  "sheet.setValues",
2321
2425
  ["sheet"],
@@ -2465,9 +2569,9 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2465
2569
  "Show the user a sheet and select a range on it.",
2466
2570
  { sheet: E, range: d("A1 notation to select. Omit to only switch sheets.") },
2467
2571
  [],
2468
- C
2572
+ O
2469
2573
  )
2470
- ], Sr = [
2574
+ ], Dr = [
2471
2575
  l(
2472
2576
  "word.replaceParagraph",
2473
2577
  ["word"],
@@ -2527,15 +2631,15 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2527
2631
  "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.",
2528
2632
  { start: u("Start character offset."), end: u("End character offset. Omit for a caret.") },
2529
2633
  ["start"],
2530
- C
2634
+ O
2531
2635
  )
2532
- ], _r = [
2636
+ ], $r = [
2533
2637
  l(
2534
2638
  "slides.setText",
2535
2639
  ["slides"],
2536
2640
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
2537
2641
  {
2538
- slide: ke,
2642
+ slide: De,
2539
2643
  element: d("Element id, as `inspect` reports it."),
2540
2644
  text: d("The new text.")
2541
2645
  },
@@ -2547,7 +2651,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2547
2651
  ["slides"],
2548
2652
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
2549
2653
  {
2550
- slide: ke,
2654
+ slide: De,
2551
2655
  element: d("Element id."),
2552
2656
  left: u("Distance from the left edge, in pixels."),
2553
2657
  top: u("Distance from the top edge, in pixels."),
@@ -2557,34 +2661,34 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2557
2661
  ["slide", "element"],
2558
2662
  U
2559
2663
  )
2560
- ], ct = [
2561
- ...Ar,
2562
- ...Er,
2563
- ...Sr,
2564
- ..._r
2664
+ ], mt = [
2665
+ ...xr,
2666
+ ...Rr,
2667
+ ...Dr,
2668
+ ...$r
2565
2669
  ];
2566
- function Ts(e) {
2567
- return ct.filter((t) => t.kinds.includes(e));
2670
+ function ec(e) {
2671
+ return mt.filter((t) => t.kinds.includes(e));
2568
2672
  }
2569
- function ws(e) {
2570
- return ct.find((t) => t.op === e);
2673
+ function tc(e) {
2674
+ return mt.find((t) => t.op === e);
2571
2675
  }
2572
- const Is = "documents.describe", Ms = "documents.inspect", Os = "documents.apply";
2573
- function Cs(e) {
2676
+ const nc = "documents.describe", rc = "documents.inspect", ic = "documents.apply";
2677
+ function oc(e) {
2574
2678
  const t = e.indexOf(":");
2575
2679
  if (t !== -1) return e.slice(0, t);
2576
2680
  const n = e.indexOf(".");
2577
2681
  return n === -1 ? e : e.slice(0, n);
2578
2682
  }
2579
- const ks = "installation-id";
2580
- function vs(e) {
2683
+ const ac = "installation-id";
2684
+ function sc(e) {
2581
2685
  const t = [];
2582
2686
  for (const n of Object.keys(e))
2583
2687
  for (const r of Object.keys(e[n]))
2584
2688
  t.push({ lang: n, key: r, value: e[n][r] });
2585
2689
  return t;
2586
2690
  }
2587
- const xs = "notification-source", Ns = (e, t) => `${e}.pref.${t}`, Rs = {
2691
+ const cc = "notification-source", lc = (e, t) => `${e}.pref.${t}`, uc = {
2588
2692
  ai: [
2589
2693
  "account.read",
2590
2694
  "account.write",
@@ -2719,48 +2823,48 @@ const xs = "notification-source", Ns = (e, t) => `${e}.pref.${t}`, Rs = {
2719
2823
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
2720
2824
  user: ["user.read", "user.write"],
2721
2825
  work: ["item.read", "item.write", "project.read", "project.write"]
2722
- }, lt = 9e4, Tr = ["out_of_office"], ut = (e) => Tr.includes(e);
2723
- function Ds(e, t, n) {
2724
- const r = n - e < lt, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2826
+ }, gt = 9e4, Lr = ["out_of_office"], ht = (e) => Lr.includes(e);
2827
+ function dc(e, t, n) {
2828
+ const r = n - e < gt, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2725
2829
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2726
2830
  const o = i.status;
2727
- return !r && !ut(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2831
+ return !r && !ht(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2728
2832
  }
2729
- function $s(e, t) {
2730
- const n = t - e.lastSeenAt < lt, r = n || ut(e.status) ? e.status : "offline";
2833
+ function pc(e, t) {
2834
+ const n = t - e.lastSeenAt < gt, r = n || ht(e.status) ? e.status : "offline";
2731
2835
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2732
2836
  }
2733
- function Ls(e, t) {
2837
+ function fc(e, t) {
2734
2838
  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 };
2735
2839
  }
2736
- function Ps(e) {
2840
+ function mc(e) {
2737
2841
  return e.providerAvailable && e.allowed;
2738
2842
  }
2739
- const Us = "resources.describe", Ks = "resources.search", Bs = "resources.resolve", js = "resources.attached";
2740
- function Hs(e) {
2843
+ const gc = "resources.describe", hc = "resources.search", yc = "resources.resolve", bc = "resources.attached";
2844
+ function Ac(e) {
2741
2845
  const t = e.indexOf(":");
2742
2846
  return t === -1 ? e : e.slice(0, t);
2743
2847
  }
2744
- const Fs = "/provider/scope/related", Gs = "/provider/scope/read", dt = "auth";
2745
- function pt(e) {
2848
+ const Ec = "/provider/scope/related", Sc = "/provider/scope/read", yt = "auth";
2849
+ function bt(e) {
2746
2850
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2747
2851
  return t ? t[1] : null;
2748
2852
  }
2749
- function Ws(e) {
2750
- const t = pt(e);
2751
- return t ? t !== dt : typeof e == "string" && e.startsWith("/wake");
2853
+ function _c(e) {
2854
+ const t = bt(e);
2855
+ return t ? t !== yt : typeof e == "string" && e.startsWith("/wake");
2752
2856
  }
2753
- function Vs(e) {
2754
- return typeof e != "string" || e === "" || e === "/" ? !0 : pt(e) === dt;
2857
+ function Tc(e) {
2858
+ return typeof e != "string" || e === "" || e === "/" ? !0 : bt(e) === yt;
2755
2859
  }
2756
- function wr(e) {
2860
+ function Pr(e) {
2757
2861
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2758
2862
  }
2759
- function Ir(e) {
2760
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${wr(r)}`).join("");
2863
+ function Ur(e) {
2864
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Pr(r)}`).join("");
2761
2865
  return new RegExp(`^${n}\\/?$`);
2762
2866
  }
2763
- function Mr(e, t) {
2867
+ function Kr(e, t) {
2764
2868
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
2765
2869
  return n.forEach((o, a) => {
2766
2870
  if (o.startsWith(":")) {
@@ -2769,14 +2873,14 @@ function Mr(e, t) {
2769
2873
  }
2770
2874
  }), i;
2771
2875
  }
2772
- function Or(e) {
2876
+ function Fr(e) {
2773
2877
  return e.publicBasePath ?? `/apps/${e.name}`;
2774
2878
  }
2775
- function zs(e) {
2879
+ function wc(e) {
2776
2880
  const t = [];
2777
2881
  for (const n of e) {
2778
2882
  if (!n?.name) continue;
2779
- const r = Or(n);
2883
+ const r = Fr(n);
2780
2884
  for (const i of n.routes ?? []) {
2781
2885
  if (!i.public) continue;
2782
2886
  const o = i.path === "/" ? "" : i.path;
@@ -2790,7 +2894,7 @@ function zs(e) {
2790
2894
  }
2791
2895
  return t;
2792
2896
  }
2793
- function Cr(e, t) {
2897
+ function Br(e, t) {
2794
2898
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2795
2899
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2796
2900
  const o = n[i].startsWith(":"), a = r[i].startsWith(":");
@@ -2798,17 +2902,17 @@ function Cr(e, t) {
2798
2902
  }
2799
2903
  return n.length > r.length;
2800
2904
  }
2801
- function kr(e, t) {
2905
+ function jr(e, t) {
2802
2906
  if (typeof e != "string") return null;
2803
2907
  let n = null;
2804
2908
  for (const r of t)
2805
- Ir(r.pattern).test(e) && (!n || Cr(r.pattern, n.pattern)) && (n = r);
2806
- return n ? { ...n, params: { ...n.props, ...Mr(n.pattern, e) } } : null;
2909
+ Ur(r.pattern).test(e) && (!n || Br(r.pattern, n.pattern)) && (n = r);
2910
+ return n ? { ...n, params: { ...n.props, ...Kr(n.pattern, e) } } : null;
2807
2911
  }
2808
- function Xs(e, t) {
2809
- return kr(e, t) !== null;
2912
+ function Ic(e, t) {
2913
+ return jr(e, t) !== null;
2810
2914
  }
2811
- const Ys = 10 * 1024 * 1024, qs = 25 * 1024 * 1024, Js = "sync-target", Zs = 20, vr = {
2915
+ const Mc = 10 * 1024 * 1024, kc = 25 * 1024 * 1024, Oc = "sync-target", Cc = 20, Hr = {
2812
2916
  afrikaans: [
2813
2917
  "[Muziek]",
2814
2918
  "(C) TV GELDERLAND 2021",
@@ -2958,14 +3062,14 @@ const Ys = 10 * 1024 * 1024, qs = 25 * 1024 * 1024, Js = "sync-target", Zs = 20,
2958
3062
  "[MÚSICA]",
2959
3063
  "[Music cuts in British]"
2960
3064
  ]
2961
- }, xr = (e) => {
3065
+ }, Gr = (e) => {
2962
3066
  let t = e;
2963
- return Object.values(vr).forEach((n) => {
3067
+ return Object.values(Hr).forEach((n) => {
2964
3068
  n.forEach((r) => {
2965
3069
  t = t.replaceAll(r, "");
2966
3070
  });
2967
3071
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2968
- }, Nr = 6e4, Rr = 8e3, Dr = 2, $r = 0.4, Lr = 3, Pr = /* @__PURE__ */ new Set([
3072
+ }, Wr = 6e4, Vr = 8e3, zr = 2, Xr = 0.4, Yr = 3, qr = /* @__PURE__ */ new Set([
2969
3073
  "aan",
2970
3074
  "als",
2971
3075
  "ben",
@@ -3078,13 +3182,13 @@ const Ys = 10 * 1024 * 1024, qs = 25 * 1024 * 1024, Js = "sync-target", Zs = 20,
3078
3182
  "you",
3079
3183
  "your"
3080
3184
  ]);
3081
- function Ur(e) {
3185
+ function Jr(e) {
3082
3186
  const t = /* @__PURE__ */ new Set();
3083
3187
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
3084
- n.length < Lr || Pr.has(n) || t.add(n);
3188
+ n.length < Yr || qr.has(n) || t.add(n);
3085
3189
  return [...t];
3086
3190
  }
3087
- function Kr(e, t) {
3191
+ function Zr(e, t) {
3088
3192
  if (!e.length) return 0;
3089
3193
  if (!t.length) return 1;
3090
3194
  const n = new Set(t), r = new Set(e);
@@ -3092,38 +3196,38 @@ function Kr(e, t) {
3092
3196
  for (const o of r) n.has(o) || (i += 1);
3093
3197
  return i / r.size;
3094
3198
  }
3095
- function Br(e, t = Nr) {
3199
+ function Qr(e, t = Wr) {
3096
3200
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
3097
3201
  if (!n.length) return { text: "", segmentCount: 0 };
3098
3202
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
3099
- return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => xr(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
3203
+ return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => Gr(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
3100
3204
  }
3101
- const jr = 60;
3102
- function Qs(e, t, n = jr) {
3205
+ const ei = 60;
3206
+ function vc(e, t, n = ei) {
3103
3207
  const r = new Set(e), i = [...e];
3104
3208
  for (const o of t)
3105
3209
  !o || r.has(o) || (r.add(o), i.push(o));
3106
3210
  return i.slice(-n);
3107
3211
  }
3108
- function ec(e) {
3212
+ function Nc(e) {
3109
3213
  const { segments: t, now: n, state: r } = e;
3110
- if (r.lastTriggerAt && n - r.lastTriggerAt < Rr)
3214
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Vr)
3111
3215
  return { trigger: !1, reason: "too_soon" };
3112
- const i = Br(t, e.windowMs);
3216
+ const i = Qr(t, e.windowMs);
3113
3217
  if (!i.text) return { trigger: !1, reason: "no_speech" };
3114
3218
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
3115
- if (r.lastQueryTerms && o < Dr)
3219
+ if (r.lastQueryTerms && o < zr)
3116
3220
  return { trigger: !1, reason: "too_few_new" };
3117
- const a = Ur(i.text);
3118
- return a.length ? r.lastQueryTerms?.length && Kr(a, r.lastQueryTerms) < $r ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
3221
+ const a = Jr(i.text);
3222
+ return a.length ? r.lastQueryTerms?.length && Zr(a, r.lastQueryTerms) < Xr ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
3119
3223
  }
3120
- const tc = [
3224
+ const xc = [
3121
3225
  "personal",
3122
3226
  "workspace",
3123
3227
  "connections",
3124
3228
  "work",
3125
3229
  "ai"
3126
- ], nc = "navNotice", oe = {
3230
+ ], Rc = "navNotice", le = {
3127
3231
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
3128
3232
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
3129
3233
  // An over-permissive key is harmless — it simply matches nothing.
@@ -3146,53 +3250,53 @@ const tc = [
3146
3250
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
3147
3251
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
3148
3252
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
3149
- }, Hr = "NL", Fr = 15, Gr = 8, Wr = Array.from(
3150
- new Set(Object.values(oe).map((e) => e.callingCode))
3253
+ }, ti = "NL", ni = 15, ri = 8, ii = Array.from(
3254
+ new Set(Object.values(le).map((e) => e.callingCode))
3151
3255
  ).sort((e, t) => t.length - e.length);
3152
- function xe(e) {
3256
+ function Le(e) {
3153
3257
  if (e)
3154
- return oe[e.trim().toUpperCase()];
3258
+ return le[e.trim().toUpperCase()];
3155
3259
  }
3156
3260
  function L(e, t) {
3157
3261
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
3158
3262
  }
3159
- function Ne(e) {
3160
- if (e.length > Fr) return null;
3161
- for (const t of Wr) {
3263
+ function Pe(e) {
3264
+ if (e.length > ni) return null;
3265
+ for (const t of ii) {
3162
3266
  if (!e.startsWith(t)) continue;
3163
3267
  const n = e.slice(t.length);
3164
- for (const r of Object.values(oe)) {
3268
+ for (const r of Object.values(le)) {
3165
3269
  if (r.callingCode !== t) continue;
3166
3270
  const i = r.trunkPrefix, o = i && n.startsWith(i) ? n.slice(i.length) : n;
3167
3271
  if (L(o, r)) return `+${t}${o}`;
3168
3272
  }
3169
3273
  return null;
3170
3274
  }
3171
- return e.length < Gr ? null : `+${e}`;
3275
+ return e.length < ri ? null : `+${e}`;
3172
3276
  }
3173
- function Vr(e) {
3277
+ function oi(e) {
3174
3278
  let t = e.trim();
3175
3279
  const n = t.match(/^(sips?|tel|whatsapp):/i);
3176
3280
  n && (t = t.slice(n[0].length));
3177
3281
  const r = t.indexOf("@");
3178
3282
  return r >= 0 && (t = t.slice(0, r)), t.trim();
3179
3283
  }
3180
- function rc(e) {
3284
+ function Dc(e) {
3181
3285
  if (!e) return !1;
3182
3286
  const t = e.indexOf("@");
3183
3287
  if (t <= 0) return !1;
3184
3288
  const n = e.slice(0, t).trim();
3185
3289
  return !/^[+\d\s().-]+$/.test(n);
3186
3290
  }
3187
- function Re(e, t) {
3291
+ function Ue(e, t) {
3188
3292
  if (!e) return null;
3189
- const n = Vr(e);
3293
+ const n = oi(e);
3190
3294
  if (!n) return null;
3191
3295
  const r = n.startsWith("+"), i = n.replace(/\D/g, "");
3192
3296
  if (!i) return null;
3193
- if (r) return Ne(i);
3194
- if (i.startsWith("00")) return Ne(i.slice(2));
3195
- const o = xe(t) ?? xe(Hr);
3297
+ if (r) return Pe(i);
3298
+ if (i.startsWith("00")) return Pe(i.slice(2));
3299
+ const o = Le(t) ?? Le(ti);
3196
3300
  if (!o) return null;
3197
3301
  const a = o.trunkPrefix;
3198
3302
  if (a && i.startsWith(a)) {
@@ -3205,22 +3309,22 @@ function Re(e, t) {
3205
3309
  }
3206
3310
  return !a && L(i, o) ? `+${o.callingCode}${i}` : null;
3207
3311
  }
3208
- function ic(e, t = 9) {
3312
+ function $c(e, t = 9) {
3209
3313
  const n = (e ?? "").replace(/\D/g, "");
3210
3314
  return n.length < t ? null : n.slice(-t);
3211
3315
  }
3212
- function ft(e) {
3316
+ function At(e) {
3213
3317
  if (!e) return null;
3214
3318
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
3215
3319
  if (n <= 0 || n === t.length - 1) return null;
3216
3320
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
3217
3321
  return !r || !i.includes(".") ? null : `${r}@${i}`;
3218
3322
  }
3219
- function oc(e) {
3220
- const t = ft(e);
3323
+ function Lc(e) {
3324
+ const t = At(e);
3221
3325
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
3222
3326
  }
3223
- const zr = /* @__PURE__ */ new Set([
3327
+ const ai = /* @__PURE__ */ new Set([
3224
3328
  "co.uk",
3225
3329
  "org.uk",
3226
3330
  "gov.uk",
@@ -3230,14 +3334,14 @@ const zr = /* @__PURE__ */ new Set([
3230
3334
  "com.br",
3231
3335
  "co.za"
3232
3336
  ]);
3233
- function Xr(e) {
3337
+ function si(e) {
3234
3338
  if (!e) return null;
3235
3339
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
3236
3340
  if (t.length < 2) return null;
3237
3341
  const n = t.slice(-2).join(".");
3238
- return zr.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
3342
+ return ai.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
3239
3343
  }
3240
- const Yr = /* @__PURE__ */ new Set([
3344
+ const ci = /* @__PURE__ */ new Set([
3241
3345
  "gmail.com",
3242
3346
  "googlemail.com",
3243
3347
  "outlook.com",
@@ -3282,34 +3386,34 @@ const Yr = /* @__PURE__ */ new Set([
3282
3386
  "proximus.be",
3283
3387
  "scarlet.be"
3284
3388
  ]);
3285
- function ac(e) {
3286
- const t = Xr(e);
3287
- return t ? Yr.has(t) : !1;
3389
+ function Pc(e) {
3390
+ const t = si(e);
3391
+ return t ? ci.has(t) : !1;
3288
3392
  }
3289
- function sc(e) {
3393
+ function Uc(e) {
3290
3394
  if (!e) return !1;
3291
3395
  const t = e.trim().toLowerCase();
3292
3396
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
3293
3397
  }
3294
- function cc(e, t, n) {
3398
+ function Kc(e, t, n) {
3295
3399
  if (!e || !t) return null;
3296
3400
  const r = e.trim().toLowerCase();
3297
3401
  if (r === "tel" || r === "sms" || r === "whatsapp") {
3298
- const o = Re(t, n);
3402
+ const o = Ue(t, n);
3299
3403
  return o ? `tel:${o}` : null;
3300
3404
  }
3301
3405
  if (r === "fax") {
3302
- const o = Re(t, n);
3406
+ const o = Ue(t, n);
3303
3407
  return o ? `fax:${o}` : null;
3304
3408
  }
3305
3409
  if (r === "mailto" || r === "email") {
3306
- const o = ft(t);
3410
+ const o = At(t);
3307
3411
  return o ? `mailto:${o}` : null;
3308
3412
  }
3309
3413
  const i = t.trim().toLowerCase();
3310
3414
  return i ? `${r}:${i}` : null;
3311
3415
  }
3312
- const qr = [
3416
+ const li = [
3313
3417
  /<blockquote/i,
3314
3418
  /class="?gmail_quote/i,
3315
3419
  // Gmail quote container
@@ -3322,72 +3426,72 @@ const qr = [
3322
3426
  // Outlook underscore separator before "From:"
3323
3427
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
3324
3428
  // Gmail "On <date> <name> wrote:"
3325
- ], De = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Jr = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3326
- function Zr(e) {
3429
+ ], Ke = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ui = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3430
+ function di(e) {
3327
3431
  const t = e.split(`
3328
3432
  `);
3329
3433
  for (let n = 0; n < t.length; n++)
3330
- if (Jr.test(t[n]) || De.test(t[n]) && t.slice(n + 1, n + 4).some((r) => De.test(r)))
3434
+ if (ui.test(t[n]) || Ke.test(t[n]) && t.slice(n + 1, n + 4).some((r) => Ke.test(r)))
3331
3435
  return t.slice(0, n).join(`
3332
3436
  `).trim();
3333
3437
  return e;
3334
3438
  }
3335
- const Qr = /^(?:https?:|mailto:|tel:)/i, ei = /^(?:https?:|cid:|data:image\/)/i;
3336
- function V(e, t) {
3439
+ const pi = /^(?:https?:|mailto:|tel:)/i, fi = /^(?:https?:|cid:|data:image\/)/i;
3440
+ function z(e, t) {
3337
3441
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
3338
3442
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
3339
3443
  }
3340
- const ti = /(!\[[^\]]*\]\([^)]*\))/;
3341
- function $e(e) {
3342
- return e.replace(/\s+/g, " ").trim().split(ti).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
3444
+ const mi = /(!\[[^\]]*\]\([^)]*\))/;
3445
+ function Fe(e) {
3446
+ return e.replace(/\s+/g, " ").trim().split(mi).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
3343
3447
  }
3344
- function z(e) {
3448
+ function X(e) {
3345
3449
  return e.replace(
3346
3450
  /[()\s<>"]/g,
3347
3451
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
3348
3452
  );
3349
3453
  }
3350
- function ni(e) {
3454
+ function gi(e) {
3351
3455
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
3352
- const i = V(r, "src");
3353
- return ei.test(i) ? `![${$e(V(r, "alt"))}](${z(i)})` : "";
3456
+ const i = z(r, "src");
3457
+ return fi.test(i) ? `![${Fe(z(r, "alt"))}](${X(i)})` : "";
3354
3458
  }).replace(
3355
3459
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
3356
3460
  (n, r, i) => {
3357
- const o = $e(i.replace(/<[^>]*>/g, "")), a = V(r, "href");
3358
- return Qr.test(a) ? `[${o || z(a)}](${z(a)})` : o;
3461
+ const o = Fe(i.replace(/<[^>]*>/g, "")), a = z(r, "href");
3462
+ return pi.test(a) ? `[${o || X(a)}](${X(a)})` : o;
3359
3463
  }
3360
3464
  );
3361
3465
  }
3362
- const ri = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, ii = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, oi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
3363
- function ai(e, t) {
3466
+ const hi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, yi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, bi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
3467
+ function Ai(e, t) {
3364
3468
  return /<table\b/i.test(e) || e.includes(`
3365
3469
 
3366
3470
  |`) || t.includes("![") || t.length > 200;
3367
3471
  }
3368
- const si = 40, ci = { left: "---", center: ":---:", right: "---:" };
3369
- function li(e) {
3472
+ const Ei = 40, Si = { left: "---", center: ":---:", right: "---:" };
3473
+ function _i(e) {
3370
3474
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
3371
3475
  return t ? t[1].toLowerCase() : "left";
3372
3476
  }
3373
- function ui(e) {
3477
+ function Ti(e) {
3374
3478
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
3375
3479
  }
3376
- function di(e) {
3480
+ function wi(e) {
3377
3481
  const t = [];
3378
- for (const a of e.matchAll(ii)) {
3482
+ for (const a of e.matchAll(yi)) {
3379
3483
  const s = [];
3380
- for (const c of a[1].matchAll(oi)) {
3381
- const m = ui(c[3]);
3382
- if (ai(c[3], m)) return null;
3383
- s.push({ text: m, align: li(c[2]) });
3484
+ for (const c of a[1].matchAll(bi)) {
3485
+ const m = Ti(c[3]);
3486
+ if (Ai(c[3], m)) return null;
3487
+ s.push({ text: m, align: _i(c[2]) });
3384
3488
  }
3385
3489
  if (s.length === 0) return null;
3386
3490
  s.some((c) => c.text !== "") && t.push(s);
3387
3491
  }
3388
3492
  const n = t[0]?.length ?? 0;
3389
3493
  if (t.length < 2 || n < 2 || t.some((a) => a.length !== n)) return null;
3390
- const r = (a) => `| ${a.map((s) => s.text).join(" | ")} |`, i = t[1].map((a) => ci[a.align]).join(" | "), o = t.slice(1).map(r).join(`
3494
+ const r = (a) => `| ${a.map((s) => s.text).join(" | ")} |`, i = t[1].map((a) => Si[a.align]).join(" | "), o = t.slice(1).map(r).join(`
3391
3495
  `);
3392
3496
  return `
3393
3497
 
@@ -3397,36 +3501,36 @@ ${o}
3397
3501
 
3398
3502
  `;
3399
3503
  }
3400
- function pi(e) {
3504
+ function Ii(e) {
3401
3505
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
3402
3506
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
3403
3507
  }
3404
- function fi(e) {
3508
+ function Mi(e) {
3405
3509
  let t = e;
3406
- for (let n = 0; n < si; n++) {
3407
- const r = ri.exec(t);
3510
+ for (let n = 0; n < Ei; n++) {
3511
+ const r = hi.exec(t);
3408
3512
  if (!r || r.index === void 0) break;
3409
- const o = di(r[1]) ?? `
3513
+ const o = wi(r[1]) ?? `
3410
3514
 
3411
- ${pi(r[1])}
3515
+ ${Ii(r[1])}
3412
3516
 
3413
3517
  `;
3414
3518
  t = t.slice(0, r.index) + o + t.slice(r.index + r[0].length);
3415
3519
  }
3416
3520
  return t;
3417
3521
  }
3418
- function Le(e, t) {
3522
+ function Be(e, t) {
3419
3523
  let n = e;
3420
3524
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
3421
- `), t && (n = fi(ni(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
3525
+ `), t && (n = Mi(gi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
3422
3526
 
3423
3527
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
3424
3528
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
3425
3529
  }
3426
- function Pe(e) {
3530
+ function je(e) {
3427
3531
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
3428
3532
  }
3429
- const mi = {
3533
+ const ki = {
3430
3534
  euro: "€",
3431
3535
  pound: "£",
3432
3536
  yen: "¥",
@@ -3448,388 +3552,416 @@ const mi = {
3448
3552
  rdquo: "”",
3449
3553
  apos: "'"
3450
3554
  };
3451
- function Ue(e) {
3452
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => mi[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Pe(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Pe(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
3555
+ function He(e) {
3556
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => ki[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => je(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => je(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
3453
3557
  }
3454
- function Ke(e) {
3558
+ function Ge(e) {
3455
3559
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
3456
3560
  `).replace(/\n{3,}/g, `
3457
3561
 
3458
3562
  `).trim();
3459
3563
  }
3460
- const gi = /<\s*(html|body|div|p|table|br|span)\b/i;
3461
- function lc(e) {
3462
- return gi.test(e);
3564
+ const Oi = /<\s*(html|body|div|p|table|br|span)\b/i;
3565
+ function Fc(e) {
3566
+ return Oi.test(e);
3463
3567
  }
3464
- function uc(e) {
3465
- return mt(e, !1);
3568
+ function Bc(e) {
3569
+ return Et(e, !1);
3466
3570
  }
3467
- function dc(e) {
3468
- return mt(e, !0);
3571
+ function jc(e) {
3572
+ return Et(e, !0);
3469
3573
  }
3470
- function mt(e, t) {
3574
+ function Et(e, t) {
3471
3575
  if (typeof e != "string" || !e) return "";
3472
3576
  let n = e.length;
3473
- for (const a of qr) {
3577
+ for (const a of li) {
3474
3578
  const s = e.search(a);
3475
3579
  s >= 0 && s < n && (n = s);
3476
3580
  }
3477
3581
  const r = e.slice(0, n);
3478
- let i = Ke(Ue(Le(r, t)));
3479
- return i || (i = Ke(Ue(Le(e, t)))), Zr(i) || i;
3582
+ let i = Ge(He(Be(r, t)));
3583
+ return i || (i = Ge(He(Be(e, t)))), di(i) || i;
3480
3584
  }
3481
3585
  export {
3482
- no as ACTIVE_ASSIGNMENT_STATUSES,
3586
+ ho as ACTIVE_ASSIGNMENT_STATUSES,
3483
3587
  _ as ACTIVITY_CATALOG,
3484
- dr as AI_ATTACHMENT_LIMITS,
3485
- qa as AI_ATTACHMENT_MAX_PER_TURN,
3486
- Ya as AI_ATTACHMENT_TURN_BUDGET,
3487
- He as AI_VENDORS,
3488
- Pt as ALLOWED_LINK_SCHEMES,
3489
- Rs as APP_PERMISSIONS,
3490
- me as ARTIFACT_MAX_BLOCKS,
3491
- Xi as ARTIFACT_MAX_BODY_BYTES,
3492
- G as ARTIFACT_MAX_CELL_LEN,
3493
- be as ARTIFACT_MAX_KPI_ITEMS,
3494
- ge as ARTIFACT_MAX_LIST_ITEMS,
3495
- ye as ARTIFACT_MAX_TABLE_COLUMNS,
3496
- he as ARTIFACT_MAX_TABLE_ROWS,
3497
- Ge as ARTIFACT_MAX_TEXT_LEN,
3498
- Vt as ASSIGNMENT_SCOPE_KIND,
3499
- ts as ASSIST_BANDS,
3500
- es as ASSIST_SOURCE_PROVIDER_GROUP,
3501
- an as ATTENTION_STATUSES,
3502
- dt as AUTH_APP_NAME,
3503
- Nn as AUTO_READY_MIN_PROPOSALS,
3504
- Rn as AUTO_READY_RATE,
3505
- Mt as ActivityTypeRegistry,
3506
- Ri as BUILT_IN_ONLY,
3507
- sn as BULK_PENALTY,
3508
- Rr as CADENCE_FLOOR_MS,
3509
- Dr as CADENCE_MIN_NEW_SEGMENTS,
3510
- $r as CADENCE_MIN_NOVELTY,
3511
- Nr as CADENCE_WINDOW_MS,
3512
- Qo as CLASSIFY_VARS,
3513
- Ss as CONNECTOR_PROVIDER_GROUP,
3514
- _s as CONTEXT_COLLECT_SERVICE,
3515
- Wi as CORE_DIMENSIONS,
3516
- yr as CommunicationScheme,
3517
- qt as DAY_MS,
3518
- Ko as DEFAULT_MEMORY_BUDGET,
3519
- Hr as DEFAULT_PHONE_REGION,
3520
- Os as DOCUMENT_APPLY_SERVICE,
3521
- Is as DOCUMENT_DESCRIBE_SERVICE,
3522
- Ms as DOCUMENT_INSPECT_SERVICE,
3523
- ct as DOCUMENT_OPERATIONS,
3524
- ta as EMPTY_WORKFLOW,
3525
- ys as FEATURE_FOLDER_MANAGEMENT,
3526
- As as FEATURE_MESSAGE_REACTIONS,
3527
- bs as FEATURE_REMOTE_SEARCH,
3528
- ln as FOLLOW_UP_HOURS,
3529
- Yt as HOUR_MS,
3530
- gi as HTML_BODY_RE,
3588
+ wr as AI_ATTACHMENT_LIMITS,
3589
+ ks as AI_ATTACHMENT_MAX_PER_TURN,
3590
+ Ms as AI_ATTACHMENT_TURN_BUDGET,
3591
+ ze as AI_VENDORS,
3592
+ Ht as ALLOWED_LINK_SCHEMES,
3593
+ uc as APP_PERMISSIONS,
3594
+ be as ARTIFACT_MAX_BLOCKS,
3595
+ so as ARTIFACT_MAX_BODY_BYTES,
3596
+ W as ARTIFACT_MAX_CELL_LEN,
3597
+ _e as ARTIFACT_MAX_KPI_ITEMS,
3598
+ Ae as ARTIFACT_MAX_LIST_ITEMS,
3599
+ Se as ARTIFACT_MAX_TABLE_COLUMNS,
3600
+ Ee as ARTIFACT_MAX_TABLE_ROWS,
3601
+ Ye as ARTIFACT_MAX_TEXT_LEN,
3602
+ Zt as ASSIGNMENT_SCOPE_KIND,
3603
+ xs as ASSIST_BANDS,
3604
+ Ns as ASSIST_SOURCE_PROVIDER_GROUP,
3605
+ pn as ATTENTION_STATUSES,
3606
+ rr as AT_RISK_GAP,
3607
+ yt as AUTH_APP_NAME,
3608
+ Un as AUTO_READY_MIN_PROPOSALS,
3609
+ Kn as AUTO_READY_RATE,
3610
+ xt as ActivityTypeRegistry,
3611
+ Vi as BUILT_IN_ONLY,
3612
+ fn as BULK_PENALTY,
3613
+ Vr as CADENCE_FLOOR_MS,
3614
+ zr as CADENCE_MIN_NEW_SEGMENTS,
3615
+ Xr as CADENCE_MIN_NOVELTY,
3616
+ Wr as CADENCE_WINDOW_MS,
3617
+ pa as CLASSIFY_VARS,
3618
+ Zs as CONNECTOR_PROVIDER_GROUP,
3619
+ Qs as CONTEXT_COLLECT_SERVICE,
3620
+ io as CORE_DIMENSIONS,
3621
+ vr as CommunicationScheme,
3622
+ nn as DAY_MS,
3623
+ er as DEFAULT_CHECK_IN_DAYS,
3624
+ Zo as DEFAULT_MEMORY_BUDGET,
3625
+ ti as DEFAULT_PHONE_REGION,
3626
+ ic as DOCUMENT_APPLY_SERVICE,
3627
+ nc as DOCUMENT_DESCRIBE_SERVICE,
3628
+ rc as DOCUMENT_INSPECT_SERVICE,
3629
+ mt as DOCUMENT_OPERATIONS,
3630
+ ma as EMPTY_WORKFLOW,
3631
+ Xs as FEATURE_FOLDER_MANAGEMENT,
3632
+ qs as FEATURE_MESSAGE_REACTIONS,
3633
+ Ys as FEATURE_REMOTE_SEARCH,
3634
+ ae as FIXED_LEVELS,
3635
+ se as FIXED_TYPES,
3636
+ gn as FOLLOW_UP_HOURS,
3637
+ tn as HOUR_MS,
3638
+ Oi as HTML_BODY_RE,
3531
3639
  w as INELIGIBLE,
3532
- ks as INSTALLATION_HEADER,
3533
- On as INTERACTION_KIND,
3534
- gs as InteractionParticipantRole,
3535
- yn as KB_FALLBACK_LOCALE,
3536
- _e as KB_LOCALES,
3537
- ie as LOOSE_STATUSES,
3538
- tn as MAIL_HINT_HEADERS,
3539
- Ai as MAX_ACTIONS,
3540
- zt as MAX_ASSIGNMENT_TURNS,
3541
- hi as MAX_BLOCKS,
3542
- Ze as MAX_COLLECTION_DEPTH,
3543
- Ys as MAX_EDITABLE_FILE_BYTES,
3544
- yi as MAX_FIELDS,
3545
- bi as MAX_LIST_ITEMS,
3546
- $o as MAX_MEMORY_BROWSE,
3547
- Uo as MAX_MEMORY_BUDGET,
3548
- Lo as MAX_MEMORY_CHARS,
3549
- jr as MAX_SHOWN_KEYS,
3550
- Yn as MAX_TOPIC_CANDIDATES,
3551
- Xn as MAX_TOPIC_EXAMPLES,
3552
- W as MAX_TOPIC_EXAMPLE_CHARS,
3553
- qs as MAX_VIEWABLE_FILE_BYTES,
3554
- Po as MIN_MEMORY_BUDGET,
3555
- nc as NAV_NOTICE_SLOT,
3556
- xs as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3557
- jo as ONBOARDING_SOURCE_PROVIDER_GROUP,
3558
- Z as PAUSE_SNOOZED,
3559
- Q as PAUSE_WAITING_FOR_CUSTOMER,
3560
- oe as PHONE_REGIONS,
3561
- lt as PRESENCE_ONLINE_WINDOW_MS,
3562
- Tr as PRESENCE_SURVIVES_OFFLINE,
3563
- Fo as PROFILE_TOOL_DISPOSITIONS,
3564
- ms as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3565
- fs as PROVIDER_FEATURE_MESSAGE_WINDOW,
3566
- Yr as PUBLIC_EMAIL_DOMAINS,
3567
- Te as READ_STEP_TYPES,
3568
- En as RELATED_SUBJECT_KINDS,
3569
- st as RESERVED_STATUS_KEYS,
3570
- js as RESOURCE_ATTACHED_SERVICE,
3571
- Us as RESOURCE_DESCRIBE_SERVICE,
3572
- Bs as RESOURCE_RESOLVE_SERVICE,
3573
- Ks as RESOURCE_SEARCH_SERVICE,
3574
- Gs as SCOPE_READ_ROUTE,
3575
- Fs as SCOPE_RELATED_ROUTE,
3576
- tc as SETTINGS_CATEGORIES,
3577
- lo as SIGNATURE_INTENTS,
3578
- cn as SLA_HOURS_BY_PRIORITY,
3579
- fa as SLA_METRICS,
3580
- ma as SLA_PAUSE_REASONS,
3581
- vn as STEP_MAX_TOKENS_MAX,
3582
- kn as STEP_MAX_TOKENS_MIN,
3583
- en as SUMMARY_MIN_LAST_CHARS,
3584
- Qt as SUMMARY_MIN_MESSAGES,
3585
- Zs as SYNC_RUN_MAX_ERRORS,
3586
- Js as SYNC_TARGET_PROVIDER_GROUP,
3587
- Wt as TERMINAL_ASSIGNMENT_STATUSES,
3588
- Dn as TERMINAL_RUN_STATUSES,
3589
- Zo as TRIGGER_VARS,
3590
- Es as UNSUPPORTED,
3591
- Rt as USAGE_DIMENSIONS,
3592
- Dt as USAGE_DIMENSION_IDS,
3593
- nr as WORK_ACTIVITY_SCOPE_KIND,
3594
- Ho as WORK_AREAS,
3595
- xa as WORK_COMMENT_ADDED,
3596
- $a as WORK_CYCLE_SYNC_KIND,
3597
- Na as WORK_ITEM_ASSIGNED,
3598
- er as WORK_ITEM_SCOPE_KIND,
3599
- Ra as WORK_ITEM_STATUS_CHANGED,
3600
- tr as WORK_PROJECT_SCOPE_KIND,
3640
+ ac as INSTALLATION_HEADER,
3641
+ Rn as INTERACTION_KIND,
3642
+ Vs as InteractionParticipantRole,
3643
+ Tn as KB_FALLBACK_LOCALE,
3644
+ Me as KB_LOCALES,
3645
+ ce as LOOSE_STATUSES,
3646
+ cn as MAIL_HINT_HEADERS,
3647
+ xi as MAX_ACTIONS,
3648
+ Qt as MAX_ASSIGNMENT_TURNS,
3649
+ Ci as MAX_BLOCKS,
3650
+ rt as MAX_COLLECTION_DEPTH,
3651
+ Mc as MAX_EDITABLE_FILE_BYTES,
3652
+ vi as MAX_FIELDS,
3653
+ Ni as MAX_LIST_ITEMS,
3654
+ Xo as MAX_MEMORY_BROWSE,
3655
+ Jo as MAX_MEMORY_BUDGET,
3656
+ Yo as MAX_MEMORY_CHARS,
3657
+ ei as MAX_SHOWN_KEYS,
3658
+ cr as MAX_TOPIC_CANDIDATES,
3659
+ sr as MAX_TOPIC_EXAMPLES,
3660
+ V as MAX_TOPIC_EXAMPLE_CHARS,
3661
+ kc as MAX_VIEWABLE_FILE_BYTES,
3662
+ qo as MIN_MEMORY_BUDGET,
3663
+ Rc as NAV_NOTICE_SLOT,
3664
+ cc as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3665
+ ir as OFF_TRACK_GAP,
3666
+ ea as ONBOARDING_SOURCE_PROVIDER_GROUP,
3667
+ Q as PAUSE_SNOOZED,
3668
+ ee as PAUSE_WAITING_FOR_CUSTOMER,
3669
+ le as PHONE_REGIONS,
3670
+ gt as PRESENCE_ONLINE_WINDOW_MS,
3671
+ Lr as PRESENCE_SURVIVES_OFFLINE,
3672
+ na as PROFILE_TOOL_DISPOSITIONS,
3673
+ Ws as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3674
+ Gs as PROVIDER_FEATURE_MESSAGE_WINDOW,
3675
+ ci as PUBLIC_EMAIL_DOMAINS,
3676
+ ke as READ_STEP_TYPES,
3677
+ Mn as RELATED_SUBJECT_KINDS,
3678
+ ft as RESERVED_STATUS_KEYS,
3679
+ ss as RESERVED_TYPE_KEYS,
3680
+ bc as RESOURCE_ATTACHED_SERVICE,
3681
+ gc as RESOURCE_DESCRIBE_SERVICE,
3682
+ yc as RESOURCE_RESOLVE_SERVICE,
3683
+ hc as RESOURCE_SEARCH_SERVICE,
3684
+ Sc as SCOPE_READ_ROUTE,
3685
+ Ec as SCOPE_RELATED_ROUTE,
3686
+ xc as SETTINGS_CATEGORIES,
3687
+ To as SIGNATURE_INTENTS,
3688
+ mn as SLA_HOURS_BY_PRIORITY,
3689
+ Ma as SLA_METRICS,
3690
+ ka as SLA_PAUSE_REASONS,
3691
+ Ln as STEP_MAX_TOKENS_MAX,
3692
+ $n as STEP_MAX_TOKENS_MIN,
3693
+ Zn as STRATEGY_ITEM_SCOPE_KIND,
3694
+ sn as SUMMARY_MIN_LAST_CHARS,
3695
+ an as SUMMARY_MIN_MESSAGES,
3696
+ Cc as SYNC_RUN_MAX_ERRORS,
3697
+ Oc as SYNC_TARGET_PROVIDER_GROUP,
3698
+ Jt as TERMINAL_ASSIGNMENT_STATUSES,
3699
+ Fn as TERMINAL_RUN_STATUSES,
3700
+ da as TRIGGER_VARS,
3701
+ Qn as UNKNOWN_LEVEL_ORDER,
3702
+ Js as UNSUPPORTED,
3703
+ Kt as USAGE_DIMENSIONS,
3704
+ Ft as USAGE_DIMENSION_IDS,
3705
+ gr as WORK_ACTIVITY_SCOPE_KIND,
3706
+ ta as WORK_AREAS,
3707
+ rs as WORK_COMMENT_ADDED,
3708
+ ps as WORK_CYCLE_SYNC_KIND,
3709
+ is as WORK_ITEM_ASSIGNED,
3710
+ fr as WORK_ITEM_SCOPE_KIND,
3711
+ os as WORK_ITEM_STATUS_CHANGED,
3712
+ mr as WORK_PROJECT_SCOPE_KIND,
3601
3713
  P as W_PRIORITY,
3602
- Ca as acceptExampleCandidate,
3603
- _n as actingIdentityKey,
3604
- Ma as activeWorkTypes,
3605
- Si as activityIconOf,
3606
- xi as activityJoinUrl,
3607
- _t as activitySnippet,
3608
- Tt as activityTextParams,
3609
- vi as activityTimelineText,
3610
- Ot as activityTimestamp,
3714
+ es as acceptExampleCandidate,
3715
+ On as actingIdentityKey,
3716
+ Za as activeWorkTypes,
3717
+ Di as activityIconOf,
3718
+ Gi as activityJoinUrl,
3719
+ Ot as activitySnippet,
3720
+ Ct as activityTextParams,
3721
+ Hi as activityTimelineText,
3722
+ Rt as activityTimestamp,
3611
3723
  b as activityTypeInfo,
3612
- Vo as actorKey,
3613
- Oa as addExampleCandidate,
3614
- ne as addWorkingMs,
3615
- $s as agePresenceEntry,
3616
- ur as aiAttachmentKind,
3617
- Ja as aiAttachmentRejection,
3618
- fe as aiBudgetLimit,
3619
- Fi as aiBudgetPeriodKey,
3620
- Ct as aiBudgetPeriodStart,
3621
- Hi as aiBudgetState,
3622
- ji as aiVendorAcceptsAttachment,
3623
- Ui as aiVendorDefaultModel,
3624
- Pi as aiVendorLabel,
3625
- Bi as aiVendorNeedsBaseUrl,
3626
- Ki as aiVendorsWith,
3627
- pt as appNameFromPath,
3628
- Sa as applyRounding,
3629
- uo as applySignature,
3630
- xn as approvalRate,
3631
- qi as artifactBodyBytes,
3632
- Ji as artifactOutline,
3633
- Zi as artifactToMarkdown,
3634
- qo as assignmentMismatch,
3635
- io as assignmentScopeKey,
3636
- so as assignmentSubject,
3637
- Ni as buildActivityPreview,
3638
- cs as buildChannelIntents,
3639
- Qi as buildShareKeys,
3640
- Br as buildWindow,
3641
- re as calendarOf,
3642
- ko as canNestUnder,
3643
- Mi as carriesText,
3644
- xo as categoryLabel,
3645
- or as categoryOf,
3646
- ps as channelKindForScheme,
3647
- _i as channelKindOf,
3648
- ea as clampStepMaxTokens,
3649
- yo as classifyMail,
3650
- dc as cleanMessageMarkdown,
3651
- uc as cleanMessageText,
3652
- rs as compareAssistRank,
3653
- zn as compareWorkTypes,
3654
- za as cycleOrder,
3655
- Xa as cycleState,
3656
- co as decideAssignmentState,
3657
- ec as decideCadence,
3658
- as as decideIncomingCall,
3659
- bn as defaultLocaleOf,
3660
- Fa as defaultStatusKey,
3661
- hs as defineIntent,
3662
- gn as depthOf,
3663
- Ds as derivePresence,
3664
- ss as disabledIntentsFromCapabilities,
3665
- Cs as documentKindOf,
3666
- ha as dueAtOf,
3667
- Ea as elapsedSeconds,
3668
- oc as emailDomain,
3669
- cc as endpointKey,
3670
- Mr as extractParams,
3671
- Ur as extractTerms,
3672
- us as filterByEndpoint,
3673
- ls as filterByIntent,
3674
- hr as filterByTargetScheme,
3724
+ oa as actorKey,
3725
+ Qa as addExampleCandidate,
3726
+ ie as addWorkingMs,
3727
+ pc as agePresenceEntry,
3728
+ Tr as aiAttachmentKind,
3729
+ Os as aiAttachmentRejection,
3730
+ ye as aiBudgetLimit,
3731
+ no as aiBudgetPeriodKey,
3732
+ Dt as aiBudgetPeriodStart,
3733
+ to as aiBudgetState,
3734
+ eo as aiVendorAcceptsAttachment,
3735
+ Ji as aiVendorDefaultModel,
3736
+ qi as aiVendorLabel,
3737
+ Qi as aiVendorNeedsBaseUrl,
3738
+ Zi as aiVendorsWith,
3739
+ bt as appNameFromPath,
3740
+ za as applyRounding,
3741
+ wo as applySignature,
3742
+ Pn as approvalRate,
3743
+ lo as artifactBodyBytes,
3744
+ uo as artifactOutline,
3745
+ po as artifactToMarkdown,
3746
+ la as assignmentMismatch,
3747
+ bo as assignmentScopeKey,
3748
+ So as assignmentSubject,
3749
+ Wi as buildActivityPreview,
3750
+ Ks as buildChannelIntents,
3751
+ fo as buildShareKeys,
3752
+ Qr as buildWindow,
3753
+ oe as calendarOf,
3754
+ jo as canNestUnder,
3755
+ $a as canParent,
3756
+ Ki as carriesText,
3757
+ Go as categoryLabel,
3758
+ br as categoryOf,
3759
+ Hs as channelKindForScheme,
3760
+ $i as channelKindOf,
3761
+ Ga as checkInOverdueMs,
3762
+ fa as clampStepMaxTokens,
3763
+ vo as classifyMail,
3764
+ jc as cleanMessageMarkdown,
3765
+ Bc as cleanMessageText,
3766
+ Ds as compareAssistRank,
3767
+ ar as compareWorkTypes,
3768
+ ws as cycleOrder,
3769
+ Is as cycleState,
3770
+ _o as decideAssignmentState,
3771
+ Nc as decideCadence,
3772
+ Ps as decideIncomingCall,
3773
+ wn as defaultLocaleOf,
3774
+ Es as defaultStatusKey,
3775
+ zs as defineIntent,
3776
+ Sn as depthOf,
3777
+ dc as derivePresence,
3778
+ Us as disabledIntentsFromCapabilities,
3779
+ oc as documentKindOf,
3780
+ Ca as dueAtOf,
3781
+ Va as elapsedSeconds,
3782
+ Lc as emailDomain,
3783
+ Kc as endpointKey,
3784
+ Kr as extractParams,
3785
+ Jr as extractTerms,
3786
+ Bs as filterByEndpoint,
3787
+ Fs as filterByIntent,
3788
+ Cr as filterByTargetScheme,
3675
3789
  K as findAiVendor,
3676
- vs as flattenLocales,
3677
- vt as floorToPeriod,
3678
- Sn as formatActingIdentity,
3679
- Ta as formatClock,
3680
- _a as formatHm,
3681
- Pa as formatItemKey,
3682
- kt as formatPeriod,
3683
- Aa as formatSlaDuration,
3684
- Qa as freshSources,
3685
- Di as getActivitySeenUserIds,
3686
- po as getContactEndpoints,
3687
- wo as getShortTitle,
3688
- To as getUrgencyScore,
3689
- ua as hasReacted,
3690
- Qe as heightOf,
3691
- Mo as helpCenterText,
3692
- Jo as humanizeAction,
3693
- Cn as interactionIdOf,
3694
- va as isAgentUser,
3695
- So as isAssigned,
3696
- ro as isAssignmentTerminal,
3697
- In as isAssignmentTrigger,
3698
- ia as isAutoReady,
3699
- mn as isAwaitingThem,
3700
- Li as isChatMessageActivity,
3701
- _o as isClosed,
3702
- Ci as isConnectedType,
3703
- Ws as isDeepLink,
3704
- hn as isDescendant,
3705
- fo as isEligible,
3706
- $i as isEmailActivity,
3707
- lc as isHtmlBody,
3708
- aa as isInFlight,
3709
- on as isInteractionUnseen,
3710
- Vs as isLandingPath,
3711
- Zt as isLikelyBulk,
3712
- Be as isMessageShape,
3713
- Ti as isMessageType,
3714
- Cr as isMoreSpecificPattern,
3715
- je as isNoteShape,
3716
- Wn as isOpenClock,
3717
- Za as isOutwardTool,
3718
- dn as isParked,
3719
- $n as isPaused,
3720
- Oi as isPlaybookAuthoredType,
3721
- ac as isPublicEmailDomain,
3722
- Xs as isPublicPath,
3723
- pn as isReminderActive,
3724
- Ii as isReplyableType,
3725
- Ao as isSlaAtRisk,
3726
- oa as isTerminal,
3727
- go as isThreadLongEnough,
3728
- ki as isTranscriptType,
3729
- Ga as isWorkClosed,
3730
- Ia as isWorkTypeVisible,
3731
- Ba as itemDossierKeys,
3732
- ir as ladderFor,
3733
- Io as linkLabel,
3734
- Gi as listeningAllowed,
3735
- Co as localeInstruction,
3736
- Oo as localeName,
3737
- vo as localesOf,
3738
- rc as looksLikeEmail,
3739
- ds as matchContactToIntents,
3740
- kr as matchPublicRoute,
3741
- Ro as mcpCredentialScope,
3742
- Do as mcpToolPrefix,
3743
- Qs as mergeShownKeys,
3744
- St as messageCountsAs,
3745
- sc as needsPhoneRegion,
3746
- wi as nestsUnderParent,
3747
- ya as nextSlaClock,
3748
- Yi as normalizeArtifactBlocks,
3749
- Ei as normalizeBlocks,
3750
- ft as normalizeEmail,
3790
+ La as fixedLevelForName,
3791
+ us as fixedTypeForName,
3792
+ ds as fixedTypes,
3793
+ sc as flattenLocales,
3794
+ Lt as floorToPeriod,
3795
+ kn as formatActingIdentity,
3796
+ Ya as formatClock,
3797
+ Xa as formatHm,
3798
+ ms as formatItemKey,
3799
+ $t as formatPeriod,
3800
+ xa as formatSlaDuration,
3801
+ vs as freshSources,
3802
+ zi as getActivitySeenUserIds,
3803
+ Io as getContactEndpoints,
3804
+ Po as getShortTitle,
3805
+ Lo as getUrgencyScore,
3806
+ Ta as hasReacted,
3807
+ Pa as healthCategory,
3808
+ Ua as healthsInCategory,
3809
+ it as heightOf,
3810
+ Ko as helpCenterText,
3811
+ ua as humanizeAction,
3812
+ Dn as interactionIdOf,
3813
+ ns as isAgentUser,
3814
+ Do as isAssigned,
3815
+ yo as isAssignmentTerminal,
3816
+ Nn as isAssignmentTrigger,
3817
+ ya as isAutoReady,
3818
+ En as isAwaitingThem,
3819
+ Yi as isChatMessageActivity,
3820
+ $o as isClosed,
3821
+ Bi as isConnectedType,
3822
+ _c as isDeepLink,
3823
+ _n as isDescendant,
3824
+ Mo as isEligible,
3825
+ Xi as isEmailActivity,
3826
+ Fc as isHtmlBody,
3827
+ Aa as isInFlight,
3828
+ dn as isInteractionUnseen,
3829
+ Tc as isLandingPath,
3830
+ on as isLikelyBulk,
3831
+ We as isMessageShape,
3832
+ Li as isMessageType,
3833
+ Br as isMoreSpecificPattern,
3834
+ Ve as isNoteShape,
3835
+ Jn as isOpenClock,
3836
+ Cs as isOutwardTool,
3837
+ yn as isParked,
3838
+ Bn as isPaused,
3839
+ Fi as isPlaybookAuthoredType,
3840
+ Pc as isPublicEmailDomain,
3841
+ Ic as isPublicPath,
3842
+ bn as isReminderActive,
3843
+ Ui as isReplyableType,
3844
+ xo as isSlaAtRisk,
3845
+ ba as isTerminal,
3846
+ Oo as isThreadLongEnough,
3847
+ ji as isTranscriptType,
3848
+ Ss as isWorkClosed,
3849
+ Ja as isWorkTypeVisible,
3850
+ ys as itemDossierKeys,
3851
+ yr as ladderFor,
3852
+ tr as levelIn,
3853
+ Ne as levelOrder,
3854
+ Uo as linkLabel,
3855
+ ro as listeningAllowed,
3856
+ Bo as localeInstruction,
3857
+ Fo as localeName,
3858
+ Ho as localesOf,
3859
+ Dc as looksLikeEmail,
3860
+ js as matchContactToIntents,
3861
+ jr as matchPublicRoute,
3862
+ Vo as mcpCredentialScope,
3863
+ zo as mcpToolPrefix,
3864
+ Ka as measureRatio,
3865
+ vc as mergeShownKeys,
3866
+ kt as messageCountsAs,
3867
+ Uc as needsPhoneRegion,
3868
+ Pi as nestsUnderParent,
3869
+ va as nextSlaClock,
3870
+ co as normalizeArtifactBlocks,
3871
+ Ri as normalizeBlocks,
3872
+ At as normalizeEmail,
3751
3873
  I as normalizeExample,
3752
- Ns as notificationPrefKey,
3753
- Kr as novelty,
3754
- ws as operationDescriptor,
3755
- Ts as operationsForKind,
3756
- mo as parkMarksById,
3757
- Go as parseActingIdentity,
3758
- da as parseClockMinutes,
3759
- Ua as parseItemKey,
3760
- Ir as pathToRegex,
3761
- pa as pauseBitFor,
3762
- Vi as periodsInRange,
3763
- ic as phoneSuffix,
3764
- ho as pickMailHeaders,
3765
- At as plainTextFromMarkdown,
3766
- ga as planSlaEvent,
3767
- wn as playbookActor,
3768
- ra as procedureOf,
3769
- ja as projectDossierKeys,
3770
- Or as publicBasePathFor,
3771
- zs as publicRoutePatterns,
3772
- ao as reactionWakesAssignment,
3773
- X as readPath,
3774
- we as readStepError,
3775
- un as recencyOf,
3776
- Mn as refKey,
3777
- Xr as registrableDomain,
3778
- Jn as rejectExampleCandidate,
3779
- Bo as relatedByDefault,
3780
- ee as remainingMsOf,
3781
- mr as resolveAccountCapabilities,
3782
- Y as resolveActivityText,
3783
- fr as resolveChannelIntents,
3784
- Xt as resolveSignature,
3785
- Ls as resolveWorkMode,
3786
- Hs as resourceKindOf,
3787
- Wo as runActor,
3788
- ca as runInteractionId,
3789
- jt as sanitizeInline,
3790
- xr as sanitizeTranscript,
3791
- Eo as scoreInteraction,
3792
- Da as scoreWorkItem,
3793
- No as selectLenses,
3794
- os as sessionsHoldCannotReach,
3795
- is as sessionsToHold,
3796
- ze as shareKeyForTeam,
3797
- Ve as shareKeyForUser,
3798
- eo as shareKeysForViewer,
3799
- Ps as shouldRunAudioPipeline,
3800
- ba as slaBadgeTone,
3801
- bo as slaHoursByInbox,
3802
- fn as slaHoursFor,
3803
- ar as sortStatuses,
3804
- pr as sourceKey,
3805
- Ha as statusIn,
3806
- na as stepsOf,
3807
- Et as stripHtml,
3808
- sa as subjectKeyOf,
3809
- et as subjectOf,
3810
- ns as subjectRef,
3811
- Ka as suggestProjectKey,
3812
- la as summarizeReactions,
3813
- Yo as targetById,
3814
- Xo as targetForActivityType,
3815
- Tn as toActingIdentity,
3816
- Re as toE164,
3817
- to as toolSourceKinds,
3818
- Zn as topicOfferedForTeam,
3819
- ka as topicsForTeam,
3820
- qn as truncateExample,
3821
- Wa as uniqueWorkStatusKey,
3822
- wa as uniqueWorkTypeKey,
3823
- $t as usageMetricId,
3824
- zi as usageMetrics,
3825
- Va as validateStatuses,
3826
- zo as valueAtPath,
3827
- te as waitHoursOf,
3828
- oo as wakesAssignment,
3829
- La as workActivityScopeKey,
3830
- rr as workItemScopeKey,
3831
- at as workProjectScopeKey,
3832
- sr as workStatusKey,
3833
- Vn as workTypeKey,
3834
- J as workingMsBetween
3874
+ lc as notificationPrefKey,
3875
+ Zr as novelty,
3876
+ tc as operationDescriptor,
3877
+ ec as operationsForKind,
3878
+ Fa as paceRatio,
3879
+ ko as parkMarksById,
3880
+ ra as parseActingIdentity,
3881
+ wa as parseClockMinutes,
3882
+ gs as parseItemKey,
3883
+ Ur as pathToRegex,
3884
+ Ia as pauseBitFor,
3885
+ oo as periodsInRange,
3886
+ $c as phoneSuffix,
3887
+ Co as pickMailHeaders,
3888
+ It as plainTextFromMarkdown,
3889
+ Oa as planSlaEvent,
3890
+ vn as playbookActor,
3891
+ ha as procedureOf,
3892
+ bs as projectDossierKeys,
3893
+ Fr as publicBasePathFor,
3894
+ wc as publicRoutePatterns,
3895
+ Eo as reactionWakesAssignment,
3896
+ Y as readPath,
3897
+ Oe as readStepError,
3898
+ hn as recencyOf,
3899
+ xn as refKey,
3900
+ si as registrableDomain,
3901
+ ur as rejectExampleCandidate,
3902
+ Qo as relatedByDefault,
3903
+ te as remainingMsOf,
3904
+ kr as resolveAccountCapabilities,
3905
+ q as resolveActivityText,
3906
+ Mr as resolveChannelIntents,
3907
+ en as resolveSignature,
3908
+ fc as resolveWorkMode,
3909
+ Ac as resourceKindOf,
3910
+ Ha as rollupChildren,
3911
+ ia as runActor,
3912
+ Sa as runInteractionId,
3913
+ zt as sanitizeInline,
3914
+ Gr as sanitizeTranscript,
3915
+ Ro as scoreInteraction,
3916
+ as as scoreWorkItem,
3917
+ Wo as selectLenses,
3918
+ Ls as sessionsHoldCannotReach,
3919
+ $s as sessionsToHold,
3920
+ Ze as shareKeyForTeam,
3921
+ Je as shareKeyForUser,
3922
+ mo as shareKeysForViewer,
3923
+ mc as shouldRunAudioPipeline,
3924
+ Na as slaBadgeTone,
3925
+ No as slaHoursByInbox,
3926
+ An as slaHoursFor,
3927
+ Ar as sortStatuses,
3928
+ Ir as sourceKey,
3929
+ As as statusIn,
3930
+ ga as stepsOf,
3931
+ Da as strategyAncestorKeysFor,
3932
+ Ra as strategyDossierKeys,
3933
+ dt as strategyItemScopeKey,
3934
+ Mt as stripHtml,
3935
+ Ea as subjectKeyOf,
3936
+ ot as subjectOf,
3937
+ Rs as subjectRef,
3938
+ hs as suggestProjectKey,
3939
+ Ba as suggestedHealth,
3940
+ _a as summarizeReactions,
3941
+ ca as targetById,
3942
+ sa as targetForActivityType,
3943
+ Wa as targetOrder,
3944
+ Cn as toActingIdentity,
3945
+ Ue as toE164,
3946
+ go as toolSourceKinds,
3947
+ dr as topicOfferedForTeam,
3948
+ ts as topicsForTeam,
3949
+ lr as truncateExample,
3950
+ ls as typeIn,
3951
+ cs as typesFor,
3952
+ _s as uniqueWorkStatusKey,
3953
+ qa as uniqueWorkTypeKey,
3954
+ Bt as usageMetricId,
3955
+ ao as usageMetrics,
3956
+ Ts as validateStatuses,
3957
+ aa as valueAtPath,
3958
+ re as waitHoursOf,
3959
+ Ao as wakesAssignment,
3960
+ fs as workActivityScopeKey,
3961
+ hr as workItemScopeKey,
3962
+ pt as workProjectScopeKey,
3963
+ ja as workRatio,
3964
+ Er as workStatusKey,
3965
+ or as workTypeKey,
3966
+ Z as workingMsBetween
3835
3967
  };