@opencxh/domain 1.286.3 → 1.287.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 pa = 10, ma = 10, ha = 10, ga = 5, Nn = /* @__PURE__ */ new Set([
1
+ const ha = 10, ga = 10, ya = 10, ba = 5, Nn = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function ce(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function ya(e, t = () => {
17
+ function _a(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -69,15 +69,15 @@ function ya(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const xn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Dn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
- function Rn(e) {
72
+ const xn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Rn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
+ function Dn(e) {
74
74
  if (typeof e != "string" || !e) return "";
75
75
  let t = e;
76
76
  return t = t.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), t = t.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), t = t.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), t = t.split(`
77
77
  `).map(
78
78
  (n) => n.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
79
79
  ).join(`
80
- `), t = t.replace(xn, "$2"), t = t.replace(Dn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
80
+ `), t = t.replace(xn, "$2"), t = t.replace(Rn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
81
81
  }
82
82
  function $n(e) {
83
83
  return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
@@ -99,7 +99,7 @@ function J(e) {
99
99
  function Je(e) {
100
100
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
101
101
  }
102
- const R = {
102
+ const D = {
103
103
  /* ---- voice ---- */
104
104
  VOICE_CALL_STARTED: {
105
105
  shape: "event",
@@ -500,46 +500,46 @@ const R = {
500
500
  }
501
501
  };
502
502
  function Ze(e) {
503
- const t = e.payload, n = Rn(t.bodyText).trim() || t.bodySnippet?.trim() || $n(t.body ?? "");
503
+ const t = e.payload, n = Dn(t.bodyText).trim() || t.bodySnippet?.trim() || $n(t.body ?? "");
504
504
  return t.subject ? `${t.subject} — ${n}` : n;
505
505
  }
506
506
  function v(e) {
507
- return R[e];
507
+ return D[e];
508
508
  }
509
- function ba(e) {
509
+ function Aa(e) {
510
510
  return v(e)?.icon ?? "circle";
511
511
  }
512
- function _a(e) {
512
+ function Ea(e) {
513
513
  return v(e)?.channelKind;
514
514
  }
515
515
  function Ht(e) {
516
516
  return e === "message" || e === "note";
517
517
  }
518
- function Aa(e) {
518
+ function Sa(e) {
519
519
  return Ht(v(e)?.shape);
520
520
  }
521
521
  function Wt(e) {
522
522
  return e === "note";
523
523
  }
524
- function Ea(e) {
524
+ function Ta(e) {
525
525
  return Wt(v(e)?.shape);
526
526
  }
527
- function Sa(e) {
527
+ function Ia(e) {
528
528
  return v(e)?.replyable === !0;
529
529
  }
530
- function Ta(e) {
530
+ function va(e) {
531
531
  return v(e)?.carriesText === !0;
532
532
  }
533
533
  function Ln(e) {
534
534
  return v(e)?.countsAs;
535
535
  }
536
- function Ia(e) {
536
+ function ka(e) {
537
537
  return v(e)?.playbookAuthored === !0;
538
538
  }
539
- function va(e) {
539
+ function wa(e) {
540
540
  return v(e)?.connected === !0;
541
541
  }
542
- function ka(e) {
542
+ function Ma(e) {
543
543
  const t = v(e);
544
544
  return t?.shape === "artifact" && t?.carriesText === !0;
545
545
  }
@@ -547,11 +547,11 @@ function Pn(e) {
547
547
  const t = v(e.type)?.snippet;
548
548
  return t ? t(e) : "";
549
549
  }
550
- function wa(e, t) {
550
+ function Oa(e, t) {
551
551
  const n = v(e.type)?.timeline;
552
552
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
553
553
  }
554
- function Ma(e) {
554
+ function Ca(e) {
555
555
  const t = v(e.type)?.joinUrl;
556
556
  return t ? t(e) : void 0;
557
557
  }
@@ -586,7 +586,7 @@ function Un(e) {
586
586
  const t = e.trim();
587
587
  return t.length <= et ? t : `${t.slice(0, et - 1).trimEnd()}…`;
588
588
  }
589
- function Ca(e, t) {
589
+ function Na(e, t) {
590
590
  const n = Kn(t?.text, e), r = t ? Se(t.text, e, (o) => o) : null;
591
591
  return {
592
592
  activityId: e.id,
@@ -600,7 +600,7 @@ function Ca(e, t) {
600
600
  }
601
601
  const Fn = (e) => e;
602
602
  function tt(e) {
603
- const t = R[e];
603
+ const t = D[e];
604
604
  return {
605
605
  type: e,
606
606
  shape: t.shape,
@@ -634,17 +634,17 @@ class jn {
634
634
  constructor(t = [], n = Fn) {
635
635
  this.translate = n;
636
636
  for (const r of t)
637
- r?.type && (r.type in R || this.declared.has(r.type) || this.declared.set(r.type, r));
637
+ r?.type && (r.type in D || this.declared.has(r.type) || this.declared.set(r.type, r));
638
638
  }
639
639
  declared = /* @__PURE__ */ new Map();
640
640
  get(t) {
641
- if (t in R) return tt(t);
641
+ if (t in D) return tt(t);
642
642
  const n = this.declared.get(t);
643
643
  return n ? nt(n) : void 0;
644
644
  }
645
645
  /** Everything that may be offered as a trigger, built-in and declared. */
646
646
  triggerable() {
647
- const t = Object.keys(R).filter((r) => R[r].triggerable).map(tt), n = [...this.declared.values()].map(nt).filter((r) => r.triggerable);
647
+ const t = Object.keys(D).filter((r) => D[r].triggerable).map(tt), n = [...this.declared.values()].map(nt).filter((r) => r.triggerable);
648
648
  return [...t, ...n];
649
649
  }
650
650
  /**
@@ -653,14 +653,14 @@ class jn {
653
653
  * the feed always showed for unknown types.
654
654
  */
655
655
  timelineText(t, n) {
656
- const r = R[t.type];
656
+ const r = D[t.type];
657
657
  if (r?.timeline) return r.timeline(t, n);
658
658
  const o = this.declared.get(t.type);
659
659
  return Se(o?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
660
660
  }
661
661
  /** The line for the inbox list. Empty when the type has nothing to show. */
662
662
  snippet(t) {
663
- const n = R[t.type];
663
+ const n = D[t.type];
664
664
  if (n?.snippet) return n.snippet(t);
665
665
  const r = this.declared.get(t.type);
666
666
  return Se(r?.text, t, this.translate) ?? "";
@@ -720,8 +720,8 @@ class jn {
720
720
  return this.translate;
721
721
  }
722
722
  }
723
- const Oa = new jn();
724
- function Na(e, t, n = []) {
723
+ const xa = new jn();
724
+ function Ra(e, t, n = []) {
725
725
  const r = e.createdAt;
726
726
  if (!r) return [];
727
727
  const o = new Set(n);
@@ -730,10 +730,10 @@ function Na(e, t, n = []) {
730
730
  function Bn(e) {
731
731
  return e.createdAt ?? 0;
732
732
  }
733
- function xa(e) {
733
+ function Da(e) {
734
734
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
735
735
  }
736
- function Da(e) {
736
+ function $a(e) {
737
737
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
738
738
  }
739
739
  const Fe = [
@@ -754,16 +754,16 @@ const Fe = [
754
754
  */
755
755
  { id: "decision", defaultFlag: "isDefaultDecision", label: "Beslissingen" }
756
756
  ];
757
- function Ra(e) {
757
+ function La(e) {
758
758
  return Fe.find((t) => t.id === e)?.defaultFlag;
759
759
  }
760
- function $a(e) {
760
+ function Pa(e) {
761
761
  const t = {};
762
762
  for (const n of Fe)
763
763
  t[n.defaultFlag] = e?.[n.defaultFlag] === !0;
764
764
  return t;
765
765
  }
766
- function La(e, t) {
766
+ function Ka(e, t) {
767
767
  const n = {};
768
768
  for (const r of Fe) {
769
769
  const o = r.defaultFlag;
@@ -778,7 +778,7 @@ const Gn = {
778
778
  audio: "audio",
779
779
  video: "video"
780
780
  };
781
- function Pa(e, t) {
781
+ function Ua(e, t) {
782
782
  if (t === "text") return !0;
783
783
  if (!e?.in?.length) return;
784
784
  const n = Gn[t];
@@ -793,7 +793,7 @@ function Hn(e) {
793
793
  let n;
794
794
  return e.expectsSchema ? (n = "fast", t.push("schema-antwoord")) : (e.mode ?? "agent") === "ask" && !e.toolCount ? (n = "fast", t.push("vraag zonder tools")) : e.toolCount || e.hasAttachments ? (n = "standard", t.push(e.hasAttachments ? "bijlagen" : "tools beschikbaar")) : (n = "standard", t.push("standaard")), e.repair && (n = rt(n, 1), t.push("herstelbeurt: een tier omhoog")), e.budgetPressure === "soft" && n !== "fast" && (n = rt(n, -1), t.push("budget bijna op: een tier omlaag in plaats van weigeren")), e.maxTier && Te(n) > Te(e.maxTier) && (n = e.maxTier, t.push(`plafond van de rol: ${e.maxTier}`)), { tier: n, reasons: t };
795
795
  }
796
- function Ka(e, t, n) {
796
+ function Fa(e, t, n) {
797
797
  const r = Hn(t);
798
798
  if (!e) return { ...r, ...n, routed: !1 };
799
799
  for (let o = Te(r.tier); o >= 0; o--) {
@@ -810,7 +810,7 @@ function Ka(e, t, n) {
810
810
  };
811
811
  }
812
812
  const ot = 255, it = 2, st = 10;
813
- function Ua(e) {
813
+ function ja(e) {
814
814
  const t = Object.keys(e);
815
815
  if (!t.length) return "geen vragen gesteld";
816
816
  for (const n of t) {
@@ -830,10 +830,10 @@ function Ua(e) {
830
830
  }
831
831
  return null;
832
832
  }
833
- function Fa(e, t = 0.9, n = 0.6) {
833
+ function Ba(e, t = 0.9, n = 0.6) {
834
834
  return Number.isFinite(e) ? e >= t ? "act" : e >= n ? "check" : "refuse" : "refuse";
835
835
  }
836
- const ja = [
836
+ const Ga = [
837
837
  "counting or arithmetic",
838
838
  "comparing dates or durations",
839
839
  "judging whether two numbers are close",
@@ -945,23 +945,23 @@ const ja = [
945
945
  function ie(e) {
946
946
  return Vt.find((t) => t.id === e);
947
947
  }
948
- function Ba(e) {
948
+ function Ha(e) {
949
949
  return ie(e)?.label ?? e;
950
950
  }
951
- function Ga(e, t = "gpt-5-mini") {
951
+ function Wa(e, t = "gpt-5-mini") {
952
952
  return ie(e)?.defaultModel ?? t;
953
953
  }
954
- function Ha(e) {
954
+ function Va(e) {
955
955
  return Vt.filter((t) => t.capabilities.includes(e));
956
956
  }
957
- function Wa(e) {
957
+ function za(e) {
958
958
  const t = ie(e);
959
959
  return !!t && !t.baseUrl;
960
960
  }
961
- function Va(e, t) {
961
+ function Ya(e, t) {
962
962
  return t === "text" ? !0 : ie(e)?.attachmentKinds?.includes(t) === !0;
963
963
  }
964
- function za(e, t) {
964
+ function Xa(e, t) {
965
965
  if (!e.enabled) return "ok";
966
966
  const n = at(e.hardLimitNanos), r = at(e.softLimitNanos);
967
967
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -973,17 +973,17 @@ function Wn(e, t = "month") {
973
973
  const n = new Date(e);
974
974
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
975
975
  }
976
- function Ya(e, t = "month") {
976
+ function qa(e, t = "month") {
977
977
  const n = new Date(Wn(e, t));
978
978
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
979
979
  }
980
- function Xa(e) {
980
+ function Qa(e) {
981
981
  return e === "ask" || e === "draft" || e === "agent";
982
982
  }
983
- function qa(e) {
983
+ function Ja(e) {
984
984
  return e?.listeningEnabled !== !1;
985
985
  }
986
- const Qa = ["report"], Ja = [
986
+ const Za = ["report"], ec = [
987
987
  { id: "agent", label: "Agent", labelSource: "user" },
988
988
  { id: "team", label: "Team", labelSource: "team" },
989
989
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -1005,14 +1005,14 @@ function V(e, t) {
1005
1005
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
1006
1006
  }
1007
1007
  const Vn = 36e5, zn = 864e5;
1008
- function Za(e, t, n) {
1008
+ function tc(e, t, n) {
1009
1009
  const r = n === "hour" ? Vn : zn, o = [];
1010
1010
  for (let i = V(e, n); i <= t; i += r)
1011
1011
  o.push(W(i, n));
1012
1012
  return o;
1013
1013
  }
1014
1014
  const Yn = /* @__PURE__ */ new Set(["time"]);
1015
- function ec(e, t, n) {
1015
+ function nc(e, t, n) {
1016
1016
  if (!e) return [];
1017
1017
  const r = new Set(e.supportedDimensions ?? []);
1018
1018
  return t.filter((o) => r.has(o.id) && !Yn.has(o.id)).map((o) => ({
@@ -1021,11 +1021,11 @@ function ec(e, t, n) {
1021
1021
  options: o.options?.length ? o.options : n[o.id] ?? []
1022
1022
  })).filter((o) => o.options.length > 0);
1023
1023
  }
1024
- function tc(e, t) {
1024
+ function rc(e, t) {
1025
1025
  const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
1026
1026
  return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
1027
1027
  }
1028
- function nc(e) {
1028
+ function oc(e) {
1029
1029
  return { value: e.id, label: `${e.category} · ${e.label}` };
1030
1030
  }
1031
1031
  const Xn = [
@@ -1035,7 +1035,7 @@ const Xn = [
1035
1035
  function Qn(e, t) {
1036
1036
  return `${e}.usage.${t}`;
1037
1037
  }
1038
- function rc(e, t) {
1038
+ function ic(e, t) {
1039
1039
  return t.map((n) => ({
1040
1040
  id: Qn(e, n.unit),
1041
1041
  label: n.label,
@@ -1050,7 +1050,7 @@ function rc(e, t) {
1050
1050
  ]
1051
1051
  }));
1052
1052
  }
1053
- async function oc(e, t) {
1053
+ async function sc(e, t) {
1054
1054
  let n = 0, r = 0;
1055
1055
  for (const o of e)
1056
1056
  try {
@@ -1062,22 +1062,22 @@ async function oc(e, t) {
1062
1062
  }
1063
1063
  return { decided: n, waiting: r };
1064
1064
  }
1065
- function ic(e) {
1065
+ function ac(e) {
1066
1066
  return e.approvalRequestIds?.length ? [...e.approvalRequestIds] : e.approvalRequestId ? [e.approvalRequestId] : [];
1067
1067
  }
1068
- function sc(e, t) {
1068
+ function cc(e, t) {
1069
1069
  return e.filter((r) => !r.enabled || r.scopeKind !== t.scopeKind || r.act !== t.act ? !1 : r.minAmountCents == null ? !0 : t.amountCents != null && t.amountCents >= r.minAmountCents).sort((r, o) => {
1070
1070
  const i = r.minAmountCents ?? -1;
1071
1071
  return (o.minAmountCents ?? -1) - i || r.id.localeCompare(o.id);
1072
1072
  })[0];
1073
1073
  }
1074
- function ac(e, t, n, r) {
1074
+ function lc(e, t, n, r) {
1075
1075
  const o = new Set(e.userIds);
1076
1076
  for (const i of e.teamIds)
1077
1077
  for (const s of t[i] ?? []) o.add(s);
1078
1078
  return r || o.delete(n), [...o];
1079
1079
  }
1080
- function cc(e, t) {
1080
+ function uc(e, t) {
1081
1081
  if (e.status !== "pending" || e.decisions.some((i) => i.userId === t.userId)) return e;
1082
1082
  const n = [...e.decisions, t], r = e.pendingUserIds.filter((i) => i !== t.userId);
1083
1083
  if (t.decision === "rejected")
@@ -1091,7 +1091,7 @@ function cc(e, t) {
1091
1091
  settledAt: o ? t.at : void 0
1092
1092
  };
1093
1093
  }
1094
- const zt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), ct = 200, lt = 100, ut = 200, dt = 12, ft = 4, pt = 10, Jn = 8, mt = 12, Yt = 4e3, Z = 500, lc = 1024 * 1024, Zn = /* @__PURE__ */ new Set([
1094
+ const zt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), ct = 200, lt = 100, ut = 200, dt = 12, ft = 4, pt = 10, Jn = 8, mt = 12, Yt = 4e3, Z = 500, dc = 1024 * 1024, Zn = /* @__PURE__ */ new Set([
1095
1095
  "heading",
1096
1096
  "paragraph",
1097
1097
  "list",
@@ -1167,7 +1167,7 @@ function j(e, t = 200) {
1167
1167
  function sr(e, t = "info") {
1168
1168
  return typeof e == "string" && zt.has(e) ? e : t;
1169
1169
  }
1170
- function uc(e, t = () => {
1170
+ function fc(e, t = () => {
1171
1171
  }) {
1172
1172
  if (!Array.isArray(e)) return [];
1173
1173
  const n = [];
@@ -1386,10 +1386,10 @@ function uc(e, t = () => {
1386
1386
  }
1387
1387
  return n;
1388
1388
  }
1389
- function dc(e) {
1389
+ function pc(e) {
1390
1390
  return JSON.stringify(e).length;
1391
1391
  }
1392
- function fc(e) {
1392
+ function mc(e) {
1393
1393
  return {
1394
1394
  blocks: e.length,
1395
1395
  types: e.map((t) => t.type),
@@ -1477,44 +1477,44 @@ function cr(e, t) {
1477
1477
  `;
1478
1478
  }
1479
1479
  const Xt = (e) => `user:${e}`, qt = (e) => `team:${e}`;
1480
- function pc(e) {
1480
+ function hc(e) {
1481
1481
  const t = /* @__PURE__ */ new Set();
1482
1482
  for (const n of e ?? [])
1483
1483
  n?.id && (n.kind === "user" && t.add(Xt(n.id)), n.kind === "team" && t.add(qt(n.id)));
1484
1484
  return [...t].sort();
1485
1485
  }
1486
- function mc(e, t) {
1486
+ function gc(e, t) {
1487
1487
  return [Xt(e), ...t.map(qt)];
1488
1488
  }
1489
- function hc(e) {
1489
+ function yc(e) {
1490
1490
  const t = /* @__PURE__ */ new Set();
1491
1491
  for (const n of e ?? [])
1492
1492
  n?.kind && t.add(n.kind);
1493
1493
  return [...t];
1494
1494
  }
1495
- const lr = ["done", "escalated"], gc = ["open", "waiting"];
1496
- function yc(e) {
1495
+ const lr = ["done", "escalated"], bc = ["open", "waiting"];
1496
+ function _c(e) {
1497
1497
  return lr.includes(e);
1498
1498
  }
1499
1499
  const ur = "assignment";
1500
- function bc(e) {
1500
+ function Ac(e) {
1501
1501
  return `${ur}:${e}`;
1502
1502
  }
1503
- function _c(e, t, n, r) {
1503
+ function Ec(e, t, n, r) {
1504
1504
  if (e.direction === "inbound") return !0;
1505
1505
  if (e.author?.type === "user" && e.author.id === t) return !1;
1506
1506
  const o = e.payload?.mentions;
1507
1507
  return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
1508
1508
  }
1509
- function Ac(e) {
1509
+ function Sc(e) {
1510
1510
  const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
1511
1511
  return !o || !t || t !== r ? !1 : n !== r;
1512
1512
  }
1513
- function Ec(e) {
1513
+ function Tc(e) {
1514
1514
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1515
1515
  }
1516
1516
  const dr = 12;
1517
- function Sc(e, t, n = dr) {
1517
+ function Ic(e, t, n = dr) {
1518
1518
  const r = t + 1;
1519
1519
  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 ? {
1520
1520
  status: "escalated",
@@ -1529,7 +1529,7 @@ function Sc(e, t, n = dr) {
1529
1529
  };
1530
1530
  }
1531
1531
  const fr = 2;
1532
- function Tc(e, t, n, r) {
1532
+ function vc(e, t, n, r) {
1533
1533
  if (t === n)
1534
1534
  return "een agent schakelt zichzelf niet in";
1535
1535
  if (!r?.includes(t))
@@ -1540,14 +1540,14 @@ function Tc(e, t, n, r) {
1540
1540
  const i = Math.max(0, o.length - 1);
1541
1541
  return i >= fr ? `er zijn al ${i} agents ingeschakeld voor deze vraag; dieper delegeren mag niet` : null;
1542
1542
  }
1543
- const Ic = "organization.business-entities.list";
1544
- function vc(e, t, n) {
1543
+ const kc = "organization.business-entities.list";
1544
+ function wc(e, t, n) {
1545
1545
  return e ? e === t : n;
1546
1546
  }
1547
- function kc(e) {
1547
+ function Mc(e) {
1548
1548
  return e.isDefault === !0 ? [e.id, ""] : [e.id];
1549
1549
  }
1550
- function wc(e, t, n) {
1550
+ function Oc(e, t, n) {
1551
1551
  const r = /* @__PURE__ */ new Map();
1552
1552
  for (const o of e) o.businessEntityId || r.set(o[t], o);
1553
1553
  if (n)
@@ -1566,7 +1566,7 @@ function mr(e) {
1566
1566
  t += Number(e[n]) * (n % 2 === 0 ? 3 : 1);
1567
1567
  return (10 - t % 10) % 10;
1568
1568
  }
1569
- function Mc(e, t) {
1569
+ function Cc(e, t) {
1570
1570
  const n = t.trim(), r = pr(n), o = [{ sku: n }, { barcodes: { $in: [n] } }];
1571
1571
  return r && o.push({ gtin: r }), { organizationId: e, $or: o };
1572
1572
  }
@@ -1591,7 +1591,7 @@ function $(e, t = {}) {
1591
1591
  c > 0 && (s.length - c) % 3 === 0 && (l += r), l += s[c];
1592
1592
  return `${o ? "-" : ""}${l}${n}${a}`;
1593
1593
  }
1594
- function Cc(e) {
1594
+ function Nc(e) {
1595
1595
  const t = e.trim().replace(/[\s ]/g, "");
1596
1596
  if (!t) return;
1597
1597
  const n = t.replace(/^[-+]?[^\d.,-]*/, "").replace(/[^\d.,-]+$/, ""), r = /^-/.test(t) || /-$/.test(t), o = n.replace(/-/g, "");
@@ -1606,7 +1606,7 @@ function Cc(e) {
1606
1606
  function gr(e) {
1607
1607
  return /^\d+$/.test(e) ? !0 : e.includes(".") && e.includes(",") ? !1 : /^\d{1,3}([.,]\d{3})*$/.test(e);
1608
1608
  }
1609
- function Oc(e) {
1609
+ function xc(e) {
1610
1610
  return e.costPriceCents == null ? e.netCents : e.netCents - z(e.costPriceCents * e.quantity);
1611
1611
  }
1612
1612
  const yr = [
@@ -1662,7 +1662,7 @@ function _r(e, t) {
1662
1662
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? z(t * (1 - e.discountPercent / 100)) : t;
1663
1663
  }
1664
1664
  const Ar = "manual";
1665
- function Nc(e, t, n, r) {
1665
+ function Rc(e, t, n, r) {
1666
1666
  return e.map((o) => {
1667
1667
  if (o.kind !== "product" || o.priceSourceKey === Ar) return o;
1668
1668
  const i = t.find((a) => a.id === o.productId);
@@ -1671,23 +1671,23 @@ function Nc(e, t, n, r) {
1671
1671
  return s.unitPriceCents === o.unitPriceCents && s.sourceKey === o.priceSourceKey ? o : { ...o, unitPriceCents: s.unitPriceCents, priceSourceKey: s.sourceKey };
1672
1672
  });
1673
1673
  }
1674
- const xc = ["piece", "hour", "day", "month", "km", "license"], Dc = /* @__PURE__ */ new Set(["mail", "message"]);
1674
+ const Dc = ["piece", "hour", "day", "month", "km", "license"], $c = /* @__PURE__ */ new Set(["mail", "message"]);
1675
1675
  function Er(e, t) {
1676
1676
  const n = e.settings?.signatures?.[t];
1677
1677
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1678
1678
  }
1679
- function Rc(e, t, n, r = "html") {
1679
+ function Lc(e, t, n, r = "html") {
1680
1680
  if (!e) return n;
1681
1681
  const o = Er(e, t);
1682
1682
  return o ? `${n}${r === "text" ? `
1683
1683
 
1684
1684
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1685
1685
  }
1686
- function $c(e) {
1686
+ function Pc(e) {
1687
1687
  return e.endpoints ?? [];
1688
1688
  }
1689
- const Lc = ["lead", "opportunity", "customer", "former"], Pc = ["new", "working", "unqualified"];
1690
- function Kc(e) {
1689
+ const Kc = ["lead", "opportunity", "customer", "former"], Uc = ["new", "working", "unqualified"];
1690
+ function Fc(e) {
1691
1691
  return [e.firstName, e.lastName].filter(Boolean).join(" ").trim();
1692
1692
  }
1693
1693
  const Sr = [
@@ -1697,23 +1697,23 @@ const Sr = [
1697
1697
  "scopes",
1698
1698
  "cities",
1699
1699
  "parentCompanyIds"
1700
- ], Tr = ["openDeal", "hasContacts"], Uc = {
1700
+ ], Tr = ["openDeal", "hasContacts"], jc = {
1701
1701
  contact: ["stages", "leadStatuses", "sources", "scopes", "cities", "openDeal"],
1702
1702
  company: ["stages", "sources", "scopes", "cities", "parentCompanyIds", "hasContacts"]
1703
- }, Fc = ["updatedAt", "createdAt", "name"], jc = ["list"];
1704
- function Bc(e) {
1703
+ }, Bc = ["updatedAt", "createdAt", "name"], Gc = ["list"];
1704
+ function Hc(e) {
1705
1705
  return e.search?.trim() || e.createdWithinDays || Tr.some((t) => e[t]) || Sr.some((t) => e[t]?.length) ? !1 : !Object.values(e.fields ?? {}).some((t) => t.length);
1706
1706
  }
1707
- const Ir = "CRM_NOTE_ADDED", Gc = "crm_activity", vr = "CRM_CALL_LOGGED", Hc = "CRM_STAGE_CHANGED", Wc = ["phone", "meeting", "video"], Vc = ["callback", "interested", "no_answer", "not_interested"], zc = (e) => e === Ir || e === vr, Yc = (e) => e.payload.call?.at ?? e.createdAt ?? 0;
1707
+ const Ir = "CRM_NOTE_ADDED", Wc = "crm_activity", vr = "CRM_CALL_LOGGED", Vc = "CRM_STAGE_CHANGED", zc = ["phone", "meeting", "video"], Yc = ["callback", "interested", "no_answer", "not_interested"], Xc = (e) => e === Ir || e === vr, qc = (e) => e.payload.call?.at ?? e.createdAt ?? 0;
1708
1708
  function L(e) {
1709
1709
  const t = (e ?? "").trim().toLowerCase();
1710
1710
  if (t)
1711
1711
  return t.split(/[-_]/)[0] || void 0;
1712
1712
  }
1713
- function Xc(e) {
1713
+ function Qc(e) {
1714
1714
  return L(e.contactLocale) ?? L(e.companyLocale) ?? L(e.organizationLocale);
1715
1715
  }
1716
- function qc(e, t, n, r) {
1716
+ function Jc(e, t, n, r) {
1717
1717
  const o = e.filter((a) => a.key === t && !a.archived);
1718
1718
  if (o.length === 0) return;
1719
1719
  const i = L(n), s = L(r);
@@ -1739,7 +1739,7 @@ function Mr(e, t, n) {
1739
1739
  return a == null || a === "" ? (r.includes(s) || r.push(s), n ?? `{${s}}`) : wr(a);
1740
1740
  }), unresolved: r };
1741
1741
  }
1742
- function Cr(e, t) {
1742
+ function Or(e, t) {
1743
1743
  if (!e) return !0;
1744
1744
  const n = Qt(t, e.key);
1745
1745
  if (e.exists !== void 0) {
@@ -1748,14 +1748,14 @@ function Cr(e, t) {
1748
1748
  }
1749
1749
  return e.equals !== void 0 ? n === e.equals : !0;
1750
1750
  }
1751
- function Qc(e, t, n, r, o) {
1751
+ function Zc(e, t, n, r, o) {
1752
1752
  const i = [], s = [], a = /* @__PURE__ */ new Set(), l = (c) => {
1753
1753
  const d = Mr(c, t, o);
1754
1754
  for (const u of d.unresolved) i.includes(u) || i.push(u);
1755
1755
  return d.text;
1756
1756
  };
1757
1757
  for (const c of e) {
1758
- if (c.block_id && !Cr(n?.[c.block_id], t)) continue;
1758
+ if (c.block_id && !Or(n?.[c.block_id], t)) continue;
1759
1759
  const d = c.block_id ? r?.[c.block_id] : void 0;
1760
1760
  if (d && c.block_id) {
1761
1761
  a.add(c.block_id), s.push(...d);
@@ -1845,7 +1845,7 @@ function Qc(e, t, n, r, o) {
1845
1845
  unusedSlots: Object.keys(r ?? {}).filter((c) => !a.has(c))
1846
1846
  };
1847
1847
  }
1848
- function Or(e) {
1848
+ function Cr(e) {
1849
1849
  const t = e?.address, n = [t?.street, t?.houseNumber].filter(Boolean).join(" "), r = [t?.postalCode, t?.city].filter(Boolean).join(" ");
1850
1850
  return {
1851
1851
  name: e?.name ?? "",
@@ -1859,8 +1859,8 @@ function Or(e) {
1859
1859
  ...e?.logo ? { logo: e.logo } : {}
1860
1860
  };
1861
1861
  }
1862
- function Jc(e) {
1863
- return Or({
1862
+ function el(e) {
1863
+ return Cr({
1864
1864
  name: e?.billing?.companyName || e?.name || e?.displayName || "",
1865
1865
  address: e?.address,
1866
1866
  kvkNumber: e?.billing?.kvkNumber,
@@ -1880,10 +1880,10 @@ function Nr(e, t, n, r = Date.now()) {
1880
1880
  perCase: [...n]
1881
1881
  };
1882
1882
  }
1883
- function Zc(e) {
1883
+ function tl(e) {
1884
1884
  return e.perCase.filter((t) => !t.ok).map((t) => `${t.caseId}: ${t.note ?? "onverwacht resultaat"}`);
1885
1885
  }
1886
- async function el(e, t, n, r, o = Date.now()) {
1886
+ async function nl(e, t, n, r, o = Date.now()) {
1887
1887
  const i = [];
1888
1888
  for (const s of n)
1889
1889
  try {
@@ -1897,21 +1897,21 @@ async function el(e, t, n, r, o = Date.now()) {
1897
1897
  }
1898
1898
  return Nr(e, t, i, o);
1899
1899
  }
1900
- const xr = 36e5, Dr = 864e5, P = -1 / 0, tl = (e) => e.score > P, ne = {
1900
+ const xr = 36e5, Rr = 864e5, P = -1 / 0, rl = (e) => e.score > P, ne = {
1901
1901
  urgent: 40,
1902
1902
  high: 25,
1903
1903
  normal: 10,
1904
1904
  low: 0
1905
1905
  };
1906
- function nl(e) {
1906
+ function ol(e) {
1907
1907
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1908
1908
  }
1909
- const Rr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Jt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1909
+ const Dr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Jt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1910
1910
  function $r(e, t) {
1911
- return !!(e && Rr.test(e) || t && Jt.test(t));
1911
+ return !!(e && Dr.test(e) || t && Jt.test(t));
1912
1912
  }
1913
1913
  const Lr = 3, Pr = 600;
1914
- function rl(e, t) {
1914
+ function il(e, t) {
1915
1915
  return e >= Lr || t >= Pr;
1916
1916
  }
1917
1917
  const Kr = [
@@ -1924,7 +1924,7 @@ const Kr = [
1924
1924
  "feedback-id",
1925
1925
  "x-mailer"
1926
1926
  ];
1927
- function ol(e) {
1927
+ function sl(e) {
1928
1928
  const t = {};
1929
1929
  for (const n of e) {
1930
1930
  const r = n.name?.toLowerCase();
@@ -1933,7 +1933,7 @@ function ol(e) {
1933
1933
  return t;
1934
1934
  }
1935
1935
  const Ur = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Fr = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1936
- function il(e) {
1936
+ function al(e) {
1937
1937
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1938
1938
  if (r && r !== "no" || t["x-auto-response-suppress"] || n && Ur.test(n))
1939
1939
  return "automated";
@@ -1962,13 +1962,13 @@ function Yr(e, t) {
1962
1962
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1963
1963
  return typeof n == "number" && n > 0 ? n : void 0;
1964
1964
  }
1965
- function sl(e) {
1965
+ function cl(e) {
1966
1966
  const t = {};
1967
1967
  for (const n of e)
1968
1968
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1969
1969
  return t;
1970
1970
  }
1971
- function al(e, t, n) {
1971
+ function ll(e, t, n) {
1972
1972
  if (!en(e.status) || e.firstResponseAt) return !1;
1973
1973
  const r = Yr(e, n);
1974
1974
  return r !== void 0 && Be(e, t) > r;
@@ -1977,7 +1977,7 @@ function Xr(e, t) {
1977
1977
  const n = e.lastActivityPreview;
1978
1978
  return n?.direction !== "outbound" || !Zt(n.type) ? !1 : Be(e, t) < Hr;
1979
1979
  }
1980
- function cl(e, t) {
1980
+ function ul(e, t) {
1981
1981
  if (!en(e.status)) return { score: P, reasons: [] };
1982
1982
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: P, reasons: [] };
1983
1983
  if (Xr(e, t.now)) return { score: P, reasons: [] };
@@ -1993,21 +1993,31 @@ function cl(e, t) {
1993
1993
  const s = e.lastActivityPreview;
1994
1994
  return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Zt(s.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((l) => l === "marketing" || l === "automated") || $r(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Gr, r.push("bulk")), { score: n, reasons: r };
1995
1995
  }
1996
- const ll = (e) => !!e.assignedUserId || !!e.assignedInboxId, ul = (e) => e.status === "closed", dl = (e) => ({
1996
+ const dl = (e) => !!e.assignedUserId || !!e.assignedInboxId, fl = (e) => e.status === "closed", pl = (e) => ({
1997
1997
  urgent: 10,
1998
1998
  high: 5,
1999
1999
  normal: 2,
2000
2000
  low: 1
2001
- })[e.priority] || 0, fl = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
2002
- function pl(e, t) {
2001
+ })[e.priority] || 0, ml = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`, qr = [
2002
+ { key: "solved", label: "resolution_solved", order: 0, positive: !0, system: !0 },
2003
+ { key: "no_action", label: "resolution_no_action", order: 1, system: !0 },
2004
+ { key: "duplicate", label: "resolution_duplicate", order: 2, system: !0 },
2005
+ { key: "spam", label: "resolution_spam", order: 3, system: !0 },
2006
+ { key: "unresolved", label: "resolution_unresolved", order: 4, positive: !1, system: !0 }
2007
+ ], hl = ["duplicate", "spam"], gl = "c_";
2008
+ function yl(e) {
2009
+ const t = [...e?.resolutions ?? []].filter((n) => !n.system).sort((n, r) => n.order - r.order);
2010
+ return [...qr, ...t];
2011
+ }
2012
+ function bl(e, t) {
2003
2013
  const n = e.labels ?? [];
2004
2014
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
2005
2015
  }
2006
- function ml(e, t, n) {
2016
+ function _l(e, t, n) {
2007
2017
  const r = e.translations ?? [];
2008
2018
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
2009
2019
  }
2010
- const hl = "article", yt = [
2020
+ const Al = "article", yt = [
2011
2021
  { code: "nl", label: "Nederlands", english: "Dutch" },
2012
2022
  { code: "en", label: "English", english: "English" },
2013
2023
  { code: "de", label: "Deutsch", english: "German" },
@@ -2026,15 +2036,15 @@ function tn(e) {
2026
2036
  const t = (e ?? "").toLowerCase();
2027
2037
  return yt.find((n) => n.code === t) ?? yt.find((n) => n.code === t.split("-")[0]);
2028
2038
  }
2029
- function gl(e) {
2039
+ function El(e) {
2030
2040
  return tn(e)?.label ?? e;
2031
2041
  }
2032
- function yl(e) {
2042
+ function Sl(e) {
2033
2043
  const t = tn(e);
2034
2044
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
2035
2045
  }
2036
2046
  const nn = 3;
2037
- function qr(e, t) {
2047
+ function Qr(e, t) {
2038
2048
  const n = /* @__PURE__ */ new Set();
2039
2049
  let r = 1, o = t.get(e)?.parentId;
2040
2050
  for (; o; ) {
@@ -2043,15 +2053,15 @@ function qr(e, t) {
2043
2053
  }
2044
2054
  return r;
2045
2055
  }
2046
- function bl(e, t, n) {
2056
+ function Tl(e, t, n) {
2047
2057
  if (!e) return !0;
2048
2058
  if (e === t) return !1;
2049
2059
  const r = new Map(n.map((s) => [s.id, s]));
2050
- if (!r.has(e) || t && Qr(e, t, r)) return !1;
2051
- const o = qr(e, r), i = t ? rn(t, n) : 1;
2060
+ if (!r.has(e) || t && Jr(e, t, r)) return !1;
2061
+ const o = Qr(e, r), i = t ? rn(t, n) : 1;
2052
2062
  return o + i <= nn;
2053
2063
  }
2054
- function Qr(e, t, n) {
2064
+ function Jr(e, t, n) {
2055
2065
  const r = /* @__PURE__ */ new Set();
2056
2066
  let o = n.get(e)?.parentId;
2057
2067
  for (; o; ) {
@@ -2067,17 +2077,17 @@ function rn(e, t, n = /* @__PURE__ */ new Set()) {
2067
2077
  const r = t.filter((o) => o.parentId === e);
2068
2078
  return r.length ? 1 + Math.max(...r.map((o) => rn(o.id, t, n))) : 1;
2069
2079
  }
2070
- const Jr = "en";
2071
- function Zr(e) {
2072
- return e.defaultLocale || e.locale || Jr;
2080
+ const Zr = "en";
2081
+ function eo(e) {
2082
+ return e.defaultLocale || e.locale || Zr;
2073
2083
  }
2074
- function _l(e) {
2084
+ function Il(e) {
2075
2085
  const t = /* @__PURE__ */ new Set(), n = [];
2076
- for (const r of [Zr(e), ...e.locales ?? []])
2086
+ for (const r of [eo(e), ...e.locales ?? []])
2077
2087
  !r || t.has(r) || (t.add(r), n.push(r));
2078
2088
  return n;
2079
2089
  }
2080
- function Al(e, t, n) {
2090
+ function vl(e, t, n) {
2081
2091
  const r = e.translations ?? [];
2082
2092
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
2083
2093
  }
@@ -2102,7 +2112,7 @@ function fe(e) {
2102
2112
  }
2103
2113
  return null;
2104
2114
  }
2105
- function eo(e, t) {
2115
+ function to(e, t) {
2106
2116
  switch (e.kind) {
2107
2117
  case "org":
2108
2118
  return !0;
@@ -2112,29 +2122,29 @@ function eo(e, t) {
2112
2122
  return e.userId === t.userId;
2113
2123
  }
2114
2124
  }
2115
- function El(e, t) {
2116
- return e.filter((n) => n.enabled && eo(n.ownerScope, t));
2125
+ function kl(e, t) {
2126
+ return e.filter((n) => n.enabled && to(n.ownerScope, t));
2117
2127
  }
2118
- function Sl(e) {
2128
+ function wl(e) {
2119
2129
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
2120
2130
  }
2121
- function Tl(e) {
2131
+ function Ml(e) {
2122
2132
  return `mcp__${e}__`;
2123
2133
  }
2124
- const Il = 1e3, vl = 2e3, kl = 500, wl = 12e3, Ml = 4e3, to = ["contact", "company", "work_item"];
2125
- function Cl(e) {
2134
+ const Ol = 1e3, Cl = 2e3, Nl = 500, xl = 12e3, Rl = 4e3, no = ["contact", "company", "work_item"];
2135
+ function Dl(e) {
2126
2136
  if (!e) return !1;
2127
2137
  const t = e.slice(0, e.indexOf(":"));
2128
- return to.includes(t);
2138
+ return no.includes(t);
2129
2139
  }
2130
- const Ol = [
2140
+ const $l = [
2131
2141
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
2132
2142
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
2133
2143
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
2134
2144
  { key: "reverse_charge", label: "tax_reverse_charge", percent: 0, kind: "reverse_charge" },
2135
2145
  { key: "exempt", label: "tax_exempt", percent: 0, kind: "exempt" }
2136
2146
  ];
2137
- function no(e, t) {
2147
+ function ro(e, t) {
2138
2148
  return t.find((n) => n.key === e) ?? {
2139
2149
  key: e,
2140
2150
  label: e,
@@ -2142,13 +2152,13 @@ function no(e, t) {
2142
2152
  kind: "zero"
2143
2153
  };
2144
2154
  }
2145
- function ro(e) {
2155
+ function oo(e) {
2146
2156
  if (e.kind !== "product") return 0;
2147
2157
  const t = 1 - (e.discountPercent ?? 0) / 100;
2148
2158
  return z(e.quantity * e.unitPriceCents * t);
2149
2159
  }
2150
- function Nl(e, t, n) {
2151
- const r = e.map((c) => ({ ...c, netCents: ro(c), taxCents: 0 })), o = /* @__PURE__ */ new Map();
2160
+ function Ll(e, t, n) {
2161
+ const r = e.map((c) => ({ ...c, netCents: oo(c), taxCents: 0 })), o = /* @__PURE__ */ new Map();
2152
2162
  for (let c = 0; c < r.length; c++) {
2153
2163
  if (r[c].kind !== "product" || r[c].optional) continue;
2154
2164
  const d = n ?? r[c].taxRateKey, u = o.get(d);
@@ -2157,7 +2167,7 @@ function Nl(e, t, n) {
2157
2167
  const i = [];
2158
2168
  let s = 0, a = 0;
2159
2169
  for (const [c, d] of o) {
2160
- const u = no(c, t), f = d.reduce((m, S) => m + r[S].netCents, 0), p = z(f * u.percent / 100), y = hr(
2170
+ const u = ro(c, t), f = d.reduce((m, S) => m + r[S].netCents, 0), p = z(f * u.percent / 100), y = hr(
2161
2171
  p,
2162
2172
  d.map((m) => r[m].netCents)
2163
2173
  );
@@ -2185,7 +2195,7 @@ function Nl(e, t, n) {
2185
2195
  }
2186
2196
  };
2187
2197
  }
2188
- const xl = "onboarding-source", Dl = ["support", "billing", "availability", "sales", "onboarding"], Rl = ["keep", "replace"], Ge = [
2198
+ const Pl = "onboarding-source", Kl = ["support", "billing", "availability", "sales", "onboarding"], Ul = ["keep", "replace"], Ge = [
2189
2199
  {
2190
2200
  key: "shift",
2191
2201
  label: "kind_shift",
@@ -2259,36 +2269,36 @@ const xl = "onboarding-source", Dl = ["support", "billing", "availability", "sal
2259
2269
  absent: !0,
2260
2270
  icon: "party-popper"
2261
2271
  }
2262
- ], oo = {
2272
+ ], io = {
2263
2273
  key: "unknown",
2264
2274
  label: "kind_unknown",
2265
2275
  capacity: !1,
2266
2276
  productive: !1,
2267
2277
  absent: !1
2268
2278
  };
2269
- function D(e, t = Ge) {
2270
- return t.find((n) => n.key === e) ?? { ...oo, key: e };
2279
+ function R(e, t = Ge) {
2280
+ return t.find((n) => n.key === e) ?? { ...io, key: e };
2271
2281
  }
2272
2282
  function Y(e) {
2273
2283
  return e === "published" || e === "approved";
2274
2284
  }
2275
2285
  function on(e, t, n = Ge) {
2276
2286
  if (e.workstreamId !== t) return !1;
2277
- const r = D(e.kindKey, n);
2287
+ const r = R(e.kindKey, n);
2278
2288
  return r.absent ? !1 : r.productive || r.capacity;
2279
2289
  }
2280
- function $l(e, t = Ge) {
2290
+ function Fl(e, t = Ge) {
2281
2291
  if (!e.userId || !Y(e.status)) return !1;
2282
- const n = D(e.kindKey, t);
2292
+ const n = R(e.kindKey, t);
2283
2293
  return n.capacity || n.productive || n.absent;
2284
2294
  }
2285
- const io = 864e5;
2286
- function so(e, t) {
2287
- return Math.round((t - e) / io);
2295
+ const so = 864e5;
2296
+ function ao(e, t) {
2297
+ return Math.round((t - e) / so);
2288
2298
  }
2289
2299
  function sn(e, t) {
2290
2300
  const n = e.cycleMinutes.length;
2291
- return n === 0 ? 0 : (so(e.anchor, t) % n + n) % n;
2301
+ return n === 0 ? 0 : (ao(e.anchor, t) % n + n) % n;
2292
2302
  }
2293
2303
  function an(e, t) {
2294
2304
  return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[sn(e, t)] ?? 0;
@@ -2304,13 +2314,13 @@ function ln(e, t, n, r) {
2304
2314
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
2305
2315
  );
2306
2316
  }
2307
- function ao(e, t, n) {
2317
+ function co(e, t, n) {
2308
2318
  return e.filter(
2309
2319
  (r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
2310
2320
  ).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
2311
2321
  }
2312
2322
  const Ie = 864e5;
2313
- function co(e) {
2323
+ function lo(e) {
2314
2324
  const t = Math.max(1, Math.round((e.to - e.from) / Ie));
2315
2325
  return Array.from({ length: t }, (n, r) => e.from + r * Ie);
2316
2326
  }
@@ -2319,11 +2329,11 @@ function ve(e, t, n, r) {
2319
2329
  return o > 0 ? o / 1e3 : 0;
2320
2330
  }
2321
2331
  const _t = { interval: 0, day: 1, week: 2 };
2322
- function Ll(e, t) {
2332
+ function jl(e, t) {
2323
2333
  const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2324
- (u) => u.userId && Y(u.status) && D(u.kindKey).capacity
2334
+ (u) => u.userId && Y(u.status) && R(u.kindKey).capacity
2325
2335
  ), s = n.filter(
2326
- (u) => u.userId && Y(u.status) && D(u.kindKey).absent
2336
+ (u) => u.userId && Y(u.status) && R(u.kindKey).absent
2327
2337
  ), a = t.userIds ?? [
2328
2338
  .../* @__PURE__ */ new Set([
2329
2339
  ...i.map((u) => u.userId),
@@ -2338,12 +2348,12 @@ function Ll(e, t) {
2338
2348
  for (const u of a) {
2339
2349
  const f = t.teamIdsOf?.(u) ?? [];
2340
2350
  let p = 0, y = 0, m = 0;
2341
- for (const h of co(e)) {
2351
+ for (const h of lo(e)) {
2342
2352
  const E = Math.max(h, e.from), x = Math.min(h + Ie, e.to);
2343
2353
  m++;
2344
- const O = i.filter((k) => k.userId === u).reduce((k, qe) => k + ve(qe.start, qe.end, E, x), 0);
2345
- if (O > 0) {
2346
- p += O;
2354
+ const C = i.filter((k) => k.userId === u).reduce((k, qe) => k + ve(qe.start, qe.end, E, x), 0);
2355
+ if (C > 0) {
2356
+ p += C;
2347
2357
  continue;
2348
2358
  }
2349
2359
  const w = ln(r, u, f, h), N = w ? an(w, h) : 0;
@@ -2354,7 +2364,7 @@ function Ll(e, t) {
2354
2364
  w || y++;
2355
2365
  }
2356
2366
  if (y > 0) {
2357
- const h = ao(o, u, e.from);
2367
+ const h = co(o, u, e.from);
2358
2368
  h && (p += h.weeklyMinutes * 60 * (y / 7), d("week"));
2359
2369
  }
2360
2370
  const S = s.filter((h) => h.userId === u).reduce(
@@ -2369,7 +2379,7 @@ function Ll(e, t) {
2369
2379
  byUser: l
2370
2380
  };
2371
2381
  }
2372
- function Pl(e, t) {
2382
+ function Bl(e, t) {
2373
2383
  if (!e.some((a) => a.userId)) return [];
2374
2384
  const n = "", r = /* @__PURE__ */ new Map();
2375
2385
  for (const a of e) {
@@ -2392,14 +2402,14 @@ function Pl(e, t) {
2392
2402
  const s = r.get(n) ?? 0;
2393
2403
  return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
2394
2404
  }
2395
- function Kl(e, t, n, r) {
2405
+ function Gl(e, t, n, r) {
2396
2406
  const o = e.filter(
2397
- (s) => s.userId && Y(s.status) && !D(s.kindKey).absent
2407
+ (s) => s.userId && Y(s.status) && !R(s.kindKey).absent
2398
2408
  ), i = Object.entries(r.byUser).map(
2399
2409
  ([s, a]) => {
2400
2410
  let l = 0, c = 0;
2401
2411
  for (const d of o) {
2402
- if (d.userId !== s || D(d.kindKey).capacity && !d.workstreamId) continue;
2412
+ if (d.userId !== s || R(d.kindKey).capacity && !d.workstreamId) continue;
2403
2413
  const u = ve(d.start, d.end, n.from, n.to);
2404
2414
  u <= 0 || (on(d, t) ? l += u : c += u);
2405
2415
  }
@@ -2414,59 +2424,59 @@ function Kl(e, t, n, r) {
2414
2424
  );
2415
2425
  return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2416
2426
  }
2417
- const Ul = "demand-source", At = 1e3;
2418
- function lo(e, t) {
2427
+ const Hl = "demand-source", At = 1e3;
2428
+ function uo(e, t) {
2419
2429
  let n = 1;
2420
2430
  for (let r = 1; r <= e; r++)
2421
2431
  n = t * n / (r + t * n);
2422
2432
  return n;
2423
2433
  }
2424
- function uo(e, t) {
2434
+ function fo(e, t) {
2425
2435
  if (e <= 0) return 1;
2426
2436
  if (t <= 0) return 0;
2427
2437
  if (e <= t) return 1;
2428
- const n = lo(e, t), r = t / e;
2438
+ const n = uo(e, t), r = t / e;
2429
2439
  return n / (1 - r * (1 - n));
2430
2440
  }
2431
- function fo(e, t, n, r) {
2432
- return r <= 0 ? 1 : e <= t ? 0 : 1 - uo(e, t) * Math.exp(-(e - t) * n / r);
2441
+ function po(e, t, n, r) {
2442
+ return r <= 0 ? 1 : e <= t ? 0 : 1 - fo(e, t) * Math.exp(-(e - t) * n / r);
2433
2443
  }
2434
- function po(e, t, n) {
2444
+ function mo(e, t, n) {
2435
2445
  return n <= 0 ? 0 : e * t / n;
2436
2446
  }
2437
- function mo(e, t, n, r) {
2447
+ function ho(e, t, n, r) {
2438
2448
  if (e <= 0 || t <= 0) return 0;
2439
- const o = po(e, t, n);
2449
+ const o = mo(e, t, n);
2440
2450
  if (o <= 0) return 0;
2441
2451
  const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2442
2452
  for (let a = Math.max(1, Math.ceil(o)); a <= At; a++)
2443
- if (!(a <= o) && !(fo(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2453
+ if (!(a <= o) && !(po(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2444
2454
  return a;
2445
2455
  return At;
2446
2456
  }
2447
- const ho = 36e5, go = 864e5;
2448
- function yo(e) {
2449
- return e === "day" ? go : ho;
2457
+ const go = 36e5, yo = 864e5;
2458
+ function bo(e) {
2459
+ return e === "day" ? yo : go;
2450
2460
  }
2451
- function Fl(e, t) {
2461
+ function Wl(e, t) {
2452
2462
  return e.start < t.end && t.start < e.end;
2453
2463
  }
2454
2464
  function pe(e, t, n) {
2455
2465
  const r = Math.min(e.end, n) - Math.max(e.start, t);
2456
2466
  return r > 0 ? r / 1e3 : 0;
2457
2467
  }
2458
- function bo(e, t, n) {
2468
+ function _o(e, t, n) {
2459
2469
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
2460
2470
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
2461
2471
  const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
2462
2472
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
2463
- const a = mo(e.volume, r, n, t);
2473
+ const a = ho(e.volume, r, n, t);
2464
2474
  return { seconds: o, headcount: a * s };
2465
2475
  }
2466
2476
  return { seconds: o, headcount: o / n * s };
2467
2477
  }
2468
- function jl(e) {
2469
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = yo(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => on(m, n, c)), f = d.filter((m) => D(m.kindKey, c).capacity), p = d.filter((m) => D(m.kindKey, c).absent), y = [];
2478
+ function Vl(e) {
2479
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = bo(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => on(m, n, c)), f = d.filter((m) => R(m.kindKey, c).capacity), p = d.filter((m) => R(m.kindKey, c).absent), y = [];
2470
2480
  for (let m = V(i.from, s); m < i.to; m += a) {
2471
2481
  const S = m + a, g = W(m, s);
2472
2482
  let h = 0;
@@ -2475,10 +2485,10 @@ function jl(e) {
2475
2485
  for (const k of f) E += pe(k, m, S);
2476
2486
  let x = 0;
2477
2487
  for (const k of p) x += pe(k, m, S);
2478
- const O = o?.[g] ?? {}, w = bo(O, r, l), N = h / l;
2488
+ const C = o?.[g] ?? {}, w = _o(C, r, l), N = h / l;
2479
2489
  y.push({
2480
2490
  period: g,
2481
- forecastVolume: O.volume,
2491
+ forecastVolume: C.volume,
2482
2492
  requiredSeconds: w.seconds,
2483
2493
  requiredHeadcount: w.headcount,
2484
2494
  scheduledSeconds: h,
@@ -2490,24 +2500,24 @@ function jl(e) {
2490
2500
  }
2491
2501
  return y;
2492
2502
  }
2493
- function _o(e, t) {
2503
+ function Ao(e, t) {
2494
2504
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
2495
2505
  }
2496
- function Bl(e, t, n) {
2497
- const r = _o(e, t);
2506
+ function zl(e, t, n) {
2507
+ const r = Ao(e, t);
2498
2508
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
2499
2509
  }
2500
- function Gl(e) {
2510
+ function Yl(e) {
2501
2511
  return e.filter(
2502
2512
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2503
2513
  );
2504
2514
  }
2505
- const Ao = 36e5, ke = 6048e5, Eo = 8, So = 0.5, To = 2;
2506
- function Io(e) {
2515
+ const Eo = 36e5, ke = 6048e5, So = 8, To = 0.5, Io = 2;
2516
+ function vo(e) {
2507
2517
  const t = Number(e.slice(0, 4)), n = Number(e.slice(5, 7)), r = Number(e.slice(8, 10)), o = e.length > 10 ? Number(e.slice(11, 13)) : 0;
2508
2518
  return Date.UTC(t, n - 1, r, o);
2509
2519
  }
2510
- function vo(e, t, n) {
2520
+ function ko(e, t, n) {
2511
2521
  const r = [];
2512
2522
  for (let i = 0; i < n; i++) {
2513
2523
  const s = t - i * ke, a = s - ke;
@@ -2518,21 +2528,21 @@ function vo(e, t, n) {
2518
2528
  }
2519
2529
  if (r.length < 2) return 1;
2520
2530
  const o = r.reduce((i, s) => i + s, 0) / r.length;
2521
- return o <= 0 ? 1 : Math.min(To, Math.max(So, r[0] / o));
2531
+ return o <= 0 ? 1 : Math.min(Io, Math.max(To, r[0] / o));
2522
2532
  }
2523
- function ko(e, t) {
2533
+ function wo(e, t) {
2524
2534
  if (!e?.length) return;
2525
2535
  let n;
2526
2536
  for (const r of e)
2527
2537
  t >= r.from && t < r.to && (n = r);
2528
2538
  return n;
2529
2539
  }
2530
- function Hl(e, t, n) {
2531
- const r = Math.max(1, n?.weeks ?? Eo), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2540
+ function Xl(e, t, n) {
2541
+ const r = Math.max(1, n?.weeks ?? So), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2532
2542
  for (const l of e)
2533
- o.set(Io(l.period), l.value), i.add(l.period.slice(0, 10));
2534
- const s = vo(o, V(t.from, "hour"), r), a = [];
2535
- for (let l = V(t.from, "hour"); l < t.to; l += Ao) {
2543
+ o.set(vo(l.period), l.value), i.add(l.period.slice(0, 10));
2544
+ const s = ko(o, V(t.from, "hour"), r), a = [];
2545
+ for (let l = V(t.from, "hour"); l < t.to; l += Eo) {
2536
2546
  let c = 0, d = 0;
2537
2547
  for (let p = 1; p <= r; p++) {
2538
2548
  const y = l - p * ke, S = o.get(y) ?? (i.has(W(y, "day")) ? 0 : void 0);
@@ -2541,18 +2551,18 @@ function Hl(e, t, n) {
2541
2551
  c += S * g, d += g;
2542
2552
  }
2543
2553
  let u = d > 0 ? c / d * s : 0;
2544
- const f = ko(n?.adjustments, l);
2554
+ const f = wo(n?.adjustments, l);
2545
2555
  f?.absoluteVolume !== void 0 ? u = f.absoluteVolume : f?.factor !== void 0 && (u *= f.factor), a.push({ period: W(l, "hour"), volume: u });
2546
2556
  }
2547
2557
  return a;
2548
2558
  }
2549
- const wo = "schedule_entry", Mo = "workstream";
2550
- function Wl(e) {
2551
- return `${wo}:${e}`;
2552
- }
2553
- function Vl(e) {
2559
+ const Mo = "schedule_entry", Oo = "workstream";
2560
+ function ql(e) {
2554
2561
  return `${Mo}:${e}`;
2555
2562
  }
2563
+ function Ql(e) {
2564
+ return `${Oo}:${e}`;
2565
+ }
2556
2566
  const we = 36e5, F = 864e5;
2557
2567
  function Co(e, t) {
2558
2568
  const n = t === "day" ? F : we, r = [];
@@ -2567,8 +2577,8 @@ function me(e, t, n, r) {
2567
2577
  const o = Math.min(t, r) - Math.max(e, n);
2568
2578
  return o > 0 ? o / 1e3 : 0;
2569
2579
  }
2570
- function zl(e, t, n = {}) {
2571
- const r = n.grain ?? "hour", o = Co(t, r), i = r === "day" ? F : we, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && D(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2580
+ function Jl(e, t, n = {}) {
2581
+ const r = n.grain ?? "hour", o = Co(t, r), i = r === "day" ? F : we, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && R(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2572
2582
  for (const u of a)
2573
2583
  if (!(l && u.userId && !l.has(u.userId))) {
2574
2584
  for (const f of o) {
@@ -2595,9 +2605,9 @@ function zl(e, t, n = {}) {
2595
2605
  if (m <= 0) continue;
2596
2606
  const S = cn(y, p);
2597
2607
  if (S) {
2598
- const [E, x] = S.split(":").map(Number), O = p + E * we + (x ?? 0) * 6e4, w = O + m * 6e4;
2608
+ const [E, x] = S.split(":").map(Number), C = p + E * we + (x ?? 0) * 6e4, w = C + m * 6e4;
2599
2609
  for (const N of o) {
2600
- const k = me(O, w, N, N + i);
2610
+ const k = me(C, w, N, N + i);
2601
2611
  k > 0 && s.set(N, (s.get(N) ?? 0) + k);
2602
2612
  }
2603
2613
  continue;
@@ -2610,7 +2620,7 @@ function zl(e, t, n = {}) {
2610
2620
  }
2611
2621
  return o.map((u) => ({ period: W(u, r), weight: s.get(u) ?? 0 }));
2612
2622
  }
2613
- function Oo(e, t) {
2623
+ function No(e, t) {
2614
2624
  if (e <= 0 || !t.length) return [];
2615
2625
  const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
2616
2626
  if (n <= 0) {
@@ -2619,11 +2629,11 @@ function Oo(e, t) {
2619
2629
  }
2620
2630
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
2621
2631
  }
2622
- function Yl(e, t, n) {
2632
+ function Zl(e, t, n) {
2623
2633
  const r = /* @__PURE__ */ new Map();
2624
2634
  for (const o of e) {
2625
2635
  const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
2626
- for (const a of Oo(o.seconds, s)) {
2636
+ for (const a of No(o.seconds, s)) {
2627
2637
  const l = `${a.period}|${o.userId ?? ""}`, c = r.get(l);
2628
2638
  c ? c.seconds += a.seconds : r.set(l, { ...a, userId: o.userId });
2629
2639
  }
@@ -2632,7 +2642,7 @@ function Yl(e, t, n) {
2632
2642
  (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
2633
2643
  );
2634
2644
  }
2635
- function No(e) {
2645
+ function xo(e) {
2636
2646
  switch (e.kind) {
2637
2647
  case "user":
2638
2648
  return `user:${e.userId}`;
@@ -2642,7 +2652,7 @@ function No(e) {
2642
2652
  return "org";
2643
2653
  }
2644
2654
  }
2645
- function Xl(e) {
2655
+ function eu(e) {
2646
2656
  if (typeof e != "string") return;
2647
2657
  const t = e.trim();
2648
2658
  if (t === "org") return { kind: "org" };
@@ -2654,8 +2664,8 @@ function Xl(e) {
2654
2664
  if (r === "team") return { kind: "team", teamId: o };
2655
2665
  }
2656
2666
  }
2657
- function xo(e) {
2658
- return No(e);
2667
+ function Ro(e) {
2668
+ return xo(e);
2659
2669
  }
2660
2670
  function Do(e) {
2661
2671
  switch (e.kind) {
@@ -2667,21 +2677,21 @@ function Do(e) {
2667
2677
  return { kind: "org" };
2668
2678
  }
2669
2679
  }
2670
- function ql(e) {
2680
+ function tu(e) {
2671
2681
  return e.agentId ? { kind: "user", userId: e.agentId } : Do(e.ownerScope);
2672
2682
  }
2673
- function Ql(e) {
2674
- return xo(e);
2683
+ function nu(e) {
2684
+ return Ro(e);
2675
2685
  }
2676
- const Ro = "playbook-run", Jl = "run";
2677
- function Zl(e, t = 0) {
2678
- return `${Ro}:${e}~${t}`;
2686
+ const $o = "playbook-run", ru = "run";
2687
+ function ou(e, t = 0) {
2688
+ return `${$o}:${e}~${t}`;
2679
2689
  }
2680
- function eu(e) {
2690
+ function iu(e) {
2681
2691
  const t = e.indexOf("~");
2682
2692
  return t < 0 ? e : e.slice(0, t);
2683
2693
  }
2684
- function $o(e, t) {
2694
+ function Lo(e, t) {
2685
2695
  if (!t) return;
2686
2696
  let n = e;
2687
2697
  for (const r of t.split(".")) {
@@ -2690,44 +2700,44 @@ function $o(e, t) {
2690
2700
  }
2691
2701
  return n;
2692
2702
  }
2693
- function tu(e, t) {
2703
+ function su(e, t) {
2694
2704
  return e.targets.find((n) => n.activityTypes.includes(t));
2695
2705
  }
2696
- function nu(e, t) {
2706
+ function au(e, t) {
2697
2707
  if (t)
2698
2708
  return e.targets.find((n) => n.id === t);
2699
2709
  }
2700
- function Lo(e) {
2710
+ function Po(e) {
2701
2711
  return e?.kind === "assignment";
2702
2712
  }
2703
- function ru(e) {
2713
+ function cu(e) {
2704
2714
  const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2705
- return Lo(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";
2715
+ return Po(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";
2706
2716
  }
2707
2717
  const Me = ["suggest", "outward", "auto"];
2708
- function ou(e) {
2718
+ function lu(e) {
2709
2719
  return typeof e == "string" && Me.includes(e);
2710
2720
  }
2711
- function iu(e) {
2721
+ function uu(e) {
2712
2722
  const t = e.playbook?.autonomy ?? e.agent?.autonomy ?? "suggest";
2713
2723
  return e.demoted && t === "auto" ? "outward" : t;
2714
2724
  }
2715
- function su(e, t) {
2725
+ function du(e, t) {
2716
2726
  const n = e ?? "suggest";
2717
2727
  return t && Me.indexOf(t) < Me.indexOf(n) ? t : n;
2718
2728
  }
2719
- function au(e) {
2729
+ function fu(e) {
2720
2730
  return e.replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2721
2731
  }
2722
- function Po(e) {
2732
+ function Ko(e) {
2723
2733
  const t = e.split("__");
2724
2734
  return t[t.length - 1] || e;
2725
2735
  }
2726
- function cu(e) {
2727
- const t = Po(e).replace(/[_.]+/g, " ").trim();
2736
+ function pu(e) {
2737
+ const t = Ko(e).replace(/[_.]+/g, " ").trim();
2728
2738
  return t ? t.charAt(0).toUpperCase() + t.slice(1) : e;
2729
2739
  }
2730
- const lu = [
2740
+ const mu = [
2731
2741
  { name: "text", type: "string" },
2732
2742
  { name: "subject", type: "string" },
2733
2743
  { name: "from", type: "string" },
@@ -2768,10 +2778,10 @@ const lu = [
2768
2778
  // the trigger filter runs — like contactId/companyId above.
2769
2779
  { name: "assigneeUserId", type: "string" }
2770
2780
  ];
2771
- function uu(e, t) {
2781
+ function hu(e, t) {
2772
2782
  return !e.onlyFor || !t?.length ? !0 : t.some((n) => e.onlyFor?.includes(n));
2773
2783
  }
2774
- const du = {
2784
+ const gu = {
2775
2785
  topics: [
2776
2786
  { name: "topicId", type: "string" },
2777
2787
  { name: "topic", type: "string" },
@@ -2785,20 +2795,20 @@ const du = {
2785
2795
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2786
2796
  extract: []
2787
2797
  };
2788
- function Ko(e) {
2798
+ function Uo(e) {
2789
2799
  return `${e.type}:${e.id}`;
2790
2800
  }
2791
- const Uo = "interaction";
2792
- function Fo(e) {
2793
- return e?.type === Uo ? e.id : void 0;
2801
+ const Fo = "interaction";
2802
+ function jo(e) {
2803
+ return e?.type === Fo ? e.id : void 0;
2794
2804
  }
2795
- const jo = 64, Bo = 8e3;
2796
- function fu(e) {
2805
+ const Bo = 64, Go = 8e3;
2806
+ function yu(e) {
2797
2807
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2798
2808
  if (!(!Number.isFinite(t) || t <= 0))
2799
- return Math.min(Math.max(Math.round(t), jo), Bo);
2809
+ return Math.min(Math.max(Math.round(t), Bo), Go);
2800
2810
  }
2801
- const pu = [
2811
+ const bu = [
2802
2812
  "condition",
2803
2813
  "for-each",
2804
2814
  "parallel",
@@ -2809,48 +2819,48 @@ const pu = [
2809
2819
  "agent",
2810
2820
  "wait-for-reply",
2811
2821
  "wait-for-task"
2812
- ], mu = { kind: "workflow", steps: [] };
2813
- function hu(e) {
2822
+ ], _u = { kind: "workflow", steps: [] };
2823
+ function Au(e) {
2814
2824
  return e?.kind === "workflow" ? e.steps : [];
2815
2825
  }
2816
- function gu(e) {
2826
+ function Eu(e) {
2817
2827
  return e?.kind === "procedure" ? e.procedure : void 0;
2818
2828
  }
2819
- function yu(e) {
2829
+ function Su(e) {
2820
2830
  return e.assignmentId ? "assignment" : e.decider?.kind === "procedure" ? "procedure" : "workflow";
2821
2831
  }
2822
- function Go(e) {
2832
+ function Ho(e) {
2823
2833
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2824
2834
  return { total: n, rate: n ? t / n : 0 };
2825
2835
  }
2826
- const Ho = 10, Wo = 0.9;
2827
- function bu(e) {
2828
- const { total: t, rate: n } = Go(e);
2829
- return t >= Ho && n >= Wo;
2836
+ const Wo = 10, Vo = 0.9;
2837
+ function Tu(e) {
2838
+ const { total: t, rate: n } = Ho(e);
2839
+ return t >= Wo && n >= Vo;
2830
2840
  }
2831
- const Vo = ["done", "escalated", "failed", "stopped"];
2832
- function _u(e) {
2833
- return Vo.includes(e);
2841
+ const zo = ["done", "escalated", "failed", "stopped"];
2842
+ function Iu(e) {
2843
+ return zo.includes(e);
2834
2844
  }
2835
- function zo(e) {
2845
+ function Yo(e) {
2836
2846
  return e === "waiting";
2837
2847
  }
2838
- function Au(e) {
2839
- return e === "running" || zo(e);
2848
+ function vu(e) {
2849
+ return e === "running" || Yo(e);
2840
2850
  }
2841
2851
  function un(e) {
2842
2852
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2843
2853
  }
2844
- function Eu(e) {
2854
+ function ku(e) {
2845
2855
  const t = un(e);
2846
- return t ? Ko(t) : void 0;
2856
+ return t ? Uo(t) : void 0;
2847
2857
  }
2848
- function Su(e) {
2849
- return Fo(un(e));
2858
+ function wu(e) {
2859
+ return jo(un(e));
2850
2860
  }
2851
- function Tu(e) {
2861
+ function Mu(e) {
2852
2862
  const t = [], n = /* @__PURE__ */ new Map();
2853
- for (const r of [...e].sort(Yo)) {
2863
+ for (const r of [...e].sort(Xo)) {
2854
2864
  const o = n.get(r.emoji);
2855
2865
  if (o) {
2856
2866
  o.push(r.actor);
@@ -2863,8 +2873,8 @@ function Tu(e) {
2863
2873
  return { emoji: r, count: o.length, actors: o };
2864
2874
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2865
2875
  }
2866
- const Yo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2867
- function Iu(e, t) {
2876
+ const Xo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2877
+ function Ou(e, t) {
2868
2878
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2869
2879
  }
2870
2880
  class dn extends Error {
@@ -2872,36 +2882,36 @@ class dn extends Error {
2872
2882
  super(t), this.name = "UnresolvedRefError";
2873
2883
  }
2874
2884
  }
2875
- const Xo = /^\{\{\s*([\w.]+)\s*\}\}$/, qo = /\{\{\s*([\w.]+)\s*\}\}/g, Qo = /\$[A-Za-z_][\w]*\.[\w.]+/;
2876
- function vu(e, t, n = {}) {
2877
- return Ce(e, t, n);
2885
+ const qo = /^\{\{\s*([\w.]+)\s*\}\}$/, Qo = /\{\{\s*([\w.]+)\s*\}\}/g, Jo = /\$[A-Za-z_][\w]*\.[\w.]+/;
2886
+ function Cu(e, t, n = {}) {
2887
+ return Oe(e, t, n);
2878
2888
  }
2879
- function Ce(e, t, n = {}) {
2880
- return typeof e == "string" ? Jo(e, t, n) : Array.isArray(e) ? e.map((r) => Ce(r, t, n)) : e && typeof e == "object" ? Object.fromEntries(
2889
+ function Oe(e, t, n = {}) {
2890
+ return typeof e == "string" ? Zo(e, t, n) : Array.isArray(e) ? e.map((r) => Oe(r, t, n)) : e && typeof e == "object" ? Object.fromEntries(
2881
2891
  Object.entries(e).map(([r, o]) => [
2882
2892
  r,
2883
- Ce(o, t, {
2893
+ Oe(o, t, {
2884
2894
  ...n,
2885
2895
  where: `${n.where ?? "een parameter"} "${r}"`
2886
2896
  })
2887
2897
  ])
2888
2898
  ) : e;
2889
2899
  }
2890
- function Jo(e, t, n) {
2900
+ function Zo(e, t, n) {
2891
2901
  const r = n.onMissing === "throw";
2892
2902
  if (r) {
2893
- const i = e.match(Qo);
2903
+ const i = e.match(Jo);
2894
2904
  if (i)
2895
2905
  throw new dn(
2896
2906
  `"${i[0]}" in ${n.where ?? "een waarde"} is de oude schrijfwijze; gebruik {{ ${i[0].slice(1)} }}.`
2897
2907
  );
2898
2908
  }
2899
- const o = e.match(Xo);
2909
+ const o = e.match(qo);
2900
2910
  if (o) {
2901
2911
  const i = St(t, o[1], e, n);
2902
2912
  return i === void 0 && !r ? "" : i;
2903
2913
  }
2904
- return e.replace(qo, (i, s) => {
2914
+ return e.replace(Qo, (i, s) => {
2905
2915
  const a = St(t, s, i, n);
2906
2916
  return a == null ? "" : typeof a == "object" ? JSON.stringify(a) : String(a);
2907
2917
  });
@@ -2914,9 +2924,9 @@ function St(e, t, n, r) {
2914
2924
  `onbekende verwijzing ${n} in ${r.where ?? "een waarde"}: "${o}" bestaat niet. Beschikbaar: ${i.length ? i.join(", ") : "(nog niets)"}`
2915
2925
  );
2916
2926
  }
2917
- return Zo(e, t);
2927
+ return ei(e, t);
2918
2928
  }
2919
- function Zo(e, t) {
2929
+ function ei(e, t) {
2920
2930
  let n = e;
2921
2931
  for (const r of t.split(".")) {
2922
2932
  if (n == null || typeof n != "object") return;
@@ -2924,11 +2934,11 @@ function Zo(e, t) {
2924
2934
  }
2925
2935
  return n;
2926
2936
  }
2927
- const ku = /* @__PURE__ */ new Set(["filled", "empty"]);
2928
- function wu() {
2937
+ const Nu = /* @__PURE__ */ new Set(["filled", "empty"]);
2938
+ function xu() {
2929
2939
  return { kind: "rule", op: "==", varPath: "", value: "" };
2930
2940
  }
2931
- const ei = /* @__PURE__ */ new Set(["==", "!=", ">", "<", ">=", "<="]);
2941
+ const ti = /* @__PURE__ */ new Set(["==", "!=", ">", "<", ">=", "<="]);
2932
2942
  function he(e) {
2933
2943
  return !!e && typeof e == "object" && "var" in e && typeof e.var == "string";
2934
2944
  }
@@ -2936,13 +2946,13 @@ function Tt(e) {
2936
2946
  const t = typeof e;
2937
2947
  return t === "string" || t === "number" || t === "boolean";
2938
2948
  }
2939
- function ti(e) {
2949
+ function ni(e) {
2940
2950
  if (e === !0 || e == null) return { kind: "group", op: "and", children: [] };
2941
2951
  if (e === !1) return null;
2942
- const t = Oe(e);
2952
+ const t = Ce(e);
2943
2953
  return t ? t.kind === "group" ? t : { kind: "group", op: "and", children: [t] } : null;
2944
2954
  }
2945
- function Oe(e) {
2955
+ function Ce(e) {
2946
2956
  if (typeof e != "object" || e === null) return null;
2947
2957
  const t = Object.keys(e);
2948
2958
  if (t.length !== 1) return null;
@@ -2951,7 +2961,7 @@ function Oe(e) {
2951
2961
  if (!Array.isArray(r)) return null;
2952
2962
  const o = [];
2953
2963
  for (const i of r) {
2954
- const s = Oe(i);
2964
+ const s = Ce(i);
2955
2965
  if (!s) return null;
2956
2966
  o.push(s);
2957
2967
  }
@@ -2962,7 +2972,7 @@ function Oe(e) {
2962
2972
  if (he(o))
2963
2973
  return { kind: "rule", op: n === "!!" ? "filled" : "empty", varPath: o.var, value: "" };
2964
2974
  if (n === "!!") return null;
2965
- const i = Oe(r);
2975
+ const i = Ce(r);
2966
2976
  return i ? { kind: "not", child: i } : null;
2967
2977
  }
2968
2978
  if (n === "in") {
@@ -2970,7 +2980,7 @@ function Oe(e) {
2970
2980
  const [o, i] = r;
2971
2981
  return !he(i) || !Tt(o) ? null : { kind: "rule", op: "in", varPath: i.var, value: o };
2972
2982
  }
2973
- if (ei.has(n)) {
2983
+ if (ti.has(n)) {
2974
2984
  if (!Array.isArray(r) || r.length !== 2) return null;
2975
2985
  const [o, i] = r;
2976
2986
  return !he(o) || !Tt(i) ? null : { kind: "rule", op: n, varPath: o.var, value: i };
@@ -2980,8 +2990,8 @@ function Oe(e) {
2980
2990
  function ge(e) {
2981
2991
  return e.kind === "group" ? e.children.length === 0 ? !0 : e.children.length === 1 ? ge(e.children[0]) : { [e.op]: e.children.map(ge) } : e.kind === "not" ? { "!": ge(e.child) } : e.op === "filled" ? { "!!": [{ var: e.varPath }] } : e.op === "empty" ? { "!": [{ var: e.varPath }] } : e.op === "in" ? { in: [e.value, { var: e.varPath }] } : { [e.op]: [{ var: e.varPath }, e.value] };
2982
2992
  }
2983
- function Mu(e) {
2984
- const t = ti(e);
2993
+ function Ru(e) {
2994
+ const t = ni(e);
2985
2995
  return t && Ne(t) || null;
2986
2996
  }
2987
2997
  function Ne(e) {
@@ -3003,7 +3013,7 @@ const ye = [
3003
3013
  { min: 0, max: 7 }
3004
3014
  // day of week
3005
3015
  ];
3006
- function ni(e, t, n) {
3016
+ function ri(e, t, n) {
3007
3017
  const r = /* @__PURE__ */ new Set();
3008
3018
  for (const o of e.split(",")) {
3009
3019
  const [i, s] = o.split("/"), a = s === void 0 ? 1 : Number(s);
@@ -3024,7 +3034,7 @@ function fn(e) {
3024
3034
  for (let l = 0; l < ye.length; l++) {
3025
3035
  const c = ye[l], d = t[l];
3026
3036
  if (!c || d === void 0) return null;
3027
- const u = ni(d, c.min, c.max);
3037
+ const u = ri(d, c.min, c.max);
3028
3038
  if (!u) return null;
3029
3039
  n.push(u);
3030
3040
  }
@@ -3039,17 +3049,17 @@ function fn(e) {
3039
3049
  anyDayOfWeek: t[4] === "*"
3040
3050
  };
3041
3051
  }
3042
- function Cu(e) {
3052
+ function Du(e) {
3043
3053
  return fn(e) !== null;
3044
3054
  }
3045
- function ri(e, t) {
3055
+ function oi(e, t) {
3046
3056
  const n = fn(e);
3047
3057
  if (!n || !n.minute.has(t.getUTCMinutes()) || !n.hour.has(t.getUTCHours()) || !n.month.has(t.getUTCMonth() + 1)) return !1;
3048
3058
  const r = n.dayOfMonth.has(t.getUTCDate()), o = n.dayOfWeek.has(t.getUTCDay());
3049
3059
  return n.anyDayOfMonth && n.anyDayOfWeek ? !0 : n.anyDayOfMonth ? o : n.anyDayOfWeek ? r : r || o;
3050
3060
  }
3051
- const oi = "@schedule", It = 3;
3052
- function ii(e, t, n) {
3061
+ const ii = "@schedule", It = 3;
3062
+ function si(e, t, n) {
3053
3063
  const r = [], o = e.depth ?? 0;
3054
3064
  if (o >= It)
3055
3065
  return {
@@ -3066,7 +3076,7 @@ function ii(e, t, n) {
3066
3076
  continue;
3067
3077
  }
3068
3078
  if (a.trigger.kind === "schedule") {
3069
- if (e.name !== oi) {
3079
+ if (e.name !== ii) {
3070
3080
  r.push({ ruleId: a.id, reason: "luistert op de klok" });
3071
3081
  continue;
3072
3082
  }
@@ -3075,7 +3085,7 @@ function ii(e, t, n) {
3075
3085
  r.push({ ruleId: a.id, reason: "tik zonder tijdstip" });
3076
3086
  continue;
3077
3087
  }
3078
- if (!ri(a.trigger.cron, new Date(l))) {
3088
+ if (!oi(a.trigger.cron, new Date(l))) {
3079
3089
  r.push({ ruleId: a.id, reason: `niet aan de beurt (${a.trigger.cron})` });
3080
3090
  continue;
3081
3091
  }
@@ -3098,11 +3108,11 @@ function ii(e, t, n) {
3098
3108
  }
3099
3109
  return { matched: s, skipped: r };
3100
3110
  }
3101
- function Ou(e, t) {
3111
+ function $u(e, t) {
3102
3112
  return { causedByRule: t, depth: (e.depth ?? 0) + 1 };
3103
3113
  }
3104
- function Nu(e, t) {
3105
- const { event: n, rules: r } = e.input, { matched: o, skipped: i } = ii(n, r, t), s = o.flatMap((c) => c.rule.then.map((d) => d.action)), a = e.expected?.actions ?? [];
3114
+ function Lu(e, t) {
3115
+ const { event: n, rules: r } = e.input, { matched: o, skipped: i } = si(n, r, t), s = o.flatMap((c) => c.rule.then.map((d) => d.action)), a = e.expected?.actions ?? [];
3106
3116
  if (s.length === a.length && s.every((c, d) => c === a[d]))
3107
3117
  return { caseId: e.id, ok: !0 };
3108
3118
  const l = i.map((c) => `${c.ruleId}: ${c.reason}`).join(" · ");
@@ -3113,48 +3123,48 @@ function Nu(e, t) {
3113
3123
  note: a.length ? `verwacht [${a.join(", ")}], kreeg [${s.join(", ")}]${l ? ` — ${l}` : ""}` : `mocht niet vuren, maar deed [${s.join(", ")}]`
3114
3124
  };
3115
3125
  }
3116
- function si(e, t) {
3126
+ function ai(e, t) {
3117
3127
  return e.wrote && t in e.wrote ? e.wrote[t] : t in e.params ? e.params[t] : "";
3118
3128
  }
3119
- function ai(e, t) {
3129
+ function ci(e, t) {
3120
3130
  return e.fields.filter(
3121
- (n) => t?.[n] !== void 0 && t[n] !== si(e, n)
3131
+ (n) => t?.[n] !== void 0 && t[n] !== ai(e, n)
3122
3132
  );
3123
3133
  }
3124
- function xu(e, t, n) {
3125
- return n ? "undone" : !t || !e.length ? "unknown" : e.some((r) => ai(r, t).length) ? "corrected" : "kept";
3134
+ function Pu(e, t, n) {
3135
+ return n ? "undone" : !t || !e.length ? "unknown" : e.some((r) => ci(r, t).length) ? "corrected" : "kept";
3126
3136
  }
3127
- function Du(e) {
3137
+ function Ku(e) {
3128
3138
  return e === "string[]" ? ["in"] : e === "boolean" ? ["==", "!="] : e === "number" || e === "date" ? ["==", "!=", ">", "<", ">=", "<="] : ["==", "!=", "in", "filled", "empty"];
3129
3139
  }
3130
- function Ru(e) {
3140
+ function Uu(e) {
3131
3141
  return `subject.${e.path}`;
3132
3142
  }
3133
- function $u(e, t) {
3143
+ function Fu(e, t) {
3134
3144
  return e.events.find((n) => n.name === t);
3135
3145
  }
3136
- function Lu(e, t) {
3137
- return e.filter((n) => $o(t, n.path) === void 0).map((n) => n.path);
3146
+ function ju(e, t) {
3147
+ return e.filter((n) => Lo(t, n.path) === void 0).map((n) => n.path);
3138
3148
  }
3139
- const xe = 6e4, ci = 36e5, X = 864e5, pn = 800;
3149
+ const xe = 6e4, li = 36e5, X = 864e5, pn = 800;
3140
3150
  function vt(e, t) {
3141
3151
  const n = Date.UTC(e, t + 1, 0);
3142
- return n - new Date(n).getUTCDay() * X + ci;
3152
+ return n - new Date(n).getUTCDay() * X + li;
3143
3153
  }
3144
- function li(e) {
3154
+ function ui(e) {
3145
3155
  const t = new Date(e).getUTCFullYear();
3146
3156
  return e >= vt(t, 2) && e < vt(t, 9);
3147
3157
  }
3148
3158
  function mn(e, t) {
3149
- const n = t.dst === "eu" && li(e) ? 60 : 0;
3159
+ const n = t.dst === "eu" && ui(e) ? 60 : 0;
3150
3160
  return (t.utcOffsetMinutes + n) * xe;
3151
3161
  }
3152
- function ui(e) {
3162
+ function di(e) {
3153
3163
  return (e + 3) % 7 + 1;
3154
3164
  }
3155
3165
  function hn(e, t) {
3156
3166
  const n = mn(e, t), r = e + n, o = Math.floor(r / X);
3157
- if (!t.days.includes(ui(o))) return null;
3167
+ if (!t.days.includes(di(o))) return null;
3158
3168
  const i = o * X;
3159
3169
  return {
3160
3170
  open: i + t.fromMinutes * xe - n,
@@ -3165,7 +3175,7 @@ function gn(e, t) {
3165
3175
  const n = mn(e, t), r = e + n;
3166
3176
  return (Math.floor(r / X) + 1) * X - n;
3167
3177
  }
3168
- function De(e, t, n) {
3178
+ function Re(e, t, n) {
3169
3179
  if (t <= e) return 0;
3170
3180
  if (!n) return t - e;
3171
3181
  let r = 0, o = e;
@@ -3196,61 +3206,61 @@ function He(e, t, n) {
3196
3206
  }
3197
3207
  return e + t;
3198
3208
  }
3199
- function Pu(e) {
3209
+ function Bu(e) {
3200
3210
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
3201
3211
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
3202
3212
  }
3203
- const Re = 1, $e = 2, Le = 4;
3204
- function Ku(e) {
3205
- return e === "snoozed" ? Re : $e;
3213
+ const De = 1, $e = 2, Le = 4;
3214
+ function Gu(e) {
3215
+ return e === "snoozed" ? De : $e;
3206
3216
  }
3207
3217
  function We(e) {
3208
3218
  const t = e.calendar;
3209
3219
  return t && Array.isArray(t.days) ? t : null;
3210
3220
  }
3211
- const Uu = [
3221
+ const Hu = [
3212
3222
  "speed_of_answer",
3213
3223
  "first_response",
3214
3224
  "next_response",
3215
3225
  "resolution",
3216
3226
  "close"
3217
- ], Fu = ["snoozed", "waiting_for_customer"], di = 6e4, yn = ["speed_of_answer", "first_response", "next_response"], fi = [...yn, "resolution", "close"];
3227
+ ], Wu = ["snoozed", "waiting_for_customer"], fi = 6e4, yn = ["speed_of_answer", "first_response", "next_response"], pi = [...yn, "resolution", "close"];
3218
3228
  function q(e) {
3219
3229
  return e.state === "running" || e.state === "paused";
3220
3230
  }
3221
- function pi(e, t) {
3231
+ function mi(e, t) {
3222
3232
  return q(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
3223
3233
  }
3224
3234
  function kt(e) {
3225
3235
  return q(e) ? { state: "void" } : null;
3226
3236
  }
3227
- function mi(e, t, n, r) {
3237
+ function hi(e, t, n, r) {
3228
3238
  if (!q(e) || (e.pauseBits & t) !== 0) return null;
3229
3239
  const o = e.pauseBits | t;
3230
- return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: De(n, e.dueAt, r) };
3240
+ return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: Re(n, e.dueAt, r) };
3231
3241
  }
3232
- function hi(e, t, n, r) {
3242
+ function gi(e, t, n, r) {
3233
3243
  if (!q(e) || (e.pauseBits & t) === 0) return null;
3234
3244
  const o = e.pauseBits & ~t;
3235
3245
  return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: He(n, e.remainingMs, r) };
3236
3246
  }
3237
- function ju({ event: e, at: t, now: n, clocks: r, profile: o }) {
3247
+ function Vu({ event: e, at: t, now: n, clocks: r, profile: o }) {
3238
3248
  const i = We(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), l = [], c = (g, h) => {
3239
3249
  h && (l.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
3240
3250
  }, d = (g) => {
3241
3251
  for (const h of a)
3242
- h.metric === g && c(h, pi(h, s));
3252
+ h.metric === g && c(h, mi(h, s));
3243
3253
  }, u = (g) => {
3244
3254
  for (const h of a)
3245
3255
  g.includes(h.metric) && c(h, kt(h));
3246
3256
  }, f = (g) => {
3247
- for (const h of a) c(h, mi(h, g, s, i));
3248
- }, p = (g) => {
3249
3257
  for (const h of a) c(h, hi(h, g, s, i));
3258
+ }, p = (g) => {
3259
+ for (const h of a) c(h, gi(h, g, s, i));
3250
3260
  }, 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 && q(h)), S = (g, h) => {
3251
- const E = o.targets.find((O) => O.metric === g);
3261
+ const E = o.targets.find((C) => C.metric === g);
3252
3262
  if (!E) return;
3253
- const x = E.minutes * di;
3263
+ const x = E.minutes * fi;
3254
3264
  l.push({
3255
3265
  op: "start",
3256
3266
  metric: g,
@@ -3293,10 +3303,10 @@ function ju({ event: e, at: t, now: n, clocks: r, profile: o }) {
3293
3303
  m("resolution") || S("resolution", s), m("close") || S("close", s);
3294
3304
  break;
3295
3305
  case "snoozed":
3296
- o.pauseOn.includes("snoozed") && f(Re);
3306
+ o.pauseOn.includes("snoozed") && f(De);
3297
3307
  break;
3298
3308
  case "unsnoozed":
3299
- p(Re);
3309
+ p(De);
3300
3310
  break;
3301
3311
  // Not gated on `profile.pauseOn`, unlike the two above: this is a person deciding about
3302
3312
  // one conversation, not a profile setting. `resumeAll` only lifts the bit it is given, so
@@ -3308,33 +3318,33 @@ function ju({ event: e, at: t, now: n, clocks: r, profile: o }) {
3308
3318
  p(Le);
3309
3319
  break;
3310
3320
  case "discarded":
3311
- u(fi);
3321
+ u(pi);
3312
3322
  break;
3313
3323
  }
3314
3324
  return l;
3315
3325
  }
3316
- function gi(e) {
3326
+ function yi(e) {
3317
3327
  return e.state === "running" || e.state === "paused";
3318
3328
  }
3319
- function Bu(e) {
3329
+ function zu(e) {
3320
3330
  return (e.pauseBits & Le) !== 0;
3321
3331
  }
3322
3332
  function Pe(e, t) {
3323
3333
  const n = We(e);
3324
- return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -De(e.dueAt, t, n) : De(t, e.dueAt, n);
3334
+ return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -Re(e.dueAt, t, n) : Re(t, e.dueAt, n);
3325
3335
  }
3326
- function Gu(e, t) {
3336
+ function Yu(e, t) {
3327
3337
  return e.state === "paused" ? He(t, e.remainingMs, We(e)) : e.dueAt;
3328
3338
  }
3329
- function Hu(e, t) {
3330
- const n = e.filter(gi);
3339
+ function Xu(e, t) {
3340
+ const n = e.filter(yi);
3331
3341
  if (!n.length) return;
3332
3342
  const r = n.filter((i) => i.state === "running");
3333
3343
  return (r.length ? r : n).reduce(
3334
3344
  (i, s) => Pe(s, t) < Pe(i, t) ? s : i
3335
3345
  );
3336
3346
  }
3337
- function Wu(e, t) {
3347
+ function qu(e, t) {
3338
3348
  if (e.state === "missed") return "breached";
3339
3349
  if (e.state === "hit") return "met";
3340
3350
  if (e.state === "paused") return "paused";
@@ -3342,41 +3352,41 @@ function Wu(e, t) {
3342
3352
  const n = Pe(e, t);
3343
3353
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
3344
3354
  }
3345
- function Vu(e) {
3355
+ function Qu(e) {
3346
3356
  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);
3347
3357
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
3348
3358
  }
3349
- const yi = "strategy_item";
3359
+ const bi = "strategy_item";
3350
3360
  function bn(e) {
3351
- return `${yi}:${e}`;
3361
+ return `${bi}:${e}`;
3352
3362
  }
3353
- function zu(e, t = 25) {
3363
+ function Ju(e, t = 25) {
3354
3364
  const n = /* @__PURE__ */ new Set([bn(e.id)]);
3355
3365
  for (const r of e.ancestorKeys ?? []) n.add(r);
3356
3366
  return Array.from(n).slice(0, t);
3357
3367
  }
3358
- function Yu(e) {
3368
+ function Zu(e) {
3359
3369
  return e ? [...e.ancestorKeys ?? [], bn(e.id)] : [];
3360
3370
  }
3361
3371
  const se = [
3362
3372
  { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
3363
3373
  { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
3364
3374
  { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
3365
- ], bi = 999, _i = 7;
3366
- function Ai(e, t = se) {
3375
+ ], _i = 999, Ai = 7;
3376
+ function Ei(e, t = se) {
3367
3377
  return t.find((n) => n.key === e);
3368
3378
  }
3369
3379
  function Ke(e, t = se) {
3370
- return Ai(e, t)?.order ?? bi;
3380
+ return Ei(e, t)?.order ?? _i;
3371
3381
  }
3372
- function Xu(e, t, n = se) {
3382
+ function ed(e, t, n = se) {
3373
3383
  return Ke(t, n) <= Ke(e, n);
3374
3384
  }
3375
- function qu(e, t = se) {
3385
+ function td(e, t = se) {
3376
3386
  const n = Ke(e, t);
3377
3387
  return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
3378
3388
  }
3379
- function Qu(e) {
3389
+ function nd(e) {
3380
3390
  const t = e.trim().toLowerCase();
3381
3391
  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;
3382
3392
  }
@@ -3389,52 +3399,52 @@ const Ue = {
3389
3399
  achieved: "closed",
3390
3400
  missed: "closed"
3391
3401
  };
3392
- function Ju(e) {
3402
+ function rd(e) {
3393
3403
  return Ue[e] ?? "open";
3394
3404
  }
3395
- function Zu(e) {
3405
+ function od(e) {
3396
3406
  return Object.keys(Ue).filter(
3397
3407
  (t) => e.includes(Ue[t])
3398
3408
  );
3399
3409
  }
3400
- const Ei = 864e5, ae = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
3401
- function ed(e, t) {
3410
+ const Si = 864e5, ae = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
3411
+ function id(e, t) {
3402
3412
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
3403
3413
  if (!Number.isFinite(t)) return 0;
3404
3414
  const i = n === "down" ? t <= o : t >= o, s = o - r;
3405
3415
  return (n === "down" ? s < 0 : s > 0) ? ae((t - r) / s) : i ? 1 : 0;
3406
3416
  }
3407
- function td(e, t) {
3417
+ function sd(e, t) {
3408
3418
  const { startDate: n, targetDate: r } = e;
3409
3419
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
3410
3420
  return ae((t - n) / (r - n));
3411
3421
  }
3412
- const Si = 0.1, Ti = 0.25;
3413
- function nd(e, t) {
3422
+ const Ti = 0.1, Ii = 0.25;
3423
+ function ad(e, t) {
3414
3424
  if (typeof e != "number" || typeof t != "number") return;
3415
3425
  if (e >= 1) return "achieved";
3416
3426
  const n = t - e;
3417
- return n >= Ti ? "off_track" : n >= Si ? "at_risk" : "on_track";
3427
+ return n >= Ii ? "off_track" : n >= Ti ? "at_risk" : "on_track";
3418
3428
  }
3419
- function rd(e, t) {
3429
+ function cd(e, t) {
3420
3430
  if (t)
3421
3431
  return ae(e / t);
3422
3432
  }
3423
- function od(e) {
3433
+ function ld(e) {
3424
3434
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
3425
3435
  if (t.length)
3426
3436
  return ae(t.reduce((n, r) => n + r, 0) / t.length);
3427
3437
  }
3428
- function id(e, t) {
3438
+ function ud(e, t) {
3429
3439
  const n = e.lastCheckInAt ?? e.createdAt;
3430
3440
  if (typeof n != "number") return 0;
3431
- const r = (e.checkInEveryDays ?? _i) * Ei, o = t - n - r;
3441
+ const r = (e.checkInEveryDays ?? Ai) * Si, o = t - n - r;
3432
3442
  return o > 0 ? o : 0;
3433
3443
  }
3434
- function sd(e) {
3444
+ function dd(e) {
3435
3445
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
3436
3446
  }
3437
- function ad(e) {
3447
+ function fd(e) {
3438
3448
  const t = /* @__PURE__ */ new Map(), n = [...e].sort((r, o) => r.startedAt - o.startedAt);
3439
3449
  for (const r of n) {
3440
3450
  const o = `${r.workType ?? ""}|${r.scopeKey ?? ""}`, i = t.get(o) ?? {
@@ -3451,29 +3461,29 @@ function ad(e) {
3451
3461
  }
3452
3462
  return [...t.values()];
3453
3463
  }
3454
- function cd(e, t) {
3464
+ function pd(e, t) {
3455
3465
  const n = e.accumulatedSeconds || 0;
3456
3466
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
3457
3467
  }
3458
- function ld(e, t) {
3468
+ function md(e, t) {
3459
3469
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
3460
3470
  if (!t || t === "exact") return n * 60;
3461
3471
  const r = Number(t);
3462
3472
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
3463
3473
  }
3464
- function ud(e) {
3474
+ function hd(e) {
3465
3475
  const t = Math.max(0, Math.round(e / 60));
3466
3476
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
3467
3477
  }
3468
- function dd(e) {
3478
+ function gd(e) {
3469
3479
  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);
3470
3480
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
3471
3481
  }
3472
- function Ii(e) {
3482
+ function vi(e) {
3473
3483
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3474
3484
  }
3475
- function fd(e, t) {
3476
- const n = Ii(e) || "werksoort", r = new Set(t);
3485
+ function yd(e, t) {
3486
+ const n = vi(e) || "werksoort", r = new Set(t);
3477
3487
  if (!r.has(n)) return n;
3478
3488
  for (let o = 2; o < 500; o++) {
3479
3489
  const i = `${n}-${o}`;
@@ -3481,29 +3491,29 @@ function fd(e, t) {
3481
3491
  }
3482
3492
  return `${n}-${r.size + 1}`;
3483
3493
  }
3484
- function pd(e, t) {
3494
+ function bd(e, t) {
3485
3495
  const n = e.ownerScope;
3486
3496
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
3487
3497
  }
3488
- function md(e) {
3489
- return e.filter((t) => !t.archived).sort(vi);
3498
+ function _d(e) {
3499
+ return e.filter((t) => !t.archived).sort(ki);
3490
3500
  }
3491
- function vi(e, t) {
3501
+ function ki(e, t) {
3492
3502
  const n = (e.order ?? 0) - (t.order ?? 0);
3493
3503
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
3494
3504
  }
3495
- const ki = 20, wi = 20, be = 300;
3505
+ const wi = 20, Mi = 20, be = 300;
3496
3506
  function K(e) {
3497
3507
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
3498
3508
  }
3499
- function Mi(e) {
3509
+ function Oi(e) {
3500
3510
  const t = e.replace(/\s+/g, " ").trim();
3501
3511
  if (t.length <= be) return t;
3502
3512
  const n = t.slice(0, be), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
3503
3513
  return r > be * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
3504
3514
  }
3505
- function hd(e, t) {
3506
- const n = Mi(t.text), r = K(n);
3515
+ function Ad(e, t) {
3516
+ const n = Oi(t.text), r = K(n);
3507
3517
  if (!r || (e.examples ?? []).some((s) => K(s) === r)) return null;
3508
3518
  const o = e.exampleCandidates ?? [], i = o.findIndex((s) => K(s.text) === r);
3509
3519
  if (i >= 0) {
@@ -3511,27 +3521,27 @@ function hd(e, t) {
3511
3521
  const s = [...o];
3512
3522
  return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, wt(s);
3513
3523
  }
3514
- return wt([{ ...t, text: n }, ...o]).slice(0, wi);
3524
+ return wt([{ ...t, text: n }, ...o]).slice(0, Mi);
3515
3525
  }
3516
3526
  function wt(e) {
3517
3527
  return [...e].sort(
3518
3528
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
3519
3529
  );
3520
3530
  }
3521
- function gd(e, t) {
3531
+ function Ed(e, t) {
3522
3532
  const n = K(t), r = (e.examples ?? []).filter((i) => i.trim());
3523
- return { examples: r.some((i) => K(i) === n) ? r : [...r, t].slice(-ki), exampleCandidates: Ci(e, t) };
3533
+ return { examples: r.some((i) => K(i) === n) ? r : [...r, t].slice(-wi), exampleCandidates: Ci(e, t) };
3524
3534
  }
3525
3535
  function Ci(e, t) {
3526
3536
  const n = K(t);
3527
3537
  return (e.exampleCandidates ?? []).filter((r) => K(r.text) !== n);
3528
3538
  }
3529
- function Oi(e, t) {
3539
+ function Ni(e, t) {
3530
3540
  const n = e.ownerScope;
3531
3541
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
3532
3542
  }
3533
- function yd(e, t) {
3534
- return e.filter((n) => Oi(n, t));
3543
+ function Sd(e, t) {
3544
+ return e.filter((n) => Ni(n, t));
3535
3545
  }
3536
3546
  const Ve = [
3537
3547
  {
@@ -3611,13 +3621,13 @@ const Ve = [
3611
3621
  "invoice",
3612
3622
  "credit_note"
3613
3623
  ];
3614
- function bd() {
3624
+ function Td() {
3615
3625
  const e = /* @__PURE__ */ new Map();
3616
3626
  for (const t of Ve)
3617
3627
  _n.includes(t.key) && (e.has(t.path) || e.set(t.path, t));
3618
3628
  return [...e.values()];
3619
3629
  }
3620
- function C(e) {
3630
+ function O(e) {
3621
3631
  return Ve.find((t) => t.key === e) ?? {
3622
3632
  key: e,
3623
3633
  label: e,
@@ -3631,7 +3641,7 @@ function C(e) {
3631
3641
  convertsTo: []
3632
3642
  };
3633
3643
  }
3634
- const _d = {
3644
+ const Id = {
3635
3645
  draft: "Concept",
3636
3646
  sent: "Verstuurd",
3637
3647
  accepted: "Geaccepteerd",
@@ -3646,16 +3656,16 @@ const _d = {
3646
3656
  cancelled: "Geannuleerd",
3647
3657
  superseded: "Vervangen"
3648
3658
  };
3649
- function Ni(e, t) {
3650
- return C(e).transitions[t] ?? [];
3659
+ function xi(e, t) {
3660
+ return O(e).transitions[t] ?? [];
3651
3661
  }
3652
- function Ad(e, t, n) {
3653
- return Ni(e, t).includes(n);
3662
+ function vd(e, t, n) {
3663
+ return xi(e, t).includes(n);
3654
3664
  }
3655
- function xi(e) {
3665
+ function Ri(e) {
3656
3666
  return e.issuedAt != null;
3657
3667
  }
3658
- const Ed = [
3668
+ const kd = [
3659
3669
  "status",
3660
3670
  "fileRef",
3661
3671
  "number",
@@ -3663,7 +3673,7 @@ const Ed = [
3663
3673
  "postedAt",
3664
3674
  "dunning",
3665
3675
  "updatedAt"
3666
- ], Sd = [
3676
+ ], wd = [
3667
3677
  "companyId",
3668
3678
  "contactId",
3669
3679
  "dealItemId",
@@ -3679,7 +3689,7 @@ const Ed = [
3679
3689
  "periodTo",
3680
3690
  "paymentTerm",
3681
3691
  "lines"
3682
- ], Td = [
3692
+ ], Md = [
3683
3693
  "contactId",
3684
3694
  "dealItemId",
3685
3695
  "title",
@@ -3692,13 +3702,13 @@ const Ed = [
3692
3702
  "periodFrom",
3693
3703
  "periodTo"
3694
3704
  ];
3695
- function Id(e, t) {
3696
- if (!_n.includes(t) || !C(e.kindKey).convertsTo.includes(t)) return !1;
3697
- const n = C(t);
3698
- return !n.credits || n.credits === e.kindKey && xi(e);
3705
+ function Od(e, t) {
3706
+ if (!_n.includes(t) || !O(e.kindKey).convertsTo.includes(t)) return !1;
3707
+ const n = O(t);
3708
+ return !n.credits || n.credits === e.kindKey && Ri(e);
3699
3709
  }
3700
3710
  function Di(e, t) {
3701
- const n = C(t).signFlip !== C(e.kindKey).signFlip, r = e.lines.map(({ timeEntryIds: o, ...i }) => ({
3711
+ const n = O(t).signFlip !== O(e.kindKey).signFlip, r = e.lines.map(({ timeEntryIds: o, ...i }) => ({
3702
3712
  ...i,
3703
3713
  quantity: n ? -i.quantity : i.quantity,
3704
3714
  netCents: 0,
@@ -3736,7 +3746,7 @@ function Di(e, t) {
3736
3746
  source: e.source
3737
3747
  };
3738
3748
  }
3739
- function vd(e) {
3749
+ function Cd(e) {
3740
3750
  return {
3741
3751
  ...Di(e, e.kindKey),
3742
3752
  sourceTransactionId: e.sourceTransactionId,
@@ -3747,8 +3757,8 @@ function vd(e) {
3747
3757
  totals: e.totals
3748
3758
  };
3749
3759
  }
3750
- function kd(e, t = {}) {
3751
- const n = C(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
3760
+ function Nd(e, t = {}) {
3761
+ const n = O(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
3752
3762
  return {
3753
3763
  customer: {
3754
3764
  name: t.companyName ?? "",
@@ -3756,7 +3766,7 @@ function kd(e, t = {}) {
3756
3766
  // One token per line of the address, plus `street` on its own for a template that wants
3757
3767
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
3758
3768
  // recipient block missing its street is exactly what the issue gate has to refuse.
3759
- address: Li(t.companyAddress),
3769
+ address: Pi(t.companyAddress),
3760
3770
  street: t.companyAddress?.street ?? "",
3761
3771
  house_number: t.companyAddress?.houseNumber ?? "",
3762
3772
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3794,7 +3804,7 @@ function kd(e, t = {}) {
3794
3804
  }
3795
3805
  };
3796
3806
  }
3797
- function wd(e, t = [], n = Ri) {
3807
+ function xd(e, t = [], n = $i) {
3798
3808
  const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((l) => l.key === a)?.percent ?? 0, i = {
3799
3809
  block_id: "lines",
3800
3810
  type: "table",
@@ -3809,8 +3819,8 @@ function wd(e, t = [], n = Ri) {
3809
3819
  // A text line spans as a heading: empty money cells would read as "free".
3810
3820
  [a.name, "", "", ""]
3811
3821
  ) : [
3812
- $i(a.name, a.description, a.optional, n.optional),
3813
- Pi(a.quantity),
3822
+ Li(a.name, a.description, a.optional, n.optional),
3823
+ Ki(a.quantity),
3814
3824
  $(a.unitPriceCents),
3815
3825
  $(a.netCents)
3816
3826
  ]
@@ -3829,7 +3839,7 @@ function wd(e, t = [], n = Ri) {
3829
3839
  };
3830
3840
  return { lines: [i], totals: [s] };
3831
3841
  }
3832
- const Ri = {
3842
+ const $i = {
3833
3843
  description: "Omschrijving",
3834
3844
  optional: "optioneel",
3835
3845
  quantity: "Aantal",
@@ -3838,14 +3848,14 @@ const Ri = {
3838
3848
  tax: "Btw",
3839
3849
  gross: "Totaal"
3840
3850
  };
3841
- function $i(e, t, n, r) {
3851
+ function Li(e, t, n, r) {
3842
3852
  const o = t ? `${e} — ${t}` : e;
3843
3853
  return n ? `${o} (${r})` : o;
3844
3854
  }
3845
- function Li(e) {
3855
+ function Pi(e) {
3846
3856
  return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3847
3857
  }
3848
- function Pi(e) {
3858
+ function Ki(e) {
3849
3859
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3850
3860
  }
3851
3861
  function U(e) {
@@ -3853,21 +3863,21 @@ function U(e) {
3853
3863
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3854
3864
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3855
3865
  }
3856
- function Ki(e) {
3857
- const t = C(e), n = t.key, r = t.numbered;
3866
+ function Ui(e) {
3867
+ const t = O(e), n = t.key, r = t.numbered;
3858
3868
  return [
3859
3869
  {
3860
3870
  block_id: "head",
3861
3871
  type: "letterhead",
3862
3872
  fields: [
3863
- ...r ? [{ key: "number", label: Ui[n]?.number ?? "Nummer", value: `{${n}.number}` }] : [],
3873
+ ...r ? [{ key: "number", label: Fi[n]?.number ?? "Nummer", value: `{${n}.number}` }] : [],
3864
3874
  { key: "date", label: "Datum", value: `{${n}.date}` },
3865
3875
  ...r ? [{ key: "due_date", label: "Vervaldatum", value: `{${n}.due_date}` }] : [{ key: "valid_until", label: "Geldig tot", value: `{${n}.valid_until}` }],
3866
3876
  // Required on a credit note: an open token is a hole, and the issue gate refuses holes.
3867
3877
  ...t.credits ? [
3868
3878
  {
3869
3879
  key: "credited_number",
3870
- label: `Op ${C(t.credits).name.toLowerCase()}`,
3880
+ label: `Op ${O(t.credits).name.toLowerCase()}`,
3871
3881
  value: `{${n}.credited_number}`
3872
3882
  }
3873
3883
  ] : [],
@@ -3906,14 +3916,14 @@ function Ki(e) {
3906
3916
  text: `Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`
3907
3917
  }
3908
3918
  ] : [],
3909
- { block_id: "terms", type: "paragraph", text: Ct[n] ?? Ct.quote }
3919
+ { block_id: "terms", type: "paragraph", text: Ot[n] ?? Ot.quote }
3910
3920
  ];
3911
3921
  }
3912
- const Md = (e) => ({
3913
- note: { key: `${C(e).key}.note`, exists: !0 },
3922
+ const Rd = (e) => ({
3923
+ note: { key: `${O(e).key}.note`, exists: !0 },
3914
3924
  // Keyed on the start: a range without one is not a range, and `period_to` alone says nothing.
3915
- period: { key: `${C(e).key}.period_from`, exists: !0 }
3916
- }), Ui = {
3925
+ period: { key: `${O(e).key}.period_from`, exists: !0 }
3926
+ }), Fi = {
3917
3927
  invoice: { number: "Factuurnummer" },
3918
3928
  credit_note: { number: "Creditnotanummer" }
3919
3929
  }, Mt = {
@@ -3929,59 +3939,59 @@ Hierbij onze factuur. Hieronder vindt u de specificatie.`,
3929
3939
  credit_note: `Beste {customer.contact},
3930
3940
 
3931
3941
  Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`
3932
- }, Ct = {
3942
+ }, Ot = {
3933
3943
  quote: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",
3934
3944
  order: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3935
3945
  invoice: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3936
3946
  credit_note: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld."
3937
- }, Cd = Ki("quote"), Fi = Ve.map((e) => e.key), ji = "product";
3938
- function Bi(e, t) {
3947
+ }, Dd = Ui("quote"), ji = Ve.map((e) => e.key), Bi = "product";
3948
+ function Gi(e, t) {
3939
3949
  return `${e}:${t}`;
3940
3950
  }
3941
- function Od(e) {
3942
- return `${ji}:${e}`;
3951
+ function $d(e) {
3952
+ return `${Bi}:${e}`;
3943
3953
  }
3944
- function Nd(e, t) {
3954
+ function Ld(e, t) {
3945
3955
  const n = e.businessEntityId || t;
3946
3956
  if (n)
3947
- return `/apps/sales/${n}/${C(e.kindKey).path}/${e.id}`;
3957
+ return `/apps/sales/${n}/${O(e.kindKey).path}/${e.id}`;
3948
3958
  }
3949
- function xd(e, t) {
3959
+ function Pd(e, t) {
3950
3960
  const n = e.businessEntityId || t;
3951
3961
  return n ? `/apps/sales/${n}/product/${e.id}` : void 0;
3952
3962
  }
3953
- function Dd(e) {
3963
+ function Kd(e) {
3954
3964
  const t = e.indexOf(":");
3955
3965
  if (t < 0) return;
3956
3966
  const n = e.slice(0, t);
3957
- return Fi.includes(n) ? e.slice(t + 1) : void 0;
3967
+ return ji.includes(n) ? e.slice(t + 1) : void 0;
3958
3968
  }
3959
- function Rd(e) {
3960
- const t = /* @__PURE__ */ new Set([Bi(e.kindKey, e.id)]);
3969
+ function Ud(e) {
3970
+ const t = /* @__PURE__ */ new Set([Gi(e.kindKey, e.id)]);
3961
3971
  return e.companyId && t.add(`company:${e.companyId}`), e.contactId && t.add(`contact:${e.contactId}`), e.dealItemId && t.add(`work_item:${e.dealItemId}`), Array.from(t);
3962
3972
  }
3963
- const $d = 4;
3964
- function Ld(e, t) {
3973
+ const Fd = 4;
3974
+ function jd(e, t) {
3965
3975
  const n = String(t).padStart(Math.max(1, e.padding), "0");
3966
3976
  return `${e.prefix}${e.period ? `${e.period}-` : ""}${n}`;
3967
3977
  }
3968
- function Pd(e, t = Date.now()) {
3978
+ function Bd(e, t = Date.now()) {
3969
3979
  return e === "year" ? String(new Date(t).getFullYear()) : "";
3970
3980
  }
3971
- const Kd = [
3981
+ const Gd = [
3972
3982
  "cash",
3973
3983
  "credit",
3974
3984
  "direct_debit",
3975
3985
  "card",
3976
3986
  "other"
3977
3987
  ];
3978
- function Ud(e, t) {
3988
+ function Hd(e, t) {
3979
3989
  return e + Math.max(0, Math.round(t)) * 24 * 60 * 60 * 1e3;
3980
3990
  }
3981
- function Fd(e) {
3991
+ function Wd(e) {
3982
3992
  return { code: e.code, label: e.label, method: e.method, dueDays: e.dueDays };
3983
3993
  }
3984
- const jd = [
3994
+ const Vd = [
3985
3995
  {
3986
3996
  code: "14D",
3987
3997
  label: "Binnen 14 dagen",
@@ -3993,34 +4003,34 @@ const jd = [
3993
4003
  { code: "30D", label: "Binnen 30 dagen", method: "credit", dueDays: 30, order: 1 },
3994
4004
  { code: "CONTANT", label: "Contant", method: "cash", dueDays: 0, order: 2 }
3995
4005
  ];
3996
- function Bd(e) {
4006
+ function zd(e) {
3997
4007
  return e.type === "agent";
3998
4008
  }
3999
- const Gi = [
4009
+ const Hi = [
4000
4010
  "communication:interactions:created",
4001
4011
  "communication:interactions:updated",
4002
4012
  "communication:activities:created",
4003
4013
  "communication:activities:updated"
4004
4014
  ];
4005
- function Gd(e) {
4006
- return Gi.includes(e);
4015
+ function Yd(e) {
4016
+ return Hi.includes(e);
4007
4017
  }
4008
- const Hd = "WORK_COMMENT_ADDED", Wd = "WORK_ITEM_ASSIGNED", Vd = "WORK_ITEM_STATUS_CHANGED";
4009
- function Hi(e, t) {
4018
+ const Xd = "WORK_COMMENT_ADDED", qd = "WORK_ITEM_ASSIGNED", Qd = "WORK_ITEM_STATUS_CHANGED";
4019
+ function Wi(e, t) {
4010
4020
  const n = (r) => {
4011
4021
  const o = new Date(r);
4012
4022
  return o.setHours(0, 0, 0, 0), o.getTime();
4013
4023
  };
4014
- return Math.round((n(e) - n(t)) / Dr);
4024
+ return Math.round((n(e) - n(t)) / Rr);
4015
4025
  }
4016
- function zd(e, t) {
4026
+ function Jd(e, t) {
4017
4027
  if (e.closedAt != null) return { score: P, reasons: [] };
4018
4028
  const n = t.remindersById?.[e.id];
4019
4029
  if (n && n.remindAt > t.now) return { score: P, reasons: [] };
4020
4030
  let r = 0;
4021
4031
  const o = [], i = e.priority ?? "normal";
4022
4032
  if (ne[i] > 0 && (r += ne[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
4023
- const s = Hi(e.dueDate, t.now);
4033
+ const s = Wi(e.dueDate, t.now);
4024
4034
  s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
4025
4035
  }
4026
4036
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
@@ -4035,35 +4045,35 @@ const ze = [
4035
4045
  { key: "deal", label: "type_deal" },
4036
4046
  /** A date others lead up to: what blocks it, or sits under it, is its progress. No duration. */
4037
4047
  { key: "milestone", label: "type_milestone" }
4038
- ], Yd = ze.map((e) => e.key);
4039
- function Xd(e) {
4048
+ ], Zd = ze.map((e) => e.key);
4049
+ function ef(e) {
4040
4050
  return e?.types?.length ? e.types : ze;
4041
4051
  }
4042
- function qd(e, t) {
4052
+ function tf(e, t) {
4043
4053
  return t.find((n) => n.key === e);
4044
4054
  }
4045
- function Qd(e) {
4055
+ function nf(e) {
4046
4056
  const t = e.trim().toLowerCase();
4047
4057
  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("milestone") || t.includes("mijlpaal") ? "milestone" : t.includes("task") ? "task" : null : null;
4048
4058
  }
4049
- function Jd(...e) {
4059
+ function rf(...e) {
4050
4060
  return e.map((t) => ze.find((n) => n.key === t)).filter((t) => !!t);
4051
4061
  }
4052
- const Wi = "work_item", Vi = "work_project", zi = "work_activity", Zd = "work_cycle";
4053
- function Yi(e) {
4054
- return `${Wi}:${e}`;
4055
- }
4056
- function An(e) {
4062
+ const Vi = "work_item", zi = "work_project", Yi = "work_activity", of = "work_cycle";
4063
+ function Xi(e) {
4057
4064
  return `${Vi}:${e}`;
4058
4065
  }
4059
- function ef(e) {
4066
+ function An(e) {
4060
4067
  return `${zi}:${e}`;
4061
4068
  }
4062
- function tf(e, t, n) {
4069
+ function sf(e) {
4070
+ return `${Yi}:${e}`;
4071
+ }
4072
+ function af(e, t, n) {
4063
4073
  const r = `${e}-${t}`;
4064
4074
  return n ? `${r}-${n}` : r;
4065
4075
  }
4066
- function nf(e) {
4076
+ function cf(e) {
4067
4077
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
4068
4078
  return t ? {
4069
4079
  projectKey: t[1].toUpperCase(),
@@ -4071,17 +4081,17 @@ function nf(e) {
4071
4081
  ...t[3] ? { subSequence: Number(t[3]) } : {}
4072
4082
  } : null;
4073
4083
  }
4074
- function rf(e) {
4084
+ function lf(e) {
4075
4085
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
4076
4086
  }
4077
- function of(e, t = 25) {
4078
- const n = /* @__PURE__ */ new Set([Yi(e.id)]);
4087
+ function uf(e, t = 25) {
4088
+ const n = /* @__PURE__ */ new Set([Xi(e.id)]);
4079
4089
  e.projectId && n.add(An(e.projectId));
4080
4090
  for (const r of e.ancestorKeys ?? []) n.add(r);
4081
4091
  for (const r of e.partyKeys ?? []) n.add(r);
4082
4092
  return Array.from(n).slice(0, t);
4083
4093
  }
4084
- function sf(e) {
4094
+ function df(e) {
4085
4095
  return [An(e.id)];
4086
4096
  }
4087
4097
  const Ye = [
@@ -4090,33 +4100,33 @@ const Ye = [
4090
4100
  { key: "done", label: "status_done", category: "done", order: 2 },
4091
4101
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
4092
4102
  ], En = Ye.map((e) => e.key);
4093
- function Xi(e) {
4103
+ function qi(e) {
4094
4104
  return e?.statuses?.length ? e.statuses : Ye;
4095
4105
  }
4096
- function qi(e, t) {
4106
+ function Qi(e, t) {
4097
4107
  return t.find((n) => n.key === e)?.category ?? "todo";
4098
4108
  }
4099
- function af(e, t) {
4109
+ function ff(e, t) {
4100
4110
  return t.find((n) => n.key === e);
4101
4111
  }
4102
- function cf(e) {
4103
- const t = Xi(e), n = e?.defaultStatusKey;
4104
- return n && t.some((r) => r.key === n) ? n : Qi(t)[0]?.key ?? Ye[0].key;
4112
+ function pf(e) {
4113
+ const t = qi(e), n = e?.defaultStatusKey;
4114
+ return n && t.some((r) => r.key === n) ? n : Ji(t)[0]?.key ?? Ye[0].key;
4105
4115
  }
4106
- function Qi(e) {
4116
+ function Ji(e) {
4107
4117
  return [...e].sort((t, n) => {
4108
4118
  const r = (t.order ?? 0) - (n.order ?? 0);
4109
4119
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
4110
4120
  });
4111
4121
  }
4112
- function lf(e, t) {
4113
- return qi(e, t) === "done";
4122
+ function mf(e, t) {
4123
+ return Qi(e, t) === "done";
4114
4124
  }
4115
- function Ji(e) {
4125
+ function Zi(e) {
4116
4126
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
4117
4127
  }
4118
- function uf(e, t) {
4119
- const n = Ji(e) || "status", r = /* @__PURE__ */ new Set([...t, ...En]);
4128
+ function hf(e, t) {
4129
+ const n = Zi(e) || "status", r = /* @__PURE__ */ new Set([...t, ...En]);
4120
4130
  if (!r.has(n)) return n;
4121
4131
  for (let o = 2; o < 500; o++) {
4122
4132
  const i = `${n}-${o}`;
@@ -4124,7 +4134,7 @@ function uf(e, t) {
4124
4134
  }
4125
4135
  return `${n}-${r.size + 1}`;
4126
4136
  }
4127
- function df(e) {
4137
+ function gf(e) {
4128
4138
  const t = [];
4129
4139
  if (!e.length) return [{ index: -1, reason: "empty" }];
4130
4140
  const n = /* @__PURE__ */ new Set();
@@ -4136,42 +4146,42 @@ function df(e) {
4136
4146
  En.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);
4137
4147
  }), 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;
4138
4148
  }
4139
- function ff(e, t) {
4149
+ function yf(e, t) {
4140
4150
  return t.find((n) => n.key === e)?.requiresApproval === !0;
4141
4151
  }
4142
- function pf(e, t) {
4152
+ function bf(e, t) {
4143
4153
  if (!e) return;
4144
4154
  const n = t?.resolutions?.find((r) => r.key === e)?.positive;
4145
4155
  return n === void 0 ? void 0 : n ? "won" : "lost";
4146
4156
  }
4147
- function mf(e) {
4157
+ function _f(e) {
4148
4158
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
4149
4159
  }
4150
- function hf(e) {
4160
+ function Af(e) {
4151
4161
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
4152
4162
  }
4153
- const gf = [
4163
+ const Ef = [
4154
4164
  "statusKeys",
4155
4165
  "typeKeys",
4156
4166
  "labels",
4157
4167
  "priority",
4158
4168
  "assignees"
4159
- ], yf = ["blockedOnly", "watchingOnly", "reportedByMe"], bf = [
4169
+ ], Sf = ["blockedOnly", "watchingOnly", "reportedByMe"], Tf = [
4160
4170
  "priority",
4161
4171
  "dueDate",
4162
4172
  "updatedAt",
4163
4173
  "createdAt",
4164
4174
  "title",
4165
4175
  "estimateSeconds"
4166
- ], _f = ["list", "board", "calendar", "workload"], Zi = ["day", "week", "month"];
4167
- function Af(e) {
4176
+ ], If = ["list", "board", "calendar", "workload"], es = ["day", "week", "month"];
4177
+ function vf(e) {
4168
4178
  const t = e;
4169
- if (!t || !Zi.includes(t.every)) return;
4179
+ if (!t || !es.includes(t.every)) return;
4170
4180
  const n = Math.floor(Number(t.interval ?? 1));
4171
4181
  if (!(!Number.isFinite(n) || n < 1 || n > 365))
4172
4182
  return { every: t.every, interval: n };
4173
4183
  }
4174
- function es(e, t) {
4184
+ function ts(e, t) {
4175
4185
  const n = new Date(e);
4176
4186
  if (t.every === "day") n.setDate(n.getDate() + t.interval);
4177
4187
  else if (t.every === "week") n.setDate(n.getDate() + 7 * t.interval);
@@ -4181,11 +4191,11 @@ function es(e, t) {
4181
4191
  }
4182
4192
  return n.getTime();
4183
4193
  }
4184
- function Ef(e, t, n) {
4185
- const r = es(e.dueDate ?? n, t);
4194
+ function kf(e, t, n) {
4195
+ const r = ts(e.dueDate ?? n, t);
4186
4196
  return e.startDate === void 0 || e.dueDate === void 0 ? { dueDate: r } : { dueDate: r, startDate: r - (e.dueDate - e.startDate) };
4187
4197
  }
4188
- const ts = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), ns = /* @__PURE__ */ new Set([
4198
+ const ns = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), rs = /* @__PURE__ */ new Set([
4189
4199
  "text/plain",
4190
4200
  "text/markdown",
4191
4201
  "text/csv",
@@ -4194,71 +4204,71 @@ const ts = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
4194
4204
  "application/xml",
4195
4205
  "text/xml"
4196
4206
  ]);
4197
- function rs(e) {
4207
+ function os(e) {
4198
4208
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
4199
- return t ? ts.has(t) ? "image" : t === "application/pdf" ? "pdf" : ns.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
4209
+ return t ? ns.has(t) ? "image" : t === "application/pdf" ? "pdf" : rs.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
4200
4210
  }
4201
- const B = 1024 * 1024, os = {
4211
+ const B = 1024 * 1024, is = {
4202
4212
  image: 5 * B,
4203
4213
  pdf: 20 * B,
4204
4214
  text: 1 * B,
4205
4215
  audio: 20 * B
4206
- }, Sf = 25 * B, Tf = 5;
4207
- function If(e, t) {
4208
- const n = rs(e);
4209
- return n === "unsupported" ? "unsupported" : t > os[n] ? "too-large" : null;
4216
+ }, wf = 25 * B, Mf = 5;
4217
+ function Of(e, t) {
4218
+ const n = os(e);
4219
+ return n === "unsupported" ? "unsupported" : t > is[n] ? "too-large" : null;
4210
4220
  }
4211
- const vf = "ai-tool";
4212
- function kf(e) {
4221
+ const Cf = "ai-tool";
4222
+ function Nf(e) {
4213
4223
  return e.access === "read" ? "idempotent" : e.reversible ?? "none";
4214
4224
  }
4215
4225
  function Sn(e) {
4216
4226
  return e.access !== "read" && e.effect !== "internal";
4217
4227
  }
4218
- function is(e) {
4228
+ function ss(e) {
4219
4229
  return `${e.kind}:${e.id || e.url || e.title}`;
4220
4230
  }
4221
- function wf(e, t = []) {
4231
+ function xf(e, t = []) {
4222
4232
  const n = new Set(t), r = [], o = [];
4223
4233
  for (const i of e) {
4224
- const s = is(i);
4234
+ const s = ss(i);
4225
4235
  n.has(s) || (n.add(s), r.push(i), o.push(s));
4226
4236
  }
4227
4237
  return { sources: r, keys: o };
4228
4238
  }
4229
- const Mf = "assist-source", Cf = ["blocking", "due", "open"];
4230
- function Of(e, t) {
4239
+ const Rf = "assist-source", Df = ["blocking", "due", "open"];
4240
+ function $f(e, t) {
4231
4241
  const [n, r] = (e.subjectKey ?? "").split(":");
4232
4242
  return n === t && r ? r : void 0;
4233
4243
  }
4234
- const Ot = { blocking: 0, due: 1, open: 2 };
4235
- function Nf(e, t) {
4236
- return Ot[e.band ?? "open"] - Ot[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
4244
+ const Ct = { blocking: 0, due: 1, open: 2 };
4245
+ function Lf(e, t) {
4246
+ return Ct[e.band ?? "open"] - Ct[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
4237
4247
  }
4238
- function xf(e) {
4248
+ function Pf(e) {
4239
4249
  return e.sessions.filter(
4240
4250
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
4241
4251
  );
4242
4252
  }
4243
- function Df(e) {
4253
+ function Kf(e) {
4244
4254
  return e.sessions.filter(
4245
4255
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
4246
4256
  );
4247
4257
  }
4248
- function Rf(e) {
4258
+ function Uf(e) {
4249
4259
  return e.sessions.some(
4250
4260
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
4251
4261
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
4252
4262
  }
4253
- function ss(e, t) {
4254
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => cs(s, r[s.intent]));
4263
+ function as(e, t) {
4264
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => ls(s, r[s.intent]));
4255
4265
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
4256
4266
  const i = new Set(o.map((s) => s.intent));
4257
4267
  for (const s of e.extraIntents)
4258
4268
  i.has(s.intent) || (o.push(s), i.add(s.intent));
4259
4269
  return o;
4260
4270
  }
4261
- function as(e, t) {
4271
+ function cs(e, t) {
4262
4272
  const n = {};
4263
4273
  for (const r of e.intents) {
4264
4274
  if (!r.togglable) continue;
@@ -4267,46 +4277,63 @@ function as(e, t) {
4267
4277
  }
4268
4278
  return n;
4269
4279
  }
4270
- function $f(e, t) {
4271
- const n = as(e, t);
4280
+ function Ff(e, t) {
4281
+ const n = cs(e, t);
4272
4282
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
4273
4283
  }
4274
- function cs(e, t) {
4284
+ function ls(e, t) {
4275
4285
  return t ? {
4276
4286
  intent: t.intent ?? e.intent,
4277
4287
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
4278
4288
  transport: t.transport ?? e.transport
4279
4289
  } : e;
4280
4290
  }
4281
- function Lf(e, t) {
4291
+ function jf(e, t) {
4282
4292
  const n = [];
4283
4293
  for (const r of e) {
4284
4294
  if (!r.enabled) continue;
4285
4295
  const o = t[r.providerId];
4286
4296
  if (o)
4287
- for (const i of ss(r, o))
4297
+ for (const i of as(r, o))
4288
4298
  n.push({ channel: r, description: o, capability: i });
4289
4299
  }
4290
4300
  return n;
4291
4301
  }
4292
- function Pf(e, t) {
4302
+ function Bf(e, t) {
4293
4303
  return t.filter((n) => n.capability.intent === e);
4294
4304
  }
4295
- function ls(e, t) {
4305
+ function us(e, t) {
4296
4306
  return t.filter((n) => n.capability.targetSchemes.includes(e));
4297
4307
  }
4298
- function Kf(e, t) {
4299
- return ls(e.scheme, t);
4308
+ function Gf(e, t) {
4309
+ return us(e.scheme, t);
4300
4310
  }
4301
- function Uf(e, t, n) {
4311
+ function Hf(e, t, n) {
4302
4312
  const r = [];
4303
4313
  for (const o of e)
4304
4314
  for (const i of n)
4305
4315
  i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
4306
4316
  return r;
4307
4317
  }
4308
- var us = /* @__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))(us || {});
4309
- const ds = {
4318
+ function Wf(e, t, n = {}) {
4319
+ let r = t, o = e;
4320
+ for (const [i, s] of Object.entries(n))
4321
+ r = r.split("{" + i + "}").join(String(s)), o += " " + i + "=" + encodeURIComponent(String(s));
4322
+ return r + " [" + o + "]";
4323
+ }
4324
+ const ds = / \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;
4325
+ function Vf(e) {
4326
+ const t = ds.exec(e);
4327
+ if (!t) return { text: e, params: {} };
4328
+ const n = {};
4329
+ for (const r of t[2].trim().split(" ").filter(Boolean)) {
4330
+ const o = r.indexOf("=");
4331
+ n[r.slice(0, o)] = decodeURIComponent(r.slice(o + 1));
4332
+ }
4333
+ return { text: e.slice(0, t.index), code: t[1], params: n };
4334
+ }
4335
+ var fs = /* @__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))(fs || {});
4336
+ const ps = {
4310
4337
  mailto: "mail",
4311
4338
  sip: "tel",
4312
4339
  tel: "tel",
@@ -4327,10 +4354,10 @@ const ds = {
4327
4354
  id: "note",
4328
4355
  custom: "note"
4329
4356
  };
4330
- function Ff(e) {
4331
- return e ? ds[e] ?? "note" : "note";
4357
+ function zf(e) {
4358
+ return e ? ps[e] ?? "note" : "note";
4332
4359
  }
4333
- const jf = "message_window", Bf = "message_templates", Gf = {
4360
+ const Yf = "message_window", Xf = "message_templates", qf = {
4334
4361
  // E-mail
4335
4362
  FROM: "from",
4336
4363
  TO: "to",
@@ -4347,11 +4374,11 @@ const jf = "message_window", Bf = "message_templates", Gf = {
4347
4374
  // Voice/conference
4348
4375
  HOST: "host",
4349
4376
  PARTICIPANT: "participant"
4350
- }, Hf = (e, t) => ({ intent: e, ...t }), Wf = "remote_search", Vf = "message_reactions", zf = {
4377
+ }, Qf = (e, t) => ({ intent: e, ...t }), Jf = "remote_search", Zf = "message_reactions", ep = {
4351
4378
  ok: !1,
4352
4379
  code: "UNSUPPORTED",
4353
4380
  message: "Provider does not support this op"
4354
- }, Yf = "connector", Xf = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), Nt = A("Slide id, as `inspect` reports it.");
4381
+ }, tp = "connector", np = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), Nt = A("Slide id, as `inspect` reports it.");
4355
4382
  function b(e, t, n, r, o, i) {
4356
4383
  return {
4357
4384
  op: e,
@@ -4362,7 +4389,7 @@ function b(e, t, n, r, o, i) {
4362
4389
  visible: i.visible
4363
4390
  };
4364
4391
  }
4365
- const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt = { undoable: !1, visible: !0 }, re = { undoable: !1, visible: !1 }, fs = [
4392
+ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt = { undoable: !1, visible: !0 }, re = { undoable: !1, visible: !1 }, ms = [
4366
4393
  b(
4367
4394
  "pdf.goToPage",
4368
4395
  ["pdf"],
@@ -4457,7 +4484,7 @@ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt =
4457
4484
  ["page", "text"],
4458
4485
  re
4459
4486
  )
4460
- ], ps = [
4487
+ ], hs = [
4461
4488
  b(
4462
4489
  "sheet.setValues",
4463
4490
  ["sheet"],
@@ -4609,7 +4636,7 @@ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt =
4609
4636
  [],
4610
4637
  H
4611
4638
  )
4612
- ], ms = [
4639
+ ], gs = [
4613
4640
  b(
4614
4641
  "word.replaceParagraph",
4615
4642
  ["word"],
@@ -4671,7 +4698,7 @@ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt =
4671
4698
  ["start"],
4672
4699
  H
4673
4700
  )
4674
- ], hs = [
4701
+ ], ys = [
4675
4702
  b(
4676
4703
  "slides.setText",
4677
4704
  ["slides"],
@@ -4700,23 +4727,23 @@ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, xt =
4700
4727
  re
4701
4728
  )
4702
4729
  ], Tn = [
4703
- ...fs,
4704
- ...ps,
4705
4730
  ...ms,
4706
- ...hs
4731
+ ...hs,
4732
+ ...gs,
4733
+ ...ys
4707
4734
  ];
4708
- function qf(e) {
4735
+ function rp(e) {
4709
4736
  return Tn.filter((t) => t.kinds.includes(e));
4710
4737
  }
4711
- function Qf(e) {
4738
+ function op(e) {
4712
4739
  return Tn.find((t) => t.op === e);
4713
4740
  }
4714
- const Dt = /(?: {2,}|\\)$/, gs = /^\*\*([^*]+)\*\*\s+(.*)$/;
4715
- function Rt(e) {
4716
- const t = gs.exec(e);
4741
+ const Rt = /(?: {2,}|\\)$/, bs = /^\*\*([^*]+)\*\*\s+(.*)$/;
4742
+ function Dt(e) {
4743
+ const t = bs.exec(e);
4717
4744
  return t ? { lead: t[1], text: t[2] } : { text: e };
4718
4745
  }
4719
- function Jf(e) {
4746
+ function ip(e) {
4720
4747
  const t = (e ?? "").replace(/\r\n/g, `
4721
4748
  `).split(`
4722
4749
  `), n = [];
@@ -4724,7 +4751,7 @@ function Jf(e) {
4724
4751
  const o = () => {
4725
4752
  r && n.push({ type: "list", style: r.style, items: r.items }), r = null;
4726
4753
  }, i = (f, p) => {
4727
- r && r.style !== f && o(), r ? r.items.push(Rt(p)) : r = { style: f, items: [Rt(p)] };
4754
+ r && r.style !== f && o(), r ? r.items.push(Dt(p)) : r = { style: f, items: [Dt(p)] };
4728
4755
  };
4729
4756
  let s = [], a = [];
4730
4757
  const l = () => {
@@ -4789,33 +4816,33 @@ function Jf(e) {
4789
4816
  continue;
4790
4817
  }
4791
4818
  c(), o();
4792
- const S = Dt.test(f);
4793
- s.push(f.replace(Dt, "").trim() + (S ? `
4819
+ const S = Rt.test(f);
4820
+ s.push(f.replace(Rt, "").trim() + (S ? `
4794
4821
  ` : " ")), u++;
4795
4822
  }
4796
4823
  return d(), n;
4797
4824
  }
4798
- function Zf(e, t) {
4825
+ function sp(e, t) {
4799
4826
  return cr(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, `
4800
4827
 
4801
4828
  `).trim();
4802
4829
  }
4803
- const ep = "documents.describe", tp = "documents.inspect", np = "documents.apply";
4804
- function rp(e) {
4830
+ const ap = "documents.describe", cp = "documents.inspect", lp = "documents.apply";
4831
+ function up(e) {
4805
4832
  const t = e.indexOf(":");
4806
4833
  if (t !== -1) return e.slice(0, t);
4807
4834
  const n = e.indexOf(".");
4808
4835
  return n === -1 ? e : e.slice(0, n);
4809
4836
  }
4810
- const op = "installation-id";
4811
- function ip(e) {
4837
+ const dp = "installation-id";
4838
+ function fp(e) {
4812
4839
  const t = [];
4813
4840
  for (const n of Object.keys(e))
4814
4841
  for (const r of Object.keys(e[n]))
4815
4842
  t.push({ lang: n, key: r, value: e[n][r] });
4816
4843
  return t;
4817
4844
  }
4818
- const sp = "notification-source", ap = (e, t) => `${e}.pref.${t}`, cp = {
4845
+ const pp = "notification-source", mp = (e, t) => `${e}.pref.${t}`, hp = {
4819
4846
  ai: [
4820
4847
  "account.read",
4821
4848
  "account.write",
@@ -4953,56 +4980,56 @@ const sp = "notification-source", ap = (e, t) => `${e}.pref.${t}`, cp = {
4953
4980
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
4954
4981
  user: ["user.read", "user.write"],
4955
4982
  work: ["item.read", "item.write", "project.read", "project.write"]
4956
- }, In = 9e4, ys = ["out_of_office"], vn = (e) => ys.includes(e);
4957
- function lp(e, t, n) {
4983
+ }, In = 9e4, _s = ["out_of_office"], vn = (e) => _s.includes(e);
4984
+ function gp(e, t, n) {
4958
4985
  const r = n - e < In, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4959
4986
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4960
4987
  const i = o.status;
4961
4988
  return !r && !vn(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4962
4989
  }
4963
- function up(e, t) {
4990
+ function yp(e, t) {
4964
4991
  const n = t - e.lastSeenAt < In, r = n || vn(e.status) ? e.status : "offline";
4965
4992
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4966
4993
  }
4967
- function dp(e, t) {
4994
+ function bp(e, t) {
4968
4995
  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 };
4969
4996
  }
4970
- function fp(e) {
4997
+ function _p(e) {
4971
4998
  return e.providerAvailable && e.allowed;
4972
4999
  }
4973
- const pp = "resources.describe", mp = "resources.search", hp = "resources.resolve", gp = "resources.attached";
4974
- function yp(e) {
5000
+ const Ap = "resources.describe", Ep = "resources.search", Sp = "resources.resolve", Tp = "resources.attached";
5001
+ function Ip(e) {
4975
5002
  const t = e.indexOf(":");
4976
5003
  return t === -1 ? e : e.slice(0, t);
4977
5004
  }
4978
- const bp = "/provider/scope/related", _p = "/provider/scope/read", Ap = "/provider/scope/acts", kn = "auth";
5005
+ const vp = "/provider/scope/related", kp = "/provider/scope/read", wp = "/provider/scope/acts", kn = "auth";
4979
5006
  function wn(e) {
4980
5007
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4981
5008
  return t ? t[1] : null;
4982
5009
  }
4983
- function Ep(e) {
5010
+ function Mp(e) {
4984
5011
  const t = wn(e);
4985
- return t ? t !== kn : typeof e == "string" && (e.startsWith("/wake") || bs(e));
5012
+ return t ? t !== kn : typeof e == "string" && (e.startsWith("/wake") || As(e));
4986
5013
  }
4987
5014
  const oe = "/settings";
4988
- function bs(e) {
5015
+ function As(e) {
4989
5016
  return typeof e == "string" && (e === oe || e.startsWith(`${oe}/`));
4990
5017
  }
4991
- function Sp(e) {
5018
+ function Op(e) {
4992
5019
  const t = e ? e.indexOf(":") : -1;
4993
5020
  return !e || t <= 0 ? oe : `${oe}/${e.slice(0, t)}/${e.slice(t + 1)}`;
4994
5021
  }
4995
- function Tp(e) {
5022
+ function Cp(e) {
4996
5023
  return typeof e != "string" || e === "" || e === "/" ? !0 : wn(e) === kn;
4997
5024
  }
4998
- function _s(e) {
5025
+ function Es(e) {
4999
5026
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
5000
5027
  }
5001
- function As(e) {
5002
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${_s(r)}`).join("");
5028
+ function Ss(e) {
5029
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Es(r)}`).join("");
5003
5030
  return new RegExp(`^${n}\\/?$`);
5004
5031
  }
5005
- function Es(e, t) {
5032
+ function Ts(e, t) {
5006
5033
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
5007
5034
  return n.forEach((i, s) => {
5008
5035
  if (i.startsWith(":")) {
@@ -5011,14 +5038,14 @@ function Es(e, t) {
5011
5038
  }
5012
5039
  }), o;
5013
5040
  }
5014
- function Ss(e) {
5041
+ function Is(e) {
5015
5042
  return e.publicBasePath ?? `/apps/${e.name}`;
5016
5043
  }
5017
- function Ip(e) {
5044
+ function Np(e) {
5018
5045
  const t = [];
5019
5046
  for (const n of e) {
5020
5047
  if (!n?.name) continue;
5021
- const r = Ss(n);
5048
+ const r = Is(n);
5022
5049
  for (const o of n.routes ?? []) {
5023
5050
  if (!o.public) continue;
5024
5051
  const i = o.path === "/" ? "" : o.path;
@@ -5032,7 +5059,7 @@ function Ip(e) {
5032
5059
  }
5033
5060
  return t;
5034
5061
  }
5035
- function Ts(e, t) {
5062
+ function vs(e, t) {
5036
5063
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
5037
5064
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
5038
5065
  const i = n[o].startsWith(":"), s = r[o].startsWith(":");
@@ -5040,35 +5067,35 @@ function Ts(e, t) {
5040
5067
  }
5041
5068
  return n.length > r.length;
5042
5069
  }
5043
- function Is(e, t) {
5070
+ function ks(e, t) {
5044
5071
  if (typeof e != "string") return null;
5045
5072
  let n = null;
5046
5073
  for (const r of t)
5047
- As(r.pattern).test(e) && (!n || Ts(r.pattern, n.pattern)) && (n = r);
5048
- return n ? { ...n, params: { ...n.props, ...Es(n.pattern, e) } } : null;
5074
+ Ss(r.pattern).test(e) && (!n || vs(r.pattern, n.pattern)) && (n = r);
5075
+ return n ? { ...n, params: { ...n.props, ...Ts(n.pattern, e) } } : null;
5049
5076
  }
5050
- function vp(e, t) {
5051
- return Is(e, t) !== null;
5077
+ function xp(e, t) {
5078
+ return ks(e, t) !== null;
5052
5079
  }
5053
- const kp = 10 * 1024 * 1024, wp = 25 * 1024 * 1024, Mp = "sync-target", Cp = 20;
5080
+ const Rp = 10 * 1024 * 1024, Dp = 25 * 1024 * 1024, $p = "sync-target", Lp = 20;
5054
5081
  function Mn(e, t) {
5055
5082
  const n = Array.isArray(t) ? t.find((r) => r.name === e.name)?.policy : void 0;
5056
5083
  return n ? n !== "read" : e.access ? e.access !== "read" : !0;
5057
5084
  }
5058
- function vs(e, t, n) {
5085
+ function ws(e, t, n) {
5059
5086
  return Mn(e, n) ? t.guarded === "all" || t.guarded?.has(e.name) ? !0 : t.autonomy === "auto" ? !1 : t.autonomy === "outward" ? Sn(e) : !0 : !1;
5060
5087
  }
5061
- function ks(e) {
5088
+ function Ms(e) {
5062
5089
  return e.produces === "draft";
5063
5090
  }
5064
- function Op(e, t) {
5091
+ function Pp(e, t) {
5065
5092
  if (t.allowed) {
5066
5093
  const n = t.personalTools === "allow" && e.personal === !0;
5067
5094
  if (!t.allowed.has(e.name) && !n) return "hidden";
5068
5095
  }
5069
- return t.narrow && !t.narrow.has(e.name) || !t.attended && (e.personal === !0 || e.surface === "interactive") || t.readOnly && e.access !== "read" || t.mode === "ask" && Mn(e) || t.mode === "draft" && (Sn(e) || e.access !== "read" && !ks(e)) ? "hidden" : t.gate && vs(e, t.gate, t.policy) ? "held" : "free";
5096
+ return t.narrow && !t.narrow.has(e.name) || !t.attended && (e.personal === !0 || e.surface === "interactive") || t.readOnly && e.access !== "read" || t.mode === "ask" && Mn(e) || t.mode === "draft" && (Sn(e) || e.access !== "read" && !Ms(e)) ? "hidden" : t.gate && ws(e, t.gate, t.policy) ? "held" : "free";
5070
5097
  }
5071
- const ws = {
5098
+ const Os = {
5072
5099
  afrikaans: [
5073
5100
  "[Muziek]",
5074
5101
  "(C) TV GELDERLAND 2021",
@@ -5218,14 +5245,14 @@ const ws = {
5218
5245
  "[MÚSICA]",
5219
5246
  "[Music cuts in British]"
5220
5247
  ]
5221
- }, Ms = (e) => {
5248
+ }, Cs = (e) => {
5222
5249
  let t = e;
5223
- return Object.values(ws).forEach((n) => {
5250
+ return Object.values(Os).forEach((n) => {
5224
5251
  n.forEach((r) => {
5225
5252
  t = t.replaceAll(r, "");
5226
5253
  });
5227
5254
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
5228
- }, Cs = 6e4, Os = 8e3, Ns = 2, xs = 0.4, Ds = 3, Rs = /* @__PURE__ */ new Set([
5255
+ }, Ns = 6e4, xs = 8e3, Rs = 2, Ds = 0.4, $s = 3, Ls = /* @__PURE__ */ new Set([
5229
5256
  "aan",
5230
5257
  "als",
5231
5258
  "ben",
@@ -5338,13 +5365,13 @@ const ws = {
5338
5365
  "you",
5339
5366
  "your"
5340
5367
  ]);
5341
- function $s(e) {
5368
+ function Ps(e) {
5342
5369
  const t = /* @__PURE__ */ new Set();
5343
5370
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
5344
- n.length < Ds || Rs.has(n) || t.add(n);
5371
+ n.length < $s || Ls.has(n) || t.add(n);
5345
5372
  return [...t];
5346
5373
  }
5347
- function Ls(e, t) {
5374
+ function Ks(e, t) {
5348
5375
  if (!e.length) return 0;
5349
5376
  if (!t.length) return 1;
5350
5377
  const n = new Set(t), r = new Set(e);
@@ -5352,32 +5379,32 @@ function Ls(e, t) {
5352
5379
  for (const i of r) n.has(i) || (o += 1);
5353
5380
  return o / r.size;
5354
5381
  }
5355
- function Ps(e, t = Cs) {
5382
+ function Us(e, t = Ns) {
5356
5383
  const n = e.filter((s) => !s.partial && typeof s.text == "string");
5357
5384
  if (!n.length) return { text: "", segmentCount: 0 };
5358
5385
  const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
5359
- return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Ms(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
5386
+ return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Cs(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
5360
5387
  }
5361
- const Ks = 60;
5362
- function Np(e, t, n = Ks) {
5388
+ const Fs = 60;
5389
+ function Kp(e, t, n = Fs) {
5363
5390
  const r = new Set(e), o = [...e];
5364
5391
  for (const i of t)
5365
5392
  !i || r.has(i) || (r.add(i), o.push(i));
5366
5393
  return o.slice(-n);
5367
5394
  }
5368
- function xp(e) {
5395
+ function Up(e) {
5369
5396
  const { segments: t, now: n, state: r } = e;
5370
- if (r.lastTriggerAt && n - r.lastTriggerAt < Os)
5397
+ if (r.lastTriggerAt && n - r.lastTriggerAt < xs)
5371
5398
  return { trigger: !1, reason: "too_soon" };
5372
- const o = Ps(t, e.windowMs);
5399
+ const o = Us(t, e.windowMs);
5373
5400
  if (!o.text) return { trigger: !1, reason: "no_speech" };
5374
5401
  const i = o.segmentCount - (r.lastSegmentCount ?? 0);
5375
- if (r.lastQueryTerms && i < Ns)
5402
+ if (r.lastQueryTerms && i < Rs)
5376
5403
  return { trigger: !1, reason: "too_few_new" };
5377
- const s = $s(o.text);
5378
- return s.length ? r.lastQueryTerms?.length && Ls(s, r.lastQueryTerms) < xs ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
5404
+ const s = Ps(o.text);
5405
+ return s.length ? r.lastQueryTerms?.length && Ks(s, r.lastQueryTerms) < Ds ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
5379
5406
  }
5380
- const Dp = [
5407
+ const Fp = [
5381
5408
  "personal",
5382
5409
  "organization",
5383
5410
  "connections",
@@ -5385,7 +5412,7 @@ const Dp = [
5385
5412
  "work",
5386
5413
  "administration",
5387
5414
  "ai"
5388
- ], Rp = "navNotice", Xe = {
5415
+ ], jp = "navNotice", Xe = {
5389
5416
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
5390
5417
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
5391
5418
  // An over-permissive key is harmless — it simply matches nothing.
@@ -5408,7 +5435,7 @@ const Dp = [
5408
5435
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
5409
5436
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
5410
5437
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
5411
- }, Us = "NL", Fs = 15, js = 8, Bs = Array.from(
5438
+ }, js = "NL", Bs = 15, Gs = 8, Hs = Array.from(
5412
5439
  new Set(Object.values(Xe).map((e) => e.callingCode))
5413
5440
  ).sort((e, t) => t.length - e.length);
5414
5441
  function $t(e) {
@@ -5419,8 +5446,8 @@ function te(e, t) {
5419
5446
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
5420
5447
  }
5421
5448
  function Lt(e) {
5422
- if (e.length > Fs) return null;
5423
- for (const t of Bs) {
5449
+ if (e.length > Bs) return null;
5450
+ for (const t of Hs) {
5424
5451
  if (!e.startsWith(t)) continue;
5425
5452
  const n = e.slice(t.length);
5426
5453
  for (const r of Object.values(Xe)) {
@@ -5430,16 +5457,16 @@ function Lt(e) {
5430
5457
  }
5431
5458
  return null;
5432
5459
  }
5433
- return e.length < js ? null : `+${e}`;
5460
+ return e.length < Gs ? null : `+${e}`;
5434
5461
  }
5435
- function Gs(e) {
5462
+ function Ws(e) {
5436
5463
  let t = e.trim();
5437
5464
  const n = t.match(/^(sips?|tel|whatsapp):/i);
5438
5465
  n && (t = t.slice(n[0].length));
5439
5466
  const r = t.indexOf("@");
5440
5467
  return r >= 0 && (t = t.slice(0, r)), t.trim();
5441
5468
  }
5442
- function $p(e) {
5469
+ function Bp(e) {
5443
5470
  if (!e) return !1;
5444
5471
  const t = e.indexOf("@");
5445
5472
  if (t <= 0) return !1;
@@ -5448,13 +5475,13 @@ function $p(e) {
5448
5475
  }
5449
5476
  function Pt(e, t) {
5450
5477
  if (!e) return null;
5451
- const n = Gs(e);
5478
+ const n = Ws(e);
5452
5479
  if (!n) return null;
5453
5480
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
5454
5481
  if (!o) return null;
5455
5482
  if (r) return Lt(o);
5456
5483
  if (o.startsWith("00")) return Lt(o.slice(2));
5457
- const i = $t(t) ?? $t(Us);
5484
+ const i = $t(t) ?? $t(js);
5458
5485
  if (!i) return null;
5459
5486
  const s = i.trunkPrefix;
5460
5487
  if (s && o.startsWith(s)) {
@@ -5467,22 +5494,22 @@ function Pt(e, t) {
5467
5494
  }
5468
5495
  return !s && te(o, i) ? `+${i.callingCode}${o}` : null;
5469
5496
  }
5470
- function Lp(e, t = 9) {
5497
+ function Gp(e, t = 9) {
5471
5498
  const n = (e ?? "").replace(/\D/g, "");
5472
5499
  return n.length < t ? null : n.slice(-t);
5473
5500
  }
5474
- function Cn(e) {
5501
+ function On(e) {
5475
5502
  if (!e) return null;
5476
5503
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
5477
5504
  if (n <= 0 || n === t.length - 1) return null;
5478
5505
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
5479
5506
  return !r || !o.includes(".") ? null : `${r}@${o}`;
5480
5507
  }
5481
- function Pp(e) {
5482
- const t = Cn(e);
5508
+ function Hp(e) {
5509
+ const t = On(e);
5483
5510
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
5484
5511
  }
5485
- const Hs = /* @__PURE__ */ new Set([
5512
+ const Vs = /* @__PURE__ */ new Set([
5486
5513
  "co.uk",
5487
5514
  "org.uk",
5488
5515
  "gov.uk",
@@ -5492,14 +5519,14 @@ const Hs = /* @__PURE__ */ new Set([
5492
5519
  "com.br",
5493
5520
  "co.za"
5494
5521
  ]);
5495
- function Ws(e) {
5522
+ function zs(e) {
5496
5523
  if (!e) return null;
5497
5524
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
5498
5525
  if (t.length < 2) return null;
5499
5526
  const n = t.slice(-2).join(".");
5500
- return Hs.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
5527
+ return Vs.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
5501
5528
  }
5502
- const Vs = /* @__PURE__ */ new Set([
5529
+ const Ys = /* @__PURE__ */ new Set([
5503
5530
  "gmail.com",
5504
5531
  "googlemail.com",
5505
5532
  "outlook.com",
@@ -5544,16 +5571,16 @@ const Vs = /* @__PURE__ */ new Set([
5544
5571
  "proximus.be",
5545
5572
  "scarlet.be"
5546
5573
  ]);
5547
- function Kp(e) {
5548
- const t = Ws(e);
5549
- return t ? Vs.has(t) : !1;
5574
+ function Wp(e) {
5575
+ const t = zs(e);
5576
+ return t ? Ys.has(t) : !1;
5550
5577
  }
5551
- function Up(e) {
5578
+ function Vp(e) {
5552
5579
  if (!e) return !1;
5553
5580
  const t = e.trim().toLowerCase();
5554
5581
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
5555
5582
  }
5556
- function Fp(e, t, n) {
5583
+ function zp(e, t, n) {
5557
5584
  if (!e || !t) return null;
5558
5585
  const r = e.trim().toLowerCase();
5559
5586
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -5565,13 +5592,13 @@ function Fp(e, t, n) {
5565
5592
  return i ? `fax:${i}` : null;
5566
5593
  }
5567
5594
  if (r === "mailto" || r === "email") {
5568
- const i = Cn(t);
5595
+ const i = On(t);
5569
5596
  return i ? `mailto:${i}` : null;
5570
5597
  }
5571
5598
  const o = t.trim().toLowerCase();
5572
5599
  return o ? `${r}:${o}` : null;
5573
5600
  }
5574
- const zs = [
5601
+ const Xs = [
5575
5602
  /<blockquote/i,
5576
5603
  /class="?gmail_quote/i,
5577
5604
  // Gmail quote container
@@ -5584,24 +5611,24 @@ const zs = [
5584
5611
  // Outlook underscore separator before "From:"
5585
5612
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
5586
5613
  // Gmail "On <date> <name> wrote:"
5587
- ], Kt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Ys = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
5588
- function Xs(e) {
5614
+ ], Kt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, qs = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
5615
+ function Qs(e) {
5589
5616
  const t = e.split(`
5590
5617
  `);
5591
5618
  for (let n = 0; n < t.length; n++)
5592
- if (Ys.test(t[n]) || Kt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => Kt.test(r)))
5619
+ if (qs.test(t[n]) || Kt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => Kt.test(r)))
5593
5620
  return t.slice(0, n).join(`
5594
5621
  `).trim();
5595
5622
  return e;
5596
5623
  }
5597
- const qs = /^(?:https?:|mailto:|tel:)/i, Qs = /^(?:https?:|cid:|data:image\/)/i;
5624
+ const Js = /^(?:https?:|mailto:|tel:)/i, Zs = /^(?:https?:|cid:|data:image\/)/i;
5598
5625
  function _e(e, t) {
5599
5626
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
5600
5627
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
5601
5628
  }
5602
- const Js = /(!\[[^\]]*\]\([^)]*\))/;
5629
+ const ea = /(!\[[^\]]*\]\([^)]*\))/;
5603
5630
  function Ut(e) {
5604
- return e.replace(/\s+/g, " ").trim().split(Js).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
5631
+ return e.replace(/\s+/g, " ").trim().split(ea).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
5605
5632
  }
5606
5633
  function Ae(e) {
5607
5634
  return e.replace(
@@ -5609,47 +5636,47 @@ function Ae(e) {
5609
5636
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
5610
5637
  );
5611
5638
  }
5612
- function Zs(e) {
5639
+ function ta(e) {
5613
5640
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
5614
5641
  const o = _e(r, "src");
5615
- return Qs.test(o) ? `![${Ut(_e(r, "alt"))}](${Ae(o)})` : "";
5642
+ return Zs.test(o) ? `![${Ut(_e(r, "alt"))}](${Ae(o)})` : "";
5616
5643
  }).replace(
5617
5644
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
5618
5645
  (n, r, o) => {
5619
5646
  const i = Ut(o.replace(/<[^>]*>/g, "")), s = _e(r, "href");
5620
- return qs.test(s) ? `[${i || Ae(s)}](${Ae(s)})` : i;
5647
+ return Js.test(s) ? `[${i || Ae(s)}](${Ae(s)})` : i;
5621
5648
  }
5622
5649
  );
5623
5650
  }
5624
- const ea = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, ta = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, na = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
5625
- function ra(e, t) {
5651
+ const na = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, ra = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, oa = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
5652
+ function ia(e, t) {
5626
5653
  return /<table\b/i.test(e) || e.includes(`
5627
5654
 
5628
5655
  |`) || t.includes("![") || t.length > 200;
5629
5656
  }
5630
- const oa = 40, ia = { left: "---", center: ":---:", right: "---:" };
5631
- function sa(e) {
5657
+ const sa = 40, aa = { left: "---", center: ":---:", right: "---:" };
5658
+ function ca(e) {
5632
5659
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
5633
5660
  return t ? t[1].toLowerCase() : "left";
5634
5661
  }
5635
- function aa(e) {
5662
+ function la(e) {
5636
5663
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
5637
5664
  }
5638
- function ca(e) {
5665
+ function ua(e) {
5639
5666
  const t = [];
5640
- for (const s of e.matchAll(ta)) {
5667
+ for (const s of e.matchAll(ra)) {
5641
5668
  const a = [];
5642
- for (const l of s[1].matchAll(na)) {
5643
- const c = aa(l[3]);
5644
- if (ra(l[3], c)) return null;
5645
- a.push({ text: c, align: sa(l[2]) });
5669
+ for (const l of s[1].matchAll(oa)) {
5670
+ const c = la(l[3]);
5671
+ if (ia(l[3], c)) return null;
5672
+ a.push({ text: c, align: ca(l[2]) });
5646
5673
  }
5647
5674
  if (a.length === 0) return null;
5648
5675
  a.some((l) => l.text !== "") && t.push(a);
5649
5676
  }
5650
5677
  const n = t[0]?.length ?? 0;
5651
5678
  if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
5652
- const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => ia[s.align]).join(" | "), i = t.slice(1).map(r).join(`
5679
+ const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => aa[s.align]).join(" | "), i = t.slice(1).map(r).join(`
5653
5680
  `);
5654
5681
  return `
5655
5682
 
@@ -5659,18 +5686,18 @@ ${i}
5659
5686
 
5660
5687
  `;
5661
5688
  }
5662
- function la(e) {
5689
+ function da(e) {
5663
5690
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
5664
5691
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
5665
5692
  }
5666
- function ua(e) {
5693
+ function fa(e) {
5667
5694
  let t = e;
5668
- for (let n = 0; n < oa; n++) {
5669
- const r = ea.exec(t);
5695
+ for (let n = 0; n < sa; n++) {
5696
+ const r = na.exec(t);
5670
5697
  if (!r || r.index === void 0) break;
5671
- const i = ca(r[1]) ?? `
5698
+ const i = ua(r[1]) ?? `
5672
5699
 
5673
- ${la(r[1])}
5700
+ ${da(r[1])}
5674
5701
 
5675
5702
  `;
5676
5703
  t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
@@ -5680,7 +5707,7 @@ ${la(r[1])}
5680
5707
  function Ft(e, t) {
5681
5708
  let n = e;
5682
5709
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
5683
- `), t && (n = ua(Zs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
5710
+ `), t && (n = fa(ta(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
5684
5711
 
5685
5712
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
5686
5713
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -5688,7 +5715,7 @@ function Ft(e, t) {
5688
5715
  function jt(e) {
5689
5716
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
5690
5717
  }
5691
- const da = {
5718
+ const pa = {
5692
5719
  euro: "€",
5693
5720
  pound: "£",
5694
5721
  yen: "¥",
@@ -5711,7 +5738,7 @@ const da = {
5711
5738
  apos: "'"
5712
5739
  };
5713
5740
  function Bt(e) {
5714
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => da[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => jt(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => jt(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
5741
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => pa[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => jt(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => jt(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
5715
5742
  }
5716
5743
  function Gt(e) {
5717
5744
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -5719,41 +5746,41 @@ function Gt(e) {
5719
5746
 
5720
5747
  `).trim();
5721
5748
  }
5722
- const fa = /<\s*(html|body|div|p|table|br|span)\b/i;
5723
- function jp(e) {
5724
- return fa.test(e);
5749
+ const ma = /<\s*(html|body|div|p|table|br|span)\b/i;
5750
+ function Yp(e) {
5751
+ return ma.test(e);
5725
5752
  }
5726
- function Bp(e) {
5727
- return On(e, !1);
5753
+ function Xp(e) {
5754
+ return Cn(e, !1);
5728
5755
  }
5729
- function Gp(e) {
5730
- return On(e, !0);
5756
+ function qp(e) {
5757
+ return Cn(e, !0);
5731
5758
  }
5732
- function On(e, t) {
5759
+ function Cn(e, t) {
5733
5760
  if (typeof e != "string" || !e) return "";
5734
5761
  let n = e.length;
5735
- for (const s of zs) {
5762
+ for (const s of Xs) {
5736
5763
  const a = e.search(s);
5737
5764
  a >= 0 && a < n && (n = a);
5738
5765
  }
5739
5766
  const r = e.slice(0, n);
5740
5767
  let o = Gt(Bt(Ft(r, t)));
5741
- return o || (o = Gt(Bt(Ft(e, t)))), Xs(o) || o;
5768
+ return o || (o = Gt(Bt(Ft(e, t)))), Qs(o) || o;
5742
5769
  }
5743
5770
  export {
5744
- gc as ACTIVE_ASSIGNMENT_STATUSES,
5745
- R as ACTIVITY_CATALOG,
5746
- os as AI_ATTACHMENT_LIMITS,
5747
- Tf as AI_ATTACHMENT_MAX_PER_TURN,
5748
- Sf as AI_ATTACHMENT_TURN_BUDGET,
5771
+ bc as ACTIVE_ASSIGNMENT_STATUSES,
5772
+ D as ACTIVITY_CATALOG,
5773
+ is as AI_ATTACHMENT_LIMITS,
5774
+ Mf as AI_ATTACHMENT_MAX_PER_TURN,
5775
+ wf as AI_ATTACHMENT_TURN_BUDGET,
5749
5776
  Fe as AI_CAPABILITIES,
5750
- vf as AI_TOOL_PROVIDER_GROUP,
5777
+ Cf as AI_TOOL_PROVIDER_GROUP,
5751
5778
  Vt as AI_VENDORS,
5752
5779
  er as ALLOWED_LINK_SCHEMES,
5753
- cp as APP_PERMISSIONS,
5754
- hl as ARTICLE_SCOPE_KIND,
5780
+ hp as APP_PERMISSIONS,
5781
+ Al as ARTICLE_SCOPE_KIND,
5755
5782
  ct as ARTIFACT_MAX_BLOCKS,
5756
- lc as ARTIFACT_MAX_BODY_BYTES,
5783
+ dc as ARTIFACT_MAX_BODY_BYTES,
5757
5784
  Z as ARTIFACT_MAX_CELL_LEN,
5758
5785
  ft as ARTIFACT_MAX_KPI_ITEMS,
5759
5786
  lt as ARTIFACT_MAX_LIST_ITEMS,
@@ -5761,47 +5788,48 @@ export {
5761
5788
  ut as ARTIFACT_MAX_TABLE_ROWS,
5762
5789
  Yt as ARTIFACT_MAX_TEXT_LEN,
5763
5790
  ur as ASSIGNMENT_SCOPE_KIND,
5764
- Cf as ASSIST_BANDS,
5765
- Mf as ASSIST_SOURCE_PROVIDER_GROUP,
5791
+ Df as ASSIST_BANDS,
5792
+ Rf as ASSIST_SOURCE_PROVIDER_GROUP,
5766
5793
  Br as ATTENTION_STATUSES,
5767
- Si as AT_RISK_GAP,
5794
+ Ti as AT_RISK_GAP,
5768
5795
  kn as AUTH_APP_NAME,
5769
- Ho as AUTO_READY_MIN_PROPOSALS,
5770
- Wo as AUTO_READY_RATE,
5796
+ Wo as AUTO_READY_MIN_PROPOSALS,
5797
+ Vo as AUTO_READY_RATE,
5771
5798
  jn as ActivityTypeRegistry,
5772
- Oa as BUILT_IN_ONLY,
5799
+ xa as BUILT_IN_ONLY,
5773
5800
  Gr as BULK_PENALTY,
5774
- Ic as BUSINESS_ENTITY_LIST_SERVICE,
5775
- Os as CADENCE_FLOOR_MS,
5776
- Ns as CADENCE_MIN_NEW_SEGMENTS,
5777
- xs as CADENCE_MIN_NOVELTY,
5778
- Cs as CADENCE_WINDOW_MS,
5779
- du as CLASSIFY_VARS,
5780
- Td as CLEARABLE_FIELDS,
5781
- Yf as CONNECTOR_PROVIDER_GROUP,
5782
- Xf as CONTEXT_COLLECT_SERVICE,
5783
- Ja as CORE_DIMENSIONS,
5784
- Gc as CRM_ACTIVITY_SCOPE_KIND,
5785
- Wc as CRM_CALL_CHANNELS,
5801
+ kc as BUSINESS_ENTITY_LIST_SERVICE,
5802
+ xs as CADENCE_FLOOR_MS,
5803
+ Rs as CADENCE_MIN_NEW_SEGMENTS,
5804
+ Ds as CADENCE_MIN_NOVELTY,
5805
+ Ns as CADENCE_WINDOW_MS,
5806
+ gu as CLASSIFY_VARS,
5807
+ Md as CLEARABLE_FIELDS,
5808
+ tp as CONNECTOR_PROVIDER_GROUP,
5809
+ np as CONTEXT_COLLECT_SERVICE,
5810
+ ec as CORE_DIMENSIONS,
5811
+ Wc as CRM_ACTIVITY_SCOPE_KIND,
5812
+ zc as CRM_CALL_CHANNELS,
5786
5813
  vr as CRM_CALL_LOGGED,
5787
- Vc as CRM_CALL_OUTCOMES,
5814
+ Yc as CRM_CALL_OUTCOMES,
5788
5815
  Ir as CRM_NOTE_ADDED,
5789
- Hc as CRM_STAGE_CHANGED,
5790
- us as CommunicationScheme,
5791
- Dr as DAY_MS,
5792
- _i as DEFAULT_CHECK_IN_DAYS,
5793
- Eo as DEFAULT_FORECAST_WEEKS,
5794
- Ml as DEFAULT_MEMORY_BUDGET,
5795
- $d as DEFAULT_NUMBER_PADDING,
5796
- Us as DEFAULT_PHONE_REGION,
5797
- Cd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5798
- Md as DEFAULT_TEMPLATE_CONDITIONS,
5799
- Ul as DEMAND_SOURCE_PROVIDER_GROUP,
5800
- np as DOCUMENT_APPLY_SERVICE,
5801
- ep as DOCUMENT_DESCRIBE_SERVICE,
5802
- tp as DOCUMENT_INSPECT_SERVICE,
5816
+ Vc as CRM_STAGE_CHANGED,
5817
+ gl as CUSTOM_RESOLUTION_PREFIX,
5818
+ fs as CommunicationScheme,
5819
+ Rr as DAY_MS,
5820
+ Ai as DEFAULT_CHECK_IN_DAYS,
5821
+ So as DEFAULT_FORECAST_WEEKS,
5822
+ Rl as DEFAULT_MEMORY_BUDGET,
5823
+ Fd as DEFAULT_NUMBER_PADDING,
5824
+ js as DEFAULT_PHONE_REGION,
5825
+ Dd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5826
+ Rd as DEFAULT_TEMPLATE_CONDITIONS,
5827
+ Hl as DEMAND_SOURCE_PROVIDER_GROUP,
5828
+ lp as DOCUMENT_APPLY_SERVICE,
5829
+ ap as DOCUMENT_DESCRIBE_SERVICE,
5830
+ cp as DOCUMENT_INSPECT_SERVICE,
5803
5831
  ct as DOCUMENT_MAX_BLOCKS,
5804
- lc as DOCUMENT_MAX_BODY_BYTES,
5832
+ dc as DOCUMENT_MAX_BODY_BYTES,
5805
5833
  Z as DOCUMENT_MAX_CELL_LEN,
5806
5834
  ft as DOCUMENT_MAX_KPI_ITEMS,
5807
5835
  pt as DOCUMENT_MAX_LETTERHEAD_FIELDS,
@@ -5812,532 +5840,537 @@ export {
5812
5840
  Yt as DOCUMENT_MAX_TEXT_LEN,
5813
5841
  mt as DOCUMENT_MAX_TOTALS_ROWS,
5814
5842
  Tn as DOCUMENT_OPERATIONS,
5815
- Sd as DRAFT_FIELDS,
5816
- Ri as DUTCH_SLOT_LABELS,
5817
- mu as EMPTY_WORKFLOW,
5843
+ wd as DRAFT_FIELDS,
5844
+ $i as DUTCH_SLOT_LABELS,
5845
+ _u as EMPTY_WORKFLOW,
5818
5846
  _n as ENABLED_TRANSACTION_KINDS,
5819
- Vf as FEATURE_MESSAGE_REACTIONS,
5820
- Wf as FEATURE_REMOTE_SEARCH,
5847
+ Zf as FEATURE_MESSAGE_REACTIONS,
5848
+ Jf as FEATURE_REMOTE_SEARCH,
5821
5849
  Ge as FIXED_KINDS,
5822
5850
  se as FIXED_LEVELS,
5823
5851
  ze as FIXED_TYPES,
5824
- xc as FIXED_UNITS,
5852
+ Dc as FIXED_UNITS,
5825
5853
  Hr as FOLLOW_UP_HOURS,
5826
- Ed as FROZEN_WRITABLE_FIELDS,
5854
+ kd as FROZEN_WRITABLE_FIELDS,
5827
5855
  xr as HOUR_MS,
5828
- fa as HTML_BODY_RE,
5856
+ ma as HTML_BODY_RE,
5829
5857
  P as INELIGIBLE,
5830
- op as INSTALLATION_HEADER,
5831
- Uo as INTERACTION_KIND,
5832
- Gf as InteractionParticipantRole,
5833
- Jr as KB_FALLBACK_LOCALE,
5858
+ dp as INSTALLATION_HEADER,
5859
+ Fo as INTERACTION_KIND,
5860
+ qf as InteractionParticipantRole,
5861
+ Zr as KB_FALLBACK_LOCALE,
5834
5862
  yt as KB_LOCALES,
5835
- Pc as LEAD_STATUSES,
5836
- Lc as LIFECYCLE_STAGES,
5863
+ Uc as LEAD_STATUSES,
5864
+ Kc as LIFECYCLE_STAGES,
5837
5865
  yt as LOCALES,
5838
5866
  Ye as LOOSE_STATUSES,
5839
5867
  Kr as MAIL_HINT_HEADERS,
5840
5868
  Ar as MANUAL_PRICE_SOURCE,
5841
- ga as MAX_ACTIONS,
5869
+ ba as MAX_ACTIONS,
5842
5870
  dr as MAX_ASSIGNMENT_TURNS,
5843
- pa as MAX_BLOCKS,
5871
+ ha as MAX_BLOCKS,
5844
5872
  ot as MAX_CHOICE_OPTIONS,
5845
5873
  nn as MAX_COLLECTION_DEPTH,
5846
5874
  fr as MAX_DELEGATION_DEPTH,
5847
- kp as MAX_EDITABLE_FILE_BYTES,
5848
- ma as MAX_FIELDS,
5849
- ha as MAX_LIST_ITEMS,
5850
- Il as MAX_MEMORY_BROWSE,
5851
- wl as MAX_MEMORY_BUDGET,
5852
- vl as MAX_MEMORY_CHARS,
5875
+ Rp as MAX_EDITABLE_FILE_BYTES,
5876
+ ga as MAX_FIELDS,
5877
+ ya as MAX_LIST_ITEMS,
5878
+ Ol as MAX_MEMORY_BROWSE,
5879
+ xl as MAX_MEMORY_BUDGET,
5880
+ Cl as MAX_MEMORY_CHARS,
5853
5881
  It as MAX_RULE_DEPTH,
5854
5882
  st as MAX_SCORE_LEVELS,
5855
- Ks as MAX_SHOWN_KEYS,
5856
- wi as MAX_TOPIC_CANDIDATES,
5857
- ki as MAX_TOPIC_EXAMPLES,
5883
+ Fs as MAX_SHOWN_KEYS,
5884
+ Mi as MAX_TOPIC_CANDIDATES,
5885
+ wi as MAX_TOPIC_EXAMPLES,
5858
5886
  be as MAX_TOPIC_EXAMPLE_CHARS,
5859
- wp as MAX_VIEWABLE_FILE_BYTES,
5860
- kl as MIN_MEMORY_BUDGET,
5887
+ Dp as MAX_VIEWABLE_FILE_BYTES,
5888
+ Nl as MIN_MEMORY_BUDGET,
5861
5889
  it as MIN_SCORE_LEVELS,
5862
5890
  G as MODEL_TIERS,
5863
- Rp as NAV_NOTICE_SLOT,
5864
- jd as NL_PAYMENT_TERMS,
5865
- Ol as NL_TAX_RATES,
5866
- sp as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5867
- Ti as OFF_TRACK_GAP,
5868
- xl as ONBOARDING_SOURCE_PROVIDER_GROUP,
5891
+ jp as NAV_NOTICE_SLOT,
5892
+ Vd as NL_PAYMENT_TERMS,
5893
+ $l as NL_TAX_RATES,
5894
+ pp as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5895
+ Ii as OFF_TRACK_GAP,
5896
+ Pl as ONBOARDING_SOURCE_PROVIDER_GROUP,
5869
5897
  Le as PAUSE_HOLD,
5870
- Re as PAUSE_SNOOZED,
5898
+ De as PAUSE_SNOOZED,
5871
5899
  $e as PAUSE_WAITING_FOR_CUSTOMER,
5872
- Kd as PAYMENT_TERM_METHODS,
5900
+ Gd as PAYMENT_TERM_METHODS,
5873
5901
  Xe as PHONE_REGIONS,
5874
- Jl as PLAYBOOK_RUN_APPROVAL_ACT,
5875
- Ro as PLAYBOOK_RUN_SCOPE_KIND,
5902
+ ru as PLAYBOOK_RUN_APPROVAL_ACT,
5903
+ $o as PLAYBOOK_RUN_SCOPE_KIND,
5876
5904
  In as PRESENCE_ONLINE_WINDOW_MS,
5877
- ys as PRESENCE_SURVIVES_OFFLINE,
5878
- ji as PRODUCT_SCOPE_KIND,
5879
- Rl as PROFILE_TOOL_DISPOSITIONS,
5880
- Bf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5881
- jf as PROVIDER_FEATURE_MESSAGE_WINDOW,
5882
- Vs as PUBLIC_EMAIL_DOMAINS,
5905
+ _s as PRESENCE_SURVIVES_OFFLINE,
5906
+ Bi as PRODUCT_SCOPE_KIND,
5907
+ Ul as PROFILE_TOOL_DISPOSITIONS,
5908
+ Xf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5909
+ Yf as PROVIDER_FEATURE_MESSAGE_WINDOW,
5910
+ Ys as PUBLIC_EMAIL_DOMAINS,
5883
5911
  bt as READ_STEP_TYPES,
5884
- to as RELATED_SUBJECT_KINDS,
5885
- Qa as REPORT_VIEW_LAYOUTS,
5912
+ no as RELATED_SUBJECT_KINDS,
5913
+ Za as REPORT_VIEW_LAYOUTS,
5886
5914
  En as RESERVED_STATUS_KEYS,
5887
- Yd as RESERVED_TYPE_KEYS,
5888
- gp as RESOURCE_ATTACHED_SERVICE,
5889
- pp as RESOURCE_DESCRIBE_SERVICE,
5890
- hp as RESOURCE_RESOLVE_SERVICE,
5891
- mp as RESOURCE_SEARCH_SERVICE,
5892
- wo as SCHEDULE_ENTRY_SCOPE_KIND,
5893
- oi as SCHEDULE_EVENT,
5894
- Ap as SCOPE_ACTS_ROUTE,
5895
- _p as SCOPE_READ_ROUTE,
5896
- bp as SCOPE_RELATED_ROUTE,
5897
- Uc as SEGMENT_FILTER_KEYS,
5898
- jc as SEGMENT_LAYOUTS,
5915
+ Zd as RESERVED_TYPE_KEYS,
5916
+ Tp as RESOURCE_ATTACHED_SERVICE,
5917
+ Ap as RESOURCE_DESCRIBE_SERVICE,
5918
+ Sp as RESOURCE_RESOLVE_SERVICE,
5919
+ Ep as RESOURCE_SEARCH_SERVICE,
5920
+ Mo as SCHEDULE_ENTRY_SCOPE_KIND,
5921
+ ii as SCHEDULE_EVENT,
5922
+ wp as SCOPE_ACTS_ROUTE,
5923
+ kp as SCOPE_READ_ROUTE,
5924
+ vp as SCOPE_RELATED_ROUTE,
5925
+ jc as SEGMENT_FILTER_KEYS,
5926
+ Gc as SEGMENT_LAYOUTS,
5899
5927
  Sr as SEGMENT_LIST_FILTERS,
5900
5928
  Tr as SEGMENT_PRESENCE_FILTERS,
5901
- Fc as SEGMENT_SORT_FIELDS,
5929
+ Bc as SEGMENT_SORT_FIELDS,
5902
5930
  oe as SETTINGS_BASE_PATH,
5903
- Dp as SETTINGS_CATEGORIES,
5904
- Dc as SIGNATURE_INTENTS,
5905
- Uu as SLA_METRICS,
5906
- Fu as SLA_PAUSE_REASONS,
5907
- _d as STATUS_NAMES,
5908
- Bo as STEP_MAX_TOKENS_MAX,
5909
- jo as STEP_MAX_TOKENS_MIN,
5910
- pu as STEP_TYPES,
5911
- yi as STRATEGY_ITEM_SCOPE_KIND,
5931
+ Fp as SETTINGS_CATEGORIES,
5932
+ $c as SIGNATURE_INTENTS,
5933
+ Hu as SLA_METRICS,
5934
+ Wu as SLA_PAUSE_REASONS,
5935
+ Id as STATUS_NAMES,
5936
+ Go as STEP_MAX_TOKENS_MAX,
5937
+ Bo as STEP_MAX_TOKENS_MIN,
5938
+ bu as STEP_TYPES,
5939
+ bi as STRATEGY_ITEM_SCOPE_KIND,
5912
5940
  Pr as SUMMARY_MIN_LAST_CHARS,
5913
5941
  Lr as SUMMARY_MIN_MESSAGES,
5914
- Cp as SYNC_RUN_MAX_ERRORS,
5915
- Mp as SYNC_TARGET_PROVIDER_GROUP,
5916
- ja as SYSTEM_ONE_NON_GOALS,
5942
+ Lp as SYNC_RUN_MAX_ERRORS,
5943
+ $p as SYNC_TARGET_PROVIDER_GROUP,
5944
+ Ga as SYSTEM_ONE_NON_GOALS,
5945
+ qr as SYSTEM_RESOLUTIONS,
5917
5946
  lr as TERMINAL_ASSIGNMENT_STATUSES,
5918
- Vo as TERMINAL_RUN_STATUSES,
5947
+ zo as TERMINAL_RUN_STATUSES,
5919
5948
  Ve as TRANSACTION_KINDS,
5920
- Fi as TRANSACTION_SCOPE_KINDS,
5921
- lu as TRIGGER_VARS,
5922
- ku as UNARY_OPS,
5923
- oo as UNKNOWN_KIND,
5924
- bi as UNKNOWN_LEVEL_ORDER,
5925
- zf as UNSUPPORTED,
5949
+ ji as TRANSACTION_SCOPE_KINDS,
5950
+ mu as TRIGGER_VARS,
5951
+ Nu as UNARY_OPS,
5952
+ io as UNKNOWN_KIND,
5953
+ _i as UNKNOWN_LEVEL_ORDER,
5954
+ ep as UNSUPPORTED,
5955
+ hl as UNWORKED_RESOLUTIONS,
5926
5956
  Xn as USAGE_DIMENSIONS,
5927
5957
  qn as USAGE_DIMENSION_IDS,
5928
5958
  dn as UnresolvedRefError,
5929
- Gi as WEBHOOK_EVENTS,
5930
- Mo as WORKSTREAM_SCOPE_KIND,
5931
- zi as WORK_ACTIVITY_SCOPE_KIND,
5932
- Dl as WORK_AREAS,
5933
- Hd as WORK_COMMENT_ADDED,
5934
- Zd as WORK_CYCLE_SYNC_KIND,
5935
- Wd as WORK_ITEM_ASSIGNED,
5936
- Wi as WORK_ITEM_SCOPE_KIND,
5937
- Vd as WORK_ITEM_STATUS_CHANGED,
5938
- Vi as WORK_PROJECT_SCOPE_KIND,
5939
- bf as WORK_SORT_FIELDS,
5940
- yf as WORK_VIEW_FLAGS,
5941
- _f as WORK_VIEW_LAYOUTS,
5942
- gf as WORK_VIEW_LIST_FILTERS,
5959
+ Hi as WEBHOOK_EVENTS,
5960
+ Oo as WORKSTREAM_SCOPE_KIND,
5961
+ Yi as WORK_ACTIVITY_SCOPE_KIND,
5962
+ Kl as WORK_AREAS,
5963
+ Xd as WORK_COMMENT_ADDED,
5964
+ of as WORK_CYCLE_SYNC_KIND,
5965
+ qd as WORK_ITEM_ASSIGNED,
5966
+ Vi as WORK_ITEM_SCOPE_KIND,
5967
+ Qd as WORK_ITEM_STATUS_CHANGED,
5968
+ zi as WORK_PROJECT_SCOPE_KIND,
5969
+ Tf as WORK_SORT_FIELDS,
5970
+ Sf as WORK_VIEW_FLAGS,
5971
+ If as WORK_VIEW_LAYOUTS,
5972
+ Ef as WORK_VIEW_LIST_FILTERS,
5943
5973
  ne as W_PRIORITY,
5944
- gd as acceptExampleCandidate,
5945
- xo as actingIdentityKey,
5946
- md as activeWorkTypes,
5947
- ba as activityIconOf,
5948
- Ma as activityJoinUrl,
5974
+ Ed as acceptExampleCandidate,
5975
+ Ro as actingIdentityKey,
5976
+ _d as activeWorkTypes,
5977
+ Aa as activityIconOf,
5978
+ Ca as activityJoinUrl,
5949
5979
  Pn as activitySnippet,
5950
5980
  Kn as activityTextParams,
5951
- wa as activityTimelineText,
5981
+ Oa as activityTimelineText,
5952
5982
  Bn as activityTimestamp,
5953
5983
  v as activityTypeInfo,
5954
- Ql as actorKey,
5955
- hd as addExampleCandidate,
5984
+ nu as actorKey,
5985
+ Ad as addExampleCandidate,
5956
5986
  He as addWorkingMs,
5957
- up as agePresenceEntry,
5958
- rs as aiAttachmentKind,
5959
- If as aiAttachmentRejection,
5987
+ yp as agePresenceEntry,
5988
+ os as aiAttachmentKind,
5989
+ Of as aiAttachmentRejection,
5960
5990
  at as aiBudgetLimit,
5961
- Ya as aiBudgetPeriodKey,
5991
+ qa as aiBudgetPeriodKey,
5962
5992
  Wn as aiBudgetPeriodStart,
5963
- za as aiBudgetState,
5964
- Va as aiVendorAcceptsAttachment,
5965
- Ga as aiVendorDefaultModel,
5966
- Ba as aiVendorLabel,
5967
- Wa as aiVendorNeedsBaseUrl,
5968
- Ha as aiVendorsWith,
5993
+ Xa as aiBudgetState,
5994
+ Ya as aiVendorAcceptsAttachment,
5995
+ Wa as aiVendorDefaultModel,
5996
+ Ha as aiVendorLabel,
5997
+ za as aiVendorNeedsBaseUrl,
5998
+ Va as aiVendorsWith,
5969
5999
  hr as allocate,
5970
6000
  wn as appNameFromPath,
5971
- cc as applyApprovalDecision,
5972
- ld as applyRounding,
5973
- Rc as applySignature,
5974
- Go as approvalRate,
5975
- dc as artifactBodyBytes,
5976
- fc as artifactOutline,
6001
+ uc as applyApprovalDecision,
6002
+ md as applyRounding,
6003
+ Lc as applySignature,
6004
+ Ho as approvalRate,
6005
+ pc as artifactBodyBytes,
6006
+ mc as artifactOutline,
5977
6007
  cr as artifactToMarkdown,
5978
- ru as assignmentMismatch,
5979
- bc as assignmentScopeKey,
5980
- Ec as assignmentSubject,
5981
- Kl as availabilityByPerson,
5982
- $l as belongsOnCalendar,
5983
- vc as belongsToEntity,
5984
- ad as billableTimeGroups,
5985
- vu as bindParams,
5986
- Ce as bindValue,
5987
- Ca as buildActivityPreview,
5988
- Lf as buildChannelIntents,
5989
- pc as buildShareKeys,
5990
- Ps as buildWindow,
5991
- Or as businessEntitySender,
5992
- so as calendarDaysBetween,
6008
+ cu as assignmentMismatch,
6009
+ Ac as assignmentScopeKey,
6010
+ Tc as assignmentSubject,
6011
+ Gl as availabilityByPerson,
6012
+ Fl as belongsOnCalendar,
6013
+ wc as belongsToEntity,
6014
+ fd as billableTimeGroups,
6015
+ Cu as bindParams,
6016
+ Oe as bindValue,
6017
+ Na as buildActivityPreview,
6018
+ jf as buildChannelIntents,
6019
+ hc as buildShareKeys,
6020
+ Us as buildWindow,
6021
+ Cr as businessEntitySender,
6022
+ ao as calendarDaysBetween,
5993
6023
  We as calendarOf,
5994
- Id as canConvert,
5995
- bl as canNestUnder,
5996
- Xu as canParent,
5997
- Ad as canTransition,
5998
- Ra as capabilityDefaultFlag,
5999
- Ll as capacityTotal,
6000
- zl as capacityWeights,
6001
- Ta as carriesText,
6002
- Al as categoryLabel,
6003
- qi as categoryOf,
6004
- Ou as causedBy,
6005
- Ff as channelKindForScheme,
6006
- _a as channelKindOf,
6007
- id as checkInOverdueMs,
6008
- fu as clampStepMaxTokens,
6009
- il as classifyMail,
6010
- Gp as cleanMessageMarkdown,
6011
- Bp as cleanMessageText,
6012
- Mc as codeQuery,
6013
- Nf as compareAssistRank,
6014
- vi as compareWorkTypes,
6015
- Cr as conditionHolds,
6016
- Kc as contactName,
6024
+ Od as canConvert,
6025
+ Tl as canNestUnder,
6026
+ ed as canParent,
6027
+ vd as canTransition,
6028
+ La as capabilityDefaultFlag,
6029
+ jl as capacityTotal,
6030
+ Jl as capacityWeights,
6031
+ va as carriesText,
6032
+ vl as categoryLabel,
6033
+ Qi as categoryOf,
6034
+ $u as causedBy,
6035
+ zf as channelKindForScheme,
6036
+ Ea as channelKindOf,
6037
+ ud as checkInOverdueMs,
6038
+ yu as clampStepMaxTokens,
6039
+ al as classifyMail,
6040
+ qp as cleanMessageMarkdown,
6041
+ Xp as cleanMessageText,
6042
+ Cc as codeQuery,
6043
+ Wf as codedMessage,
6044
+ Lf as compareAssistRank,
6045
+ ki as compareWorkTypes,
6046
+ Or as conditionHolds,
6047
+ Fc as contactName,
6017
6048
  Di as copyFrom,
6018
6049
  Y as countsAsPlanned,
6019
- Pl as coverageByPerson,
6020
- jl as coverageFor,
6050
+ Bl as coverageByPerson,
6051
+ Vl as coverageFor,
6021
6052
  on as coversWorkstream,
6022
- Yc as crmActivityAt,
6023
- ri as cronMatches,
6024
- Pd as currentPeriod,
6053
+ qc as crmActivityAt,
6054
+ oi as cronMatches,
6055
+ Bd as currentPeriod,
6025
6056
  sn as cycleDayIndex,
6026
- mf as cycleOrder,
6027
- hf as cycleState,
6028
- Sc as decideAssignmentState,
6029
- xp as decideCadence,
6030
- oc as decideEach,
6031
- Rf as decideIncomingCall,
6032
- Fa as decisionBand,
6033
- Zr as defaultLocaleOf,
6034
- cf as defaultStatusKey,
6035
- Ki as defaultTemplateBlocks,
6036
- Hf as defineIntent,
6037
- Tc as delegationRefusal,
6038
- qr as depthOf,
6039
- lp as derivePresence,
6040
- tc as describeClause,
6041
- Mu as describeExpression,
6042
- $f as disabledIntentsFromCapabilities,
6043
- dc as documentBodyBytes,
6044
- rp as documentKindOf,
6045
- fc as documentOutline,
6057
+ _f as cycleOrder,
6058
+ Af as cycleState,
6059
+ Ic as decideAssignmentState,
6060
+ Up as decideCadence,
6061
+ sc as decideEach,
6062
+ Uf as decideIncomingCall,
6063
+ Ba as decisionBand,
6064
+ eo as defaultLocaleOf,
6065
+ pf as defaultStatusKey,
6066
+ Ui as defaultTemplateBlocks,
6067
+ Qf as defineIntent,
6068
+ vc as delegationRefusal,
6069
+ Qr as depthOf,
6070
+ gp as derivePresence,
6071
+ rc as describeClause,
6072
+ Ru as describeExpression,
6073
+ Ff as disabledIntentsFromCapabilities,
6074
+ pc as documentBodyBytes,
6075
+ up as documentKindOf,
6076
+ mc as documentOutline,
6046
6077
  cr as documentToMarkdown,
6047
- Zf as documentToText,
6048
- ai as driftedFields,
6049
- Gu as dueAtOf,
6050
- Ud as dueDateFrom,
6051
- cd as elapsedSeconds,
6052
- Pp as emailDomain,
6053
- wu as emptyConditionLeaf,
6054
- Fp as endpointKey,
6055
- kc as entityOwnerIds,
6056
- uo as erlangC,
6057
- Es as extractParams,
6058
- $s as extractTerms,
6059
- Zc as failureLines,
6060
- Ru as fieldVarPath,
6061
- Qc as fillDocument,
6078
+ sp as documentToText,
6079
+ ci as driftedFields,
6080
+ Yu as dueAtOf,
6081
+ Hd as dueDateFrom,
6082
+ pd as elapsedSeconds,
6083
+ Hp as emailDomain,
6084
+ xu as emptyConditionLeaf,
6085
+ zp as endpointKey,
6086
+ Mc as entityOwnerIds,
6087
+ fo as erlangC,
6088
+ Ts as extractParams,
6089
+ Ps as extractTerms,
6090
+ tl as failureLines,
6091
+ Uu as fieldVarPath,
6092
+ Zc as fillDocument,
6062
6093
  Mr as fillText,
6063
- Kf as filterByEndpoint,
6064
- Pf as filterByIntent,
6065
- ls as filterByTargetScheme,
6066
- ec as filterableDimensions,
6094
+ Gf as filterByEndpoint,
6095
+ Bf as filterByIntent,
6096
+ us as filterByTargetScheme,
6097
+ nc as filterableDimensions,
6067
6098
  ie as findAiVendor,
6068
- $u as findEvent,
6069
- Qu as fixedLevelForName,
6070
- Qd as fixedTypeForName,
6071
- Jd as fixedTypes,
6072
- ip as flattenLocales,
6099
+ Fu as findEvent,
6100
+ nd as fixedLevelForName,
6101
+ nf as fixedTypeForName,
6102
+ rf as fixedTypes,
6103
+ fp as flattenLocales,
6073
6104
  V as floorToPeriod,
6074
- Hl as forecastIntervals,
6075
- No as formatActingIdentity,
6105
+ Xl as forecastIntervals,
6106
+ xo as formatActingIdentity,
6076
6107
  $ as formatCents,
6077
- dd as formatClock,
6078
- ud as formatHm,
6079
- tf as formatItemKey,
6108
+ gd as formatClock,
6109
+ hd as formatHm,
6110
+ af as formatItemKey,
6080
6111
  W as formatPeriod,
6081
- Ld as formatSeriesNumber,
6082
- Vu as formatSlaDuration,
6083
- wf as freshSources,
6084
- Na as getActivitySeenUserIds,
6085
- $c as getContactEndpoints,
6086
- fl as getShortTitle,
6087
- dl as getUrgencyScore,
6088
- Iu as hasReacted,
6089
- Ju as healthCategory,
6090
- Zu as healthsInCategory,
6112
+ jd as formatSeriesNumber,
6113
+ Qu as formatSlaDuration,
6114
+ xf as freshSources,
6115
+ Ra as getActivitySeenUserIds,
6116
+ Pc as getContactEndpoints,
6117
+ ml as getShortTitle,
6118
+ pl as getUrgencyScore,
6119
+ Ou as hasReacted,
6120
+ rd as healthCategory,
6121
+ od as healthsInCategory,
6091
6122
  rn as heightOf,
6092
- ml as helpCenterText,
6093
- au as humanizeAction,
6094
- Fo as interactionIdOf,
6095
- Bd as isAgentUser,
6096
- ll as isAssigned,
6097
- yc as isAssignmentTerminal,
6098
- Lo as isAssignmentTrigger,
6099
- Xa as isAssistantMode,
6100
- zc as isAuthoredCrmActivity,
6101
- bu as isAutoReady,
6102
- ou as isAutonomy,
6123
+ _l as helpCenterText,
6124
+ fu as humanizeAction,
6125
+ jo as interactionIdOf,
6126
+ zd as isAgentUser,
6127
+ dl as isAssigned,
6128
+ _c as isAssignmentTerminal,
6129
+ Po as isAssignmentTrigger,
6130
+ Qa as isAssistantMode,
6131
+ Xc as isAuthoredCrmActivity,
6132
+ Tu as isAutoReady,
6133
+ lu as isAutonomy,
6103
6134
  Xr as isAwaitingThem,
6104
- Da as isChatMessageActivity,
6105
- ul as isClosed,
6106
- va as isConnectedType,
6107
- Ep as isDeepLink,
6108
- Qr as isDescendant,
6109
- tl as isEligible,
6110
- xa as isEmailActivity,
6111
- xi as isFrozen,
6112
- Bu as isHeldClock,
6113
- jp as isHtmlBody,
6114
- Au as isInFlight,
6135
+ $a as isChatMessageActivity,
6136
+ fl as isClosed,
6137
+ wa as isConnectedType,
6138
+ Mp as isDeepLink,
6139
+ Jr as isDescendant,
6140
+ rl as isEligible,
6141
+ Da as isEmailActivity,
6142
+ Ri as isFrozen,
6143
+ zu as isHeldClock,
6144
+ Yp as isHtmlBody,
6145
+ vu as isInFlight,
6115
6146
  jr as isInteractionUnseen,
6116
- Tp as isLandingPath,
6147
+ Cp as isLandingPath,
6117
6148
  $r as isLikelyBulk,
6118
6149
  Ht as isMessageShape,
6119
- Aa as isMessageType,
6120
- Ts as isMoreSpecificPattern,
6150
+ Sa as isMessageType,
6151
+ vs as isMoreSpecificPattern,
6121
6152
  Wt as isNoteShape,
6122
- gi as isOpenClock,
6153
+ yi as isOpenClock,
6123
6154
  Sn as isOutwardTool,
6124
6155
  Vr as isParked,
6125
- zo as isPaused,
6126
- Ia as isPlaybookAuthoredType,
6127
- Kp as isPublicEmailDomain,
6128
- vp as isPublicPath,
6156
+ Yo as isPaused,
6157
+ ka as isPlaybookAuthoredType,
6158
+ Wp as isPublicEmailDomain,
6159
+ xp as isPublicPath,
6129
6160
  zr as isReminderActive,
6130
- Sa as isReplyableType,
6131
- bs as isSettingsPath,
6132
- al as isSlaAtRisk,
6133
- Cu as isSupportedCron,
6134
- _u as isTerminal,
6135
- rl as isThreadLongEnough,
6136
- ka as isTranscriptType,
6137
- Gd as isWebhookEvent,
6138
- lf as isWorkClosed,
6139
- pd as isWorkTypeVisible,
6161
+ Ia as isReplyableType,
6162
+ As as isSettingsPath,
6163
+ ll as isSlaAtRisk,
6164
+ Du as isSupportedCron,
6165
+ Iu as isTerminal,
6166
+ il as isThreadLongEnough,
6167
+ Ma as isTranscriptType,
6168
+ Yd as isWebhookEvent,
6169
+ mf as isWorkClosed,
6170
+ bd as isWorkTypeVisible,
6140
6171
  Mn as isWriteTool,
6141
- of as itemDossierKeys,
6142
- Nu as judgeRuleCase,
6143
- D as kindFor,
6144
- Xi as ladderFor,
6145
- Ai as levelIn,
6172
+ uf as itemDossierKeys,
6173
+ Lu as judgeRuleCase,
6174
+ R as kindFor,
6175
+ qi as ladderFor,
6176
+ Ei as levelIn,
6146
6177
  Ke as levelOrder,
6147
- ro as lineNet,
6148
- pl as linkLabel,
6149
- bd as listedTransactionKinds,
6150
- qa as listeningAllowed,
6151
- yl as localeInstruction,
6152
- gl as localeName,
6153
- _l as localesOf,
6154
- $p as looksLikeEmail,
6178
+ oo as lineNet,
6179
+ bl as linkLabel,
6180
+ Td as listedTransactionKinds,
6181
+ Ja as listeningAllowed,
6182
+ Sl as localeInstruction,
6183
+ El as localeName,
6184
+ Il as localesOf,
6185
+ Bp as looksLikeEmail,
6155
6186
  Qt as lookup,
6156
- Oc as marginCents,
6157
- Jf as markdownToDocument,
6158
- sc as matchApprovalPolicy,
6159
- Uf as matchContactToIntents,
6160
- Is as matchPublicRoute,
6161
- ii as matchRules,
6162
- Sl as mcpCredentialScope,
6163
- Tl as mcpToolPrefix,
6164
- ed as measureRatio,
6165
- La as mergeDefaultFlags,
6166
- Np as mergeShownKeys,
6187
+ xc as marginCents,
6188
+ ip as markdownToDocument,
6189
+ cc as matchApprovalPolicy,
6190
+ Hf as matchContactToIntents,
6191
+ ks as matchPublicRoute,
6192
+ si as matchRules,
6193
+ wl as mcpCredentialScope,
6194
+ Ml as mcpToolPrefix,
6195
+ id as measureRatio,
6196
+ Ka as mergeDefaultFlags,
6197
+ Kp as mergeShownKeys,
6167
6198
  Ln as messageCountsAs,
6168
- nc as metricOption,
6199
+ oc as metricOption,
6169
6200
  an as minutesOn,
6170
- Lu as missingFieldPaths,
6171
- Pa as modelAcceptsAttachment,
6172
- vs as mustAsk,
6173
- su as narrowAutonomy,
6174
- Up as needsPhoneRegion,
6175
- Ea as nestsUnderParent,
6176
- qu as nextLevelBelow,
6177
- Ef as nextOccurrenceDates,
6178
- Hu as nextSlaClock,
6179
- Ni as nextStatuses,
6180
- vd as nextVersion,
6181
- uc as normalizeArtifactBlocks,
6182
- ya as normalizeBlocks,
6183
- uc as normalizeDocumentBlocks,
6184
- Cn as normalizeEmail,
6201
+ ju as missingFieldPaths,
6202
+ Ua as modelAcceptsAttachment,
6203
+ ws as mustAsk,
6204
+ du as narrowAutonomy,
6205
+ Vp as needsPhoneRegion,
6206
+ Ta as nestsUnderParent,
6207
+ td as nextLevelBelow,
6208
+ kf as nextOccurrenceDates,
6209
+ Xu as nextSlaClock,
6210
+ xi as nextStatuses,
6211
+ Cd as nextVersion,
6212
+ fc as normalizeArtifactBlocks,
6213
+ _a as normalizeBlocks,
6214
+ fc as normalizeDocumentBlocks,
6215
+ On as normalizeEmail,
6185
6216
  K as normalizeExample,
6186
6217
  pr as normalizeGtin,
6187
- ap as notificationPrefKey,
6188
- Ls as novelty,
6189
- Qf as operationDescriptor,
6190
- qf as operationsForKind,
6191
- Du as opsForFieldType,
6192
- Jc as organizationSender,
6193
- pf as outcomeOf,
6218
+ mp as notificationPrefKey,
6219
+ Ks as novelty,
6220
+ op as operationDescriptor,
6221
+ rp as operationsForKind,
6222
+ Ku as opsForFieldType,
6223
+ el as organizationSender,
6224
+ bf as outcomeOf,
6194
6225
  pe as overlapSeconds,
6195
- Fl as overlaps,
6196
- td as paceRatio,
6197
- nl as parkMarksById,
6198
- ti as parse,
6199
- Xl as parseActingIdentity,
6200
- Cc as parseAmount,
6201
- Pu as parseClockMinutes,
6226
+ Wl as overlaps,
6227
+ sd as paceRatio,
6228
+ ol as parkMarksById,
6229
+ ni as parse,
6230
+ eu as parseActingIdentity,
6231
+ Nc as parseAmount,
6232
+ Bu as parseClockMinutes,
6233
+ Vf as parseCodedMessage,
6202
6234
  fn as parseCron,
6203
- nf as parseItemKey,
6204
- Af as parseRecurrence,
6205
- As as pathToRegex,
6235
+ cf as parseItemKey,
6236
+ vf as parseRecurrence,
6237
+ Ss as pathToRegex,
6206
6238
  ln as patternFor,
6207
6239
  cn as patternStartTime,
6208
- Ku as pauseBitFor,
6209
- ac as pendingApprovers,
6210
- Za as periodsInRange,
6211
- Lp as phoneSuffix,
6212
- ol as pickMailHeaders,
6213
- qc as pickTemplate,
6214
- Yl as placeLumps,
6215
- Rn as plainTextFromMarkdown,
6216
- ju as planSlaEvent,
6217
- Bl as plannedBillable,
6218
- _o as plannedWorkTypeKey,
6219
- gu as procedureOf,
6220
- xd as productHref,
6221
- Od as productScopeKey,
6222
- sf as projectDossierKeys,
6223
- ic as proposalRequestIds,
6224
- Ss as publicBasePathFor,
6225
- Ip as publicRoutePatterns,
6226
- Ac as reactionWakesAssignment,
6227
- $a as readDefaultFlags,
6240
+ Gu as pauseBitFor,
6241
+ lc as pendingApprovers,
6242
+ tc as periodsInRange,
6243
+ Gp as phoneSuffix,
6244
+ sl as pickMailHeaders,
6245
+ Jc as pickTemplate,
6246
+ Zl as placeLumps,
6247
+ Dn as plainTextFromMarkdown,
6248
+ Vu as planSlaEvent,
6249
+ zl as plannedBillable,
6250
+ Ao as plannedWorkTypeKey,
6251
+ Eu as procedureOf,
6252
+ Pd as productHref,
6253
+ $d as productScopeKey,
6254
+ df as projectDossierKeys,
6255
+ ac as proposalRequestIds,
6256
+ Is as publicBasePathFor,
6257
+ Np as publicRoutePatterns,
6258
+ Sc as reactionWakesAssignment,
6259
+ Pa as readDefaultFlags,
6228
6260
  Ee as readPath,
6229
6261
  fe as readStepError,
6230
6262
  Wr as recencyOf,
6231
- Xc as recipientLocale,
6232
- Ko as refKey,
6233
- Ws as registrableDomain,
6263
+ Qc as recipientLocale,
6264
+ Uo as refKey,
6265
+ zs as registrableDomain,
6234
6266
  Ci as rejectExampleCandidate,
6235
- Cl as relatedByDefault,
6267
+ Dl as relatedByDefault,
6236
6268
  Pe as remainingMsOf,
6237
- Nc as repriceLines,
6238
- mo as requiredAgents,
6239
- bo as requirementFor,
6240
- as as resolveAccountCapabilities,
6269
+ Rc as repriceLines,
6270
+ ho as requiredAgents,
6271
+ _o as requirementFor,
6272
+ yl as resolutionsFor,
6273
+ cs as resolveAccountCapabilities,
6241
6274
  Se as resolveActivityText,
6242
- iu as resolveAutonomy,
6243
- ss as resolveChannelIntents,
6275
+ uu as resolveAutonomy,
6276
+ as as resolveChannelIntents,
6244
6277
  br as resolvePrice,
6245
- Ka as resolveRoute,
6278
+ Fa as resolveRoute,
6246
6279
  Er as resolveSignature,
6247
6280
  Hn as resolveTier,
6248
- dp as resolveWorkMode,
6249
- yp as resourceKindOf,
6250
- od as rollupChildren,
6281
+ bp as resolveWorkMode,
6282
+ Ip as resourceKindOf,
6283
+ ld as rollupChildren,
6251
6284
  z as roundHalfUp,
6252
- ql as runActor,
6253
- Zl as runApprovalKey,
6254
- el as runEvalSuite,
6255
- eu as runIdOfApprovalRef,
6256
- Su as runInteractionId,
6257
- yu as runKind,
6258
- xu as runOutcome,
6285
+ tu as runActor,
6286
+ ou as runApprovalKey,
6287
+ nl as runEvalSuite,
6288
+ iu as runIdOfApprovalRef,
6289
+ wu as runInteractionId,
6290
+ Su as runKind,
6291
+ Pu as runOutcome,
6259
6292
  or as sanitizeInline,
6260
- Ms as sanitizeTranscript,
6261
- Wl as scheduleEntryScopeKey,
6262
- cl as scoreInteraction,
6263
- zd as scoreWorkItem,
6264
- Bc as segmentIsEmpty,
6265
- El as selectLenses,
6293
+ Cs as sanitizeTranscript,
6294
+ ql as scheduleEntryScopeKey,
6295
+ ul as scoreInteraction,
6296
+ Jd as scoreWorkItem,
6297
+ Hc as segmentIsEmpty,
6298
+ kl as selectLenses,
6266
6299
  ge as serialize,
6267
- fo as serviceLevel,
6268
- Df as sessionsHoldCannotReach,
6269
- xf as sessionsToHold,
6270
- Sp as settingsPath,
6271
- wc as shadowByKey,
6300
+ po as serviceLevel,
6301
+ Kf as sessionsHoldCannotReach,
6302
+ Pf as sessionsToHold,
6303
+ Op as settingsPath,
6304
+ Oc as shadowByKey,
6272
6305
  qt as shareKeyForTeam,
6273
6306
  Xt as shareKeyForUser,
6274
- mc as shareKeysForViewer,
6275
- Gl as shortfalls,
6276
- fp as shouldRunAudioPipeline,
6277
- Wu as slaBadgeTone,
6278
- sl as slaHoursByInbox,
6307
+ gc as shareKeysForViewer,
6308
+ Yl as shortfalls,
6309
+ _p as shouldRunAudioPipeline,
6310
+ qu as slaBadgeTone,
6311
+ cl as slaHoursByInbox,
6279
6312
  Yr as slaHoursFor,
6280
- Qi as sortStatuses,
6281
- is as sourceKey,
6282
- Oo as spreadOverWeights,
6283
- af as statusIn,
6284
- ff as statusRequiresApproval,
6285
- es as stepDate,
6286
- hu as stepsOf,
6287
- Yu as strategyAncestorKeysFor,
6288
- zu as strategyDossierKeys,
6313
+ Ji as sortStatuses,
6314
+ ss as sourceKey,
6315
+ No as spreadOverWeights,
6316
+ ff as statusIn,
6317
+ yf as statusRequiresApproval,
6318
+ ts as stepDate,
6319
+ Au as stepsOf,
6320
+ Zu as strategyAncestorKeysFor,
6321
+ Ju as strategyDossierKeys,
6289
6322
  bn as strategyItemScopeKey,
6290
6323
  $n as stripHtml,
6291
- Eu as subjectKeyOf,
6324
+ ku as subjectKeyOf,
6292
6325
  un as subjectOf,
6293
- Of as subjectRef,
6294
- rf as suggestProjectKey,
6295
- nd as suggestedHealth,
6326
+ $f as subjectRef,
6327
+ lf as suggestProjectKey,
6328
+ ad as suggestedHealth,
6296
6329
  Nr as summariseEval,
6297
- Tu as summarizeReactions,
6298
- nu as targetById,
6299
- tu as targetForActivityType,
6300
- sd as targetOrder,
6301
- no as taxRateFor,
6302
- ao as termsFor,
6330
+ Mu as summarizeReactions,
6331
+ au as targetById,
6332
+ su as targetForActivityType,
6333
+ dd as targetOrder,
6334
+ ro as taxRateFor,
6335
+ co as termsFor,
6303
6336
  Do as toActingIdentity,
6304
6337
  Pt as toE164,
6305
- Fd as toTransactionTerm,
6306
- Po as toolBareName,
6307
- cu as toolDisplayName,
6308
- kf as toolReversible,
6309
- hc as toolSourceKinds,
6310
- Op as toolVerdict,
6311
- Oi as topicOfferedForTeam,
6312
- yd as topicsForTeam,
6313
- po as trafficIntensity,
6314
- kd as transactionContext,
6315
- Rd as transactionDossierKeys,
6316
- Nd as transactionHref,
6317
- Dd as transactionIdFromScope,
6318
- C as transactionKind,
6319
- Bi as transactionScopeKey,
6320
- wd as transactionSlots,
6321
- Nl as transactionTotals,
6322
- uu as triggerFillsVar,
6323
- Mi as truncateExample,
6324
- qd as typeIn,
6325
- Xd as typesFor,
6326
- uf as uniqueWorkStatusKey,
6327
- fd as uniqueWorkTypeKey,
6338
+ Wd as toTransactionTerm,
6339
+ Ko as toolBareName,
6340
+ pu as toolDisplayName,
6341
+ Nf as toolReversible,
6342
+ yc as toolSourceKinds,
6343
+ Pp as toolVerdict,
6344
+ Ni as topicOfferedForTeam,
6345
+ Sd as topicsForTeam,
6346
+ mo as trafficIntensity,
6347
+ Nd as transactionContext,
6348
+ Ud as transactionDossierKeys,
6349
+ Ld as transactionHref,
6350
+ Kd as transactionIdFromScope,
6351
+ O as transactionKind,
6352
+ Gi as transactionScopeKey,
6353
+ xd as transactionSlots,
6354
+ Ll as transactionTotals,
6355
+ hu as triggerFillsVar,
6356
+ Oi as truncateExample,
6357
+ tf as typeIn,
6358
+ ef as typesFor,
6359
+ hf as uniqueWorkStatusKey,
6360
+ yd as uniqueWorkTypeKey,
6328
6361
  Qn as usageMetricId,
6329
- rc as usageMetrics,
6330
- Ua as validateQuestions,
6331
- df as validateStatuses,
6332
- $o as valueAtPath,
6362
+ ic as usageMetrics,
6363
+ ja as validateQuestions,
6364
+ gf as validateStatuses,
6365
+ Lo as valueAtPath,
6333
6366
  Be as waitHoursOf,
6334
- _c as wakesAssignment,
6335
- ef as workActivityScopeKey,
6336
- Yi as workItemScopeKey,
6367
+ Ec as wakesAssignment,
6368
+ sf as workActivityScopeKey,
6369
+ Xi as workItemScopeKey,
6337
6370
  An as workProjectScopeKey,
6338
- rd as workRatio,
6339
- Ji as workStatusKey,
6340
- Ii as workTypeKey,
6341
- De as workingMsBetween,
6342
- Vl as workstreamScopeKey
6371
+ cd as workRatio,
6372
+ Zi as workStatusKey,
6373
+ vi as workTypeKey,
6374
+ Re as workingMsBetween,
6375
+ Ql as workstreamScopeKey
6343
6376
  };