@opencxh/domain 1.244.0 → 1.245.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 oi = 10, si = 10, ii = 10, ai = 5, on = /* @__PURE__ */ new Set([
1
+ const is = 10, ss = 10, as = 10, cs = 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 ci(e, t = () => {
17
+ function ls(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -59,9 +59,9 @@ function ci(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 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);
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);
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 se(e) {
93
+ function ie(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 — ${se(e.payload.from)}` : `Outbound call started — ${se(e.payload.to)}`
109
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${ie(e.payload.from)}` : `Outbound call started — ${ie(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 — ${se(e.payload.from)}`
144
+ timeline: (e) => `Missed call — ${ie(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 li(e) {
470
+ function us(e) {
471
471
  return w(e)?.icon ?? "circle";
472
472
  }
473
- function ui(e) {
473
+ function ds(e) {
474
474
  return w(e)?.channelKind;
475
475
  }
476
476
  function St(e) {
477
477
  return e === "message" || e === "note";
478
478
  }
479
- function di(e) {
479
+ function ps(e) {
480
480
  return St(w(e)?.shape);
481
481
  }
482
482
  function It(e) {
483
483
  return e === "note";
484
484
  }
485
- function pi(e) {
485
+ function fs(e) {
486
486
  return It(w(e)?.shape);
487
487
  }
488
- function fi(e) {
488
+ function ms(e) {
489
489
  return w(e)?.replyable === !0;
490
490
  }
491
- function mi(e) {
491
+ function hs(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 hi(e) {
497
+ function gs(e) {
498
498
  return w(e)?.playbookAuthored === !0;
499
499
  }
500
- function gi(e) {
500
+ function ys(e) {
501
501
  return w(e)?.connected === !0;
502
502
  }
503
- function yi(e) {
503
+ function bs(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 bi(e, t) {
511
+ function As(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 Ai(e) {
515
+ function _s(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 [s, i] of Object.entries(e.params ?? {}))
534
- r[s] = fe(t, i);
533
+ for (const [i, s] of Object.entries(e.params ?? {}))
534
+ r[i] = fe(t, s);
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 _i(e, t) {
550
+ function Es(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 Ei = new hn();
685
- function Si(e, t, n = []) {
684
+ const Ss = new hn();
685
+ function Is(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(([s, i]) => i >= r && !o.has(s)).map(([s]) => s);
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);
690
690
  }
691
691
  function gn(e) {
692
692
  return e.createdAt ?? 0;
693
693
  }
694
- function Ii(e) {
694
+ function Ts(e) {
695
695
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
696
696
  }
697
- function Ti(e) {
697
+ function ws(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 wi(e) {
793
+ function ks(e) {
794
794
  return te(e)?.label ?? e;
795
795
  }
796
- function ki(e, t = "gpt-5-mini") {
796
+ function Ms(e, t = "gpt-5-mini") {
797
797
  return te(e)?.defaultModel ?? t;
798
798
  }
799
- function Mi(e) {
799
+ function vs(e) {
800
800
  return Tt.filter((t) => t.capabilities.includes(e));
801
801
  }
802
- function vi(e) {
802
+ function Cs(e) {
803
803
  const t = te(e);
804
804
  return !!t && !t.baseUrl;
805
805
  }
806
- function Ci(e, t) {
806
+ function Os(e, t) {
807
807
  return t === "text" ? !0 : te(e)?.attachmentKinds?.includes(t) === !0;
808
808
  }
809
- function Oi(e, t) {
809
+ function xs(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 xi(e, t = "month") {
821
+ function Ns(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 Ni(e) {
825
+ function Rs(e) {
826
826
  return e?.listeningEnabled !== !1;
827
827
  }
828
- const Ri = [
828
+ const Ds = [
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 Ri = [
835
835
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
836
836
  { id: "time", label: "Tijd", labelSource: "raw" }
837
837
  ];
838
- function ie(e) {
838
+ function se(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()}-${ie(n.getUTCMonth() + 1)}-${ie(n.getUTCDate())}`;
843
- return t === "day" ? r : `${r}T${ie(n.getUTCHours())}`;
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())}`;
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, An = 864e5;
850
- function Di(e, t, n) {
850
+ function $s(e, t, n) {
851
851
  const r = n === "hour" ? bn : An, o = [];
852
- for (let s = H(e, n); s <= t; s += r)
853
- o.push(j(s, n));
852
+ for (let i = H(e, n); i <= t; i += r)
853
+ o.push(j(i, n));
854
854
  return o;
855
855
  }
856
856
  const _n = /* @__PURE__ */ new Set(["time"]);
857
- function $i(e, t, n) {
857
+ function Ls(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) && !_n.has(o.id)).map((o) => ({
@@ -863,11 +863,11 @@ function $i(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 Li(e, t) {
866
+ function Ps(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 Pi(e) {
870
+ function Ks(e) {
871
871
  return { value: e.id, label: `${e.category} · ${e.label}` };
872
872
  }
873
873
  const En = [
@@ -877,7 +877,7 @@ const En = [
877
877
  function In(e, t) {
878
878
  return `${e}.usage.${t}`;
879
879
  }
880
- function Ki(e, t) {
880
+ function Us(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 Ki(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, Ui = 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, Fs = 1024 * 1024, wn = /* @__PURE__ */ new Set([
896
896
  "heading",
897
897
  "paragraph",
898
898
  "list",
@@ -922,31 +922,31 @@ function Cn(e) {
922
922
  t += e[n], n += 1;
923
923
  continue;
924
924
  }
925
- const o = n + (r ? 2 : 1), s = qe(e, o, "[", "]");
926
- if (s < 0 || e[s + 1] !== "(") {
925
+ const o = n + (r ? 2 : 1), i = qe(e, o, "[", "]");
926
+ if (i < 0 || e[i + 1] !== "(") {
927
927
  t += e[n], n += 1;
928
928
  continue;
929
929
  }
930
- const i = qe(e, s + 2, "(", ")");
931
- if (i < 0) {
930
+ const s = qe(e, i + 2, "(", ")");
931
+ if (s < 0) {
932
932
  t += e[n], n += 1;
933
933
  continue;
934
934
  }
935
- const a = e.slice(o, s), c = e.slice(s + 2, i).trim().split(/\s+/)[0] ?? "";
936
- t += r || !Me(c) ? a : e.slice(n, i + 1), n = i + 1;
935
+ const a = e.slice(o, i), c = e.slice(i + 2, s).trim().split(/\s+/)[0] ?? "";
936
+ t += r || !Me(c) ? a : e.slice(n, s + 1), n = s + 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 s = t; s < e.length; s += 1) {
943
- if (e[s] === "\\") {
944
- s += 1;
942
+ for (let i = t; i < e.length; i += 1) {
943
+ if (e[i] === "\\") {
944
+ i += 1;
945
945
  continue;
946
946
  }
947
- if (e[s] === n) o += 1;
948
- else if (e[s] === r && (o -= 1, o === 0))
949
- return s;
947
+ if (e[i] === n) o += 1;
948
+ else if (e[i] === r && (o -= 1, o === 0))
949
+ return i;
950
950
  }
951
951
  return -1;
952
952
  }
@@ -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 Fi(e, t = () => {
971
+ function Bs(e, t = () => {
972
972
  }) {
973
973
  if (!Array.isArray(e)) return [];
974
974
  const n = [];
@@ -983,203 +983,203 @@ function Fi(e, t = () => {
983
983
  t(`unknown block type ${String(o.type)}`);
984
984
  continue;
985
985
  }
986
- const s = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
986
+ const i = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
987
987
  switch (o.type) {
988
988
  case "heading": {
989
- const i = T(o.text);
990
- if (!i) {
989
+ const s = T(o.text);
990
+ if (!s) {
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({ ...s, type: "heading", level: a, text: i });
995
+ n.push({ ...i, type: "heading", level: a, text: s });
996
996
  break;
997
997
  }
998
998
  case "paragraph": {
999
- const i = T(o.text);
1000
- if (!i) {
999
+ const s = T(o.text);
1000
+ if (!s) {
1001
1001
  t("a paragraph without text");
1002
1002
  continue;
1003
1003
  }
1004
- n.push({ ...s, type: "paragraph", text: i });
1004
+ n.push({ ...i, type: "paragraph", text: s });
1005
1005
  break;
1006
1006
  }
1007
1007
  case "quote": {
1008
- const i = T(o.text);
1009
- if (!i) {
1008
+ const s = T(o.text);
1009
+ if (!s) {
1010
1010
  t("a quote without text");
1011
1011
  continue;
1012
1012
  }
1013
- n.push({ ...s, type: "quote", text: i });
1013
+ n.push({ ...i, type: "quote", text: s });
1014
1014
  break;
1015
1015
  }
1016
1016
  case "code": {
1017
- const i = xn(o.text);
1018
- if (!i) {
1017
+ const s = xn(o.text);
1018
+ if (!s) {
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({ ...s, type: "code", ...a, text: i });
1023
+ n.push({ ...i, type: "code", ...a, text: s });
1024
1024
  break;
1025
1025
  }
1026
1026
  case "divider":
1027
- n.push({ ...s, type: "divider" });
1027
+ n.push({ ...i, type: "divider" });
1028
1028
  break;
1029
1029
  case "list": {
1030
- const i = Array.isArray(o.items) ? o.items : [], a = [];
1031
- for (const l of i) {
1030
+ const s = Array.isArray(o.items) ? o.items : [], a = [];
1031
+ for (const u of s) {
1032
1032
  if (a.length >= Ge) {
1033
1033
  t(`more than ${Ge} list items`);
1034
1034
  break;
1035
1035
  }
1036
- const d = T(l?.text);
1036
+ const d = T(u?.text);
1037
1037
  if (!d) continue;
1038
- const u = T(l?.lead, 200);
1039
- a.push(u ? { lead: u, text: d } : { text: d });
1038
+ const l = T(u?.lead, 200);
1039
+ a.push(l ? { lead: l, text: d } : { text: d });
1040
1040
  }
1041
1041
  if (a.length === 0) {
1042
1042
  t("a list without usable items");
1043
1043
  continue;
1044
1044
  }
1045
1045
  const c = o.style === "numbered" ? "numbered" : "bulleted";
1046
- n.push({ ...s, type: "list", style: c, items: a });
1046
+ n.push({ ...i, type: "list", style: c, items: a });
1047
1047
  break;
1048
1048
  }
1049
1049
  case "table": {
1050
- const i = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
- for (const u of i) {
1050
+ const s = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
+ for (const l of s) {
1052
1052
  if (a.length >= Ve) {
1053
1053
  t(`more than ${Ve} table columns`);
1054
1054
  break;
1055
1055
  }
1056
- const p = T(u?.label, q), f = u?.align === "right" ? "right" : void 0;
1056
+ const p = T(l?.label, q), f = l?.align === "right" ? "right" : void 0;
1057
1057
  a.push(f ? { label: p, align: f } : { label: p });
1058
1058
  }
1059
1059
  if (a.length === 0) {
1060
1060
  t("a table without columns");
1061
1061
  continue;
1062
1062
  }
1063
- const c = Array.isArray(o.rows) ? o.rows : [], l = [];
1064
- for (const u of c) {
1065
- if (l.length >= We) {
1063
+ const c = Array.isArray(o.rows) ? o.rows : [], u = [];
1064
+ for (const l of c) {
1065
+ if (u.length >= We) {
1066
1066
  t(`more than ${We} table rows`);
1067
1067
  break;
1068
1068
  }
1069
- const p = Array.isArray(u) ? u : [];
1070
- l.push(a.map((f, y) => T(p[y], q)));
1069
+ const p = Array.isArray(l) ? l : [];
1070
+ u.push(a.map((f, y) => T(p[y], q)));
1071
1071
  }
1072
1072
  const d = T(o.caption, q);
1073
1073
  n.push({
1074
- ...s,
1074
+ ...i,
1075
1075
  type: "table",
1076
1076
  columns: a,
1077
- rows: l,
1077
+ rows: u,
1078
1078
  ...d ? { caption: d } : {}
1079
1079
  });
1080
1080
  break;
1081
1081
  }
1082
1082
  case "kpi": {
1083
- const i = Array.isArray(o.items) ? o.items : [], a = [];
1084
- for (const c of i) {
1083
+ const s = Array.isArray(o.items) ? o.items : [], a = [];
1084
+ for (const c of s) {
1085
1085
  if (a.length >= ze) {
1086
1086
  t(`more than ${ze} kpi items`);
1087
1087
  break;
1088
1088
  }
1089
- const l = T(c?.value, 40), d = T(c?.label, 80);
1090
- if (!l || !d) continue;
1091
- const u = c?.tone;
1089
+ const u = T(c?.value, 40), d = T(c?.label, 80);
1090
+ if (!u || !d) continue;
1091
+ const l = c?.tone;
1092
1092
  a.push(
1093
- typeof u == "string" && wt.has(u) ? { value: l, label: d, tone: u } : { value: l, label: d }
1093
+ typeof l == "string" && wt.has(l) ? { value: u, label: d, tone: l } : { value: u, label: d }
1094
1094
  );
1095
1095
  }
1096
1096
  if (a.length === 0) {
1097
1097
  t("a kpi block without usable items");
1098
1098
  continue;
1099
1099
  }
1100
- n.push({ ...s, type: "kpi", items: a });
1100
+ n.push({ ...i, type: "kpi", items: a });
1101
1101
  break;
1102
1102
  }
1103
1103
  case "image": {
1104
- const i = typeof o.url == "string" ? o.url.trim() : "";
1105
- if (!i || !Me(i)) {
1104
+ const s = typeof o.url == "string" ? o.url.trim() : "";
1105
+ if (!s || !Me(s)) {
1106
1106
  t("an image without a usable url");
1107
1107
  continue;
1108
1108
  }
1109
1109
  const a = T(o.alt, 200), c = T(o.caption, q);
1110
1110
  n.push({
1111
- ...s,
1111
+ ...i,
1112
1112
  type: "image",
1113
- url: i,
1113
+ url: s,
1114
1114
  ...a ? { alt: a } : {},
1115
1115
  ...c ? { caption: c } : {}
1116
1116
  });
1117
1117
  break;
1118
1118
  }
1119
1119
  case "letterhead": {
1120
- const i = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
- for (const d of i) {
1120
+ const s = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
+ for (const d of s) {
1122
1122
  if (a.length >= Xe) {
1123
1123
  t(`more than ${Xe} letterhead fields`);
1124
1124
  break;
1125
1125
  }
1126
- const u = d, p = typeof u?.key == "string" ? u.key.slice(0, 48) : "", f = U(u?.value);
1126
+ const l = d, p = typeof l?.key == "string" ? l.key.slice(0, 48) : "", f = U(l?.value);
1127
1127
  if (!p || !f) continue;
1128
- const y = U(u?.label, 80);
1128
+ const y = U(l?.label, 80);
1129
1129
  a.push(y ? { key: p, label: y, value: f } : { key: p, value: f });
1130
1130
  }
1131
- const l = (Array.isArray(o.recipient) ? o.recipient : []).slice(0, Tn).map((d) => U(d)).filter(Boolean);
1132
- if (a.length === 0 && l.length === 0) {
1131
+ const u = (Array.isArray(o.recipient) ? o.recipient : []).slice(0, Tn).map((d) => U(d)).filter(Boolean);
1132
+ if (a.length === 0 && u.length === 0) {
1133
1133
  t("a letterhead without fields or recipient");
1134
1134
  continue;
1135
1135
  }
1136
1136
  n.push({
1137
- ...s,
1137
+ ...i,
1138
1138
  type: "letterhead",
1139
1139
  fields: a,
1140
- ...l.length > 0 ? { recipient: l } : {}
1140
+ ...u.length > 0 ? { recipient: u } : {}
1141
1141
  });
1142
1142
  break;
1143
1143
  }
1144
1144
  case "totals": {
1145
- const i = (l) => {
1146
- const d = Array.isArray(l) ? l : [], u = [];
1145
+ const s = (u) => {
1146
+ const d = Array.isArray(u) ? u : [], l = [];
1147
1147
  for (const p of d) {
1148
- if (u.length >= Ye) {
1148
+ if (l.length >= Ye) {
1149
1149
  t(`more than ${Ye} totals rows`);
1150
1150
  break;
1151
1151
  }
1152
1152
  const f = p, y = U(f?.label), m = U(f?.amount, 40);
1153
- !y || !m || u.push(
1153
+ !y || !m || l.push(
1154
1154
  f?.emphasis === !0 ? { label: y, amount: m, emphasis: !0 } : { label: y, amount: m }
1155
1155
  );
1156
1156
  }
1157
- return u;
1158
- }, a = i(o.rows);
1159
- if (a.length === 0) {
1157
+ return l;
1158
+ }, a = s(o.rows);
1159
+ if (a.length === 0 && !o.block_id) {
1160
1160
  t("a totals block without usable rows");
1161
1161
  continue;
1162
1162
  }
1163
- const c = i(o.taxRows);
1164
- n.push({ ...s, type: "totals", rows: a, ...c.length > 0 ? { taxRows: c } : {} });
1163
+ const c = s(o.taxRows);
1164
+ n.push({ ...i, type: "totals", rows: a, ...c.length > 0 ? { taxRows: c } : {} });
1165
1165
  break;
1166
1166
  }
1167
1167
  case "pagebreak":
1168
- n.push({ ...s, type: "pagebreak" });
1168
+ n.push({ ...i, type: "pagebreak" });
1169
1169
  break;
1170
1170
  case "callout": {
1171
- const i = T(o.text);
1172
- if (!i) {
1171
+ const s = T(o.text);
1172
+ if (!s) {
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
- ...s,
1178
+ ...i,
1179
1179
  type: "callout",
1180
1180
  tone: Nn(o.tone),
1181
1181
  ...a ? { title: a } : {},
1182
- text: i
1182
+ text: s
1183
1183
  });
1184
1184
  break;
1185
1185
  }
@@ -1187,10 +1187,10 @@ function Fi(e, t = () => {
1187
1187
  }
1188
1188
  return n;
1189
1189
  }
1190
- function Bi(e) {
1190
+ function js(e) {
1191
1191
  return JSON.stringify(e).length;
1192
1192
  }
1193
- function ji(e) {
1193
+ function Hs(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, s) => n?.[s] === "right" ? "---:" : "---");
1204
+ const r = e.map((o, i) => n?.[i] === "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 s = Rn(o);
1272
- s.length > 0 && n.push(s.join(`
1271
+ const i = Rn(o);
1272
+ i.length > 0 && n.push(i.join(`
1273
1273
  `));
1274
1274
  }
1275
1275
  return `${n.join(`
@@ -1278,44 +1278,44 @@ function Dn(e, t) {
1278
1278
  `;
1279
1279
  }
1280
1280
  const Mt = (e) => `user:${e}`, vt = (e) => `team:${e}`;
1281
- function Hi(e) {
1281
+ function Gs(e) {
1282
1282
  const t = /* @__PURE__ */ new Set();
1283
1283
  for (const n of e ?? [])
1284
1284
  n?.id && (n.kind === "user" && t.add(Mt(n.id)), n.kind === "team" && t.add(vt(n.id)));
1285
1285
  return [...t].sort();
1286
1286
  }
1287
- function Gi(e, t) {
1287
+ function Ws(e, t) {
1288
1288
  return [Mt(e), ...t.map(vt)];
1289
1289
  }
1290
- function Wi(e) {
1290
+ function Vs(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"], Vi = ["open", "waiting"];
1297
- function zi(e) {
1296
+ const $n = ["done", "escalated"], zs = ["open", "waiting"];
1297
+ function Xs(e) {
1298
1298
  return $n.includes(e);
1299
1299
  }
1300
1300
  const Ln = "assignment";
1301
- function Xi(e) {
1301
+ function Ys(e) {
1302
1302
  return `${Ln}:${e}`;
1303
1303
  }
1304
- function Yi(e, t, n, r) {
1304
+ function qs(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 qi(e) {
1310
+ function Qs(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 Qi(e) {
1314
+ function Zs(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 Zi(e, t, n = Pn) {
1318
+ function Js(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",
@@ -1341,7 +1341,7 @@ function Un(e) {
1341
1341
  t += Number(e[n]) * (n % 2 === 0 ? 3 : 1);
1342
1342
  return (10 - t % 10) % 10;
1343
1343
  }
1344
- function Ji(e, t) {
1344
+ function ea(e, t) {
1345
1345
  const n = t.trim(), r = Kn(n), o = [{ sku: n }, { barcodes: { $in: [n] } }];
1346
1346
  return r && o.push({ gtin: r }), { organizationId: e, $or: o };
1347
1347
  }
@@ -1350,38 +1350,38 @@ function G(e) {
1350
1350
  }
1351
1351
  function Fn(e, t) {
1352
1352
  if (t.length === 0) return [];
1353
- const n = t.reduce((c, l) => c + l, 0);
1354
- if (n === 0) return t.map((c, l) => l === 0 ? e : 0);
1353
+ const n = t.reduce((c, u) => c + u, 0);
1354
+ if (n === 0) return t.map((c, u) => u === 0 ? e : 0);
1355
1355
  const r = t.map((c) => e * c / n), o = r.map((c) => Math.trunc(c));
1356
- let s = e - o.reduce((c, l) => c + l, 0);
1357
- const i = r.map((c, l) => ({ index: l, fraction: Math.abs(c - o[l]) })).sort((c, l) => l.fraction - c.fraction), a = s < 0 ? -1 : 1;
1358
- for (let c = 0; s !== 0 && c < i.length; c++)
1359
- o[i[c].index] += a, s -= a;
1356
+ let i = e - o.reduce((c, u) => c + u, 0);
1357
+ const s = r.map((c, u) => ({ index: u, fraction: Math.abs(c - o[u]) })).sort((c, u) => u.fraction - c.fraction), a = i < 0 ? -1 : 1;
1358
+ for (let c = 0; i !== 0 && c < s.length; c++)
1359
+ o[s[c].index] += a, i -= a;
1360
1360
  return o;
1361
1361
  }
1362
1362
  function D(e, t = {}) {
1363
- 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);
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);
1364
1364
  let c = "";
1365
- for (let l = 0; l < i.length; l++)
1366
- l > 0 && (i.length - l) % 3 === 0 && (c += r), c += i[l];
1365
+ for (let u = 0; u < s.length; u++)
1366
+ u > 0 && (s.length - u) % 3 === 0 && (c += r), c += s[u];
1367
1367
  return `${o ? "-" : ""}${c}${n}${a}`;
1368
1368
  }
1369
- function ea(e) {
1369
+ function ta(e) {
1370
1370
  const t = e.trim().replace(/[\s ]/g, "");
1371
1371
  if (!t) return;
1372
1372
  const n = t.replace(/^[-+]?[^\d.,-]*/, "").replace(/[^\d.,-]+$/, ""), r = /^-/.test(t) || /-$/.test(t), o = n.replace(/-/g, "");
1373
1373
  if (!o || !/^[\d.,]+$/.test(o)) return;
1374
- const s = o.lastIndexOf(","), i = o.lastIndexOf("."), a = Math.max(s, i), c = a === -1 ? "" : o.slice(a + 1), l = a !== -1 && c.length >= 1 && c.length <= 2, d = l ? o.slice(0, a) : o;
1374
+ const i = o.lastIndexOf(","), s = o.lastIndexOf("."), a = Math.max(i, s), c = a === -1 ? "" : o.slice(a + 1), u = a !== -1 && c.length >= 1 && c.length <= 2, d = u ? o.slice(0, a) : o;
1375
1375
  if (!Bn(d)) return;
1376
- const u = d.replace(/[.,]/g, ""), p = l ? c.padEnd(2, "0") : "00";
1377
- if (u === "") return;
1378
- const f = Number(u) * 100 + Number(p);
1376
+ const l = d.replace(/[.,]/g, ""), p = u ? c.padEnd(2, "0") : "00";
1377
+ if (l === "") return;
1378
+ const f = Number(l) * 100 + Number(p);
1379
1379
  return r ? -f : f;
1380
1380
  }
1381
1381
  function Bn(e) {
1382
1382
  return /^\d+$/.test(e) ? !0 : e.includes(".") && e.includes(",") ? !1 : /^\d{1,3}([.,]\d{3})*$/.test(e);
1383
1383
  }
1384
- function ta(e) {
1384
+ function na(e) {
1385
1385
  return e.costPriceCents == null ? e.netCents : e.netCents - G(e.costPriceCents * e.quantity);
1386
1386
  }
1387
1387
  const jn = [
@@ -1406,20 +1406,20 @@ const jn = [
1406
1406
  matches: (e, t) => !e.contractId && !e.companyId && !!e.segmentKey && e.segmentKey === t.segmentKey && !!e.categoryKey
1407
1407
  }
1408
1408
  ];
1409
- function na(e, t, n) {
1409
+ function ra(e, t, n) {
1410
1410
  const r = n.filter(
1411
1411
  (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
1412
  );
1413
1413
  for (const o of jn) {
1414
- const s = r.filter((a) => o.matches(a, t));
1415
- if (s.length === 0) continue;
1416
- const i = s.reduce(
1414
+ const i = r.filter((a) => o.matches(a, t));
1415
+ if (i.length === 0) continue;
1416
+ const s = i.reduce(
1417
1417
  (a, c) => (c.minQuantity ?? 0) >= (a.minQuantity ?? 0) ? c : a
1418
1418
  );
1419
1419
  return {
1420
- unitPriceCents: Hn(i, e.listPriceCents),
1421
- sourceKey: (i.minQuantity ?? 0) > 1 ? "tier" : o.key,
1422
- ruleId: i.id
1420
+ unitPriceCents: Hn(s, e.listPriceCents),
1421
+ sourceKey: (s.minQuantity ?? 0) > 1 ? "tier" : o.key,
1422
+ ruleId: s.id
1423
1423
  };
1424
1424
  }
1425
1425
  return { unitPriceCents: e.listPriceCents, sourceKey: "list" };
@@ -1427,7 +1427,7 @@ function na(e, t, n) {
1427
1427
  function Hn(e, t) {
1428
1428
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? G(t * (1 - e.discountPercent / 100)) : t;
1429
1429
  }
1430
- const ra = ["piece", "hour", "day", "month", "km", "license"], oa = /* @__PURE__ */ new Set(["mail", "message"]);
1430
+ const oa = ["piece", "hour", "day", "month", "km", "license"], ia = /* @__PURE__ */ new Set(["mail", "message"]);
1431
1431
  function Gn(e, t) {
1432
1432
  const n = e.settings?.signatures?.[t];
1433
1433
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
@@ -1439,7 +1439,7 @@ function sa(e, t, n, r = "html") {
1439
1439
 
1440
1440
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1441
1441
  }
1442
- function ia(e) {
1442
+ function aa(e) {
1443
1443
  return e.endpoints ?? [];
1444
1444
  }
1445
1445
  function $(e) {
@@ -1447,14 +1447,14 @@ function $(e) {
1447
1447
  if (t)
1448
1448
  return t.split(/[-_]/)[0] || void 0;
1449
1449
  }
1450
- function aa(e) {
1450
+ function ca(e) {
1451
1451
  return $(e.contactLocale) ?? $(e.companyLocale) ?? $(e.organizationLocale);
1452
1452
  }
1453
- function ca(e, t, n, r) {
1453
+ function la(e, t, n, r) {
1454
1454
  const o = e.filter((a) => a.key === t && !a.archived);
1455
1455
  if (o.length === 0) return;
1456
- const s = $(n), i = $(r);
1457
- 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.
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.
1458
1458
  o.find((a) => !a.locale) ?? o[0];
1459
1459
  }
1460
1460
  const Wn = /\{([a-zA-Z0-9_.]+)\}/g;
@@ -1469,12 +1469,12 @@ function Ct(e, t) {
1469
1469
  function Vn(e) {
1470
1470
  return typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : "";
1471
1471
  }
1472
- function zn(e, t) {
1473
- const n = [];
1474
- return { text: e.replace(Wn, (o, s) => {
1475
- const i = Ct(t, s);
1476
- return i == null || i === "" ? (n.includes(s) || n.push(s), `{${s}}`) : Vn(i);
1477
- }), unresolved: n };
1472
+ function zn(e, t, n) {
1473
+ 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
+ }), unresolved: r };
1478
1478
  }
1479
1479
  function Xn(e, t) {
1480
1480
  if (!e) return !0;
@@ -1485,104 +1485,104 @@ function Xn(e, t) {
1485
1485
  }
1486
1486
  return e.equals !== void 0 ? n === e.equals : !0;
1487
1487
  }
1488
- function la(e, t, n, r) {
1489
- const o = [], s = [], i = (a) => {
1490
- const c = zn(a, t);
1491
- for (const l of c.unresolved) o.includes(l) || o.push(l);
1492
- return c.text;
1488
+ function ua(e, t, n, r, o) {
1489
+ const i = [], s = [], a = (c) => {
1490
+ const u = zn(c, t, o);
1491
+ for (const d of u.unresolved) i.includes(d) || i.push(d);
1492
+ return u.text;
1493
1493
  };
1494
- for (const a of e) {
1495
- if (a.block_id && !Xn(n?.[a.block_id], t)) continue;
1496
- const c = a.block_id ? r?.[a.block_id] : void 0;
1497
- if (c) {
1498
- s.push(...c);
1494
+ for (const c of e) {
1495
+ if (c.block_id && !Xn(n?.[c.block_id], t)) continue;
1496
+ const u = c.block_id ? r?.[c.block_id] : void 0;
1497
+ if (u) {
1498
+ s.push(...u);
1499
1499
  continue;
1500
1500
  }
1501
- switch (a.type) {
1501
+ switch (c.type) {
1502
1502
  case "heading":
1503
1503
  case "paragraph":
1504
1504
  case "quote":
1505
- s.push({ ...a, text: i(a.text) });
1505
+ s.push({ ...c, text: a(c.text) });
1506
1506
  break;
1507
1507
  case "callout":
1508
1508
  s.push({
1509
- ...a,
1510
- ...a.title ? { title: i(a.title) } : {},
1511
- text: i(a.text)
1509
+ ...c,
1510
+ ...c.title ? { title: a(c.title) } : {},
1511
+ text: a(c.text)
1512
1512
  });
1513
1513
  break;
1514
1514
  case "code":
1515
- s.push(a);
1515
+ s.push(c);
1516
1516
  break;
1517
1517
  case "list":
1518
1518
  s.push({
1519
- ...a,
1520
- items: a.items.map((l) => ({
1521
- ...l.lead ? { lead: i(l.lead) } : {},
1522
- text: i(l.text)
1519
+ ...c,
1520
+ items: c.items.map((d) => ({
1521
+ ...d.lead ? { lead: a(d.lead) } : {},
1522
+ text: a(d.text)
1523
1523
  }))
1524
1524
  });
1525
1525
  break;
1526
1526
  case "table":
1527
1527
  s.push({
1528
- ...a,
1529
- columns: a.columns.map((l) => ({ ...l, label: i(l.label) })),
1530
- rows: a.rows.map((l) => l.map(i)),
1531
- ...a.caption ? { caption: i(a.caption) } : {}
1528
+ ...c,
1529
+ columns: c.columns.map((d) => ({ ...d, label: a(d.label) })),
1530
+ rows: c.rows.map((d) => d.map(a)),
1531
+ ...c.caption ? { caption: a(c.caption) } : {}
1532
1532
  });
1533
1533
  break;
1534
1534
  case "kpi":
1535
1535
  s.push({
1536
- ...a,
1537
- items: a.items.map((l) => ({
1538
- ...l,
1539
- value: i(l.value),
1540
- label: i(l.label)
1536
+ ...c,
1537
+ items: c.items.map((d) => ({
1538
+ ...d,
1539
+ value: a(d.value),
1540
+ label: a(d.label)
1541
1541
  }))
1542
1542
  });
1543
1543
  break;
1544
1544
  case "letterhead":
1545
1545
  s.push({
1546
- ...a,
1547
- fields: a.fields.map((l) => ({ ...l, value: i(l.value) })),
1548
- ...a.recipient ? { recipient: a.recipient.map(i) } : {}
1546
+ ...c,
1547
+ fields: c.fields.map((d) => ({ ...d, value: a(d.value) })),
1548
+ ...c.recipient ? { recipient: c.recipient.map(a) } : {}
1549
1549
  });
1550
1550
  break;
1551
1551
  case "totals":
1552
1552
  s.push({
1553
- ...a,
1554
- rows: a.rows.map((l) => ({
1555
- ...l,
1556
- label: i(l.label),
1557
- amount: i(l.amount)
1553
+ ...c,
1554
+ rows: c.rows.map((d) => ({
1555
+ ...d,
1556
+ label: a(d.label),
1557
+ amount: a(d.amount)
1558
1558
  })),
1559
- ...a.taxRows ? {
1560
- taxRows: a.taxRows.map((l) => ({
1561
- ...l,
1562
- label: i(l.label),
1563
- amount: i(l.amount)
1559
+ ...c.taxRows ? {
1560
+ taxRows: c.taxRows.map((d) => ({
1561
+ ...d,
1562
+ label: a(d.label),
1563
+ amount: a(d.amount)
1564
1564
  }))
1565
1565
  } : {}
1566
1566
  });
1567
1567
  break;
1568
1568
  case "image":
1569
1569
  s.push({
1570
- ...a,
1571
- url: i(a.url),
1572
- ...a.alt ? { alt: i(a.alt) } : {}
1570
+ ...c,
1571
+ url: a(c.url),
1572
+ ...c.alt ? { alt: a(c.alt) } : {}
1573
1573
  });
1574
1574
  break;
1575
1575
  default:
1576
- s.push(a);
1576
+ s.push(c);
1577
1577
  }
1578
1578
  }
1579
- return { blocks: s, unresolved: o };
1579
+ return { blocks: s, unresolved: i };
1580
1580
  }
1581
- function ua(e) {
1582
- const t = e?.billing, n = e?.address, r = e?.houseStyle, o = [n?.street, n?.houseNumber].filter(Boolean).join(" "), s = [n?.postalCode, n?.city].filter(Boolean).join(" ");
1581
+ function da(e) {
1582
+ 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(" ");
1583
1583
  return {
1584
1584
  name: t?.companyName || e?.name || e?.displayName || "",
1585
- addressLines: [o, s, n?.country ?? ""].filter(Boolean),
1585
+ addressLines: [o, i, n?.country ?? ""].filter(Boolean),
1586
1586
  footerLines: [
1587
1587
  r?.footerText ?? "",
1588
1588
  t?.kvkNumber ? `KvK ${t.kvkNumber}` : "",
@@ -1592,13 +1592,13 @@ function ua(e) {
1592
1592
  ...e?.logo ? { logo: e.logo } : {}
1593
1593
  };
1594
1594
  }
1595
- const Yn = 36e5, qn = 864e5, L = -1 / 0, da = (e) => e.score > L, J = {
1595
+ const Yn = 36e5, qn = 864e5, L = -1 / 0, pa = (e) => e.score > L, J = {
1596
1596
  urgent: 40,
1597
1597
  high: 25,
1598
1598
  normal: 10,
1599
1599
  low: 0
1600
1600
  };
1601
- function pa(e) {
1601
+ function fa(e) {
1602
1602
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1603
1603
  }
1604
1604
  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;
@@ -1606,7 +1606,7 @@ function Zn(e, t) {
1606
1606
  return !!(e && Qn.test(e) || t && Ot.test(t));
1607
1607
  }
1608
1608
  const Jn = 3, er = 600;
1609
- function fa(e, t) {
1609
+ function ma(e, t) {
1610
1610
  return e >= Jn || t >= er;
1611
1611
  }
1612
1612
  const tr = [
@@ -1619,7 +1619,7 @@ const tr = [
1619
1619
  "feedback-id",
1620
1620
  "x-mailer"
1621
1621
  ];
1622
- function ma(e) {
1622
+ function ha(e) {
1623
1623
  const t = {};
1624
1624
  for (const n of e) {
1625
1625
  const r = n.name?.toLowerCase();
@@ -1628,7 +1628,7 @@ function ma(e) {
1628
1628
  return t;
1629
1629
  }
1630
1630
  const nr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, rr = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1631
- function ha(e) {
1631
+ function ga(e) {
1632
1632
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1633
1633
  if (r && r !== "no" || t["x-auto-response-suppress"] || n && nr.test(n))
1634
1634
  return "automated";
@@ -1639,7 +1639,7 @@ function ha(e) {
1639
1639
  function or(e, t) {
1640
1640
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1641
1641
  }
1642
- const sr = ["open"], ir = 1e3, ar = {
1642
+ const ir = ["open"], sr = 1e3, ar = {
1643
1643
  urgent: 1,
1644
1644
  high: 4,
1645
1645
  normal: 8,
@@ -1654,7 +1654,7 @@ function ur(e, t) {
1654
1654
  function dr(e, t, n) {
1655
1655
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1656
1656
  }
1657
- const xt = (e) => un(e) === "outbound_message", Nt = (e) => sr.includes(e);
1657
+ const xt = (e) => un(e) === "outbound_message", Nt = (e) => ir.includes(e);
1658
1658
  function ve(e, t) {
1659
1659
  return Math.max(0, (t - lr(e)) / Yn);
1660
1660
  }
@@ -1662,20 +1662,20 @@ function pr(e, t) {
1662
1662
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1663
1663
  return typeof n == "number" && n > 0 ? n : ar[e.priority ?? "normal"];
1664
1664
  }
1665
- function ga(e) {
1665
+ function ya(e) {
1666
1666
  const t = {};
1667
1667
  for (const n of e)
1668
1668
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1669
1669
  return t;
1670
1670
  }
1671
- function ya(e, t, n) {
1671
+ function ba(e, t, n) {
1672
1672
  return !Nt(e.status) || e.firstResponseAt ? !1 : ve(e, t) > pr(e, n);
1673
1673
  }
1674
1674
  function fr(e, t) {
1675
1675
  const n = e.lastActivityPreview;
1676
1676
  return n?.direction !== "outbound" || !xt(n.type) ? !1 : ve(e, t) < cr;
1677
1677
  }
1678
- function ba(e, t) {
1678
+ function Aa(e, t) {
1679
1679
  if (!Nt(e.status)) return { score: L, reasons: [] };
1680
1680
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: L, reasons: [] };
1681
1681
  if (fr(e, t.now)) return { score: L, reasons: [] };
@@ -1683,25 +1683,25 @@ function ba(e, t) {
1683
1683
  let n = 0;
1684
1684
  const r = [], o = e.priority ?? "normal";
1685
1685
  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"));
1686
- const s = ve(e, t.now);
1687
- if (s > 0) {
1688
- const c = Math.min(s * 2, 30);
1689
- n += c, s >= 1 && r.push(`waiting:${Math.round(s)}h`);
1686
+ const i = ve(e, t.now);
1687
+ if (i > 0) {
1688
+ const c = Math.min(i * 2, 30);
1689
+ n += c, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
1690
1690
  }
1691
- const i = e.lastActivityPreview;
1692
- 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((c) => c === "marketing" || c === "automated") || Zn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= ir, r.push("bulk")), { score: n, reasons: r };
1691
+ const s = e.lastActivityPreview;
1692
+ 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((c) => c === "marketing" || c === "automated") || Zn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= sr, r.push("bulk")), { score: n, reasons: r };
1693
1693
  }
1694
- const Aa = (e) => !!e.assignedUserId || !!e.assignedInboxId, _a = (e) => e.status === "closed", Ea = (e) => ({
1694
+ const _a = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ea = (e) => e.status === "closed", Sa = (e) => ({
1695
1695
  urgent: 10,
1696
1696
  high: 5,
1697
1697
  normal: 2,
1698
1698
  low: 1
1699
- })[e.priority] || 0, Sa = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1700
- function Ia(e, t) {
1699
+ })[e.priority] || 0, Ia = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1700
+ function Ta(e, t) {
1701
1701
  const n = e.labels ?? [];
1702
1702
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1703
1703
  }
1704
- function Ta(e, t, n) {
1704
+ function wa(e, t, n) {
1705
1705
  const r = e.translations ?? [];
1706
1706
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
1707
1707
  }
@@ -1724,10 +1724,10 @@ function Rt(e) {
1724
1724
  const t = (e ?? "").toLowerCase();
1725
1725
  return Ze.find((n) => n.code === t) ?? Ze.find((n) => n.code === t.split("-")[0]);
1726
1726
  }
1727
- function wa(e) {
1727
+ function ka(e) {
1728
1728
  return Rt(e)?.label ?? e;
1729
1729
  }
1730
- function ka(e) {
1730
+ function Ma(e) {
1731
1731
  const t = Rt(e);
1732
1732
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1733
1733
  }
@@ -1741,13 +1741,13 @@ function mr(e, t) {
1741
1741
  }
1742
1742
  return r;
1743
1743
  }
1744
- function Ma(e, t, n) {
1744
+ function va(e, t, n) {
1745
1745
  if (!e) return !0;
1746
1746
  if (e === t) return !1;
1747
- const r = new Map(n.map((i) => [i.id, i]));
1747
+ const r = new Map(n.map((s) => [s.id, s]));
1748
1748
  if (!r.has(e) || t && hr(e, t, r)) return !1;
1749
- const o = mr(e, r), s = t ? $t(t, n) : 1;
1750
- return o + s <= Dt;
1749
+ const o = mr(e, r), i = t ? $t(t, n) : 1;
1750
+ return o + i <= Dt;
1751
1751
  }
1752
1752
  function hr(e, t, n) {
1753
1753
  const r = /* @__PURE__ */ new Set();
@@ -1769,13 +1769,13 @@ const gr = "en";
1769
1769
  function yr(e) {
1770
1770
  return e.defaultLocale || e.locale || gr;
1771
1771
  }
1772
- function va(e) {
1772
+ function Ca(e) {
1773
1773
  const t = /* @__PURE__ */ new Set(), n = [];
1774
1774
  for (const r of [yr(e), ...e.locales ?? []])
1775
1775
  !r || t.has(r) || (t.add(r), n.push(r));
1776
1776
  return n;
1777
1777
  }
1778
- function Ca(e, t, n) {
1778
+ function Oa(e, t, n) {
1779
1779
  const r = e.translations ?? [];
1780
1780
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
1781
1781
  }
@@ -1806,22 +1806,22 @@ function br(e, t) {
1806
1806
  return e.userId === t.userId;
1807
1807
  }
1808
1808
  }
1809
- function Oa(e, t) {
1809
+ function xa(e, t) {
1810
1810
  return e.filter((n) => n.enabled && br(n.ownerScope, t));
1811
1811
  }
1812
- function xa(e) {
1812
+ function Na(e) {
1813
1813
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1814
1814
  }
1815
- function Na(e) {
1815
+ function Ra(e) {
1816
1816
  return `mcp__${e}__`;
1817
1817
  }
1818
- const Ra = 1e3, Da = 2e3, $a = 500, La = 12e3, Pa = 4e3, Ar = ["contact", "company", "work_item"];
1819
- function Ka(e) {
1818
+ const Da = 1e3, $a = 2e3, La = 500, Pa = 12e3, Ka = 4e3, Ar = ["contact", "company", "work_item"];
1819
+ function Ua(e) {
1820
1820
  if (!e) return !1;
1821
1821
  const t = e.slice(0, e.indexOf(":"));
1822
1822
  return Ar.includes(t);
1823
1823
  }
1824
- const Ua = [
1824
+ const Fa = [
1825
1825
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
1826
1826
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
1827
1827
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
@@ -1841,39 +1841,39 @@ function Er(e) {
1841
1841
  const t = 1 - (e.discountPercent ?? 0) / 100;
1842
1842
  return G(e.quantity * e.unitPriceCents * t);
1843
1843
  }
1844
- function Fa(e, t, n) {
1845
- const r = e.map((l) => ({ ...l, netCents: Er(l), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1846
- for (let l = 0; l < r.length; l++) {
1847
- if (r[l].kind !== "product") continue;
1848
- const d = n ?? r[l].taxRateKey, u = o.get(d);
1849
- u ? u.push(l) : o.set(d, [l]);
1844
+ function Ba(e, t, n) {
1845
+ const r = e.map((u) => ({ ...u, netCents: Er(u), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1846
+ for (let u = 0; u < r.length; u++) {
1847
+ if (r[u].kind !== "product" || r[u].optional) continue;
1848
+ const d = n ?? r[u].taxRateKey, l = o.get(d);
1849
+ l ? l.push(u) : o.set(d, [u]);
1850
1850
  }
1851
- const s = [];
1852
- let i = 0, a = 0;
1853
- for (const [l, d] of o) {
1854
- const u = _r(l, t), p = d.reduce((m, S) => m + r[S].netCents, 0), f = G(p * u.percent / 100), y = Fn(
1851
+ const i = [];
1852
+ let s = 0, a = 0;
1853
+ for (const [u, d] of o) {
1854
+ const l = _r(u, t), p = d.reduce((m, S) => m + r[S].netCents, 0), f = G(p * l.percent / 100), y = Fn(
1855
1855
  f,
1856
1856
  d.map((m) => r[m].netCents)
1857
1857
  );
1858
1858
  for (let m = 0; m < d.length; m++) r[d[m]].taxCents = y[m];
1859
- s.push({ taxRateKey: l, netCents: p, taxCents: f }), i += p, a += f;
1859
+ i.push({ taxRateKey: u, netCents: p, taxCents: f }), s += p, a += f;
1860
1860
  }
1861
1861
  const c = r.reduce(
1862
- (l, d) => d.costPriceCents == null ? l : l + G(d.costPriceCents * d.quantity),
1862
+ (u, d) => d.costPriceCents == null || d.optional ? u : u + G(d.costPriceCents * d.quantity),
1863
1863
  0
1864
1864
  );
1865
1865
  return {
1866
1866
  lines: r,
1867
1867
  totals: {
1868
- netCents: i,
1868
+ netCents: s,
1869
1869
  taxCents: a,
1870
- grossCents: i + a,
1870
+ grossCents: s + a,
1871
1871
  costCents: c,
1872
- byRate: s
1872
+ byRate: i
1873
1873
  }
1874
1874
  };
1875
1875
  }
1876
- const Ba = "onboarding-source", ja = ["support", "billing", "availability", "sales", "onboarding"], Ha = ["keep", "replace"], Ce = [
1876
+ const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sales", "onboarding"], Ga = ["keep", "replace"], Ce = [
1877
1877
  {
1878
1878
  key: "shift",
1879
1879
  label: "kind_shift",
@@ -1965,7 +1965,7 @@ function Lt(e, t, n = Ce) {
1965
1965
  const r = N(e.kindKey, n);
1966
1966
  return r.absent ? !1 : r.productive || r.capacity;
1967
1967
  }
1968
- function Ga(e, t = Ce) {
1968
+ function Wa(e, t = Ce) {
1969
1969
  if (!e.userId || !W(e.status)) return !1;
1970
1970
  const n = N(e.kindKey, t);
1971
1971
  return n.capacity || n.productive || n.absent;
@@ -1987,8 +1987,8 @@ function Ut(e, t) {
1987
1987
  function Ft(e, t, n, r) {
1988
1988
  const o = e.filter(
1989
1989
  (a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
1990
- ), s = (a) => a.sort((c, l) => (l.effectiveFrom ?? 0) - (c.effectiveFrom ?? 0))[0], i = s(o.filter((a) => a.userId === t));
1991
- return i || s(
1990
+ ), i = (a) => a.sort((c, u) => (u.effectiveFrom ?? 0) - (c.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
1991
+ return s || i(
1992
1992
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
1993
1993
  );
1994
1994
  }
@@ -2007,34 +2007,34 @@ function ge(e, t, n, r) {
2007
2007
  return o > 0 ? o / 1e3 : 0;
2008
2008
  }
2009
2009
  const tt = { interval: 0, day: 1, week: 2 };
2010
- function Wa(e, t) {
2011
- const { entries: n, patterns: r = [], terms: o = [] } = t, s = n.filter(
2012
- (u) => u.userId && W(u.status) && N(u.kindKey).capacity
2013
- ), i = n.filter(
2014
- (u) => u.userId && W(u.status) && N(u.kindKey).absent
2010
+ function Va(e, t) {
2011
+ const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2012
+ (l) => l.userId && W(l.status) && N(l.kindKey).capacity
2013
+ ), s = n.filter(
2014
+ (l) => l.userId && W(l.status) && N(l.kindKey).absent
2015
2015
  ), a = t.userIds ?? [
2016
2016
  .../* @__PURE__ */ new Set([
2017
- ...s.map((u) => u.userId),
2018
- ...r.map((u) => u.userId),
2019
- ...o.map((u) => u.userId)
2017
+ ...i.map((l) => l.userId),
2018
+ ...r.map((l) => l.userId),
2019
+ ...o.map((l) => l.userId)
2020
2020
  ])
2021
- ].filter((u) => !!u), c = {};
2022
- let l = "interval";
2023
- const d = (u) => {
2024
- tt[u] > tt[l] && (l = u);
2021
+ ].filter((l) => !!l), c = {};
2022
+ let u = "interval";
2023
+ const d = (l) => {
2024
+ tt[l] > tt[u] && (u = l);
2025
2025
  };
2026
- for (const u of a) {
2027
- const p = t.teamIdsOf?.(u) ?? [];
2026
+ for (const l of a) {
2027
+ const p = t.teamIdsOf?.(l) ?? [];
2028
2028
  let f = 0, y = 0, m = 0;
2029
2029
  for (const h of kr(e)) {
2030
2030
  const E = Math.max(h, e.from), x = Math.min(h + he, e.to);
2031
2031
  m++;
2032
- const C = s.filter((k) => k.userId === u).reduce((k, $e) => k + ge($e.start, $e.end, E, x), 0);
2032
+ const C = i.filter((k) => k.userId === l).reduce((k, $e) => k + ge($e.start, $e.end, E, x), 0);
2033
2033
  if (C > 0) {
2034
2034
  f += C;
2035
2035
  continue;
2036
2036
  }
2037
- const M = Ft(r, u, p, h), O = M ? Kt(M, h) : 0;
2037
+ const M = Ft(r, l, p, h), O = M ? Kt(M, h) : 0;
2038
2038
  if (M && O > 0) {
2039
2039
  f += O * 60, d(Ut(M, h) ? "interval" : "day");
2040
2040
  continue;
@@ -2042,67 +2042,67 @@ function Wa(e, t) {
2042
2042
  M || y++;
2043
2043
  }
2044
2044
  if (y > 0) {
2045
- const h = wr(o, u, e.from);
2045
+ const h = wr(o, l, e.from);
2046
2046
  h && (f += h.weeklyMinutes * 60 * (y / 7), d("week"));
2047
2047
  }
2048
- const S = i.filter((h) => h.userId === u).reduce(
2048
+ const S = s.filter((h) => h.userId === l).reduce(
2049
2049
  (h, E) => h + ge(E.start, E.end, e.from, e.to),
2050
2050
  0
2051
2051
  ), g = Math.max(0, f - S);
2052
- (g > 0 || m > 0) && (c[u] = g);
2052
+ (g > 0 || m > 0) && (c[l] = g);
2053
2053
  }
2054
2054
  return {
2055
- seconds: Object.values(c).reduce((u, p) => u + p, 0),
2056
- precision: l,
2055
+ seconds: Object.values(c).reduce((l, p) => l + p, 0),
2056
+ precision: u,
2057
2057
  byUser: c
2058
2058
  };
2059
2059
  }
2060
- function Va(e, t) {
2060
+ function za(e, t) {
2061
2061
  if (!e.some((a) => a.userId)) return [];
2062
2062
  const n = "", r = /* @__PURE__ */ new Map();
2063
2063
  for (const a of e) {
2064
2064
  const c = a.userId ?? n;
2065
2065
  r.set(c, (r.get(c) ?? 0) + a.seconds);
2066
2066
  }
2067
- const s = [.../* @__PURE__ */ new Set([
2067
+ const i = [.../* @__PURE__ */ new Set([
2068
2068
  ...Object.keys(t.byUser),
2069
2069
  ...[...r.keys()].filter((a) => a !== n)
2070
2070
  ])].map((a) => {
2071
- const c = r.get(a) ?? 0, l = t.byUser[a] ?? 0;
2071
+ const c = r.get(a) ?? 0, u = t.byUser[a] ?? 0;
2072
2072
  return {
2073
2073
  userId: a,
2074
2074
  requiredSeconds: c,
2075
- capacitySeconds: l,
2076
- netSeconds: l - c
2075
+ capacitySeconds: u,
2076
+ netSeconds: u - c
2077
2077
  };
2078
2078
  });
2079
- s.sort((a, c) => a.netSeconds - c.netSeconds);
2080
- const i = r.get(n) ?? 0;
2081
- return i > 0 && s.push({ requiredSeconds: i, capacitySeconds: 0, netSeconds: -i }), s;
2079
+ i.sort((a, c) => a.netSeconds - c.netSeconds);
2080
+ const s = r.get(n) ?? 0;
2081
+ return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
2082
2082
  }
2083
- function za(e, t, n, r) {
2083
+ function Xa(e, t, n, r) {
2084
2084
  const o = e.filter(
2085
- (i) => i.userId && W(i.status) && !N(i.kindKey).absent
2086
- ), s = Object.entries(r.byUser).map(
2087
- ([i, a]) => {
2088
- let c = 0, l = 0;
2085
+ (s) => s.userId && W(s.status) && !N(s.kindKey).absent
2086
+ ), i = Object.entries(r.byUser).map(
2087
+ ([s, a]) => {
2088
+ let c = 0, u = 0;
2089
2089
  for (const d of o) {
2090
- if (d.userId !== i || N(d.kindKey).capacity && !d.workstreamId) continue;
2091
- const u = ge(d.start, d.end, n.from, n.to);
2092
- u <= 0 || (Lt(d, t) ? c += u : l += u);
2090
+ if (d.userId !== s || N(d.kindKey).capacity && !d.workstreamId) continue;
2091
+ const l = ge(d.start, d.end, n.from, n.to);
2092
+ l <= 0 || (Lt(d, t) ? c += l : u += l);
2093
2093
  }
2094
2094
  return {
2095
- userId: i,
2095
+ userId: s,
2096
2096
  capacitySeconds: a,
2097
2097
  onThisSeconds: c,
2098
- elsewhereSeconds: l,
2099
- freeSeconds: Math.max(0, a - c - l)
2098
+ elsewhereSeconds: u,
2099
+ freeSeconds: Math.max(0, a - c - u)
2100
2100
  };
2101
2101
  }
2102
2102
  );
2103
- return s.sort((i, a) => a.freeSeconds - i.freeSeconds), s;
2103
+ return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2104
2104
  }
2105
- const Xa = "demand-source", nt = 1e3;
2105
+ const Ya = "demand-source", nt = 1e3;
2106
2106
  function Mr(e, t) {
2107
2107
  let n = 1;
2108
2108
  for (let r = 1; r <= e; r++)
@@ -2126,9 +2126,9 @@ function xr(e, t, n, r) {
2126
2126
  if (e <= 0 || t <= 0) return 0;
2127
2127
  const o = Or(e, t, n);
2128
2128
  if (o <= 0) return 0;
2129
- const s = r.serviceLevelPercent / 100, i = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2129
+ const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2130
2130
  for (let a = Math.max(1, Math.ceil(o)); a <= nt; a++)
2131
- if (!(a <= o) && !(Cr(a, o, r.targetSeconds, t) < s) && !(i && o / a > i))
2131
+ if (!(a <= o) && !(Cr(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2132
2132
  return a;
2133
2133
  return nt;
2134
2134
  }
@@ -2136,7 +2136,7 @@ const Nr = 36e5, Rr = 864e5;
2136
2136
  function Dr(e) {
2137
2137
  return e === "day" ? Rr : Nr;
2138
2138
  }
2139
- function Ya(e, t) {
2139
+ function qa(e, t) {
2140
2140
  return e.start < t.end && t.start < e.end;
2141
2141
  }
2142
2142
  function ce(e, t, n) {
@@ -2146,19 +2146,19 @@ function ce(e, t, n) {
2146
2146
  function $r(e, t, n) {
2147
2147
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
2148
2148
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
2149
- const s = (t.unplannedLossPercent ?? 0) / 100, i = s > 0 && s < 1 ? 1 / (1 - s) : 1;
2149
+ const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
2150
2150
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
2151
2151
  const a = xr(e.volume, r, n, t);
2152
- return { seconds: o, headcount: a * i };
2152
+ return { seconds: o, headcount: a * s };
2153
2153
  }
2154
- return { seconds: o, headcount: o / n * i };
2154
+ return { seconds: o, headcount: o / n * s };
2155
2155
  }
2156
- function qa(e) {
2157
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: s } = e, i = e.grain ?? "hour", a = Dr(i), c = a / 1e3, l = e.kinds, d = t.filter((m) => W(m.status)), u = 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 = [];
2158
- for (let m = H(s.from, i); m < s.to; m += a) {
2159
- const S = m + a, g = j(m, i);
2156
+ function Qa(e) {
2157
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = Dr(s), c = a / 1e3, u = e.kinds, d = t.filter((m) => W(m.status)), l = d.filter((m) => Lt(m, n, u)), p = d.filter((m) => N(m.kindKey, u).capacity), f = d.filter((m) => N(m.kindKey, u).absent), y = [];
2158
+ for (let m = H(i.from, s); m < i.to; m += a) {
2159
+ const S = m + a, g = j(m, s);
2160
2160
  let h = 0;
2161
- for (const k of u) h += ce(k, m, S);
2161
+ for (const k of l) h += ce(k, m, S);
2162
2162
  let E = 0;
2163
2163
  for (const k of p) E += ce(k, m, S);
2164
2164
  let x = 0;
@@ -2181,11 +2181,11 @@ function qa(e) {
2181
2181
  function Lr(e, t) {
2182
2182
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
2183
2183
  }
2184
- function Qa(e, t, n) {
2184
+ function Za(e, t, n) {
2185
2185
  const r = Lr(e, t);
2186
2186
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
2187
2187
  }
2188
- function Za(e) {
2188
+ function Ja(e) {
2189
2189
  return e.filter(
2190
2190
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2191
2191
  );
@@ -2197,15 +2197,15 @@ function Br(e) {
2197
2197
  }
2198
2198
  function jr(e, t, n) {
2199
2199
  const r = [];
2200
- for (let s = 0; s < n; s++) {
2201
- const i = t - s * ye, a = i - ye;
2202
- let c = 0, l = !1;
2203
- for (const [d, u] of e)
2204
- d >= a && d < i && (c += u, l = !0);
2205
- l && r.push(c);
2200
+ for (let i = 0; i < n; i++) {
2201
+ const s = t - i * ye, a = s - ye;
2202
+ let c = 0, u = !1;
2203
+ for (const [d, l] of e)
2204
+ d >= a && d < s && (c += l, u = !0);
2205
+ u && r.push(c);
2206
2206
  }
2207
2207
  if (r.length < 2) return 1;
2208
- const o = r.reduce((s, i) => s + i, 0) / r.length;
2208
+ const o = r.reduce((i, s) => i + s, 0) / r.length;
2209
2209
  return o <= 0 ? 1 : Math.min(Fr, Math.max(Ur, r[0] / o));
2210
2210
  }
2211
2211
  function Hr(e, t) {
@@ -2215,30 +2215,30 @@ function Hr(e, t) {
2215
2215
  t >= r.from && t < r.to && (n = r);
2216
2216
  return n;
2217
2217
  }
2218
- function Ja(e, t, n) {
2219
- const r = Math.max(1, n?.weeks ?? Kr), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set();
2218
+ function ec(e, t, n) {
2219
+ const r = Math.max(1, n?.weeks ?? Kr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2220
2220
  for (const c of e)
2221
- o.set(Br(c.period), c.value), s.add(c.period.slice(0, 10));
2222
- const i = jr(o, H(t.from, "hour"), r), a = [];
2221
+ o.set(Br(c.period), c.value), i.add(c.period.slice(0, 10));
2222
+ const s = jr(o, H(t.from, "hour"), r), a = [];
2223
2223
  for (let c = H(t.from, "hour"); c < t.to; c += Pr) {
2224
- let l = 0, d = 0;
2224
+ let u = 0, d = 0;
2225
2225
  for (let f = 1; f <= r; f++) {
2226
- const y = c - f * ye, S = o.get(y) ?? (s.has(j(y, "day")) ? 0 : void 0);
2226
+ const y = c - f * ye, S = o.get(y) ?? (i.has(j(y, "day")) ? 0 : void 0);
2227
2227
  if (S === void 0) continue;
2228
2228
  const g = r - f + 1;
2229
- l += S * g, d += g;
2229
+ u += S * g, d += g;
2230
2230
  }
2231
- let u = d > 0 ? l / d * i : 0;
2231
+ let l = d > 0 ? u / d * s : 0;
2232
2232
  const p = Hr(n?.adjustments, c);
2233
- p?.absoluteVolume !== void 0 ? u = p.absoluteVolume : p?.factor !== void 0 && (u *= p.factor), a.push({ period: j(c, "hour"), volume: u });
2233
+ p?.absoluteVolume !== void 0 ? l = p.absoluteVolume : p?.factor !== void 0 && (l *= p.factor), a.push({ period: j(c, "hour"), volume: l });
2234
2234
  }
2235
2235
  return a;
2236
2236
  }
2237
2237
  const Gr = "schedule_entry", Wr = "workstream";
2238
- function ec(e) {
2238
+ function tc(e) {
2239
2239
  return `${Gr}:${e}`;
2240
2240
  }
2241
- function tc(e) {
2241
+ function nc(e) {
2242
2242
  return `${Wr}:${e}`;
2243
2243
  }
2244
2244
  const be = 36e5, K = 864e5;
@@ -2255,29 +2255,29 @@ function le(e, t, n, r) {
2255
2255
  const o = Math.min(t, r) - Math.max(e, n);
2256
2256
  return o > 0 ? o / 1e3 : 0;
2257
2257
  }
2258
- function nc(e, t, n = {}) {
2259
- const r = n.grain ?? "hour", o = Vr(t, r), s = r === "day" ? K : be, i = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && N(u.kindKey).capacity), c = n.userIds?.length ? new Set(n.userIds) : null, l = /* @__PURE__ */ new Set();
2260
- for (const u of a)
2261
- if (!(c && u.userId && !c.has(u.userId))) {
2258
+ function rc(e, t, n = {}) {
2259
+ const r = n.grain ?? "hour", o = Vr(t, r), i = r === "day" ? K : be, s = new Map(o.map((l) => [l, 0])), a = e.filter((l) => l.userId && N(l.kindKey).capacity), c = n.userIds?.length ? new Set(n.userIds) : null, u = /* @__PURE__ */ new Set();
2260
+ for (const l of a)
2261
+ if (!(c && l.userId && !c.has(l.userId))) {
2262
2262
  for (const p of o) {
2263
- const f = le(u.start, u.end, p, p + s);
2264
- f > 0 && i.set(p, (i.get(p) ?? 0) + f);
2263
+ const f = le(l.start, l.end, p, p + i);
2264
+ f > 0 && s.set(p, (s.get(p) ?? 0) + f);
2265
2265
  }
2266
2266
  for (const p of rt(t))
2267
- le(u.start, u.end, p, p + K) > 0 && l.add(`${u.userId}:${p}`);
2267
+ le(l.start, l.end, p, p + K) > 0 && u.add(`${l.userId}:${p}`);
2268
2268
  }
2269
2269
  const d = n.userIds ?? [
2270
2270
  .../* @__PURE__ */ new Set([
2271
- ...a.map((u) => u.userId),
2272
- ...(n.patterns ?? []).map((u) => u.userId)
2271
+ ...a.map((l) => l.userId),
2272
+ ...(n.patterns ?? []).map((l) => l.userId)
2273
2273
  ])
2274
- ].filter((u) => !!u);
2274
+ ].filter((l) => !!l);
2275
2275
  if (n.patterns?.length)
2276
- for (const u of d) {
2277
- const p = n.teamIdsOf?.(u) ?? [];
2276
+ for (const l of d) {
2277
+ const p = n.teamIdsOf?.(l) ?? [];
2278
2278
  for (const f of rt(t)) {
2279
- if (l.has(`${u}:${f}`)) continue;
2280
- const y = Ft(n.patterns, u, p, f);
2279
+ if (u.has(`${l}:${f}`)) continue;
2280
+ const y = Ft(n.patterns, l, p, f);
2281
2281
  if (!y) continue;
2282
2282
  const m = Kt(y, f);
2283
2283
  if (m <= 0) continue;
@@ -2285,18 +2285,18 @@ function nc(e, t, n = {}) {
2285
2285
  if (S) {
2286
2286
  const [E, x] = S.split(":").map(Number), C = f + E * be + (x ?? 0) * 6e4, M = C + m * 6e4;
2287
2287
  for (const O of o) {
2288
- const k = le(C, M, O, O + s);
2289
- k > 0 && i.set(O, (i.get(O) ?? 0) + k);
2288
+ const k = le(C, M, O, O + i);
2289
+ k > 0 && s.set(O, (s.get(O) ?? 0) + k);
2290
2290
  }
2291
2291
  continue;
2292
2292
  }
2293
2293
  const g = o.filter((E) => E >= f && E < f + K);
2294
2294
  if (!g.length) continue;
2295
2295
  const h = m * 60 / g.length;
2296
- for (const E of g) i.set(E, (i.get(E) ?? 0) + h);
2296
+ for (const E of g) s.set(E, (s.get(E) ?? 0) + h);
2297
2297
  }
2298
2298
  }
2299
- return o.map((u) => ({ period: j(u, r), weight: i.get(u) ?? 0 }));
2299
+ return o.map((l) => ({ period: j(l, r), weight: s.get(l) ?? 0 }));
2300
2300
  }
2301
2301
  function zr(e, t) {
2302
2302
  if (e <= 0 || !t.length) return [];
@@ -2307,17 +2307,17 @@ function zr(e, t) {
2307
2307
  }
2308
2308
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
2309
2309
  }
2310
- function rc(e, t, n) {
2310
+ function oc(e, t, n) {
2311
2311
  const r = /* @__PURE__ */ new Map();
2312
2312
  for (const o of e) {
2313
- const s = o.by ? t.filter((a) => n(a.period) < o.by) : t, i = s.length ? s : t;
2314
- for (const a of zr(o.seconds, i)) {
2315
- const c = `${a.period}|${o.userId ?? ""}`, l = r.get(c);
2316
- l ? l.seconds += a.seconds : r.set(c, { ...a, userId: o.userId });
2313
+ const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
2314
+ for (const a of zr(o.seconds, s)) {
2315
+ const c = `${a.period}|${o.userId ?? ""}`, u = r.get(c);
2316
+ u ? u.seconds += a.seconds : r.set(c, { ...a, userId: o.userId });
2317
2317
  }
2318
2318
  }
2319
2319
  return [...r.values()].sort(
2320
- (o, s) => o.period.localeCompare(s.period) || (o.userId ?? "").localeCompare(s.userId ?? "")
2320
+ (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
2321
2321
  );
2322
2322
  }
2323
2323
  function Xr(e) {
@@ -2330,7 +2330,7 @@ function Xr(e) {
2330
2330
  return "org";
2331
2331
  }
2332
2332
  }
2333
- function oc(e) {
2333
+ function ic(e) {
2334
2334
  if (typeof e != "string") return;
2335
2335
  const t = e.trim();
2336
2336
  if (t === "org") return { kind: "org" };
@@ -2359,10 +2359,10 @@ const Qr = qr;
2359
2359
  function sc(e) {
2360
2360
  return e.agentId ? { kind: "user", userId: e.agentId } : Qr(e.ownerScope);
2361
2361
  }
2362
- function ic(e) {
2362
+ function ac(e) {
2363
2363
  return Yr(e);
2364
2364
  }
2365
- function ac(e, t) {
2365
+ function cc(e, t) {
2366
2366
  if (!t) return;
2367
2367
  let n = e;
2368
2368
  for (const r of t.split(".")) {
@@ -2371,24 +2371,24 @@ function ac(e, t) {
2371
2371
  }
2372
2372
  return n;
2373
2373
  }
2374
- function cc(e, t) {
2374
+ function lc(e, t) {
2375
2375
  return e.targets.find((n) => n.activityTypes.includes(t));
2376
2376
  }
2377
- function lc(e, t) {
2377
+ function uc(e, t) {
2378
2378
  if (t)
2379
2379
  return e.targets.find((n) => n.id === t);
2380
2380
  }
2381
2381
  function Zr(e) {
2382
2382
  return e?.kind === "assignment";
2383
2383
  }
2384
- function uc(e) {
2385
- const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: s, authorUserId: i } = e;
2386
- return Zr(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";
2387
- }
2388
2384
  function dc(e) {
2385
+ const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2386
+ 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";
2387
+ }
2388
+ function pc(e) {
2389
2389
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2390
2390
  }
2391
- const pc = [
2391
+ const fc = [
2392
2392
  { name: "text", type: "string" },
2393
2393
  { name: "subject", type: "string" },
2394
2394
  { name: "from", type: "string" },
@@ -2428,7 +2428,7 @@ const pc = [
2428
2428
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
2429
2429
  // the trigger filter runs — like contactId/companyId above.
2430
2430
  { name: "assigneeUserId", type: "string" }
2431
- ], fc = {
2431
+ ], mc = {
2432
2432
  topics: [
2433
2433
  { name: "topicId", type: "string" },
2434
2434
  { name: "topic", type: "string" },
@@ -2450,48 +2450,48 @@ function to(e) {
2450
2450
  return e?.type === eo ? e.id : void 0;
2451
2451
  }
2452
2452
  const no = 64, ro = 8e3;
2453
- function mc(e) {
2453
+ function hc(e) {
2454
2454
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2455
2455
  if (!(!Number.isFinite(t) || t <= 0))
2456
2456
  return Math.min(Math.max(Math.round(t), no), ro);
2457
2457
  }
2458
- const hc = { kind: "workflow", steps: [] };
2459
- function gc(e) {
2458
+ const gc = { kind: "workflow", steps: [] };
2459
+ function yc(e) {
2460
2460
  return e?.kind === "workflow" ? e.steps : [];
2461
2461
  }
2462
- function yc(e) {
2462
+ function bc(e) {
2463
2463
  return e?.kind === "procedure" ? e.procedure : void 0;
2464
2464
  }
2465
2465
  function oo(e) {
2466
2466
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2467
2467
  return { total: n, rate: n ? t / n : 0 };
2468
2468
  }
2469
- const so = 10, io = 0.9;
2470
- function bc(e) {
2469
+ const io = 10, so = 0.9;
2470
+ function Ac(e) {
2471
2471
  const { total: t, rate: n } = oo(e);
2472
- return t >= so && n >= io;
2472
+ return t >= io && n >= so;
2473
2473
  }
2474
2474
  const ao = ["done", "escalated", "failed", "stopped"];
2475
- function Ac(e) {
2475
+ function _c(e) {
2476
2476
  return ao.includes(e);
2477
2477
  }
2478
2478
  function co(e) {
2479
2479
  return e === "waiting";
2480
2480
  }
2481
- function _c(e) {
2481
+ function Ec(e) {
2482
2482
  return e === "running" || co(e);
2483
2483
  }
2484
2484
  function Bt(e) {
2485
2485
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2486
2486
  }
2487
- function Ec(e) {
2487
+ function Sc(e) {
2488
2488
  const t = Bt(e);
2489
2489
  return t ? Jr(t) : void 0;
2490
2490
  }
2491
- function Sc(e) {
2491
+ function Ic(e) {
2492
2492
  return to(Bt(e));
2493
2493
  }
2494
- function Ic(e) {
2494
+ function Tc(e) {
2495
2495
  const t = [], n = /* @__PURE__ */ new Map();
2496
2496
  for (const r of [...e].sort(lo)) {
2497
2497
  const o = n.get(r.emoji);
@@ -2507,7 +2507,7 @@ function Ic(e) {
2507
2507
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2508
2508
  }
2509
2509
  const lo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2510
- function Tc(e, t) {
2510
+ function wc(e, t) {
2511
2511
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2512
2512
  }
2513
2513
  const Ae = 6e4, uo = 36e5, V = 864e5, jt = 800;
@@ -2529,10 +2529,10 @@ function fo(e) {
2529
2529
  function Gt(e, t) {
2530
2530
  const n = Ht(e, t), r = e + n, o = Math.floor(r / V);
2531
2531
  if (!t.days.includes(fo(o))) return null;
2532
- const s = o * V;
2532
+ const i = o * V;
2533
2533
  return {
2534
- open: s + t.fromMinutes * Ae - n,
2535
- close: s + t.toMinutes * Ae - n
2534
+ open: i + t.fromMinutes * Ae - n,
2535
+ close: i + t.toMinutes * Ae - n
2536
2536
  };
2537
2537
  }
2538
2538
  function Wt(e, t) {
@@ -2543,10 +2543,10 @@ function _e(e, t, n) {
2543
2543
  if (t <= e) return 0;
2544
2544
  if (!n) return t - e;
2545
2545
  let r = 0, o = e;
2546
- for (let s = 0; s < jt && o < t; s++) {
2547
- const i = Gt(o, n);
2548
- if (i) {
2549
- const a = Math.max(o, i.open), c = Math.min(t, i.close);
2546
+ for (let i = 0; i < jt && o < t; i++) {
2547
+ const s = Gt(o, n);
2548
+ if (s) {
2549
+ const a = Math.max(o, s.open), c = Math.min(t, s.close);
2550
2550
  c > a && (r += c - a);
2551
2551
  }
2552
2552
  o = Wt(o, n);
@@ -2556,12 +2556,12 @@ function _e(e, t, n) {
2556
2556
  function Oe(e, t, n) {
2557
2557
  if (!n) return e + t;
2558
2558
  let r = t, o = e;
2559
- for (let s = 0; s < jt; s++) {
2560
- const i = Gt(o, n);
2561
- if (i) {
2562
- const a = Math.max(o, i.open);
2563
- if (i.close > a) {
2564
- const c = i.close - a;
2559
+ for (let i = 0; i < jt; i++) {
2560
+ const s = Gt(o, n);
2561
+ if (s) {
2562
+ const a = Math.max(o, s.open);
2563
+ if (s.close > a) {
2564
+ const c = s.close - a;
2565
2565
  if (r <= c) return a + r;
2566
2566
  r -= c;
2567
2567
  }
@@ -2570,32 +2570,32 @@ function Oe(e, t, n) {
2570
2570
  }
2571
2571
  return e + t;
2572
2572
  }
2573
- function wc(e) {
2573
+ function kc(e) {
2574
2574
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
2575
2575
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
2576
2576
  }
2577
2577
  const Ee = 1, Se = 2;
2578
- function kc(e) {
2578
+ function Mc(e) {
2579
2579
  return e === "snoozed" ? Ee : Se;
2580
2580
  }
2581
2581
  function xe(e) {
2582
2582
  const t = e.calendar;
2583
2583
  return t && Array.isArray(t.days) ? t : null;
2584
2584
  }
2585
- const Mc = [
2585
+ const vc = [
2586
2586
  "speed_of_answer",
2587
2587
  "first_response",
2588
2588
  "next_response",
2589
2589
  "resolution",
2590
2590
  "close"
2591
- ], vc = ["snoozed", "waiting_for_customer"], mo = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], ho = [...Vt, "resolution", "close"];
2591
+ ], Cc = ["snoozed", "waiting_for_customer"], mo = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], ho = [...Vt, "resolution", "close"];
2592
2592
  function z(e) {
2593
2593
  return e.state === "running" || e.state === "paused";
2594
2594
  }
2595
2595
  function go(e, t) {
2596
2596
  return z(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
2597
2597
  }
2598
- function st(e) {
2598
+ function it(e) {
2599
2599
  return z(e) ? { state: "void" } : null;
2600
2600
  }
2601
2601
  function yo(e, t, n, r) {
@@ -2608,19 +2608,19 @@ function bo(e, t, n, r) {
2608
2608
  const o = e.pauseBits & ~t;
2609
2609
  return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: Oe(n, e.remainingMs, r) };
2610
2610
  }
2611
- function Cc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2612
- const s = xe(o), i = Math.min(t, n), a = r.map((g) => ({ ...g })), c = [], l = (g, h) => {
2611
+ function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2612
+ const i = xe(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), c = [], u = (g, h) => {
2613
2613
  h && (c.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
2614
2614
  }, d = (g) => {
2615
2615
  for (const h of a)
2616
- h.metric === g && l(h, go(h, i));
2617
- }, u = (g) => {
2616
+ h.metric === g && u(h, go(h, s));
2617
+ }, l = (g) => {
2618
2618
  for (const h of a)
2619
- g.includes(h.metric) && l(h, st(h));
2619
+ g.includes(h.metric) && u(h, it(h));
2620
2620
  }, p = (g) => {
2621
- for (const h of a) l(h, yo(h, g, i, s));
2621
+ for (const h of a) u(h, yo(h, g, s, i));
2622
2622
  }, f = (g) => {
2623
- for (const h of a) l(h, bo(h, g, i, s));
2623
+ for (const h of a) u(h, bo(h, g, s, i));
2624
2624
  }, y = (g) => a.reduce((h, E) => E.metric === g ? Math.max(h, E.attempt) : h, 0) + 1, m = (g) => a.some((h) => h.metric === g && z(h)), S = (g, h) => {
2625
2625
  const E = o.targets.find((C) => C.metric === g);
2626
2626
  if (!E) return;
@@ -2631,18 +2631,18 @@ function Cc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2631
2631
  attempt: y(g),
2632
2632
  startedAt: h,
2633
2633
  targetMs: x,
2634
- dueAt: Oe(h, x, s)
2634
+ dueAt: Oe(h, x, i)
2635
2635
  });
2636
2636
  };
2637
2637
  switch (e) {
2638
2638
  case "apply": {
2639
2639
  for (const g of a)
2640
- g.profileId !== o.id && l(g, st(g));
2640
+ g.profileId !== o.id && u(g, it(g));
2641
2641
  for (const g of o.targets) {
2642
2642
  if (g.metric === "next_response") continue;
2643
2643
  a.some(
2644
2644
  (E) => E.metric === g.metric && E.profileId === o.id
2645
- ) || S(g.metric, i);
2645
+ ) || S(g.metric, s);
2646
2646
  }
2647
2647
  break;
2648
2648
  }
@@ -2654,17 +2654,17 @@ function Cc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2654
2654
  break;
2655
2655
  }
2656
2656
  case "inbound": {
2657
- f(Se), !m("first_response") && !m("next_response") && S("next_response", i);
2657
+ f(Se), !m("first_response") && !m("next_response") && S("next_response", s);
2658
2658
  break;
2659
2659
  }
2660
2660
  case "resolved":
2661
2661
  d("resolution");
2662
2662
  break;
2663
2663
  case "closed":
2664
- d("close"), d("resolution"), u(Vt);
2664
+ d("close"), d("resolution"), l(Vt);
2665
2665
  break;
2666
2666
  case "reopened":
2667
- m("resolution") || S("resolution", i), m("close") || S("close", i);
2667
+ m("resolution") || S("resolution", s), m("close") || S("close", s);
2668
2668
  break;
2669
2669
  case "snoozed":
2670
2670
  o.pauseOn.includes("snoozed") && p(Ee);
@@ -2673,7 +2673,7 @@ function Cc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2673
2673
  f(Ee);
2674
2674
  break;
2675
2675
  case "discarded":
2676
- u(ho);
2676
+ l(ho);
2677
2677
  break;
2678
2678
  }
2679
2679
  return c;
@@ -2685,18 +2685,18 @@ function Ie(e, t) {
2685
2685
  const n = xe(e);
2686
2686
  return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -_e(e.dueAt, t, n) : _e(t, e.dueAt, n);
2687
2687
  }
2688
- function Oc(e, t) {
2688
+ function xc(e, t) {
2689
2689
  return e.state === "paused" ? Oe(t, e.remainingMs, xe(e)) : e.dueAt;
2690
2690
  }
2691
- function xc(e, t) {
2691
+ function Nc(e, t) {
2692
2692
  const n = e.filter(Ao);
2693
2693
  if (!n.length) return;
2694
- const r = n.filter((s) => s.state === "running");
2694
+ const r = n.filter((i) => i.state === "running");
2695
2695
  return (r.length ? r : n).reduce(
2696
- (s, i) => Ie(i, t) < Ie(s, t) ? i : s
2696
+ (i, s) => Ie(s, t) < Ie(i, t) ? s : i
2697
2697
  );
2698
2698
  }
2699
- function Nc(e, t) {
2699
+ function Rc(e, t) {
2700
2700
  if (e.state === "missed") return "breached";
2701
2701
  if (e.state === "hit") return "met";
2702
2702
  if (e.state === "paused") return "paused";
@@ -2704,7 +2704,7 @@ function Nc(e, t) {
2704
2704
  const n = Ie(e, t);
2705
2705
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
2706
2706
  }
2707
- function Rc(e) {
2707
+ function Dc(e) {
2708
2708
  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);
2709
2709
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
2710
2710
  }
@@ -2712,12 +2712,12 @@ const _o = "strategy_item";
2712
2712
  function zt(e) {
2713
2713
  return `${_o}:${e}`;
2714
2714
  }
2715
- function Dc(e, t = 25) {
2715
+ function $c(e, t = 25) {
2716
2716
  const n = /* @__PURE__ */ new Set([zt(e.id)]);
2717
2717
  for (const r of e.ancestorKeys ?? []) n.add(r);
2718
2718
  return Array.from(n).slice(0, t);
2719
2719
  }
2720
- function $c(e) {
2720
+ function Lc(e) {
2721
2721
  return e ? [...e.ancestorKeys ?? [], zt(e.id)] : [];
2722
2722
  }
2723
2723
  const ne = [
@@ -2731,14 +2731,14 @@ function Io(e, t = ne) {
2731
2731
  function Te(e, t = ne) {
2732
2732
  return Io(e, t)?.order ?? Eo;
2733
2733
  }
2734
- function Lc(e, t, n = ne) {
2734
+ function Pc(e, t, n = ne) {
2735
2735
  return Te(t, n) <= Te(e, n);
2736
2736
  }
2737
- function Pc(e, t = ne) {
2737
+ function Kc(e, t = ne) {
2738
2738
  const n = Te(e, t);
2739
- return t.filter((o) => o.order > n).sort((o, s) => o.order - s.order)[0]?.key ?? e;
2739
+ return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
2740
2740
  }
2741
- function Kc(e) {
2741
+ function Uc(e) {
2742
2742
  const t = e.trim().toLowerCase();
2743
2743
  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;
2744
2744
  }
@@ -2751,86 +2751,86 @@ const we = {
2751
2751
  achieved: "closed",
2752
2752
  missed: "closed"
2753
2753
  };
2754
- function Uc(e) {
2754
+ function Fc(e) {
2755
2755
  return we[e] ?? "open";
2756
2756
  }
2757
- function Fc(e) {
2757
+ function Bc(e) {
2758
2758
  return Object.keys(we).filter(
2759
2759
  (t) => e.includes(we[t])
2760
2760
  );
2761
2761
  }
2762
2762
  const To = 864e5, re = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2763
- function Bc(e, t) {
2763
+ function jc(e, t) {
2764
2764
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
2765
2765
  if (!Number.isFinite(t)) return 0;
2766
- const s = n === "down" ? t <= o : t >= o, i = o - r;
2767
- return (n === "down" ? i < 0 : i > 0) ? re((t - r) / i) : s ? 1 : 0;
2766
+ const i = n === "down" ? t <= o : t >= o, s = o - r;
2767
+ return (n === "down" ? s < 0 : s > 0) ? re((t - r) / s) : i ? 1 : 0;
2768
2768
  }
2769
- function jc(e, t) {
2769
+ function Hc(e, t) {
2770
2770
  const { startDate: n, targetDate: r } = e;
2771
2771
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
2772
2772
  return re((t - n) / (r - n));
2773
2773
  }
2774
2774
  const wo = 0.1, ko = 0.25;
2775
- function Hc(e, t) {
2775
+ function Gc(e, t) {
2776
2776
  if (typeof e != "number" || typeof t != "number") return;
2777
2777
  if (e >= 1) return "achieved";
2778
2778
  const n = t - e;
2779
2779
  return n >= ko ? "off_track" : n >= wo ? "at_risk" : "on_track";
2780
2780
  }
2781
- function Gc(e, t) {
2781
+ function Wc(e, t) {
2782
2782
  if (t)
2783
2783
  return re(e / t);
2784
2784
  }
2785
- function Wc(e) {
2785
+ function Vc(e) {
2786
2786
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
2787
2787
  if (t.length)
2788
2788
  return re(t.reduce((n, r) => n + r, 0) / t.length);
2789
2789
  }
2790
- function Vc(e, t) {
2790
+ function zc(e, t) {
2791
2791
  const n = e.lastCheckInAt ?? e.createdAt;
2792
2792
  if (typeof n != "number") return 0;
2793
2793
  const r = (e.checkInEveryDays ?? So) * To, o = t - n - r;
2794
2794
  return o > 0 ? o : 0;
2795
2795
  }
2796
- function zc(e) {
2796
+ function Xc(e) {
2797
2797
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
2798
2798
  }
2799
- function Xc(e, t) {
2799
+ function Yc(e, t) {
2800
2800
  const n = e.accumulatedSeconds || 0;
2801
2801
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
2802
2802
  }
2803
- function Yc(e, t) {
2803
+ function qc(e, t) {
2804
2804
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
2805
2805
  if (!t || t === "exact") return n * 60;
2806
2806
  const r = Number(t);
2807
2807
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
2808
2808
  }
2809
- function qc(e) {
2809
+ function Qc(e) {
2810
2810
  const t = Math.max(0, Math.round(e / 60));
2811
2811
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
2812
2812
  }
2813
- function Qc(e) {
2814
- 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);
2813
+ function Zc(e) {
2814
+ 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);
2815
2815
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
2816
2816
  }
2817
2817
  function Mo(e) {
2818
2818
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2819
2819
  }
2820
- function Zc(e, t) {
2820
+ function Jc(e, t) {
2821
2821
  const n = Mo(e) || "werksoort", r = new Set(t);
2822
2822
  if (!r.has(n)) return n;
2823
2823
  for (let o = 2; o < 500; o++) {
2824
- const s = `${n}-${o}`;
2825
- if (!r.has(s)) return s;
2824
+ const i = `${n}-${o}`;
2825
+ if (!r.has(i)) return i;
2826
2826
  }
2827
2827
  return `${n}-${r.size + 1}`;
2828
2828
  }
2829
- function Jc(e, t) {
2829
+ function el(e, t) {
2830
2830
  const n = e.ownerScope;
2831
2831
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
2832
2832
  }
2833
- function el(e) {
2833
+ function tl(e) {
2834
2834
  return e.filter((t) => !t.archived).sort(vo);
2835
2835
  }
2836
2836
  function vo(e, t) {
@@ -2847,25 +2847,25 @@ function xo(e) {
2847
2847
  const n = t.slice(0, ue), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
2848
2848
  return r > ue * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
2849
2849
  }
2850
- function tl(e, t) {
2850
+ function nl(e, t) {
2851
2851
  const n = xo(t.text), r = P(n);
2852
- if (!r || (e.examples ?? []).some((i) => P(i) === r)) return null;
2853
- const o = e.exampleCandidates ?? [], s = o.findIndex((i) => P(i.text) === r);
2854
- if (s >= 0) {
2855
- if (o[s].corrected || !t.corrected) return null;
2856
- const i = [...o];
2857
- return i[s] = { ...i[s], corrected: !0, addedAt: t.addedAt }, it(i);
2852
+ if (!r || (e.examples ?? []).some((s) => P(s) === r)) return null;
2853
+ const o = e.exampleCandidates ?? [], i = o.findIndex((s) => P(s.text) === r);
2854
+ if (i >= 0) {
2855
+ if (o[i].corrected || !t.corrected) return null;
2856
+ const s = [...o];
2857
+ return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, st(s);
2858
2858
  }
2859
- return it([{ ...t, text: n }, ...o]).slice(0, Oo);
2859
+ return st([{ ...t, text: n }, ...o]).slice(0, Oo);
2860
2860
  }
2861
- function it(e) {
2861
+ function st(e) {
2862
2862
  return [...e].sort(
2863
2863
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
2864
2864
  );
2865
2865
  }
2866
- function nl(e, t) {
2867
- const n = P(t), r = (e.examples ?? []).filter((s) => s.trim());
2868
- return { examples: r.some((s) => P(s) === n) ? r : [...r, t].slice(-Co), exampleCandidates: No(e, t) };
2866
+ function rl(e, t) {
2867
+ const n = P(t), r = (e.examples ?? []).filter((i) => i.trim());
2868
+ return { examples: r.some((i) => P(i) === n) ? r : [...r, t].slice(-Co), exampleCandidates: No(e, t) };
2869
2869
  }
2870
2870
  function No(e, t) {
2871
2871
  const n = P(t);
@@ -2875,7 +2875,7 @@ function Ro(e, t) {
2875
2875
  const n = e.ownerScope;
2876
2876
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
2877
2877
  }
2878
- function rl(e, t) {
2878
+ function ol(e, t) {
2879
2879
  return e.filter((n) => Ro(n, t));
2880
2880
  }
2881
2881
  const Xt = [
@@ -2917,7 +2917,7 @@ function ke(e) {
2917
2917
  statuses: ["draft"]
2918
2918
  };
2919
2919
  }
2920
- function ol(e) {
2920
+ function il(e) {
2921
2921
  return e.issuedAt != null;
2922
2922
  }
2923
2923
  const sl = [
@@ -2958,7 +2958,7 @@ function Do(e, t) {
2958
2958
  source: e.source
2959
2959
  };
2960
2960
  }
2961
- function il(e) {
2961
+ function al(e) {
2962
2962
  return {
2963
2963
  ...Do(e, e.kindKey),
2964
2964
  sourceTransactionId: e.sourceTransactionId,
@@ -2968,7 +2968,7 @@ function il(e) {
2968
2968
  totals: e.totals
2969
2969
  };
2970
2970
  }
2971
- function al(e, t = {}) {
2971
+ function cl(e, t = {}) {
2972
2972
  const n = ke(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
2973
2973
  return {
2974
2974
  customer: {
@@ -2977,7 +2977,7 @@ function al(e, t = {}) {
2977
2977
  // One token per line of the address, plus `street` on its own for a template that wants
2978
2978
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
2979
2979
  // recipient block missing its street is exactly what the issue gate has to refuse.
2980
- address: Lo(t.companyAddress),
2980
+ address: Po(t.companyAddress),
2981
2981
  street: t.companyAddress?.street ?? "",
2982
2982
  house_number: t.companyAddress?.houseNumber ?? "",
2983
2983
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3002,8 +3002,8 @@ function al(e, t = {}) {
3002
3002
  }
3003
3003
  };
3004
3004
  }
3005
- function cl(e, t = [], n = $o) {
3006
- const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((c) => c.key === a)?.percent ?? 0, s = {
3005
+ function ll(e, t = [], n = $o) {
3006
+ const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((c) => c.key === a)?.percent ?? 0, i = {
3007
3007
  block_id: "lines",
3008
3008
  type: "table",
3009
3009
  columns: [
@@ -3017,13 +3017,13 @@ function cl(e, t = [], n = $o) {
3017
3017
  // A text line spans as a heading: empty money cells would read as "free".
3018
3018
  [a.name, "", "", ""]
3019
3019
  ) : [
3020
- a.description ? `${a.name} — ${a.description}` : a.name,
3021
- Po(a.quantity),
3020
+ Lo(a.name, a.description, a.optional, n.optional),
3021
+ Ko(a.quantity),
3022
3022
  D(a.unitPriceCents),
3023
3023
  D(a.netCents)
3024
3024
  ]
3025
3025
  )
3026
- }, i = {
3026
+ }, s = {
3027
3027
  block_id: "totals",
3028
3028
  type: "totals",
3029
3029
  rows: [
@@ -3035,20 +3035,25 @@ function cl(e, t = [], n = $o) {
3035
3035
  amount: D(a.taxCents)
3036
3036
  }))
3037
3037
  };
3038
- return { lines: [s], totals: [i] };
3038
+ return { lines: [i], totals: [s] };
3039
3039
  }
3040
3040
  const $o = {
3041
3041
  description: "Omschrijving",
3042
+ optional: "optioneel",
3042
3043
  quantity: "Aantal",
3043
3044
  unitPrice: "Stuksprijs",
3044
3045
  net: "Netto",
3045
3046
  tax: "Btw",
3046
3047
  gross: "Totaal"
3047
3048
  };
3048
- function Lo(e) {
3049
- return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3049
+ function Lo(e, t, n, r) {
3050
+ const o = t ? `${e} — ${t}` : e;
3051
+ return n ? `${o} (${r})` : o;
3050
3052
  }
3051
3053
  function Po(e) {
3054
+ return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3055
+ }
3056
+ function Ko(e) {
3052
3057
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3053
3058
  }
3054
3059
  function at(e) {
@@ -3056,7 +3061,7 @@ function at(e) {
3056
3061
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3057
3062
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3058
3063
  }
3059
- const ll = [
3064
+ const ul = [
3060
3065
  {
3061
3066
  block_id: "head",
3062
3067
  type: "letterhead",
@@ -3089,39 +3094,39 @@ Hierbij onze offerte. Hieronder vindt u de specificatie.`
3089
3094
  type: "paragraph",
3090
3095
  text: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}."
3091
3096
  }
3092
- ], Ko = Xt.map((e) => e.key), Uo = "product";
3093
- function ul(e, t) {
3097
+ ], Uo = Xt.map((e) => e.key), Fo = "product";
3098
+ function dl(e, t) {
3094
3099
  return `${e}:${t}`;
3095
3100
  }
3096
- function dl(e) {
3097
- return `${Uo}:${e}`;
3098
- }
3099
3101
  function pl(e) {
3102
+ return `${Fo}:${e}`;
3103
+ }
3104
+ function fl(e) {
3100
3105
  const t = e.indexOf(":");
3101
3106
  if (t < 0) return;
3102
3107
  const n = e.slice(0, t);
3103
- return Ko.includes(n) ? e.slice(t + 1) : void 0;
3108
+ return Uo.includes(n) ? e.slice(t + 1) : void 0;
3104
3109
  }
3105
- function fl(e) {
3110
+ function ml(e) {
3106
3111
  return e.type === "agent";
3107
3112
  }
3108
- const ml = "WORK_COMMENT_ADDED", hl = "WORK_ITEM_ASSIGNED", gl = "WORK_ITEM_STATUS_CHANGED";
3109
- function Fo(e, t) {
3113
+ const hl = "WORK_COMMENT_ADDED", gl = "WORK_ITEM_ASSIGNED", yl = "WORK_ITEM_STATUS_CHANGED";
3114
+ function Bo(e, t) {
3110
3115
  const n = (r) => {
3111
3116
  const o = new Date(r);
3112
3117
  return o.setHours(0, 0, 0, 0), o.getTime();
3113
3118
  };
3114
3119
  return Math.round((n(e) - n(t)) / qn);
3115
3120
  }
3116
- function yl(e, t) {
3121
+ function bl(e, t) {
3117
3122
  if (e.closedAt != null) return { score: L, reasons: [] };
3118
3123
  const n = t.remindersById?.[e.id];
3119
3124
  if (n && n.remindAt > t.now) return { score: L, reasons: [] };
3120
3125
  let r = 0;
3121
- const o = [], s = e.priority ?? "normal";
3122
- if (J[s] > 0 && (r += J[s], o.push(`priority:${s}`)), typeof e.dueDate == "number") {
3123
- const i = Fo(e.dueDate, t.now);
3124
- i < 0 ? (r += 35, o.push("overdue")) : i === 0 && (r += 20, o.push("due-today"));
3126
+ const o = [], i = e.priority ?? "normal";
3127
+ if (J[i] > 0 && (r += J[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
3128
+ const s = Bo(e.dueDate, t.now);
3129
+ s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
3125
3130
  }
3126
3131
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
3127
3132
  }
@@ -3133,35 +3138,35 @@ const Ne = [
3133
3138
  { key: "subtask", label: "type_subtask" },
3134
3139
  { key: "case", label: "type_case" },
3135
3140
  { key: "deal", label: "type_deal" }
3136
- ], bl = Ne.map((e) => e.key);
3137
- function Al(e) {
3141
+ ], Al = Ne.map((e) => e.key);
3142
+ function _l(e) {
3138
3143
  return e?.types?.length ? e.types : Ne;
3139
3144
  }
3140
- function _l(e, t) {
3145
+ function El(e, t) {
3141
3146
  return t.find((n) => n.key === e);
3142
3147
  }
3143
- function El(e) {
3148
+ function Sl(e) {
3144
3149
  const t = e.trim().toLowerCase();
3145
3150
  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;
3146
3151
  }
3147
- function Sl(...e) {
3152
+ function Il(...e) {
3148
3153
  return e.map((t) => Ne.find((n) => n.key === t)).filter((t) => !!t);
3149
3154
  }
3150
- const Bo = "work_item", jo = "work_project", Ho = "work_activity", Il = "work_cycle";
3151
- function Go(e) {
3152
- return `${Bo}:${e}`;
3153
- }
3154
- function Yt(e) {
3155
+ const jo = "work_item", Ho = "work_project", Go = "work_activity", Tl = "work_cycle";
3156
+ function Wo(e) {
3155
3157
  return `${jo}:${e}`;
3156
3158
  }
3157
- function Tl(e) {
3159
+ function Yt(e) {
3158
3160
  return `${Ho}:${e}`;
3159
3161
  }
3160
- function wl(e, t, n) {
3162
+ function wl(e) {
3163
+ return `${Go}:${e}`;
3164
+ }
3165
+ function kl(e, t, n) {
3161
3166
  const r = `${e}-${t}`;
3162
3167
  return n ? `${r}-${n}` : r;
3163
3168
  }
3164
- function kl(e) {
3169
+ function Ml(e) {
3165
3170
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
3166
3171
  return t ? {
3167
3172
  projectKey: t[1].toUpperCase(),
@@ -3169,17 +3174,17 @@ function kl(e) {
3169
3174
  ...t[3] ? { subSequence: Number(t[3]) } : {}
3170
3175
  } : null;
3171
3176
  }
3172
- function Ml(e) {
3177
+ function vl(e) {
3173
3178
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
3174
3179
  }
3175
- function vl(e, t = 25) {
3176
- const n = /* @__PURE__ */ new Set([Go(e.id)]);
3180
+ function Cl(e, t = 25) {
3181
+ const n = /* @__PURE__ */ new Set([Wo(e.id)]);
3177
3182
  e.projectId && n.add(Yt(e.projectId));
3178
3183
  for (const r of e.ancestorKeys ?? []) n.add(r);
3179
3184
  for (const r of e.partyKeys ?? []) n.add(r);
3180
3185
  return Array.from(n).slice(0, t);
3181
3186
  }
3182
- function Cl(e) {
3187
+ function Ol(e) {
3183
3188
  return [Yt(e.id)];
3184
3189
  }
3185
3190
  const Re = [
@@ -3188,41 +3193,41 @@ const Re = [
3188
3193
  { key: "done", label: "status_done", category: "done", order: 2 },
3189
3194
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
3190
3195
  ], qt = Re.map((e) => e.key);
3191
- function Wo(e) {
3196
+ function Vo(e) {
3192
3197
  return e?.statuses?.length ? e.statuses : Re;
3193
3198
  }
3194
- function Vo(e, t) {
3199
+ function zo(e, t) {
3195
3200
  return t.find((n) => n.key === e)?.category ?? "todo";
3196
3201
  }
3197
- function Ol(e, t) {
3202
+ function xl(e, t) {
3198
3203
  return t.find((n) => n.key === e);
3199
3204
  }
3200
- function xl(e) {
3201
- const t = Wo(e), n = e?.defaultStatusKey;
3202
- return n && t.some((r) => r.key === n) ? n : zo(t)[0]?.key ?? Re[0].key;
3205
+ function Nl(e) {
3206
+ const t = Vo(e), n = e?.defaultStatusKey;
3207
+ return n && t.some((r) => r.key === n) ? n : Xo(t)[0]?.key ?? Re[0].key;
3203
3208
  }
3204
- function zo(e) {
3209
+ function Xo(e) {
3205
3210
  return [...e].sort((t, n) => {
3206
3211
  const r = (t.order ?? 0) - (n.order ?? 0);
3207
3212
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
3208
3213
  });
3209
3214
  }
3210
- function Nl(e, t) {
3211
- return Vo(e, t) === "done";
3215
+ function Rl(e, t) {
3216
+ return zo(e, t) === "done";
3212
3217
  }
3213
- function Xo(e) {
3218
+ function Yo(e) {
3214
3219
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3215
3220
  }
3216
- function Rl(e, t) {
3217
- const n = Xo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3221
+ function Dl(e, t) {
3222
+ const n = Yo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3218
3223
  if (!r.has(n)) return n;
3219
3224
  for (let o = 2; o < 500; o++) {
3220
- const s = `${n}-${o}`;
3221
- if (!r.has(s)) return s;
3225
+ const i = `${n}-${o}`;
3226
+ if (!r.has(i)) return i;
3222
3227
  }
3223
3228
  return `${n}-${r.size + 1}`;
3224
3229
  }
3225
- function Dl(e) {
3230
+ function $l(e) {
3226
3231
  const t = [];
3227
3232
  if (!e.length) return [{ index: -1, reason: "empty" }];
3228
3233
  const n = /* @__PURE__ */ new Set();
@@ -3234,13 +3239,13 @@ function Dl(e) {
3234
3239
  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);
3235
3240
  }), 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;
3236
3241
  }
3237
- function $l(e) {
3242
+ function Ll(e) {
3238
3243
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
3239
3244
  }
3240
- function Ll(e) {
3245
+ function Pl(e) {
3241
3246
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
3242
3247
  }
3243
- const Yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), qo = /* @__PURE__ */ new Set([
3248
+ const qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Qo = /* @__PURE__ */ new Set([
3244
3249
  "text/plain",
3245
3250
  "text/markdown",
3246
3251
  "text/csv",
@@ -3249,67 +3254,67 @@ const Yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
3249
3254
  "application/xml",
3250
3255
  "text/xml"
3251
3256
  ]);
3252
- function Qo(e) {
3257
+ function Zo(e) {
3253
3258
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
3254
- return t ? Yo.has(t) ? "image" : t === "application/pdf" ? "pdf" : qo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3259
+ return t ? qo.has(t) ? "image" : t === "application/pdf" ? "pdf" : Qo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3255
3260
  }
3256
- const F = 1024 * 1024, Zo = {
3261
+ const F = 1024 * 1024, Jo = {
3257
3262
  image: 5 * F,
3258
3263
  pdf: 20 * F,
3259
3264
  text: 1 * F,
3260
3265
  audio: 20 * F
3261
- }, Pl = 25 * F, Kl = 5;
3262
- function Ul(e, t) {
3263
- const n = Qo(e);
3264
- return n === "unsupported" ? "unsupported" : t > Zo[n] ? "too-large" : null;
3266
+ }, Kl = 25 * F, Ul = 5;
3267
+ function Fl(e, t) {
3268
+ const n = Zo(e);
3269
+ return n === "unsupported" ? "unsupported" : t > Jo[n] ? "too-large" : null;
3265
3270
  }
3266
- function Fl(e) {
3271
+ function Bl(e) {
3267
3272
  return e.access !== "read" && e.effect !== "internal";
3268
3273
  }
3269
- function Jo(e) {
3274
+ function ei(e) {
3270
3275
  return `${e.kind}:${e.id || e.url || e.title}`;
3271
3276
  }
3272
- function Bl(e, t = []) {
3277
+ function jl(e, t = []) {
3273
3278
  const n = new Set(t), r = [], o = [];
3274
- for (const s of e) {
3275
- const i = Jo(s);
3276
- n.has(i) || (n.add(i), r.push(s), o.push(i));
3279
+ for (const i of e) {
3280
+ const s = ei(i);
3281
+ n.has(s) || (n.add(s), r.push(i), o.push(s));
3277
3282
  }
3278
3283
  return { sources: r, keys: o };
3279
3284
  }
3280
- const jl = "assist-source", Hl = ["blocking", "due", "open"];
3281
- function Gl(e, t) {
3285
+ const Hl = "assist-source", Gl = ["blocking", "due", "open"];
3286
+ function Wl(e, t) {
3282
3287
  const [n, r] = (e.subjectKey ?? "").split(":");
3283
3288
  return n === t && r ? r : void 0;
3284
3289
  }
3285
3290
  const ct = { blocking: 0, due: 1, open: 2 };
3286
- function Wl(e, t) {
3291
+ function Vl(e, t) {
3287
3292
  return ct[e.band ?? "open"] - ct[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
3288
3293
  }
3289
- function Vl(e) {
3294
+ function zl(e) {
3290
3295
  return e.sessions.filter(
3291
3296
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
3292
3297
  );
3293
3298
  }
3294
- function zl(e) {
3299
+ function Xl(e) {
3295
3300
  return e.sessions.filter(
3296
3301
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
3297
3302
  );
3298
3303
  }
3299
- function Xl(e) {
3304
+ function Yl(e) {
3300
3305
  return e.sessions.some(
3301
3306
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
3302
3307
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
3303
3308
  }
3304
- function es(e, t) {
3305
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((i) => !n.has(i.intent)).map((i) => ns(i, r[i.intent]));
3309
+ function ti(e, t) {
3310
+ 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]));
3306
3311
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
3307
- const s = new Set(o.map((i) => i.intent));
3308
- for (const i of e.extraIntents)
3309
- s.has(i.intent) || (o.push(i), s.add(i.intent));
3312
+ const i = new Set(o.map((s) => s.intent));
3313
+ for (const s of e.extraIntents)
3314
+ i.has(s.intent) || (o.push(s), i.add(s.intent));
3310
3315
  return o;
3311
3316
  }
3312
- function ts(e, t) {
3317
+ function ni(e, t) {
3313
3318
  const n = {};
3314
3319
  for (const r of e.intents) {
3315
3320
  if (!r.togglable) continue;
@@ -3318,46 +3323,46 @@ function ts(e, t) {
3318
3323
  }
3319
3324
  return n;
3320
3325
  }
3321
- function Yl(e, t) {
3322
- const n = ts(e, t);
3326
+ function ql(e, t) {
3327
+ const n = ni(e, t);
3323
3328
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
3324
3329
  }
3325
- function ns(e, t) {
3330
+ function ri(e, t) {
3326
3331
  return t ? {
3327
3332
  intent: t.intent ?? e.intent,
3328
3333
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
3329
3334
  transport: t.transport ?? e.transport
3330
3335
  } : e;
3331
3336
  }
3332
- function ql(e, t) {
3337
+ function Ql(e, t) {
3333
3338
  const n = [];
3334
3339
  for (const r of e) {
3335
3340
  if (!r.enabled) continue;
3336
3341
  const o = t[r.providerId];
3337
3342
  if (o)
3338
- for (const s of es(r, o))
3339
- n.push({ channel: r, description: o, capability: s });
3343
+ for (const i of ti(r, o))
3344
+ n.push({ channel: r, description: o, capability: i });
3340
3345
  }
3341
3346
  return n;
3342
3347
  }
3343
- function Ql(e, t) {
3348
+ function Zl(e, t) {
3344
3349
  return t.filter((n) => n.capability.intent === e);
3345
3350
  }
3346
- function rs(e, t) {
3351
+ function oi(e, t) {
3347
3352
  return t.filter((n) => n.capability.targetSchemes.includes(e));
3348
3353
  }
3349
- function Zl(e, t) {
3350
- return rs(e.scheme, t);
3354
+ function Jl(e, t) {
3355
+ return oi(e.scheme, t);
3351
3356
  }
3352
- function Jl(e, t, n) {
3357
+ function eu(e, t, n) {
3353
3358
  const r = [];
3354
3359
  for (const o of e)
3355
- for (const s of n)
3356
- s.capability.intent === t && s.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: s, endpoint: o });
3360
+ for (const i of n)
3361
+ i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
3357
3362
  return r;
3358
3363
  }
3359
- var os = /* @__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))(os || {});
3360
- const ss = {
3364
+ 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 || {});
3365
+ const si = {
3361
3366
  mailto: "mail",
3362
3367
  sip: "tel",
3363
3368
  tel: "tel",
@@ -3378,10 +3383,10 @@ const ss = {
3378
3383
  id: "note",
3379
3384
  custom: "note"
3380
3385
  };
3381
- function eu(e) {
3382
- return e ? ss[e] ?? "note" : "note";
3386
+ function tu(e) {
3387
+ return e ? si[e] ?? "note" : "note";
3383
3388
  }
3384
- const tu = "message_window", nu = "message_templates", ru = {
3389
+ const nu = "message_window", ru = "message_templates", ou = {
3385
3390
  // E-mail
3386
3391
  FROM: "from",
3387
3392
  TO: "to",
@@ -3398,22 +3403,22 @@ const tu = "message_window", nu = "message_templates", ru = {
3398
3403
  // Voice/conference
3399
3404
  HOST: "host",
3400
3405
  PARTICIPANT: "participant"
3401
- }, ou = (e, t) => ({ intent: e, ...t }), su = "folder_management", iu = "remote_search", au = "message_reactions", cu = {
3406
+ }, iu = (e, t) => ({ intent: e, ...t }), su = "folder_management", au = "remote_search", cu = "message_reactions", lu = {
3402
3407
  ok: !1,
3403
3408
  code: "UNSUPPORTED",
3404
3409
  message: "Provider does not support this op"
3405
- }, lu = "connector", uu = "context.collect", _ = (e) => ({ type: "string", description: e }), A = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), v = _("Sheet name. Omit for the sheet the user is looking at."), lt = _("Slide id, as `inspect` reports it.");
3406
- function b(e, t, n, r, o, s) {
3410
+ }, uu = "connector", du = "context.collect", _ = (e) => ({ type: "string", description: e }), A = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), v = _("Sheet name. Omit for the sheet the user is looking at."), lt = _("Slide id, as `inspect` reports it.");
3411
+ function b(e, t, n, r, o, i) {
3407
3412
  return {
3408
3413
  op: e,
3409
3414
  kinds: t,
3410
3415
  summary: n,
3411
3416
  parameters: { type: "object", properties: r, required: o },
3412
- undoable: s.undoable,
3413
- visible: s.visible
3417
+ undoable: i.undoable,
3418
+ visible: i.visible
3414
3419
  };
3415
3420
  }
3416
- const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, is = [
3421
+ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, ai = [
3417
3422
  b(
3418
3423
  "pdf.goToPage",
3419
3424
  ["pdf"],
@@ -3508,7 +3513,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3508
3513
  ["page", "text"],
3509
3514
  ee
3510
3515
  )
3511
- ], as = [
3516
+ ], ci = [
3512
3517
  b(
3513
3518
  "sheet.setValues",
3514
3519
  ["sheet"],
@@ -3660,7 +3665,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3660
3665
  [],
3661
3666
  B
3662
3667
  )
3663
- ], cs = [
3668
+ ], li = [
3664
3669
  b(
3665
3670
  "word.replaceParagraph",
3666
3671
  ["word"],
@@ -3722,7 +3727,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3722
3727
  ["start"],
3723
3728
  B
3724
3729
  )
3725
- ], ls = [
3730
+ ], ui = [
3726
3731
  b(
3727
3732
  "slides.setText",
3728
3733
  ["slides"],
@@ -3751,53 +3756,53 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3751
3756
  ee
3752
3757
  )
3753
3758
  ], Qt = [
3754
- ...is,
3755
- ...as,
3756
- ...cs,
3757
- ...ls
3759
+ ...ai,
3760
+ ...ci,
3761
+ ...li,
3762
+ ...ui
3758
3763
  ];
3759
- function du(e) {
3764
+ function pu(e) {
3760
3765
  return Qt.filter((t) => t.kinds.includes(e));
3761
3766
  }
3762
- function pu(e) {
3767
+ function fu(e) {
3763
3768
  return Qt.find((t) => t.op === e);
3764
3769
  }
3765
- const dt = /(?: {2,}|\\)$/, us = /^\*\*([^*]+)\*\*\s+(.*)$/;
3770
+ const dt = /(?: {2,}|\\)$/, di = /^\*\*([^*]+)\*\*\s+(.*)$/;
3766
3771
  function pt(e) {
3767
- const t = us.exec(e);
3772
+ const t = di.exec(e);
3768
3773
  return t ? { lead: t[1], text: t[2] } : { text: e };
3769
3774
  }
3770
- function fu(e) {
3775
+ function mu(e) {
3771
3776
  const t = (e ?? "").replace(/\r\n/g, `
3772
3777
  `).split(`
3773
3778
  `), n = [];
3774
3779
  let r = null;
3775
3780
  const o = () => {
3776
3781
  r && n.push({ type: "list", style: r.style, items: r.items }), r = null;
3777
- }, s = (p, f) => {
3782
+ }, i = (p, f) => {
3778
3783
  r && r.style !== p && o(), r ? r.items.push(pt(f)) : r = { style: p, items: [pt(f)] };
3779
3784
  };
3780
- let i = [], a = [];
3785
+ let s = [], a = [];
3781
3786
  const c = () => {
3782
- if (i.length) {
3783
- const p = i.join("").trim();
3784
- p && n.push({ type: "paragraph", text: p }), i = [];
3787
+ if (s.length) {
3788
+ const p = s.join("").trim();
3789
+ p && n.push({ type: "paragraph", text: p }), s = [];
3785
3790
  }
3786
- }, l = () => {
3791
+ }, u = () => {
3787
3792
  a.length && (n.push({ type: "quote", text: a.join(`
3788
3793
  `) }), a = []);
3789
3794
  }, d = () => {
3790
- c(), l(), o();
3795
+ c(), u(), o();
3791
3796
  };
3792
- let u = 0;
3793
- for (; u < t.length; ) {
3794
- const p = t[u] ?? "", f = p.match(/^```(\w*)\s*$/);
3797
+ let l = 0;
3798
+ for (; l < t.length; ) {
3799
+ const p = t[l] ?? "", f = p.match(/^```(\w*)\s*$/);
3795
3800
  if (f) {
3796
3801
  d();
3797
3802
  const g = [];
3798
- for (u++; u < t.length && !/^```\s*$/.test(t[u] ?? ""); )
3799
- g.push(t[u] ?? ""), u++;
3800
- u++, n.push({ type: "code", ...f[1] ? { lang: f[1] } : {}, text: g.join(`
3803
+ for (l++; l < t.length && !/^```\s*$/.test(t[l] ?? ""); )
3804
+ g.push(t[l] ?? ""), l++;
3805
+ l++, n.push({ type: "code", ...f[1] ? { lang: f[1] } : {}, text: g.join(`
3801
3806
  `) });
3802
3807
  continue;
3803
3808
  }
@@ -3807,7 +3812,7 @@ function fu(e) {
3807
3812
  type: "heading",
3808
3813
  level: y[1].length,
3809
3814
  text: y[2].trim()
3810
- }), u++;
3815
+ }), l++;
3811
3816
  continue;
3812
3817
  }
3813
3818
  const m = p.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);
@@ -3816,57 +3821,57 @@ function fu(e) {
3816
3821
  type: "image",
3817
3822
  url: m[2],
3818
3823
  ...m[1] ? { alt: m[1] } : {}
3819
- }), u++;
3824
+ }), l++;
3820
3825
  continue;
3821
3826
  }
3822
3827
  if (/^\s*[-*]\s+/.test(p)) {
3823
- c(), l(), s("bulleted", p.replace(/^\s*[-*]\s+/, "")), u++;
3828
+ c(), u(), i("bulleted", p.replace(/^\s*[-*]\s+/, "")), l++;
3824
3829
  continue;
3825
3830
  }
3826
3831
  if (/^\s*\d+\.\s+/.test(p)) {
3827
- c(), l(), s("numbered", p.replace(/^\s*\d+\.\s+/, "")), u++;
3832
+ c(), u(), i("numbered", p.replace(/^\s*\d+\.\s+/, "")), l++;
3828
3833
  continue;
3829
3834
  }
3830
3835
  if (/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)) {
3831
- d(), n.push({ type: "divider" }), u++;
3836
+ d(), n.push({ type: "divider" }), l++;
3832
3837
  continue;
3833
3838
  }
3834
3839
  if (/^>\s?/.test(p)) {
3835
- c(), o(), a.push(p.replace(/^>\s?/, "")), u++;
3840
+ c(), o(), a.push(p.replace(/^>\s?/, "")), l++;
3836
3841
  continue;
3837
3842
  }
3838
3843
  if (p.trim() === "") {
3839
- d(), u++;
3844
+ d(), l++;
3840
3845
  continue;
3841
3846
  }
3842
- l(), o();
3847
+ u(), o();
3843
3848
  const S = dt.test(p);
3844
- i.push(p.replace(dt, "").trim() + (S ? `
3845
- ` : " ")), u++;
3849
+ s.push(p.replace(dt, "").trim() + (S ? `
3850
+ ` : " ")), l++;
3846
3851
  }
3847
3852
  return d(), n;
3848
3853
  }
3849
- function mu(e, t) {
3854
+ function hu(e, t) {
3850
3855
  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, `
3851
3856
 
3852
3857
  `).trim();
3853
3858
  }
3854
- const hu = "documents.describe", gu = "documents.inspect", yu = "documents.apply";
3855
- function bu(e) {
3859
+ const gu = "documents.describe", yu = "documents.inspect", bu = "documents.apply";
3860
+ function Au(e) {
3856
3861
  const t = e.indexOf(":");
3857
3862
  if (t !== -1) return e.slice(0, t);
3858
3863
  const n = e.indexOf(".");
3859
3864
  return n === -1 ? e : e.slice(0, n);
3860
3865
  }
3861
- const Au = "installation-id";
3862
- function _u(e) {
3866
+ const _u = "installation-id";
3867
+ function Eu(e) {
3863
3868
  const t = [];
3864
3869
  for (const n of Object.keys(e))
3865
3870
  for (const r of Object.keys(e[n]))
3866
3871
  t.push({ lang: n, key: r, value: e[n][r] });
3867
3872
  return t;
3868
3873
  }
3869
- const Eu = "notification-source", Su = (e, t) => `${e}.pref.${t}`, Iu = {
3874
+ const Su = "notification-source", Iu = (e, t) => `${e}.pref.${t}`, Tu = {
3870
3875
  ai: [
3871
3876
  "account.read",
3872
3877
  "account.write",
@@ -4001,96 +4006,96 @@ const Eu = "notification-source", Su = (e, t) => `${e}.pref.${t}`, Iu = {
4001
4006
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
4002
4007
  user: ["user.read", "user.write"],
4003
4008
  work: ["item.read", "item.write", "project.read", "project.write"]
4004
- }, Zt = 9e4, ds = ["out_of_office"], Jt = (e) => ds.includes(e);
4005
- function Tu(e, t, n) {
4009
+ }, Zt = 9e4, pi = ["out_of_office"], Jt = (e) => pi.includes(e);
4010
+ function wu(e, t, n) {
4006
4011
  const r = n - e < Zt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4007
4012
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4008
- const s = o.status;
4009
- return !r && !Jt(s) ? { online: !1, status: "offline" } : { online: r, status: s, message: o.message };
4013
+ const i = o.status;
4014
+ return !r && !Jt(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4010
4015
  }
4011
- function wu(e, t) {
4016
+ function ku(e, t) {
4012
4017
  const n = t - e.lastSeenAt < Zt, r = n || Jt(e.status) ? e.status : "offline";
4013
4018
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4014
4019
  }
4015
- function ku(e, t) {
4020
+ function Mu(e, t) {
4016
4021
  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 };
4017
4022
  }
4018
- function Mu(e) {
4023
+ function vu(e) {
4019
4024
  return e.providerAvailable && e.allowed;
4020
4025
  }
4021
- const vu = "resources.describe", Cu = "resources.search", Ou = "resources.resolve", xu = "resources.attached";
4022
- function Nu(e) {
4026
+ const Cu = "resources.describe", Ou = "resources.search", xu = "resources.resolve", Nu = "resources.attached";
4027
+ function Ru(e) {
4023
4028
  const t = e.indexOf(":");
4024
4029
  return t === -1 ? e : e.slice(0, t);
4025
4030
  }
4026
- const Ru = "/provider/scope/related", Du = "/provider/scope/read", en = "auth";
4031
+ const Du = "/provider/scope/related", $u = "/provider/scope/read", en = "auth";
4027
4032
  function tn(e) {
4028
4033
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4029
4034
  return t ? t[1] : null;
4030
4035
  }
4031
- function $u(e) {
4036
+ function Lu(e) {
4032
4037
  const t = tn(e);
4033
4038
  return t ? t !== en : typeof e == "string" && e.startsWith("/wake");
4034
4039
  }
4035
- function Lu(e) {
4040
+ function Pu(e) {
4036
4041
  return typeof e != "string" || e === "" || e === "/" ? !0 : tn(e) === en;
4037
4042
  }
4038
- function ps(e) {
4043
+ function fi(e) {
4039
4044
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4040
4045
  }
4041
- function fs(e) {
4042
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${ps(r)}`).join("");
4046
+ function mi(e) {
4047
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${fi(r)}`).join("");
4043
4048
  return new RegExp(`^${n}\\/?$`);
4044
4049
  }
4045
- function ms(e, t) {
4050
+ function hi(e, t) {
4046
4051
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
4047
- return n.forEach((s, i) => {
4048
- if (s.startsWith(":")) {
4049
- const a = s.endsWith("?") ? s.slice(1, -1) : s.slice(1), c = r[i];
4052
+ return n.forEach((i, s) => {
4053
+ if (i.startsWith(":")) {
4054
+ const a = i.endsWith("?") ? i.slice(1, -1) : i.slice(1), c = r[s];
4050
4055
  c && (o[a] = c);
4051
4056
  }
4052
4057
  }), o;
4053
4058
  }
4054
- function hs(e) {
4059
+ function gi(e) {
4055
4060
  return e.publicBasePath ?? `/apps/${e.name}`;
4056
4061
  }
4057
- function Pu(e) {
4062
+ function Ku(e) {
4058
4063
  const t = [];
4059
4064
  for (const n of e) {
4060
4065
  if (!n?.name) continue;
4061
- const r = hs(n);
4066
+ const r = gi(n);
4062
4067
  for (const o of n.routes ?? []) {
4063
4068
  if (!o.public) continue;
4064
- const s = o.path === "/" ? "" : o.path;
4069
+ const i = o.path === "/" ? "" : o.path;
4065
4070
  t.push({
4066
4071
  appName: n.name,
4067
4072
  resource: o.resource,
4068
- pattern: `${r}${s}`,
4073
+ pattern: `${r}${i}`,
4069
4074
  props: o.props
4070
4075
  });
4071
4076
  }
4072
4077
  }
4073
4078
  return t;
4074
4079
  }
4075
- function gs(e, t) {
4080
+ function yi(e, t) {
4076
4081
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
4077
4082
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
4078
- const s = n[o].startsWith(":"), i = r[o].startsWith(":");
4079
- if (s !== i) return i;
4083
+ const i = n[o].startsWith(":"), s = r[o].startsWith(":");
4084
+ if (i !== s) return s;
4080
4085
  }
4081
4086
  return n.length > r.length;
4082
4087
  }
4083
- function ys(e, t) {
4088
+ function bi(e, t) {
4084
4089
  if (typeof e != "string") return null;
4085
4090
  let n = null;
4086
4091
  for (const r of t)
4087
- fs(r.pattern).test(e) && (!n || gs(r.pattern, n.pattern)) && (n = r);
4088
- return n ? { ...n, params: { ...n.props, ...ms(n.pattern, e) } } : null;
4092
+ mi(r.pattern).test(e) && (!n || yi(r.pattern, n.pattern)) && (n = r);
4093
+ return n ? { ...n, params: { ...n.props, ...hi(n.pattern, e) } } : null;
4089
4094
  }
4090
- function Ku(e, t) {
4091
- return ys(e, t) !== null;
4095
+ function Uu(e, t) {
4096
+ return bi(e, t) !== null;
4092
4097
  }
4093
- const Uu = 10 * 1024 * 1024, Fu = 25 * 1024 * 1024, Bu = "sync-target", ju = 20, bs = {
4098
+ const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20, Ai = {
4094
4099
  afrikaans: [
4095
4100
  "[Muziek]",
4096
4101
  "(C) TV GELDERLAND 2021",
@@ -4240,14 +4245,14 @@ const Uu = 10 * 1024 * 1024, Fu = 25 * 1024 * 1024, Bu = "sync-target", ju = 20,
4240
4245
  "[MÚSICA]",
4241
4246
  "[Music cuts in British]"
4242
4247
  ]
4243
- }, As = (e) => {
4248
+ }, _i = (e) => {
4244
4249
  let t = e;
4245
- return Object.values(bs).forEach((n) => {
4250
+ return Object.values(Ai).forEach((n) => {
4246
4251
  n.forEach((r) => {
4247
4252
  t = t.replaceAll(r, "");
4248
4253
  });
4249
4254
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
4250
- }, _s = 6e4, Es = 8e3, Ss = 2, Is = 0.4, Ts = 3, ws = /* @__PURE__ */ new Set([
4255
+ }, Ei = 6e4, Si = 8e3, Ii = 2, Ti = 0.4, wi = 3, ki = /* @__PURE__ */ new Set([
4251
4256
  "aan",
4252
4257
  "als",
4253
4258
  "ben",
@@ -4360,52 +4365,52 @@ const Uu = 10 * 1024 * 1024, Fu = 25 * 1024 * 1024, Bu = "sync-target", ju = 20,
4360
4365
  "you",
4361
4366
  "your"
4362
4367
  ]);
4363
- function ks(e) {
4368
+ function Mi(e) {
4364
4369
  const t = /* @__PURE__ */ new Set();
4365
4370
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
4366
- n.length < Ts || ws.has(n) || t.add(n);
4371
+ n.length < wi || ki.has(n) || t.add(n);
4367
4372
  return [...t];
4368
4373
  }
4369
- function Ms(e, t) {
4374
+ function vi(e, t) {
4370
4375
  if (!e.length) return 0;
4371
4376
  if (!t.length) return 1;
4372
4377
  const n = new Set(t), r = new Set(e);
4373
4378
  let o = 0;
4374
- for (const s of r) n.has(s) || (o += 1);
4379
+ for (const i of r) n.has(i) || (o += 1);
4375
4380
  return o / r.size;
4376
4381
  }
4377
- function vs(e, t = _s) {
4378
- const n = e.filter((i) => !i.partial && typeof i.text == "string");
4382
+ function Ci(e, t = Ei) {
4383
+ const n = e.filter((s) => !s.partial && typeof s.text == "string");
4379
4384
  if (!n.length) return { text: "", segmentCount: 0 };
4380
- const o = n.reduce((i, a) => Math.max(i, a.endedAt ?? 0), 0) - t;
4381
- return { text: n.filter((i) => (i.endedAt ?? 0) >= o).map((i) => As(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4385
+ const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
4386
+ return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => _i(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4382
4387
  }
4383
- const Cs = 60;
4384
- function Hu(e, t, n = Cs) {
4388
+ const Oi = 60;
4389
+ function Gu(e, t, n = Oi) {
4385
4390
  const r = new Set(e), o = [...e];
4386
- for (const s of t)
4387
- !s || r.has(s) || (r.add(s), o.push(s));
4391
+ for (const i of t)
4392
+ !i || r.has(i) || (r.add(i), o.push(i));
4388
4393
  return o.slice(-n);
4389
4394
  }
4390
- function Gu(e) {
4395
+ function Wu(e) {
4391
4396
  const { segments: t, now: n, state: r } = e;
4392
- if (r.lastTriggerAt && n - r.lastTriggerAt < Es)
4397
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Si)
4393
4398
  return { trigger: !1, reason: "too_soon" };
4394
- const o = vs(t, e.windowMs);
4399
+ const o = Ci(t, e.windowMs);
4395
4400
  if (!o.text) return { trigger: !1, reason: "no_speech" };
4396
- const s = o.segmentCount - (r.lastSegmentCount ?? 0);
4397
- if (r.lastQueryTerms && s < Ss)
4401
+ const i = o.segmentCount - (r.lastSegmentCount ?? 0);
4402
+ if (r.lastQueryTerms && i < Ii)
4398
4403
  return { trigger: !1, reason: "too_few_new" };
4399
- const i = ks(o.text);
4400
- return i.length ? r.lastQueryTerms?.length && Ms(i, r.lastQueryTerms) < Is ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: i, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
4404
+ const s = Mi(o.text);
4405
+ 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" };
4401
4406
  }
4402
- const Wu = [
4407
+ const Vu = [
4403
4408
  "personal",
4404
4409
  "workspace",
4405
4410
  "connections",
4406
4411
  "work",
4407
4412
  "ai"
4408
- ], Vu = "navNotice", De = {
4413
+ ], zu = "navNotice", De = {
4409
4414
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
4410
4415
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
4411
4416
  // An over-permissive key is harmless — it simply matches nothing.
@@ -4428,7 +4433,7 @@ const Wu = [
4428
4433
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
4429
4434
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
4430
4435
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
4431
- }, Os = "NL", xs = 15, Ns = 8, Rs = Array.from(
4436
+ }, xi = "NL", Ni = 15, Ri = 8, Di = Array.from(
4432
4437
  new Set(Object.values(De).map((e) => e.callingCode))
4433
4438
  ).sort((e, t) => t.length - e.length);
4434
4439
  function ft(e) {
@@ -4439,27 +4444,27 @@ function Z(e, t) {
4439
4444
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
4440
4445
  }
4441
4446
  function mt(e) {
4442
- if (e.length > xs) return null;
4443
- for (const t of Rs) {
4447
+ if (e.length > Ni) return null;
4448
+ for (const t of Di) {
4444
4449
  if (!e.startsWith(t)) continue;
4445
4450
  const n = e.slice(t.length);
4446
4451
  for (const r of Object.values(De)) {
4447
4452
  if (r.callingCode !== t) continue;
4448
- const o = r.trunkPrefix, s = o && n.startsWith(o) ? n.slice(o.length) : n;
4449
- if (Z(s, r)) return `+${t}${s}`;
4453
+ const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
4454
+ if (Z(i, r)) return `+${t}${i}`;
4450
4455
  }
4451
4456
  return null;
4452
4457
  }
4453
- return e.length < Ns ? null : `+${e}`;
4458
+ return e.length < Ri ? null : `+${e}`;
4454
4459
  }
4455
- function Ds(e) {
4460
+ function $i(e) {
4456
4461
  let t = e.trim();
4457
4462
  const n = t.match(/^(sips?|tel|whatsapp):/i);
4458
4463
  n && (t = t.slice(n[0].length));
4459
4464
  const r = t.indexOf("@");
4460
4465
  return r >= 0 && (t = t.slice(0, r)), t.trim();
4461
4466
  }
4462
- function zu(e) {
4467
+ function Xu(e) {
4463
4468
  if (!e) return !1;
4464
4469
  const t = e.indexOf("@");
4465
4470
  if (t <= 0) return !1;
@@ -4468,26 +4473,26 @@ function zu(e) {
4468
4473
  }
4469
4474
  function ht(e, t) {
4470
4475
  if (!e) return null;
4471
- const n = Ds(e);
4476
+ const n = $i(e);
4472
4477
  if (!n) return null;
4473
4478
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
4474
4479
  if (!o) return null;
4475
4480
  if (r) return mt(o);
4476
4481
  if (o.startsWith("00")) return mt(o.slice(2));
4477
- const s = ft(t) ?? ft(Os);
4478
- if (!s) return null;
4479
- const i = s.trunkPrefix;
4480
- if (i && o.startsWith(i)) {
4481
- const a = o.slice(i.length);
4482
- return Z(a, s) ? `+${s.callingCode}${a}` : null;
4482
+ const i = ft(t) ?? ft(xi);
4483
+ if (!i) return null;
4484
+ const s = i.trunkPrefix;
4485
+ if (s && o.startsWith(s)) {
4486
+ const a = o.slice(s.length);
4487
+ return Z(a, i) ? `+${i.callingCode}${a}` : null;
4483
4488
  }
4484
- if (o.startsWith(s.callingCode)) {
4485
- const a = o.slice(s.callingCode.length);
4486
- if (Z(a, s)) return `+${s.callingCode}${a}`;
4489
+ if (o.startsWith(i.callingCode)) {
4490
+ const a = o.slice(i.callingCode.length);
4491
+ if (Z(a, i)) return `+${i.callingCode}${a}`;
4487
4492
  }
4488
- return !i && Z(o, s) ? `+${s.callingCode}${o}` : null;
4493
+ return !s && Z(o, i) ? `+${i.callingCode}${o}` : null;
4489
4494
  }
4490
- function Xu(e, t = 9) {
4495
+ function Yu(e, t = 9) {
4491
4496
  const n = (e ?? "").replace(/\D/g, "");
4492
4497
  return n.length < t ? null : n.slice(-t);
4493
4498
  }
@@ -4498,11 +4503,11 @@ function nn(e) {
4498
4503
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
4499
4504
  return !r || !o.includes(".") ? null : `${r}@${o}`;
4500
4505
  }
4501
- function Yu(e) {
4506
+ function qu(e) {
4502
4507
  const t = nn(e);
4503
4508
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
4504
4509
  }
4505
- const $s = /* @__PURE__ */ new Set([
4510
+ const Li = /* @__PURE__ */ new Set([
4506
4511
  "co.uk",
4507
4512
  "org.uk",
4508
4513
  "gov.uk",
@@ -4512,14 +4517,14 @@ const $s = /* @__PURE__ */ new Set([
4512
4517
  "com.br",
4513
4518
  "co.za"
4514
4519
  ]);
4515
- function Ls(e) {
4520
+ function Pi(e) {
4516
4521
  if (!e) return null;
4517
4522
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
4518
4523
  if (t.length < 2) return null;
4519
4524
  const n = t.slice(-2).join(".");
4520
- return $s.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4525
+ return Li.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4521
4526
  }
4522
- const Ps = /* @__PURE__ */ new Set([
4527
+ const Ki = /* @__PURE__ */ new Set([
4523
4528
  "gmail.com",
4524
4529
  "googlemail.com",
4525
4530
  "outlook.com",
@@ -4564,34 +4569,34 @@ const Ps = /* @__PURE__ */ new Set([
4564
4569
  "proximus.be",
4565
4570
  "scarlet.be"
4566
4571
  ]);
4567
- function qu(e) {
4568
- const t = Ls(e);
4569
- return t ? Ps.has(t) : !1;
4570
- }
4571
4572
  function Qu(e) {
4573
+ const t = Pi(e);
4574
+ return t ? Ki.has(t) : !1;
4575
+ }
4576
+ function Zu(e) {
4572
4577
  if (!e) return !1;
4573
4578
  const t = e.trim().toLowerCase();
4574
4579
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
4575
4580
  }
4576
- function Zu(e, t, n) {
4581
+ function Ju(e, t, n) {
4577
4582
  if (!e || !t) return null;
4578
4583
  const r = e.trim().toLowerCase();
4579
4584
  if (r === "tel" || r === "sms" || r === "whatsapp") {
4580
- const s = ht(t, n);
4581
- return s ? `tel:${s}` : null;
4585
+ const i = ht(t, n);
4586
+ return i ? `tel:${i}` : null;
4582
4587
  }
4583
4588
  if (r === "fax") {
4584
- const s = ht(t, n);
4585
- return s ? `fax:${s}` : null;
4589
+ const i = ht(t, n);
4590
+ return i ? `fax:${i}` : null;
4586
4591
  }
4587
4592
  if (r === "mailto" || r === "email") {
4588
- const s = nn(t);
4589
- return s ? `mailto:${s}` : null;
4593
+ const i = nn(t);
4594
+ return i ? `mailto:${i}` : null;
4590
4595
  }
4591
4596
  const o = t.trim().toLowerCase();
4592
4597
  return o ? `${r}:${o}` : null;
4593
4598
  }
4594
- const Ks = [
4599
+ const Ui = [
4595
4600
  /<blockquote/i,
4596
4601
  /class="?gmail_quote/i,
4597
4602
  // Gmail quote container
@@ -4604,24 +4609,24 @@ const Ks = [
4604
4609
  // Outlook underscore separator before "From:"
4605
4610
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
4606
4611
  // Gmail "On <date> <name> wrote:"
4607
- ], gt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Us = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
4608
- function Fs(e) {
4612
+ ], 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;
4613
+ function Bi(e) {
4609
4614
  const t = e.split(`
4610
4615
  `);
4611
4616
  for (let n = 0; n < t.length; n++)
4612
- if (Us.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4617
+ if (Fi.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4613
4618
  return t.slice(0, n).join(`
4614
4619
  `).trim();
4615
4620
  return e;
4616
4621
  }
4617
- const Bs = /^(?:https?:|mailto:|tel:)/i, js = /^(?:https?:|cid:|data:image\/)/i;
4622
+ const ji = /^(?:https?:|mailto:|tel:)/i, Hi = /^(?:https?:|cid:|data:image\/)/i;
4618
4623
  function de(e, t) {
4619
4624
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
4620
4625
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
4621
4626
  }
4622
- const Hs = /(!\[[^\]]*\]\([^)]*\))/;
4627
+ const Gi = /(!\[[^\]]*\]\([^)]*\))/;
4623
4628
  function yt(e) {
4624
- return e.replace(/\s+/g, " ").trim().split(Hs).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4629
+ return e.replace(/\s+/g, " ").trim().split(Gi).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4625
4630
  }
4626
4631
  function pe(e) {
4627
4632
  return e.replace(
@@ -4629,78 +4634,78 @@ function pe(e) {
4629
4634
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
4630
4635
  );
4631
4636
  }
4632
- function Gs(e) {
4637
+ function Wi(e) {
4633
4638
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
4634
4639
  const o = de(r, "src");
4635
- return js.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4640
+ return Hi.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4636
4641
  }).replace(
4637
4642
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
4638
4643
  (n, r, o) => {
4639
- const s = yt(o.replace(/<[^>]*>/g, "")), i = de(r, "href");
4640
- return Bs.test(i) ? `[${s || pe(i)}](${pe(i)})` : s;
4644
+ const i = yt(o.replace(/<[^>]*>/g, "")), s = de(r, "href");
4645
+ return ji.test(s) ? `[${i || pe(s)}](${pe(s)})` : i;
4641
4646
  }
4642
4647
  );
4643
4648
  }
4644
- const Ws = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Vs = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, zs = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4645
- function Xs(e, t) {
4649
+ 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;
4650
+ function Yi(e, t) {
4646
4651
  return /<table\b/i.test(e) || e.includes(`
4647
4652
 
4648
4653
  |`) || t.includes("![") || t.length > 200;
4649
4654
  }
4650
- const Ys = 40, qs = { left: "---", center: ":---:", right: "---:" };
4651
- function Qs(e) {
4655
+ const qi = 40, Qi = { left: "---", center: ":---:", right: "---:" };
4656
+ function Zi(e) {
4652
4657
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
4653
4658
  return t ? t[1].toLowerCase() : "left";
4654
4659
  }
4655
- function Zs(e) {
4660
+ function Ji(e) {
4656
4661
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
4657
4662
  }
4658
- function Js(e) {
4663
+ function es(e) {
4659
4664
  const t = [];
4660
- for (const i of e.matchAll(Vs)) {
4665
+ for (const s of e.matchAll(zi)) {
4661
4666
  const a = [];
4662
- for (const c of i[1].matchAll(zs)) {
4663
- const l = Zs(c[3]);
4664
- if (Xs(c[3], l)) return null;
4665
- a.push({ text: l, align: Qs(c[2]) });
4667
+ for (const c of s[1].matchAll(Xi)) {
4668
+ const u = Ji(c[3]);
4669
+ if (Yi(c[3], u)) return null;
4670
+ a.push({ text: u, align: Zi(c[2]) });
4666
4671
  }
4667
4672
  if (a.length === 0) return null;
4668
4673
  a.some((c) => c.text !== "") && t.push(a);
4669
4674
  }
4670
4675
  const n = t[0]?.length ?? 0;
4671
- if (t.length < 2 || n < 2 || t.some((i) => i.length !== n)) return null;
4672
- const r = (i) => `| ${i.map((a) => a.text).join(" | ")} |`, o = t[1].map((i) => qs[i.align]).join(" | "), s = t.slice(1).map(r).join(`
4676
+ if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
4677
+ 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(`
4673
4678
  `);
4674
4679
  return `
4675
4680
 
4676
4681
  ${r(t[0])}
4677
4682
  | ${o} |
4678
- ${s}
4683
+ ${i}
4679
4684
 
4680
4685
  `;
4681
4686
  }
4682
- function ei(e) {
4687
+ function ts(e) {
4683
4688
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
4684
4689
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
4685
4690
  }
4686
- function ti(e) {
4691
+ function ns(e) {
4687
4692
  let t = e;
4688
- for (let n = 0; n < Ys; n++) {
4689
- const r = Ws.exec(t);
4693
+ for (let n = 0; n < qi; n++) {
4694
+ const r = Vi.exec(t);
4690
4695
  if (!r || r.index === void 0) break;
4691
- const s = Js(r[1]) ?? `
4696
+ const i = es(r[1]) ?? `
4692
4697
 
4693
- ${ei(r[1])}
4698
+ ${ts(r[1])}
4694
4699
 
4695
4700
  `;
4696
- t = t.slice(0, r.index) + s + t.slice(r.index + r[0].length);
4701
+ t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
4697
4702
  }
4698
4703
  return t;
4699
4704
  }
4700
4705
  function bt(e, t) {
4701
4706
  let n = e;
4702
4707
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
4703
- `), t && (n = ti(Gs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4708
+ `), t && (n = ns(Wi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4704
4709
 
4705
4710
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
4706
4711
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -4708,7 +4713,7 @@ function bt(e, t) {
4708
4713
  function At(e) {
4709
4714
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
4710
4715
  }
4711
- const ni = {
4716
+ const rs = {
4712
4717
  euro: "€",
4713
4718
  pound: "£",
4714
4719
  yen: "¥",
@@ -4731,7 +4736,7 @@ const ni = {
4731
4736
  apos: "'"
4732
4737
  };
4733
4738
  function _t(e) {
4734
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => ni[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => At(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => At(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4739
+ 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) => At(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => At(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4735
4740
  }
4736
4741
  function Et(e) {
4737
4742
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -4739,38 +4744,38 @@ function Et(e) {
4739
4744
 
4740
4745
  `).trim();
4741
4746
  }
4742
- const ri = /<\s*(html|body|div|p|table|br|span)\b/i;
4743
- function Ju(e) {
4744
- return ri.test(e);
4745
- }
4747
+ const os = /<\s*(html|body|div|p|table|br|span)\b/i;
4746
4748
  function ed(e) {
4747
- return rn(e, !1);
4749
+ return os.test(e);
4748
4750
  }
4749
4751
  function td(e) {
4752
+ return rn(e, !1);
4753
+ }
4754
+ function nd(e) {
4750
4755
  return rn(e, !0);
4751
4756
  }
4752
4757
  function rn(e, t) {
4753
4758
  if (typeof e != "string" || !e) return "";
4754
4759
  let n = e.length;
4755
- for (const i of Ks) {
4756
- const a = e.search(i);
4760
+ for (const s of Ui) {
4761
+ const a = e.search(s);
4757
4762
  a >= 0 && a < n && (n = a);
4758
4763
  }
4759
4764
  const r = e.slice(0, n);
4760
4765
  let o = Et(_t(bt(r, t)));
4761
- return o || (o = Et(_t(bt(e, t)))), Fs(o) || o;
4766
+ return o || (o = Et(_t(bt(e, t)))), Bi(o) || o;
4762
4767
  }
4763
4768
  export {
4764
- Vi as ACTIVE_ASSIGNMENT_STATUSES,
4769
+ zs as ACTIVE_ASSIGNMENT_STATUSES,
4765
4770
  R as ACTIVITY_CATALOG,
4766
- Zo as AI_ATTACHMENT_LIMITS,
4767
- Kl as AI_ATTACHMENT_MAX_PER_TURN,
4768
- Pl as AI_ATTACHMENT_TURN_BUDGET,
4771
+ Jo as AI_ATTACHMENT_LIMITS,
4772
+ Ul as AI_ATTACHMENT_MAX_PER_TURN,
4773
+ Kl as AI_ATTACHMENT_TURN_BUDGET,
4769
4774
  Tt as AI_VENDORS,
4770
4775
  kn as ALLOWED_LINK_SCHEMES,
4771
- Iu as APP_PERMISSIONS,
4776
+ Tu as APP_PERMISSIONS,
4772
4777
  He as ARTIFACT_MAX_BLOCKS,
4773
- Ui as ARTIFACT_MAX_BODY_BYTES,
4778
+ Fs as ARTIFACT_MAX_BODY_BYTES,
4774
4779
  q as ARTIFACT_MAX_CELL_LEN,
4775
4780
  ze as ARTIFACT_MAX_KPI_ITEMS,
4776
4781
  Ge as ARTIFACT_MAX_LIST_ITEMS,
@@ -4778,37 +4783,37 @@ export {
4778
4783
  We as ARTIFACT_MAX_TABLE_ROWS,
4779
4784
  kt as ARTIFACT_MAX_TEXT_LEN,
4780
4785
  Ln as ASSIGNMENT_SCOPE_KIND,
4781
- Hl as ASSIST_BANDS,
4782
- jl as ASSIST_SOURCE_PROVIDER_GROUP,
4783
- sr as ATTENTION_STATUSES,
4786
+ Gl as ASSIST_BANDS,
4787
+ Hl as ASSIST_SOURCE_PROVIDER_GROUP,
4788
+ ir as ATTENTION_STATUSES,
4784
4789
  wo as AT_RISK_GAP,
4785
4790
  en as AUTH_APP_NAME,
4786
- so as AUTO_READY_MIN_PROPOSALS,
4787
- io as AUTO_READY_RATE,
4791
+ io as AUTO_READY_MIN_PROPOSALS,
4792
+ so as AUTO_READY_RATE,
4788
4793
  hn as ActivityTypeRegistry,
4789
- Ei as BUILT_IN_ONLY,
4790
- ir as BULK_PENALTY,
4791
- Es as CADENCE_FLOOR_MS,
4792
- Ss as CADENCE_MIN_NEW_SEGMENTS,
4793
- Is as CADENCE_MIN_NOVELTY,
4794
- _s as CADENCE_WINDOW_MS,
4795
- fc as CLASSIFY_VARS,
4796
- lu as CONNECTOR_PROVIDER_GROUP,
4797
- uu as CONTEXT_COLLECT_SERVICE,
4798
- Ri as CORE_DIMENSIONS,
4799
- os as CommunicationScheme,
4794
+ Ss as BUILT_IN_ONLY,
4795
+ sr as BULK_PENALTY,
4796
+ Si as CADENCE_FLOOR_MS,
4797
+ Ii as CADENCE_MIN_NEW_SEGMENTS,
4798
+ Ti as CADENCE_MIN_NOVELTY,
4799
+ Ei as CADENCE_WINDOW_MS,
4800
+ mc as CLASSIFY_VARS,
4801
+ uu as CONNECTOR_PROVIDER_GROUP,
4802
+ du as CONTEXT_COLLECT_SERVICE,
4803
+ Ds as CORE_DIMENSIONS,
4804
+ ii as CommunicationScheme,
4800
4805
  qn as DAY_MS,
4801
4806
  So as DEFAULT_CHECK_IN_DAYS,
4802
4807
  Kr as DEFAULT_FORECAST_WEEKS,
4803
- Pa as DEFAULT_MEMORY_BUDGET,
4804
- Os as DEFAULT_PHONE_REGION,
4805
- ll as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4806
- Xa as DEMAND_SOURCE_PROVIDER_GROUP,
4807
- yu as DOCUMENT_APPLY_SERVICE,
4808
- hu as DOCUMENT_DESCRIBE_SERVICE,
4809
- gu as DOCUMENT_INSPECT_SERVICE,
4808
+ Ka as DEFAULT_MEMORY_BUDGET,
4809
+ xi as DEFAULT_PHONE_REGION,
4810
+ ul as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4811
+ Ya as DEMAND_SOURCE_PROVIDER_GROUP,
4812
+ bu as DOCUMENT_APPLY_SERVICE,
4813
+ gu as DOCUMENT_DESCRIBE_SERVICE,
4814
+ yu as DOCUMENT_INSPECT_SERVICE,
4810
4815
  He as DOCUMENT_MAX_BLOCKS,
4811
- Ui as DOCUMENT_MAX_BODY_BYTES,
4816
+ Fs as DOCUMENT_MAX_BODY_BYTES,
4812
4817
  q as DOCUMENT_MAX_CELL_LEN,
4813
4818
  ze as DOCUMENT_MAX_KPI_ITEMS,
4814
4819
  Xe as DOCUMENT_MAX_LETTERHEAD_FIELDS,
@@ -4820,419 +4825,419 @@ export {
4820
4825
  Ye as DOCUMENT_MAX_TOTALS_ROWS,
4821
4826
  Qt as DOCUMENT_OPERATIONS,
4822
4827
  $o as DUTCH_SLOT_LABELS,
4823
- hc as EMPTY_WORKFLOW,
4828
+ gc as EMPTY_WORKFLOW,
4824
4829
  su as FEATURE_FOLDER_MANAGEMENT,
4825
- au as FEATURE_MESSAGE_REACTIONS,
4826
- iu as FEATURE_REMOTE_SEARCH,
4830
+ cu as FEATURE_MESSAGE_REACTIONS,
4831
+ au as FEATURE_REMOTE_SEARCH,
4827
4832
  Ce as FIXED_KINDS,
4828
4833
  ne as FIXED_LEVELS,
4829
4834
  Ne as FIXED_TYPES,
4830
- ra as FIXED_UNITS,
4835
+ oa as FIXED_UNITS,
4831
4836
  cr as FOLLOW_UP_HOURS,
4832
4837
  sl as FROZEN_WRITABLE_FIELDS,
4833
4838
  Yn as HOUR_MS,
4834
- ri as HTML_BODY_RE,
4839
+ os as HTML_BODY_RE,
4835
4840
  L as INELIGIBLE,
4836
- Au as INSTALLATION_HEADER,
4841
+ _u as INSTALLATION_HEADER,
4837
4842
  eo as INTERACTION_KIND,
4838
- ru as InteractionParticipantRole,
4843
+ ou as InteractionParticipantRole,
4839
4844
  gr as KB_FALLBACK_LOCALE,
4840
4845
  Ze as KB_LOCALES,
4841
4846
  Ze as LOCALES,
4842
4847
  Re as LOOSE_STATUSES,
4843
4848
  tr as MAIL_HINT_HEADERS,
4844
- ai as MAX_ACTIONS,
4849
+ cs as MAX_ACTIONS,
4845
4850
  Pn as MAX_ASSIGNMENT_TURNS,
4846
- oi as MAX_BLOCKS,
4851
+ is as MAX_BLOCKS,
4847
4852
  Dt as MAX_COLLECTION_DEPTH,
4848
- Uu as MAX_EDITABLE_FILE_BYTES,
4849
- si as MAX_FIELDS,
4850
- ii as MAX_LIST_ITEMS,
4851
- Ra as MAX_MEMORY_BROWSE,
4852
- La as MAX_MEMORY_BUDGET,
4853
- Da as MAX_MEMORY_CHARS,
4854
- Cs as MAX_SHOWN_KEYS,
4853
+ Fu as MAX_EDITABLE_FILE_BYTES,
4854
+ ss as MAX_FIELDS,
4855
+ as as MAX_LIST_ITEMS,
4856
+ Da as MAX_MEMORY_BROWSE,
4857
+ Pa as MAX_MEMORY_BUDGET,
4858
+ $a as MAX_MEMORY_CHARS,
4859
+ Oi as MAX_SHOWN_KEYS,
4855
4860
  Oo as MAX_TOPIC_CANDIDATES,
4856
4861
  Co as MAX_TOPIC_EXAMPLES,
4857
4862
  ue as MAX_TOPIC_EXAMPLE_CHARS,
4858
- Fu as MAX_VIEWABLE_FILE_BYTES,
4859
- $a as MIN_MEMORY_BUDGET,
4860
- Vu as NAV_NOTICE_SLOT,
4861
- Ua as NL_TAX_RATES,
4862
- Eu as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4863
+ Bu as MAX_VIEWABLE_FILE_BYTES,
4864
+ La as MIN_MEMORY_BUDGET,
4865
+ zu as NAV_NOTICE_SLOT,
4866
+ Fa as NL_TAX_RATES,
4867
+ Su as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4863
4868
  ko as OFF_TRACK_GAP,
4864
- Ba as ONBOARDING_SOURCE_PROVIDER_GROUP,
4869
+ ja as ONBOARDING_SOURCE_PROVIDER_GROUP,
4865
4870
  Ee as PAUSE_SNOOZED,
4866
4871
  Se as PAUSE_WAITING_FOR_CUSTOMER,
4867
4872
  De as PHONE_REGIONS,
4868
4873
  Zt as PRESENCE_ONLINE_WINDOW_MS,
4869
- ds as PRESENCE_SURVIVES_OFFLINE,
4870
- Uo as PRODUCT_SCOPE_KIND,
4871
- Ha as PROFILE_TOOL_DISPOSITIONS,
4872
- nu as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4873
- tu as PROVIDER_FEATURE_MESSAGE_WINDOW,
4874
- Ps as PUBLIC_EMAIL_DOMAINS,
4874
+ pi as PRESENCE_SURVIVES_OFFLINE,
4875
+ Fo as PRODUCT_SCOPE_KIND,
4876
+ Ga as PROFILE_TOOL_DISPOSITIONS,
4877
+ ru as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4878
+ nu as PROVIDER_FEATURE_MESSAGE_WINDOW,
4879
+ Ki as PUBLIC_EMAIL_DOMAINS,
4875
4880
  Je as READ_STEP_TYPES,
4876
4881
  Ar as RELATED_SUBJECT_KINDS,
4877
4882
  qt as RESERVED_STATUS_KEYS,
4878
- bl as RESERVED_TYPE_KEYS,
4879
- xu as RESOURCE_ATTACHED_SERVICE,
4880
- vu as RESOURCE_DESCRIBE_SERVICE,
4881
- Ou as RESOURCE_RESOLVE_SERVICE,
4882
- Cu as RESOURCE_SEARCH_SERVICE,
4883
+ Al as RESERVED_TYPE_KEYS,
4884
+ Nu as RESOURCE_ATTACHED_SERVICE,
4885
+ Cu as RESOURCE_DESCRIBE_SERVICE,
4886
+ xu as RESOURCE_RESOLVE_SERVICE,
4887
+ Ou as RESOURCE_SEARCH_SERVICE,
4883
4888
  Gr as SCHEDULE_ENTRY_SCOPE_KIND,
4884
- Du as SCOPE_READ_ROUTE,
4885
- Ru as SCOPE_RELATED_ROUTE,
4886
- Wu as SETTINGS_CATEGORIES,
4887
- oa as SIGNATURE_INTENTS,
4889
+ $u as SCOPE_READ_ROUTE,
4890
+ Du as SCOPE_RELATED_ROUTE,
4891
+ Vu as SETTINGS_CATEGORIES,
4892
+ ia as SIGNATURE_INTENTS,
4888
4893
  ar as SLA_HOURS_BY_PRIORITY,
4889
- Mc as SLA_METRICS,
4890
- vc as SLA_PAUSE_REASONS,
4894
+ vc as SLA_METRICS,
4895
+ Cc as SLA_PAUSE_REASONS,
4891
4896
  ro as STEP_MAX_TOKENS_MAX,
4892
4897
  no as STEP_MAX_TOKENS_MIN,
4893
4898
  _o as STRATEGY_ITEM_SCOPE_KIND,
4894
4899
  er as SUMMARY_MIN_LAST_CHARS,
4895
4900
  Jn as SUMMARY_MIN_MESSAGES,
4896
- ju as SYNC_RUN_MAX_ERRORS,
4897
- Bu as SYNC_TARGET_PROVIDER_GROUP,
4901
+ Hu as SYNC_RUN_MAX_ERRORS,
4902
+ ju as SYNC_TARGET_PROVIDER_GROUP,
4898
4903
  $n as TERMINAL_ASSIGNMENT_STATUSES,
4899
4904
  ao as TERMINAL_RUN_STATUSES,
4900
4905
  Xt as TRANSACTION_KINDS,
4901
- Ko as TRANSACTION_SCOPE_KINDS,
4902
- pc as TRIGGER_VARS,
4906
+ Uo as TRANSACTION_SCOPE_KINDS,
4907
+ fc as TRIGGER_VARS,
4903
4908
  Sr as UNKNOWN_KIND,
4904
4909
  Eo as UNKNOWN_LEVEL_ORDER,
4905
- cu as UNSUPPORTED,
4910
+ lu as UNSUPPORTED,
4906
4911
  En as USAGE_DIMENSIONS,
4907
4912
  Sn as USAGE_DIMENSION_IDS,
4908
4913
  Wr as WORKSTREAM_SCOPE_KIND,
4909
- Ho as WORK_ACTIVITY_SCOPE_KIND,
4910
- ja as WORK_AREAS,
4911
- ml as WORK_COMMENT_ADDED,
4912
- Il as WORK_CYCLE_SYNC_KIND,
4913
- hl as WORK_ITEM_ASSIGNED,
4914
- Bo as WORK_ITEM_SCOPE_KIND,
4915
- gl as WORK_ITEM_STATUS_CHANGED,
4916
- jo as WORK_PROJECT_SCOPE_KIND,
4914
+ Go as WORK_ACTIVITY_SCOPE_KIND,
4915
+ Ha as WORK_AREAS,
4916
+ hl as WORK_COMMENT_ADDED,
4917
+ Tl as WORK_CYCLE_SYNC_KIND,
4918
+ gl as WORK_ITEM_ASSIGNED,
4919
+ jo as WORK_ITEM_SCOPE_KIND,
4920
+ yl as WORK_ITEM_STATUS_CHANGED,
4921
+ Ho as WORK_PROJECT_SCOPE_KIND,
4917
4922
  J as W_PRIORITY,
4918
- nl as acceptExampleCandidate,
4923
+ rl as acceptExampleCandidate,
4919
4924
  Yr as actingIdentityKey,
4920
- el as activeWorkTypes,
4921
- li as activityIconOf,
4922
- Ai as activityJoinUrl,
4925
+ tl as activeWorkTypes,
4926
+ us as activityIconOf,
4927
+ _s as activityJoinUrl,
4923
4928
  dn as activitySnippet,
4924
4929
  pn as activityTextParams,
4925
- bi as activityTimelineText,
4930
+ As as activityTimelineText,
4926
4931
  gn as activityTimestamp,
4927
4932
  w as activityTypeInfo,
4928
- ic as actorKey,
4929
- tl as addExampleCandidate,
4933
+ ac as actorKey,
4934
+ nl as addExampleCandidate,
4930
4935
  Oe as addWorkingMs,
4931
- wu as agePresenceEntry,
4932
- Qo as aiAttachmentKind,
4933
- Ul as aiAttachmentRejection,
4936
+ ku as agePresenceEntry,
4937
+ Zo as aiAttachmentKind,
4938
+ Fl as aiAttachmentRejection,
4934
4939
  je as aiBudgetLimit,
4935
- xi as aiBudgetPeriodKey,
4940
+ Ns as aiBudgetPeriodKey,
4936
4941
  yn as aiBudgetPeriodStart,
4937
- Oi as aiBudgetState,
4938
- Ci as aiVendorAcceptsAttachment,
4939
- ki as aiVendorDefaultModel,
4940
- wi as aiVendorLabel,
4941
- vi as aiVendorNeedsBaseUrl,
4942
- Mi as aiVendorsWith,
4942
+ xs as aiBudgetState,
4943
+ Os as aiVendorAcceptsAttachment,
4944
+ Ms as aiVendorDefaultModel,
4945
+ ks as aiVendorLabel,
4946
+ Cs as aiVendorNeedsBaseUrl,
4947
+ vs as aiVendorsWith,
4943
4948
  Fn as allocate,
4944
4949
  tn as appNameFromPath,
4945
- Yc as applyRounding,
4950
+ qc as applyRounding,
4946
4951
  sa as applySignature,
4947
4952
  oo as approvalRate,
4948
- Bi as artifactBodyBytes,
4949
- ji as artifactOutline,
4953
+ js as artifactBodyBytes,
4954
+ Hs as artifactOutline,
4950
4955
  Dn as artifactToMarkdown,
4951
- uc as assignmentMismatch,
4952
- Xi as assignmentScopeKey,
4953
- Qi as assignmentSubject,
4954
- za as availabilityByPerson,
4955
- Ga as belongsOnCalendar,
4956
- _i as buildActivityPreview,
4957
- ql as buildChannelIntents,
4958
- Hi as buildShareKeys,
4959
- vs as buildWindow,
4956
+ dc as assignmentMismatch,
4957
+ Ys as assignmentScopeKey,
4958
+ Zs as assignmentSubject,
4959
+ Xa as availabilityByPerson,
4960
+ Wa as belongsOnCalendar,
4961
+ Es as buildActivityPreview,
4962
+ Ql as buildChannelIntents,
4963
+ Gs as buildShareKeys,
4964
+ Ci as buildWindow,
4960
4965
  Tr as calendarDaysBetween,
4961
4966
  xe as calendarOf,
4962
- Ma as canNestUnder,
4963
- Lc as canParent,
4964
- Wa as capacityTotal,
4965
- nc as capacityWeights,
4966
- mi as carriesText,
4967
- Ca as categoryLabel,
4968
- Vo as categoryOf,
4969
- eu as channelKindForScheme,
4970
- ui as channelKindOf,
4971
- Vc as checkInOverdueMs,
4972
- mc as clampStepMaxTokens,
4973
- ha as classifyMail,
4974
- td as cleanMessageMarkdown,
4975
- ed as cleanMessageText,
4976
- Ji as codeQuery,
4977
- Wl as compareAssistRank,
4967
+ va as canNestUnder,
4968
+ Pc as canParent,
4969
+ Va as capacityTotal,
4970
+ rc as capacityWeights,
4971
+ hs as carriesText,
4972
+ Oa as categoryLabel,
4973
+ zo as categoryOf,
4974
+ tu as channelKindForScheme,
4975
+ ds as channelKindOf,
4976
+ zc as checkInOverdueMs,
4977
+ hc as clampStepMaxTokens,
4978
+ ga as classifyMail,
4979
+ nd as cleanMessageMarkdown,
4980
+ td as cleanMessageText,
4981
+ ea as codeQuery,
4982
+ Vl as compareAssistRank,
4978
4983
  vo as compareWorkTypes,
4979
4984
  Xn as conditionHolds,
4980
4985
  Do as copyFrom,
4981
4986
  W as countsAsPlanned,
4982
- Va as coverageByPerson,
4983
- qa as coverageFor,
4987
+ za as coverageByPerson,
4988
+ Qa as coverageFor,
4984
4989
  Lt as coversWorkstream,
4985
4990
  Pt as cycleDayIndex,
4986
- $l as cycleOrder,
4987
- Ll as cycleState,
4988
- Zi as decideAssignmentState,
4989
- Gu as decideCadence,
4990
- Xl as decideIncomingCall,
4991
+ Ll as cycleOrder,
4992
+ Pl as cycleState,
4993
+ Js as decideAssignmentState,
4994
+ Wu as decideCadence,
4995
+ Yl as decideIncomingCall,
4991
4996
  yr as defaultLocaleOf,
4992
- xl as defaultStatusKey,
4993
- ou as defineIntent,
4997
+ Nl as defaultStatusKey,
4998
+ iu as defineIntent,
4994
4999
  mr as depthOf,
4995
- Tu as derivePresence,
4996
- Li as describeClause,
4997
- Yl as disabledIntentsFromCapabilities,
4998
- Bi as documentBodyBytes,
4999
- bu as documentKindOf,
5000
- ji as documentOutline,
5000
+ wu as derivePresence,
5001
+ Ps as describeClause,
5002
+ ql as disabledIntentsFromCapabilities,
5003
+ js as documentBodyBytes,
5004
+ Au as documentKindOf,
5005
+ Hs as documentOutline,
5001
5006
  Dn as documentToMarkdown,
5002
- mu as documentToText,
5003
- Oc as dueAtOf,
5004
- Xc as elapsedSeconds,
5005
- Yu as emailDomain,
5006
- Zu as endpointKey,
5007
+ hu as documentToText,
5008
+ xc as dueAtOf,
5009
+ Yc as elapsedSeconds,
5010
+ qu as emailDomain,
5011
+ Ju as endpointKey,
5007
5012
  vr as erlangC,
5008
- ms as extractParams,
5009
- ks as extractTerms,
5010
- la as fillDocument,
5013
+ hi as extractParams,
5014
+ Mi as extractTerms,
5015
+ ua as fillDocument,
5011
5016
  zn as fillText,
5012
- Zl as filterByEndpoint,
5013
- Ql as filterByIntent,
5014
- rs as filterByTargetScheme,
5015
- $i as filterableDimensions,
5017
+ Jl as filterByEndpoint,
5018
+ Zl as filterByIntent,
5019
+ oi as filterByTargetScheme,
5020
+ Ls as filterableDimensions,
5016
5021
  te as findAiVendor,
5017
- Kc as fixedLevelForName,
5018
- El as fixedTypeForName,
5019
- Sl as fixedTypes,
5020
- _u as flattenLocales,
5022
+ Uc as fixedLevelForName,
5023
+ Sl as fixedTypeForName,
5024
+ Il as fixedTypes,
5025
+ Eu as flattenLocales,
5021
5026
  H as floorToPeriod,
5022
- Ja as forecastIntervals,
5027
+ ec as forecastIntervals,
5023
5028
  Xr as formatActingIdentity,
5024
5029
  D as formatCents,
5025
- Qc as formatClock,
5026
- qc as formatHm,
5027
- wl as formatItemKey,
5030
+ Zc as formatClock,
5031
+ Qc as formatHm,
5032
+ kl as formatItemKey,
5028
5033
  j as formatPeriod,
5029
- Rc as formatSlaDuration,
5030
- Bl as freshSources,
5031
- Si as getActivitySeenUserIds,
5032
- ia as getContactEndpoints,
5033
- Sa as getShortTitle,
5034
- Ea as getUrgencyScore,
5035
- Tc as hasReacted,
5036
- Uc as healthCategory,
5037
- Fc as healthsInCategory,
5034
+ Dc as formatSlaDuration,
5035
+ jl as freshSources,
5036
+ Is as getActivitySeenUserIds,
5037
+ aa as getContactEndpoints,
5038
+ Ia as getShortTitle,
5039
+ Sa as getUrgencyScore,
5040
+ wc as hasReacted,
5041
+ Fc as healthCategory,
5042
+ Bc as healthsInCategory,
5038
5043
  $t as heightOf,
5039
- Ta as helpCenterText,
5040
- dc as humanizeAction,
5044
+ wa as helpCenterText,
5045
+ pc as humanizeAction,
5041
5046
  to as interactionIdOf,
5042
- fl as isAgentUser,
5043
- Aa as isAssigned,
5044
- zi as isAssignmentTerminal,
5047
+ ml as isAgentUser,
5048
+ _a as isAssigned,
5049
+ Xs as isAssignmentTerminal,
5045
5050
  Zr as isAssignmentTrigger,
5046
- bc as isAutoReady,
5051
+ Ac as isAutoReady,
5047
5052
  fr as isAwaitingThem,
5048
- Ti as isChatMessageActivity,
5049
- _a as isClosed,
5050
- gi as isConnectedType,
5051
- $u as isDeepLink,
5053
+ ws as isChatMessageActivity,
5054
+ Ea as isClosed,
5055
+ ys as isConnectedType,
5056
+ Lu as isDeepLink,
5052
5057
  hr as isDescendant,
5053
- da as isEligible,
5054
- Ii as isEmailActivity,
5055
- ol as isFrozen,
5056
- Ju as isHtmlBody,
5057
- _c as isInFlight,
5058
+ pa as isEligible,
5059
+ Ts as isEmailActivity,
5060
+ il as isFrozen,
5061
+ ed as isHtmlBody,
5062
+ Ec as isInFlight,
5058
5063
  or as isInteractionUnseen,
5059
- Lu as isLandingPath,
5064
+ Pu as isLandingPath,
5060
5065
  Zn as isLikelyBulk,
5061
5066
  St as isMessageShape,
5062
- di as isMessageType,
5063
- gs as isMoreSpecificPattern,
5067
+ ps as isMessageType,
5068
+ yi as isMoreSpecificPattern,
5064
5069
  It as isNoteShape,
5065
5070
  Ao as isOpenClock,
5066
- Fl as isOutwardTool,
5071
+ Bl as isOutwardTool,
5067
5072
  ur as isParked,
5068
5073
  co as isPaused,
5069
- hi as isPlaybookAuthoredType,
5070
- qu as isPublicEmailDomain,
5071
- Ku as isPublicPath,
5074
+ gs as isPlaybookAuthoredType,
5075
+ Qu as isPublicEmailDomain,
5076
+ Uu as isPublicPath,
5072
5077
  dr as isReminderActive,
5073
- fi as isReplyableType,
5074
- ya as isSlaAtRisk,
5075
- Ac as isTerminal,
5076
- fa as isThreadLongEnough,
5077
- yi as isTranscriptType,
5078
- Nl as isWorkClosed,
5079
- Jc as isWorkTypeVisible,
5080
- vl as itemDossierKeys,
5078
+ ms as isReplyableType,
5079
+ ba as isSlaAtRisk,
5080
+ _c as isTerminal,
5081
+ ma as isThreadLongEnough,
5082
+ bs as isTranscriptType,
5083
+ Rl as isWorkClosed,
5084
+ el as isWorkTypeVisible,
5085
+ Cl as itemDossierKeys,
5081
5086
  N as kindFor,
5082
- Wo as ladderFor,
5087
+ Vo as ladderFor,
5083
5088
  Io as levelIn,
5084
5089
  Te as levelOrder,
5085
5090
  Er as lineNet,
5086
- Ia as linkLabel,
5087
- Ni as listeningAllowed,
5088
- ka as localeInstruction,
5089
- wa as localeName,
5090
- va as localesOf,
5091
- zu as looksLikeEmail,
5091
+ Ta as linkLabel,
5092
+ Rs as listeningAllowed,
5093
+ Ma as localeInstruction,
5094
+ ka as localeName,
5095
+ Ca as localesOf,
5096
+ Xu as looksLikeEmail,
5092
5097
  Ct as lookup,
5093
- ta as marginCents,
5094
- fu as markdownToDocument,
5095
- Jl as matchContactToIntents,
5096
- ys as matchPublicRoute,
5097
- xa as mcpCredentialScope,
5098
- Na as mcpToolPrefix,
5099
- Bc as measureRatio,
5100
- Hu as mergeShownKeys,
5098
+ na as marginCents,
5099
+ mu as markdownToDocument,
5100
+ eu as matchContactToIntents,
5101
+ bi as matchPublicRoute,
5102
+ Na as mcpCredentialScope,
5103
+ Ra as mcpToolPrefix,
5104
+ jc as measureRatio,
5105
+ Gu as mergeShownKeys,
5101
5106
  un as messageCountsAs,
5102
- Pi as metricOption,
5107
+ Ks as metricOption,
5103
5108
  Kt as minutesOn,
5104
- Qu as needsPhoneRegion,
5105
- pi as nestsUnderParent,
5106
- Pc as nextLevelBelow,
5107
- xc as nextSlaClock,
5108
- il as nextVersion,
5109
- Fi as normalizeArtifactBlocks,
5110
- ci as normalizeBlocks,
5111
- Fi as normalizeDocumentBlocks,
5109
+ Zu as needsPhoneRegion,
5110
+ fs as nestsUnderParent,
5111
+ Kc as nextLevelBelow,
5112
+ Nc as nextSlaClock,
5113
+ al as nextVersion,
5114
+ Bs as normalizeArtifactBlocks,
5115
+ ls as normalizeBlocks,
5116
+ Bs as normalizeDocumentBlocks,
5112
5117
  nn as normalizeEmail,
5113
5118
  P as normalizeExample,
5114
5119
  Kn as normalizeGtin,
5115
- Su as notificationPrefKey,
5116
- Ms as novelty,
5117
- pu as operationDescriptor,
5118
- du as operationsForKind,
5119
- ua as organizationSender,
5120
+ Iu as notificationPrefKey,
5121
+ vi as novelty,
5122
+ fu as operationDescriptor,
5123
+ pu as operationsForKind,
5124
+ da as organizationSender,
5120
5125
  ce as overlapSeconds,
5121
- Ya as overlaps,
5122
- jc as paceRatio,
5123
- pa as parkMarksById,
5124
- oc as parseActingIdentity,
5125
- ea as parseAmount,
5126
- wc as parseClockMinutes,
5127
- kl as parseItemKey,
5128
- fs as pathToRegex,
5126
+ qa as overlaps,
5127
+ Hc as paceRatio,
5128
+ fa as parkMarksById,
5129
+ ic as parseActingIdentity,
5130
+ ta as parseAmount,
5131
+ kc as parseClockMinutes,
5132
+ Ml as parseItemKey,
5133
+ mi as pathToRegex,
5129
5134
  Ft as patternFor,
5130
5135
  Ut as patternStartTime,
5131
- kc as pauseBitFor,
5132
- Di as periodsInRange,
5133
- Xu as phoneSuffix,
5134
- ma as pickMailHeaders,
5135
- ca as pickTemplate,
5136
- rc as placeLumps,
5136
+ Mc as pauseBitFor,
5137
+ $s as periodsInRange,
5138
+ Yu as phoneSuffix,
5139
+ ha as pickMailHeaders,
5140
+ la as pickTemplate,
5141
+ oc as placeLumps,
5137
5142
  cn as plainTextFromMarkdown,
5138
- Cc as planSlaEvent,
5139
- Qa as plannedBillable,
5143
+ Oc as planSlaEvent,
5144
+ Za as plannedBillable,
5140
5145
  Lr as plannedWorkTypeKey,
5141
5146
  Qr as playbookActor,
5142
- yc as procedureOf,
5143
- dl as productScopeKey,
5144
- Cl as projectDossierKeys,
5145
- hs as publicBasePathFor,
5146
- Pu as publicRoutePatterns,
5147
- qi as reactionWakesAssignment,
5147
+ bc as procedureOf,
5148
+ pl as productScopeKey,
5149
+ Ol as projectDossierKeys,
5150
+ gi as publicBasePathFor,
5151
+ Ku as publicRoutePatterns,
5152
+ Qs as reactionWakesAssignment,
5148
5153
  fe as readPath,
5149
5154
  et as readStepError,
5150
5155
  lr as recencyOf,
5151
- aa as recipientLocale,
5156
+ ca as recipientLocale,
5152
5157
  Jr as refKey,
5153
- Ls as registrableDomain,
5158
+ Pi as registrableDomain,
5154
5159
  No as rejectExampleCandidate,
5155
- Ka as relatedByDefault,
5160
+ Ua as relatedByDefault,
5156
5161
  Ie as remainingMsOf,
5157
5162
  xr as requiredAgents,
5158
5163
  $r as requirementFor,
5159
- ts as resolveAccountCapabilities,
5164
+ ni as resolveAccountCapabilities,
5160
5165
  me as resolveActivityText,
5161
- es as resolveChannelIntents,
5162
- na as resolvePrice,
5166
+ ti as resolveChannelIntents,
5167
+ ra as resolvePrice,
5163
5168
  Gn as resolveSignature,
5164
- ku as resolveWorkMode,
5165
- Nu as resourceKindOf,
5166
- Wc as rollupChildren,
5169
+ Mu as resolveWorkMode,
5170
+ Ru as resourceKindOf,
5171
+ Vc as rollupChildren,
5167
5172
  G as roundHalfUp,
5168
5173
  sc as runActor,
5169
- Sc as runInteractionId,
5174
+ Ic as runInteractionId,
5170
5175
  On as sanitizeInline,
5171
- As as sanitizeTranscript,
5172
- ec as scheduleEntryScopeKey,
5173
- ba as scoreInteraction,
5174
- yl as scoreWorkItem,
5175
- Oa as selectLenses,
5176
+ _i as sanitizeTranscript,
5177
+ tc as scheduleEntryScopeKey,
5178
+ Aa as scoreInteraction,
5179
+ bl as scoreWorkItem,
5180
+ xa as selectLenses,
5176
5181
  Cr as serviceLevel,
5177
- zl as sessionsHoldCannotReach,
5178
- Vl as sessionsToHold,
5182
+ Xl as sessionsHoldCannotReach,
5183
+ zl as sessionsToHold,
5179
5184
  vt as shareKeyForTeam,
5180
5185
  Mt as shareKeyForUser,
5181
- Gi as shareKeysForViewer,
5182
- Za as shortfalls,
5183
- Mu as shouldRunAudioPipeline,
5184
- Nc as slaBadgeTone,
5185
- ga as slaHoursByInbox,
5186
+ Ws as shareKeysForViewer,
5187
+ Ja as shortfalls,
5188
+ vu as shouldRunAudioPipeline,
5189
+ Rc as slaBadgeTone,
5190
+ ya as slaHoursByInbox,
5186
5191
  pr as slaHoursFor,
5187
- zo as sortStatuses,
5188
- Jo as sourceKey,
5192
+ Xo as sortStatuses,
5193
+ ei as sourceKey,
5189
5194
  zr as spreadOverWeights,
5190
- Ol as statusIn,
5191
- gc as stepsOf,
5192
- $c as strategyAncestorKeysFor,
5193
- Dc as strategyDossierKeys,
5195
+ xl as statusIn,
5196
+ yc as stepsOf,
5197
+ Lc as strategyAncestorKeysFor,
5198
+ $c as strategyDossierKeys,
5194
5199
  zt as strategyItemScopeKey,
5195
5200
  ln as stripHtml,
5196
- Ec as subjectKeyOf,
5201
+ Sc as subjectKeyOf,
5197
5202
  Bt as subjectOf,
5198
- Gl as subjectRef,
5199
- Ml as suggestProjectKey,
5200
- Hc as suggestedHealth,
5201
- Ic as summarizeReactions,
5202
- lc as targetById,
5203
- cc as targetForActivityType,
5204
- zc as targetOrder,
5203
+ Wl as subjectRef,
5204
+ vl as suggestProjectKey,
5205
+ Gc as suggestedHealth,
5206
+ Tc as summarizeReactions,
5207
+ uc as targetById,
5208
+ lc as targetForActivityType,
5209
+ Xc as targetOrder,
5205
5210
  _r as taxRateFor,
5206
5211
  wr as termsFor,
5207
5212
  qr as toActingIdentity,
5208
5213
  ht as toE164,
5209
- Wi as toolSourceKinds,
5214
+ Vs as toolSourceKinds,
5210
5215
  Ro as topicOfferedForTeam,
5211
- rl as topicsForTeam,
5216
+ ol as topicsForTeam,
5212
5217
  Or as trafficIntensity,
5213
- al as transactionContext,
5214
- pl as transactionIdFromScope,
5218
+ cl as transactionContext,
5219
+ fl as transactionIdFromScope,
5215
5220
  ke as transactionKind,
5216
- ul as transactionScopeKey,
5217
- cl as transactionSlots,
5218
- Fa as transactionTotals,
5221
+ dl as transactionScopeKey,
5222
+ ll as transactionSlots,
5223
+ Ba as transactionTotals,
5219
5224
  xo as truncateExample,
5220
- _l as typeIn,
5221
- Al as typesFor,
5222
- Rl as uniqueWorkStatusKey,
5223
- Zc as uniqueWorkTypeKey,
5225
+ El as typeIn,
5226
+ _l as typesFor,
5227
+ Dl as uniqueWorkStatusKey,
5228
+ Jc as uniqueWorkTypeKey,
5224
5229
  In as usageMetricId,
5225
- Ki as usageMetrics,
5226
- Dl as validateStatuses,
5227
- ac as valueAtPath,
5230
+ Us as usageMetrics,
5231
+ $l as validateStatuses,
5232
+ cc as valueAtPath,
5228
5233
  ve as waitHoursOf,
5229
- Yi as wakesAssignment,
5230
- Tl as workActivityScopeKey,
5231
- Go as workItemScopeKey,
5234
+ qs as wakesAssignment,
5235
+ wl as workActivityScopeKey,
5236
+ Wo as workItemScopeKey,
5232
5237
  Yt as workProjectScopeKey,
5233
- Gc as workRatio,
5234
- Xo as workStatusKey,
5238
+ Wc as workRatio,
5239
+ Yo as workStatusKey,
5235
5240
  Mo as workTypeKey,
5236
5241
  _e as workingMsBetween,
5237
- tc as workstreamScopeKey
5242
+ nc as workstreamScopeKey
5238
5243
  };