@opencxh/domain 1.229.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";
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;
2050
+ }
2051
+ function ls(e, t) {
2052
+ return t.find((n) => n.key === e);
2053
+ }
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}`;
1960
2064
  }
1961
- function at(e) {
1962
- return `${tr}:${e}`;
2065
+ function pt(e) {
2066
+ return `${mr}:${e}`;
1963
2067
  }
1964
- function $a(e) {
1965
- return `${nr}:${e}`;
2068
+ function fs(e) {
2069
+ return `${gr}:${e}`;
1966
2070
  }
1967
- function La(e, t, n) {
2071
+ function ms(e, t, n) {
1968
2072
  const r = `${e}-${t}`;
1969
2073
  return n ? `${r}-${n}` : r;
1970
2074
  }
1971
- function Pa(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 Pa(e) {
1976
2080
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1977
2081
  } : null;
1978
2082
  }
1979
- function Ua(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 Ka(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 Ba(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 ja(e, t) {
2108
+ function As(e, t) {
2005
2109
  return t.find((n) => n.key === e);
2006
2110
  }
2007
- function Ha(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 Fa(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 Ga(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 Ga(e, t) {
2029
2133
  }
2030
2134
  return `${n}-${r.size + 1}`;
2031
2135
  }
2032
- function Wa(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,13 +2142,16 @@ function Wa(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 Va(e) {
2148
+ function ws(e) {
2149
+ return e.startDate ?? Number.MAX_SAFE_INTEGER;
2150
+ }
2151
+ function Is(e) {
2045
2152
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
2046
2153
  }
2047
- 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([
2048
2155
  "text/plain",
2049
2156
  "text/markdown",
2050
2157
  "text/csv",
@@ -2053,67 +2160,67 @@ const cr = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
2053
2160
  "application/xml",
2054
2161
  "text/xml"
2055
2162
  ]);
2056
- function ur(e) {
2163
+ function Tr(e) {
2057
2164
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
2058
- return t ? cr.has(t) ? "image" : t === "application/pdf" ? "pdf" : lr.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
2059
- }
2060
- const O = 1024 * 1024, dr = {
2061
- image: 5 * O,
2062
- pdf: 20 * O,
2063
- text: 1 * O,
2064
- audio: 20 * O
2065
- }, za = 25 * O, Xa = 5;
2066
- function Ya(e, t) {
2067
- const n = ur(e);
2068
- return n === "unsupported" ? "unsupported" : t > dr[n] ? "too-large" : null;
2069
- }
2070
- function qa(e) {
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;
2176
+ }
2177
+ function Cs(e) {
2071
2178
  return e.access !== "read" && e.effect !== "internal";
2072
2179
  }
2073
- function pr(e) {
2180
+ function Ir(e) {
2074
2181
  return `${e.kind}:${e.id || e.url || e.title}`;
2075
2182
  }
2076
- function Ja(e, t = []) {
2183
+ function vs(e, t = []) {
2077
2184
  const n = new Set(t), r = [], i = [];
2078
2185
  for (const o of e) {
2079
- const a = pr(o);
2186
+ const a = Ir(o);
2080
2187
  n.has(a) || (n.add(a), r.push(o), i.push(a));
2081
2188
  }
2082
2189
  return { sources: r, keys: i };
2083
2190
  }
2084
- const Za = "assist-source", Qa = ["blocking", "due", "open"];
2085
- function es(e, t) {
2191
+ const Ns = "assist-source", xs = ["blocking", "due", "open"];
2192
+ function Rs(e, t) {
2086
2193
  const [n, r] = (e.subjectKey ?? "").split(":");
2087
2194
  return n === t && r ? r : void 0;
2088
2195
  }
2089
- const Ce = { blocking: 0, due: 1, open: 2 };
2090
- function ts(e, t) {
2091
- 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);
2092
2199
  }
2093
- function ns(e) {
2200
+ function $s(e) {
2094
2201
  return e.sessions.filter(
2095
2202
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
2096
2203
  );
2097
2204
  }
2098
- function rs(e) {
2205
+ function Ls(e) {
2099
2206
  return e.sessions.filter(
2100
2207
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
2101
2208
  );
2102
2209
  }
2103
- function is(e) {
2210
+ function Ps(e) {
2104
2211
  return e.sessions.some(
2105
2212
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
2106
2213
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
2107
2214
  }
2108
- function fr(e, t) {
2109
- 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]));
2110
2217
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
2111
2218
  const o = new Set(i.map((a) => a.intent));
2112
2219
  for (const a of e.extraIntents)
2113
2220
  o.has(a.intent) || (i.push(a), o.add(a.intent));
2114
2221
  return i;
2115
2222
  }
2116
- function mr(e, t) {
2223
+ function kr(e, t) {
2117
2224
  const n = {};
2118
2225
  for (const r of e.intents) {
2119
2226
  if (!r.togglable) continue;
@@ -2122,46 +2229,46 @@ function mr(e, t) {
2122
2229
  }
2123
2230
  return n;
2124
2231
  }
2125
- function os(e, t) {
2126
- const n = mr(e, t);
2232
+ function Us(e, t) {
2233
+ const n = kr(e, t);
2127
2234
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
2128
2235
  }
2129
- function gr(e, t) {
2236
+ function Or(e, t) {
2130
2237
  return t ? {
2131
2238
  intent: t.intent ?? e.intent,
2132
2239
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
2133
2240
  transport: t.transport ?? e.transport
2134
2241
  } : e;
2135
2242
  }
2136
- function as(e, t) {
2243
+ function Ks(e, t) {
2137
2244
  const n = [];
2138
2245
  for (const r of e) {
2139
2246
  if (!r.enabled) continue;
2140
2247
  const i = t[r.providerId];
2141
2248
  if (i)
2142
- for (const o of fr(r, i))
2249
+ for (const o of Mr(r, i))
2143
2250
  n.push({ channel: r, description: i, capability: o });
2144
2251
  }
2145
2252
  return n;
2146
2253
  }
2147
- function ss(e, t) {
2254
+ function Fs(e, t) {
2148
2255
  return t.filter((n) => n.capability.intent === e);
2149
2256
  }
2150
- function hr(e, t) {
2257
+ function Cr(e, t) {
2151
2258
  return t.filter((n) => n.capability.targetSchemes.includes(e));
2152
2259
  }
2153
- function cs(e, t) {
2154
- return hr(e.scheme, t);
2260
+ function Bs(e, t) {
2261
+ return Cr(e.scheme, t);
2155
2262
  }
2156
- function ls(e, t, n) {
2263
+ function js(e, t, n) {
2157
2264
  const r = [];
2158
2265
  for (const i of e)
2159
2266
  for (const o of n)
2160
2267
  o.capability.intent === t && o.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: o, endpoint: i });
2161
2268
  return r;
2162
2269
  }
2163
- 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 || {});
2164
- 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 = {
2165
2272
  mailto: "mail",
2166
2273
  sip: "tel",
2167
2274
  tel: "tel",
@@ -2182,10 +2289,10 @@ const br = {
2182
2289
  id: "note",
2183
2290
  custom: "note"
2184
2291
  };
2185
- function us(e) {
2186
- return e ? br[e] ?? "note" : "note";
2292
+ function Hs(e) {
2293
+ return e ? Nr[e] ?? "note" : "note";
2187
2294
  }
2188
- const ds = "message_window", ps = "message_templates", fs = {
2295
+ const Gs = "message_window", Ws = "message_templates", Vs = {
2189
2296
  // E-mail
2190
2297
  FROM: "from",
2191
2298
  TO: "to",
@@ -2202,11 +2309,11 @@ const ds = "message_window", ps = "message_templates", fs = {
2202
2309
  // Voice/conference
2203
2310
  HOST: "host",
2204
2311
  PARTICIPANT: "participant"
2205
- }, ms = (e, t) => ({ intent: e, ...t }), gs = "folder_management", hs = "remote_search", ys = "message_reactions", bs = {
2312
+ }, zs = (e, t) => ({ intent: e, ...t }), Xs = "folder_management", Ys = "remote_search", qs = "message_reactions", Js = {
2206
2313
  ok: !1,
2207
2314
  code: "UNSUPPORTED",
2208
2315
  message: "Provider does not support this op"
2209
- }, As = "connector", Es = "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.");
2210
2317
  function l(e, t, n, r, i, o) {
2211
2318
  return {
2212
2319
  op: e,
@@ -2217,14 +2324,14 @@ function l(e, t, n, r, i, o) {
2217
2324
  visible: o.visible
2218
2325
  };
2219
2326
  }
2220
- 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 = [
2221
2328
  l(
2222
2329
  "pdf.goToPage",
2223
2330
  ["pdf"],
2224
2331
  "Scroll the viewer to a page.",
2225
2332
  { page: u("1-based page number.") },
2226
2333
  ["page"],
2227
- C
2334
+ O
2228
2335
  ),
2229
2336
  l(
2230
2337
  "pdf.search",
@@ -2232,7 +2339,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2232
2339
  "Search the document and highlight the matches, as the find bar does.",
2233
2340
  { query: d("Text to find."), next: $("Jump to the next match instead of the first.") },
2234
2341
  ["query"],
2235
- C
2342
+ O
2236
2343
  ),
2237
2344
  l(
2238
2345
  "pdf.setTool",
@@ -2246,7 +2353,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2246
2353
  }
2247
2354
  },
2248
2355
  ["tool"],
2249
- C
2356
+ O
2250
2357
  ),
2251
2358
  l(
2252
2359
  "pdf.fillField",
@@ -2274,7 +2381,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2274
2381
  }
2275
2382
  },
2276
2383
  ["order"],
2277
- ve
2384
+ $e
2278
2385
  ),
2279
2386
  l(
2280
2387
  "pdf.deletePages",
@@ -2282,7 +2389,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2282
2389
  "Remove pages, keeping the rest in order.",
2283
2390
  { pages: { type: "array", items: { type: "number" }, description: "1-based page numbers." } },
2284
2391
  ["pages"],
2285
- ve
2392
+ $e
2286
2393
  ),
2287
2394
  l(
2288
2395
  "pdf.addNote",
@@ -2312,7 +2419,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2312
2419
  ["page", "text"],
2313
2420
  U
2314
2421
  )
2315
- ], Er = [
2422
+ ], Rr = [
2316
2423
  l(
2317
2424
  "sheet.setValues",
2318
2425
  ["sheet"],
@@ -2462,9 +2569,9 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2462
2569
  "Show the user a sheet and select a range on it.",
2463
2570
  { sheet: E, range: d("A1 notation to select. Omit to only switch sheets.") },
2464
2571
  [],
2465
- C
2572
+ O
2466
2573
  )
2467
- ], Sr = [
2574
+ ], Dr = [
2468
2575
  l(
2469
2576
  "word.replaceParagraph",
2470
2577
  ["word"],
@@ -2524,15 +2631,15 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2524
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.",
2525
2632
  { start: u("Start character offset."), end: u("End character offset. Omit for a caret.") },
2526
2633
  ["start"],
2527
- C
2634
+ O
2528
2635
  )
2529
- ], _r = [
2636
+ ], $r = [
2530
2637
  l(
2531
2638
  "slides.setText",
2532
2639
  ["slides"],
2533
2640
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
2534
2641
  {
2535
- slide: ke,
2642
+ slide: De,
2536
2643
  element: d("Element id, as `inspect` reports it."),
2537
2644
  text: d("The new text.")
2538
2645
  },
@@ -2544,7 +2651,7 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2544
2651
  ["slides"],
2545
2652
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
2546
2653
  {
2547
- slide: ke,
2654
+ slide: De,
2548
2655
  element: d("Element id."),
2549
2656
  left: u("Distance from the left edge, in pixels."),
2550
2657
  top: u("Distance from the top edge, in pixels."),
@@ -2554,34 +2661,34 @@ const C = { undoable: !1, visible: !0 }, g = { undoable: !0, visible: !0 }, ve =
2554
2661
  ["slide", "element"],
2555
2662
  U
2556
2663
  )
2557
- ], ct = [
2558
- ...Ar,
2559
- ...Er,
2560
- ...Sr,
2561
- ..._r
2664
+ ], mt = [
2665
+ ...xr,
2666
+ ...Rr,
2667
+ ...Dr,
2668
+ ...$r
2562
2669
  ];
2563
- function Ss(e) {
2564
- return ct.filter((t) => t.kinds.includes(e));
2670
+ function ec(e) {
2671
+ return mt.filter((t) => t.kinds.includes(e));
2565
2672
  }
2566
- function _s(e) {
2567
- return ct.find((t) => t.op === e);
2673
+ function tc(e) {
2674
+ return mt.find((t) => t.op === e);
2568
2675
  }
2569
- const Ts = "documents.describe", ws = "documents.inspect", Is = "documents.apply";
2570
- function Ms(e) {
2676
+ const nc = "documents.describe", rc = "documents.inspect", ic = "documents.apply";
2677
+ function oc(e) {
2571
2678
  const t = e.indexOf(":");
2572
2679
  if (t !== -1) return e.slice(0, t);
2573
2680
  const n = e.indexOf(".");
2574
2681
  return n === -1 ? e : e.slice(0, n);
2575
2682
  }
2576
- const Os = "installation-id";
2577
- function Cs(e) {
2683
+ const ac = "installation-id";
2684
+ function sc(e) {
2578
2685
  const t = [];
2579
2686
  for (const n of Object.keys(e))
2580
2687
  for (const r of Object.keys(e[n]))
2581
2688
  t.push({ lang: n, key: r, value: e[n][r] });
2582
2689
  return t;
2583
2690
  }
2584
- const ks = "notification-source", vs = (e, t) => `${e}.pref.${t}`, xs = {
2691
+ const cc = "notification-source", lc = (e, t) => `${e}.pref.${t}`, uc = {
2585
2692
  ai: [
2586
2693
  "account.read",
2587
2694
  "account.write",
@@ -2716,48 +2823,48 @@ const ks = "notification-source", vs = (e, t) => `${e}.pref.${t}`, xs = {
2716
2823
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
2717
2824
  user: ["user.read", "user.write"],
2718
2825
  work: ["item.read", "item.write", "project.read", "project.write"]
2719
- }, lt = 9e4, Tr = ["out_of_office"], ut = (e) => Tr.includes(e);
2720
- function Ns(e, t, n) {
2721
- 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;
2722
2829
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2723
2830
  const o = i.status;
2724
- 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 };
2725
2832
  }
2726
- function Rs(e, t) {
2727
- 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";
2728
2835
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2729
2836
  }
2730
- function Ds(e, t) {
2837
+ function fc(e, t) {
2731
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 };
2732
2839
  }
2733
- function $s(e) {
2840
+ function mc(e) {
2734
2841
  return e.providerAvailable && e.allowed;
2735
2842
  }
2736
- const Ls = "resources.describe", Ps = "resources.search", Us = "resources.resolve", Ks = "resources.attached";
2737
- function Bs(e) {
2843
+ const gc = "resources.describe", hc = "resources.search", yc = "resources.resolve", bc = "resources.attached";
2844
+ function Ac(e) {
2738
2845
  const t = e.indexOf(":");
2739
2846
  return t === -1 ? e : e.slice(0, t);
2740
2847
  }
2741
- const js = "/provider/scope/related", Hs = "/provider/scope/read", dt = "auth";
2742
- function pt(e) {
2848
+ const Ec = "/provider/scope/related", Sc = "/provider/scope/read", yt = "auth";
2849
+ function bt(e) {
2743
2850
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2744
2851
  return t ? t[1] : null;
2745
2852
  }
2746
- function Fs(e) {
2747
- const t = pt(e);
2748
- 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");
2749
2856
  }
2750
- function Gs(e) {
2751
- 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;
2752
2859
  }
2753
- function wr(e) {
2860
+ function Pr(e) {
2754
2861
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2755
2862
  }
2756
- function Ir(e) {
2757
- 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("");
2758
2865
  return new RegExp(`^${n}\\/?$`);
2759
2866
  }
2760
- function Mr(e, t) {
2867
+ function Kr(e, t) {
2761
2868
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
2762
2869
  return n.forEach((o, a) => {
2763
2870
  if (o.startsWith(":")) {
@@ -2766,14 +2873,14 @@ function Mr(e, t) {
2766
2873
  }
2767
2874
  }), i;
2768
2875
  }
2769
- function Or(e) {
2876
+ function Fr(e) {
2770
2877
  return e.publicBasePath ?? `/apps/${e.name}`;
2771
2878
  }
2772
- function Ws(e) {
2879
+ function wc(e) {
2773
2880
  const t = [];
2774
2881
  for (const n of e) {
2775
2882
  if (!n?.name) continue;
2776
- const r = Or(n);
2883
+ const r = Fr(n);
2777
2884
  for (const i of n.routes ?? []) {
2778
2885
  if (!i.public) continue;
2779
2886
  const o = i.path === "/" ? "" : i.path;
@@ -2787,7 +2894,7 @@ function Ws(e) {
2787
2894
  }
2788
2895
  return t;
2789
2896
  }
2790
- function Cr(e, t) {
2897
+ function Br(e, t) {
2791
2898
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2792
2899
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2793
2900
  const o = n[i].startsWith(":"), a = r[i].startsWith(":");
@@ -2795,17 +2902,17 @@ function Cr(e, t) {
2795
2902
  }
2796
2903
  return n.length > r.length;
2797
2904
  }
2798
- function kr(e, t) {
2905
+ function jr(e, t) {
2799
2906
  if (typeof e != "string") return null;
2800
2907
  let n = null;
2801
2908
  for (const r of t)
2802
- Ir(r.pattern).test(e) && (!n || Cr(r.pattern, n.pattern)) && (n = r);
2803
- 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;
2804
2911
  }
2805
- function Vs(e, t) {
2806
- return kr(e, t) !== null;
2912
+ function Ic(e, t) {
2913
+ return jr(e, t) !== null;
2807
2914
  }
2808
- const zs = 10 * 1024 * 1024, Xs = 25 * 1024 * 1024, Ys = "sync-target", qs = 20, vr = {
2915
+ const Mc = 10 * 1024 * 1024, kc = 25 * 1024 * 1024, Oc = "sync-target", Cc = 20, Hr = {
2809
2916
  afrikaans: [
2810
2917
  "[Muziek]",
2811
2918
  "(C) TV GELDERLAND 2021",
@@ -2955,14 +3062,14 @@ const zs = 10 * 1024 * 1024, Xs = 25 * 1024 * 1024, Ys = "sync-target", qs = 20,
2955
3062
  "[MÚSICA]",
2956
3063
  "[Music cuts in British]"
2957
3064
  ]
2958
- }, xr = (e) => {
3065
+ }, Gr = (e) => {
2959
3066
  let t = e;
2960
- return Object.values(vr).forEach((n) => {
3067
+ return Object.values(Hr).forEach((n) => {
2961
3068
  n.forEach((r) => {
2962
3069
  t = t.replaceAll(r, "");
2963
3070
  });
2964
3071
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2965
- }, 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([
2966
3073
  "aan",
2967
3074
  "als",
2968
3075
  "ben",
@@ -3075,13 +3182,13 @@ const zs = 10 * 1024 * 1024, Xs = 25 * 1024 * 1024, Ys = "sync-target", qs = 20,
3075
3182
  "you",
3076
3183
  "your"
3077
3184
  ]);
3078
- function Ur(e) {
3185
+ function Jr(e) {
3079
3186
  const t = /* @__PURE__ */ new Set();
3080
3187
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
3081
- n.length < Lr || Pr.has(n) || t.add(n);
3188
+ n.length < Yr || qr.has(n) || t.add(n);
3082
3189
  return [...t];
3083
3190
  }
3084
- function Kr(e, t) {
3191
+ function Zr(e, t) {
3085
3192
  if (!e.length) return 0;
3086
3193
  if (!t.length) return 1;
3087
3194
  const n = new Set(t), r = new Set(e);
@@ -3089,38 +3196,38 @@ function Kr(e, t) {
3089
3196
  for (const o of r) n.has(o) || (i += 1);
3090
3197
  return i / r.size;
3091
3198
  }
3092
- function Br(e, t = Nr) {
3199
+ function Qr(e, t = Wr) {
3093
3200
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
3094
3201
  if (!n.length) return { text: "", segmentCount: 0 };
3095
3202
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
3096
- 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 };
3097
3204
  }
3098
- const jr = 60;
3099
- function Js(e, t, n = jr) {
3205
+ const ei = 60;
3206
+ function vc(e, t, n = ei) {
3100
3207
  const r = new Set(e), i = [...e];
3101
3208
  for (const o of t)
3102
3209
  !o || r.has(o) || (r.add(o), i.push(o));
3103
3210
  return i.slice(-n);
3104
3211
  }
3105
- function Zs(e) {
3212
+ function Nc(e) {
3106
3213
  const { segments: t, now: n, state: r } = e;
3107
- if (r.lastTriggerAt && n - r.lastTriggerAt < Rr)
3214
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Vr)
3108
3215
  return { trigger: !1, reason: "too_soon" };
3109
- const i = Br(t, e.windowMs);
3216
+ const i = Qr(t, e.windowMs);
3110
3217
  if (!i.text) return { trigger: !1, reason: "no_speech" };
3111
3218
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
3112
- if (r.lastQueryTerms && o < Dr)
3219
+ if (r.lastQueryTerms && o < zr)
3113
3220
  return { trigger: !1, reason: "too_few_new" };
3114
- const a = Ur(i.text);
3115
- 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" };
3116
3223
  }
3117
- const Qs = [
3224
+ const xc = [
3118
3225
  "personal",
3119
3226
  "workspace",
3120
3227
  "connections",
3121
3228
  "work",
3122
3229
  "ai"
3123
- ], ec = "navNotice", oe = {
3230
+ ], Rc = "navNotice", le = {
3124
3231
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
3125
3232
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
3126
3233
  // An over-permissive key is harmless — it simply matches nothing.
@@ -3143,53 +3250,53 @@ const Qs = [
3143
3250
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
3144
3251
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
3145
3252
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
3146
- }, Hr = "NL", Fr = 15, Gr = 8, Wr = Array.from(
3147
- 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))
3148
3255
  ).sort((e, t) => t.length - e.length);
3149
- function xe(e) {
3256
+ function Le(e) {
3150
3257
  if (e)
3151
- return oe[e.trim().toUpperCase()];
3258
+ return le[e.trim().toUpperCase()];
3152
3259
  }
3153
3260
  function L(e, t) {
3154
3261
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
3155
3262
  }
3156
- function Ne(e) {
3157
- if (e.length > Fr) return null;
3158
- for (const t of Wr) {
3263
+ function Pe(e) {
3264
+ if (e.length > ni) return null;
3265
+ for (const t of ii) {
3159
3266
  if (!e.startsWith(t)) continue;
3160
3267
  const n = e.slice(t.length);
3161
- for (const r of Object.values(oe)) {
3268
+ for (const r of Object.values(le)) {
3162
3269
  if (r.callingCode !== t) continue;
3163
3270
  const i = r.trunkPrefix, o = i && n.startsWith(i) ? n.slice(i.length) : n;
3164
3271
  if (L(o, r)) return `+${t}${o}`;
3165
3272
  }
3166
3273
  return null;
3167
3274
  }
3168
- return e.length < Gr ? null : `+${e}`;
3275
+ return e.length < ri ? null : `+${e}`;
3169
3276
  }
3170
- function Vr(e) {
3277
+ function oi(e) {
3171
3278
  let t = e.trim();
3172
3279
  const n = t.match(/^(sips?|tel|whatsapp):/i);
3173
3280
  n && (t = t.slice(n[0].length));
3174
3281
  const r = t.indexOf("@");
3175
3282
  return r >= 0 && (t = t.slice(0, r)), t.trim();
3176
3283
  }
3177
- function tc(e) {
3284
+ function Dc(e) {
3178
3285
  if (!e) return !1;
3179
3286
  const t = e.indexOf("@");
3180
3287
  if (t <= 0) return !1;
3181
3288
  const n = e.slice(0, t).trim();
3182
3289
  return !/^[+\d\s().-]+$/.test(n);
3183
3290
  }
3184
- function Re(e, t) {
3291
+ function Ue(e, t) {
3185
3292
  if (!e) return null;
3186
- const n = Vr(e);
3293
+ const n = oi(e);
3187
3294
  if (!n) return null;
3188
3295
  const r = n.startsWith("+"), i = n.replace(/\D/g, "");
3189
3296
  if (!i) return null;
3190
- if (r) return Ne(i);
3191
- if (i.startsWith("00")) return Ne(i.slice(2));
3192
- 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);
3193
3300
  if (!o) return null;
3194
3301
  const a = o.trunkPrefix;
3195
3302
  if (a && i.startsWith(a)) {
@@ -3202,22 +3309,22 @@ function Re(e, t) {
3202
3309
  }
3203
3310
  return !a && L(i, o) ? `+${o.callingCode}${i}` : null;
3204
3311
  }
3205
- function nc(e, t = 9) {
3312
+ function $c(e, t = 9) {
3206
3313
  const n = (e ?? "").replace(/\D/g, "");
3207
3314
  return n.length < t ? null : n.slice(-t);
3208
3315
  }
3209
- function ft(e) {
3316
+ function At(e) {
3210
3317
  if (!e) return null;
3211
3318
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
3212
3319
  if (n <= 0 || n === t.length - 1) return null;
3213
3320
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
3214
3321
  return !r || !i.includes(".") ? null : `${r}@${i}`;
3215
3322
  }
3216
- function rc(e) {
3217
- const t = ft(e);
3323
+ function Lc(e) {
3324
+ const t = At(e);
3218
3325
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
3219
3326
  }
3220
- const zr = /* @__PURE__ */ new Set([
3327
+ const ai = /* @__PURE__ */ new Set([
3221
3328
  "co.uk",
3222
3329
  "org.uk",
3223
3330
  "gov.uk",
@@ -3227,14 +3334,14 @@ const zr = /* @__PURE__ */ new Set([
3227
3334
  "com.br",
3228
3335
  "co.za"
3229
3336
  ]);
3230
- function Xr(e) {
3337
+ function si(e) {
3231
3338
  if (!e) return null;
3232
3339
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
3233
3340
  if (t.length < 2) return null;
3234
3341
  const n = t.slice(-2).join(".");
3235
- 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;
3236
3343
  }
3237
- const Yr = /* @__PURE__ */ new Set([
3344
+ const ci = /* @__PURE__ */ new Set([
3238
3345
  "gmail.com",
3239
3346
  "googlemail.com",
3240
3347
  "outlook.com",
@@ -3279,34 +3386,34 @@ const Yr = /* @__PURE__ */ new Set([
3279
3386
  "proximus.be",
3280
3387
  "scarlet.be"
3281
3388
  ]);
3282
- function ic(e) {
3283
- const t = Xr(e);
3284
- return t ? Yr.has(t) : !1;
3389
+ function Pc(e) {
3390
+ const t = si(e);
3391
+ return t ? ci.has(t) : !1;
3285
3392
  }
3286
- function oc(e) {
3393
+ function Uc(e) {
3287
3394
  if (!e) return !1;
3288
3395
  const t = e.trim().toLowerCase();
3289
3396
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
3290
3397
  }
3291
- function ac(e, t, n) {
3398
+ function Kc(e, t, n) {
3292
3399
  if (!e || !t) return null;
3293
3400
  const r = e.trim().toLowerCase();
3294
3401
  if (r === "tel" || r === "sms" || r === "whatsapp") {
3295
- const o = Re(t, n);
3402
+ const o = Ue(t, n);
3296
3403
  return o ? `tel:${o}` : null;
3297
3404
  }
3298
3405
  if (r === "fax") {
3299
- const o = Re(t, n);
3406
+ const o = Ue(t, n);
3300
3407
  return o ? `fax:${o}` : null;
3301
3408
  }
3302
3409
  if (r === "mailto" || r === "email") {
3303
- const o = ft(t);
3410
+ const o = At(t);
3304
3411
  return o ? `mailto:${o}` : null;
3305
3412
  }
3306
3413
  const i = t.trim().toLowerCase();
3307
3414
  return i ? `${r}:${i}` : null;
3308
3415
  }
3309
- const qr = [
3416
+ const li = [
3310
3417
  /<blockquote/i,
3311
3418
  /class="?gmail_quote/i,
3312
3419
  // Gmail quote container
@@ -3319,72 +3426,72 @@ const qr = [
3319
3426
  // Outlook underscore separator before "From:"
3320
3427
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
3321
3428
  // Gmail "On <date> <name> wrote:"
3322
- ], 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;
3323
- 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) {
3324
3431
  const t = e.split(`
3325
3432
  `);
3326
3433
  for (let n = 0; n < t.length; n++)
3327
- 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)))
3328
3435
  return t.slice(0, n).join(`
3329
3436
  `).trim();
3330
3437
  return e;
3331
3438
  }
3332
- const Qr = /^(?:https?:|mailto:|tel:)/i, ei = /^(?:https?:|cid:|data:image\/)/i;
3333
- function V(e, t) {
3439
+ const pi = /^(?:https?:|mailto:|tel:)/i, fi = /^(?:https?:|cid:|data:image\/)/i;
3440
+ function z(e, t) {
3334
3441
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
3335
3442
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
3336
3443
  }
3337
- const ti = /(!\[[^\]]*\]\([^)]*\))/;
3338
- function $e(e) {
3339
- 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("");
3340
3447
  }
3341
- function z(e) {
3448
+ function X(e) {
3342
3449
  return e.replace(
3343
3450
  /[()\s<>"]/g,
3344
3451
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
3345
3452
  );
3346
3453
  }
3347
- function ni(e) {
3454
+ function gi(e) {
3348
3455
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
3349
- const i = V(r, "src");
3350
- 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)})` : "";
3351
3458
  }).replace(
3352
3459
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
3353
3460
  (n, r, i) => {
3354
- const o = $e(i.replace(/<[^>]*>/g, "")), a = V(r, "href");
3355
- 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;
3356
3463
  }
3357
3464
  );
3358
3465
  }
3359
- 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;
3360
- 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) {
3361
3468
  return /<table\b/i.test(e) || e.includes(`
3362
3469
 
3363
3470
  |`) || t.includes("![") || t.length > 200;
3364
3471
  }
3365
- const si = 40, ci = { left: "---", center: ":---:", right: "---:" };
3366
- function li(e) {
3472
+ const Ei = 40, Si = { left: "---", center: ":---:", right: "---:" };
3473
+ function _i(e) {
3367
3474
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
3368
3475
  return t ? t[1].toLowerCase() : "left";
3369
3476
  }
3370
- function ui(e) {
3477
+ function Ti(e) {
3371
3478
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
3372
3479
  }
3373
- function di(e) {
3480
+ function wi(e) {
3374
3481
  const t = [];
3375
- for (const a of e.matchAll(ii)) {
3482
+ for (const a of e.matchAll(yi)) {
3376
3483
  const s = [];
3377
- for (const c of a[1].matchAll(oi)) {
3378
- const m = ui(c[3]);
3379
- if (ai(c[3], m)) return null;
3380
- 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]) });
3381
3488
  }
3382
3489
  if (s.length === 0) return null;
3383
3490
  s.some((c) => c.text !== "") && t.push(s);
3384
3491
  }
3385
3492
  const n = t[0]?.length ?? 0;
3386
3493
  if (t.length < 2 || n < 2 || t.some((a) => a.length !== n)) return null;
3387
- 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(`
3388
3495
  `);
3389
3496
  return `
3390
3497
 
@@ -3394,36 +3501,36 @@ ${o}
3394
3501
 
3395
3502
  `;
3396
3503
  }
3397
- function pi(e) {
3504
+ function Ii(e) {
3398
3505
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
3399
3506
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
3400
3507
  }
3401
- function fi(e) {
3508
+ function Mi(e) {
3402
3509
  let t = e;
3403
- for (let n = 0; n < si; n++) {
3404
- const r = ri.exec(t);
3510
+ for (let n = 0; n < Ei; n++) {
3511
+ const r = hi.exec(t);
3405
3512
  if (!r || r.index === void 0) break;
3406
- const o = di(r[1]) ?? `
3513
+ const o = wi(r[1]) ?? `
3407
3514
 
3408
- ${pi(r[1])}
3515
+ ${Ii(r[1])}
3409
3516
 
3410
3517
  `;
3411
3518
  t = t.slice(0, r.index) + o + t.slice(r.index + r[0].length);
3412
3519
  }
3413
3520
  return t;
3414
3521
  }
3415
- function Le(e, t) {
3522
+ function Be(e, t) {
3416
3523
  let n = e;
3417
3524
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
3418
- `), 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, `
3419
3526
 
3420
3527
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
3421
3528
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
3422
3529
  }
3423
- function Pe(e) {
3530
+ function je(e) {
3424
3531
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
3425
3532
  }
3426
- const mi = {
3533
+ const ki = {
3427
3534
  euro: "€",
3428
3535
  pound: "£",
3429
3536
  yen: "¥",
@@ -3445,386 +3552,416 @@ const mi = {
3445
3552
  rdquo: "”",
3446
3553
  apos: "'"
3447
3554
  };
3448
- function Ue(e) {
3449
- 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, "&");
3450
3557
  }
3451
- function Ke(e) {
3558
+ function Ge(e) {
3452
3559
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
3453
3560
  `).replace(/\n{3,}/g, `
3454
3561
 
3455
3562
  `).trim();
3456
3563
  }
3457
- const gi = /<\s*(html|body|div|p|table|br|span)\b/i;
3458
- function sc(e) {
3459
- 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);
3460
3567
  }
3461
- function cc(e) {
3462
- return mt(e, !1);
3568
+ function Bc(e) {
3569
+ return Et(e, !1);
3463
3570
  }
3464
- function lc(e) {
3465
- return mt(e, !0);
3571
+ function jc(e) {
3572
+ return Et(e, !0);
3466
3573
  }
3467
- function mt(e, t) {
3574
+ function Et(e, t) {
3468
3575
  if (typeof e != "string" || !e) return "";
3469
3576
  let n = e.length;
3470
- for (const a of qr) {
3577
+ for (const a of li) {
3471
3578
  const s = e.search(a);
3472
3579
  s >= 0 && s < n && (n = s);
3473
3580
  }
3474
3581
  const r = e.slice(0, n);
3475
- let i = Ke(Ue(Le(r, t)));
3476
- 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;
3477
3584
  }
3478
3585
  export {
3479
- no as ACTIVE_ASSIGNMENT_STATUSES,
3586
+ ho as ACTIVE_ASSIGNMENT_STATUSES,
3480
3587
  _ as ACTIVITY_CATALOG,
3481
- dr as AI_ATTACHMENT_LIMITS,
3482
- Xa as AI_ATTACHMENT_MAX_PER_TURN,
3483
- za as AI_ATTACHMENT_TURN_BUDGET,
3484
- He as AI_VENDORS,
3485
- Pt as ALLOWED_LINK_SCHEMES,
3486
- xs as APP_PERMISSIONS,
3487
- me as ARTIFACT_MAX_BLOCKS,
3488
- Xi as ARTIFACT_MAX_BODY_BYTES,
3489
- G as ARTIFACT_MAX_CELL_LEN,
3490
- be as ARTIFACT_MAX_KPI_ITEMS,
3491
- ge as ARTIFACT_MAX_LIST_ITEMS,
3492
- ye as ARTIFACT_MAX_TABLE_COLUMNS,
3493
- he as ARTIFACT_MAX_TABLE_ROWS,
3494
- Ge as ARTIFACT_MAX_TEXT_LEN,
3495
- Vt as ASSIGNMENT_SCOPE_KIND,
3496
- Qa as ASSIST_BANDS,
3497
- Za as ASSIST_SOURCE_PROVIDER_GROUP,
3498
- an as ATTENTION_STATUSES,
3499
- dt as AUTH_APP_NAME,
3500
- Nn as AUTO_READY_MIN_PROPOSALS,
3501
- Rn as AUTO_READY_RATE,
3502
- Mt as ActivityTypeRegistry,
3503
- Ri as BUILT_IN_ONLY,
3504
- sn as BULK_PENALTY,
3505
- Rr as CADENCE_FLOOR_MS,
3506
- Dr as CADENCE_MIN_NEW_SEGMENTS,
3507
- $r as CADENCE_MIN_NOVELTY,
3508
- Nr as CADENCE_WINDOW_MS,
3509
- Qo as CLASSIFY_VARS,
3510
- As as CONNECTOR_PROVIDER_GROUP,
3511
- Es as CONTEXT_COLLECT_SERVICE,
3512
- Wi as CORE_DIMENSIONS,
3513
- yr as CommunicationScheme,
3514
- qt as DAY_MS,
3515
- Ko as DEFAULT_MEMORY_BUDGET,
3516
- Hr as DEFAULT_PHONE_REGION,
3517
- Is as DOCUMENT_APPLY_SERVICE,
3518
- Ts as DOCUMENT_DESCRIBE_SERVICE,
3519
- ws as DOCUMENT_INSPECT_SERVICE,
3520
- ct as DOCUMENT_OPERATIONS,
3521
- ta as EMPTY_WORKFLOW,
3522
- gs as FEATURE_FOLDER_MANAGEMENT,
3523
- ys as FEATURE_MESSAGE_REACTIONS,
3524
- hs as FEATURE_REMOTE_SEARCH,
3525
- ln as FOLLOW_UP_HOURS,
3526
- Yt as HOUR_MS,
3527
- 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,
3528
3639
  w as INELIGIBLE,
3529
- Os as INSTALLATION_HEADER,
3530
- On as INTERACTION_KIND,
3531
- fs as InteractionParticipantRole,
3532
- yn as KB_FALLBACK_LOCALE,
3533
- _e as KB_LOCALES,
3534
- ie as LOOSE_STATUSES,
3535
- tn as MAIL_HINT_HEADERS,
3536
- Ai as MAX_ACTIONS,
3537
- zt as MAX_ASSIGNMENT_TURNS,
3538
- hi as MAX_BLOCKS,
3539
- Ze as MAX_COLLECTION_DEPTH,
3540
- zs as MAX_EDITABLE_FILE_BYTES,
3541
- yi as MAX_FIELDS,
3542
- bi as MAX_LIST_ITEMS,
3543
- $o as MAX_MEMORY_BROWSE,
3544
- Uo as MAX_MEMORY_BUDGET,
3545
- Lo as MAX_MEMORY_CHARS,
3546
- jr as MAX_SHOWN_KEYS,
3547
- Yn as MAX_TOPIC_CANDIDATES,
3548
- Xn as MAX_TOPIC_EXAMPLES,
3549
- W as MAX_TOPIC_EXAMPLE_CHARS,
3550
- Xs as MAX_VIEWABLE_FILE_BYTES,
3551
- Po as MIN_MEMORY_BUDGET,
3552
- ec as NAV_NOTICE_SLOT,
3553
- ks as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3554
- jo as ONBOARDING_SOURCE_PROVIDER_GROUP,
3555
- Z as PAUSE_SNOOZED,
3556
- Q as PAUSE_WAITING_FOR_CUSTOMER,
3557
- oe as PHONE_REGIONS,
3558
- lt as PRESENCE_ONLINE_WINDOW_MS,
3559
- Tr as PRESENCE_SURVIVES_OFFLINE,
3560
- Fo as PROFILE_TOOL_DISPOSITIONS,
3561
- ps as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3562
- ds as PROVIDER_FEATURE_MESSAGE_WINDOW,
3563
- Yr as PUBLIC_EMAIL_DOMAINS,
3564
- Te as READ_STEP_TYPES,
3565
- En as RELATED_SUBJECT_KINDS,
3566
- st as RESERVED_STATUS_KEYS,
3567
- Ks as RESOURCE_ATTACHED_SERVICE,
3568
- Ls as RESOURCE_DESCRIBE_SERVICE,
3569
- Us as RESOURCE_RESOLVE_SERVICE,
3570
- Ps as RESOURCE_SEARCH_SERVICE,
3571
- Hs as SCOPE_READ_ROUTE,
3572
- js as SCOPE_RELATED_ROUTE,
3573
- Qs as SETTINGS_CATEGORIES,
3574
- lo as SIGNATURE_INTENTS,
3575
- cn as SLA_HOURS_BY_PRIORITY,
3576
- fa as SLA_METRICS,
3577
- ma as SLA_PAUSE_REASONS,
3578
- vn as STEP_MAX_TOKENS_MAX,
3579
- kn as STEP_MAX_TOKENS_MIN,
3580
- en as SUMMARY_MIN_LAST_CHARS,
3581
- Qt as SUMMARY_MIN_MESSAGES,
3582
- qs as SYNC_RUN_MAX_ERRORS,
3583
- Ys as SYNC_TARGET_PROVIDER_GROUP,
3584
- Wt as TERMINAL_ASSIGNMENT_STATUSES,
3585
- Dn as TERMINAL_RUN_STATUSES,
3586
- Zo as TRIGGER_VARS,
3587
- bs as UNSUPPORTED,
3588
- Rt as USAGE_DIMENSIONS,
3589
- Dt as USAGE_DIMENSION_IDS,
3590
- nr as WORK_ACTIVITY_SCOPE_KIND,
3591
- Ho as WORK_AREAS,
3592
- xa as WORK_COMMENT_ADDED,
3593
- Na as WORK_ITEM_ASSIGNED,
3594
- er as WORK_ITEM_SCOPE_KIND,
3595
- Ra as WORK_ITEM_STATUS_CHANGED,
3596
- 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,
3597
3713
  P as W_PRIORITY,
3598
- Ca as acceptExampleCandidate,
3599
- _n as actingIdentityKey,
3600
- Ma as activeWorkTypes,
3601
- Si as activityIconOf,
3602
- xi as activityJoinUrl,
3603
- _t as activitySnippet,
3604
- Tt as activityTextParams,
3605
- vi as activityTimelineText,
3606
- 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,
3607
3723
  b as activityTypeInfo,
3608
- Vo as actorKey,
3609
- Oa as addExampleCandidate,
3610
- ne as addWorkingMs,
3611
- Rs as agePresenceEntry,
3612
- ur as aiAttachmentKind,
3613
- Ya as aiAttachmentRejection,
3614
- fe as aiBudgetLimit,
3615
- Fi as aiBudgetPeriodKey,
3616
- Ct as aiBudgetPeriodStart,
3617
- Hi as aiBudgetState,
3618
- ji as aiVendorAcceptsAttachment,
3619
- Ui as aiVendorDefaultModel,
3620
- Pi as aiVendorLabel,
3621
- Bi as aiVendorNeedsBaseUrl,
3622
- Ki as aiVendorsWith,
3623
- pt as appNameFromPath,
3624
- Sa as applyRounding,
3625
- uo as applySignature,
3626
- xn as approvalRate,
3627
- qi as artifactBodyBytes,
3628
- Ji as artifactOutline,
3629
- Zi as artifactToMarkdown,
3630
- qo as assignmentMismatch,
3631
- io as assignmentScopeKey,
3632
- so as assignmentSubject,
3633
- Ni as buildActivityPreview,
3634
- as as buildChannelIntents,
3635
- Qi as buildShareKeys,
3636
- Br as buildWindow,
3637
- re as calendarOf,
3638
- ko as canNestUnder,
3639
- Mi as carriesText,
3640
- xo as categoryLabel,
3641
- or as categoryOf,
3642
- us as channelKindForScheme,
3643
- _i as channelKindOf,
3644
- ea as clampStepMaxTokens,
3645
- yo as classifyMail,
3646
- lc as cleanMessageMarkdown,
3647
- cc as cleanMessageText,
3648
- ts as compareAssistRank,
3649
- zn as compareWorkTypes,
3650
- Va as cycleState,
3651
- co as decideAssignmentState,
3652
- Zs as decideCadence,
3653
- is as decideIncomingCall,
3654
- bn as defaultLocaleOf,
3655
- Ha as defaultStatusKey,
3656
- ms as defineIntent,
3657
- gn as depthOf,
3658
- Ns as derivePresence,
3659
- os as disabledIntentsFromCapabilities,
3660
- Ms as documentKindOf,
3661
- ha as dueAtOf,
3662
- Ea as elapsedSeconds,
3663
- rc as emailDomain,
3664
- ac as endpointKey,
3665
- Mr as extractParams,
3666
- Ur as extractTerms,
3667
- cs as filterByEndpoint,
3668
- ss as filterByIntent,
3669
- 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,
3670
3789
  K as findAiVendor,
3671
- Cs as flattenLocales,
3672
- vt as floorToPeriod,
3673
- Sn as formatActingIdentity,
3674
- Ta as formatClock,
3675
- _a as formatHm,
3676
- La as formatItemKey,
3677
- kt as formatPeriod,
3678
- Aa as formatSlaDuration,
3679
- Ja as freshSources,
3680
- Di as getActivitySeenUserIds,
3681
- po as getContactEndpoints,
3682
- wo as getShortTitle,
3683
- To as getUrgencyScore,
3684
- ua as hasReacted,
3685
- Qe as heightOf,
3686
- Mo as helpCenterText,
3687
- Jo as humanizeAction,
3688
- Cn as interactionIdOf,
3689
- va as isAgentUser,
3690
- So as isAssigned,
3691
- ro as isAssignmentTerminal,
3692
- In as isAssignmentTrigger,
3693
- ia as isAutoReady,
3694
- mn as isAwaitingThem,
3695
- Li as isChatMessageActivity,
3696
- _o as isClosed,
3697
- Ci as isConnectedType,
3698
- Fs as isDeepLink,
3699
- hn as isDescendant,
3700
- fo as isEligible,
3701
- $i as isEmailActivity,
3702
- sc as isHtmlBody,
3703
- aa as isInFlight,
3704
- on as isInteractionUnseen,
3705
- Gs as isLandingPath,
3706
- Zt as isLikelyBulk,
3707
- Be as isMessageShape,
3708
- Ti as isMessageType,
3709
- Cr as isMoreSpecificPattern,
3710
- je as isNoteShape,
3711
- Wn as isOpenClock,
3712
- qa as isOutwardTool,
3713
- dn as isParked,
3714
- $n as isPaused,
3715
- Oi as isPlaybookAuthoredType,
3716
- ic as isPublicEmailDomain,
3717
- Vs as isPublicPath,
3718
- pn as isReminderActive,
3719
- Ii as isReplyableType,
3720
- Ao as isSlaAtRisk,
3721
- oa as isTerminal,
3722
- go as isThreadLongEnough,
3723
- ki as isTranscriptType,
3724
- Fa as isWorkClosed,
3725
- Ia as isWorkTypeVisible,
3726
- Ka as itemDossierKeys,
3727
- ir as ladderFor,
3728
- Io as linkLabel,
3729
- Gi as listeningAllowed,
3730
- Co as localeInstruction,
3731
- Oo as localeName,
3732
- vo as localesOf,
3733
- tc as looksLikeEmail,
3734
- ls as matchContactToIntents,
3735
- kr as matchPublicRoute,
3736
- Ro as mcpCredentialScope,
3737
- Do as mcpToolPrefix,
3738
- Js as mergeShownKeys,
3739
- St as messageCountsAs,
3740
- oc as needsPhoneRegion,
3741
- wi as nestsUnderParent,
3742
- ya as nextSlaClock,
3743
- Yi as normalizeArtifactBlocks,
3744
- Ei as normalizeBlocks,
3745
- 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,
3746
3873
  I as normalizeExample,
3747
- vs as notificationPrefKey,
3748
- Kr as novelty,
3749
- _s as operationDescriptor,
3750
- Ss as operationsForKind,
3751
- mo as parkMarksById,
3752
- Go as parseActingIdentity,
3753
- da as parseClockMinutes,
3754
- Pa as parseItemKey,
3755
- Ir as pathToRegex,
3756
- pa as pauseBitFor,
3757
- Vi as periodsInRange,
3758
- nc as phoneSuffix,
3759
- ho as pickMailHeaders,
3760
- At as plainTextFromMarkdown,
3761
- ga as planSlaEvent,
3762
- wn as playbookActor,
3763
- ra as procedureOf,
3764
- Ba as projectDossierKeys,
3765
- Or as publicBasePathFor,
3766
- Ws as publicRoutePatterns,
3767
- ao as reactionWakesAssignment,
3768
- X as readPath,
3769
- we as readStepError,
3770
- un as recencyOf,
3771
- Mn as refKey,
3772
- Xr as registrableDomain,
3773
- Jn as rejectExampleCandidate,
3774
- Bo as relatedByDefault,
3775
- ee as remainingMsOf,
3776
- mr as resolveAccountCapabilities,
3777
- Y as resolveActivityText,
3778
- fr as resolveChannelIntents,
3779
- Xt as resolveSignature,
3780
- Ds as resolveWorkMode,
3781
- Bs as resourceKindOf,
3782
- Wo as runActor,
3783
- ca as runInteractionId,
3784
- jt as sanitizeInline,
3785
- xr as sanitizeTranscript,
3786
- Eo as scoreInteraction,
3787
- Da as scoreWorkItem,
3788
- No as selectLenses,
3789
- rs as sessionsHoldCannotReach,
3790
- ns as sessionsToHold,
3791
- ze as shareKeyForTeam,
3792
- Ve as shareKeyForUser,
3793
- eo as shareKeysForViewer,
3794
- $s as shouldRunAudioPipeline,
3795
- ba as slaBadgeTone,
3796
- bo as slaHoursByInbox,
3797
- fn as slaHoursFor,
3798
- ar as sortStatuses,
3799
- pr as sourceKey,
3800
- ja as statusIn,
3801
- na as stepsOf,
3802
- Et as stripHtml,
3803
- sa as subjectKeyOf,
3804
- et as subjectOf,
3805
- es as subjectRef,
3806
- Ua as suggestProjectKey,
3807
- la as summarizeReactions,
3808
- Yo as targetById,
3809
- Xo as targetForActivityType,
3810
- Tn as toActingIdentity,
3811
- Re as toE164,
3812
- to as toolSourceKinds,
3813
- Zn as topicOfferedForTeam,
3814
- ka as topicsForTeam,
3815
- qn as truncateExample,
3816
- Ga as uniqueWorkStatusKey,
3817
- wa as uniqueWorkTypeKey,
3818
- $t as usageMetricId,
3819
- zi as usageMetrics,
3820
- Wa as validateStatuses,
3821
- zo as valueAtPath,
3822
- te as waitHoursOf,
3823
- oo as wakesAssignment,
3824
- $a as workActivityScopeKey,
3825
- rr as workItemScopeKey,
3826
- at as workProjectScopeKey,
3827
- sr as workStatusKey,
3828
- Vn as workTypeKey,
3829
- 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
3830
3967
  };