@opencxh/domain 1.209.0 → 1.211.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 or = 10, ar = 10, sr = 10, cr = 5, xe = /* @__PURE__ */ new Set([
1
+ const yr = 10, Ar = 10, br = 10, Er = 5, xe = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function w(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function lr(e, t = () => {
17
+ function Sr(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -69,7 +69,7 @@ function lr(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const De = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Le = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
72
+ const Le = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, De = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
73
  function Pe(e) {
74
74
  if (typeof e != "string" || !e) return "";
75
75
  let t = e;
@@ -77,7 +77,7 @@ function Pe(e) {
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(De, "$2"), t = t.replace(Le, "$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(Le, "$2"), t = t.replace(De, "$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 Ue(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();
@@ -452,50 +452,50 @@ function K(e) {
452
452
  const t = e.payload, n = Pe(t.bodyText).trim() || t.bodySnippet?.trim() || Ue(t.body ?? "");
453
453
  return t.subject ? `${t.subject} — ${n}` : n;
454
454
  }
455
- function d(e) {
455
+ function p(e) {
456
456
  return m[e];
457
457
  }
458
- function ur(e) {
459
- return d(e)?.icon ?? "circle";
458
+ function _r(e) {
459
+ return p(e)?.icon ?? "circle";
460
460
  }
461
- function dr(e) {
462
- return d(e)?.channelKind;
461
+ function Tr(e) {
462
+ return p(e)?.channelKind;
463
463
  }
464
464
  function pe(e) {
465
465
  return e === "message" || e === "note";
466
466
  }
467
- function pr(e) {
468
- return pe(d(e)?.shape);
467
+ function Ir(e) {
468
+ return pe(p(e)?.shape);
469
469
  }
470
- function fr(e) {
471
- return d(e)?.replyable === !0;
470
+ function wr(e) {
471
+ return p(e)?.replyable === !0;
472
472
  }
473
- function mr(e) {
474
- return d(e)?.carriesText === !0;
473
+ function Mr(e) {
474
+ return p(e)?.carriesText === !0;
475
475
  }
476
476
  function Ke(e) {
477
- return d(e)?.countsAs;
477
+ return p(e)?.countsAs;
478
478
  }
479
- function gr(e) {
480
- return d(e)?.playbookAuthored === !0;
479
+ function kr(e) {
480
+ return p(e)?.playbookAuthored === !0;
481
481
  }
482
- function hr(e) {
483
- return d(e)?.connected === !0;
482
+ function Cr(e) {
483
+ return p(e)?.connected === !0;
484
484
  }
485
- function yr(e) {
486
- const t = d(e);
485
+ function Or(e) {
486
+ const t = p(e);
487
487
  return t?.shape === "artifact" && t?.carriesText === !0;
488
488
  }
489
- function Ge(e) {
490
- const t = d(e.type)?.snippet;
489
+ function je(e) {
490
+ const t = p(e.type)?.snippet;
491
491
  return t ? t(e) : "";
492
492
  }
493
- function Ar(e, t) {
494
- const n = d(e.type)?.timeline;
493
+ function Nr(e, t) {
494
+ const n = p(e.type)?.timeline;
495
495
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
496
496
  }
497
- function br(e) {
498
- const t = d(e.type)?.joinUrl;
497
+ function vr(e) {
498
+ const t = p(e.type)?.joinUrl;
499
499
  return t ? t(e) : void 0;
500
500
  }
501
501
  function R(e, t) {
@@ -517,24 +517,24 @@ function $(e, t, n) {
517
517
  const i = n(e.key, r);
518
518
  return i === e.key ? null : i;
519
519
  }
520
- function je(e, t) {
520
+ function Ge(e, t) {
521
521
  if (!e || typeof e == "string" || "value" in e) return null;
522
522
  const n = {};
523
523
  for (const [r, i] of Object.entries(e.params ?? {}))
524
524
  n[r] = R(t, i);
525
525
  return { key: e.key, params: n };
526
526
  }
527
- const G = 140;
527
+ const j = 140;
528
528
  function Be(e) {
529
529
  const t = e.trim();
530
- return t.length <= G ? t : `${t.slice(0, G - 1).trimEnd()}…`;
530
+ return t.length <= j ? t : `${t.slice(0, j - 1).trimEnd()}…`;
531
531
  }
532
- function Er(e, t) {
533
- const n = je(t?.text, e), r = t ? $(t.text, e, (i) => i) : null;
532
+ function Rr(e, t) {
533
+ const n = Ge(t?.text, e), r = t ? $(t.text, e, (i) => i) : null;
534
534
  return {
535
535
  activityId: e.id,
536
536
  type: e.type,
537
- snippet: Be(r ?? Ge(e)),
537
+ snippet: Be(r ?? je(e)),
538
538
  authorName: e.author?.name ?? "",
539
539
  direction: e.direction,
540
540
  createdAt: e.createdAt ?? Date.now(),
@@ -542,7 +542,7 @@ function Er(e, t) {
542
542
  };
543
543
  }
544
544
  const He = (e) => e;
545
- function j(e) {
545
+ function G(e) {
546
546
  const t = m[e];
547
547
  return {
548
548
  type: e,
@@ -581,13 +581,13 @@ class Fe {
581
581
  }
582
582
  declared = /* @__PURE__ */ new Map();
583
583
  get(t) {
584
- if (t in m) return j(t);
584
+ if (t in m) return G(t);
585
585
  const n = this.declared.get(t);
586
586
  return n ? B(n) : void 0;
587
587
  }
588
588
  /** Everything that may be offered as a trigger, built-in and declared. */
589
589
  triggerable() {
590
- const t = Object.keys(m).filter((r) => m[r].triggerable).map(j), n = [...this.declared.values()].map(B).filter((r) => r.triggerable);
590
+ const t = Object.keys(m).filter((r) => m[r].triggerable).map(G), n = [...this.declared.values()].map(B).filter((r) => r.triggerable);
591
591
  return [...t, ...n];
592
592
  }
593
593
  /**
@@ -659,20 +659,20 @@ class Fe {
659
659
  return this.translate;
660
660
  }
661
661
  }
662
- const Sr = new Fe();
663
- function _r(e, t, n = []) {
662
+ const $r = new Fe();
663
+ function xr(e, t, n = []) {
664
664
  const r = e.createdAt;
665
665
  if (!r) return [];
666
666
  const i = new Set(n);
667
667
  return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([o, a]) => a >= r && !i.has(o)).map(([o]) => o);
668
668
  }
669
- function Ve(e) {
669
+ function We(e) {
670
670
  return e.createdAt ?? 0;
671
671
  }
672
- function Tr(e) {
672
+ function Lr(e) {
673
673
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
674
674
  }
675
- function Ir(e) {
675
+ function Dr(e) {
676
676
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
677
677
  }
678
678
  const fe = [
@@ -768,23 +768,23 @@ const fe = [
768
768
  function T(e) {
769
769
  return fe.find((t) => t.id === e);
770
770
  }
771
- function wr(e) {
771
+ function Pr(e) {
772
772
  return T(e)?.label ?? e;
773
773
  }
774
- function Mr(e, t = "gpt-5-mini") {
774
+ function Ur(e, t = "gpt-5-mini") {
775
775
  return T(e)?.defaultModel ?? t;
776
776
  }
777
- function kr(e) {
777
+ function Kr(e) {
778
778
  return fe.filter((t) => t.capabilities.includes(e));
779
779
  }
780
- function Cr(e) {
780
+ function jr(e) {
781
781
  const t = T(e);
782
782
  return !!t && !t.baseUrl;
783
783
  }
784
- function Or(e, t) {
784
+ function Gr(e, t) {
785
785
  return t === "text" ? !0 : T(e)?.attachmentKinds?.includes(t) === !0;
786
786
  }
787
- function Nr(e, t) {
787
+ function Br(e, t) {
788
788
  if (!e.enabled) return "ok";
789
789
  const n = H(e.hardLimitNanos), r = H(e.softLimitNanos);
790
790
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -792,18 +792,18 @@ function Nr(e, t) {
792
792
  function H(e) {
793
793
  return typeof e == "number" ? e : void 0;
794
794
  }
795
- function We(e, t = "month") {
795
+ function Ve(e, t = "month") {
796
796
  const n = new Date(e);
797
797
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
798
798
  }
799
- function vr(e, t = "month") {
800
- const n = new Date(We(e, t));
799
+ function Hr(e, t = "month") {
800
+ const n = new Date(Ve(e, t));
801
801
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
802
802
  }
803
- function Rr(e) {
803
+ function Fr(e) {
804
804
  return e?.listeningEnabled !== !1;
805
805
  }
806
- const $r = [
806
+ const Wr = [
807
807
  { id: "agent", label: "Agent", labelSource: "user" },
808
808
  { id: "team", label: "Team", labelSource: "team" },
809
809
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -825,7 +825,7 @@ function Xe(e, t) {
825
825
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
826
826
  }
827
827
  const Ye = 36e5, qe = 864e5;
828
- function xr(e, t, n) {
828
+ function Vr(e, t, n) {
829
829
  const r = n === "hour" ? Ye : qe, i = [];
830
830
  for (let o = Xe(e, n); o <= t; o += r)
831
831
  i.push(ze(o, n));
@@ -838,7 +838,7 @@ const Je = [
838
838
  function Qe(e, t) {
839
839
  return `${e}.usage.${t}`;
840
840
  }
841
- function Dr(e, t) {
841
+ function zr(e, t) {
842
842
  return t.map((n) => ({
843
843
  id: Qe(e, n.unit),
844
844
  label: n.label,
@@ -853,7 +853,7 @@ function Dr(e, t) {
853
853
  ]
854
854
  }));
855
855
  }
856
- const me = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), F = 200, V = 100, W = 200, z = 12, X = 4, ge = 4e3, C = 500, Lr = 256 * 1024, et = /* @__PURE__ */ new Set([
856
+ const me = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), F = 200, W = 100, V = 200, z = 12, X = 4, ge = 4e3, C = 500, Xr = 256 * 1024, et = /* @__PURE__ */ new Set([
857
857
  "heading",
858
858
  "paragraph",
859
859
  "list",
@@ -913,7 +913,7 @@ function ot(e) {
913
913
  (t, n, r) => he(r) ? t : ""
914
914
  );
915
915
  }
916
- function u(e, t = ge) {
916
+ function d(e, t = ge) {
917
917
  return typeof e == "string" ? ot(e).slice(0, t) : "";
918
918
  }
919
919
  function at(e, t = ge) {
@@ -922,7 +922,7 @@ function at(e, t = ge) {
922
922
  function st(e, t = "info") {
923
923
  return typeof e == "string" && me.has(e) ? e : t;
924
924
  }
925
- function Pr(e, t = () => {
925
+ function Yr(e, t = () => {
926
926
  }) {
927
927
  if (!Array.isArray(e)) return [];
928
928
  const n = [];
@@ -940,7 +940,7 @@ function Pr(e, t = () => {
940
940
  const o = typeof i.block_id == "string" ? { block_id: i.block_id } : {};
941
941
  switch (i.type) {
942
942
  case "heading": {
943
- const a = u(i.text);
943
+ const a = d(i.text);
944
944
  if (!a) {
945
945
  t("a heading without text");
946
946
  continue;
@@ -950,7 +950,7 @@ function Pr(e, t = () => {
950
950
  break;
951
951
  }
952
952
  case "paragraph": {
953
- const a = u(i.text);
953
+ const a = d(i.text);
954
954
  if (!a) {
955
955
  t("a paragraph without text");
956
956
  continue;
@@ -959,7 +959,7 @@ function Pr(e, t = () => {
959
959
  break;
960
960
  }
961
961
  case "quote": {
962
- const a = u(i.text);
962
+ const a = d(i.text);
963
963
  if (!a) {
964
964
  t("a quote without text");
965
965
  continue;
@@ -982,15 +982,15 @@ function Pr(e, t = () => {
982
982
  break;
983
983
  case "list": {
984
984
  const a = Array.isArray(i.items) ? i.items : [], s = [];
985
- for (const p of a) {
986
- if (s.length >= V) {
987
- t(`more than ${V} list items`);
985
+ for (const l of a) {
986
+ if (s.length >= W) {
987
+ t(`more than ${W} list items`);
988
988
  break;
989
989
  }
990
- const f = u(p?.text);
990
+ const f = d(l?.text);
991
991
  if (!f) continue;
992
- const l = u(p?.lead, 200);
993
- s.push(l ? { lead: l, text: f } : { text: f });
992
+ const u = d(l?.lead, 200);
993
+ s.push(u ? { lead: u, text: f } : { text: f });
994
994
  }
995
995
  if (s.length === 0) {
996
996
  t("a list without usable items");
@@ -1002,33 +1002,33 @@ function Pr(e, t = () => {
1002
1002
  }
1003
1003
  case "table": {
1004
1004
  const a = Array.isArray(i.columns) ? i.columns : [], s = [];
1005
- for (const l of a) {
1005
+ for (const u of a) {
1006
1006
  if (s.length >= z) {
1007
1007
  t(`more than ${z} table columns`);
1008
1008
  break;
1009
1009
  }
1010
- const A = u(l?.label, C), I = l?.align === "right" ? "right" : void 0;
1010
+ const A = d(u?.label, C), I = u?.align === "right" ? "right" : void 0;
1011
1011
  s.push(I ? { label: A, align: I } : { label: A });
1012
1012
  }
1013
1013
  if (s.length === 0) {
1014
1014
  t("a table without columns");
1015
1015
  continue;
1016
1016
  }
1017
- const c = Array.isArray(i.rows) ? i.rows : [], p = [];
1018
- for (const l of c) {
1019
- if (p.length >= W) {
1020
- t(`more than ${W} table rows`);
1017
+ const c = Array.isArray(i.rows) ? i.rows : [], l = [];
1018
+ for (const u of c) {
1019
+ if (l.length >= V) {
1020
+ t(`more than ${V} table rows`);
1021
1021
  break;
1022
1022
  }
1023
- const A = Array.isArray(l) ? l : [];
1024
- p.push(s.map((I, $e) => u(A[$e], C)));
1023
+ const A = Array.isArray(u) ? u : [];
1024
+ l.push(s.map((I, $e) => d(A[$e], C)));
1025
1025
  }
1026
- const f = u(i.caption, C);
1026
+ const f = d(i.caption, C);
1027
1027
  n.push({
1028
1028
  ...o,
1029
1029
  type: "table",
1030
1030
  columns: s,
1031
- rows: p,
1031
+ rows: l,
1032
1032
  ...f ? { caption: f } : {}
1033
1033
  });
1034
1034
  break;
@@ -1040,11 +1040,11 @@ function Pr(e, t = () => {
1040
1040
  t(`more than ${X} kpi items`);
1041
1041
  break;
1042
1042
  }
1043
- const p = u(c?.value, 40), f = u(c?.label, 80);
1044
- if (!p || !f) continue;
1045
- const l = c?.tone;
1043
+ const l = d(c?.value, 40), f = d(c?.label, 80);
1044
+ if (!l || !f) continue;
1045
+ const u = c?.tone;
1046
1046
  s.push(
1047
- typeof l == "string" && me.has(l) ? { value: p, label: f, tone: l } : { value: p, label: f }
1047
+ typeof u == "string" && me.has(u) ? { value: l, label: f, tone: u } : { value: l, label: f }
1048
1048
  );
1049
1049
  }
1050
1050
  if (s.length === 0) {
@@ -1055,12 +1055,12 @@ function Pr(e, t = () => {
1055
1055
  break;
1056
1056
  }
1057
1057
  case "callout": {
1058
- const a = u(i.text);
1058
+ const a = d(i.text);
1059
1059
  if (!a) {
1060
1060
  t("a callout without text");
1061
1061
  continue;
1062
1062
  }
1063
- const s = u(i.title, 200);
1063
+ const s = d(i.title, 200);
1064
1064
  n.push({
1065
1065
  ...o,
1066
1066
  type: "callout",
@@ -1074,10 +1074,10 @@ function Pr(e, t = () => {
1074
1074
  }
1075
1075
  return n;
1076
1076
  }
1077
- function Ur(e) {
1077
+ function qr(e) {
1078
1078
  return JSON.stringify(e).length;
1079
1079
  }
1080
- function Kr(e) {
1080
+ function Jr(e) {
1081
1081
  return {
1082
1082
  blocks: e.length,
1083
1083
  types: e.map((t) => t.type),
@@ -1129,7 +1129,7 @@ function ct(e) {
1129
1129
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1130
1130
  }
1131
1131
  }
1132
- function Gr(e, t) {
1132
+ function Zr(e, t) {
1133
1133
  const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
1134
1134
  t && !r && n.push(`# ${t}`);
1135
1135
  for (const i of e) {
@@ -1143,40 +1143,40 @@ function Gr(e, t) {
1143
1143
  `;
1144
1144
  }
1145
1145
  const ye = (e) => `user:${e}`, Ae = (e) => `team:${e}`;
1146
- function jr(e) {
1146
+ function Qr(e) {
1147
1147
  const t = /* @__PURE__ */ new Set();
1148
1148
  for (const n of e ?? [])
1149
1149
  n?.id && (n.kind === "user" && t.add(ye(n.id)), n.kind === "team" && t.add(Ae(n.id)));
1150
1150
  return [...t].sort();
1151
1151
  }
1152
- function Br(e, t) {
1152
+ function ei(e, t) {
1153
1153
  return [ye(e), ...t.map(Ae)];
1154
1154
  }
1155
- function Hr(e) {
1155
+ function ti(e) {
1156
1156
  const t = /* @__PURE__ */ new Set();
1157
1157
  for (const n of e ?? [])
1158
1158
  n?.kind && t.add(n.kind);
1159
1159
  return [...t];
1160
1160
  }
1161
1161
  const lt = ["done", "escalated"];
1162
- function Fr(e) {
1162
+ function ni(e) {
1163
1163
  return lt.includes(e);
1164
1164
  }
1165
1165
  const ut = "assignment";
1166
- function Vr(e) {
1166
+ function ri(e) {
1167
1167
  return `${ut}:${e}`;
1168
1168
  }
1169
- function Wr(e, t, n) {
1169
+ function ii(e, t, n) {
1170
1170
  if (e.direction === "inbound") return !0;
1171
1171
  if (e.author?.type === "user" && e.author.id === t) return !1;
1172
1172
  const r = e.payload?.mentions;
1173
1173
  return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1174
1174
  }
1175
- function zr(e) {
1175
+ function oi(e) {
1176
1176
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1177
1177
  }
1178
1178
  const dt = 12;
1179
- function Xr(e, t, n = dt) {
1179
+ function ai(e, t, n = dt) {
1180
1180
  const r = t + 1;
1181
1181
  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 ? {
1182
1182
  status: "escalated",
@@ -1190,28 +1190,28 @@ function Xr(e, t, n = dt) {
1190
1190
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1191
1191
  };
1192
1192
  }
1193
- const Yr = /* @__PURE__ */ new Set(["mail", "message"]);
1193
+ const si = /* @__PURE__ */ new Set(["mail", "message"]);
1194
1194
  function pt(e, t) {
1195
1195
  const n = e.settings?.signatures?.[t];
1196
1196
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1197
1197
  }
1198
- function qr(e, t, n, r = "html") {
1198
+ function ci(e, t, n, r = "html") {
1199
1199
  if (!e) return n;
1200
1200
  const i = pt(e, t);
1201
1201
  return i ? `${n}${r === "text" ? `
1202
1202
 
1203
1203
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1204
1204
  }
1205
- function Jr(e) {
1205
+ function li(e) {
1206
1206
  return e.endpoints ?? [];
1207
1207
  }
1208
- const ft = 36e5, mt = 864e5, g = -1 / 0, Zr = (e) => e.score > g, _ = {
1208
+ const ft = 36e5, mt = 864e5, g = -1 / 0, ui = (e) => e.score > g, _ = {
1209
1209
  urgent: 40,
1210
1210
  high: 25,
1211
1211
  normal: 10,
1212
1212
  low: 0
1213
1213
  };
1214
- function Qr(e) {
1214
+ function di(e) {
1215
1215
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1216
1216
  }
1217
1217
  const gt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ht = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
@@ -1219,7 +1219,7 @@ function yt(e, t) {
1219
1219
  return !!(e && gt.test(e) || t && ht.test(t));
1220
1220
  }
1221
1221
  const At = 3, bt = 600;
1222
- function ei(e, t) {
1222
+ function pi(e, t) {
1223
1223
  return e >= At || t >= bt;
1224
1224
  }
1225
1225
  function Et(e, t) {
@@ -1232,7 +1232,7 @@ const St = ["open"], _t = 1e3, Tt = {
1232
1232
  low: 24
1233
1233
  }, It = 72;
1234
1234
  function wt(e) {
1235
- return e.lastActivityAt ?? (e.createdAt ? new Date(Ve(e)).getTime() : 0);
1235
+ return e.lastActivityAt ?? (e.createdAt ? new Date(We(e)).getTime() : 0);
1236
1236
  }
1237
1237
  function Mt(e, t) {
1238
1238
  return kt(t.remindersById?.[e.id], e, t.now);
@@ -1248,20 +1248,20 @@ function Ct(e, t) {
1248
1248
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1249
1249
  return typeof n == "number" && n > 0 ? n : Tt[e.priority ?? "normal"];
1250
1250
  }
1251
- function ti(e) {
1251
+ function fi(e) {
1252
1252
  const t = {};
1253
1253
  for (const n of e)
1254
1254
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1255
1255
  return t;
1256
1256
  }
1257
- function ni(e, t, n) {
1257
+ function mi(e, t, n) {
1258
1258
  return !Ee(e.status) || e.firstResponseAt ? !1 : x(e, t) > Ct(e, n);
1259
1259
  }
1260
1260
  function Ot(e, t) {
1261
1261
  const n = e.lastActivityPreview;
1262
1262
  return n?.direction !== "outbound" || !be(n.type) ? !1 : x(e, t) < It;
1263
1263
  }
1264
- function ri(e, t) {
1264
+ function gi(e, t) {
1265
1265
  if (!Ee(e.status)) return { score: g, reasons: [] };
1266
1266
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: g, reasons: [] };
1267
1267
  if (Ot(e, t.now)) return { score: g, reasons: [] };
@@ -1277,17 +1277,17 @@ function ri(e, t) {
1277
1277
  const a = e.lastActivityPreview;
1278
1278
  return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && be(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), yt(e.remoteParty?.resource, e.lastActivityPreview?.snippet) && (n -= _t, r.push("bulk")), { score: n, reasons: r };
1279
1279
  }
1280
- const ii = (e) => !!e.assignedUserId || !!e.assignedInboxId, oi = (e) => e.status === "closed", ai = (e) => ({
1280
+ const hi = (e) => !!e.assignedUserId || !!e.assignedInboxId, yi = (e) => e.status === "closed", Ai = (e) => ({
1281
1281
  urgent: 10,
1282
1282
  high: 5,
1283
1283
  normal: 2,
1284
1284
  low: 1
1285
- })[e.priority] || 0, si = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1286
- function ci(e, t) {
1285
+ })[e.priority] || 0, bi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1286
+ function Ei(e, t) {
1287
1287
  const n = e.labels ?? [];
1288
1288
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1289
1289
  }
1290
- function li(e, t, n) {
1290
+ function Si(e, t, n) {
1291
1291
  const r = e.translations ?? [];
1292
1292
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1293
1293
  }
@@ -1310,10 +1310,10 @@ function Se(e) {
1310
1310
  const t = (e ?? "").toLowerCase();
1311
1311
  return Z.find((n) => n.code === t) ?? Z.find((n) => n.code === t.split("-")[0]);
1312
1312
  }
1313
- function ui(e) {
1313
+ function _i(e) {
1314
1314
  return Se(e)?.label ?? e;
1315
1315
  }
1316
- function di(e) {
1316
+ function Ti(e) {
1317
1317
  const t = Se(e);
1318
1318
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1319
1319
  }
@@ -1327,7 +1327,7 @@ function Nt(e, t) {
1327
1327
  }
1328
1328
  return r;
1329
1329
  }
1330
- function pi(e, t, n) {
1330
+ function Ii(e, t, n) {
1331
1331
  if (!e) return !0;
1332
1332
  if (e === t) return !1;
1333
1333
  const r = new Map(n.map((a) => [a.id, a]));
@@ -1355,13 +1355,13 @@ const Rt = "en";
1355
1355
  function $t(e) {
1356
1356
  return e.defaultLocale || e.locale || Rt;
1357
1357
  }
1358
- function fi(e) {
1358
+ function wi(e) {
1359
1359
  const t = /* @__PURE__ */ new Set(), n = [];
1360
1360
  for (const r of [$t(e), ...e.locales ?? []])
1361
1361
  !r || t.has(r) || (t.add(r), n.push(r));
1362
1362
  return n;
1363
1363
  }
1364
- function mi(e, t, n) {
1364
+ function Mi(e, t, n) {
1365
1365
  const r = e.translations ?? [];
1366
1366
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1367
1367
  }
@@ -1392,23 +1392,23 @@ function xt(e, t) {
1392
1392
  return e.userId === t.userId;
1393
1393
  }
1394
1394
  }
1395
- function gi(e, t) {
1395
+ function ki(e, t) {
1396
1396
  return e.filter((n) => n.enabled && xt(n.ownerScope, t));
1397
1397
  }
1398
- function hi(e) {
1398
+ function Ci(e) {
1399
1399
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1400
1400
  }
1401
- function yi(e) {
1401
+ function Oi(e) {
1402
1402
  return `mcp__${e}__`;
1403
1403
  }
1404
- const Ai = 1e3, bi = 2e3, Ei = 500, Si = 12e3, _i = 4e3, Dt = ["contact", "company", "work_item"];
1405
- function Ti(e) {
1404
+ const Ni = 1e3, vi = 2e3, Ri = 500, $i = 12e3, xi = 4e3, Lt = ["contact", "company", "work_item"];
1405
+ function Li(e) {
1406
1406
  if (!e) return !1;
1407
1407
  const t = e.slice(0, e.indexOf(":"));
1408
- return Dt.includes(t);
1408
+ return Lt.includes(t);
1409
1409
  }
1410
- const Ii = "onboarding-source", wi = ["support", "billing", "availability", "sales", "onboarding"], Mi = ["keep", "replace"];
1411
- function Lt(e) {
1410
+ const Di = "onboarding-source", Pi = ["support", "billing", "availability", "sales", "onboarding"], Ui = ["keep", "replace"];
1411
+ function Dt(e) {
1412
1412
  switch (e.kind) {
1413
1413
  case "user":
1414
1414
  return `user:${e.userId}`;
@@ -1418,7 +1418,7 @@ function Lt(e) {
1418
1418
  return "org";
1419
1419
  }
1420
1420
  }
1421
- function ki(e) {
1421
+ function Ki(e) {
1422
1422
  if (typeof e != "string") return;
1423
1423
  const t = e.trim();
1424
1424
  if (t === "org") return { kind: "org" };
@@ -1431,7 +1431,7 @@ function ki(e) {
1431
1431
  }
1432
1432
  }
1433
1433
  function Pt(e) {
1434
- return Lt(e);
1434
+ return Dt(e);
1435
1435
  }
1436
1436
  function Ut(e) {
1437
1437
  switch (e.kind) {
@@ -1444,13 +1444,13 @@ function Ut(e) {
1444
1444
  }
1445
1445
  }
1446
1446
  const Kt = Ut;
1447
- function Ci(e) {
1447
+ function ji(e) {
1448
1448
  return e.agentId ? { kind: "user", userId: e.agentId } : Kt(e.ownerScope);
1449
1449
  }
1450
- function Oi(e) {
1450
+ function Gi(e) {
1451
1451
  return Pt(e);
1452
1452
  }
1453
- function Ni(e, t) {
1453
+ function Bi(e, t) {
1454
1454
  if (!t) return;
1455
1455
  let n = e;
1456
1456
  for (const r of t.split(".")) {
@@ -1459,24 +1459,24 @@ function Ni(e, t) {
1459
1459
  }
1460
1460
  return n;
1461
1461
  }
1462
- function vi(e, t) {
1462
+ function Hi(e, t) {
1463
1463
  return e.targets.find((n) => n.activityTypes.includes(t));
1464
1464
  }
1465
- function Ri(e, t) {
1465
+ function Fi(e, t) {
1466
1466
  if (t)
1467
1467
  return e.targets.find((n) => n.id === t);
1468
1468
  }
1469
- function Gt(e) {
1469
+ function jt(e) {
1470
1470
  return e?.kind === "assignment";
1471
1471
  }
1472
- function $i(e) {
1472
+ function Wi(e) {
1473
1473
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1474
- return Gt(t) ? n ? r ? r.activityTypes.includes(i) ? o ? o !== n ? "assigned to someone else" : a && a === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1474
+ return jt(t) ? n ? r ? r.activityTypes.includes(i) ? o ? o !== n ? "assigned to someone else" : a && a === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1475
1475
  }
1476
- function xi(e) {
1476
+ function Vi(e) {
1477
1477
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1478
1478
  }
1479
- const Di = [
1479
+ const zi = [
1480
1480
  { name: "text", type: "string" },
1481
1481
  { name: "subject", type: "string" },
1482
1482
  { name: "from", type: "string" },
@@ -1510,7 +1510,7 @@ const Di = [
1510
1510
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1511
1511
  // the trigger filter runs — like contactId/companyId above.
1512
1512
  { name: "assigneeUserId", type: "string" }
1513
- ], Li = {
1513
+ ], Xi = {
1514
1514
  topics: [
1515
1515
  { name: "topicId", type: "string" },
1516
1516
  { name: "topic", type: "string" },
@@ -1524,77 +1524,77 @@ const Di = [
1524
1524
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1525
1525
  extract: []
1526
1526
  };
1527
- function jt(e) {
1527
+ function Gt(e) {
1528
1528
  return `${e.type}:${e.id}`;
1529
1529
  }
1530
1530
  const Bt = "interaction";
1531
1531
  function Ht(e) {
1532
1532
  return e?.type === Bt ? e.id : void 0;
1533
1533
  }
1534
- const Ft = 64, Vt = 8e3;
1535
- function Pi(e) {
1534
+ const Ft = 64, Wt = 8e3;
1535
+ function Yi(e) {
1536
1536
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1537
1537
  if (!(!Number.isFinite(t) || t <= 0))
1538
- return Math.min(Math.max(Math.round(t), Ft), Vt);
1538
+ return Math.min(Math.max(Math.round(t), Ft), Wt);
1539
1539
  }
1540
- const Ui = { kind: "workflow", steps: [] };
1541
- function Ki(e) {
1540
+ const qi = { kind: "workflow", steps: [] };
1541
+ function Ji(e) {
1542
1542
  return e?.kind === "workflow" ? e.steps : [];
1543
1543
  }
1544
- function Gi(e) {
1544
+ function Zi(e) {
1545
1545
  return e?.kind === "procedure" ? e.procedure : void 0;
1546
1546
  }
1547
- function Wt(e) {
1547
+ function Vt(e) {
1548
1548
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
1549
1549
  return { total: n, rate: n ? t / n : 0 };
1550
1550
  }
1551
1551
  const zt = 10, Xt = 0.9;
1552
- function ji(e) {
1553
- const { total: t, rate: n } = Wt(e);
1552
+ function Qi(e) {
1553
+ const { total: t, rate: n } = Vt(e);
1554
1554
  return t >= zt && n >= Xt;
1555
1555
  }
1556
1556
  const Yt = ["done", "escalated", "failed", "stopped"];
1557
- function Bi(e) {
1557
+ function eo(e) {
1558
1558
  return Yt.includes(e);
1559
1559
  }
1560
1560
  function qt(e) {
1561
1561
  return e === "waiting";
1562
1562
  }
1563
- function Hi(e) {
1563
+ function to(e) {
1564
1564
  return e === "running" || qt(e);
1565
1565
  }
1566
1566
  function Ie(e) {
1567
1567
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1568
1568
  }
1569
- function Fi(e) {
1569
+ function no(e) {
1570
1570
  const t = Ie(e);
1571
- return t ? jt(t) : void 0;
1571
+ return t ? Gt(t) : void 0;
1572
1572
  }
1573
- function Vi(e) {
1573
+ function ro(e) {
1574
1574
  return Ht(Ie(e));
1575
1575
  }
1576
- function Wi(e, t) {
1576
+ function io(e, t) {
1577
1577
  const n = e.accumulatedSeconds || 0;
1578
1578
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1579
1579
  }
1580
- function zi(e, t) {
1580
+ function oo(e, t) {
1581
1581
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1582
1582
  if (!t || t === "exact") return n * 60;
1583
1583
  const r = Number(t);
1584
1584
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1585
1585
  }
1586
- function Xi(e) {
1586
+ function ao(e) {
1587
1587
  const t = Math.max(0, Math.round(e / 60));
1588
1588
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1589
1589
  }
1590
- function Yi(e) {
1590
+ function so(e) {
1591
1591
  const t = Math.max(0, Math.floor(e)), n = (o) => String(o).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
1592
1592
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1593
1593
  }
1594
1594
  function Jt(e) {
1595
1595
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1596
1596
  }
1597
- function qi(e, t) {
1597
+ function co(e, t) {
1598
1598
  const n = Jt(e) || "werksoort", r = new Set(t);
1599
1599
  if (!r.has(n)) return n;
1600
1600
  for (let i = 2; i < 500; i++) {
@@ -1603,11 +1603,11 @@ function qi(e, t) {
1603
1603
  }
1604
1604
  return `${n}-${r.size + 1}`;
1605
1605
  }
1606
- function Ji(e, t) {
1606
+ function lo(e, t) {
1607
1607
  const n = e.ownerScope;
1608
1608
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1609
1609
  }
1610
- function Zi(e) {
1610
+ function uo(e) {
1611
1611
  return e.filter((t) => !t.archived).sort(Zt);
1612
1612
  }
1613
1613
  function Zt(e, t) {
@@ -1624,7 +1624,7 @@ function tn(e) {
1624
1624
  const n = t.slice(0, O), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1625
1625
  return r > O * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1626
1626
  }
1627
- function Qi(e, t) {
1627
+ function po(e, t) {
1628
1628
  const n = tn(t.text), r = h(n);
1629
1629
  if (!r || (e.examples ?? []).some((a) => h(a) === r)) return null;
1630
1630
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => h(a.text) === r);
@@ -1640,7 +1640,7 @@ function te(e) {
1640
1640
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1641
1641
  );
1642
1642
  }
1643
- function eo(e, t) {
1643
+ function fo(e, t) {
1644
1644
  const n = h(t), r = (e.examples ?? []).filter((o) => o.trim());
1645
1645
  return { examples: r.some((o) => h(o) === n) ? r : [...r, t].slice(-Qt), exampleCandidates: nn(e, t) };
1646
1646
  }
@@ -1652,13 +1652,13 @@ function rn(e, t) {
1652
1652
  const n = e.ownerScope;
1653
1653
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1654
1654
  }
1655
- function to(e, t) {
1655
+ function mo(e, t) {
1656
1656
  return e.filter((n) => rn(n, t));
1657
1657
  }
1658
- function no(e) {
1658
+ function go(e) {
1659
1659
  return e.type === "agent";
1660
1660
  }
1661
- const ro = "WORK_COMMENT_ADDED", io = "WORK_ITEM_ASSIGNED", oo = "WORK_ITEM_STATUS_CHANGED";
1661
+ const ho = "WORK_COMMENT_ADDED", yo = "WORK_ITEM_ASSIGNED", Ao = "WORK_ITEM_STATUS_CHANGED";
1662
1662
  function on(e, t) {
1663
1663
  const n = (r) => {
1664
1664
  const i = new Date(r);
@@ -1666,7 +1666,7 @@ function on(e, t) {
1666
1666
  };
1667
1667
  return Math.round((n(e) - n(t)) / mt);
1668
1668
  }
1669
- function ao(e, t) {
1669
+ function bo(e, t) {
1670
1670
  if (e.closedAt != null) return { score: g, reasons: [] };
1671
1671
  const n = t.remindersById?.[e.id];
1672
1672
  if (n && n.remindAt > t.now) return { score: g, reasons: [] };
@@ -1685,11 +1685,11 @@ function cn(e) {
1685
1685
  function we(e) {
1686
1686
  return `${sn}:${e}`;
1687
1687
  }
1688
- function so(e, t, n) {
1688
+ function Eo(e, t, n) {
1689
1689
  const r = `${e}-${t}`;
1690
1690
  return n ? `${r}-${n}` : r;
1691
1691
  }
1692
- function co(e) {
1692
+ function So(e) {
1693
1693
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1694
1694
  return t ? {
1695
1695
  projectKey: t[1].toUpperCase(),
@@ -1697,37 +1697,37 @@ function co(e) {
1697
1697
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1698
1698
  } : null;
1699
1699
  }
1700
- function lo(e) {
1700
+ function _o(e) {
1701
1701
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1702
1702
  }
1703
- function uo(e, t = 25) {
1703
+ function To(e, t = 25) {
1704
1704
  const n = /* @__PURE__ */ new Set([cn(e.id)]);
1705
1705
  e.projectId && n.add(we(e.projectId));
1706
1706
  for (const r of e.ancestorKeys ?? []) n.add(r);
1707
1707
  for (const r of e.partyKeys ?? []) n.add(r);
1708
1708
  return Array.from(n).slice(0, t);
1709
1709
  }
1710
- function po(e) {
1710
+ function Io(e) {
1711
1711
  return [we(e.id)];
1712
1712
  }
1713
- const D = [
1713
+ const L = [
1714
1714
  { key: "open", label: "status_open", category: "todo", order: 0 },
1715
1715
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1716
1716
  { key: "done", label: "status_done", category: "done", order: 2 },
1717
1717
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1718
- ], Me = D.map((e) => e.key);
1718
+ ], Me = L.map((e) => e.key);
1719
1719
  function ln(e) {
1720
- return e?.statuses?.length ? e.statuses : D;
1720
+ return e?.statuses?.length ? e.statuses : L;
1721
1721
  }
1722
1722
  function un(e, t) {
1723
1723
  return t.find((n) => n.key === e)?.category ?? "todo";
1724
1724
  }
1725
- function fo(e, t) {
1725
+ function wo(e, t) {
1726
1726
  return t.find((n) => n.key === e);
1727
1727
  }
1728
- function mo(e) {
1728
+ function Mo(e) {
1729
1729
  const t = ln(e), n = e?.defaultStatusKey;
1730
- return n && t.some((r) => r.key === n) ? n : dn(t)[0]?.key ?? D[0].key;
1730
+ return n && t.some((r) => r.key === n) ? n : dn(t)[0]?.key ?? L[0].key;
1731
1731
  }
1732
1732
  function dn(e) {
1733
1733
  return [...e].sort((t, n) => {
@@ -1735,13 +1735,13 @@ function dn(e) {
1735
1735
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1736
1736
  });
1737
1737
  }
1738
- function go(e, t) {
1738
+ function ko(e, t) {
1739
1739
  return un(e, t) === "done";
1740
1740
  }
1741
1741
  function pn(e) {
1742
1742
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1743
1743
  }
1744
- function ho(e, t) {
1744
+ function Co(e, t) {
1745
1745
  const n = pn(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Me]);
1746
1746
  if (!r.has(n)) return n;
1747
1747
  for (let i = 2; i < 500; i++) {
@@ -1750,7 +1750,7 @@ function ho(e, t) {
1750
1750
  }
1751
1751
  return `${n}-${r.size + 1}`;
1752
1752
  }
1753
- function yo(e) {
1753
+ function Oo(e) {
1754
1754
  const t = [];
1755
1755
  if (!e.length) return [{ index: -1, reason: "empty" }];
1756
1756
  const n = /* @__PURE__ */ new Set();
@@ -1780,18 +1780,18 @@ const y = 1024 * 1024, hn = {
1780
1780
  pdf: 20 * y,
1781
1781
  text: 1 * y,
1782
1782
  audio: 20 * y
1783
- }, Ao = 25 * y, bo = 5;
1784
- function Eo(e, t) {
1783
+ }, No = 25 * y, vo = 5;
1784
+ function Ro(e, t) {
1785
1785
  const n = gn(e);
1786
1786
  return n === "unsupported" ? "unsupported" : t > hn[n] ? "too-large" : null;
1787
1787
  }
1788
- function So(e) {
1788
+ function $o(e) {
1789
1789
  return e.access !== "read" && e.effect !== "internal";
1790
1790
  }
1791
1791
  function yn(e) {
1792
1792
  return `${e.kind}:${e.id || e.url || e.title}`;
1793
1793
  }
1794
- function _o(e, t = []) {
1794
+ function xo(e, t = []) {
1795
1795
  const n = new Set(t), r = [], i = [];
1796
1796
  for (const o of e) {
1797
1797
  const a = yn(o);
@@ -1799,26 +1799,26 @@ function _o(e, t = []) {
1799
1799
  }
1800
1800
  return { sources: r, keys: i };
1801
1801
  }
1802
- const To = "assist-source", Io = ["blocking", "due", "open"];
1803
- function wo(e, t) {
1802
+ const Lo = "assist-source", Do = ["blocking", "due", "open"];
1803
+ function Po(e, t) {
1804
1804
  const [n, r] = (e.subjectKey ?? "").split(":");
1805
1805
  return n === t && r ? r : void 0;
1806
1806
  }
1807
1807
  const ne = { blocking: 0, due: 1, open: 2 };
1808
- function Mo(e, t) {
1808
+ function Uo(e, t) {
1809
1809
  return ne[e.band ?? "open"] - ne[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1810
1810
  }
1811
- function ko(e) {
1811
+ function Ko(e) {
1812
1812
  return e.sessions.filter(
1813
1813
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1814
1814
  );
1815
1815
  }
1816
- function Co(e) {
1816
+ function jo(e) {
1817
1817
  return e.sessions.filter(
1818
1818
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1819
1819
  );
1820
1820
  }
1821
- function Oo(e) {
1821
+ function Go(e) {
1822
1822
  return e.sessions.some(
1823
1823
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1824
1824
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
@@ -1840,7 +1840,7 @@ function bn(e, t) {
1840
1840
  }
1841
1841
  return n;
1842
1842
  }
1843
- function No(e, t) {
1843
+ function Bo(e, t) {
1844
1844
  const n = bn(e, t);
1845
1845
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1846
1846
  }
@@ -1851,7 +1851,7 @@ function En(e, t) {
1851
1851
  transport: t.transport ?? e.transport
1852
1852
  } : e;
1853
1853
  }
1854
- function vo(e, t) {
1854
+ function Ho(e, t) {
1855
1855
  const n = [];
1856
1856
  for (const r of e) {
1857
1857
  if (!r.enabled) continue;
@@ -1862,16 +1862,16 @@ function vo(e, t) {
1862
1862
  }
1863
1863
  return n;
1864
1864
  }
1865
- function Ro(e, t) {
1865
+ function Fo(e, t) {
1866
1866
  return t.filter((n) => n.capability.intent === e);
1867
1867
  }
1868
1868
  function Sn(e, t) {
1869
1869
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1870
1870
  }
1871
- function $o(e, t) {
1871
+ function Wo(e, t) {
1872
1872
  return Sn(e.scheme, t);
1873
1873
  }
1874
- function xo(e, t, n) {
1874
+ function Vo(e, t, n) {
1875
1875
  const r = [];
1876
1876
  for (const i of e)
1877
1877
  for (const o of n)
@@ -1900,10 +1900,10 @@ const Tn = {
1900
1900
  id: "note",
1901
1901
  custom: "note"
1902
1902
  };
1903
- function Do(e) {
1903
+ function zo(e) {
1904
1904
  return e ? Tn[e] ?? "note" : "note";
1905
1905
  }
1906
- const Lo = "message_window", Po = "message_templates", Uo = {
1906
+ const Xo = "message_window", Yo = "message_templates", qo = {
1907
1907
  // E-mail
1908
1908
  FROM: "from",
1909
1909
  TO: "to",
@@ -1920,19 +1920,19 @@ const Lo = "message_window", Po = "message_templates", Uo = {
1920
1920
  // Voice/conference
1921
1921
  HOST: "host",
1922
1922
  PARTICIPANT: "participant"
1923
- }, Ko = (e, t) => ({ intent: e, ...t }), Go = "folder_management", jo = "remote_search", Bo = {
1923
+ }, Jo = (e, t) => ({ intent: e, ...t }), Zo = "folder_management", Qo = "remote_search", ea = {
1924
1924
  ok: !1,
1925
1925
  code: "UNSUPPORTED",
1926
1926
  message: "Provider does not support this op"
1927
- }, Ho = "context.collect", Fo = "installation-id";
1928
- function Vo(e) {
1927
+ }, ta = "context.collect", na = "installation-id";
1928
+ function ra(e) {
1929
1929
  const t = [];
1930
1930
  for (const n of Object.keys(e))
1931
1931
  for (const r of Object.keys(e[n]))
1932
1932
  t.push({ lang: n, key: r, value: e[n][r] });
1933
1933
  return t;
1934
1934
  }
1935
- const Wo = "notification-source", zo = (e, t) => `${e}.pref.${t}`, Xo = {
1935
+ const ia = "notification-source", oa = (e, t) => `${e}.pref.${t}`, aa = {
1936
1936
  ai: [
1937
1937
  "account.read",
1938
1938
  "account.write",
@@ -2066,24 +2066,24 @@ const Wo = "notification-source", zo = (e, t) => `${e}.pref.${t}`, Xo = {
2066
2066
  user: ["user.read", "user.write"],
2067
2067
  work: ["item.read", "item.write", "project.read", "project.write"]
2068
2068
  }, ke = 9e4, In = ["out_of_office"], Ce = (e) => In.includes(e);
2069
- function Yo(e, t, n) {
2069
+ function sa(e, t, n) {
2070
2070
  const r = n - e < ke, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2071
2071
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2072
2072
  const o = i.status;
2073
2073
  return !r && !Ce(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2074
2074
  }
2075
- function qo(e, t) {
2075
+ function ca(e, t) {
2076
2076
  const n = t - e.lastSeenAt < ke, r = n || Ce(e.status) ? e.status : "offline";
2077
2077
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2078
2078
  }
2079
- function Jo(e, t) {
2079
+ function la(e, t) {
2080
2080
  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 };
2081
2081
  }
2082
- function Zo(e) {
2082
+ function ua(e) {
2083
2083
  return e.providerAvailable && e.allowed;
2084
2084
  }
2085
- const Qo = "resources.describe", ea = "resources.search", ta = "resources.resolve", na = "resources.attached";
2086
- function ra(e) {
2085
+ const da = "resources.describe", pa = "resources.search", fa = "resources.resolve", ma = "resources.attached";
2086
+ function ga(e) {
2087
2087
  const t = e.indexOf(":");
2088
2088
  return t === -1 ? e : e.slice(0, t);
2089
2089
  }
@@ -2092,11 +2092,11 @@ function Ne(e) {
2092
2092
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2093
2093
  return t ? t[1] : null;
2094
2094
  }
2095
- function ia(e) {
2095
+ function ha(e) {
2096
2096
  const t = Ne(e);
2097
2097
  return t ? t !== Oe : typeof e == "string" && e.startsWith("/wake");
2098
2098
  }
2099
- function oa(e) {
2099
+ function ya(e) {
2100
2100
  return typeof e != "string" || e === "" || e === "/" ? !0 : Ne(e) === Oe;
2101
2101
  }
2102
2102
  function wn(e) {
@@ -2118,7 +2118,7 @@ function kn(e, t) {
2118
2118
  function Cn(e) {
2119
2119
  return e.publicBasePath ?? `/apps/${e.name}`;
2120
2120
  }
2121
- function aa(e) {
2121
+ function Aa(e) {
2122
2122
  const t = [];
2123
2123
  for (const n of e) {
2124
2124
  if (!n?.name) continue;
@@ -2151,10 +2151,10 @@ function Nn(e, t) {
2151
2151
  Mn(r.pattern).test(e) && (!n || On(r.pattern, n.pattern)) && (n = r);
2152
2152
  return n ? { ...n, params: { ...n.props, ...kn(n.pattern, e) } } : null;
2153
2153
  }
2154
- function sa(e, t) {
2154
+ function ba(e, t) {
2155
2155
  return Nn(e, t) !== null;
2156
2156
  }
2157
- const ca = "sync-source", la = "sync-target", ua = 20, vn = {
2157
+ const Ea = "sync-source", Sa = "sync-target", _a = 20, vn = {
2158
2158
  afrikaans: [
2159
2159
  "[Muziek]",
2160
2160
  "(C) TV GELDERLAND 2021",
@@ -2311,7 +2311,7 @@ const ca = "sync-source", la = "sync-target", ua = 20, vn = {
2311
2311
  t = t.replaceAll(r, "");
2312
2312
  });
2313
2313
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2314
- }, $n = 6e4, xn = 8e3, Dn = 2, Ln = 0.4, Pn = 3, Un = /* @__PURE__ */ new Set([
2314
+ }, $n = 6e4, xn = 8e3, Ln = 2, Dn = 0.4, Pn = 3, Un = /* @__PURE__ */ new Set([
2315
2315
  "aan",
2316
2316
  "als",
2317
2317
  "ben",
@@ -2430,7 +2430,7 @@ function Kn(e) {
2430
2430
  n.length < Pn || Un.has(n) || t.add(n);
2431
2431
  return [...t];
2432
2432
  }
2433
- function Gn(e, t) {
2433
+ function jn(e, t) {
2434
2434
  if (!e.length) return 0;
2435
2435
  if (!t.length) return 1;
2436
2436
  const n = new Set(t), r = new Set(e);
@@ -2438,38 +2438,38 @@ function Gn(e, t) {
2438
2438
  for (const o of r) n.has(o) || (i += 1);
2439
2439
  return i / r.size;
2440
2440
  }
2441
- function jn(e, t = $n) {
2441
+ function Gn(e, t = $n) {
2442
2442
  const n = e.filter((a) => !a.partial && typeof a.text == "string");
2443
2443
  if (!n.length) return { text: "", segmentCount: 0 };
2444
2444
  const i = n.reduce((a, s) => Math.max(a, s.endedAt ?? 0), 0) - t;
2445
2445
  return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => Rn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2446
2446
  }
2447
2447
  const Bn = 60;
2448
- function da(e, t, n = Bn) {
2448
+ function Ta(e, t, n = Bn) {
2449
2449
  const r = new Set(e), i = [...e];
2450
2450
  for (const o of t)
2451
2451
  !o || r.has(o) || (r.add(o), i.push(o));
2452
2452
  return i.slice(-n);
2453
2453
  }
2454
- function pa(e) {
2454
+ function Ia(e) {
2455
2455
  const { segments: t, now: n, state: r } = e;
2456
2456
  if (r.lastTriggerAt && n - r.lastTriggerAt < xn)
2457
2457
  return { trigger: !1, reason: "too_soon" };
2458
- const i = jn(t, e.windowMs);
2458
+ const i = Gn(t, e.windowMs);
2459
2459
  if (!i.text) return { trigger: !1, reason: "no_speech" };
2460
2460
  const o = i.segmentCount - (r.lastSegmentCount ?? 0);
2461
- if (r.lastQueryTerms && o < Dn)
2461
+ if (r.lastQueryTerms && o < Ln)
2462
2462
  return { trigger: !1, reason: "too_few_new" };
2463
2463
  const a = Kn(i.text);
2464
- return a.length ? r.lastQueryTerms?.length && Gn(a, r.lastQueryTerms) < Ln ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2464
+ return a.length ? r.lastQueryTerms?.length && jn(a, r.lastQueryTerms) < Dn ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2465
2465
  }
2466
- const fa = [
2466
+ const wa = [
2467
2467
  "personal",
2468
2468
  "workspace",
2469
2469
  "connections",
2470
2470
  "work",
2471
2471
  "ai"
2472
- ], ma = "navNotice", L = {
2472
+ ], Ma = "navNotice", D = {
2473
2473
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2474
2474
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2475
2475
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2492,29 +2492,29 @@ const fa = [
2492
2492
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
2493
2493
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2494
2494
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2495
- }, Hn = "NL", Fn = 15, Vn = 8, Wn = Array.from(
2496
- new Set(Object.values(L).map((e) => e.callingCode))
2495
+ }, Hn = "NL", Fn = 15, Wn = 8, Vn = Array.from(
2496
+ new Set(Object.values(D).map((e) => e.callingCode))
2497
2497
  ).sort((e, t) => t.length - e.length);
2498
2498
  function re(e) {
2499
2499
  if (e)
2500
- return L[e.trim().toUpperCase()];
2500
+ return D[e.trim().toUpperCase()];
2501
2501
  }
2502
2502
  function S(e, t) {
2503
2503
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
2504
2504
  }
2505
2505
  function ie(e) {
2506
2506
  if (e.length > Fn) return null;
2507
- for (const t of Wn) {
2507
+ for (const t of Vn) {
2508
2508
  if (!e.startsWith(t)) continue;
2509
2509
  const n = e.slice(t.length);
2510
- for (const r of Object.values(L)) {
2510
+ for (const r of Object.values(D)) {
2511
2511
  if (r.callingCode !== t) continue;
2512
2512
  const i = r.trunkPrefix, o = i && n.startsWith(i) ? n.slice(i.length) : n;
2513
2513
  if (S(o, r)) return `+${t}${o}`;
2514
2514
  }
2515
2515
  return null;
2516
2516
  }
2517
- return e.length < Vn ? null : `+${e}`;
2517
+ return e.length < Wn ? null : `+${e}`;
2518
2518
  }
2519
2519
  function zn(e) {
2520
2520
  let t = e.trim();
@@ -2523,7 +2523,7 @@ function zn(e) {
2523
2523
  const r = t.indexOf("@");
2524
2524
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2525
2525
  }
2526
- function ga(e) {
2526
+ function ka(e) {
2527
2527
  if (!e) return !1;
2528
2528
  const t = e.indexOf("@");
2529
2529
  if (t <= 0) return !1;
@@ -2551,7 +2551,7 @@ function oe(e, t) {
2551
2551
  }
2552
2552
  return !a && S(i, o) ? `+${o.callingCode}${i}` : null;
2553
2553
  }
2554
- function ha(e, t = 9) {
2554
+ function Ca(e, t = 9) {
2555
2555
  const n = (e ?? "").replace(/\D/g, "");
2556
2556
  return n.length < t ? null : n.slice(-t);
2557
2557
  }
@@ -2562,7 +2562,7 @@ function ve(e) {
2562
2562
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2563
2563
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2564
2564
  }
2565
- function ya(e) {
2565
+ function Oa(e) {
2566
2566
  const t = ve(e);
2567
2567
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2568
2568
  }
@@ -2628,16 +2628,16 @@ const qn = /* @__PURE__ */ new Set([
2628
2628
  "proximus.be",
2629
2629
  "scarlet.be"
2630
2630
  ]);
2631
- function Aa(e) {
2631
+ function Na(e) {
2632
2632
  const t = Yn(e);
2633
2633
  return t ? qn.has(t) : !1;
2634
2634
  }
2635
- function ba(e) {
2635
+ function va(e) {
2636
2636
  if (!e) return !1;
2637
2637
  const t = e.trim().toLowerCase();
2638
2638
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
2639
2639
  }
2640
- function Ea(e, t, n) {
2640
+ function Ra(e, t, n) {
2641
2641
  if (!e || !t) return null;
2642
2642
  const r = e.trim().toLowerCase();
2643
2643
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -2705,10 +2705,66 @@ function rr(e) {
2705
2705
  }
2706
2706
  );
2707
2707
  }
2708
+ const ir = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, or = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, ar = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
2709
+ function sr(e, t) {
2710
+ return /<table\b/i.test(e) || e.includes(`
2711
+
2712
+ |`) || t.includes("![") || t.length > 200;
2713
+ }
2714
+ const cr = 40, lr = { left: "---", center: ":---:", right: "---:" };
2715
+ function ur(e) {
2716
+ const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
2717
+ return t ? t[1].toLowerCase() : "left";
2718
+ }
2719
+ function dr(e) {
2720
+ return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
2721
+ }
2722
+ function pr(e) {
2723
+ const t = [];
2724
+ for (const a of e.matchAll(or)) {
2725
+ const s = [];
2726
+ for (const c of a[1].matchAll(ar)) {
2727
+ const l = dr(c[3]);
2728
+ if (sr(c[3], l)) return null;
2729
+ s.push({ text: l, align: ur(c[2]) });
2730
+ }
2731
+ if (s.length === 0) return null;
2732
+ s.some((c) => c.text !== "") && t.push(s);
2733
+ }
2734
+ const n = t[0]?.length ?? 0;
2735
+ if (t.length < 2 || n < 2 || t.some((a) => a.length !== n)) return null;
2736
+ const r = (a) => `| ${a.map((s) => s.text).join(" | ")} |`, i = t[1].map((a) => lr[a.align]).join(" | "), o = t.slice(1).map(r).join(`
2737
+ `);
2738
+ return `
2739
+
2740
+ ${r(t[0])}
2741
+ | ${i} |
2742
+ ${o}
2743
+
2744
+ `;
2745
+ }
2746
+ function fr(e) {
2747
+ return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
2748
+ `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
2749
+ }
2750
+ function mr(e) {
2751
+ let t = e;
2752
+ for (let n = 0; n < cr; n++) {
2753
+ const r = ir.exec(t);
2754
+ if (!r || r.index === void 0) break;
2755
+ const o = pr(r[1]) ?? `
2756
+
2757
+ ${fr(r[1])}
2758
+
2759
+ `;
2760
+ t = t.slice(0, r.index) + o + t.slice(r.index + r[0].length);
2761
+ }
2762
+ return t;
2763
+ }
2708
2764
  function ce(e, t) {
2709
2765
  let n = e;
2710
- return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<br\s*\/?>/gi, `
2711
- `), t && (n = rr(n)), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
2766
+ return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
2767
+ `), t && (n = mr(rr(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
2712
2768
 
2713
2769
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
2714
2770
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -2716,8 +2772,30 @@ function ce(e, t) {
2716
2772
  function le(e) {
2717
2773
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
2718
2774
  }
2775
+ const gr = {
2776
+ euro: "€",
2777
+ pound: "£",
2778
+ yen: "¥",
2779
+ cent: "¢",
2780
+ copy: "©",
2781
+ reg: "®",
2782
+ trade: "™",
2783
+ deg: "°",
2784
+ plusmn: "±",
2785
+ times: "×",
2786
+ middot: "·",
2787
+ bull: "•",
2788
+ hellip: "…",
2789
+ mdash: "—",
2790
+ ndash: "–",
2791
+ lsquo: "‘",
2792
+ rsquo: "’",
2793
+ ldquo: "“",
2794
+ rdquo: "”",
2795
+ apos: "'"
2796
+ };
2719
2797
  function ue(e) {
2720
- return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => le(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => le(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
2798
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => gr[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => le(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => le(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
2721
2799
  }
2722
2800
  function de(e) {
2723
2801
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -2725,14 +2803,14 @@ function de(e) {
2725
2803
 
2726
2804
  `).trim();
2727
2805
  }
2728
- const ir = /<\s*(html|body|div|p|table|br|span)\b/i;
2729
- function Sa(e) {
2730
- return ir.test(e);
2806
+ const hr = /<\s*(html|body|div|p|table|br|span)\b/i;
2807
+ function $a(e) {
2808
+ return hr.test(e);
2731
2809
  }
2732
- function _a(e) {
2810
+ function xa(e) {
2733
2811
  return Re(e, !1);
2734
2812
  }
2735
- function Ta(e) {
2813
+ function La(e) {
2736
2814
  return Re(e, !0);
2737
2815
  }
2738
2816
  function Re(e, t) {
@@ -2749,311 +2827,311 @@ function Re(e, t) {
2749
2827
  export {
2750
2828
  m as ACTIVITY_CATALOG,
2751
2829
  hn as AI_ATTACHMENT_LIMITS,
2752
- bo as AI_ATTACHMENT_MAX_PER_TURN,
2753
- Ao as AI_ATTACHMENT_TURN_BUDGET,
2830
+ vo as AI_ATTACHMENT_MAX_PER_TURN,
2831
+ No as AI_ATTACHMENT_TURN_BUDGET,
2754
2832
  fe as AI_VENDORS,
2755
2833
  tt as ALLOWED_LINK_SCHEMES,
2756
- Xo as APP_PERMISSIONS,
2834
+ aa as APP_PERMISSIONS,
2757
2835
  F as ARTIFACT_MAX_BLOCKS,
2758
- Lr as ARTIFACT_MAX_BODY_BYTES,
2836
+ Xr as ARTIFACT_MAX_BODY_BYTES,
2759
2837
  C as ARTIFACT_MAX_CELL_LEN,
2760
2838
  X as ARTIFACT_MAX_KPI_ITEMS,
2761
- V as ARTIFACT_MAX_LIST_ITEMS,
2839
+ W as ARTIFACT_MAX_LIST_ITEMS,
2762
2840
  z as ARTIFACT_MAX_TABLE_COLUMNS,
2763
- W as ARTIFACT_MAX_TABLE_ROWS,
2841
+ V as ARTIFACT_MAX_TABLE_ROWS,
2764
2842
  ge as ARTIFACT_MAX_TEXT_LEN,
2765
2843
  ut as ASSIGNMENT_SCOPE_KIND,
2766
- Io as ASSIST_BANDS,
2767
- To as ASSIST_SOURCE_PROVIDER_GROUP,
2844
+ Do as ASSIST_BANDS,
2845
+ Lo as ASSIST_SOURCE_PROVIDER_GROUP,
2768
2846
  St as ATTENTION_STATUSES,
2769
2847
  Oe as AUTH_APP_NAME,
2770
2848
  zt as AUTO_READY_MIN_PROPOSALS,
2771
2849
  Xt as AUTO_READY_RATE,
2772
2850
  Fe as ActivityTypeRegistry,
2773
- Sr as BUILT_IN_ONLY,
2851
+ $r as BUILT_IN_ONLY,
2774
2852
  _t as BULK_PENALTY,
2775
2853
  xn as CADENCE_FLOOR_MS,
2776
- Dn as CADENCE_MIN_NEW_SEGMENTS,
2777
- Ln as CADENCE_MIN_NOVELTY,
2854
+ Ln as CADENCE_MIN_NEW_SEGMENTS,
2855
+ Dn as CADENCE_MIN_NOVELTY,
2778
2856
  $n as CADENCE_WINDOW_MS,
2779
- Li as CLASSIFY_VARS,
2780
- Ho as CONTEXT_COLLECT_SERVICE,
2781
- $r as CORE_DIMENSIONS,
2857
+ Xi as CLASSIFY_VARS,
2858
+ ta as CONTEXT_COLLECT_SERVICE,
2859
+ Wr as CORE_DIMENSIONS,
2782
2860
  _n as CommunicationScheme,
2783
2861
  mt as DAY_MS,
2784
- _i as DEFAULT_MEMORY_BUDGET,
2862
+ xi as DEFAULT_MEMORY_BUDGET,
2785
2863
  Hn as DEFAULT_PHONE_REGION,
2786
- Ui as EMPTY_WORKFLOW,
2787
- Go as FEATURE_FOLDER_MANAGEMENT,
2788
- jo as FEATURE_REMOTE_SEARCH,
2864
+ qi as EMPTY_WORKFLOW,
2865
+ Zo as FEATURE_FOLDER_MANAGEMENT,
2866
+ Qo as FEATURE_REMOTE_SEARCH,
2789
2867
  It as FOLLOW_UP_HOURS,
2790
2868
  ft as HOUR_MS,
2791
- ir as HTML_BODY_RE,
2869
+ hr as HTML_BODY_RE,
2792
2870
  g as INELIGIBLE,
2793
- Fo as INSTALLATION_HEADER,
2871
+ na as INSTALLATION_HEADER,
2794
2872
  Bt as INTERACTION_KIND,
2795
- Uo as InteractionParticipantRole,
2873
+ qo as InteractionParticipantRole,
2796
2874
  Rt as KB_FALLBACK_LOCALE,
2797
2875
  Z as KB_LOCALES,
2798
- D as LOOSE_STATUSES,
2799
- cr as MAX_ACTIONS,
2876
+ L as LOOSE_STATUSES,
2877
+ Er as MAX_ACTIONS,
2800
2878
  dt as MAX_ASSIGNMENT_TURNS,
2801
- or as MAX_BLOCKS,
2879
+ yr as MAX_BLOCKS,
2802
2880
  _e as MAX_COLLECTION_DEPTH,
2803
- ar as MAX_FIELDS,
2804
- sr as MAX_LIST_ITEMS,
2805
- Ai as MAX_MEMORY_BROWSE,
2806
- Si as MAX_MEMORY_BUDGET,
2807
- bi as MAX_MEMORY_CHARS,
2881
+ Ar as MAX_FIELDS,
2882
+ br as MAX_LIST_ITEMS,
2883
+ Ni as MAX_MEMORY_BROWSE,
2884
+ $i as MAX_MEMORY_BUDGET,
2885
+ vi as MAX_MEMORY_CHARS,
2808
2886
  Bn as MAX_SHOWN_KEYS,
2809
2887
  en as MAX_TOPIC_CANDIDATES,
2810
2888
  Qt as MAX_TOPIC_EXAMPLES,
2811
2889
  O as MAX_TOPIC_EXAMPLE_CHARS,
2812
- Ei as MIN_MEMORY_BUDGET,
2813
- ma as NAV_NOTICE_SLOT,
2814
- Wo as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2815
- Ii as ONBOARDING_SOURCE_PROVIDER_GROUP,
2816
- L as PHONE_REGIONS,
2890
+ Ri as MIN_MEMORY_BUDGET,
2891
+ Ma as NAV_NOTICE_SLOT,
2892
+ ia as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2893
+ Di as ONBOARDING_SOURCE_PROVIDER_GROUP,
2894
+ D as PHONE_REGIONS,
2817
2895
  ke as PRESENCE_ONLINE_WINDOW_MS,
2818
2896
  In as PRESENCE_SURVIVES_OFFLINE,
2819
- Mi as PROFILE_TOOL_DISPOSITIONS,
2820
- Po as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2821
- Lo as PROVIDER_FEATURE_MESSAGE_WINDOW,
2897
+ Ui as PROFILE_TOOL_DISPOSITIONS,
2898
+ Yo as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2899
+ Xo as PROVIDER_FEATURE_MESSAGE_WINDOW,
2822
2900
  qn as PUBLIC_EMAIL_DOMAINS,
2823
2901
  Q as READ_STEP_TYPES,
2824
- Dt as RELATED_SUBJECT_KINDS,
2902
+ Lt as RELATED_SUBJECT_KINDS,
2825
2903
  Me as RESERVED_STATUS_KEYS,
2826
- na as RESOURCE_ATTACHED_SERVICE,
2827
- Qo as RESOURCE_DESCRIBE_SERVICE,
2828
- ta as RESOURCE_RESOLVE_SERVICE,
2829
- ea as RESOURCE_SEARCH_SERVICE,
2830
- fa as SETTINGS_CATEGORIES,
2831
- Yr as SIGNATURE_INTENTS,
2904
+ ma as RESOURCE_ATTACHED_SERVICE,
2905
+ da as RESOURCE_DESCRIBE_SERVICE,
2906
+ fa as RESOURCE_RESOLVE_SERVICE,
2907
+ pa as RESOURCE_SEARCH_SERVICE,
2908
+ wa as SETTINGS_CATEGORIES,
2909
+ si as SIGNATURE_INTENTS,
2832
2910
  Tt as SLA_HOURS_BY_PRIORITY,
2833
- Vt as STEP_MAX_TOKENS_MAX,
2911
+ Wt as STEP_MAX_TOKENS_MAX,
2834
2912
  Ft as STEP_MAX_TOKENS_MIN,
2835
2913
  bt as SUMMARY_MIN_LAST_CHARS,
2836
2914
  At as SUMMARY_MIN_MESSAGES,
2837
- ua as SYNC_RUN_MAX_ERRORS,
2838
- ca as SYNC_SOURCE_PROVIDER_GROUP,
2839
- la as SYNC_TARGET_PROVIDER_GROUP,
2915
+ _a as SYNC_RUN_MAX_ERRORS,
2916
+ Ea as SYNC_SOURCE_PROVIDER_GROUP,
2917
+ Sa as SYNC_TARGET_PROVIDER_GROUP,
2840
2918
  lt as TERMINAL_ASSIGNMENT_STATUSES,
2841
2919
  Yt as TERMINAL_RUN_STATUSES,
2842
- Di as TRIGGER_VARS,
2843
- Bo as UNSUPPORTED,
2920
+ zi as TRIGGER_VARS,
2921
+ ea as UNSUPPORTED,
2844
2922
  Je as USAGE_DIMENSIONS,
2845
2923
  Ze as USAGE_DIMENSION_IDS,
2846
- wi as WORK_AREAS,
2847
- ro as WORK_COMMENT_ADDED,
2848
- io as WORK_ITEM_ASSIGNED,
2924
+ Pi as WORK_AREAS,
2925
+ ho as WORK_COMMENT_ADDED,
2926
+ yo as WORK_ITEM_ASSIGNED,
2849
2927
  an as WORK_ITEM_SCOPE_KIND,
2850
- oo as WORK_ITEM_STATUS_CHANGED,
2928
+ Ao as WORK_ITEM_STATUS_CHANGED,
2851
2929
  sn as WORK_PROJECT_SCOPE_KIND,
2852
2930
  _ as W_PRIORITY,
2853
- eo as acceptExampleCandidate,
2931
+ fo as acceptExampleCandidate,
2854
2932
  Pt as actingIdentityKey,
2855
- Zi as activeWorkTypes,
2856
- ur as activityIconOf,
2857
- br as activityJoinUrl,
2858
- Ge as activitySnippet,
2859
- je as activityTextParams,
2860
- Ar as activityTimelineText,
2861
- Ve as activityTimestamp,
2862
- d as activityTypeInfo,
2863
- Oi as actorKey,
2864
- Qi as addExampleCandidate,
2865
- qo as agePresenceEntry,
2933
+ uo as activeWorkTypes,
2934
+ _r as activityIconOf,
2935
+ vr as activityJoinUrl,
2936
+ je as activitySnippet,
2937
+ Ge as activityTextParams,
2938
+ Nr as activityTimelineText,
2939
+ We as activityTimestamp,
2940
+ p as activityTypeInfo,
2941
+ Gi as actorKey,
2942
+ po as addExampleCandidate,
2943
+ ca as agePresenceEntry,
2866
2944
  gn as aiAttachmentKind,
2867
- Eo as aiAttachmentRejection,
2945
+ Ro as aiAttachmentRejection,
2868
2946
  H as aiBudgetLimit,
2869
- vr as aiBudgetPeriodKey,
2870
- We as aiBudgetPeriodStart,
2871
- Nr as aiBudgetState,
2872
- Or as aiVendorAcceptsAttachment,
2873
- Mr as aiVendorDefaultModel,
2874
- wr as aiVendorLabel,
2875
- Cr as aiVendorNeedsBaseUrl,
2876
- kr as aiVendorsWith,
2947
+ Hr as aiBudgetPeriodKey,
2948
+ Ve as aiBudgetPeriodStart,
2949
+ Br as aiBudgetState,
2950
+ Gr as aiVendorAcceptsAttachment,
2951
+ Ur as aiVendorDefaultModel,
2952
+ Pr as aiVendorLabel,
2953
+ jr as aiVendorNeedsBaseUrl,
2954
+ Kr as aiVendorsWith,
2877
2955
  Ne as appNameFromPath,
2878
- zi as applyRounding,
2879
- qr as applySignature,
2880
- Wt as approvalRate,
2881
- Ur as artifactBodyBytes,
2882
- Kr as artifactOutline,
2883
- Gr as artifactToMarkdown,
2884
- $i as assignmentMismatch,
2885
- Vr as assignmentScopeKey,
2886
- zr as assignmentSubject,
2887
- Er as buildActivityPreview,
2888
- vo as buildChannelIntents,
2889
- jr as buildShareKeys,
2890
- jn as buildWindow,
2891
- pi as canNestUnder,
2892
- mr as carriesText,
2893
- mi as categoryLabel,
2956
+ oo as applyRounding,
2957
+ ci as applySignature,
2958
+ Vt as approvalRate,
2959
+ qr as artifactBodyBytes,
2960
+ Jr as artifactOutline,
2961
+ Zr as artifactToMarkdown,
2962
+ Wi as assignmentMismatch,
2963
+ ri as assignmentScopeKey,
2964
+ oi as assignmentSubject,
2965
+ Rr as buildActivityPreview,
2966
+ Ho as buildChannelIntents,
2967
+ Qr as buildShareKeys,
2968
+ Gn as buildWindow,
2969
+ Ii as canNestUnder,
2970
+ Mr as carriesText,
2971
+ Mi as categoryLabel,
2894
2972
  un as categoryOf,
2895
- Do as channelKindForScheme,
2896
- dr as channelKindOf,
2897
- Pi as clampStepMaxTokens,
2898
- Ta as cleanMessageMarkdown,
2899
- _a as cleanMessageText,
2900
- Mo as compareAssistRank,
2973
+ zo as channelKindForScheme,
2974
+ Tr as channelKindOf,
2975
+ Yi as clampStepMaxTokens,
2976
+ La as cleanMessageMarkdown,
2977
+ xa as cleanMessageText,
2978
+ Uo as compareAssistRank,
2901
2979
  Zt as compareWorkTypes,
2902
- Xr as decideAssignmentState,
2903
- pa as decideCadence,
2904
- Oo as decideIncomingCall,
2980
+ ai as decideAssignmentState,
2981
+ Ia as decideCadence,
2982
+ Go as decideIncomingCall,
2905
2983
  $t as defaultLocaleOf,
2906
- mo as defaultStatusKey,
2907
- Ko as defineIntent,
2984
+ Mo as defaultStatusKey,
2985
+ Jo as defineIntent,
2908
2986
  Nt as depthOf,
2909
- Yo as derivePresence,
2910
- No as disabledIntentsFromCapabilities,
2911
- Wi as elapsedSeconds,
2912
- ya as emailDomain,
2913
- Ea as endpointKey,
2987
+ sa as derivePresence,
2988
+ Bo as disabledIntentsFromCapabilities,
2989
+ io as elapsedSeconds,
2990
+ Oa as emailDomain,
2991
+ Ra as endpointKey,
2914
2992
  kn as extractParams,
2915
2993
  Kn as extractTerms,
2916
- $o as filterByEndpoint,
2917
- Ro as filterByIntent,
2994
+ Wo as filterByEndpoint,
2995
+ Fo as filterByIntent,
2918
2996
  Sn as filterByTargetScheme,
2919
2997
  T as findAiVendor,
2920
- Vo as flattenLocales,
2998
+ ra as flattenLocales,
2921
2999
  Xe as floorToPeriod,
2922
- Lt as formatActingIdentity,
2923
- Yi as formatClock,
2924
- Xi as formatHm,
2925
- so as formatItemKey,
3000
+ Dt as formatActingIdentity,
3001
+ so as formatClock,
3002
+ ao as formatHm,
3003
+ Eo as formatItemKey,
2926
3004
  ze as formatPeriod,
2927
- _o as freshSources,
2928
- _r as getActivitySeenUserIds,
2929
- Jr as getContactEndpoints,
2930
- si as getShortTitle,
2931
- ai as getUrgencyScore,
3005
+ xo as freshSources,
3006
+ xr as getActivitySeenUserIds,
3007
+ li as getContactEndpoints,
3008
+ bi as getShortTitle,
3009
+ Ai as getUrgencyScore,
2932
3010
  Te as heightOf,
2933
- li as helpCenterText,
2934
- xi as humanizeAction,
3011
+ Si as helpCenterText,
3012
+ Vi as humanizeAction,
2935
3013
  Ht as interactionIdOf,
2936
- no as isAgentUser,
2937
- ii as isAssigned,
2938
- Fr as isAssignmentTerminal,
2939
- Gt as isAssignmentTrigger,
2940
- ji as isAutoReady,
3014
+ go as isAgentUser,
3015
+ hi as isAssigned,
3016
+ ni as isAssignmentTerminal,
3017
+ jt as isAssignmentTrigger,
3018
+ Qi as isAutoReady,
2941
3019
  Ot as isAwaitingThem,
2942
- Ir as isChatMessageActivity,
2943
- oi as isClosed,
2944
- hr as isConnectedType,
2945
- ia as isDeepLink,
3020
+ Dr as isChatMessageActivity,
3021
+ yi as isClosed,
3022
+ Cr as isConnectedType,
3023
+ ha as isDeepLink,
2946
3024
  vt as isDescendant,
2947
- Zr as isEligible,
2948
- Tr as isEmailActivity,
2949
- Sa as isHtmlBody,
2950
- Hi as isInFlight,
3025
+ ui as isEligible,
3026
+ Lr as isEmailActivity,
3027
+ $a as isHtmlBody,
3028
+ to as isInFlight,
2951
3029
  Et as isInteractionUnseen,
2952
- oa as isLandingPath,
3030
+ ya as isLandingPath,
2953
3031
  yt as isLikelyBulk,
2954
3032
  pe as isMessageShape,
2955
- pr as isMessageType,
3033
+ Ir as isMessageType,
2956
3034
  On as isMoreSpecificPattern,
2957
- So as isOutwardTool,
3035
+ $o as isOutwardTool,
2958
3036
  Mt as isParked,
2959
3037
  qt as isPaused,
2960
- gr as isPlaybookAuthoredType,
2961
- Aa as isPublicEmailDomain,
2962
- sa as isPublicPath,
3038
+ kr as isPlaybookAuthoredType,
3039
+ Na as isPublicEmailDomain,
3040
+ ba as isPublicPath,
2963
3041
  kt as isReminderActive,
2964
- fr as isReplyableType,
2965
- ni as isSlaAtRisk,
2966
- Bi as isTerminal,
2967
- ei as isThreadLongEnough,
2968
- yr as isTranscriptType,
2969
- go as isWorkClosed,
2970
- Ji as isWorkTypeVisible,
2971
- uo as itemDossierKeys,
3042
+ wr as isReplyableType,
3043
+ mi as isSlaAtRisk,
3044
+ eo as isTerminal,
3045
+ pi as isThreadLongEnough,
3046
+ Or as isTranscriptType,
3047
+ ko as isWorkClosed,
3048
+ lo as isWorkTypeVisible,
3049
+ To as itemDossierKeys,
2972
3050
  ln as ladderFor,
2973
- ci as linkLabel,
2974
- Rr as listeningAllowed,
2975
- di as localeInstruction,
2976
- ui as localeName,
2977
- fi as localesOf,
2978
- ga as looksLikeEmail,
2979
- xo as matchContactToIntents,
3051
+ Ei as linkLabel,
3052
+ Fr as listeningAllowed,
3053
+ Ti as localeInstruction,
3054
+ _i as localeName,
3055
+ wi as localesOf,
3056
+ ka as looksLikeEmail,
3057
+ Vo as matchContactToIntents,
2980
3058
  Nn as matchPublicRoute,
2981
- hi as mcpCredentialScope,
2982
- yi as mcpToolPrefix,
2983
- da as mergeShownKeys,
3059
+ Ci as mcpCredentialScope,
3060
+ Oi as mcpToolPrefix,
3061
+ Ta as mergeShownKeys,
2984
3062
  Ke as messageCountsAs,
2985
- ba as needsPhoneRegion,
2986
- Pr as normalizeArtifactBlocks,
2987
- lr as normalizeBlocks,
3063
+ va as needsPhoneRegion,
3064
+ Yr as normalizeArtifactBlocks,
3065
+ Sr as normalizeBlocks,
2988
3066
  ve as normalizeEmail,
2989
3067
  h as normalizeExample,
2990
- zo as notificationPrefKey,
2991
- Gn as novelty,
2992
- Qr as parkMarksById,
2993
- ki as parseActingIdentity,
2994
- co as parseItemKey,
3068
+ oa as notificationPrefKey,
3069
+ jn as novelty,
3070
+ di as parkMarksById,
3071
+ Ki as parseActingIdentity,
3072
+ So as parseItemKey,
2995
3073
  Mn as pathToRegex,
2996
- xr as periodsInRange,
2997
- ha as phoneSuffix,
3074
+ Vr as periodsInRange,
3075
+ Ca as phoneSuffix,
2998
3076
  Pe as plainTextFromMarkdown,
2999
3077
  Kt as playbookActor,
3000
- Gi as procedureOf,
3001
- po as projectDossierKeys,
3078
+ Zi as procedureOf,
3079
+ Io as projectDossierKeys,
3002
3080
  Cn as publicBasePathFor,
3003
- aa as publicRoutePatterns,
3081
+ Aa as publicRoutePatterns,
3004
3082
  R as readPath,
3005
3083
  ee as readStepError,
3006
3084
  wt as recencyOf,
3007
- jt as refKey,
3085
+ Gt as refKey,
3008
3086
  Yn as registrableDomain,
3009
3087
  nn as rejectExampleCandidate,
3010
- Ti as relatedByDefault,
3088
+ Li as relatedByDefault,
3011
3089
  bn as resolveAccountCapabilities,
3012
3090
  $ as resolveActivityText,
3013
3091
  An as resolveChannelIntents,
3014
3092
  pt as resolveSignature,
3015
- Jo as resolveWorkMode,
3016
- ra as resourceKindOf,
3017
- Ci as runActor,
3018
- Vi as runInteractionId,
3093
+ la as resolveWorkMode,
3094
+ ga as resourceKindOf,
3095
+ ji as runActor,
3096
+ ro as runInteractionId,
3019
3097
  ot as sanitizeInline,
3020
3098
  Rn as sanitizeTranscript,
3021
- ri as scoreInteraction,
3022
- ao as scoreWorkItem,
3023
- gi as selectLenses,
3024
- Co as sessionsHoldCannotReach,
3025
- ko as sessionsToHold,
3099
+ gi as scoreInteraction,
3100
+ bo as scoreWorkItem,
3101
+ ki as selectLenses,
3102
+ jo as sessionsHoldCannotReach,
3103
+ Ko as sessionsToHold,
3026
3104
  Ae as shareKeyForTeam,
3027
3105
  ye as shareKeyForUser,
3028
- Br as shareKeysForViewer,
3029
- Zo as shouldRunAudioPipeline,
3030
- ti as slaHoursByInbox,
3106
+ ei as shareKeysForViewer,
3107
+ ua as shouldRunAudioPipeline,
3108
+ fi as slaHoursByInbox,
3031
3109
  Ct as slaHoursFor,
3032
3110
  dn as sortStatuses,
3033
3111
  yn as sourceKey,
3034
- fo as statusIn,
3035
- Ki as stepsOf,
3112
+ wo as statusIn,
3113
+ Ji as stepsOf,
3036
3114
  Ue as stripHtml,
3037
- Fi as subjectKeyOf,
3115
+ no as subjectKeyOf,
3038
3116
  Ie as subjectOf,
3039
- wo as subjectRef,
3040
- lo as suggestProjectKey,
3041
- Ri as targetById,
3042
- vi as targetForActivityType,
3117
+ Po as subjectRef,
3118
+ _o as suggestProjectKey,
3119
+ Fi as targetById,
3120
+ Hi as targetForActivityType,
3043
3121
  Ut as toActingIdentity,
3044
3122
  oe as toE164,
3045
- Hr as toolSourceKinds,
3123
+ ti as toolSourceKinds,
3046
3124
  rn as topicOfferedForTeam,
3047
- to as topicsForTeam,
3125
+ mo as topicsForTeam,
3048
3126
  tn as truncateExample,
3049
- ho as uniqueWorkStatusKey,
3050
- qi as uniqueWorkTypeKey,
3127
+ Co as uniqueWorkStatusKey,
3128
+ co as uniqueWorkTypeKey,
3051
3129
  Qe as usageMetricId,
3052
- Dr as usageMetrics,
3053
- yo as validateStatuses,
3054
- Ni as valueAtPath,
3130
+ zr as usageMetrics,
3131
+ Oo as validateStatuses,
3132
+ Bi as valueAtPath,
3055
3133
  x as waitHoursOf,
3056
- Wr as wakesAssignment,
3134
+ ii as wakesAssignment,
3057
3135
  cn as workItemScopeKey,
3058
3136
  we as workProjectScopeKey,
3059
3137
  pn as workStatusKey,