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