@opencxh/domain 1.246.0 → 1.247.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 is = 10, ss = 10, as = 10, cs = 5, on = /* @__PURE__ */ new Set([
1
+ const ii = 10, ai = 10, ci = 10, li = 5, on = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function oe(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function ls(e, t = () => {
17
+ function ui(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -59,9 +59,9 @@ function ls(e, t = () => {
59
59
  o.items.length > 10 && (t("more than 10 list items"), o.items = o.items.slice(0, 10));
60
60
  break;
61
61
  case "actions": {
62
- const i = Array.isArray(o.elements) ? o.elements : [], s = i.filter((a) => a?.action_id && a.invoke && oe(a.text));
63
- if (s.length !== i.length && t("an action without action_id, invoke or text"), s.length === 0) continue;
64
- s.length > 5 && t("more than 5 actions"), o.elements = s.slice(0, 5);
62
+ const s = Array.isArray(o.elements) ? o.elements : [], i = s.filter((a) => a?.action_id && a.invoke && oe(a.text));
63
+ if (i.length !== s.length && t("an action without action_id, invoke or text"), i.length === 0) continue;
64
+ i.length > 5 && t("more than 5 actions"), o.elements = i.slice(0, 5);
65
65
  break;
66
66
  }
67
67
  }
@@ -90,7 +90,7 @@ function X(e) {
90
90
  function Le(e) {
91
91
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
92
92
  }
93
- function ie(e) {
93
+ function se(e) {
94
94
  return e?.split("@")?.[0] || e || "";
95
95
  }
96
96
  function Y(e) {
@@ -106,7 +106,7 @@ const R = {
106
106
  channelKind: "voice",
107
107
  icon: "phone",
108
108
  snippet: () => "Gesprek gestart",
109
- timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${ie(e.payload.from)}` : `Outbound call started — ${ie(e.payload.to)}`
109
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${se(e.payload.from)}` : `Outbound call started — ${se(e.payload.to)}`
110
110
  },
111
111
  VOICE_CALL_ANSWERED: {
112
112
  shape: "event",
@@ -141,7 +141,7 @@ const R = {
141
141
  channelKind: "voice",
142
142
  icon: "phone",
143
143
  snippet: () => "Gemiste oproep",
144
- timeline: (e) => `Missed call — ${ie(e.payload.from)}`
144
+ timeline: (e) => `Missed call — ${se(e.payload.from)}`
145
145
  },
146
146
  VOICE_CALL_FAILED: {
147
147
  shape: "event",
@@ -467,40 +467,40 @@ function Ke(e) {
467
467
  function w(e) {
468
468
  return R[e];
469
469
  }
470
- function us(e) {
470
+ function di(e) {
471
471
  return w(e)?.icon ?? "circle";
472
472
  }
473
- function ds(e) {
473
+ function pi(e) {
474
474
  return w(e)?.channelKind;
475
475
  }
476
476
  function Et(e) {
477
477
  return e === "message" || e === "note";
478
478
  }
479
- function ps(e) {
479
+ function fi(e) {
480
480
  return Et(w(e)?.shape);
481
481
  }
482
482
  function It(e) {
483
483
  return e === "note";
484
484
  }
485
- function fs(e) {
485
+ function mi(e) {
486
486
  return It(w(e)?.shape);
487
487
  }
488
- function ms(e) {
488
+ function hi(e) {
489
489
  return w(e)?.replyable === !0;
490
490
  }
491
- function hs(e) {
491
+ function gi(e) {
492
492
  return w(e)?.carriesText === !0;
493
493
  }
494
494
  function un(e) {
495
495
  return w(e)?.countsAs;
496
496
  }
497
- function gs(e) {
497
+ function yi(e) {
498
498
  return w(e)?.playbookAuthored === !0;
499
499
  }
500
- function ys(e) {
500
+ function bi(e) {
501
501
  return w(e)?.connected === !0;
502
502
  }
503
- function bs(e) {
503
+ function _i(e) {
504
504
  const t = w(e);
505
505
  return t?.shape === "artifact" && t?.carriesText === !0;
506
506
  }
@@ -508,11 +508,11 @@ function dn(e) {
508
508
  const t = w(e.type)?.snippet;
509
509
  return t ? t(e) : "";
510
510
  }
511
- function _s(e, t) {
511
+ function Ai(e, t) {
512
512
  const n = w(e.type)?.timeline;
513
513
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
514
514
  }
515
- function As(e) {
515
+ function Si(e) {
516
516
  const t = w(e.type)?.joinUrl;
517
517
  return t ? t(e) : void 0;
518
518
  }
@@ -530,8 +530,8 @@ function me(e, t, n) {
530
530
  if ("value" in e)
531
531
  return fe(t, e.value) || null;
532
532
  const r = {};
533
- for (const [i, s] of Object.entries(e.params ?? {}))
534
- r[i] = fe(t, s);
533
+ for (const [s, i] of Object.entries(e.params ?? {}))
534
+ r[s] = fe(t, i);
535
535
  const o = n(e.key, r);
536
536
  return o === e.key ? null : o;
537
537
  }
@@ -547,7 +547,7 @@ function fn(e) {
547
547
  const t = e.trim();
548
548
  return t.length <= Ue ? t : `${t.slice(0, Ue - 1).trimEnd()}…`;
549
549
  }
550
- function Ss(e, t) {
550
+ function Ei(e, t) {
551
551
  const n = pn(t?.text, e), r = t ? me(t.text, e, (o) => o) : null;
552
552
  return {
553
553
  activityId: e.id,
@@ -681,20 +681,20 @@ class hn {
681
681
  return this.translate;
682
682
  }
683
683
  }
684
- const Es = new hn();
685
- function Is(e, t, n = []) {
684
+ const Ii = new hn();
685
+ function Ti(e, t, n = []) {
686
686
  const r = e.createdAt;
687
687
  if (!r) return [];
688
688
  const o = new Set(n);
689
- return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([i, s]) => s >= r && !o.has(i)).map(([i]) => i);
689
+ return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([s, i]) => i >= r && !o.has(s)).map(([s]) => s);
690
690
  }
691
691
  function gn(e) {
692
692
  return e.createdAt ?? 0;
693
693
  }
694
- function Ts(e) {
694
+ function wi(e) {
695
695
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
696
696
  }
697
- function ws(e) {
697
+ function ki(e) {
698
698
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
699
699
  }
700
700
  const Tt = [
@@ -790,23 +790,23 @@ const Tt = [
790
790
  function te(e) {
791
791
  return Tt.find((t) => t.id === e);
792
792
  }
793
- function ks(e) {
793
+ function vi(e) {
794
794
  return te(e)?.label ?? e;
795
795
  }
796
- function Ms(e, t = "gpt-5-mini") {
796
+ function Mi(e, t = "gpt-5-mini") {
797
797
  return te(e)?.defaultModel ?? t;
798
798
  }
799
- function vs(e) {
799
+ function Ci(e) {
800
800
  return Tt.filter((t) => t.capabilities.includes(e));
801
801
  }
802
- function Cs(e) {
802
+ function Oi(e) {
803
803
  const t = te(e);
804
804
  return !!t && !t.baseUrl;
805
805
  }
806
- function Os(e, t) {
806
+ function xi(e, t) {
807
807
  return t === "text" ? !0 : te(e)?.attachmentKinds?.includes(t) === !0;
808
808
  }
809
- function xs(e, t) {
809
+ function Ni(e, t) {
810
810
  if (!e.enabled) return "ok";
811
811
  const n = je(e.hardLimitNanos), r = je(e.softLimitNanos);
812
812
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -818,14 +818,14 @@ function yn(e, t = "month") {
818
818
  const n = new Date(e);
819
819
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
820
820
  }
821
- function Ns(e, t = "month") {
821
+ function Ri(e, t = "month") {
822
822
  const n = new Date(yn(e, t));
823
823
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
824
824
  }
825
- function Rs(e) {
825
+ function Di(e) {
826
826
  return e?.listeningEnabled !== !1;
827
827
  }
828
- const Ds = [
828
+ const $i = [
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,26 +835,26 @@ const Ds = [
835
835
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
836
836
  { id: "time", label: "Tijd", labelSource: "raw" }
837
837
  ];
838
- function se(e) {
838
+ function ie(e) {
839
839
  return e < 10 ? `0${e}` : `${e}`;
840
840
  }
841
841
  function j(e, t) {
842
- const n = new Date(e), r = `${n.getUTCFullYear()}-${se(n.getUTCMonth() + 1)}-${se(n.getUTCDate())}`;
843
- return t === "day" ? r : `${r}T${se(n.getUTCHours())}`;
842
+ const n = new Date(e), r = `${n.getUTCFullYear()}-${ie(n.getUTCMonth() + 1)}-${ie(n.getUTCDate())}`;
843
+ return t === "day" ? r : `${r}T${ie(n.getUTCHours())}`;
844
844
  }
845
845
  function H(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
849
  const bn = 36e5, _n = 864e5;
850
- function $s(e, t, n) {
850
+ function Li(e, t, n) {
851
851
  const r = n === "hour" ? bn : _n, o = [];
852
- for (let i = H(e, n); i <= t; i += r)
853
- o.push(j(i, n));
852
+ for (let s = H(e, n); s <= t; s += r)
853
+ o.push(j(s, n));
854
854
  return o;
855
855
  }
856
856
  const An = /* @__PURE__ */ new Set(["time"]);
857
- function Ls(e, t, n) {
857
+ function Pi(e, t, n) {
858
858
  if (!e) return [];
859
859
  const r = new Set(e.supportedDimensions ?? []);
860
860
  return t.filter((o) => r.has(o.id) && !An.has(o.id)).map((o) => ({
@@ -863,11 +863,11 @@ function Ls(e, t, n) {
863
863
  options: o.options?.length ? o.options : n[o.id] ?? []
864
864
  })).filter((o) => o.options.length > 0);
865
865
  }
866
- function Ps(e, t) {
866
+ function Ki(e, t) {
867
867
  const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
868
868
  return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
869
869
  }
870
- function Ks(e) {
870
+ function Ui(e) {
871
871
  return { value: e.id, label: `${e.category} · ${e.label}` };
872
872
  }
873
873
  const Sn = [
@@ -877,7 +877,7 @@ const Sn = [
877
877
  function In(e, t) {
878
878
  return `${e}.usage.${t}`;
879
879
  }
880
- function Us(e, t) {
880
+ function Fi(e, t) {
881
881
  return t.map((n) => ({
882
882
  id: In(e, n.unit),
883
883
  label: n.label,
@@ -892,7 +892,7 @@ function Us(e, t) {
892
892
  ]
893
893
  }));
894
894
  }
895
- const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), He = 200, Ge = 100, We = 200, Ve = 12, ze = 4, Xe = 10, Tn = 8, Ye = 12, kt = 4e3, q = 500, Fs = 1024 * 1024, wn = /* @__PURE__ */ new Set([
895
+ const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), He = 200, Ge = 100, We = 200, Ve = 12, ze = 4, Xe = 10, Tn = 8, Ye = 12, kt = 4e3, q = 500, Bi = 1024 * 1024, wn = /* @__PURE__ */ new Set([
896
896
  "heading",
897
897
  "paragraph",
898
898
  "list",
@@ -906,14 +906,14 @@ const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
906
906
  "letterhead",
907
907
  "totals",
908
908
  "pagebreak"
909
- ]), kn = ["http:", "https:", "mailto:", "tel:"], Mn = /^[a-z][a-z0-9+.-]*:/i;
910
- function Me(e) {
909
+ ]), kn = ["http:", "https:", "mailto:", "tel:"], vn = /^[a-z][a-z0-9+.-]*:/i;
910
+ function ve(e) {
911
911
  const t = e.trim().replace(/^<|>$/g, "");
912
912
  if (!t) return !1;
913
- const n = Mn.exec(t)?.[0];
913
+ const n = vn.exec(t)?.[0];
914
914
  return n ? kn.includes(n.toLowerCase()) : !t.startsWith("//");
915
915
  }
916
- const vn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
916
+ const Mn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
917
917
  function Cn(e) {
918
918
  let t = "", n = 0;
919
919
  for (; n < e.length; ) {
@@ -922,38 +922,38 @@ function Cn(e) {
922
922
  t += e[n], n += 1;
923
923
  continue;
924
924
  }
925
- const o = n + (r ? 2 : 1), i = qe(e, o, "[", "]");
926
- if (i < 0 || e[i + 1] !== "(") {
925
+ const o = n + (r ? 2 : 1), s = qe(e, o, "[", "]");
926
+ if (s < 0 || e[s + 1] !== "(") {
927
927
  t += e[n], n += 1;
928
928
  continue;
929
929
  }
930
- const s = qe(e, i + 2, "(", ")");
931
- if (s < 0) {
930
+ const i = qe(e, s + 2, "(", ")");
931
+ if (i < 0) {
932
932
  t += e[n], n += 1;
933
933
  continue;
934
934
  }
935
- const a = e.slice(o, i), u = e.slice(i + 2, s).trim().split(/\s+/)[0] ?? "";
936
- t += r || !Me(u) ? a : e.slice(n, s + 1), n = s + 1;
935
+ const a = e.slice(o, s), u = e.slice(s + 2, i).trim().split(/\s+/)[0] ?? "";
936
+ t += r || !ve(u) ? a : e.slice(n, i + 1), n = i + 1;
937
937
  }
938
938
  return t;
939
939
  }
940
940
  function qe(e, t, n, r) {
941
941
  let o = 1;
942
- for (let i = t; i < e.length; i += 1) {
943
- if (e[i] === "\\") {
944
- i += 1;
942
+ for (let s = t; s < e.length; s += 1) {
943
+ if (e[s] === "\\") {
944
+ s += 1;
945
945
  continue;
946
946
  }
947
- if (e[i] === n) o += 1;
948
- else if (e[i] === r && (o -= 1, o === 0))
949
- return i;
947
+ if (e[s] === n) o += 1;
948
+ else if (e[s] === r && (o -= 1, o === 0))
949
+ return s;
950
950
  }
951
951
  return -1;
952
952
  }
953
953
  function On(e) {
954
954
  return Cn(e).replace(
955
- vn,
956
- (t, n, r) => Me(r) ? t : ""
955
+ Mn,
956
+ (t, n, r) => ve(r) ? t : ""
957
957
  );
958
958
  }
959
959
  function T(e, t = kt) {
@@ -968,7 +968,7 @@ function U(e, t = 200) {
968
968
  function Nn(e, t = "info") {
969
969
  return typeof e == "string" && wt.has(e) ? e : t;
970
970
  }
971
- function Bs(e, t = () => {
971
+ function ji(e, t = () => {
972
972
  }) {
973
973
  if (!Array.isArray(e)) return [];
974
974
  const n = [];
@@ -983,52 +983,52 @@ function Bs(e, t = () => {
983
983
  t(`unknown block type ${String(o.type)}`);
984
984
  continue;
985
985
  }
986
- const i = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
986
+ const s = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
987
987
  switch (o.type) {
988
988
  case "heading": {
989
- const s = T(o.text);
990
- if (!s) {
989
+ const i = T(o.text);
990
+ if (!i) {
991
991
  t("a heading without text");
992
992
  continue;
993
993
  }
994
994
  const a = o.level === 2 || o.level === 3 ? o.level : 1;
995
- n.push({ ...i, type: "heading", level: a, text: s });
995
+ n.push({ ...s, type: "heading", level: a, text: i });
996
996
  break;
997
997
  }
998
998
  case "paragraph": {
999
- const s = T(o.text);
1000
- if (!s) {
999
+ const i = T(o.text);
1000
+ if (!i) {
1001
1001
  t("a paragraph without text");
1002
1002
  continue;
1003
1003
  }
1004
- n.push({ ...i, type: "paragraph", text: s });
1004
+ n.push({ ...s, type: "paragraph", text: i });
1005
1005
  break;
1006
1006
  }
1007
1007
  case "quote": {
1008
- const s = T(o.text);
1009
- if (!s) {
1008
+ const i = T(o.text);
1009
+ if (!i) {
1010
1010
  t("a quote without text");
1011
1011
  continue;
1012
1012
  }
1013
- n.push({ ...i, type: "quote", text: s });
1013
+ n.push({ ...s, type: "quote", text: i });
1014
1014
  break;
1015
1015
  }
1016
1016
  case "code": {
1017
- const s = xn(o.text);
1018
- if (!s) {
1017
+ const i = xn(o.text);
1018
+ if (!i) {
1019
1019
  t("a code block without text");
1020
1020
  continue;
1021
1021
  }
1022
1022
  const a = typeof o.lang == "string" ? { lang: o.lang.slice(0, 32) } : {};
1023
- n.push({ ...i, type: "code", ...a, text: s });
1023
+ n.push({ ...s, type: "code", ...a, text: i });
1024
1024
  break;
1025
1025
  }
1026
1026
  case "divider":
1027
- n.push({ ...i, type: "divider" });
1027
+ n.push({ ...s, type: "divider" });
1028
1028
  break;
1029
1029
  case "list": {
1030
- const s = Array.isArray(o.items) ? o.items : [], a = [];
1031
- for (const l of s) {
1030
+ const i = Array.isArray(o.items) ? o.items : [], a = [];
1031
+ for (const l of i) {
1032
1032
  if (a.length >= Ge) {
1033
1033
  t(`more than ${Ge} list items`);
1034
1034
  break;
@@ -1043,12 +1043,12 @@ function Bs(e, t = () => {
1043
1043
  continue;
1044
1044
  }
1045
1045
  const u = o.style === "numbered" ? "numbered" : "bulleted";
1046
- n.push({ ...i, type: "list", style: u, items: a });
1046
+ n.push({ ...s, type: "list", style: u, items: a });
1047
1047
  break;
1048
1048
  }
1049
1049
  case "table": {
1050
- const s = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
- for (const c of s) {
1050
+ const i = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
+ for (const c of i) {
1052
1052
  if (a.length >= Ve) {
1053
1053
  t(`more than ${Ve} table columns`);
1054
1054
  break;
@@ -1071,7 +1071,7 @@ function Bs(e, t = () => {
1071
1071
  }
1072
1072
  const d = T(o.caption, q);
1073
1073
  n.push({
1074
- ...i,
1074
+ ...s,
1075
1075
  type: "table",
1076
1076
  columns: a,
1077
1077
  rows: l,
@@ -1080,8 +1080,8 @@ function Bs(e, t = () => {
1080
1080
  break;
1081
1081
  }
1082
1082
  case "kpi": {
1083
- const s = Array.isArray(o.items) ? o.items : [], a = [];
1084
- for (const u of s) {
1083
+ const i = Array.isArray(o.items) ? o.items : [], a = [];
1084
+ for (const u of i) {
1085
1085
  if (a.length >= ze) {
1086
1086
  t(`more than ${ze} kpi items`);
1087
1087
  break;
@@ -1097,28 +1097,28 @@ function Bs(e, t = () => {
1097
1097
  t("a kpi block without usable items");
1098
1098
  continue;
1099
1099
  }
1100
- n.push({ ...i, type: "kpi", items: a });
1100
+ n.push({ ...s, type: "kpi", items: a });
1101
1101
  break;
1102
1102
  }
1103
1103
  case "image": {
1104
- const s = typeof o.url == "string" ? o.url.trim() : "";
1105
- if (!s || !Me(s)) {
1104
+ const i = typeof o.url == "string" ? o.url.trim() : "";
1105
+ if (!i || !ve(i)) {
1106
1106
  t("an image without a usable url");
1107
1107
  continue;
1108
1108
  }
1109
1109
  const a = T(o.alt, 200), u = T(o.caption, q);
1110
1110
  n.push({
1111
- ...i,
1111
+ ...s,
1112
1112
  type: "image",
1113
- url: s,
1113
+ url: i,
1114
1114
  ...a ? { alt: a } : {},
1115
1115
  ...u ? { caption: u } : {}
1116
1116
  });
1117
1117
  break;
1118
1118
  }
1119
1119
  case "letterhead": {
1120
- const s = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
- for (const d of s) {
1120
+ const i = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
+ for (const d of i) {
1122
1122
  if (a.length >= Xe) {
1123
1123
  t(`more than ${Xe} letterhead fields`);
1124
1124
  break;
@@ -1134,7 +1134,7 @@ function Bs(e, t = () => {
1134
1134
  continue;
1135
1135
  }
1136
1136
  n.push({
1137
- ...i,
1137
+ ...s,
1138
1138
  type: "letterhead",
1139
1139
  fields: a,
1140
1140
  ...l.length > 0 ? { recipient: l } : {}
@@ -1142,7 +1142,7 @@ function Bs(e, t = () => {
1142
1142
  break;
1143
1143
  }
1144
1144
  case "totals": {
1145
- const s = (l) => {
1145
+ const i = (l) => {
1146
1146
  const d = Array.isArray(l) ? l : [], c = [];
1147
1147
  for (const p of d) {
1148
1148
  if (c.length >= Ye) {
@@ -1155,31 +1155,31 @@ function Bs(e, t = () => {
1155
1155
  );
1156
1156
  }
1157
1157
  return c;
1158
- }, a = s(o.rows);
1158
+ }, a = i(o.rows);
1159
1159
  if (a.length === 0 && !o.block_id) {
1160
1160
  t("a totals block without usable rows");
1161
1161
  continue;
1162
1162
  }
1163
- const u = s(o.taxRows);
1164
- n.push({ ...i, type: "totals", rows: a, ...u.length > 0 ? { taxRows: u } : {} });
1163
+ const u = i(o.taxRows);
1164
+ n.push({ ...s, type: "totals", rows: a, ...u.length > 0 ? { taxRows: u } : {} });
1165
1165
  break;
1166
1166
  }
1167
1167
  case "pagebreak":
1168
- n.push({ ...i, type: "pagebreak" });
1168
+ n.push({ ...s, type: "pagebreak" });
1169
1169
  break;
1170
1170
  case "callout": {
1171
- const s = T(o.text);
1172
- if (!s) {
1171
+ const i = T(o.text);
1172
+ if (!i) {
1173
1173
  t("a callout without text");
1174
1174
  continue;
1175
1175
  }
1176
1176
  const a = T(o.title, 200);
1177
1177
  n.push({
1178
- ...i,
1178
+ ...s,
1179
1179
  type: "callout",
1180
1180
  tone: Nn(o.tone),
1181
1181
  ...a ? { title: a } : {},
1182
- text: s
1182
+ text: i
1183
1183
  });
1184
1184
  break;
1185
1185
  }
@@ -1187,10 +1187,10 @@ function Bs(e, t = () => {
1187
1187
  }
1188
1188
  return n;
1189
1189
  }
1190
- function js(e) {
1190
+ function Hi(e) {
1191
1191
  return JSON.stringify(e).length;
1192
1192
  }
1193
- function Hs(e) {
1193
+ function Gi(e) {
1194
1194
  return {
1195
1195
  blocks: e.length,
1196
1196
  types: e.map((t) => t.type),
@@ -1201,7 +1201,7 @@ function Qe(e) {
1201
1201
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1202
1202
  }
1203
1203
  function ae(e, t, n) {
1204
- const r = e.map((o, i) => n?.[i] === "right" ? "---:" : "---");
1204
+ const r = e.map((o, s) => n?.[s] === "right" ? "---:" : "---");
1205
1205
  return [
1206
1206
  `| ${e.map(Qe).join(" | ")} |`,
1207
1207
  `| ${r.join(" | ")} |`,
@@ -1268,8 +1268,8 @@ function Dn(e, t) {
1268
1268
  const n = [], r = e.some((o) => o.type === "heading" && o.level === 1);
1269
1269
  t && !r && n.push(`# ${t}`);
1270
1270
  for (const o of e) {
1271
- const i = Rn(o);
1272
- i.length > 0 && n.push(i.join(`
1271
+ const s = Rn(o);
1272
+ s.length > 0 && n.push(s.join(`
1273
1273
  `));
1274
1274
  }
1275
1275
  return `${n.join(`
@@ -1277,45 +1277,45 @@ function Dn(e, t) {
1277
1277
  `)}
1278
1278
  `;
1279
1279
  }
1280
- const Mt = (e) => `user:${e}`, vt = (e) => `team:${e}`;
1281
- function Gs(e) {
1280
+ const vt = (e) => `user:${e}`, Mt = (e) => `team:${e}`;
1281
+ function Wi(e) {
1282
1282
  const t = /* @__PURE__ */ new Set();
1283
1283
  for (const n of e ?? [])
1284
- n?.id && (n.kind === "user" && t.add(Mt(n.id)), n.kind === "team" && t.add(vt(n.id)));
1284
+ n?.id && (n.kind === "user" && t.add(vt(n.id)), n.kind === "team" && t.add(Mt(n.id)));
1285
1285
  return [...t].sort();
1286
1286
  }
1287
- function Ws(e, t) {
1288
- return [Mt(e), ...t.map(vt)];
1287
+ function Vi(e, t) {
1288
+ return [vt(e), ...t.map(Mt)];
1289
1289
  }
1290
- function Vs(e) {
1290
+ function zi(e) {
1291
1291
  const t = /* @__PURE__ */ new Set();
1292
1292
  for (const n of e ?? [])
1293
1293
  n?.kind && t.add(n.kind);
1294
1294
  return [...t];
1295
1295
  }
1296
- const $n = ["done", "escalated"], zs = ["open", "waiting"];
1297
- function Xs(e) {
1296
+ const $n = ["done", "escalated"], Xi = ["open", "waiting"];
1297
+ function Yi(e) {
1298
1298
  return $n.includes(e);
1299
1299
  }
1300
1300
  const Ln = "assignment";
1301
- function Ys(e) {
1301
+ function qi(e) {
1302
1302
  return `${Ln}:${e}`;
1303
1303
  }
1304
- function qs(e, t, n, r) {
1304
+ function Qi(e, t, n, r) {
1305
1305
  if (e.direction === "inbound") return !0;
1306
1306
  if (e.author?.type === "user" && e.author.id === t) return !1;
1307
1307
  const o = e.payload?.mentions;
1308
1308
  return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
1309
1309
  }
1310
- function Qs(e) {
1310
+ function Zi(e) {
1311
1311
  const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
1312
1312
  return !o || !t || t !== r ? !1 : n !== r;
1313
1313
  }
1314
- function Zs(e) {
1314
+ function Ji(e) {
1315
1315
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1316
1316
  }
1317
1317
  const Pn = 12;
1318
- function Js(e, t, n = Pn) {
1318
+ function ea(e, t, n = Pn) {
1319
1319
  const r = t + 1;
1320
1320
  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 ? {
1321
1321
  status: "escalated",
@@ -1329,6 +1329,9 @@ function Js(e, t, n = Pn) {
1329
1329
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1330
1330
  };
1331
1331
  }
1332
+ function ta(e, t, n) {
1333
+ return e ? e === t : n;
1334
+ }
1332
1335
  function Kn(e) {
1333
1336
  const t = e.trim().replace(/[\s-]/g, "");
1334
1337
  if (!/^\d+$/.test(t) || ![8, 12, 13, 14].includes(t.length)) return;
@@ -1341,7 +1344,7 @@ function Un(e) {
1341
1344
  t += Number(e[n]) * (n % 2 === 0 ? 3 : 1);
1342
1345
  return (10 - t % 10) % 10;
1343
1346
  }
1344
- function ea(e, t) {
1347
+ function na(e, t) {
1345
1348
  const n = t.trim(), r = Kn(n), o = [{ sku: n }, { barcodes: { $in: [n] } }];
1346
1349
  return r && o.push({ gtin: r }), { organizationId: e, $or: o };
1347
1350
  }
@@ -1353,25 +1356,25 @@ function Fn(e, t) {
1353
1356
  const n = t.reduce((u, l) => u + l, 0);
1354
1357
  if (n === 0) return t.map((u, l) => l === 0 ? e : 0);
1355
1358
  const r = t.map((u) => e * u / n), o = r.map((u) => Math.trunc(u));
1356
- let i = e - o.reduce((u, l) => u + l, 0);
1357
- const s = r.map((u, l) => ({ index: l, fraction: Math.abs(u - o[l]) })).sort((u, l) => l.fraction - u.fraction), a = i < 0 ? -1 : 1;
1358
- for (let u = 0; i !== 0 && u < s.length; u++)
1359
- o[s[u].index] += a, i -= a;
1359
+ let s = e - o.reduce((u, l) => u + l, 0);
1360
+ const i = r.map((u, l) => ({ index: l, fraction: Math.abs(u - o[l]) })).sort((u, l) => l.fraction - u.fraction), a = s < 0 ? -1 : 1;
1361
+ for (let u = 0; s !== 0 && u < i.length; u++)
1362
+ o[i[u].index] += a, s -= a;
1360
1363
  return o;
1361
1364
  }
1362
1365
  function D(e, t = {}) {
1363
- const n = t.decimal ?? ",", r = t.group ?? ".", o = e < 0, i = Math.abs(Math.trunc(e)).toString().padStart(3, "0"), s = i.slice(0, -2), a = i.slice(-2);
1366
+ const n = t.decimal ?? ",", r = t.group ?? ".", o = e < 0, s = Math.abs(Math.trunc(e)).toString().padStart(3, "0"), i = s.slice(0, -2), a = s.slice(-2);
1364
1367
  let u = "";
1365
- for (let l = 0; l < s.length; l++)
1366
- l > 0 && (s.length - l) % 3 === 0 && (u += r), u += s[l];
1368
+ for (let l = 0; l < i.length; l++)
1369
+ l > 0 && (i.length - l) % 3 === 0 && (u += r), u += i[l];
1367
1370
  return `${o ? "-" : ""}${u}${n}${a}`;
1368
1371
  }
1369
- function ta(e) {
1372
+ function ra(e) {
1370
1373
  const t = e.trim().replace(/[\s ]/g, "");
1371
1374
  if (!t) return;
1372
1375
  const n = t.replace(/^[-+]?[^\d.,-]*/, "").replace(/[^\d.,-]+$/, ""), r = /^-/.test(t) || /-$/.test(t), o = n.replace(/-/g, "");
1373
1376
  if (!o || !/^[\d.,]+$/.test(o)) return;
1374
- const i = o.lastIndexOf(","), s = o.lastIndexOf("."), a = Math.max(i, s), u = a === -1 ? "" : o.slice(a + 1), l = a !== -1 && u.length >= 1 && u.length <= 2, d = l ? o.slice(0, a) : o;
1377
+ const s = o.lastIndexOf(","), i = o.lastIndexOf("."), a = Math.max(s, i), u = a === -1 ? "" : o.slice(a + 1), l = a !== -1 && u.length >= 1 && u.length <= 2, d = l ? o.slice(0, a) : o;
1375
1378
  if (!Bn(d)) return;
1376
1379
  const c = d.replace(/[.,]/g, ""), p = l ? u.padEnd(2, "0") : "00";
1377
1380
  if (c === "") return;
@@ -1381,7 +1384,7 @@ function ta(e) {
1381
1384
  function Bn(e) {
1382
1385
  return /^\d+$/.test(e) ? !0 : e.includes(".") && e.includes(",") ? !1 : /^\d{1,3}([.,]\d{3})*$/.test(e);
1383
1386
  }
1384
- function na(e) {
1387
+ function oa(e) {
1385
1388
  return e.costPriceCents == null ? e.netCents : e.netCents - G(e.costPriceCents * e.quantity);
1386
1389
  }
1387
1390
  const jn = [
@@ -1406,20 +1409,20 @@ const jn = [
1406
1409
  matches: (e, t) => !e.contractId && !e.companyId && !!e.segmentKey && e.segmentKey === t.segmentKey && !!e.categoryKey
1407
1410
  }
1408
1411
  ];
1409
- function ra(e, t, n) {
1412
+ function sa(e, t, n) {
1410
1413
  const r = n.filter(
1411
1414
  (o) => o.currency === e.currency && (o.validFrom == null || o.validFrom <= t.at) && (o.validTo == null || o.validTo >= t.at) && (o.minQuantity == null || t.quantity >= o.minQuantity) && (o.productId == null || o.productId === e.id) && (o.categoryKey == null || o.categoryKey === e.categoryKey) && (o.productId != null || o.categoryKey != null)
1412
1415
  );
1413
1416
  for (const o of jn) {
1414
- const i = r.filter((a) => o.matches(a, t));
1415
- if (i.length === 0) continue;
1416
- const s = i.reduce(
1417
+ const s = r.filter((a) => o.matches(a, t));
1418
+ if (s.length === 0) continue;
1419
+ const i = s.reduce(
1417
1420
  (a, u) => (u.minQuantity ?? 0) >= (a.minQuantity ?? 0) ? u : a
1418
1421
  );
1419
1422
  return {
1420
- unitPriceCents: Hn(s, e.listPriceCents),
1421
- sourceKey: (s.minQuantity ?? 0) > 1 ? "tier" : o.key,
1422
- ruleId: s.id
1423
+ unitPriceCents: Hn(i, e.listPriceCents),
1424
+ sourceKey: (i.minQuantity ?? 0) > 1 ? "tier" : o.key,
1425
+ ruleId: i.id
1423
1426
  };
1424
1427
  }
1425
1428
  return { unitPriceCents: e.listPriceCents, sourceKey: "list" };
@@ -1427,19 +1430,19 @@ function ra(e, t, n) {
1427
1430
  function Hn(e, t) {
1428
1431
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? G(t * (1 - e.discountPercent / 100)) : t;
1429
1432
  }
1430
- const oa = ["piece", "hour", "day", "month", "km", "license"], ia = /* @__PURE__ */ new Set(["mail", "message"]);
1433
+ const ia = ["piece", "hour", "day", "month", "km", "license"], aa = /* @__PURE__ */ new Set(["mail", "message"]);
1431
1434
  function Gn(e, t) {
1432
1435
  const n = e.settings?.signatures?.[t];
1433
1436
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1434
1437
  }
1435
- function sa(e, t, n, r = "html") {
1438
+ function ca(e, t, n, r = "html") {
1436
1439
  if (!e) return n;
1437
1440
  const o = Gn(e, t);
1438
1441
  return o ? `${n}${r === "text" ? `
1439
1442
 
1440
1443
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1441
1444
  }
1442
- function aa(e) {
1445
+ function la(e) {
1443
1446
  return e.endpoints ?? [];
1444
1447
  }
1445
1448
  function $(e) {
@@ -1447,14 +1450,14 @@ function $(e) {
1447
1450
  if (t)
1448
1451
  return t.split(/[-_]/)[0] || void 0;
1449
1452
  }
1450
- function ca(e) {
1453
+ function ua(e) {
1451
1454
  return $(e.contactLocale) ?? $(e.companyLocale) ?? $(e.organizationLocale);
1452
1455
  }
1453
- function la(e, t, n, r) {
1456
+ function da(e, t, n, r) {
1454
1457
  const o = e.filter((a) => a.key === t && !a.archived);
1455
1458
  if (o.length === 0) return;
1456
- const i = $(n), s = $(r);
1457
- return o.find((a) => $(a.locale) === i) ?? o.find((a) => $(a.locale) === s) ?? // A row with no language at all is the single-language case: it is for everybody.
1459
+ const s = $(n), i = $(r);
1460
+ return o.find((a) => $(a.locale) === s) ?? o.find((a) => $(a.locale) === i) ?? // A row with no language at all is the single-language case: it is for everybody.
1458
1461
  o.find((a) => !a.locale) ?? o[0];
1459
1462
  }
1460
1463
  const Wn = /\{([a-zA-Z0-9_.]+)\}/g;
@@ -1471,9 +1474,9 @@ function Vn(e) {
1471
1474
  }
1472
1475
  function zn(e, t, n) {
1473
1476
  const r = [];
1474
- return { text: e.replace(Wn, (i, s) => {
1475
- const a = Ct(t, s);
1476
- return a == null || a === "" ? (r.includes(s) || r.push(s), n ?? `{${s}}`) : Vn(a);
1477
+ return { text: e.replace(Wn, (s, i) => {
1478
+ const a = Ct(t, i);
1479
+ return a == null || a === "" ? (r.includes(i) || r.push(i), n ?? `{${i}}`) : Vn(a);
1477
1480
  }), unresolved: r };
1478
1481
  }
1479
1482
  function Xn(e, t) {
@@ -1485,37 +1488,37 @@ function Xn(e, t) {
1485
1488
  }
1486
1489
  return e.equals !== void 0 ? n === e.equals : !0;
1487
1490
  }
1488
- function ua(e, t, n, r, o) {
1489
- const i = [], s = [], a = /* @__PURE__ */ new Set(), u = (l) => {
1491
+ function pa(e, t, n, r, o) {
1492
+ const s = [], i = [], a = /* @__PURE__ */ new Set(), u = (l) => {
1490
1493
  const d = zn(l, t, o);
1491
- for (const c of d.unresolved) i.includes(c) || i.push(c);
1494
+ for (const c of d.unresolved) s.includes(c) || s.push(c);
1492
1495
  return d.text;
1493
1496
  };
1494
1497
  for (const l of e) {
1495
1498
  if (l.block_id && !Xn(n?.[l.block_id], t)) continue;
1496
1499
  const d = l.block_id ? r?.[l.block_id] : void 0;
1497
1500
  if (d && l.block_id) {
1498
- a.add(l.block_id), s.push(...d);
1501
+ a.add(l.block_id), i.push(...d);
1499
1502
  continue;
1500
1503
  }
1501
1504
  switch (l.type) {
1502
1505
  case "heading":
1503
1506
  case "paragraph":
1504
1507
  case "quote":
1505
- s.push({ ...l, text: u(l.text) });
1508
+ i.push({ ...l, text: u(l.text) });
1506
1509
  break;
1507
1510
  case "callout":
1508
- s.push({
1511
+ i.push({
1509
1512
  ...l,
1510
1513
  ...l.title ? { title: u(l.title) } : {},
1511
1514
  text: u(l.text)
1512
1515
  });
1513
1516
  break;
1514
1517
  case "code":
1515
- s.push(l);
1518
+ i.push(l);
1516
1519
  break;
1517
1520
  case "list":
1518
- s.push({
1521
+ i.push({
1519
1522
  ...l,
1520
1523
  items: l.items.map((c) => ({
1521
1524
  ...c.lead ? { lead: u(c.lead) } : {},
@@ -1524,7 +1527,7 @@ function ua(e, t, n, r, o) {
1524
1527
  });
1525
1528
  break;
1526
1529
  case "table":
1527
- s.push({
1530
+ i.push({
1528
1531
  ...l,
1529
1532
  columns: l.columns.map((c) => ({ ...c, label: u(c.label) })),
1530
1533
  rows: l.rows.map((c) => c.map(u)),
@@ -1532,7 +1535,7 @@ function ua(e, t, n, r, o) {
1532
1535
  });
1533
1536
  break;
1534
1537
  case "kpi":
1535
- s.push({
1538
+ i.push({
1536
1539
  ...l,
1537
1540
  items: l.items.map((c) => ({
1538
1541
  ...c,
@@ -1542,14 +1545,14 @@ function ua(e, t, n, r, o) {
1542
1545
  });
1543
1546
  break;
1544
1547
  case "letterhead":
1545
- s.push({
1548
+ i.push({
1546
1549
  ...l,
1547
1550
  fields: l.fields.map((c) => ({ ...c, value: u(c.value) })),
1548
1551
  ...l.recipient ? { recipient: l.recipient.map(u) } : {}
1549
1552
  });
1550
1553
  break;
1551
1554
  case "totals":
1552
- s.push({
1555
+ i.push({
1553
1556
  ...l,
1554
1557
  rows: l.rows.map((c) => ({
1555
1558
  ...c,
@@ -1566,54 +1569,65 @@ function ua(e, t, n, r, o) {
1566
1569
  });
1567
1570
  break;
1568
1571
  case "image":
1569
- s.push({
1572
+ i.push({
1570
1573
  ...l,
1571
1574
  url: u(l.url),
1572
1575
  ...l.alt ? { alt: u(l.alt) } : {}
1573
1576
  });
1574
1577
  break;
1575
1578
  default:
1576
- s.push(l);
1579
+ i.push(l);
1577
1580
  }
1578
1581
  }
1579
1582
  return {
1580
- blocks: s,
1581
- unresolved: i,
1583
+ blocks: i,
1584
+ unresolved: s,
1582
1585
  unusedSlots: Object.keys(r ?? {}).filter((l) => !a.has(l))
1583
1586
  };
1584
1587
  }
1585
- function da(e) {
1586
- const t = e?.billing, n = e?.address, r = e?.houseStyle, o = [n?.street, n?.houseNumber].filter(Boolean).join(" "), i = [n?.postalCode, n?.city].filter(Boolean).join(" ");
1588
+ function Yn(e) {
1589
+ const t = e?.address, n = [t?.street, t?.houseNumber].filter(Boolean).join(" "), r = [t?.postalCode, t?.city].filter(Boolean).join(" ");
1587
1590
  return {
1588
- name: t?.companyName || e?.name || e?.displayName || "",
1589
- addressLines: [o, i, n?.country ?? ""].filter(Boolean),
1591
+ name: e?.name ?? "",
1592
+ addressLines: [n, r, t?.country ?? ""].filter(Boolean),
1590
1593
  footerLines: [
1591
- r?.footerText ?? "",
1592
- t?.kvkNumber ? `KvK ${t.kvkNumber}` : "",
1593
- t?.vatNumber ? `Btw ${t.vatNumber}` : "",
1594
- r?.iban ? `IBAN ${r.iban}` : ""
1594
+ e?.footerText ?? "",
1595
+ e?.kvkNumber ? `KvK ${e.kvkNumber}` : "",
1596
+ e?.vatNumber ? `Btw ${e.vatNumber}` : "",
1597
+ e?.iban ? `IBAN ${e.iban}` : ""
1595
1598
  ].filter(Boolean),
1596
1599
  ...e?.logo ? { logo: e.logo } : {}
1597
1600
  };
1598
1601
  }
1599
- const Yn = 36e5, qn = 864e5, L = -1 / 0, pa = (e) => e.score > L, J = {
1602
+ function fa(e) {
1603
+ return Yn({
1604
+ name: e?.billing?.companyName || e?.name || e?.displayName || "",
1605
+ address: e?.address,
1606
+ kvkNumber: e?.billing?.kvkNumber,
1607
+ vatNumber: e?.billing?.vatNumber,
1608
+ iban: e?.houseStyle?.iban,
1609
+ footerText: e?.houseStyle?.footerText,
1610
+ logo: e?.logo
1611
+ });
1612
+ }
1613
+ const qn = 36e5, Qn = 864e5, L = -1 / 0, ma = (e) => e.score > L, J = {
1600
1614
  urgent: 40,
1601
1615
  high: 25,
1602
1616
  normal: 10,
1603
1617
  low: 0
1604
1618
  };
1605
- function fa(e) {
1619
+ function ha(e) {
1606
1620
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1607
1621
  }
1608
- const Qn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Ot = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1609
- function Zn(e, t) {
1610
- return !!(e && Qn.test(e) || t && Ot.test(t));
1622
+ const Zn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Ot = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1623
+ function Jn(e, t) {
1624
+ return !!(e && Zn.test(e) || t && Ot.test(t));
1611
1625
  }
1612
- const Jn = 3, er = 600;
1613
- function ma(e, t) {
1614
- return e >= Jn || t >= er;
1626
+ const er = 3, tr = 600;
1627
+ function ga(e, t) {
1628
+ return e >= er || t >= tr;
1615
1629
  }
1616
- const tr = [
1630
+ const nr = [
1617
1631
  "list-unsubscribe",
1618
1632
  "list-unsubscribe-post",
1619
1633
  "list-id",
@@ -1623,89 +1637,89 @@ const tr = [
1623
1637
  "feedback-id",
1624
1638
  "x-mailer"
1625
1639
  ];
1626
- function ha(e) {
1640
+ function ya(e) {
1627
1641
  const t = {};
1628
1642
  for (const n of e) {
1629
1643
  const r = n.name?.toLowerCase();
1630
- r && n.value !== void 0 && tr.includes(r) && (t[r] = n.value);
1644
+ r && n.value !== void 0 && nr.includes(r) && (t[r] = n.value);
1631
1645
  }
1632
1646
  return t;
1633
1647
  }
1634
- const nr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, rr = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1635
- function ga(e) {
1648
+ const rr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, or = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1649
+ function ba(e) {
1636
1650
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1637
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && nr.test(n))
1651
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && rr.test(n))
1638
1652
  return "automated";
1639
1653
  const o = t.precedence?.toLowerCase();
1640
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Ot.test(e.body) || n && rr.test(n))
1654
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Ot.test(e.body) || n && or.test(n))
1641
1655
  return "marketing";
1642
1656
  }
1643
- function or(e, t) {
1657
+ function sr(e, t) {
1644
1658
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1645
1659
  }
1646
- const ir = ["open"], sr = 1e3, ar = {
1660
+ const ir = ["open"], ar = 1e3, cr = {
1647
1661
  urgent: 1,
1648
1662
  high: 4,
1649
1663
  normal: 8,
1650
1664
  low: 24
1651
- }, cr = 72;
1652
- function lr(e) {
1665
+ }, lr = 72;
1666
+ function ur(e) {
1653
1667
  return e.lastActivityAt ?? (e.createdAt ? new Date(gn(e)).getTime() : 0);
1654
1668
  }
1655
- function ur(e, t) {
1656
- return dr(t.remindersById?.[e.id], e, t.now);
1669
+ function dr(e, t) {
1670
+ return pr(t.remindersById?.[e.id], e, t.now);
1657
1671
  }
1658
- function dr(e, t, n) {
1672
+ function pr(e, t, n) {
1659
1673
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1660
1674
  }
1661
1675
  const xt = (e) => un(e) === "outbound_message", Nt = (e) => ir.includes(e);
1662
- function ve(e, t) {
1663
- return Math.max(0, (t - lr(e)) / Yn);
1676
+ function Me(e, t) {
1677
+ return Math.max(0, (t - ur(e)) / qn);
1664
1678
  }
1665
- function pr(e, t) {
1679
+ function fr(e, t) {
1666
1680
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1667
- return typeof n == "number" && n > 0 ? n : ar[e.priority ?? "normal"];
1681
+ return typeof n == "number" && n > 0 ? n : cr[e.priority ?? "normal"];
1668
1682
  }
1669
- function ya(e) {
1683
+ function _a(e) {
1670
1684
  const t = {};
1671
1685
  for (const n of e)
1672
1686
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1673
1687
  return t;
1674
1688
  }
1675
- function ba(e, t, n) {
1676
- return !Nt(e.status) || e.firstResponseAt ? !1 : ve(e, t) > pr(e, n);
1689
+ function Aa(e, t, n) {
1690
+ return !Nt(e.status) || e.firstResponseAt ? !1 : Me(e, t) > fr(e, n);
1677
1691
  }
1678
- function fr(e, t) {
1692
+ function mr(e, t) {
1679
1693
  const n = e.lastActivityPreview;
1680
- return n?.direction !== "outbound" || !xt(n.type) ? !1 : ve(e, t) < cr;
1694
+ return n?.direction !== "outbound" || !xt(n.type) ? !1 : Me(e, t) < lr;
1681
1695
  }
1682
- function _a(e, t) {
1696
+ function Sa(e, t) {
1683
1697
  if (!Nt(e.status)) return { score: L, reasons: [] };
1684
1698
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: L, reasons: [] };
1685
- if (fr(e, t.now)) return { score: L, reasons: [] };
1686
- if (ur(e, t)) return { score: L, reasons: [] };
1699
+ if (mr(e, t.now)) return { score: L, reasons: [] };
1700
+ if (dr(e, t)) return { score: L, reasons: [] };
1687
1701
  let n = 0;
1688
1702
  const r = [], o = e.priority ?? "normal";
1689
- J[o] > 0 && (n += J[o], r.push(`priority:${o}`)), or(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1690
- const i = ve(e, t.now);
1691
- if (i > 0) {
1692
- const u = Math.min(i * 2, 30);
1693
- n += u, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
1703
+ J[o] > 0 && (n += J[o], r.push(`priority:${o}`)), sr(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1704
+ const s = Me(e, t.now);
1705
+ if (s > 0) {
1706
+ const u = Math.min(s * 2, 30);
1707
+ n += u, s >= 1 && r.push(`waiting:${Math.round(s)}h`);
1694
1708
  }
1695
- const s = e.lastActivityPreview;
1696
- return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && xt(s.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((u) => u === "marketing" || u === "automated") || Zn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= sr, r.push("bulk")), { score: n, reasons: r };
1709
+ const i = e.lastActivityPreview;
1710
+ return i?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), i?.direction === "outbound" && xt(i.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((u) => u === "marketing" || u === "automated") || Jn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= ar, r.push("bulk")), { score: n, reasons: r };
1697
1711
  }
1698
- const Aa = (e) => !!e.assignedUserId || !!e.assignedInboxId, Sa = (e) => e.status === "closed", Ea = (e) => ({
1712
+ const Ea = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ia = (e) => e.status === "closed", Ta = (e) => ({
1699
1713
  urgent: 10,
1700
1714
  high: 5,
1701
1715
  normal: 2,
1702
1716
  low: 1
1703
- })[e.priority] || 0, Ia = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1704
- function Ta(e, t) {
1717
+ })[e.priority] || 0, wa = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1718
+ function ka(e, t) {
1705
1719
  const n = e.labels ?? [];
1706
1720
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1707
1721
  }
1708
- function wa(e, t, n) {
1722
+ function va(e, t, n) {
1709
1723
  const r = e.translations ?? [];
1710
1724
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
1711
1725
  }
@@ -1728,15 +1742,15 @@ function Rt(e) {
1728
1742
  const t = (e ?? "").toLowerCase();
1729
1743
  return Ze.find((n) => n.code === t) ?? Ze.find((n) => n.code === t.split("-")[0]);
1730
1744
  }
1731
- function ka(e) {
1745
+ function Ma(e) {
1732
1746
  return Rt(e)?.label ?? e;
1733
1747
  }
1734
- function Ma(e) {
1748
+ function Ca(e) {
1735
1749
  const t = Rt(e);
1736
1750
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1737
1751
  }
1738
1752
  const Dt = 3;
1739
- function mr(e, t) {
1753
+ function hr(e, t) {
1740
1754
  const n = /* @__PURE__ */ new Set();
1741
1755
  let r = 1, o = t.get(e)?.parentId;
1742
1756
  for (; o; ) {
@@ -1745,15 +1759,15 @@ function mr(e, t) {
1745
1759
  }
1746
1760
  return r;
1747
1761
  }
1748
- function va(e, t, n) {
1762
+ function Oa(e, t, n) {
1749
1763
  if (!e) return !0;
1750
1764
  if (e === t) return !1;
1751
- const r = new Map(n.map((s) => [s.id, s]));
1752
- if (!r.has(e) || t && hr(e, t, r)) return !1;
1753
- const o = mr(e, r), i = t ? $t(t, n) : 1;
1754
- return o + i <= Dt;
1765
+ const r = new Map(n.map((i) => [i.id, i]));
1766
+ if (!r.has(e) || t && gr(e, t, r)) return !1;
1767
+ const o = hr(e, r), s = t ? $t(t, n) : 1;
1768
+ return o + s <= Dt;
1755
1769
  }
1756
- function hr(e, t, n) {
1770
+ function gr(e, t, n) {
1757
1771
  const r = /* @__PURE__ */ new Set();
1758
1772
  let o = n.get(e)?.parentId;
1759
1773
  for (; o; ) {
@@ -1769,17 +1783,17 @@ function $t(e, t, n = /* @__PURE__ */ new Set()) {
1769
1783
  const r = t.filter((o) => o.parentId === e);
1770
1784
  return r.length ? 1 + Math.max(...r.map((o) => $t(o.id, t, n))) : 1;
1771
1785
  }
1772
- const gr = "en";
1773
- function yr(e) {
1774
- return e.defaultLocale || e.locale || gr;
1786
+ const yr = "en";
1787
+ function br(e) {
1788
+ return e.defaultLocale || e.locale || yr;
1775
1789
  }
1776
- function Ca(e) {
1790
+ function xa(e) {
1777
1791
  const t = /* @__PURE__ */ new Set(), n = [];
1778
- for (const r of [yr(e), ...e.locales ?? []])
1792
+ for (const r of [br(e), ...e.locales ?? []])
1779
1793
  !r || t.has(r) || (t.add(r), n.push(r));
1780
1794
  return n;
1781
1795
  }
1782
- function Oa(e, t, n) {
1796
+ function Na(e, t, n) {
1783
1797
  const r = e.translations ?? [];
1784
1798
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
1785
1799
  }
@@ -1800,7 +1814,7 @@ function et(e) {
1800
1814
  }
1801
1815
  return null;
1802
1816
  }
1803
- function br(e, t) {
1817
+ function _r(e, t) {
1804
1818
  switch (e.kind) {
1805
1819
  case "org":
1806
1820
  return !0;
@@ -1810,29 +1824,29 @@ function br(e, t) {
1810
1824
  return e.userId === t.userId;
1811
1825
  }
1812
1826
  }
1813
- function xa(e, t) {
1814
- return e.filter((n) => n.enabled && br(n.ownerScope, t));
1827
+ function Ra(e, t) {
1828
+ return e.filter((n) => n.enabled && _r(n.ownerScope, t));
1815
1829
  }
1816
- function Na(e) {
1830
+ function Da(e) {
1817
1831
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1818
1832
  }
1819
- function Ra(e) {
1833
+ function $a(e) {
1820
1834
  return `mcp__${e}__`;
1821
1835
  }
1822
- const Da = 1e3, $a = 2e3, La = 500, Pa = 12e3, Ka = 4e3, _r = ["contact", "company", "work_item"];
1823
- function Ua(e) {
1836
+ const La = 1e3, Pa = 2e3, Ka = 500, Ua = 12e3, Fa = 4e3, Ar = ["contact", "company", "work_item"];
1837
+ function Ba(e) {
1824
1838
  if (!e) return !1;
1825
1839
  const t = e.slice(0, e.indexOf(":"));
1826
- return _r.includes(t);
1840
+ return Ar.includes(t);
1827
1841
  }
1828
- const Fa = [
1842
+ const ja = [
1829
1843
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
1830
1844
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
1831
1845
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
1832
1846
  { key: "reverse_charge", label: "tax_reverse_charge", percent: 0, kind: "reverse_charge" },
1833
1847
  { key: "exempt", label: "tax_exempt", percent: 0, kind: "exempt" }
1834
1848
  ];
1835
- function Ar(e, t) {
1849
+ function Sr(e, t) {
1836
1850
  return t.find((n) => n.key === e) ?? {
1837
1851
  key: e,
1838
1852
  label: e,
@@ -1840,27 +1854,27 @@ function Ar(e, t) {
1840
1854
  kind: "zero"
1841
1855
  };
1842
1856
  }
1843
- function Sr(e) {
1857
+ function Er(e) {
1844
1858
  if (e.kind !== "product") return 0;
1845
1859
  const t = 1 - (e.discountPercent ?? 0) / 100;
1846
1860
  return G(e.quantity * e.unitPriceCents * t);
1847
1861
  }
1848
- function Ba(e, t, n) {
1849
- const r = e.map((l) => ({ ...l, netCents: Sr(l), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1862
+ function Ha(e, t, n) {
1863
+ const r = e.map((l) => ({ ...l, netCents: Er(l), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1850
1864
  for (let l = 0; l < r.length; l++) {
1851
1865
  if (r[l].kind !== "product" || r[l].optional) continue;
1852
1866
  const d = n ?? r[l].taxRateKey, c = o.get(d);
1853
1867
  c ? c.push(l) : o.set(d, [l]);
1854
1868
  }
1855
- const i = [];
1856
- let s = 0, a = 0;
1869
+ const s = [];
1870
+ let i = 0, a = 0;
1857
1871
  for (const [l, d] of o) {
1858
- const c = Ar(l, t), p = d.reduce((m, E) => m + r[E].netCents, 0), f = G(p * c.percent / 100), y = Fn(
1872
+ const c = Sr(l, t), p = d.reduce((m, E) => m + r[E].netCents, 0), f = G(p * c.percent / 100), y = Fn(
1859
1873
  f,
1860
1874
  d.map((m) => r[m].netCents)
1861
1875
  );
1862
1876
  for (let m = 0; m < d.length; m++) r[d[m]].taxCents = y[m];
1863
- i.push({ taxRateKey: l, netCents: p, taxCents: f }), s += p, a += f;
1877
+ s.push({ taxRateKey: l, netCents: p, taxCents: f }), i += p, a += f;
1864
1878
  }
1865
1879
  const u = r.reduce(
1866
1880
  (l, d) => d.costPriceCents == null || d.optional ? l : l + G(d.costPriceCents * d.quantity),
@@ -1869,15 +1883,15 @@ function Ba(e, t, n) {
1869
1883
  return {
1870
1884
  lines: r,
1871
1885
  totals: {
1872
- netCents: s,
1886
+ netCents: i,
1873
1887
  taxCents: a,
1874
- grossCents: s + a,
1888
+ grossCents: i + a,
1875
1889
  costCents: u,
1876
- byRate: i
1890
+ byRate: s
1877
1891
  }
1878
1892
  };
1879
1893
  }
1880
- const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sales", "onboarding"], Ga = ["keep", "replace"], Ce = [
1894
+ const Ga = "onboarding-source", Wa = ["support", "billing", "availability", "sales", "onboarding"], Va = ["keep", "replace"], Ce = [
1881
1895
  {
1882
1896
  key: "shift",
1883
1897
  label: "kind_shift",
@@ -1951,7 +1965,7 @@ const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sal
1951
1965
  absent: !0,
1952
1966
  icon: "party-popper"
1953
1967
  }
1954
- ], Er = {
1968
+ ], Ir = {
1955
1969
  key: "unknown",
1956
1970
  label: "kind_unknown",
1957
1971
  capacity: !1,
@@ -1959,7 +1973,7 @@ const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sal
1959
1973
  absent: !1
1960
1974
  };
1961
1975
  function N(e, t = Ce) {
1962
- return t.find((n) => n.key === e) ?? { ...Er, key: e };
1976
+ return t.find((n) => n.key === e) ?? { ...Ir, key: e };
1963
1977
  }
1964
1978
  function W(e) {
1965
1979
  return e === "published" || e === "approved";
@@ -1969,18 +1983,18 @@ function Lt(e, t, n = Ce) {
1969
1983
  const r = N(e.kindKey, n);
1970
1984
  return r.absent ? !1 : r.productive || r.capacity;
1971
1985
  }
1972
- function Wa(e, t = Ce) {
1986
+ function za(e, t = Ce) {
1973
1987
  if (!e.userId || !W(e.status)) return !1;
1974
1988
  const n = N(e.kindKey, t);
1975
1989
  return n.capacity || n.productive || n.absent;
1976
1990
  }
1977
- const Ir = 864e5;
1978
- function Tr(e, t) {
1979
- return Math.round((t - e) / Ir);
1991
+ const Tr = 864e5;
1992
+ function wr(e, t) {
1993
+ return Math.round((t - e) / Tr);
1980
1994
  }
1981
1995
  function Pt(e, t) {
1982
1996
  const n = e.cycleMinutes.length;
1983
- return n === 0 ? 0 : (Tr(e.anchor, t) % n + n) % n;
1997
+ return n === 0 ? 0 : (wr(e.anchor, t) % n + n) % n;
1984
1998
  }
1985
1999
  function Kt(e, t) {
1986
2000
  return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[Pt(e, t)] ?? 0;
@@ -1991,18 +2005,18 @@ function Ut(e, t) {
1991
2005
  function Ft(e, t, n, r) {
1992
2006
  const o = e.filter(
1993
2007
  (a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
1994
- ), i = (a) => a.sort((u, l) => (l.effectiveFrom ?? 0) - (u.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
1995
- return s || i(
2008
+ ), s = (a) => a.sort((u, l) => (l.effectiveFrom ?? 0) - (u.effectiveFrom ?? 0))[0], i = s(o.filter((a) => a.userId === t));
2009
+ return i || s(
1996
2010
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
1997
2011
  );
1998
2012
  }
1999
- function wr(e, t, n) {
2013
+ function kr(e, t, n) {
2000
2014
  return e.filter(
2001
2015
  (r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
2002
2016
  ).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
2003
2017
  }
2004
2018
  const he = 864e5;
2005
- function kr(e) {
2019
+ function vr(e) {
2006
2020
  const t = Math.max(1, Math.round((e.to - e.from) / he));
2007
2021
  return Array.from({ length: t }, (n, r) => e.from + r * he);
2008
2022
  }
@@ -2011,14 +2025,14 @@ function ge(e, t, n, r) {
2011
2025
  return o > 0 ? o / 1e3 : 0;
2012
2026
  }
2013
2027
  const tt = { interval: 0, day: 1, week: 2 };
2014
- function Va(e, t) {
2015
- const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2028
+ function Xa(e, t) {
2029
+ const { entries: n, patterns: r = [], terms: o = [] } = t, s = n.filter(
2016
2030
  (c) => c.userId && W(c.status) && N(c.kindKey).capacity
2017
- ), s = n.filter(
2031
+ ), i = n.filter(
2018
2032
  (c) => c.userId && W(c.status) && N(c.kindKey).absent
2019
2033
  ), a = t.userIds ?? [
2020
2034
  .../* @__PURE__ */ new Set([
2021
- ...i.map((c) => c.userId),
2035
+ ...s.map((c) => c.userId),
2022
2036
  ...r.map((c) => c.userId),
2023
2037
  ...o.map((c) => c.userId)
2024
2038
  ])
@@ -2030,26 +2044,26 @@ function Va(e, t) {
2030
2044
  for (const c of a) {
2031
2045
  const p = t.teamIdsOf?.(c) ?? [];
2032
2046
  let f = 0, y = 0, m = 0;
2033
- for (const h of kr(e)) {
2047
+ for (const h of vr(e)) {
2034
2048
  const S = Math.max(h, e.from), x = Math.min(h + he, e.to);
2035
2049
  m++;
2036
- const C = i.filter((k) => k.userId === c).reduce((k, $e) => k + ge($e.start, $e.end, S, x), 0);
2050
+ const C = s.filter((k) => k.userId === c).reduce((k, $e) => k + ge($e.start, $e.end, S, x), 0);
2037
2051
  if (C > 0) {
2038
2052
  f += C;
2039
2053
  continue;
2040
2054
  }
2041
- const M = Ft(r, c, p, h), O = M ? Kt(M, h) : 0;
2042
- if (M && O > 0) {
2043
- f += O * 60, d(Ut(M, h) ? "interval" : "day");
2055
+ const v = Ft(r, c, p, h), O = v ? Kt(v, h) : 0;
2056
+ if (v && O > 0) {
2057
+ f += O * 60, d(Ut(v, h) ? "interval" : "day");
2044
2058
  continue;
2045
2059
  }
2046
- M || y++;
2060
+ v || y++;
2047
2061
  }
2048
2062
  if (y > 0) {
2049
- const h = wr(o, c, e.from);
2063
+ const h = kr(o, c, e.from);
2050
2064
  h && (f += h.weeklyMinutes * 60 * (y / 7), d("week"));
2051
2065
  }
2052
- const E = s.filter((h) => h.userId === c).reduce(
2066
+ const E = i.filter((h) => h.userId === c).reduce(
2053
2067
  (h, S) => h + ge(S.start, S.end, e.from, e.to),
2054
2068
  0
2055
2069
  ), g = Math.max(0, f - E);
@@ -2061,14 +2075,14 @@ function Va(e, t) {
2061
2075
  byUser: u
2062
2076
  };
2063
2077
  }
2064
- function za(e, t) {
2078
+ function Ya(e, t) {
2065
2079
  if (!e.some((a) => a.userId)) return [];
2066
2080
  const n = "", r = /* @__PURE__ */ new Map();
2067
2081
  for (const a of e) {
2068
2082
  const u = a.userId ?? n;
2069
2083
  r.set(u, (r.get(u) ?? 0) + a.seconds);
2070
2084
  }
2071
- const i = [.../* @__PURE__ */ new Set([
2085
+ const s = [.../* @__PURE__ */ new Set([
2072
2086
  ...Object.keys(t.byUser),
2073
2087
  ...[...r.keys()].filter((a) => a !== n)
2074
2088
  ])].map((a) => {
@@ -2080,23 +2094,23 @@ function za(e, t) {
2080
2094
  netSeconds: l - u
2081
2095
  };
2082
2096
  });
2083
- i.sort((a, u) => a.netSeconds - u.netSeconds);
2084
- const s = r.get(n) ?? 0;
2085
- return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
2097
+ s.sort((a, u) => a.netSeconds - u.netSeconds);
2098
+ const i = r.get(n) ?? 0;
2099
+ return i > 0 && s.push({ requiredSeconds: i, capacitySeconds: 0, netSeconds: -i }), s;
2086
2100
  }
2087
- function Xa(e, t, n, r) {
2101
+ function qa(e, t, n, r) {
2088
2102
  const o = e.filter(
2089
- (s) => s.userId && W(s.status) && !N(s.kindKey).absent
2090
- ), i = Object.entries(r.byUser).map(
2091
- ([s, a]) => {
2103
+ (i) => i.userId && W(i.status) && !N(i.kindKey).absent
2104
+ ), s = Object.entries(r.byUser).map(
2105
+ ([i, a]) => {
2092
2106
  let u = 0, l = 0;
2093
2107
  for (const d of o) {
2094
- if (d.userId !== s || N(d.kindKey).capacity && !d.workstreamId) continue;
2108
+ if (d.userId !== i || N(d.kindKey).capacity && !d.workstreamId) continue;
2095
2109
  const c = ge(d.start, d.end, n.from, n.to);
2096
2110
  c <= 0 || (Lt(d, t) ? u += c : l += c);
2097
2111
  }
2098
2112
  return {
2099
- userId: s,
2113
+ userId: i,
2100
2114
  capacitySeconds: a,
2101
2115
  onThisSeconds: u,
2102
2116
  elsewhereSeconds: l,
@@ -2104,149 +2118,149 @@ function Xa(e, t, n, r) {
2104
2118
  };
2105
2119
  }
2106
2120
  );
2107
- return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2121
+ return s.sort((i, a) => a.freeSeconds - i.freeSeconds), s;
2108
2122
  }
2109
- const Ya = "demand-source", nt = 1e3;
2123
+ const Qa = "demand-source", nt = 1e3;
2110
2124
  function Mr(e, t) {
2111
2125
  let n = 1;
2112
2126
  for (let r = 1; r <= e; r++)
2113
2127
  n = t * n / (r + t * n);
2114
2128
  return n;
2115
2129
  }
2116
- function vr(e, t) {
2130
+ function Cr(e, t) {
2117
2131
  if (e <= 0) return 1;
2118
2132
  if (t <= 0) return 0;
2119
2133
  if (e <= t) return 1;
2120
2134
  const n = Mr(e, t), r = t / e;
2121
2135
  return n / (1 - r * (1 - n));
2122
2136
  }
2123
- function Cr(e, t, n, r) {
2124
- return r <= 0 ? 1 : e <= t ? 0 : 1 - vr(e, t) * Math.exp(-(e - t) * n / r);
2137
+ function Or(e, t, n, r) {
2138
+ return r <= 0 ? 1 : e <= t ? 0 : 1 - Cr(e, t) * Math.exp(-(e - t) * n / r);
2125
2139
  }
2126
- function Or(e, t, n) {
2140
+ function xr(e, t, n) {
2127
2141
  return n <= 0 ? 0 : e * t / n;
2128
2142
  }
2129
- function xr(e, t, n, r) {
2143
+ function Nr(e, t, n, r) {
2130
2144
  if (e <= 0 || t <= 0) return 0;
2131
- const o = Or(e, t, n);
2145
+ const o = xr(e, t, n);
2132
2146
  if (o <= 0) return 0;
2133
- const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2147
+ const s = r.serviceLevelPercent / 100, i = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2134
2148
  for (let a = Math.max(1, Math.ceil(o)); a <= nt; a++)
2135
- if (!(a <= o) && !(Cr(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2149
+ if (!(a <= o) && !(Or(a, o, r.targetSeconds, t) < s) && !(i && o / a > i))
2136
2150
  return a;
2137
2151
  return nt;
2138
2152
  }
2139
- const Nr = 36e5, Rr = 864e5;
2140
- function Dr(e) {
2141
- return e === "day" ? Rr : Nr;
2153
+ const Rr = 36e5, Dr = 864e5;
2154
+ function $r(e) {
2155
+ return e === "day" ? Dr : Rr;
2142
2156
  }
2143
- function qa(e, t) {
2157
+ function Za(e, t) {
2144
2158
  return e.start < t.end && t.start < e.end;
2145
2159
  }
2146
2160
  function ce(e, t, n) {
2147
2161
  const r = Math.min(e.end, n) - Math.max(e.start, t);
2148
2162
  return r > 0 ? r / 1e3 : 0;
2149
2163
  }
2150
- function $r(e, t, n) {
2164
+ function Lr(e, t, n) {
2151
2165
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
2152
2166
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
2153
- const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
2167
+ const s = (t.unplannedLossPercent ?? 0) / 100, i = s > 0 && s < 1 ? 1 / (1 - s) : 1;
2154
2168
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
2155
- const a = xr(e.volume, r, n, t);
2156
- return { seconds: o, headcount: a * s };
2169
+ const a = Nr(e.volume, r, n, t);
2170
+ return { seconds: o, headcount: a * i };
2157
2171
  }
2158
- return { seconds: o, headcount: o / n * s };
2172
+ return { seconds: o, headcount: o / n * i };
2159
2173
  }
2160
- function Qa(e) {
2161
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = Dr(s), u = a / 1e3, l = e.kinds, d = t.filter((m) => W(m.status)), c = d.filter((m) => Lt(m, n, l)), p = d.filter((m) => N(m.kindKey, l).capacity), f = d.filter((m) => N(m.kindKey, l).absent), y = [];
2162
- for (let m = H(i.from, s); m < i.to; m += a) {
2163
- const E = m + a, g = j(m, s);
2174
+ function Ja(e) {
2175
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: s } = e, i = e.grain ?? "hour", a = $r(i), u = a / 1e3, l = e.kinds, d = t.filter((m) => W(m.status)), c = d.filter((m) => Lt(m, n, l)), p = d.filter((m) => N(m.kindKey, l).capacity), f = d.filter((m) => N(m.kindKey, l).absent), y = [];
2176
+ for (let m = H(s.from, i); m < s.to; m += a) {
2177
+ const E = m + a, g = j(m, i);
2164
2178
  let h = 0;
2165
2179
  for (const k of c) h += ce(k, m, E);
2166
2180
  let S = 0;
2167
2181
  for (const k of p) S += ce(k, m, E);
2168
2182
  let x = 0;
2169
2183
  for (const k of f) x += ce(k, m, E);
2170
- const C = o?.[g] ?? {}, M = $r(C, r, u), O = h / u;
2184
+ const C = o?.[g] ?? {}, v = Lr(C, r, u), O = h / u;
2171
2185
  y.push({
2172
2186
  period: g,
2173
2187
  forecastVolume: C.volume,
2174
- requiredSeconds: M.seconds,
2175
- requiredHeadcount: M.headcount,
2188
+ requiredSeconds: v.seconds,
2189
+ requiredHeadcount: v.headcount,
2176
2190
  scheduledSeconds: h,
2177
2191
  scheduledHeadcount: O,
2178
- netHeadcount: O - M.headcount,
2192
+ netHeadcount: O - v.headcount,
2179
2193
  capacitySeconds: S,
2180
2194
  absentSeconds: x
2181
2195
  });
2182
2196
  }
2183
2197
  return y;
2184
2198
  }
2185
- function Lr(e, t) {
2199
+ function Pr(e, t) {
2186
2200
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
2187
2201
  }
2188
- function Za(e, t, n) {
2189
- const r = Lr(e, t);
2202
+ function ec(e, t, n) {
2203
+ const r = Pr(e, t);
2190
2204
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
2191
2205
  }
2192
- function Ja(e) {
2206
+ function tc(e) {
2193
2207
  return e.filter(
2194
2208
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2195
2209
  );
2196
2210
  }
2197
- const Pr = 36e5, ye = 6048e5, Kr = 8, Ur = 0.5, Fr = 2;
2198
- function Br(e) {
2211
+ const Kr = 36e5, ye = 6048e5, Ur = 8, Fr = 0.5, Br = 2;
2212
+ function jr(e) {
2199
2213
  const t = Number(e.slice(0, 4)), n = Number(e.slice(5, 7)), r = Number(e.slice(8, 10)), o = e.length > 10 ? Number(e.slice(11, 13)) : 0;
2200
2214
  return Date.UTC(t, n - 1, r, o);
2201
2215
  }
2202
- function jr(e, t, n) {
2216
+ function Hr(e, t, n) {
2203
2217
  const r = [];
2204
- for (let i = 0; i < n; i++) {
2205
- const s = t - i * ye, a = s - ye;
2218
+ for (let s = 0; s < n; s++) {
2219
+ const i = t - s * ye, a = i - ye;
2206
2220
  let u = 0, l = !1;
2207
2221
  for (const [d, c] of e)
2208
- d >= a && d < s && (u += c, l = !0);
2222
+ d >= a && d < i && (u += c, l = !0);
2209
2223
  l && r.push(u);
2210
2224
  }
2211
2225
  if (r.length < 2) return 1;
2212
- const o = r.reduce((i, s) => i + s, 0) / r.length;
2213
- return o <= 0 ? 1 : Math.min(Fr, Math.max(Ur, r[0] / o));
2226
+ const o = r.reduce((s, i) => s + i, 0) / r.length;
2227
+ return o <= 0 ? 1 : Math.min(Br, Math.max(Fr, r[0] / o));
2214
2228
  }
2215
- function Hr(e, t) {
2229
+ function Gr(e, t) {
2216
2230
  if (!e?.length) return;
2217
2231
  let n;
2218
2232
  for (const r of e)
2219
2233
  t >= r.from && t < r.to && (n = r);
2220
2234
  return n;
2221
2235
  }
2222
- function ec(e, t, n) {
2223
- const r = Math.max(1, n?.weeks ?? Kr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2236
+ function nc(e, t, n) {
2237
+ const r = Math.max(1, n?.weeks ?? Ur), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set();
2224
2238
  for (const u of e)
2225
- o.set(Br(u.period), u.value), i.add(u.period.slice(0, 10));
2226
- const s = jr(o, H(t.from, "hour"), r), a = [];
2227
- for (let u = H(t.from, "hour"); u < t.to; u += Pr) {
2239
+ o.set(jr(u.period), u.value), s.add(u.period.slice(0, 10));
2240
+ const i = Hr(o, H(t.from, "hour"), r), a = [];
2241
+ for (let u = H(t.from, "hour"); u < t.to; u += Kr) {
2228
2242
  let l = 0, d = 0;
2229
2243
  for (let f = 1; f <= r; f++) {
2230
- const y = u - f * ye, E = o.get(y) ?? (i.has(j(y, "day")) ? 0 : void 0);
2244
+ const y = u - f * ye, E = o.get(y) ?? (s.has(j(y, "day")) ? 0 : void 0);
2231
2245
  if (E === void 0) continue;
2232
2246
  const g = r - f + 1;
2233
2247
  l += E * g, d += g;
2234
2248
  }
2235
- let c = d > 0 ? l / d * s : 0;
2236
- const p = Hr(n?.adjustments, u);
2249
+ let c = d > 0 ? l / d * i : 0;
2250
+ const p = Gr(n?.adjustments, u);
2237
2251
  p?.absoluteVolume !== void 0 ? c = p.absoluteVolume : p?.factor !== void 0 && (c *= p.factor), a.push({ period: j(u, "hour"), volume: c });
2238
2252
  }
2239
2253
  return a;
2240
2254
  }
2241
- const Gr = "schedule_entry", Wr = "workstream";
2242
- function tc(e) {
2243
- return `${Gr}:${e}`;
2244
- }
2245
- function nc(e) {
2255
+ const Wr = "schedule_entry", Vr = "workstream";
2256
+ function rc(e) {
2246
2257
  return `${Wr}:${e}`;
2247
2258
  }
2259
+ function oc(e) {
2260
+ return `${Vr}:${e}`;
2261
+ }
2248
2262
  const be = 36e5, K = 864e5;
2249
- function Vr(e, t) {
2263
+ function zr(e, t) {
2250
2264
  const n = t === "day" ? K : be, r = [];
2251
2265
  for (let o = H(e.from, t); o < e.to; o += n) r.push(o);
2252
2266
  return r;
@@ -2259,13 +2273,13 @@ function le(e, t, n, r) {
2259
2273
  const o = Math.min(t, r) - Math.max(e, n);
2260
2274
  return o > 0 ? o / 1e3 : 0;
2261
2275
  }
2262
- function rc(e, t, n = {}) {
2263
- const r = n.grain ?? "hour", o = Vr(t, r), i = r === "day" ? K : be, s = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && N(c.kindKey).capacity), u = n.userIds?.length ? new Set(n.userIds) : null, l = /* @__PURE__ */ new Set();
2276
+ function sc(e, t, n = {}) {
2277
+ const r = n.grain ?? "hour", o = zr(t, r), s = r === "day" ? K : be, i = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && N(c.kindKey).capacity), u = n.userIds?.length ? new Set(n.userIds) : null, l = /* @__PURE__ */ new Set();
2264
2278
  for (const c of a)
2265
2279
  if (!(u && c.userId && !u.has(c.userId))) {
2266
2280
  for (const p of o) {
2267
- const f = le(c.start, c.end, p, p + i);
2268
- f > 0 && s.set(p, (s.get(p) ?? 0) + f);
2281
+ const f = le(c.start, c.end, p, p + s);
2282
+ f > 0 && i.set(p, (i.get(p) ?? 0) + f);
2269
2283
  }
2270
2284
  for (const p of rt(t))
2271
2285
  le(c.start, c.end, p, p + K) > 0 && l.add(`${c.userId}:${p}`);
@@ -2287,22 +2301,22 @@ function rc(e, t, n = {}) {
2287
2301
  if (m <= 0) continue;
2288
2302
  const E = Ut(y, f);
2289
2303
  if (E) {
2290
- const [S, x] = E.split(":").map(Number), C = f + S * be + (x ?? 0) * 6e4, M = C + m * 6e4;
2304
+ const [S, x] = E.split(":").map(Number), C = f + S * be + (x ?? 0) * 6e4, v = C + m * 6e4;
2291
2305
  for (const O of o) {
2292
- const k = le(C, M, O, O + i);
2293
- k > 0 && s.set(O, (s.get(O) ?? 0) + k);
2306
+ const k = le(C, v, O, O + s);
2307
+ k > 0 && i.set(O, (i.get(O) ?? 0) + k);
2294
2308
  }
2295
2309
  continue;
2296
2310
  }
2297
2311
  const g = o.filter((S) => S >= f && S < f + K);
2298
2312
  if (!g.length) continue;
2299
2313
  const h = m * 60 / g.length;
2300
- for (const S of g) s.set(S, (s.get(S) ?? 0) + h);
2314
+ for (const S of g) i.set(S, (i.get(S) ?? 0) + h);
2301
2315
  }
2302
2316
  }
2303
- return o.map((c) => ({ period: j(c, r), weight: s.get(c) ?? 0 }));
2317
+ return o.map((c) => ({ period: j(c, r), weight: i.get(c) ?? 0 }));
2304
2318
  }
2305
- function zr(e, t) {
2319
+ function Xr(e, t) {
2306
2320
  if (e <= 0 || !t.length) return [];
2307
2321
  const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
2308
2322
  if (n <= 0) {
@@ -2311,20 +2325,20 @@ function zr(e, t) {
2311
2325
  }
2312
2326
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
2313
2327
  }
2314
- function oc(e, t, n) {
2328
+ function ic(e, t, n) {
2315
2329
  const r = /* @__PURE__ */ new Map();
2316
2330
  for (const o of e) {
2317
- const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
2318
- for (const a of zr(o.seconds, s)) {
2331
+ const s = o.by ? t.filter((a) => n(a.period) < o.by) : t, i = s.length ? s : t;
2332
+ for (const a of Xr(o.seconds, i)) {
2319
2333
  const u = `${a.period}|${o.userId ?? ""}`, l = r.get(u);
2320
2334
  l ? l.seconds += a.seconds : r.set(u, { ...a, userId: o.userId });
2321
2335
  }
2322
2336
  }
2323
2337
  return [...r.values()].sort(
2324
- (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
2338
+ (o, s) => o.period.localeCompare(s.period) || (o.userId ?? "").localeCompare(s.userId ?? "")
2325
2339
  );
2326
2340
  }
2327
- function Xr(e) {
2341
+ function Yr(e) {
2328
2342
  switch (e.kind) {
2329
2343
  case "user":
2330
2344
  return `user:${e.userId}`;
@@ -2334,7 +2348,7 @@ function Xr(e) {
2334
2348
  return "org";
2335
2349
  }
2336
2350
  }
2337
- function ic(e) {
2351
+ function ac(e) {
2338
2352
  if (typeof e != "string") return;
2339
2353
  const t = e.trim();
2340
2354
  if (t === "org") return { kind: "org" };
@@ -2346,10 +2360,10 @@ function ic(e) {
2346
2360
  if (r === "team") return { kind: "team", teamId: o };
2347
2361
  }
2348
2362
  }
2349
- function Yr(e) {
2350
- return Xr(e);
2351
- }
2352
2363
  function qr(e) {
2364
+ return Yr(e);
2365
+ }
2366
+ function Qr(e) {
2353
2367
  switch (e.kind) {
2354
2368
  case "personal":
2355
2369
  return { kind: "user", userId: e.userId };
@@ -2359,14 +2373,14 @@ function qr(e) {
2359
2373
  return { kind: "org" };
2360
2374
  }
2361
2375
  }
2362
- const Qr = qr;
2363
- function sc(e) {
2364
- return e.agentId ? { kind: "user", userId: e.agentId } : Qr(e.ownerScope);
2376
+ const Zr = Qr;
2377
+ function cc(e) {
2378
+ return e.agentId ? { kind: "user", userId: e.agentId } : Zr(e.ownerScope);
2365
2379
  }
2366
- function ac(e) {
2367
- return Yr(e);
2380
+ function lc(e) {
2381
+ return qr(e);
2368
2382
  }
2369
- function cc(e, t) {
2383
+ function uc(e, t) {
2370
2384
  if (!t) return;
2371
2385
  let n = e;
2372
2386
  for (const r of t.split(".")) {
@@ -2375,24 +2389,24 @@ function cc(e, t) {
2375
2389
  }
2376
2390
  return n;
2377
2391
  }
2378
- function lc(e, t) {
2392
+ function dc(e, t) {
2379
2393
  return e.targets.find((n) => n.activityTypes.includes(t));
2380
2394
  }
2381
- function uc(e, t) {
2395
+ function pc(e, t) {
2382
2396
  if (t)
2383
2397
  return e.targets.find((n) => n.id === t);
2384
2398
  }
2385
- function Zr(e) {
2399
+ function Jr(e) {
2386
2400
  return e?.kind === "assignment";
2387
2401
  }
2388
- function dc(e) {
2389
- const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2390
- return Zr(t) ? n ? r ? r.activityTypes.includes(o) ? i ? i !== n ? "assigned to someone else" : s && s === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${o} 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";
2402
+ function fc(e) {
2403
+ const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: s, authorUserId: i } = e;
2404
+ return Jr(t) ? n ? r ? r.activityTypes.includes(o) ? s ? s !== n ? "assigned to someone else" : i && i === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${o} 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";
2391
2405
  }
2392
- function pc(e) {
2406
+ function mc(e) {
2393
2407
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2394
2408
  }
2395
- const fc = [
2409
+ const hc = [
2396
2410
  { name: "text", type: "string" },
2397
2411
  { name: "subject", type: "string" },
2398
2412
  { name: "from", type: "string" },
@@ -2432,7 +2446,7 @@ const fc = [
2432
2446
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
2433
2447
  // the trigger filter runs — like contactId/companyId above.
2434
2448
  { name: "assigneeUserId", type: "string" }
2435
- ], mc = {
2449
+ ], gc = {
2436
2450
  topics: [
2437
2451
  { name: "topicId", type: "string" },
2438
2452
  { name: "topic", type: "string" },
@@ -2446,58 +2460,58 @@ const fc = [
2446
2460
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2447
2461
  extract: []
2448
2462
  };
2449
- function Jr(e) {
2463
+ function eo(e) {
2450
2464
  return `${e.type}:${e.id}`;
2451
2465
  }
2452
- const eo = "interaction";
2453
- function to(e) {
2454
- return e?.type === eo ? e.id : void 0;
2466
+ const to = "interaction";
2467
+ function no(e) {
2468
+ return e?.type === to ? e.id : void 0;
2455
2469
  }
2456
- const no = 64, ro = 8e3;
2457
- function hc(e) {
2470
+ const ro = 64, oo = 8e3;
2471
+ function yc(e) {
2458
2472
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2459
2473
  if (!(!Number.isFinite(t) || t <= 0))
2460
- return Math.min(Math.max(Math.round(t), no), ro);
2474
+ return Math.min(Math.max(Math.round(t), ro), oo);
2461
2475
  }
2462
- const gc = { kind: "workflow", steps: [] };
2463
- function yc(e) {
2476
+ const bc = { kind: "workflow", steps: [] };
2477
+ function _c(e) {
2464
2478
  return e?.kind === "workflow" ? e.steps : [];
2465
2479
  }
2466
- function bc(e) {
2480
+ function Ac(e) {
2467
2481
  return e?.kind === "procedure" ? e.procedure : void 0;
2468
2482
  }
2469
- function oo(e) {
2483
+ function so(e) {
2470
2484
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2471
2485
  return { total: n, rate: n ? t / n : 0 };
2472
2486
  }
2473
- const io = 10, so = 0.9;
2474
- function _c(e) {
2475
- const { total: t, rate: n } = oo(e);
2476
- return t >= io && n >= so;
2487
+ const io = 10, ao = 0.9;
2488
+ function Sc(e) {
2489
+ const { total: t, rate: n } = so(e);
2490
+ return t >= io && n >= ao;
2477
2491
  }
2478
- const ao = ["done", "escalated", "failed", "stopped"];
2479
- function Ac(e) {
2480
- return ao.includes(e);
2492
+ const co = ["done", "escalated", "failed", "stopped"];
2493
+ function Ec(e) {
2494
+ return co.includes(e);
2481
2495
  }
2482
- function co(e) {
2496
+ function lo(e) {
2483
2497
  return e === "waiting";
2484
2498
  }
2485
- function Sc(e) {
2486
- return e === "running" || co(e);
2499
+ function Ic(e) {
2500
+ return e === "running" || lo(e);
2487
2501
  }
2488
2502
  function Bt(e) {
2489
2503
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2490
2504
  }
2491
- function Ec(e) {
2505
+ function Tc(e) {
2492
2506
  const t = Bt(e);
2493
- return t ? Jr(t) : void 0;
2507
+ return t ? eo(t) : void 0;
2494
2508
  }
2495
- function Ic(e) {
2496
- return to(Bt(e));
2509
+ function wc(e) {
2510
+ return no(Bt(e));
2497
2511
  }
2498
- function Tc(e) {
2512
+ function kc(e) {
2499
2513
  const t = [], n = /* @__PURE__ */ new Map();
2500
- for (const r of [...e].sort(lo)) {
2514
+ for (const r of [...e].sort(uo)) {
2501
2515
  const o = n.get(r.emoji);
2502
2516
  if (o) {
2503
2517
  o.push(r.actor);
@@ -2510,33 +2524,33 @@ function Tc(e) {
2510
2524
  return { emoji: r, count: o.length, actors: o };
2511
2525
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2512
2526
  }
2513
- const lo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2514
- function wc(e, t) {
2527
+ const uo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2528
+ function vc(e, t) {
2515
2529
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2516
2530
  }
2517
- const _e = 6e4, uo = 36e5, V = 864e5, jt = 800;
2531
+ const _e = 6e4, po = 36e5, V = 864e5, jt = 800;
2518
2532
  function ot(e, t) {
2519
2533
  const n = Date.UTC(e, t + 1, 0);
2520
- return n - new Date(n).getUTCDay() * V + uo;
2534
+ return n - new Date(n).getUTCDay() * V + po;
2521
2535
  }
2522
- function po(e) {
2536
+ function fo(e) {
2523
2537
  const t = new Date(e).getUTCFullYear();
2524
2538
  return e >= ot(t, 2) && e < ot(t, 9);
2525
2539
  }
2526
2540
  function Ht(e, t) {
2527
- const n = t.dst === "eu" && po(e) ? 60 : 0;
2541
+ const n = t.dst === "eu" && fo(e) ? 60 : 0;
2528
2542
  return (t.utcOffsetMinutes + n) * _e;
2529
2543
  }
2530
- function fo(e) {
2544
+ function mo(e) {
2531
2545
  return (e + 3) % 7 + 1;
2532
2546
  }
2533
2547
  function Gt(e, t) {
2534
2548
  const n = Ht(e, t), r = e + n, o = Math.floor(r / V);
2535
- if (!t.days.includes(fo(o))) return null;
2536
- const i = o * V;
2549
+ if (!t.days.includes(mo(o))) return null;
2550
+ const s = o * V;
2537
2551
  return {
2538
- open: i + t.fromMinutes * _e - n,
2539
- close: i + t.toMinutes * _e - n
2552
+ open: s + t.fromMinutes * _e - n,
2553
+ close: s + t.toMinutes * _e - n
2540
2554
  };
2541
2555
  }
2542
2556
  function Wt(e, t) {
@@ -2547,10 +2561,10 @@ function Ae(e, t, n) {
2547
2561
  if (t <= e) return 0;
2548
2562
  if (!n) return t - e;
2549
2563
  let r = 0, o = e;
2550
- for (let i = 0; i < jt && o < t; i++) {
2551
- const s = Gt(o, n);
2552
- if (s) {
2553
- const a = Math.max(o, s.open), u = Math.min(t, s.close);
2564
+ for (let s = 0; s < jt && o < t; s++) {
2565
+ const i = Gt(o, n);
2566
+ if (i) {
2567
+ const a = Math.max(o, i.open), u = Math.min(t, i.close);
2554
2568
  u > a && (r += u - a);
2555
2569
  }
2556
2570
  o = Wt(o, n);
@@ -2560,12 +2574,12 @@ function Ae(e, t, n) {
2560
2574
  function Oe(e, t, n) {
2561
2575
  if (!n) return e + t;
2562
2576
  let r = t, o = e;
2563
- for (let i = 0; i < jt; i++) {
2564
- const s = Gt(o, n);
2565
- if (s) {
2566
- const a = Math.max(o, s.open);
2567
- if (s.close > a) {
2568
- const u = s.close - a;
2577
+ for (let s = 0; s < jt; s++) {
2578
+ const i = Gt(o, n);
2579
+ if (i) {
2580
+ const a = Math.max(o, i.open);
2581
+ if (i.close > a) {
2582
+ const u = i.close - a;
2569
2583
  if (r <= u) return a + r;
2570
2584
  r -= u;
2571
2585
  }
@@ -2574,79 +2588,79 @@ function Oe(e, t, n) {
2574
2588
  }
2575
2589
  return e + t;
2576
2590
  }
2577
- function kc(e) {
2591
+ function Mc(e) {
2578
2592
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
2579
2593
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
2580
2594
  }
2581
2595
  const Se = 1, Ee = 2;
2582
- function Mc(e) {
2596
+ function Cc(e) {
2583
2597
  return e === "snoozed" ? Se : Ee;
2584
2598
  }
2585
2599
  function xe(e) {
2586
2600
  const t = e.calendar;
2587
2601
  return t && Array.isArray(t.days) ? t : null;
2588
2602
  }
2589
- const vc = [
2603
+ const Oc = [
2590
2604
  "speed_of_answer",
2591
2605
  "first_response",
2592
2606
  "next_response",
2593
2607
  "resolution",
2594
2608
  "close"
2595
- ], Cc = ["snoozed", "waiting_for_customer"], mo = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], ho = [...Vt, "resolution", "close"];
2609
+ ], xc = ["snoozed", "waiting_for_customer"], ho = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], go = [...Vt, "resolution", "close"];
2596
2610
  function z(e) {
2597
2611
  return e.state === "running" || e.state === "paused";
2598
2612
  }
2599
- function go(e, t) {
2613
+ function yo(e, t) {
2600
2614
  return z(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
2601
2615
  }
2602
- function it(e) {
2616
+ function st(e) {
2603
2617
  return z(e) ? { state: "void" } : null;
2604
2618
  }
2605
- function yo(e, t, n, r) {
2619
+ function bo(e, t, n, r) {
2606
2620
  if (!z(e) || (e.pauseBits & t) !== 0) return null;
2607
2621
  const o = e.pauseBits | t;
2608
2622
  return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: Ae(n, e.dueAt, r) };
2609
2623
  }
2610
- function bo(e, t, n, r) {
2624
+ function _o(e, t, n, r) {
2611
2625
  if (!z(e) || (e.pauseBits & t) === 0) return null;
2612
2626
  const o = e.pauseBits & ~t;
2613
2627
  return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: Oe(n, e.remainingMs, r) };
2614
2628
  }
2615
- function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2616
- const i = xe(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), u = [], l = (g, h) => {
2629
+ function Nc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2630
+ const s = xe(o), i = Math.min(t, n), a = r.map((g) => ({ ...g })), u = [], l = (g, h) => {
2617
2631
  h && (u.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
2618
2632
  }, d = (g) => {
2619
2633
  for (const h of a)
2620
- h.metric === g && l(h, go(h, s));
2634
+ h.metric === g && l(h, yo(h, i));
2621
2635
  }, c = (g) => {
2622
2636
  for (const h of a)
2623
- g.includes(h.metric) && l(h, it(h));
2637
+ g.includes(h.metric) && l(h, st(h));
2624
2638
  }, p = (g) => {
2625
- for (const h of a) l(h, yo(h, g, s, i));
2639
+ for (const h of a) l(h, bo(h, g, i, s));
2626
2640
  }, f = (g) => {
2627
- for (const h of a) l(h, bo(h, g, s, i));
2641
+ for (const h of a) l(h, _o(h, g, i, s));
2628
2642
  }, y = (g) => a.reduce((h, S) => S.metric === g ? Math.max(h, S.attempt) : h, 0) + 1, m = (g) => a.some((h) => h.metric === g && z(h)), E = (g, h) => {
2629
2643
  const S = o.targets.find((C) => C.metric === g);
2630
2644
  if (!S) return;
2631
- const x = S.minutes * mo;
2645
+ const x = S.minutes * ho;
2632
2646
  u.push({
2633
2647
  op: "start",
2634
2648
  metric: g,
2635
2649
  attempt: y(g),
2636
2650
  startedAt: h,
2637
2651
  targetMs: x,
2638
- dueAt: Oe(h, x, i)
2652
+ dueAt: Oe(h, x, s)
2639
2653
  });
2640
2654
  };
2641
2655
  switch (e) {
2642
2656
  case "apply": {
2643
2657
  for (const g of a)
2644
- g.profileId !== o.id && l(g, it(g));
2658
+ g.profileId !== o.id && l(g, st(g));
2645
2659
  for (const g of o.targets) {
2646
2660
  if (g.metric === "next_response") continue;
2647
2661
  a.some(
2648
2662
  (S) => S.metric === g.metric && S.profileId === o.id
2649
- ) || E(g.metric, s);
2663
+ ) || E(g.metric, i);
2650
2664
  }
2651
2665
  break;
2652
2666
  }
@@ -2658,7 +2672,7 @@ function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2658
2672
  break;
2659
2673
  }
2660
2674
  case "inbound": {
2661
- f(Ee), !m("first_response") && !m("next_response") && E("next_response", s);
2675
+ f(Ee), !m("first_response") && !m("next_response") && E("next_response", i);
2662
2676
  break;
2663
2677
  }
2664
2678
  case "resolved":
@@ -2668,7 +2682,7 @@ function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2668
2682
  d("close"), d("resolution"), c(Vt);
2669
2683
  break;
2670
2684
  case "reopened":
2671
- m("resolution") || E("resolution", s), m("close") || E("close", s);
2685
+ m("resolution") || E("resolution", i), m("close") || E("close", i);
2672
2686
  break;
2673
2687
  case "snoozed":
2674
2688
  o.pauseOn.includes("snoozed") && p(Se);
@@ -2677,30 +2691,30 @@ function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2677
2691
  f(Se);
2678
2692
  break;
2679
2693
  case "discarded":
2680
- c(ho);
2694
+ c(go);
2681
2695
  break;
2682
2696
  }
2683
2697
  return u;
2684
2698
  }
2685
- function _o(e) {
2699
+ function Ao(e) {
2686
2700
  return e.state === "running" || e.state === "paused";
2687
2701
  }
2688
2702
  function Ie(e, t) {
2689
2703
  const n = xe(e);
2690
2704
  return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -Ae(e.dueAt, t, n) : Ae(t, e.dueAt, n);
2691
2705
  }
2692
- function xc(e, t) {
2706
+ function Rc(e, t) {
2693
2707
  return e.state === "paused" ? Oe(t, e.remainingMs, xe(e)) : e.dueAt;
2694
2708
  }
2695
- function Nc(e, t) {
2696
- const n = e.filter(_o);
2709
+ function Dc(e, t) {
2710
+ const n = e.filter(Ao);
2697
2711
  if (!n.length) return;
2698
- const r = n.filter((i) => i.state === "running");
2712
+ const r = n.filter((s) => s.state === "running");
2699
2713
  return (r.length ? r : n).reduce(
2700
- (i, s) => Ie(s, t) < Ie(i, t) ? s : i
2714
+ (s, i) => Ie(i, t) < Ie(s, t) ? i : s
2701
2715
  );
2702
2716
  }
2703
- function Rc(e, t) {
2717
+ function $c(e, t) {
2704
2718
  if (e.state === "missed") return "breached";
2705
2719
  if (e.state === "hit") return "met";
2706
2720
  if (e.state === "paused") return "paused";
@@ -2708,41 +2722,41 @@ function Rc(e, t) {
2708
2722
  const n = Ie(e, t);
2709
2723
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
2710
2724
  }
2711
- function Dc(e) {
2725
+ function Lc(e) {
2712
2726
  const t = Math.floor(Math.abs(e) / 1e3), n = Math.floor(t / 86400), r = Math.floor(t % 86400 / 3600), o = Math.floor(t % 3600 / 60);
2713
2727
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
2714
2728
  }
2715
- const Ao = "strategy_item";
2729
+ const So = "strategy_item";
2716
2730
  function zt(e) {
2717
- return `${Ao}:${e}`;
2731
+ return `${So}:${e}`;
2718
2732
  }
2719
- function $c(e, t = 25) {
2733
+ function Pc(e, t = 25) {
2720
2734
  const n = /* @__PURE__ */ new Set([zt(e.id)]);
2721
2735
  for (const r of e.ancestorKeys ?? []) n.add(r);
2722
2736
  return Array.from(n).slice(0, t);
2723
2737
  }
2724
- function Lc(e) {
2738
+ function Kc(e) {
2725
2739
  return e ? [...e.ancestorKeys ?? [], zt(e.id)] : [];
2726
2740
  }
2727
2741
  const ne = [
2728
2742
  { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
2729
2743
  { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
2730
2744
  { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
2731
- ], So = 999, Eo = 7;
2732
- function Io(e, t = ne) {
2745
+ ], Eo = 999, Io = 7;
2746
+ function To(e, t = ne) {
2733
2747
  return t.find((n) => n.key === e);
2734
2748
  }
2735
2749
  function Te(e, t = ne) {
2736
- return Io(e, t)?.order ?? So;
2750
+ return To(e, t)?.order ?? Eo;
2737
2751
  }
2738
- function Pc(e, t, n = ne) {
2752
+ function Uc(e, t, n = ne) {
2739
2753
  return Te(t, n) <= Te(e, n);
2740
2754
  }
2741
- function Kc(e, t = ne) {
2755
+ function Fc(e, t = ne) {
2742
2756
  const n = Te(e, t);
2743
- return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
2757
+ return t.filter((o) => o.order > n).sort((o, s) => o.order - s.order)[0]?.key ?? e;
2744
2758
  }
2745
- function Uc(e) {
2759
+ function Bc(e) {
2746
2760
  const t = e.trim().toLowerCase();
2747
2761
  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;
2748
2762
  }
@@ -2755,132 +2769,132 @@ const we = {
2755
2769
  achieved: "closed",
2756
2770
  missed: "closed"
2757
2771
  };
2758
- function Fc(e) {
2772
+ function jc(e) {
2759
2773
  return we[e] ?? "open";
2760
2774
  }
2761
- function Bc(e) {
2775
+ function Hc(e) {
2762
2776
  return Object.keys(we).filter(
2763
2777
  (t) => e.includes(we[t])
2764
2778
  );
2765
2779
  }
2766
- const To = 864e5, re = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2767
- function jc(e, t) {
2780
+ const wo = 864e5, re = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2781
+ function Gc(e, t) {
2768
2782
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
2769
2783
  if (!Number.isFinite(t)) return 0;
2770
- const i = n === "down" ? t <= o : t >= o, s = o - r;
2771
- return (n === "down" ? s < 0 : s > 0) ? re((t - r) / s) : i ? 1 : 0;
2784
+ const s = n === "down" ? t <= o : t >= o, i = o - r;
2785
+ return (n === "down" ? i < 0 : i > 0) ? re((t - r) / i) : s ? 1 : 0;
2772
2786
  }
2773
- function Hc(e, t) {
2787
+ function Wc(e, t) {
2774
2788
  const { startDate: n, targetDate: r } = e;
2775
2789
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
2776
2790
  return re((t - n) / (r - n));
2777
2791
  }
2778
- const wo = 0.1, ko = 0.25;
2779
- function Gc(e, t) {
2792
+ const ko = 0.1, vo = 0.25;
2793
+ function Vc(e, t) {
2780
2794
  if (typeof e != "number" || typeof t != "number") return;
2781
2795
  if (e >= 1) return "achieved";
2782
2796
  const n = t - e;
2783
- return n >= ko ? "off_track" : n >= wo ? "at_risk" : "on_track";
2797
+ return n >= vo ? "off_track" : n >= ko ? "at_risk" : "on_track";
2784
2798
  }
2785
- function Wc(e, t) {
2799
+ function zc(e, t) {
2786
2800
  if (t)
2787
2801
  return re(e / t);
2788
2802
  }
2789
- function Vc(e) {
2803
+ function Xc(e) {
2790
2804
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
2791
2805
  if (t.length)
2792
2806
  return re(t.reduce((n, r) => n + r, 0) / t.length);
2793
2807
  }
2794
- function zc(e, t) {
2808
+ function Yc(e, t) {
2795
2809
  const n = e.lastCheckInAt ?? e.createdAt;
2796
2810
  if (typeof n != "number") return 0;
2797
- const r = (e.checkInEveryDays ?? Eo) * To, o = t - n - r;
2811
+ const r = (e.checkInEveryDays ?? Io) * wo, o = t - n - r;
2798
2812
  return o > 0 ? o : 0;
2799
2813
  }
2800
- function Xc(e) {
2814
+ function qc(e) {
2801
2815
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
2802
2816
  }
2803
- function Yc(e, t) {
2817
+ function Qc(e, t) {
2804
2818
  const n = e.accumulatedSeconds || 0;
2805
2819
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
2806
2820
  }
2807
- function qc(e, t) {
2821
+ function Zc(e, t) {
2808
2822
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
2809
2823
  if (!t || t === "exact") return n * 60;
2810
2824
  const r = Number(t);
2811
2825
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
2812
2826
  }
2813
- function Qc(e) {
2827
+ function Jc(e) {
2814
2828
  const t = Math.max(0, Math.round(e / 60));
2815
2829
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
2816
2830
  }
2817
- function Zc(e) {
2818
- const t = Math.max(0, Math.floor(e)), n = (i) => String(i).padStart(2, "0"), r = Math.floor(t / 60) % 60, o = Math.floor(t / 3600);
2831
+ function el(e) {
2832
+ const t = Math.max(0, Math.floor(e)), n = (s) => String(s).padStart(2, "0"), r = Math.floor(t / 60) % 60, o = Math.floor(t / 3600);
2819
2833
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
2820
2834
  }
2821
2835
  function Mo(e) {
2822
2836
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2823
2837
  }
2824
- function Jc(e, t) {
2838
+ function tl(e, t) {
2825
2839
  const n = Mo(e) || "werksoort", r = new Set(t);
2826
2840
  if (!r.has(n)) return n;
2827
2841
  for (let o = 2; o < 500; o++) {
2828
- const i = `${n}-${o}`;
2829
- if (!r.has(i)) return i;
2842
+ const s = `${n}-${o}`;
2843
+ if (!r.has(s)) return s;
2830
2844
  }
2831
2845
  return `${n}-${r.size + 1}`;
2832
2846
  }
2833
- function el(e, t) {
2847
+ function nl(e, t) {
2834
2848
  const n = e.ownerScope;
2835
2849
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
2836
2850
  }
2837
- function tl(e) {
2838
- return e.filter((t) => !t.archived).sort(vo);
2851
+ function rl(e) {
2852
+ return e.filter((t) => !t.archived).sort(Co);
2839
2853
  }
2840
- function vo(e, t) {
2854
+ function Co(e, t) {
2841
2855
  const n = (e.order ?? 0) - (t.order ?? 0);
2842
2856
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
2843
2857
  }
2844
- const Co = 20, Oo = 20, ue = 300;
2858
+ const Oo = 20, xo = 20, ue = 300;
2845
2859
  function P(e) {
2846
2860
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
2847
2861
  }
2848
- function xo(e) {
2862
+ function No(e) {
2849
2863
  const t = e.replace(/\s+/g, " ").trim();
2850
2864
  if (t.length <= ue) return t;
2851
2865
  const n = t.slice(0, ue), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
2852
2866
  return r > ue * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
2853
2867
  }
2854
- function nl(e, t) {
2855
- const n = xo(t.text), r = P(n);
2856
- if (!r || (e.examples ?? []).some((s) => P(s) === r)) return null;
2857
- const o = e.exampleCandidates ?? [], i = o.findIndex((s) => P(s.text) === r);
2858
- if (i >= 0) {
2859
- if (o[i].corrected || !t.corrected) return null;
2860
- const s = [...o];
2861
- return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, st(s);
2868
+ function ol(e, t) {
2869
+ const n = No(t.text), r = P(n);
2870
+ if (!r || (e.examples ?? []).some((i) => P(i) === r)) return null;
2871
+ const o = e.exampleCandidates ?? [], s = o.findIndex((i) => P(i.text) === r);
2872
+ if (s >= 0) {
2873
+ if (o[s].corrected || !t.corrected) return null;
2874
+ const i = [...o];
2875
+ return i[s] = { ...i[s], corrected: !0, addedAt: t.addedAt }, it(i);
2862
2876
  }
2863
- return st([{ ...t, text: n }, ...o]).slice(0, Oo);
2877
+ return it([{ ...t, text: n }, ...o]).slice(0, xo);
2864
2878
  }
2865
- function st(e) {
2879
+ function it(e) {
2866
2880
  return [...e].sort(
2867
2881
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
2868
2882
  );
2869
2883
  }
2870
- function rl(e, t) {
2871
- const n = P(t), r = (e.examples ?? []).filter((i) => i.trim());
2872
- return { examples: r.some((i) => P(i) === n) ? r : [...r, t].slice(-Co), exampleCandidates: No(e, t) };
2884
+ function sl(e, t) {
2885
+ const n = P(t), r = (e.examples ?? []).filter((s) => s.trim());
2886
+ return { examples: r.some((s) => P(s) === n) ? r : [...r, t].slice(-Oo), exampleCandidates: Ro(e, t) };
2873
2887
  }
2874
- function No(e, t) {
2888
+ function Ro(e, t) {
2875
2889
  const n = P(t);
2876
2890
  return (e.exampleCandidates ?? []).filter((r) => P(r.text) !== n);
2877
2891
  }
2878
- function Ro(e, t) {
2892
+ function Do(e, t) {
2879
2893
  const n = e.ownerScope;
2880
2894
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
2881
2895
  }
2882
- function ol(e, t) {
2883
- return e.filter((n) => Ro(n, t));
2896
+ function il(e, t) {
2897
+ return e.filter((n) => Do(n, t));
2884
2898
  }
2885
2899
  const Xt = [
2886
2900
  {
@@ -2921,10 +2935,10 @@ function ke(e) {
2921
2935
  statuses: ["draft"]
2922
2936
  };
2923
2937
  }
2924
- function il(e) {
2938
+ function al(e) {
2925
2939
  return e.issuedAt != null;
2926
2940
  }
2927
- const sl = [
2941
+ const cl = [
2928
2942
  "status",
2929
2943
  "fileRef",
2930
2944
  "number",
@@ -2933,7 +2947,7 @@ const sl = [
2933
2947
  "dunning",
2934
2948
  "updatedAt"
2935
2949
  ];
2936
- function Do(e, t) {
2950
+ function $o(e, t) {
2937
2951
  const n = ke(t).signFlip !== ke(e.kindKey).signFlip, r = e.lines.map((o) => ({
2938
2952
  ...o,
2939
2953
  quantity: n ? -o.quantity : o.quantity,
@@ -2945,6 +2959,9 @@ function Do(e, t) {
2945
2959
  sourceTransactionId: e.id,
2946
2960
  agreementId: e.agreementId,
2947
2961
  version: 1,
2962
+ // Carried over on purpose: a revision of a quote must not quietly change which entity signs
2963
+ // it, and neither must the invoice that follows from it.
2964
+ businessEntityId: e.businessEntityId,
2948
2965
  companyId: e.companyId,
2949
2966
  contactId: e.contactId,
2950
2967
  dealItemId: e.dealItemId,
@@ -2962,9 +2979,9 @@ function Do(e, t) {
2962
2979
  source: e.source
2963
2980
  };
2964
2981
  }
2965
- function al(e) {
2982
+ function ll(e) {
2966
2983
  return {
2967
- ...Do(e, e.kindKey),
2984
+ ...$o(e, e.kindKey),
2968
2985
  sourceTransactionId: e.sourceTransactionId,
2969
2986
  previousVersionId: e.id,
2970
2987
  version: e.version + 1,
@@ -2972,7 +2989,7 @@ function al(e) {
2972
2989
  totals: e.totals
2973
2990
  };
2974
2991
  }
2975
- function cl(e, t = {}) {
2992
+ function ul(e, t = {}) {
2976
2993
  const n = ke(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
2977
2994
  return {
2978
2995
  customer: {
@@ -2981,7 +2998,7 @@ function cl(e, t = {}) {
2981
2998
  // One token per line of the address, plus `street` on its own for a template that wants
2982
2999
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
2983
3000
  // recipient block missing its street is exactly what the issue gate has to refuse.
2984
- address: Po(t.companyAddress),
3001
+ address: Ko(t.companyAddress),
2985
3002
  street: t.companyAddress?.street ?? "",
2986
3003
  house_number: t.companyAddress?.houseNumber ?? "",
2987
3004
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3006,8 +3023,8 @@ function cl(e, t = {}) {
3006
3023
  }
3007
3024
  };
3008
3025
  }
3009
- function ll(e, t = [], n = $o) {
3010
- const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((u) => u.key === a)?.percent ?? 0, i = {
3026
+ function dl(e, t = [], n = Lo) {
3027
+ const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((u) => u.key === a)?.percent ?? 0, s = {
3011
3028
  block_id: "lines",
3012
3029
  type: "table",
3013
3030
  columns: [
@@ -3021,13 +3038,13 @@ function ll(e, t = [], n = $o) {
3021
3038
  // A text line spans as a heading: empty money cells would read as "free".
3022
3039
  [a.name, "", "", ""]
3023
3040
  ) : [
3024
- Lo(a.name, a.description, a.optional, n.optional),
3025
- Ko(a.quantity),
3041
+ Po(a.name, a.description, a.optional, n.optional),
3042
+ Uo(a.quantity),
3026
3043
  D(a.unitPriceCents),
3027
3044
  D(a.netCents)
3028
3045
  ]
3029
3046
  )
3030
- }, s = {
3047
+ }, i = {
3031
3048
  block_id: "totals",
3032
3049
  type: "totals",
3033
3050
  rows: [
@@ -3039,9 +3056,9 @@ function ll(e, t = [], n = $o) {
3039
3056
  amount: D(a.taxCents)
3040
3057
  }))
3041
3058
  };
3042
- return { lines: [i], totals: [s] };
3059
+ return { lines: [s], totals: [i] };
3043
3060
  }
3044
- const $o = {
3061
+ const Lo = {
3045
3062
  description: "Omschrijving",
3046
3063
  optional: "optioneel",
3047
3064
  quantity: "Aantal",
@@ -3050,14 +3067,14 @@ const $o = {
3050
3067
  tax: "Btw",
3051
3068
  gross: "Totaal"
3052
3069
  };
3053
- function Lo(e, t, n, r) {
3070
+ function Po(e, t, n, r) {
3054
3071
  const o = t ? `${e} — ${t}` : e;
3055
3072
  return n ? `${o} (${r})` : o;
3056
3073
  }
3057
- function Po(e) {
3074
+ function Ko(e) {
3058
3075
  return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3059
3076
  }
3060
- function Ko(e) {
3077
+ function Uo(e) {
3061
3078
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3062
3079
  }
3063
3080
  function at(e) {
@@ -3065,7 +3082,7 @@ function at(e) {
3065
3082
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3066
3083
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3067
3084
  }
3068
- const ul = [
3085
+ const pl = [
3069
3086
  {
3070
3087
  block_id: "head",
3071
3088
  type: "letterhead",
@@ -3098,39 +3115,39 @@ Hierbij onze offerte. Hieronder vindt u de specificatie.`
3098
3115
  type: "paragraph",
3099
3116
  text: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}."
3100
3117
  }
3101
- ], Uo = Xt.map((e) => e.key), Fo = "product";
3102
- function dl(e, t) {
3118
+ ], Fo = Xt.map((e) => e.key), Bo = "product";
3119
+ function fl(e, t) {
3103
3120
  return `${e}:${t}`;
3104
3121
  }
3105
- function pl(e) {
3106
- return `${Fo}:${e}`;
3122
+ function ml(e) {
3123
+ return `${Bo}:${e}`;
3107
3124
  }
3108
- function fl(e) {
3125
+ function hl(e) {
3109
3126
  const t = e.indexOf(":");
3110
3127
  if (t < 0) return;
3111
3128
  const n = e.slice(0, t);
3112
- return Uo.includes(n) ? e.slice(t + 1) : void 0;
3129
+ return Fo.includes(n) ? e.slice(t + 1) : void 0;
3113
3130
  }
3114
- function ml(e) {
3131
+ function gl(e) {
3115
3132
  return e.type === "agent";
3116
3133
  }
3117
- const hl = "WORK_COMMENT_ADDED", gl = "WORK_ITEM_ASSIGNED", yl = "WORK_ITEM_STATUS_CHANGED";
3118
- function Bo(e, t) {
3134
+ const yl = "WORK_COMMENT_ADDED", bl = "WORK_ITEM_ASSIGNED", _l = "WORK_ITEM_STATUS_CHANGED";
3135
+ function jo(e, t) {
3119
3136
  const n = (r) => {
3120
3137
  const o = new Date(r);
3121
3138
  return o.setHours(0, 0, 0, 0), o.getTime();
3122
3139
  };
3123
- return Math.round((n(e) - n(t)) / qn);
3140
+ return Math.round((n(e) - n(t)) / Qn);
3124
3141
  }
3125
- function bl(e, t) {
3142
+ function Al(e, t) {
3126
3143
  if (e.closedAt != null) return { score: L, reasons: [] };
3127
3144
  const n = t.remindersById?.[e.id];
3128
3145
  if (n && n.remindAt > t.now) return { score: L, reasons: [] };
3129
3146
  let r = 0;
3130
- const o = [], i = e.priority ?? "normal";
3131
- if (J[i] > 0 && (r += J[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
3132
- const s = Bo(e.dueDate, t.now);
3133
- s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
3147
+ const o = [], s = e.priority ?? "normal";
3148
+ if (J[s] > 0 && (r += J[s], o.push(`priority:${s}`)), typeof e.dueDate == "number") {
3149
+ const i = jo(e.dueDate, t.now);
3150
+ i < 0 ? (r += 35, o.push("overdue")) : i === 0 && (r += 20, o.push("due-today"));
3134
3151
  }
3135
3152
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
3136
3153
  }
@@ -3142,35 +3159,35 @@ const Ne = [
3142
3159
  { key: "subtask", label: "type_subtask" },
3143
3160
  { key: "case", label: "type_case" },
3144
3161
  { key: "deal", label: "type_deal" }
3145
- ], _l = Ne.map((e) => e.key);
3146
- function Al(e) {
3162
+ ], Sl = Ne.map((e) => e.key);
3163
+ function El(e) {
3147
3164
  return e?.types?.length ? e.types : Ne;
3148
3165
  }
3149
- function Sl(e, t) {
3166
+ function Il(e, t) {
3150
3167
  return t.find((n) => n.key === e);
3151
3168
  }
3152
- function El(e) {
3169
+ function Tl(e) {
3153
3170
  const t = e.trim().toLowerCase();
3154
3171
  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;
3155
3172
  }
3156
- function Il(...e) {
3173
+ function wl(...e) {
3157
3174
  return e.map((t) => Ne.find((n) => n.key === t)).filter((t) => !!t);
3158
3175
  }
3159
- const jo = "work_item", Ho = "work_project", Go = "work_activity", Tl = "work_cycle";
3160
- function Wo(e) {
3161
- return `${jo}:${e}`;
3162
- }
3163
- function Yt(e) {
3176
+ const Ho = "work_item", Go = "work_project", Wo = "work_activity", kl = "work_cycle";
3177
+ function Vo(e) {
3164
3178
  return `${Ho}:${e}`;
3165
3179
  }
3166
- function wl(e) {
3180
+ function Yt(e) {
3167
3181
  return `${Go}:${e}`;
3168
3182
  }
3169
- function kl(e, t, n) {
3183
+ function vl(e) {
3184
+ return `${Wo}:${e}`;
3185
+ }
3186
+ function Ml(e, t, n) {
3170
3187
  const r = `${e}-${t}`;
3171
3188
  return n ? `${r}-${n}` : r;
3172
3189
  }
3173
- function Ml(e) {
3190
+ function Cl(e) {
3174
3191
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
3175
3192
  return t ? {
3176
3193
  projectKey: t[1].toUpperCase(),
@@ -3178,17 +3195,17 @@ function Ml(e) {
3178
3195
  ...t[3] ? { subSequence: Number(t[3]) } : {}
3179
3196
  } : null;
3180
3197
  }
3181
- function vl(e) {
3198
+ function Ol(e) {
3182
3199
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
3183
3200
  }
3184
- function Cl(e, t = 25) {
3185
- const n = /* @__PURE__ */ new Set([Wo(e.id)]);
3201
+ function xl(e, t = 25) {
3202
+ const n = /* @__PURE__ */ new Set([Vo(e.id)]);
3186
3203
  e.projectId && n.add(Yt(e.projectId));
3187
3204
  for (const r of e.ancestorKeys ?? []) n.add(r);
3188
3205
  for (const r of e.partyKeys ?? []) n.add(r);
3189
3206
  return Array.from(n).slice(0, t);
3190
3207
  }
3191
- function Ol(e) {
3208
+ function Nl(e) {
3192
3209
  return [Yt(e.id)];
3193
3210
  }
3194
3211
  const Re = [
@@ -3197,41 +3214,41 @@ const Re = [
3197
3214
  { key: "done", label: "status_done", category: "done", order: 2 },
3198
3215
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
3199
3216
  ], qt = Re.map((e) => e.key);
3200
- function Vo(e) {
3217
+ function zo(e) {
3201
3218
  return e?.statuses?.length ? e.statuses : Re;
3202
3219
  }
3203
- function zo(e, t) {
3220
+ function Xo(e, t) {
3204
3221
  return t.find((n) => n.key === e)?.category ?? "todo";
3205
3222
  }
3206
- function xl(e, t) {
3223
+ function Rl(e, t) {
3207
3224
  return t.find((n) => n.key === e);
3208
3225
  }
3209
- function Nl(e) {
3210
- const t = Vo(e), n = e?.defaultStatusKey;
3211
- return n && t.some((r) => r.key === n) ? n : Xo(t)[0]?.key ?? Re[0].key;
3226
+ function Dl(e) {
3227
+ const t = zo(e), n = e?.defaultStatusKey;
3228
+ return n && t.some((r) => r.key === n) ? n : Yo(t)[0]?.key ?? Re[0].key;
3212
3229
  }
3213
- function Xo(e) {
3230
+ function Yo(e) {
3214
3231
  return [...e].sort((t, n) => {
3215
3232
  const r = (t.order ?? 0) - (n.order ?? 0);
3216
3233
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
3217
3234
  });
3218
3235
  }
3219
- function Rl(e, t) {
3220
- return zo(e, t) === "done";
3236
+ function $l(e, t) {
3237
+ return Xo(e, t) === "done";
3221
3238
  }
3222
- function Yo(e) {
3239
+ function qo(e) {
3223
3240
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3224
3241
  }
3225
- function Dl(e, t) {
3226
- const n = Yo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3242
+ function Ll(e, t) {
3243
+ const n = qo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3227
3244
  if (!r.has(n)) return n;
3228
3245
  for (let o = 2; o < 500; o++) {
3229
- const i = `${n}-${o}`;
3230
- if (!r.has(i)) return i;
3246
+ const s = `${n}-${o}`;
3247
+ if (!r.has(s)) return s;
3231
3248
  }
3232
3249
  return `${n}-${r.size + 1}`;
3233
3250
  }
3234
- function $l(e) {
3251
+ function Pl(e) {
3235
3252
  const t = [];
3236
3253
  if (!e.length) return [{ index: -1, reason: "empty" }];
3237
3254
  const n = /* @__PURE__ */ new Set();
@@ -3243,13 +3260,13 @@ function $l(e) {
3243
3260
  qt.includes(r.key) && t.push({ index: o, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: o, reason: "duplicate_key", key: r.key }), n.add(r.key);
3244
3261
  }), 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;
3245
3262
  }
3246
- function Ll(e) {
3263
+ function Kl(e) {
3247
3264
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
3248
3265
  }
3249
- function Pl(e) {
3266
+ function Ul(e) {
3250
3267
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
3251
3268
  }
3252
- const qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Qo = /* @__PURE__ */ new Set([
3269
+ const Qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Zo = /* @__PURE__ */ new Set([
3253
3270
  "text/plain",
3254
3271
  "text/markdown",
3255
3272
  "text/csv",
@@ -3258,67 +3275,67 @@ const qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
3258
3275
  "application/xml",
3259
3276
  "text/xml"
3260
3277
  ]);
3261
- function Zo(e) {
3278
+ function Jo(e) {
3262
3279
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
3263
- return t ? qo.has(t) ? "image" : t === "application/pdf" ? "pdf" : Qo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3280
+ return t ? Qo.has(t) ? "image" : t === "application/pdf" ? "pdf" : Zo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3264
3281
  }
3265
- const F = 1024 * 1024, Jo = {
3282
+ const F = 1024 * 1024, es = {
3266
3283
  image: 5 * F,
3267
3284
  pdf: 20 * F,
3268
3285
  text: 1 * F,
3269
3286
  audio: 20 * F
3270
- }, Kl = 25 * F, Ul = 5;
3271
- function Fl(e, t) {
3272
- const n = Zo(e);
3273
- return n === "unsupported" ? "unsupported" : t > Jo[n] ? "too-large" : null;
3287
+ }, Fl = 25 * F, Bl = 5;
3288
+ function jl(e, t) {
3289
+ const n = Jo(e);
3290
+ return n === "unsupported" ? "unsupported" : t > es[n] ? "too-large" : null;
3274
3291
  }
3275
- function Bl(e) {
3292
+ function Hl(e) {
3276
3293
  return e.access !== "read" && e.effect !== "internal";
3277
3294
  }
3278
- function ei(e) {
3295
+ function ts(e) {
3279
3296
  return `${e.kind}:${e.id || e.url || e.title}`;
3280
3297
  }
3281
- function jl(e, t = []) {
3298
+ function Gl(e, t = []) {
3282
3299
  const n = new Set(t), r = [], o = [];
3283
- for (const i of e) {
3284
- const s = ei(i);
3285
- n.has(s) || (n.add(s), r.push(i), o.push(s));
3300
+ for (const s of e) {
3301
+ const i = ts(s);
3302
+ n.has(i) || (n.add(i), r.push(s), o.push(i));
3286
3303
  }
3287
3304
  return { sources: r, keys: o };
3288
3305
  }
3289
- const Hl = "assist-source", Gl = ["blocking", "due", "open"];
3290
- function Wl(e, t) {
3306
+ const Wl = "assist-source", Vl = ["blocking", "due", "open"];
3307
+ function zl(e, t) {
3291
3308
  const [n, r] = (e.subjectKey ?? "").split(":");
3292
3309
  return n === t && r ? r : void 0;
3293
3310
  }
3294
3311
  const ct = { blocking: 0, due: 1, open: 2 };
3295
- function Vl(e, t) {
3312
+ function Xl(e, t) {
3296
3313
  return ct[e.band ?? "open"] - ct[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
3297
3314
  }
3298
- function zl(e) {
3315
+ function Yl(e) {
3299
3316
  return e.sessions.filter(
3300
3317
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
3301
3318
  );
3302
3319
  }
3303
- function Xl(e) {
3320
+ function ql(e) {
3304
3321
  return e.sessions.filter(
3305
3322
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
3306
3323
  );
3307
3324
  }
3308
- function Yl(e) {
3325
+ function Ql(e) {
3309
3326
  return e.sessions.some(
3310
3327
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
3311
3328
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
3312
3329
  }
3313
- function ti(e, t) {
3314
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => ri(s, r[s.intent]));
3330
+ function ns(e, t) {
3331
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((i) => !n.has(i.intent)).map((i) => os(i, r[i.intent]));
3315
3332
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
3316
- const i = new Set(o.map((s) => s.intent));
3317
- for (const s of e.extraIntents)
3318
- i.has(s.intent) || (o.push(s), i.add(s.intent));
3333
+ const s = new Set(o.map((i) => i.intent));
3334
+ for (const i of e.extraIntents)
3335
+ s.has(i.intent) || (o.push(i), s.add(i.intent));
3319
3336
  return o;
3320
3337
  }
3321
- function ni(e, t) {
3338
+ function rs(e, t) {
3322
3339
  const n = {};
3323
3340
  for (const r of e.intents) {
3324
3341
  if (!r.togglable) continue;
@@ -3327,46 +3344,46 @@ function ni(e, t) {
3327
3344
  }
3328
3345
  return n;
3329
3346
  }
3330
- function ql(e, t) {
3331
- const n = ni(e, t);
3347
+ function Zl(e, t) {
3348
+ const n = rs(e, t);
3332
3349
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
3333
3350
  }
3334
- function ri(e, t) {
3351
+ function os(e, t) {
3335
3352
  return t ? {
3336
3353
  intent: t.intent ?? e.intent,
3337
3354
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
3338
3355
  transport: t.transport ?? e.transport
3339
3356
  } : e;
3340
3357
  }
3341
- function Ql(e, t) {
3358
+ function Jl(e, t) {
3342
3359
  const n = [];
3343
3360
  for (const r of e) {
3344
3361
  if (!r.enabled) continue;
3345
3362
  const o = t[r.providerId];
3346
3363
  if (o)
3347
- for (const i of ti(r, o))
3348
- n.push({ channel: r, description: o, capability: i });
3364
+ for (const s of ns(r, o))
3365
+ n.push({ channel: r, description: o, capability: s });
3349
3366
  }
3350
3367
  return n;
3351
3368
  }
3352
- function Zl(e, t) {
3369
+ function eu(e, t) {
3353
3370
  return t.filter((n) => n.capability.intent === e);
3354
3371
  }
3355
- function oi(e, t) {
3372
+ function ss(e, t) {
3356
3373
  return t.filter((n) => n.capability.targetSchemes.includes(e));
3357
3374
  }
3358
- function Jl(e, t) {
3359
- return oi(e.scheme, t);
3375
+ function tu(e, t) {
3376
+ return ss(e.scheme, t);
3360
3377
  }
3361
- function eu(e, t, n) {
3378
+ function nu(e, t, n) {
3362
3379
  const r = [];
3363
3380
  for (const o of e)
3364
- for (const i of n)
3365
- i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
3381
+ for (const s of n)
3382
+ s.capability.intent === t && s.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: s, endpoint: o });
3366
3383
  return r;
3367
3384
  }
3368
- var ii = /* @__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))(ii || {});
3369
- const si = {
3385
+ var is = /* @__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))(is || {});
3386
+ const as = {
3370
3387
  mailto: "mail",
3371
3388
  sip: "tel",
3372
3389
  tel: "tel",
@@ -3387,10 +3404,10 @@ const si = {
3387
3404
  id: "note",
3388
3405
  custom: "note"
3389
3406
  };
3390
- function tu(e) {
3391
- return e ? si[e] ?? "note" : "note";
3407
+ function ru(e) {
3408
+ return e ? as[e] ?? "note" : "note";
3392
3409
  }
3393
- const nu = "message_window", ru = "message_templates", ou = {
3410
+ const ou = "message_window", su = "message_templates", iu = {
3394
3411
  // E-mail
3395
3412
  FROM: "from",
3396
3413
  TO: "to",
@@ -3407,22 +3424,22 @@ const nu = "message_window", ru = "message_templates", ou = {
3407
3424
  // Voice/conference
3408
3425
  HOST: "host",
3409
3426
  PARTICIPANT: "participant"
3410
- }, iu = (e, t) => ({ intent: e, ...t }), su = "folder_management", au = "remote_search", cu = "message_reactions", lu = {
3427
+ }, au = (e, t) => ({ intent: e, ...t }), cu = "folder_management", lu = "remote_search", uu = "message_reactions", du = {
3411
3428
  ok: !1,
3412
3429
  code: "UNSUPPORTED",
3413
3430
  message: "Provider does not support this op"
3414
- }, uu = "connector", du = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), v = A("Sheet name. Omit for the sheet the user is looking at."), lt = A("Slide id, as `inspect` reports it.");
3415
- function b(e, t, n, r, o, i) {
3431
+ }, pu = "connector", fu = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), lt = A("Slide id, as `inspect` reports it.");
3432
+ function b(e, t, n, r, o, s) {
3416
3433
  return {
3417
3434
  op: e,
3418
3435
  kinds: t,
3419
3436
  summary: n,
3420
3437
  parameters: { type: "object", properties: r, required: o },
3421
- undoable: i.undoable,
3422
- visible: i.visible
3438
+ undoable: s.undoable,
3439
+ visible: s.visible
3423
3440
  };
3424
3441
  }
3425
- const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, ai = [
3442
+ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, cs = [
3426
3443
  b(
3427
3444
  "pdf.goToPage",
3428
3445
  ["pdf"],
@@ -3517,13 +3534,13 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3517
3534
  ["page", "text"],
3518
3535
  ee
3519
3536
  )
3520
- ], ci = [
3537
+ ], ls = [
3521
3538
  b(
3522
3539
  "sheet.setValues",
3523
3540
  ["sheet"],
3524
3541
  "Write a block of values. The block's shape must match the range.",
3525
3542
  {
3526
- sheet: v,
3543
+ sheet: M,
3527
3544
  range: A("A1 notation, e.g. `B2:D5` or a single `A1`."),
3528
3545
  values: {
3529
3546
  type: "array",
@@ -3538,7 +3555,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3538
3555
  "sheet.setFormula",
3539
3556
  ["sheet"],
3540
3557
  "Put a formula in every cell of a range.",
3541
- { sheet: v, range: A("A1 notation."), formula: A("Including the leading `=`.") },
3558
+ { sheet: M, range: A("A1 notation."), formula: A("Including the leading `=`.") },
3542
3559
  ["range", "formula"],
3543
3560
  I
3544
3561
  ),
@@ -3547,7 +3564,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3547
3564
  ["sheet"],
3548
3565
  "Change the look of a range. Only the properties you pass are touched.",
3549
3566
  {
3550
- sheet: v,
3567
+ sheet: M,
3551
3568
  range: A("A1 notation."),
3552
3569
  bold: Q("Bold on or off."),
3553
3570
  italic: Q("Italic on or off."),
@@ -3569,7 +3586,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3569
3586
  ["sheet"],
3570
3587
  "Insert empty rows, pushing the rest down.",
3571
3588
  {
3572
- sheet: v,
3589
+ sheet: M,
3573
3590
  at: _("1-based row number to insert before."),
3574
3591
  count: _("How many. Omit for 1.")
3575
3592
  },
@@ -3580,7 +3597,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3580
3597
  "sheet.deleteRows",
3581
3598
  ["sheet"],
3582
3599
  "Delete rows, pulling the rest up.",
3583
- { sheet: v, at: _("1-based first row to delete."), count: _("How many. Omit for 1.") },
3600
+ { sheet: M, at: _("1-based first row to delete."), count: _("How many. Omit for 1.") },
3584
3601
  ["at"],
3585
3602
  I
3586
3603
  ),
@@ -3589,7 +3606,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3589
3606
  ["sheet"],
3590
3607
  "Insert empty columns, pushing the rest right.",
3591
3608
  {
3592
- sheet: v,
3609
+ sheet: M,
3593
3610
  at: _("1-based column number to insert before."),
3594
3611
  count: _("How many. Omit for 1.")
3595
3612
  },
@@ -3601,7 +3618,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3601
3618
  ["sheet"],
3602
3619
  "Delete columns, pulling the rest left.",
3603
3620
  {
3604
- sheet: v,
3621
+ sheet: M,
3605
3622
  at: _("1-based first column to delete."),
3606
3623
  count: _("How many. Omit for 1.")
3607
3624
  },
@@ -3612,7 +3629,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3612
3629
  "sheet.merge",
3613
3630
  ["sheet"],
3614
3631
  "Merge a range into one cell.",
3615
- { sheet: v, range: A("A1 notation.") },
3632
+ { sheet: M, range: A("A1 notation.") },
3616
3633
  ["range"],
3617
3634
  I
3618
3635
  ),
@@ -3620,7 +3637,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3620
3637
  "sheet.unmerge",
3621
3638
  ["sheet"],
3622
3639
  "Break merged cells in a range apart.",
3623
- { sheet: v, range: A("A1 notation.") },
3640
+ { sheet: M, range: A("A1 notation.") },
3624
3641
  ["range"],
3625
3642
  I
3626
3643
  ),
@@ -3629,7 +3646,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3629
3646
  ["sheet"],
3630
3647
  "Sort a range on one of its columns.",
3631
3648
  {
3632
- sheet: v,
3649
+ sheet: M,
3633
3650
  range: A("A1 notation covering the rows to sort, header excluded."),
3634
3651
  column: _("1-based column *within the range*, not within the sheet."),
3635
3652
  ascending: Q("Ascending. Omit for ascending.")
@@ -3665,11 +3682,11 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3665
3682
  "sheet.activate",
3666
3683
  ["sheet"],
3667
3684
  "Show the user a sheet and select a range on it.",
3668
- { sheet: v, range: A("A1 notation to select. Omit to only switch sheets.") },
3685
+ { sheet: M, range: A("A1 notation to select. Omit to only switch sheets.") },
3669
3686
  [],
3670
3687
  B
3671
3688
  )
3672
- ], li = [
3689
+ ], us = [
3673
3690
  b(
3674
3691
  "word.replaceParagraph",
3675
3692
  ["word"],
@@ -3731,7 +3748,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3731
3748
  ["start"],
3732
3749
  B
3733
3750
  )
3734
- ], ui = [
3751
+ ], ds = [
3735
3752
  b(
3736
3753
  "slides.setText",
3737
3754
  ["slides"],
@@ -3760,37 +3777,37 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3760
3777
  ee
3761
3778
  )
3762
3779
  ], Qt = [
3763
- ...ai,
3764
- ...ci,
3765
- ...li,
3766
- ...ui
3780
+ ...cs,
3781
+ ...ls,
3782
+ ...us,
3783
+ ...ds
3767
3784
  ];
3768
- function pu(e) {
3785
+ function mu(e) {
3769
3786
  return Qt.filter((t) => t.kinds.includes(e));
3770
3787
  }
3771
- function fu(e) {
3788
+ function hu(e) {
3772
3789
  return Qt.find((t) => t.op === e);
3773
3790
  }
3774
- const dt = /(?: {2,}|\\)$/, di = /^\*\*([^*]+)\*\*\s+(.*)$/;
3791
+ const dt = /(?: {2,}|\\)$/, ps = /^\*\*([^*]+)\*\*\s+(.*)$/;
3775
3792
  function pt(e) {
3776
- const t = di.exec(e);
3793
+ const t = ps.exec(e);
3777
3794
  return t ? { lead: t[1], text: t[2] } : { text: e };
3778
3795
  }
3779
- function mu(e) {
3796
+ function gu(e) {
3780
3797
  const t = (e ?? "").replace(/\r\n/g, `
3781
3798
  `).split(`
3782
3799
  `), n = [];
3783
3800
  let r = null;
3784
3801
  const o = () => {
3785
3802
  r && n.push({ type: "list", style: r.style, items: r.items }), r = null;
3786
- }, i = (p, f) => {
3803
+ }, s = (p, f) => {
3787
3804
  r && r.style !== p && o(), r ? r.items.push(pt(f)) : r = { style: p, items: [pt(f)] };
3788
3805
  };
3789
- let s = [], a = [];
3806
+ let i = [], a = [];
3790
3807
  const u = () => {
3791
- if (s.length) {
3792
- const p = s.join("").trim();
3793
- p && n.push({ type: "paragraph", text: p }), s = [];
3808
+ if (i.length) {
3809
+ const p = i.join("").trim();
3810
+ p && n.push({ type: "paragraph", text: p }), i = [];
3794
3811
  }
3795
3812
  }, l = () => {
3796
3813
  a.length && (n.push({ type: "quote", text: a.join(`
@@ -3829,11 +3846,11 @@ function mu(e) {
3829
3846
  continue;
3830
3847
  }
3831
3848
  if (/^\s*[-*]\s+/.test(p)) {
3832
- u(), l(), i("bulleted", p.replace(/^\s*[-*]\s+/, "")), c++;
3849
+ u(), l(), s("bulleted", p.replace(/^\s*[-*]\s+/, "")), c++;
3833
3850
  continue;
3834
3851
  }
3835
3852
  if (/^\s*\d+\.\s+/.test(p)) {
3836
- u(), l(), i("numbered", p.replace(/^\s*\d+\.\s+/, "")), c++;
3853
+ u(), l(), s("numbered", p.replace(/^\s*\d+\.\s+/, "")), c++;
3837
3854
  continue;
3838
3855
  }
3839
3856
  if (/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)) {
@@ -3850,32 +3867,32 @@ function mu(e) {
3850
3867
  }
3851
3868
  l(), o();
3852
3869
  const E = dt.test(p);
3853
- s.push(p.replace(dt, "").trim() + (E ? `
3870
+ i.push(p.replace(dt, "").trim() + (E ? `
3854
3871
  ` : " ")), c++;
3855
3872
  }
3856
3873
  return d(), n;
3857
3874
  }
3858
- function hu(e, t) {
3875
+ function yu(e, t) {
3859
3876
  return Dn(e, t).replace(/^```.*$/gm, "").replace(/^\|[\s:|-]*\|$/gm, "").replace(/[ \t]*\|[ \t]*/g, " ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm, "").replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/\[([^\]]+)\]\([^)]*\)/g, "$1").replace(/(\*\*|__|\*|_|`|~~)/g, "").replace(/[ \t]+$/gm, "").replace(/\n{3,}/g, `
3860
3877
 
3861
3878
  `).trim();
3862
3879
  }
3863
- const gu = "documents.describe", yu = "documents.inspect", bu = "documents.apply";
3864
- function _u(e) {
3880
+ const bu = "documents.describe", _u = "documents.inspect", Au = "documents.apply";
3881
+ function Su(e) {
3865
3882
  const t = e.indexOf(":");
3866
3883
  if (t !== -1) return e.slice(0, t);
3867
3884
  const n = e.indexOf(".");
3868
3885
  return n === -1 ? e : e.slice(0, n);
3869
3886
  }
3870
- const Au = "installation-id";
3871
- function Su(e) {
3887
+ const Eu = "installation-id";
3888
+ function Iu(e) {
3872
3889
  const t = [];
3873
3890
  for (const n of Object.keys(e))
3874
3891
  for (const r of Object.keys(e[n]))
3875
3892
  t.push({ lang: n, key: r, value: e[n][r] });
3876
3893
  return t;
3877
3894
  }
3878
- const Eu = "notification-source", Iu = (e, t) => `${e}.pref.${t}`, Tu = {
3895
+ const Tu = "notification-source", wu = (e, t) => `${e}.pref.${t}`, ku = {
3879
3896
  ai: [
3880
3897
  "account.read",
3881
3898
  "account.write",
@@ -4010,96 +4027,96 @@ const Eu = "notification-source", Iu = (e, t) => `${e}.pref.${t}`, Tu = {
4010
4027
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
4011
4028
  user: ["user.read", "user.write"],
4012
4029
  work: ["item.read", "item.write", "project.read", "project.write"]
4013
- }, Zt = 9e4, pi = ["out_of_office"], Jt = (e) => pi.includes(e);
4014
- function wu(e, t, n) {
4030
+ }, Zt = 9e4, fs = ["out_of_office"], Jt = (e) => fs.includes(e);
4031
+ function vu(e, t, n) {
4015
4032
  const r = n - e < Zt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4016
4033
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4017
- const i = o.status;
4018
- return !r && !Jt(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4034
+ const s = o.status;
4035
+ return !r && !Jt(s) ? { online: !1, status: "offline" } : { online: r, status: s, message: o.message };
4019
4036
  }
4020
- function ku(e, t) {
4037
+ function Mu(e, t) {
4021
4038
  const n = t - e.lastSeenAt < Zt, r = n || Jt(e.status) ? e.status : "offline";
4022
4039
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4023
4040
  }
4024
- function Mu(e, t) {
4041
+ function Cu(e, t) {
4025
4042
  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 };
4026
4043
  }
4027
- function vu(e) {
4044
+ function Ou(e) {
4028
4045
  return e.providerAvailable && e.allowed;
4029
4046
  }
4030
- const Cu = "resources.describe", Ou = "resources.search", xu = "resources.resolve", Nu = "resources.attached";
4031
- function Ru(e) {
4047
+ const xu = "resources.describe", Nu = "resources.search", Ru = "resources.resolve", Du = "resources.attached";
4048
+ function $u(e) {
4032
4049
  const t = e.indexOf(":");
4033
4050
  return t === -1 ? e : e.slice(0, t);
4034
4051
  }
4035
- const Du = "/provider/scope/related", $u = "/provider/scope/read", en = "auth";
4052
+ const Lu = "/provider/scope/related", Pu = "/provider/scope/read", en = "auth";
4036
4053
  function tn(e) {
4037
4054
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4038
4055
  return t ? t[1] : null;
4039
4056
  }
4040
- function Lu(e) {
4057
+ function Ku(e) {
4041
4058
  const t = tn(e);
4042
4059
  return t ? t !== en : typeof e == "string" && e.startsWith("/wake");
4043
4060
  }
4044
- function Pu(e) {
4061
+ function Uu(e) {
4045
4062
  return typeof e != "string" || e === "" || e === "/" ? !0 : tn(e) === en;
4046
4063
  }
4047
- function fi(e) {
4064
+ function ms(e) {
4048
4065
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4049
4066
  }
4050
- function mi(e) {
4051
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${fi(r)}`).join("");
4067
+ function hs(e) {
4068
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${ms(r)}`).join("");
4052
4069
  return new RegExp(`^${n}\\/?$`);
4053
4070
  }
4054
- function hi(e, t) {
4071
+ function gs(e, t) {
4055
4072
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
4056
- return n.forEach((i, s) => {
4057
- if (i.startsWith(":")) {
4058
- const a = i.endsWith("?") ? i.slice(1, -1) : i.slice(1), u = r[s];
4073
+ return n.forEach((s, i) => {
4074
+ if (s.startsWith(":")) {
4075
+ const a = s.endsWith("?") ? s.slice(1, -1) : s.slice(1), u = r[i];
4059
4076
  u && (o[a] = u);
4060
4077
  }
4061
4078
  }), o;
4062
4079
  }
4063
- function gi(e) {
4080
+ function ys(e) {
4064
4081
  return e.publicBasePath ?? `/apps/${e.name}`;
4065
4082
  }
4066
- function Ku(e) {
4083
+ function Fu(e) {
4067
4084
  const t = [];
4068
4085
  for (const n of e) {
4069
4086
  if (!n?.name) continue;
4070
- const r = gi(n);
4087
+ const r = ys(n);
4071
4088
  for (const o of n.routes ?? []) {
4072
4089
  if (!o.public) continue;
4073
- const i = o.path === "/" ? "" : o.path;
4090
+ const s = o.path === "/" ? "" : o.path;
4074
4091
  t.push({
4075
4092
  appName: n.name,
4076
4093
  resource: o.resource,
4077
- pattern: `${r}${i}`,
4094
+ pattern: `${r}${s}`,
4078
4095
  props: o.props
4079
4096
  });
4080
4097
  }
4081
4098
  }
4082
4099
  return t;
4083
4100
  }
4084
- function yi(e, t) {
4101
+ function bs(e, t) {
4085
4102
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
4086
4103
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
4087
- const i = n[o].startsWith(":"), s = r[o].startsWith(":");
4088
- if (i !== s) return s;
4104
+ const s = n[o].startsWith(":"), i = r[o].startsWith(":");
4105
+ if (s !== i) return i;
4089
4106
  }
4090
4107
  return n.length > r.length;
4091
4108
  }
4092
- function bi(e, t) {
4109
+ function _s(e, t) {
4093
4110
  if (typeof e != "string") return null;
4094
4111
  let n = null;
4095
4112
  for (const r of t)
4096
- mi(r.pattern).test(e) && (!n || yi(r.pattern, n.pattern)) && (n = r);
4097
- return n ? { ...n, params: { ...n.props, ...hi(n.pattern, e) } } : null;
4113
+ hs(r.pattern).test(e) && (!n || bs(r.pattern, n.pattern)) && (n = r);
4114
+ return n ? { ...n, params: { ...n.props, ...gs(n.pattern, e) } } : null;
4098
4115
  }
4099
- function Uu(e, t) {
4100
- return bi(e, t) !== null;
4116
+ function Bu(e, t) {
4117
+ return _s(e, t) !== null;
4101
4118
  }
4102
- const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20, _i = {
4119
+ const ju = 10 * 1024 * 1024, Hu = 25 * 1024 * 1024, Gu = "sync-target", Wu = 20, As = {
4103
4120
  afrikaans: [
4104
4121
  "[Muziek]",
4105
4122
  "(C) TV GELDERLAND 2021",
@@ -4249,14 +4266,14 @@ const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20,
4249
4266
  "[MÚSICA]",
4250
4267
  "[Music cuts in British]"
4251
4268
  ]
4252
- }, Ai = (e) => {
4269
+ }, Ss = (e) => {
4253
4270
  let t = e;
4254
- return Object.values(_i).forEach((n) => {
4271
+ return Object.values(As).forEach((n) => {
4255
4272
  n.forEach((r) => {
4256
4273
  t = t.replaceAll(r, "");
4257
4274
  });
4258
4275
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
4259
- }, Si = 6e4, Ei = 8e3, Ii = 2, Ti = 0.4, wi = 3, ki = /* @__PURE__ */ new Set([
4276
+ }, Es = 6e4, Is = 8e3, Ts = 2, ws = 0.4, ks = 3, vs = /* @__PURE__ */ new Set([
4260
4277
  "aan",
4261
4278
  "als",
4262
4279
  "ben",
@@ -4369,52 +4386,52 @@ const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20,
4369
4386
  "you",
4370
4387
  "your"
4371
4388
  ]);
4372
- function Mi(e) {
4389
+ function Ms(e) {
4373
4390
  const t = /* @__PURE__ */ new Set();
4374
4391
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
4375
- n.length < wi || ki.has(n) || t.add(n);
4392
+ n.length < ks || vs.has(n) || t.add(n);
4376
4393
  return [...t];
4377
4394
  }
4378
- function vi(e, t) {
4395
+ function Cs(e, t) {
4379
4396
  if (!e.length) return 0;
4380
4397
  if (!t.length) return 1;
4381
4398
  const n = new Set(t), r = new Set(e);
4382
4399
  let o = 0;
4383
- for (const i of r) n.has(i) || (o += 1);
4400
+ for (const s of r) n.has(s) || (o += 1);
4384
4401
  return o / r.size;
4385
4402
  }
4386
- function Ci(e, t = Si) {
4387
- const n = e.filter((s) => !s.partial && typeof s.text == "string");
4403
+ function Os(e, t = Es) {
4404
+ const n = e.filter((i) => !i.partial && typeof i.text == "string");
4388
4405
  if (!n.length) return { text: "", segmentCount: 0 };
4389
- const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
4390
- return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Ai(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4406
+ const o = n.reduce((i, a) => Math.max(i, a.endedAt ?? 0), 0) - t;
4407
+ return { text: n.filter((i) => (i.endedAt ?? 0) >= o).map((i) => Ss(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4391
4408
  }
4392
- const Oi = 60;
4393
- function Gu(e, t, n = Oi) {
4409
+ const xs = 60;
4410
+ function Vu(e, t, n = xs) {
4394
4411
  const r = new Set(e), o = [...e];
4395
- for (const i of t)
4396
- !i || r.has(i) || (r.add(i), o.push(i));
4412
+ for (const s of t)
4413
+ !s || r.has(s) || (r.add(s), o.push(s));
4397
4414
  return o.slice(-n);
4398
4415
  }
4399
- function Wu(e) {
4416
+ function zu(e) {
4400
4417
  const { segments: t, now: n, state: r } = e;
4401
- if (r.lastTriggerAt && n - r.lastTriggerAt < Ei)
4418
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Is)
4402
4419
  return { trigger: !1, reason: "too_soon" };
4403
- const o = Ci(t, e.windowMs);
4420
+ const o = Os(t, e.windowMs);
4404
4421
  if (!o.text) return { trigger: !1, reason: "no_speech" };
4405
- const i = o.segmentCount - (r.lastSegmentCount ?? 0);
4406
- if (r.lastQueryTerms && i < Ii)
4422
+ const s = o.segmentCount - (r.lastSegmentCount ?? 0);
4423
+ if (r.lastQueryTerms && s < Ts)
4407
4424
  return { trigger: !1, reason: "too_few_new" };
4408
- const s = Mi(o.text);
4409
- return s.length ? r.lastQueryTerms?.length && vi(s, r.lastQueryTerms) < Ti ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
4425
+ const i = Ms(o.text);
4426
+ return i.length ? r.lastQueryTerms?.length && Cs(i, r.lastQueryTerms) < ws ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: i, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
4410
4427
  }
4411
- const Vu = [
4428
+ const Xu = [
4412
4429
  "personal",
4413
4430
  "workspace",
4414
4431
  "connections",
4415
4432
  "work",
4416
4433
  "ai"
4417
- ], zu = "navNotice", De = {
4434
+ ], Yu = "navNotice", De = {
4418
4435
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
4419
4436
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
4420
4437
  // An over-permissive key is harmless — it simply matches nothing.
@@ -4437,7 +4454,7 @@ const Vu = [
4437
4454
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
4438
4455
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
4439
4456
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
4440
- }, xi = "NL", Ni = 15, Ri = 8, Di = Array.from(
4457
+ }, Ns = "NL", Rs = 15, Ds = 8, $s = Array.from(
4441
4458
  new Set(Object.values(De).map((e) => e.callingCode))
4442
4459
  ).sort((e, t) => t.length - e.length);
4443
4460
  function ft(e) {
@@ -4448,27 +4465,27 @@ function Z(e, t) {
4448
4465
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
4449
4466
  }
4450
4467
  function mt(e) {
4451
- if (e.length > Ni) return null;
4452
- for (const t of Di) {
4468
+ if (e.length > Rs) return null;
4469
+ for (const t of $s) {
4453
4470
  if (!e.startsWith(t)) continue;
4454
4471
  const n = e.slice(t.length);
4455
4472
  for (const r of Object.values(De)) {
4456
4473
  if (r.callingCode !== t) continue;
4457
- const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
4458
- if (Z(i, r)) return `+${t}${i}`;
4474
+ const o = r.trunkPrefix, s = o && n.startsWith(o) ? n.slice(o.length) : n;
4475
+ if (Z(s, r)) return `+${t}${s}`;
4459
4476
  }
4460
4477
  return null;
4461
4478
  }
4462
- return e.length < Ri ? null : `+${e}`;
4479
+ return e.length < Ds ? null : `+${e}`;
4463
4480
  }
4464
- function $i(e) {
4481
+ function Ls(e) {
4465
4482
  let t = e.trim();
4466
4483
  const n = t.match(/^(sips?|tel|whatsapp):/i);
4467
4484
  n && (t = t.slice(n[0].length));
4468
4485
  const r = t.indexOf("@");
4469
4486
  return r >= 0 && (t = t.slice(0, r)), t.trim();
4470
4487
  }
4471
- function Xu(e) {
4488
+ function qu(e) {
4472
4489
  if (!e) return !1;
4473
4490
  const t = e.indexOf("@");
4474
4491
  if (t <= 0) return !1;
@@ -4477,26 +4494,26 @@ function Xu(e) {
4477
4494
  }
4478
4495
  function ht(e, t) {
4479
4496
  if (!e) return null;
4480
- const n = $i(e);
4497
+ const n = Ls(e);
4481
4498
  if (!n) return null;
4482
4499
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
4483
4500
  if (!o) return null;
4484
4501
  if (r) return mt(o);
4485
4502
  if (o.startsWith("00")) return mt(o.slice(2));
4486
- const i = ft(t) ?? ft(xi);
4487
- if (!i) return null;
4488
- const s = i.trunkPrefix;
4489
- if (s && o.startsWith(s)) {
4490
- const a = o.slice(s.length);
4491
- return Z(a, i) ? `+${i.callingCode}${a}` : null;
4503
+ const s = ft(t) ?? ft(Ns);
4504
+ if (!s) return null;
4505
+ const i = s.trunkPrefix;
4506
+ if (i && o.startsWith(i)) {
4507
+ const a = o.slice(i.length);
4508
+ return Z(a, s) ? `+${s.callingCode}${a}` : null;
4492
4509
  }
4493
- if (o.startsWith(i.callingCode)) {
4494
- const a = o.slice(i.callingCode.length);
4495
- if (Z(a, i)) return `+${i.callingCode}${a}`;
4510
+ if (o.startsWith(s.callingCode)) {
4511
+ const a = o.slice(s.callingCode.length);
4512
+ if (Z(a, s)) return `+${s.callingCode}${a}`;
4496
4513
  }
4497
- return !s && Z(o, i) ? `+${i.callingCode}${o}` : null;
4514
+ return !i && Z(o, s) ? `+${s.callingCode}${o}` : null;
4498
4515
  }
4499
- function Yu(e, t = 9) {
4516
+ function Qu(e, t = 9) {
4500
4517
  const n = (e ?? "").replace(/\D/g, "");
4501
4518
  return n.length < t ? null : n.slice(-t);
4502
4519
  }
@@ -4507,11 +4524,11 @@ function nn(e) {
4507
4524
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
4508
4525
  return !r || !o.includes(".") ? null : `${r}@${o}`;
4509
4526
  }
4510
- function qu(e) {
4527
+ function Zu(e) {
4511
4528
  const t = nn(e);
4512
4529
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
4513
4530
  }
4514
- const Li = /* @__PURE__ */ new Set([
4531
+ const Ps = /* @__PURE__ */ new Set([
4515
4532
  "co.uk",
4516
4533
  "org.uk",
4517
4534
  "gov.uk",
@@ -4521,14 +4538,14 @@ const Li = /* @__PURE__ */ new Set([
4521
4538
  "com.br",
4522
4539
  "co.za"
4523
4540
  ]);
4524
- function Pi(e) {
4541
+ function Ks(e) {
4525
4542
  if (!e) return null;
4526
4543
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
4527
4544
  if (t.length < 2) return null;
4528
4545
  const n = t.slice(-2).join(".");
4529
- return Li.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4546
+ return Ps.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4530
4547
  }
4531
- const Ki = /* @__PURE__ */ new Set([
4548
+ const Us = /* @__PURE__ */ new Set([
4532
4549
  "gmail.com",
4533
4550
  "googlemail.com",
4534
4551
  "outlook.com",
@@ -4573,34 +4590,34 @@ const Ki = /* @__PURE__ */ new Set([
4573
4590
  "proximus.be",
4574
4591
  "scarlet.be"
4575
4592
  ]);
4576
- function Qu(e) {
4577
- const t = Pi(e);
4578
- return t ? Ki.has(t) : !1;
4593
+ function Ju(e) {
4594
+ const t = Ks(e);
4595
+ return t ? Us.has(t) : !1;
4579
4596
  }
4580
- function Zu(e) {
4597
+ function ed(e) {
4581
4598
  if (!e) return !1;
4582
4599
  const t = e.trim().toLowerCase();
4583
4600
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
4584
4601
  }
4585
- function Ju(e, t, n) {
4602
+ function td(e, t, n) {
4586
4603
  if (!e || !t) return null;
4587
4604
  const r = e.trim().toLowerCase();
4588
4605
  if (r === "tel" || r === "sms" || r === "whatsapp") {
4589
- const i = ht(t, n);
4590
- return i ? `tel:${i}` : null;
4606
+ const s = ht(t, n);
4607
+ return s ? `tel:${s}` : null;
4591
4608
  }
4592
4609
  if (r === "fax") {
4593
- const i = ht(t, n);
4594
- return i ? `fax:${i}` : null;
4610
+ const s = ht(t, n);
4611
+ return s ? `fax:${s}` : null;
4595
4612
  }
4596
4613
  if (r === "mailto" || r === "email") {
4597
- const i = nn(t);
4598
- return i ? `mailto:${i}` : null;
4614
+ const s = nn(t);
4615
+ return s ? `mailto:${s}` : null;
4599
4616
  }
4600
4617
  const o = t.trim().toLowerCase();
4601
4618
  return o ? `${r}:${o}` : null;
4602
4619
  }
4603
- const Ui = [
4620
+ const Fs = [
4604
4621
  /<blockquote/i,
4605
4622
  /class="?gmail_quote/i,
4606
4623
  // Gmail quote container
@@ -4613,24 +4630,24 @@ const Ui = [
4613
4630
  // Outlook underscore separator before "From:"
4614
4631
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
4615
4632
  // Gmail "On <date> <name> wrote:"
4616
- ], gt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Fi = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
4617
- function Bi(e) {
4633
+ ], gt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Bs = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
4634
+ function js(e) {
4618
4635
  const t = e.split(`
4619
4636
  `);
4620
4637
  for (let n = 0; n < t.length; n++)
4621
- if (Fi.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4638
+ if (Bs.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4622
4639
  return t.slice(0, n).join(`
4623
4640
  `).trim();
4624
4641
  return e;
4625
4642
  }
4626
- const ji = /^(?:https?:|mailto:|tel:)/i, Hi = /^(?:https?:|cid:|data:image\/)/i;
4643
+ const Hs = /^(?:https?:|mailto:|tel:)/i, Gs = /^(?:https?:|cid:|data:image\/)/i;
4627
4644
  function de(e, t) {
4628
4645
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
4629
4646
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
4630
4647
  }
4631
- const Gi = /(!\[[^\]]*\]\([^)]*\))/;
4648
+ const Ws = /(!\[[^\]]*\]\([^)]*\))/;
4632
4649
  function yt(e) {
4633
- return e.replace(/\s+/g, " ").trim().split(Gi).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4650
+ return e.replace(/\s+/g, " ").trim().split(Ws).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4634
4651
  }
4635
4652
  function pe(e) {
4636
4653
  return e.replace(
@@ -4638,78 +4655,78 @@ function pe(e) {
4638
4655
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
4639
4656
  );
4640
4657
  }
4641
- function Wi(e) {
4658
+ function Vs(e) {
4642
4659
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
4643
4660
  const o = de(r, "src");
4644
- return Hi.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4661
+ return Gs.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4645
4662
  }).replace(
4646
4663
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
4647
4664
  (n, r, o) => {
4648
- const i = yt(o.replace(/<[^>]*>/g, "")), s = de(r, "href");
4649
- return ji.test(s) ? `[${i || pe(s)}](${pe(s)})` : i;
4665
+ const s = yt(o.replace(/<[^>]*>/g, "")), i = de(r, "href");
4666
+ return Hs.test(i) ? `[${s || pe(i)}](${pe(i)})` : s;
4650
4667
  }
4651
4668
  );
4652
4669
  }
4653
- const Vi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, zi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Xi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4654
- function Yi(e, t) {
4670
+ const zs = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Xs = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Ys = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4671
+ function qs(e, t) {
4655
4672
  return /<table\b/i.test(e) || e.includes(`
4656
4673
 
4657
4674
  |`) || t.includes("![") || t.length > 200;
4658
4675
  }
4659
- const qi = 40, Qi = { left: "---", center: ":---:", right: "---:" };
4660
- function Zi(e) {
4676
+ const Qs = 40, Zs = { left: "---", center: ":---:", right: "---:" };
4677
+ function Js(e) {
4661
4678
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
4662
4679
  return t ? t[1].toLowerCase() : "left";
4663
4680
  }
4664
- function Ji(e) {
4681
+ function ei(e) {
4665
4682
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
4666
4683
  }
4667
- function es(e) {
4684
+ function ti(e) {
4668
4685
  const t = [];
4669
- for (const s of e.matchAll(zi)) {
4686
+ for (const i of e.matchAll(Xs)) {
4670
4687
  const a = [];
4671
- for (const u of s[1].matchAll(Xi)) {
4672
- const l = Ji(u[3]);
4673
- if (Yi(u[3], l)) return null;
4674
- a.push({ text: l, align: Zi(u[2]) });
4688
+ for (const u of i[1].matchAll(Ys)) {
4689
+ const l = ei(u[3]);
4690
+ if (qs(u[3], l)) return null;
4691
+ a.push({ text: l, align: Js(u[2]) });
4675
4692
  }
4676
4693
  if (a.length === 0) return null;
4677
4694
  a.some((u) => u.text !== "") && t.push(a);
4678
4695
  }
4679
4696
  const n = t[0]?.length ?? 0;
4680
- if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
4681
- const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => Qi[s.align]).join(" | "), i = t.slice(1).map(r).join(`
4697
+ if (t.length < 2 || n < 2 || t.some((i) => i.length !== n)) return null;
4698
+ const r = (i) => `| ${i.map((a) => a.text).join(" | ")} |`, o = t[1].map((i) => Zs[i.align]).join(" | "), s = t.slice(1).map(r).join(`
4682
4699
  `);
4683
4700
  return `
4684
4701
 
4685
4702
  ${r(t[0])}
4686
4703
  | ${o} |
4687
- ${i}
4704
+ ${s}
4688
4705
 
4689
4706
  `;
4690
4707
  }
4691
- function ts(e) {
4708
+ function ni(e) {
4692
4709
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
4693
4710
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
4694
4711
  }
4695
- function ns(e) {
4712
+ function ri(e) {
4696
4713
  let t = e;
4697
- for (let n = 0; n < qi; n++) {
4698
- const r = Vi.exec(t);
4714
+ for (let n = 0; n < Qs; n++) {
4715
+ const r = zs.exec(t);
4699
4716
  if (!r || r.index === void 0) break;
4700
- const i = es(r[1]) ?? `
4717
+ const s = ti(r[1]) ?? `
4701
4718
 
4702
- ${ts(r[1])}
4719
+ ${ni(r[1])}
4703
4720
 
4704
4721
  `;
4705
- t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
4722
+ t = t.slice(0, r.index) + s + t.slice(r.index + r[0].length);
4706
4723
  }
4707
4724
  return t;
4708
4725
  }
4709
4726
  function bt(e, t) {
4710
4727
  let n = e;
4711
4728
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
4712
- `), t && (n = ns(Wi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4729
+ `), t && (n = ri(Vs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4713
4730
 
4714
4731
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
4715
4732
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -4717,7 +4734,7 @@ function bt(e, t) {
4717
4734
  function _t(e) {
4718
4735
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
4719
4736
  }
4720
- const rs = {
4737
+ const oi = {
4721
4738
  euro: "€",
4722
4739
  pound: "£",
4723
4740
  yen: "¥",
@@ -4740,7 +4757,7 @@ const rs = {
4740
4757
  apos: "'"
4741
4758
  };
4742
4759
  function At(e) {
4743
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => rs[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => _t(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => _t(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4760
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => oi[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => _t(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => _t(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4744
4761
  }
4745
4762
  function St(e) {
4746
4763
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -4748,38 +4765,38 @@ function St(e) {
4748
4765
 
4749
4766
  `).trim();
4750
4767
  }
4751
- const os = /<\s*(html|body|div|p|table|br|span)\b/i;
4752
- function ed(e) {
4753
- return os.test(e);
4768
+ const si = /<\s*(html|body|div|p|table|br|span)\b/i;
4769
+ function nd(e) {
4770
+ return si.test(e);
4754
4771
  }
4755
- function td(e) {
4772
+ function rd(e) {
4756
4773
  return rn(e, !1);
4757
4774
  }
4758
- function nd(e) {
4775
+ function od(e) {
4759
4776
  return rn(e, !0);
4760
4777
  }
4761
4778
  function rn(e, t) {
4762
4779
  if (typeof e != "string" || !e) return "";
4763
4780
  let n = e.length;
4764
- for (const s of Ui) {
4765
- const a = e.search(s);
4781
+ for (const i of Fs) {
4782
+ const a = e.search(i);
4766
4783
  a >= 0 && a < n && (n = a);
4767
4784
  }
4768
4785
  const r = e.slice(0, n);
4769
4786
  let o = St(At(bt(r, t)));
4770
- return o || (o = St(At(bt(e, t)))), Bi(o) || o;
4787
+ return o || (o = St(At(bt(e, t)))), js(o) || o;
4771
4788
  }
4772
4789
  export {
4773
- zs as ACTIVE_ASSIGNMENT_STATUSES,
4790
+ Xi as ACTIVE_ASSIGNMENT_STATUSES,
4774
4791
  R as ACTIVITY_CATALOG,
4775
- Jo as AI_ATTACHMENT_LIMITS,
4776
- Ul as AI_ATTACHMENT_MAX_PER_TURN,
4777
- Kl as AI_ATTACHMENT_TURN_BUDGET,
4792
+ es as AI_ATTACHMENT_LIMITS,
4793
+ Bl as AI_ATTACHMENT_MAX_PER_TURN,
4794
+ Fl as AI_ATTACHMENT_TURN_BUDGET,
4778
4795
  Tt as AI_VENDORS,
4779
4796
  kn as ALLOWED_LINK_SCHEMES,
4780
- Tu as APP_PERMISSIONS,
4797
+ ku as APP_PERMISSIONS,
4781
4798
  He as ARTIFACT_MAX_BLOCKS,
4782
- Fs as ARTIFACT_MAX_BODY_BYTES,
4799
+ Bi as ARTIFACT_MAX_BODY_BYTES,
4783
4800
  q as ARTIFACT_MAX_CELL_LEN,
4784
4801
  ze as ARTIFACT_MAX_KPI_ITEMS,
4785
4802
  Ge as ARTIFACT_MAX_LIST_ITEMS,
@@ -4787,37 +4804,37 @@ export {
4787
4804
  We as ARTIFACT_MAX_TABLE_ROWS,
4788
4805
  kt as ARTIFACT_MAX_TEXT_LEN,
4789
4806
  Ln as ASSIGNMENT_SCOPE_KIND,
4790
- Gl as ASSIST_BANDS,
4791
- Hl as ASSIST_SOURCE_PROVIDER_GROUP,
4807
+ Vl as ASSIST_BANDS,
4808
+ Wl as ASSIST_SOURCE_PROVIDER_GROUP,
4792
4809
  ir as ATTENTION_STATUSES,
4793
- wo as AT_RISK_GAP,
4810
+ ko as AT_RISK_GAP,
4794
4811
  en as AUTH_APP_NAME,
4795
4812
  io as AUTO_READY_MIN_PROPOSALS,
4796
- so as AUTO_READY_RATE,
4813
+ ao as AUTO_READY_RATE,
4797
4814
  hn as ActivityTypeRegistry,
4798
- Es as BUILT_IN_ONLY,
4799
- sr as BULK_PENALTY,
4800
- Ei as CADENCE_FLOOR_MS,
4801
- Ii as CADENCE_MIN_NEW_SEGMENTS,
4802
- Ti as CADENCE_MIN_NOVELTY,
4803
- Si as CADENCE_WINDOW_MS,
4804
- mc as CLASSIFY_VARS,
4805
- uu as CONNECTOR_PROVIDER_GROUP,
4806
- du as CONTEXT_COLLECT_SERVICE,
4807
- Ds as CORE_DIMENSIONS,
4808
- ii as CommunicationScheme,
4809
- qn as DAY_MS,
4810
- Eo as DEFAULT_CHECK_IN_DAYS,
4811
- Kr as DEFAULT_FORECAST_WEEKS,
4812
- Ka as DEFAULT_MEMORY_BUDGET,
4813
- xi as DEFAULT_PHONE_REGION,
4814
- ul as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4815
- Ya as DEMAND_SOURCE_PROVIDER_GROUP,
4816
- bu as DOCUMENT_APPLY_SERVICE,
4817
- gu as DOCUMENT_DESCRIBE_SERVICE,
4818
- yu as DOCUMENT_INSPECT_SERVICE,
4815
+ Ii as BUILT_IN_ONLY,
4816
+ ar as BULK_PENALTY,
4817
+ Is as CADENCE_FLOOR_MS,
4818
+ Ts as CADENCE_MIN_NEW_SEGMENTS,
4819
+ ws as CADENCE_MIN_NOVELTY,
4820
+ Es as CADENCE_WINDOW_MS,
4821
+ gc as CLASSIFY_VARS,
4822
+ pu as CONNECTOR_PROVIDER_GROUP,
4823
+ fu as CONTEXT_COLLECT_SERVICE,
4824
+ $i as CORE_DIMENSIONS,
4825
+ is as CommunicationScheme,
4826
+ Qn as DAY_MS,
4827
+ Io as DEFAULT_CHECK_IN_DAYS,
4828
+ Ur as DEFAULT_FORECAST_WEEKS,
4829
+ Fa as DEFAULT_MEMORY_BUDGET,
4830
+ Ns as DEFAULT_PHONE_REGION,
4831
+ pl as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4832
+ Qa as DEMAND_SOURCE_PROVIDER_GROUP,
4833
+ Au as DOCUMENT_APPLY_SERVICE,
4834
+ bu as DOCUMENT_DESCRIBE_SERVICE,
4835
+ _u as DOCUMENT_INSPECT_SERVICE,
4819
4836
  He as DOCUMENT_MAX_BLOCKS,
4820
- Fs as DOCUMENT_MAX_BODY_BYTES,
4837
+ Bi as DOCUMENT_MAX_BODY_BYTES,
4821
4838
  q as DOCUMENT_MAX_CELL_LEN,
4822
4839
  ze as DOCUMENT_MAX_KPI_ITEMS,
4823
4840
  Xe as DOCUMENT_MAX_LETTERHEAD_FIELDS,
@@ -4828,420 +4845,422 @@ export {
4828
4845
  kt as DOCUMENT_MAX_TEXT_LEN,
4829
4846
  Ye as DOCUMENT_MAX_TOTALS_ROWS,
4830
4847
  Qt as DOCUMENT_OPERATIONS,
4831
- $o as DUTCH_SLOT_LABELS,
4832
- gc as EMPTY_WORKFLOW,
4833
- su as FEATURE_FOLDER_MANAGEMENT,
4834
- cu as FEATURE_MESSAGE_REACTIONS,
4835
- au as FEATURE_REMOTE_SEARCH,
4848
+ Lo as DUTCH_SLOT_LABELS,
4849
+ bc as EMPTY_WORKFLOW,
4850
+ cu as FEATURE_FOLDER_MANAGEMENT,
4851
+ uu as FEATURE_MESSAGE_REACTIONS,
4852
+ lu as FEATURE_REMOTE_SEARCH,
4836
4853
  Ce as FIXED_KINDS,
4837
4854
  ne as FIXED_LEVELS,
4838
4855
  Ne as FIXED_TYPES,
4839
- oa as FIXED_UNITS,
4840
- cr as FOLLOW_UP_HOURS,
4841
- sl as FROZEN_WRITABLE_FIELDS,
4842
- Yn as HOUR_MS,
4843
- os as HTML_BODY_RE,
4856
+ ia as FIXED_UNITS,
4857
+ lr as FOLLOW_UP_HOURS,
4858
+ cl as FROZEN_WRITABLE_FIELDS,
4859
+ qn as HOUR_MS,
4860
+ si as HTML_BODY_RE,
4844
4861
  L as INELIGIBLE,
4845
- Au as INSTALLATION_HEADER,
4846
- eo as INTERACTION_KIND,
4847
- ou as InteractionParticipantRole,
4848
- gr as KB_FALLBACK_LOCALE,
4862
+ Eu as INSTALLATION_HEADER,
4863
+ to as INTERACTION_KIND,
4864
+ iu as InteractionParticipantRole,
4865
+ yr as KB_FALLBACK_LOCALE,
4849
4866
  Ze as KB_LOCALES,
4850
4867
  Ze as LOCALES,
4851
4868
  Re as LOOSE_STATUSES,
4852
- tr as MAIL_HINT_HEADERS,
4853
- cs as MAX_ACTIONS,
4869
+ nr as MAIL_HINT_HEADERS,
4870
+ li as MAX_ACTIONS,
4854
4871
  Pn as MAX_ASSIGNMENT_TURNS,
4855
- is as MAX_BLOCKS,
4872
+ ii as MAX_BLOCKS,
4856
4873
  Dt as MAX_COLLECTION_DEPTH,
4857
- Fu as MAX_EDITABLE_FILE_BYTES,
4858
- ss as MAX_FIELDS,
4859
- as as MAX_LIST_ITEMS,
4860
- Da as MAX_MEMORY_BROWSE,
4861
- Pa as MAX_MEMORY_BUDGET,
4862
- $a as MAX_MEMORY_CHARS,
4863
- Oi as MAX_SHOWN_KEYS,
4864
- Oo as MAX_TOPIC_CANDIDATES,
4865
- Co as MAX_TOPIC_EXAMPLES,
4874
+ ju as MAX_EDITABLE_FILE_BYTES,
4875
+ ai as MAX_FIELDS,
4876
+ ci as MAX_LIST_ITEMS,
4877
+ La as MAX_MEMORY_BROWSE,
4878
+ Ua as MAX_MEMORY_BUDGET,
4879
+ Pa as MAX_MEMORY_CHARS,
4880
+ xs as MAX_SHOWN_KEYS,
4881
+ xo as MAX_TOPIC_CANDIDATES,
4882
+ Oo as MAX_TOPIC_EXAMPLES,
4866
4883
  ue as MAX_TOPIC_EXAMPLE_CHARS,
4867
- Bu as MAX_VIEWABLE_FILE_BYTES,
4868
- La as MIN_MEMORY_BUDGET,
4869
- zu as NAV_NOTICE_SLOT,
4870
- Fa as NL_TAX_RATES,
4871
- Eu as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4872
- ko as OFF_TRACK_GAP,
4873
- ja as ONBOARDING_SOURCE_PROVIDER_GROUP,
4884
+ Hu as MAX_VIEWABLE_FILE_BYTES,
4885
+ Ka as MIN_MEMORY_BUDGET,
4886
+ Yu as NAV_NOTICE_SLOT,
4887
+ ja as NL_TAX_RATES,
4888
+ Tu as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4889
+ vo as OFF_TRACK_GAP,
4890
+ Ga as ONBOARDING_SOURCE_PROVIDER_GROUP,
4874
4891
  Se as PAUSE_SNOOZED,
4875
4892
  Ee as PAUSE_WAITING_FOR_CUSTOMER,
4876
4893
  De as PHONE_REGIONS,
4877
4894
  Zt as PRESENCE_ONLINE_WINDOW_MS,
4878
- pi as PRESENCE_SURVIVES_OFFLINE,
4879
- Fo as PRODUCT_SCOPE_KIND,
4880
- Ga as PROFILE_TOOL_DISPOSITIONS,
4881
- ru as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4882
- nu as PROVIDER_FEATURE_MESSAGE_WINDOW,
4883
- Ki as PUBLIC_EMAIL_DOMAINS,
4895
+ fs as PRESENCE_SURVIVES_OFFLINE,
4896
+ Bo as PRODUCT_SCOPE_KIND,
4897
+ Va as PROFILE_TOOL_DISPOSITIONS,
4898
+ su as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4899
+ ou as PROVIDER_FEATURE_MESSAGE_WINDOW,
4900
+ Us as PUBLIC_EMAIL_DOMAINS,
4884
4901
  Je as READ_STEP_TYPES,
4885
- _r as RELATED_SUBJECT_KINDS,
4902
+ Ar as RELATED_SUBJECT_KINDS,
4886
4903
  qt as RESERVED_STATUS_KEYS,
4887
- _l as RESERVED_TYPE_KEYS,
4888
- Nu as RESOURCE_ATTACHED_SERVICE,
4889
- Cu as RESOURCE_DESCRIBE_SERVICE,
4890
- xu as RESOURCE_RESOLVE_SERVICE,
4891
- Ou as RESOURCE_SEARCH_SERVICE,
4892
- Gr as SCHEDULE_ENTRY_SCOPE_KIND,
4893
- $u as SCOPE_READ_ROUTE,
4894
- Du as SCOPE_RELATED_ROUTE,
4895
- Vu as SETTINGS_CATEGORIES,
4896
- ia as SIGNATURE_INTENTS,
4897
- ar as SLA_HOURS_BY_PRIORITY,
4898
- vc as SLA_METRICS,
4899
- Cc as SLA_PAUSE_REASONS,
4900
- ro as STEP_MAX_TOKENS_MAX,
4901
- no as STEP_MAX_TOKENS_MIN,
4902
- Ao as STRATEGY_ITEM_SCOPE_KIND,
4903
- er as SUMMARY_MIN_LAST_CHARS,
4904
- Jn as SUMMARY_MIN_MESSAGES,
4905
- Hu as SYNC_RUN_MAX_ERRORS,
4906
- ju as SYNC_TARGET_PROVIDER_GROUP,
4904
+ Sl as RESERVED_TYPE_KEYS,
4905
+ Du as RESOURCE_ATTACHED_SERVICE,
4906
+ xu as RESOURCE_DESCRIBE_SERVICE,
4907
+ Ru as RESOURCE_RESOLVE_SERVICE,
4908
+ Nu as RESOURCE_SEARCH_SERVICE,
4909
+ Wr as SCHEDULE_ENTRY_SCOPE_KIND,
4910
+ Pu as SCOPE_READ_ROUTE,
4911
+ Lu as SCOPE_RELATED_ROUTE,
4912
+ Xu as SETTINGS_CATEGORIES,
4913
+ aa as SIGNATURE_INTENTS,
4914
+ cr as SLA_HOURS_BY_PRIORITY,
4915
+ Oc as SLA_METRICS,
4916
+ xc as SLA_PAUSE_REASONS,
4917
+ oo as STEP_MAX_TOKENS_MAX,
4918
+ ro as STEP_MAX_TOKENS_MIN,
4919
+ So as STRATEGY_ITEM_SCOPE_KIND,
4920
+ tr as SUMMARY_MIN_LAST_CHARS,
4921
+ er as SUMMARY_MIN_MESSAGES,
4922
+ Wu as SYNC_RUN_MAX_ERRORS,
4923
+ Gu as SYNC_TARGET_PROVIDER_GROUP,
4907
4924
  $n as TERMINAL_ASSIGNMENT_STATUSES,
4908
- ao as TERMINAL_RUN_STATUSES,
4925
+ co as TERMINAL_RUN_STATUSES,
4909
4926
  Xt as TRANSACTION_KINDS,
4910
- Uo as TRANSACTION_SCOPE_KINDS,
4911
- fc as TRIGGER_VARS,
4912
- Er as UNKNOWN_KIND,
4913
- So as UNKNOWN_LEVEL_ORDER,
4914
- lu as UNSUPPORTED,
4927
+ Fo as TRANSACTION_SCOPE_KINDS,
4928
+ hc as TRIGGER_VARS,
4929
+ Ir as UNKNOWN_KIND,
4930
+ Eo as UNKNOWN_LEVEL_ORDER,
4931
+ du as UNSUPPORTED,
4915
4932
  Sn as USAGE_DIMENSIONS,
4916
4933
  En as USAGE_DIMENSION_IDS,
4917
- Wr as WORKSTREAM_SCOPE_KIND,
4918
- Go as WORK_ACTIVITY_SCOPE_KIND,
4919
- Ha as WORK_AREAS,
4920
- hl as WORK_COMMENT_ADDED,
4921
- Tl as WORK_CYCLE_SYNC_KIND,
4922
- gl as WORK_ITEM_ASSIGNED,
4923
- jo as WORK_ITEM_SCOPE_KIND,
4924
- yl as WORK_ITEM_STATUS_CHANGED,
4925
- Ho as WORK_PROJECT_SCOPE_KIND,
4934
+ Vr as WORKSTREAM_SCOPE_KIND,
4935
+ Wo as WORK_ACTIVITY_SCOPE_KIND,
4936
+ Wa as WORK_AREAS,
4937
+ yl as WORK_COMMENT_ADDED,
4938
+ kl as WORK_CYCLE_SYNC_KIND,
4939
+ bl as WORK_ITEM_ASSIGNED,
4940
+ Ho as WORK_ITEM_SCOPE_KIND,
4941
+ _l as WORK_ITEM_STATUS_CHANGED,
4942
+ Go as WORK_PROJECT_SCOPE_KIND,
4926
4943
  J as W_PRIORITY,
4927
- rl as acceptExampleCandidate,
4928
- Yr as actingIdentityKey,
4929
- tl as activeWorkTypes,
4930
- us as activityIconOf,
4931
- As as activityJoinUrl,
4944
+ sl as acceptExampleCandidate,
4945
+ qr as actingIdentityKey,
4946
+ rl as activeWorkTypes,
4947
+ di as activityIconOf,
4948
+ Si as activityJoinUrl,
4932
4949
  dn as activitySnippet,
4933
4950
  pn as activityTextParams,
4934
- _s as activityTimelineText,
4951
+ Ai as activityTimelineText,
4935
4952
  gn as activityTimestamp,
4936
4953
  w as activityTypeInfo,
4937
- ac as actorKey,
4938
- nl as addExampleCandidate,
4954
+ lc as actorKey,
4955
+ ol as addExampleCandidate,
4939
4956
  Oe as addWorkingMs,
4940
- ku as agePresenceEntry,
4941
- Zo as aiAttachmentKind,
4942
- Fl as aiAttachmentRejection,
4957
+ Mu as agePresenceEntry,
4958
+ Jo as aiAttachmentKind,
4959
+ jl as aiAttachmentRejection,
4943
4960
  je as aiBudgetLimit,
4944
- Ns as aiBudgetPeriodKey,
4961
+ Ri as aiBudgetPeriodKey,
4945
4962
  yn as aiBudgetPeriodStart,
4946
- xs as aiBudgetState,
4947
- Os as aiVendorAcceptsAttachment,
4948
- Ms as aiVendorDefaultModel,
4949
- ks as aiVendorLabel,
4950
- Cs as aiVendorNeedsBaseUrl,
4951
- vs as aiVendorsWith,
4963
+ Ni as aiBudgetState,
4964
+ xi as aiVendorAcceptsAttachment,
4965
+ Mi as aiVendorDefaultModel,
4966
+ vi as aiVendorLabel,
4967
+ Oi as aiVendorNeedsBaseUrl,
4968
+ Ci as aiVendorsWith,
4952
4969
  Fn as allocate,
4953
4970
  tn as appNameFromPath,
4954
- qc as applyRounding,
4955
- sa as applySignature,
4956
- oo as approvalRate,
4957
- js as artifactBodyBytes,
4958
- Hs as artifactOutline,
4971
+ Zc as applyRounding,
4972
+ ca as applySignature,
4973
+ so as approvalRate,
4974
+ Hi as artifactBodyBytes,
4975
+ Gi as artifactOutline,
4959
4976
  Dn as artifactToMarkdown,
4960
- dc as assignmentMismatch,
4961
- Ys as assignmentScopeKey,
4962
- Zs as assignmentSubject,
4963
- Xa as availabilityByPerson,
4964
- Wa as belongsOnCalendar,
4965
- Ss as buildActivityPreview,
4966
- Ql as buildChannelIntents,
4967
- Gs as buildShareKeys,
4968
- Ci as buildWindow,
4969
- Tr as calendarDaysBetween,
4977
+ fc as assignmentMismatch,
4978
+ qi as assignmentScopeKey,
4979
+ Ji as assignmentSubject,
4980
+ qa as availabilityByPerson,
4981
+ za as belongsOnCalendar,
4982
+ ta as belongsToEntity,
4983
+ Ei as buildActivityPreview,
4984
+ Jl as buildChannelIntents,
4985
+ Wi as buildShareKeys,
4986
+ Os as buildWindow,
4987
+ Yn as businessEntitySender,
4988
+ wr as calendarDaysBetween,
4970
4989
  xe as calendarOf,
4971
- va as canNestUnder,
4972
- Pc as canParent,
4973
- Va as capacityTotal,
4974
- rc as capacityWeights,
4975
- hs as carriesText,
4976
- Oa as categoryLabel,
4977
- zo as categoryOf,
4978
- tu as channelKindForScheme,
4979
- ds as channelKindOf,
4980
- zc as checkInOverdueMs,
4981
- hc as clampStepMaxTokens,
4982
- ga as classifyMail,
4983
- nd as cleanMessageMarkdown,
4984
- td as cleanMessageText,
4985
- ea as codeQuery,
4986
- Vl as compareAssistRank,
4987
- vo as compareWorkTypes,
4990
+ Oa as canNestUnder,
4991
+ Uc as canParent,
4992
+ Xa as capacityTotal,
4993
+ sc as capacityWeights,
4994
+ gi as carriesText,
4995
+ Na as categoryLabel,
4996
+ Xo as categoryOf,
4997
+ ru as channelKindForScheme,
4998
+ pi as channelKindOf,
4999
+ Yc as checkInOverdueMs,
5000
+ yc as clampStepMaxTokens,
5001
+ ba as classifyMail,
5002
+ od as cleanMessageMarkdown,
5003
+ rd as cleanMessageText,
5004
+ na as codeQuery,
5005
+ Xl as compareAssistRank,
5006
+ Co as compareWorkTypes,
4988
5007
  Xn as conditionHolds,
4989
- Do as copyFrom,
5008
+ $o as copyFrom,
4990
5009
  W as countsAsPlanned,
4991
- za as coverageByPerson,
4992
- Qa as coverageFor,
5010
+ Ya as coverageByPerson,
5011
+ Ja as coverageFor,
4993
5012
  Lt as coversWorkstream,
4994
5013
  Pt as cycleDayIndex,
4995
- Ll as cycleOrder,
4996
- Pl as cycleState,
4997
- Js as decideAssignmentState,
4998
- Wu as decideCadence,
4999
- Yl as decideIncomingCall,
5000
- yr as defaultLocaleOf,
5001
- Nl as defaultStatusKey,
5002
- iu as defineIntent,
5003
- mr as depthOf,
5004
- wu as derivePresence,
5005
- Ps as describeClause,
5006
- ql as disabledIntentsFromCapabilities,
5007
- js as documentBodyBytes,
5008
- _u as documentKindOf,
5009
- Hs as documentOutline,
5014
+ Kl as cycleOrder,
5015
+ Ul as cycleState,
5016
+ ea as decideAssignmentState,
5017
+ zu as decideCadence,
5018
+ Ql as decideIncomingCall,
5019
+ br as defaultLocaleOf,
5020
+ Dl as defaultStatusKey,
5021
+ au as defineIntent,
5022
+ hr as depthOf,
5023
+ vu as derivePresence,
5024
+ Ki as describeClause,
5025
+ Zl as disabledIntentsFromCapabilities,
5026
+ Hi as documentBodyBytes,
5027
+ Su as documentKindOf,
5028
+ Gi as documentOutline,
5010
5029
  Dn as documentToMarkdown,
5011
- hu as documentToText,
5012
- xc as dueAtOf,
5013
- Yc as elapsedSeconds,
5014
- qu as emailDomain,
5015
- Ju as endpointKey,
5016
- vr as erlangC,
5017
- hi as extractParams,
5018
- Mi as extractTerms,
5019
- ua as fillDocument,
5030
+ yu as documentToText,
5031
+ Rc as dueAtOf,
5032
+ Qc as elapsedSeconds,
5033
+ Zu as emailDomain,
5034
+ td as endpointKey,
5035
+ Cr as erlangC,
5036
+ gs as extractParams,
5037
+ Ms as extractTerms,
5038
+ pa as fillDocument,
5020
5039
  zn as fillText,
5021
- Jl as filterByEndpoint,
5022
- Zl as filterByIntent,
5023
- oi as filterByTargetScheme,
5024
- Ls as filterableDimensions,
5040
+ tu as filterByEndpoint,
5041
+ eu as filterByIntent,
5042
+ ss as filterByTargetScheme,
5043
+ Pi as filterableDimensions,
5025
5044
  te as findAiVendor,
5026
- Uc as fixedLevelForName,
5027
- El as fixedTypeForName,
5028
- Il as fixedTypes,
5029
- Su as flattenLocales,
5045
+ Bc as fixedLevelForName,
5046
+ Tl as fixedTypeForName,
5047
+ wl as fixedTypes,
5048
+ Iu as flattenLocales,
5030
5049
  H as floorToPeriod,
5031
- ec as forecastIntervals,
5032
- Xr as formatActingIdentity,
5050
+ nc as forecastIntervals,
5051
+ Yr as formatActingIdentity,
5033
5052
  D as formatCents,
5034
- Zc as formatClock,
5035
- Qc as formatHm,
5036
- kl as formatItemKey,
5053
+ el as formatClock,
5054
+ Jc as formatHm,
5055
+ Ml as formatItemKey,
5037
5056
  j as formatPeriod,
5038
- Dc as formatSlaDuration,
5039
- jl as freshSources,
5040
- Is as getActivitySeenUserIds,
5041
- aa as getContactEndpoints,
5042
- Ia as getShortTitle,
5043
- Ea as getUrgencyScore,
5044
- wc as hasReacted,
5045
- Fc as healthCategory,
5046
- Bc as healthsInCategory,
5057
+ Lc as formatSlaDuration,
5058
+ Gl as freshSources,
5059
+ Ti as getActivitySeenUserIds,
5060
+ la as getContactEndpoints,
5061
+ wa as getShortTitle,
5062
+ Ta as getUrgencyScore,
5063
+ vc as hasReacted,
5064
+ jc as healthCategory,
5065
+ Hc as healthsInCategory,
5047
5066
  $t as heightOf,
5048
- wa as helpCenterText,
5049
- pc as humanizeAction,
5050
- to as interactionIdOf,
5051
- ml as isAgentUser,
5052
- Aa as isAssigned,
5053
- Xs as isAssignmentTerminal,
5054
- Zr as isAssignmentTrigger,
5055
- _c as isAutoReady,
5056
- fr as isAwaitingThem,
5057
- ws as isChatMessageActivity,
5058
- Sa as isClosed,
5059
- ys as isConnectedType,
5060
- Lu as isDeepLink,
5061
- hr as isDescendant,
5062
- pa as isEligible,
5063
- Ts as isEmailActivity,
5064
- il as isFrozen,
5065
- ed as isHtmlBody,
5066
- Sc as isInFlight,
5067
- or as isInteractionUnseen,
5068
- Pu as isLandingPath,
5069
- Zn as isLikelyBulk,
5067
+ va as helpCenterText,
5068
+ mc as humanizeAction,
5069
+ no as interactionIdOf,
5070
+ gl as isAgentUser,
5071
+ Ea as isAssigned,
5072
+ Yi as isAssignmentTerminal,
5073
+ Jr as isAssignmentTrigger,
5074
+ Sc as isAutoReady,
5075
+ mr as isAwaitingThem,
5076
+ ki as isChatMessageActivity,
5077
+ Ia as isClosed,
5078
+ bi as isConnectedType,
5079
+ Ku as isDeepLink,
5080
+ gr as isDescendant,
5081
+ ma as isEligible,
5082
+ wi as isEmailActivity,
5083
+ al as isFrozen,
5084
+ nd as isHtmlBody,
5085
+ Ic as isInFlight,
5086
+ sr as isInteractionUnseen,
5087
+ Uu as isLandingPath,
5088
+ Jn as isLikelyBulk,
5070
5089
  Et as isMessageShape,
5071
- ps as isMessageType,
5072
- yi as isMoreSpecificPattern,
5090
+ fi as isMessageType,
5091
+ bs as isMoreSpecificPattern,
5073
5092
  It as isNoteShape,
5074
- _o as isOpenClock,
5075
- Bl as isOutwardTool,
5076
- ur as isParked,
5077
- co as isPaused,
5078
- gs as isPlaybookAuthoredType,
5079
- Qu as isPublicEmailDomain,
5080
- Uu as isPublicPath,
5081
- dr as isReminderActive,
5082
- ms as isReplyableType,
5083
- ba as isSlaAtRisk,
5084
- Ac as isTerminal,
5085
- ma as isThreadLongEnough,
5086
- bs as isTranscriptType,
5087
- Rl as isWorkClosed,
5088
- el as isWorkTypeVisible,
5089
- Cl as itemDossierKeys,
5093
+ Ao as isOpenClock,
5094
+ Hl as isOutwardTool,
5095
+ dr as isParked,
5096
+ lo as isPaused,
5097
+ yi as isPlaybookAuthoredType,
5098
+ Ju as isPublicEmailDomain,
5099
+ Bu as isPublicPath,
5100
+ pr as isReminderActive,
5101
+ hi as isReplyableType,
5102
+ Aa as isSlaAtRisk,
5103
+ Ec as isTerminal,
5104
+ ga as isThreadLongEnough,
5105
+ _i as isTranscriptType,
5106
+ $l as isWorkClosed,
5107
+ nl as isWorkTypeVisible,
5108
+ xl as itemDossierKeys,
5090
5109
  N as kindFor,
5091
- Vo as ladderFor,
5092
- Io as levelIn,
5110
+ zo as ladderFor,
5111
+ To as levelIn,
5093
5112
  Te as levelOrder,
5094
- Sr as lineNet,
5095
- Ta as linkLabel,
5096
- Rs as listeningAllowed,
5097
- Ma as localeInstruction,
5098
- ka as localeName,
5099
- Ca as localesOf,
5100
- Xu as looksLikeEmail,
5113
+ Er as lineNet,
5114
+ ka as linkLabel,
5115
+ Di as listeningAllowed,
5116
+ Ca as localeInstruction,
5117
+ Ma as localeName,
5118
+ xa as localesOf,
5119
+ qu as looksLikeEmail,
5101
5120
  Ct as lookup,
5102
- na as marginCents,
5103
- mu as markdownToDocument,
5104
- eu as matchContactToIntents,
5105
- bi as matchPublicRoute,
5106
- Na as mcpCredentialScope,
5107
- Ra as mcpToolPrefix,
5108
- jc as measureRatio,
5109
- Gu as mergeShownKeys,
5121
+ oa as marginCents,
5122
+ gu as markdownToDocument,
5123
+ nu as matchContactToIntents,
5124
+ _s as matchPublicRoute,
5125
+ Da as mcpCredentialScope,
5126
+ $a as mcpToolPrefix,
5127
+ Gc as measureRatio,
5128
+ Vu as mergeShownKeys,
5110
5129
  un as messageCountsAs,
5111
- Ks as metricOption,
5130
+ Ui as metricOption,
5112
5131
  Kt as minutesOn,
5113
- Zu as needsPhoneRegion,
5114
- fs as nestsUnderParent,
5115
- Kc as nextLevelBelow,
5116
- Nc as nextSlaClock,
5117
- al as nextVersion,
5118
- Bs as normalizeArtifactBlocks,
5119
- ls as normalizeBlocks,
5120
- Bs as normalizeDocumentBlocks,
5132
+ ed as needsPhoneRegion,
5133
+ mi as nestsUnderParent,
5134
+ Fc as nextLevelBelow,
5135
+ Dc as nextSlaClock,
5136
+ ll as nextVersion,
5137
+ ji as normalizeArtifactBlocks,
5138
+ ui as normalizeBlocks,
5139
+ ji as normalizeDocumentBlocks,
5121
5140
  nn as normalizeEmail,
5122
5141
  P as normalizeExample,
5123
5142
  Kn as normalizeGtin,
5124
- Iu as notificationPrefKey,
5125
- vi as novelty,
5126
- fu as operationDescriptor,
5127
- pu as operationsForKind,
5128
- da as organizationSender,
5143
+ wu as notificationPrefKey,
5144
+ Cs as novelty,
5145
+ hu as operationDescriptor,
5146
+ mu as operationsForKind,
5147
+ fa as organizationSender,
5129
5148
  ce as overlapSeconds,
5130
- qa as overlaps,
5131
- Hc as paceRatio,
5132
- fa as parkMarksById,
5133
- ic as parseActingIdentity,
5134
- ta as parseAmount,
5135
- kc as parseClockMinutes,
5136
- Ml as parseItemKey,
5137
- mi as pathToRegex,
5149
+ Za as overlaps,
5150
+ Wc as paceRatio,
5151
+ ha as parkMarksById,
5152
+ ac as parseActingIdentity,
5153
+ ra as parseAmount,
5154
+ Mc as parseClockMinutes,
5155
+ Cl as parseItemKey,
5156
+ hs as pathToRegex,
5138
5157
  Ft as patternFor,
5139
5158
  Ut as patternStartTime,
5140
- Mc as pauseBitFor,
5141
- $s as periodsInRange,
5142
- Yu as phoneSuffix,
5143
- ha as pickMailHeaders,
5144
- la as pickTemplate,
5145
- oc as placeLumps,
5159
+ Cc as pauseBitFor,
5160
+ Li as periodsInRange,
5161
+ Qu as phoneSuffix,
5162
+ ya as pickMailHeaders,
5163
+ da as pickTemplate,
5164
+ ic as placeLumps,
5146
5165
  cn as plainTextFromMarkdown,
5147
- Oc as planSlaEvent,
5148
- Za as plannedBillable,
5149
- Lr as plannedWorkTypeKey,
5150
- Qr as playbookActor,
5151
- bc as procedureOf,
5152
- pl as productScopeKey,
5153
- Ol as projectDossierKeys,
5154
- gi as publicBasePathFor,
5155
- Ku as publicRoutePatterns,
5156
- Qs as reactionWakesAssignment,
5166
+ Nc as planSlaEvent,
5167
+ ec as plannedBillable,
5168
+ Pr as plannedWorkTypeKey,
5169
+ Zr as playbookActor,
5170
+ Ac as procedureOf,
5171
+ ml as productScopeKey,
5172
+ Nl as projectDossierKeys,
5173
+ ys as publicBasePathFor,
5174
+ Fu as publicRoutePatterns,
5175
+ Zi as reactionWakesAssignment,
5157
5176
  fe as readPath,
5158
5177
  et as readStepError,
5159
- lr as recencyOf,
5160
- ca as recipientLocale,
5161
- Jr as refKey,
5162
- Pi as registrableDomain,
5163
- No as rejectExampleCandidate,
5164
- Ua as relatedByDefault,
5178
+ ur as recencyOf,
5179
+ ua as recipientLocale,
5180
+ eo as refKey,
5181
+ Ks as registrableDomain,
5182
+ Ro as rejectExampleCandidate,
5183
+ Ba as relatedByDefault,
5165
5184
  Ie as remainingMsOf,
5166
- xr as requiredAgents,
5167
- $r as requirementFor,
5168
- ni as resolveAccountCapabilities,
5185
+ Nr as requiredAgents,
5186
+ Lr as requirementFor,
5187
+ rs as resolveAccountCapabilities,
5169
5188
  me as resolveActivityText,
5170
- ti as resolveChannelIntents,
5171
- ra as resolvePrice,
5189
+ ns as resolveChannelIntents,
5190
+ sa as resolvePrice,
5172
5191
  Gn as resolveSignature,
5173
- Mu as resolveWorkMode,
5174
- Ru as resourceKindOf,
5175
- Vc as rollupChildren,
5192
+ Cu as resolveWorkMode,
5193
+ $u as resourceKindOf,
5194
+ Xc as rollupChildren,
5176
5195
  G as roundHalfUp,
5177
- sc as runActor,
5178
- Ic as runInteractionId,
5196
+ cc as runActor,
5197
+ wc as runInteractionId,
5179
5198
  On as sanitizeInline,
5180
- Ai as sanitizeTranscript,
5181
- tc as scheduleEntryScopeKey,
5182
- _a as scoreInteraction,
5183
- bl as scoreWorkItem,
5184
- xa as selectLenses,
5185
- Cr as serviceLevel,
5186
- Xl as sessionsHoldCannotReach,
5187
- zl as sessionsToHold,
5188
- vt as shareKeyForTeam,
5189
- Mt as shareKeyForUser,
5190
- Ws as shareKeysForViewer,
5191
- Ja as shortfalls,
5192
- vu as shouldRunAudioPipeline,
5193
- Rc as slaBadgeTone,
5194
- ya as slaHoursByInbox,
5195
- pr as slaHoursFor,
5196
- Xo as sortStatuses,
5197
- ei as sourceKey,
5198
- zr as spreadOverWeights,
5199
- xl as statusIn,
5200
- yc as stepsOf,
5201
- Lc as strategyAncestorKeysFor,
5202
- $c as strategyDossierKeys,
5199
+ Ss as sanitizeTranscript,
5200
+ rc as scheduleEntryScopeKey,
5201
+ Sa as scoreInteraction,
5202
+ Al as scoreWorkItem,
5203
+ Ra as selectLenses,
5204
+ Or as serviceLevel,
5205
+ ql as sessionsHoldCannotReach,
5206
+ Yl as sessionsToHold,
5207
+ Mt as shareKeyForTeam,
5208
+ vt as shareKeyForUser,
5209
+ Vi as shareKeysForViewer,
5210
+ tc as shortfalls,
5211
+ Ou as shouldRunAudioPipeline,
5212
+ $c as slaBadgeTone,
5213
+ _a as slaHoursByInbox,
5214
+ fr as slaHoursFor,
5215
+ Yo as sortStatuses,
5216
+ ts as sourceKey,
5217
+ Xr as spreadOverWeights,
5218
+ Rl as statusIn,
5219
+ _c as stepsOf,
5220
+ Kc as strategyAncestorKeysFor,
5221
+ Pc as strategyDossierKeys,
5203
5222
  zt as strategyItemScopeKey,
5204
5223
  ln as stripHtml,
5205
- Ec as subjectKeyOf,
5224
+ Tc as subjectKeyOf,
5206
5225
  Bt as subjectOf,
5207
- Wl as subjectRef,
5208
- vl as suggestProjectKey,
5209
- Gc as suggestedHealth,
5210
- Tc as summarizeReactions,
5211
- uc as targetById,
5212
- lc as targetForActivityType,
5213
- Xc as targetOrder,
5214
- Ar as taxRateFor,
5215
- wr as termsFor,
5216
- qr as toActingIdentity,
5226
+ zl as subjectRef,
5227
+ Ol as suggestProjectKey,
5228
+ Vc as suggestedHealth,
5229
+ kc as summarizeReactions,
5230
+ pc as targetById,
5231
+ dc as targetForActivityType,
5232
+ qc as targetOrder,
5233
+ Sr as taxRateFor,
5234
+ kr as termsFor,
5235
+ Qr as toActingIdentity,
5217
5236
  ht as toE164,
5218
- Vs as toolSourceKinds,
5219
- Ro as topicOfferedForTeam,
5220
- ol as topicsForTeam,
5221
- Or as trafficIntensity,
5222
- cl as transactionContext,
5223
- fl as transactionIdFromScope,
5237
+ zi as toolSourceKinds,
5238
+ Do as topicOfferedForTeam,
5239
+ il as topicsForTeam,
5240
+ xr as trafficIntensity,
5241
+ ul as transactionContext,
5242
+ hl as transactionIdFromScope,
5224
5243
  ke as transactionKind,
5225
- dl as transactionScopeKey,
5226
- ll as transactionSlots,
5227
- Ba as transactionTotals,
5228
- xo as truncateExample,
5229
- Sl as typeIn,
5230
- Al as typesFor,
5231
- Dl as uniqueWorkStatusKey,
5232
- Jc as uniqueWorkTypeKey,
5244
+ fl as transactionScopeKey,
5245
+ dl as transactionSlots,
5246
+ Ha as transactionTotals,
5247
+ No as truncateExample,
5248
+ Il as typeIn,
5249
+ El as typesFor,
5250
+ Ll as uniqueWorkStatusKey,
5251
+ tl as uniqueWorkTypeKey,
5233
5252
  In as usageMetricId,
5234
- Us as usageMetrics,
5235
- $l as validateStatuses,
5236
- cc as valueAtPath,
5237
- ve as waitHoursOf,
5238
- qs as wakesAssignment,
5239
- wl as workActivityScopeKey,
5240
- Wo as workItemScopeKey,
5253
+ Fi as usageMetrics,
5254
+ Pl as validateStatuses,
5255
+ uc as valueAtPath,
5256
+ Me as waitHoursOf,
5257
+ Qi as wakesAssignment,
5258
+ vl as workActivityScopeKey,
5259
+ Vo as workItemScopeKey,
5241
5260
  Yt as workProjectScopeKey,
5242
- Wc as workRatio,
5243
- Yo as workStatusKey,
5261
+ zc as workRatio,
5262
+ qo as workStatusKey,
5244
5263
  Mo as workTypeKey,
5245
5264
  Ae as workingMsBetween,
5246
- nc as workstreamScopeKey
5265
+ oc as workstreamScopeKey
5247
5266
  };