@opencxh/domain 1.233.1 → 1.235.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 Ii = 10, Mi = 10, ki = 10, vi = 5, Wt = /* @__PURE__ */ new Set([
1
+ const Oi = 10, Ci = 10, Ni = 10, xi = 5, Yt = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function te(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function Oi(e, t = () => {
17
+ function Ri(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,7 +25,7 @@ function Oi(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const o = r;
28
- if (!Wt.has(o.type)) {
28
+ if (!Yt.has(o.type)) {
29
29
  t(`unknown block type ${String(o.type)}`);
30
30
  continue;
31
31
  }
@@ -69,17 +69,17 @@ function Oi(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- const Vt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, zt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
- function Yt(e) {
72
+ const qt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Jt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
+ function Zt(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(Vt, "$2"), t = t.replace(zt, "$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(qt, "$2"), t = t.replace(Jt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
81
81
  }
82
- function Xt(e) {
82
+ function Qt(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();
84
84
  }
85
85
  function G(e) {
@@ -87,19 +87,19 @@ function G(e) {
87
87
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
88
88
  return `${t}:${n.toString().padStart(2, "0")}`;
89
89
  }
90
- function ke(e) {
90
+ function xe(e) {
91
91
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
92
92
  }
93
93
  function ne(e) {
94
94
  return e?.split("@")?.[0] || e || "";
95
95
  }
96
- function W(e) {
96
+ function V(e) {
97
97
  return e.map((t) => t.name).join(", ");
98
98
  }
99
- function ve(e) {
99
+ function Re(e) {
100
100
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
101
101
  }
102
- const N = {
102
+ const R = {
103
103
  /* ---- voice ---- */
104
104
  VOICE_CALL_STARTED: {
105
105
  shape: "event",
@@ -134,7 +134,7 @@ const N = {
134
134
  channelKind: "voice",
135
135
  icon: "phone",
136
136
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
137
- timeline: (e) => `Call ended${ke(e.payload.duration)}`
137
+ timeline: (e) => `Call ended${xe(e.payload.duration)}`
138
138
  },
139
139
  VOICE_CALL_MISSED: {
140
140
  shape: "event",
@@ -216,7 +216,7 @@ const N = {
216
216
  replyable: !0,
217
217
  carriesText: !0,
218
218
  countsAs: "inbound_message",
219
- snippet: Oe
219
+ snippet: De
220
220
  },
221
221
  EMAIL_SENT: {
222
222
  shape: "message",
@@ -226,7 +226,7 @@ const N = {
226
226
  replyable: !0,
227
227
  carriesText: !0,
228
228
  countsAs: "outbound_message",
229
- snippet: Oe
229
+ snippet: De
230
230
  },
231
231
  /* ---- chat ---- */
232
232
  CHAT_MESSAGE_SENT: {
@@ -255,9 +255,9 @@ const N = {
255
255
  shape: "event",
256
256
  channelKind: "chat",
257
257
  icon: "message-circle",
258
- snippet: (e) => `${W(e.payload.members)} toegevoegd`,
258
+ snippet: (e) => `${V(e.payload.members)} toegevoegd`,
259
259
  timeline: (e) => {
260
- const t = W(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
260
+ const t = V(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
261
261
  return `${t} joined the chat${n}`;
262
262
  }
263
263
  },
@@ -265,9 +265,9 @@ const N = {
265
265
  shape: "event",
266
266
  channelKind: "chat",
267
267
  icon: "message-circle",
268
- snippet: (e) => `${W(e.payload.members)} verlaten`,
268
+ snippet: (e) => `${V(e.payload.members)} verlaten`,
269
269
  timeline: (e) => {
270
- const t = W(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
270
+ const t = V(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
271
271
  return `${t} left the chat${n}`;
272
272
  }
273
273
  },
@@ -283,7 +283,7 @@ const N = {
283
283
  channelKind: "chat",
284
284
  icon: "message-circle",
285
285
  snippet: () => "Gesprek gestart",
286
- timeline: (e) => `${ve(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
286
+ timeline: (e) => `${Re(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
287
287
  joinUrl: (e) => e.payload.joinUrl
288
288
  },
289
289
  CHAT_CALL_ENDED: {
@@ -291,7 +291,7 @@ const N = {
291
291
  channelKind: "chat",
292
292
  icon: "message-circle",
293
293
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
294
- timeline: (e) => `${ve(e.payload.callType)} ended${ke(e.payload.duration)}`,
294
+ timeline: (e) => `${Re(e.payload.callType)} ended${xe(e.payload.duration)}`,
295
295
  joinUrl: (e) => e.payload.joinUrl
296
296
  },
297
297
  CHAT_EVENT: {
@@ -460,63 +460,63 @@ const N = {
460
460
  timeline: (e, t) => `Status changed by ${t}`
461
461
  }
462
462
  };
463
- function Oe(e) {
464
- const t = e.payload, n = Yt(t.bodyText).trim() || t.bodySnippet?.trim() || Xt(t.body ?? "");
463
+ function De(e) {
464
+ const t = e.payload, n = Zt(t.bodyText).trim() || t.bodySnippet?.trim() || Qt(t.body ?? "");
465
465
  return t.subject ? `${t.subject} — ${n}` : n;
466
466
  }
467
- function M(e) {
468
- return N[e];
467
+ function w(e) {
468
+ return R[e];
469
469
  }
470
- function Ci(e) {
471
- return M(e)?.icon ?? "circle";
470
+ function Di(e) {
471
+ return w(e)?.icon ?? "circle";
472
472
  }
473
- function Ni(e) {
474
- return M(e)?.channelKind;
473
+ function $i(e) {
474
+ return w(e)?.channelKind;
475
475
  }
476
- function dt(e) {
476
+ function ht(e) {
477
477
  return e === "message" || e === "note";
478
478
  }
479
- function xi(e) {
480
- return dt(M(e)?.shape);
479
+ function Li(e) {
480
+ return ht(w(e)?.shape);
481
481
  }
482
- function ft(e) {
482
+ function gt(e) {
483
483
  return e === "note";
484
484
  }
485
- function Ri(e) {
486
- return ft(M(e)?.shape);
485
+ function Pi(e) {
486
+ return gt(w(e)?.shape);
487
487
  }
488
- function Di(e) {
489
- return M(e)?.replyable === !0;
488
+ function Ui(e) {
489
+ return w(e)?.replyable === !0;
490
490
  }
491
- function $i(e) {
492
- return M(e)?.carriesText === !0;
491
+ function Ki(e) {
492
+ return w(e)?.carriesText === !0;
493
493
  }
494
- function qt(e) {
495
- return M(e)?.countsAs;
494
+ function en(e) {
495
+ return w(e)?.countsAs;
496
496
  }
497
- function Li(e) {
498
- return M(e)?.playbookAuthored === !0;
497
+ function Fi(e) {
498
+ return w(e)?.playbookAuthored === !0;
499
499
  }
500
- function Pi(e) {
501
- return M(e)?.connected === !0;
500
+ function Bi(e) {
501
+ return w(e)?.connected === !0;
502
502
  }
503
- function Ui(e) {
504
- const t = M(e);
503
+ function Hi(e) {
504
+ const t = w(e);
505
505
  return t?.shape === "artifact" && t?.carriesText === !0;
506
506
  }
507
- function Jt(e) {
508
- const t = M(e.type)?.snippet;
507
+ function tn(e) {
508
+ const t = w(e.type)?.snippet;
509
509
  return t ? t(e) : "";
510
510
  }
511
- function Ki(e, t) {
512
- const n = M(e.type)?.timeline;
511
+ function ji(e, t) {
512
+ const n = w(e.type)?.timeline;
513
513
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
514
514
  }
515
- function Fi(e) {
516
- const t = M(e.type)?.joinUrl;
515
+ function Wi(e) {
516
+ const t = w(e.type)?.joinUrl;
517
517
  return t ? t(e) : void 0;
518
518
  }
519
- function le(e, t) {
519
+ function ue(e, t) {
520
520
  let n = e;
521
521
  for (const r of t.split(".")) {
522
522
  if (n == null || typeof n != "object") return "";
@@ -524,44 +524,44 @@ function le(e, t) {
524
524
  }
525
525
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
526
526
  }
527
- function ue(e, t, n) {
527
+ function de(e, t, n) {
528
528
  if (e === void 0) return null;
529
529
  if (typeof e == "string") return e || null;
530
530
  if ("value" in e)
531
- return le(t, e.value) || null;
531
+ return ue(t, e.value) || null;
532
532
  const r = {};
533
533
  for (const [i, s] of Object.entries(e.params ?? {}))
534
- r[i] = le(t, s);
534
+ r[i] = ue(t, s);
535
535
  const o = n(e.key, r);
536
536
  return o === e.key ? null : o;
537
537
  }
538
- function Zt(e, t) {
538
+ function nn(e, t) {
539
539
  if (!e || typeof e == "string" || "value" in e) return null;
540
540
  const n = {};
541
541
  for (const [r, o] of Object.entries(e.params ?? {}))
542
- n[r] = le(t, o);
542
+ n[r] = ue(t, o);
543
543
  return { key: e.key, params: n };
544
544
  }
545
- const Ce = 140;
546
- function Qt(e) {
545
+ const $e = 140;
546
+ function rn(e) {
547
547
  const t = e.trim();
548
- return t.length <= Ce ? t : `${t.slice(0, Ce - 1).trimEnd()}…`;
548
+ return t.length <= $e ? t : `${t.slice(0, $e - 1).trimEnd()}…`;
549
549
  }
550
- function Bi(e, t) {
551
- const n = Zt(t?.text, e), r = t ? ue(t.text, e, (o) => o) : null;
550
+ function Gi(e, t) {
551
+ const n = nn(t?.text, e), r = t ? de(t.text, e, (o) => o) : null;
552
552
  return {
553
553
  activityId: e.id,
554
554
  type: e.type,
555
- snippet: Qt(r ?? Jt(e)),
555
+ snippet: rn(r ?? tn(e)),
556
556
  authorName: e.author?.name ?? "",
557
557
  direction: e.direction,
558
558
  createdAt: e.createdAt ?? Date.now(),
559
559
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
560
560
  };
561
561
  }
562
- const en = (e) => e;
563
- function Ne(e) {
564
- const t = N[e];
562
+ const on = (e) => e;
563
+ function Le(e) {
564
+ const t = R[e];
565
565
  return {
566
566
  type: e,
567
567
  shape: t.shape,
@@ -576,7 +576,7 @@ function Ne(e) {
576
576
  displayNameKey: t.displayNameKey
577
577
  };
578
578
  }
579
- function xe(e) {
579
+ function Pe(e) {
580
580
  return {
581
581
  type: e.type,
582
582
  shape: e.shape,
@@ -591,21 +591,21 @@ function xe(e) {
591
591
  displayNameKey: e.displayNameKey
592
592
  };
593
593
  }
594
- class tn {
595
- constructor(t = [], n = en) {
594
+ class sn {
595
+ constructor(t = [], n = on) {
596
596
  this.translate = n;
597
597
  for (const r of t)
598
- r?.type && (r.type in N || this.declared.has(r.type) || this.declared.set(r.type, r));
598
+ r?.type && (r.type in R || this.declared.has(r.type) || this.declared.set(r.type, r));
599
599
  }
600
600
  declared = /* @__PURE__ */ new Map();
601
601
  get(t) {
602
- if (t in N) return Ne(t);
602
+ if (t in R) return Le(t);
603
603
  const n = this.declared.get(t);
604
- return n ? xe(n) : void 0;
604
+ return n ? Pe(n) : void 0;
605
605
  }
606
606
  /** Everything that may be offered as a trigger, built-in and declared. */
607
607
  triggerable() {
608
- const t = Object.keys(N).filter((r) => N[r].triggerable).map(Ne), n = [...this.declared.values()].map(xe).filter((r) => r.triggerable);
608
+ const t = Object.keys(R).filter((r) => R[r].triggerable).map(Le), n = [...this.declared.values()].map(Pe).filter((r) => r.triggerable);
609
609
  return [...t, ...n];
610
610
  }
611
611
  /**
@@ -614,17 +614,17 @@ class tn {
614
614
  * the feed always showed for unknown types.
615
615
  */
616
616
  timelineText(t, n) {
617
- const r = N[t.type];
617
+ const r = R[t.type];
618
618
  if (r?.timeline) return r.timeline(t, n);
619
619
  const o = this.declared.get(t.type);
620
- return ue(o?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
620
+ return de(o?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
621
621
  }
622
622
  /** The line for the inbox list. Empty when the type has nothing to show. */
623
623
  snippet(t) {
624
- const n = N[t.type];
624
+ const n = R[t.type];
625
625
  if (n?.snippet) return n.snippet(t);
626
626
  const r = this.declared.get(t.type);
627
- return ue(r?.text, t, this.translate) ?? "";
627
+ return de(r?.text, t, this.translate) ?? "";
628
628
  }
629
629
  /** The descriptor as it arrived; needed to store `text` as a key. */
630
630
  descriptor(t) {
@@ -649,11 +649,11 @@ class tn {
649
649
  * {@link ResolvedActivityType}.
650
650
  */
651
651
  isMessage(t) {
652
- return dt(this.get(t)?.shape);
652
+ return ht(this.get(t)?.shape);
653
653
  }
654
654
  /** Folds into the list under the message it answers. See {@link isNoteShape}. */
655
655
  nestsUnderParent(t) {
656
- return ft(this.get(t)?.shape);
656
+ return gt(this.get(t)?.shape);
657
657
  }
658
658
  /** Can a person reply to this? Notes cannot — those go nowhere. */
659
659
  isReplyable(t) {
@@ -681,23 +681,23 @@ class tn {
681
681
  return this.translate;
682
682
  }
683
683
  }
684
- const Hi = new tn();
685
- function ji(e, t, n = []) {
684
+ const Vi = new sn();
685
+ function Xi(e, t, n = []) {
686
686
  const r = e.createdAt;
687
687
  if (!r) return [];
688
688
  const o = new Set(n);
689
689
  return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([i, s]) => s >= r && !o.has(i)).map(([i]) => i);
690
690
  }
691
- function nn(e) {
691
+ function an(e) {
692
692
  return e.createdAt ?? 0;
693
693
  }
694
- function Gi(e) {
694
+ function zi(e) {
695
695
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
696
696
  }
697
- function Wi(e) {
697
+ function Yi(e) {
698
698
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
699
699
  }
700
- const pt = [
700
+ const yt = [
701
701
  {
702
702
  id: "openai",
703
703
  attachmentKinds: ["image", "pdf"],
@@ -788,44 +788,44 @@ const pt = [
788
788
  }
789
789
  ];
790
790
  function Z(e) {
791
- return pt.find((t) => t.id === e);
791
+ return yt.find((t) => t.id === e);
792
792
  }
793
- function Vi(e) {
793
+ function qi(e) {
794
794
  return Z(e)?.label ?? e;
795
795
  }
796
- function zi(e, t = "gpt-5-mini") {
796
+ function Ji(e, t = "gpt-5-mini") {
797
797
  return Z(e)?.defaultModel ?? t;
798
798
  }
799
- function Yi(e) {
800
- return pt.filter((t) => t.capabilities.includes(e));
799
+ function Zi(e) {
800
+ return yt.filter((t) => t.capabilities.includes(e));
801
801
  }
802
- function Xi(e) {
802
+ function Qi(e) {
803
803
  const t = Z(e);
804
804
  return !!t && !t.baseUrl;
805
805
  }
806
- function qi(e, t) {
806
+ function es(e, t) {
807
807
  return t === "text" ? !0 : Z(e)?.attachmentKinds?.includes(t) === !0;
808
808
  }
809
- function Ji(e, t) {
809
+ function ts(e, t) {
810
810
  if (!e.enabled) return "ok";
811
- const n = Re(e.hardLimitNanos), r = Re(e.softLimitNanos);
811
+ const n = Ue(e.hardLimitNanos), r = Ue(e.softLimitNanos);
812
812
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
813
813
  }
814
- function Re(e) {
814
+ function Ue(e) {
815
815
  return typeof e == "number" ? e : void 0;
816
816
  }
817
- function rn(e, t = "month") {
817
+ function cn(e, t = "month") {
818
818
  const n = new Date(e);
819
819
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
820
820
  }
821
- function Zi(e, t = "month") {
822
- const n = new Date(rn(e, t));
821
+ function ns(e, t = "month") {
822
+ const n = new Date(cn(e, t));
823
823
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
824
824
  }
825
- function Qi(e) {
825
+ function rs(e) {
826
826
  return e?.listeningEnabled !== !1;
827
827
  }
828
- const es = [
828
+ const os = [
829
829
  { id: "agent", label: "Agent", labelSource: "user" },
830
830
  { id: "team", label: "Team", labelSource: "team" },
831
831
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -846,53 +846,53 @@ function B(e, t) {
846
846
  const n = new Date(e);
847
847
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
848
848
  }
849
- const on = 36e5, sn = 864e5;
850
- function ts(e, t, n) {
851
- const r = n === "hour" ? on : sn, o = [];
849
+ const ln = 36e5, un = 864e5;
850
+ function is(e, t, n) {
851
+ const r = n === "hour" ? ln : un, o = [];
852
852
  for (let i = B(e, n); i <= t; i += r)
853
853
  o.push(F(i, n));
854
854
  return o;
855
855
  }
856
- const an = /* @__PURE__ */ new Set(["time"]);
857
- function ns(e, t, n) {
856
+ const dn = /* @__PURE__ */ new Set(["time"]);
857
+ function ss(e, t, n) {
858
858
  if (!e) return [];
859
859
  const r = new Set(e.supportedDimensions ?? []);
860
- return t.filter((o) => r.has(o.id) && !an.has(o.id)).map((o) => ({
860
+ return t.filter((o) => r.has(o.id) && !dn.has(o.id)).map((o) => ({
861
861
  id: o.id,
862
862
  label: o.label,
863
863
  options: o.options?.length ? o.options : n[o.id] ?? []
864
864
  })).filter((o) => o.options.length > 0);
865
865
  }
866
- function rs(e, t) {
866
+ function as(e, t) {
867
867
  const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
868
868
  return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
869
869
  }
870
- function os(e) {
870
+ function cs(e) {
871
871
  return { value: e.id, label: `${e.category} · ${e.label}` };
872
872
  }
873
- const cn = [
873
+ const fn = [
874
874
  { id: "resource", label: "Resource", labelSource: "raw" },
875
875
  { id: "origin", label: "Herkomst", labelSource: "raw" }
876
- ], ln = cn.map((e) => e.id);
877
- function un(e, t) {
876
+ ], pn = fn.map((e) => e.id);
877
+ function mn(e, t) {
878
878
  return `${e}.usage.${t}`;
879
879
  }
880
- function is(e, t) {
880
+ function ls(e, t) {
881
881
  return t.map((n) => ({
882
- id: un(e, n.unit),
882
+ id: mn(e, n.unit),
883
883
  label: n.label,
884
884
  category: "Verbruik",
885
885
  valueType: n.valueType ?? "count",
886
886
  aggregation: "sum",
887
887
  supportedDimensions: [
888
888
  "provider",
889
- ...ln,
889
+ ...pn,
890
890
  ...n.extraDimensions ?? [],
891
891
  "time"
892
892
  ]
893
893
  }));
894
894
  }
895
- const mt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), De = 200, $e = 100, Le = 200, Pe = 12, Ue = 4, gt = 4e3, oe = 500, ss = 256 * 1024, dn = /* @__PURE__ */ new Set([
895
+ const bt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), Ke = 200, Fe = 100, Be = 200, He = 12, je = 4, We = 10, hn = 8, Ge = 12, At = 4e3, X = 500, us = 1024 * 1024, gn = /* @__PURE__ */ new Set([
896
896
  "heading",
897
897
  "paragraph",
898
898
  "list",
@@ -901,16 +901,20 @@ const mt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
901
901
  "divider",
902
902
  "table",
903
903
  "kpi",
904
- "callout"
905
- ]), fn = ["http:", "https:", "mailto:", "tel:"], pn = /^[a-z][a-z0-9+.-]*:/i;
906
- function ht(e) {
904
+ "callout",
905
+ "image",
906
+ "letterhead",
907
+ "totals",
908
+ "pagebreak"
909
+ ]), yn = ["http:", "https:", "mailto:", "tel:"], bn = /^[a-z][a-z0-9+.-]*:/i;
910
+ function Te(e) {
907
911
  const t = e.trim().replace(/^<|>$/g, "");
908
912
  if (!t) return !1;
909
- const n = pn.exec(t)?.[0];
910
- return n ? fn.includes(n.toLowerCase()) : !t.startsWith("//");
913
+ const n = bn.exec(t)?.[0];
914
+ return n ? yn.includes(n.toLowerCase()) : !t.startsWith("//");
911
915
  }
912
- const mn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
913
- function gn(e) {
916
+ const An = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
917
+ function En(e) {
914
918
  let t = "", n = 0;
915
919
  for (; n < e.length; ) {
916
920
  const r = e[n] === "!" && e[n + 1] === "[";
@@ -918,22 +922,22 @@ function gn(e) {
918
922
  t += e[n], n += 1;
919
923
  continue;
920
924
  }
921
- const o = n + (r ? 2 : 1), i = Ke(e, o, "[", "]");
925
+ const o = n + (r ? 2 : 1), i = Ve(e, o, "[", "]");
922
926
  if (i < 0 || e[i + 1] !== "(") {
923
927
  t += e[n], n += 1;
924
928
  continue;
925
929
  }
926
- const s = Ke(e, i + 2, "(", ")");
930
+ const s = Ve(e, i + 2, "(", ")");
927
931
  if (s < 0) {
928
932
  t += e[n], n += 1;
929
933
  continue;
930
934
  }
931
935
  const a = e.slice(o, i), l = e.slice(i + 2, s).trim().split(/\s+/)[0] ?? "";
932
- t += r || !ht(l) ? a : e.slice(n, s + 1), n = s + 1;
936
+ t += r || !Te(l) ? a : e.slice(n, s + 1), n = s + 1;
933
937
  }
934
938
  return t;
935
939
  }
936
- function Ke(e, t, n, r) {
940
+ function Ve(e, t, n, r) {
937
941
  let o = 1;
938
942
  for (let i = t; i < e.length; i += 1) {
939
943
  if (e[i] === "\\") {
@@ -946,40 +950,43 @@ function Ke(e, t, n, r) {
946
950
  }
947
951
  return -1;
948
952
  }
949
- function hn(e) {
950
- return gn(e).replace(
951
- mn,
952
- (t, n, r) => ht(r) ? t : ""
953
+ function Sn(e) {
954
+ return En(e).replace(
955
+ An,
956
+ (t, n, r) => Te(r) ? t : ""
953
957
  );
954
958
  }
955
- function v(e, t = gt) {
956
- return typeof e == "string" ? hn(e).slice(0, t) : "";
959
+ function I(e, t = At) {
960
+ return typeof e == "string" ? Sn(e).slice(0, t) : "";
957
961
  }
958
- function yn(e, t = gt) {
962
+ function _n(e, t = At) {
959
963
  return typeof e == "string" ? e.slice(0, t) : "";
960
964
  }
961
- function bn(e, t = "info") {
962
- return typeof e == "string" && mt.has(e) ? e : t;
965
+ function P(e, t = 200) {
966
+ return I(e, t);
967
+ }
968
+ function Tn(e, t = "info") {
969
+ return typeof e == "string" && bt.has(e) ? e : t;
963
970
  }
964
- function as(e, t = () => {
971
+ function ds(e, t = () => {
965
972
  }) {
966
973
  if (!Array.isArray(e)) return [];
967
974
  const n = [];
968
975
  for (const r of e) {
969
- if (n.length >= De) {
970
- t(`more than ${De} blocks; the rest was dropped`);
976
+ if (n.length >= Ke) {
977
+ t(`more than ${Ke} blocks; the rest was dropped`);
971
978
  break;
972
979
  }
973
980
  if (!r || typeof r != "object") continue;
974
981
  const o = r;
975
- if (!dn.has(o.type)) {
982
+ if (!gn.has(o.type)) {
976
983
  t(`unknown block type ${String(o.type)}`);
977
984
  continue;
978
985
  }
979
986
  const i = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
980
987
  switch (o.type) {
981
988
  case "heading": {
982
- const s = v(o.text);
989
+ const s = I(o.text);
983
990
  if (!s) {
984
991
  t("a heading without text");
985
992
  continue;
@@ -989,7 +996,7 @@ function as(e, t = () => {
989
996
  break;
990
997
  }
991
998
  case "paragraph": {
992
- const s = v(o.text);
999
+ const s = I(o.text);
993
1000
  if (!s) {
994
1001
  t("a paragraph without text");
995
1002
  continue;
@@ -998,7 +1005,7 @@ function as(e, t = () => {
998
1005
  break;
999
1006
  }
1000
1007
  case "quote": {
1001
- const s = v(o.text);
1008
+ const s = I(o.text);
1002
1009
  if (!s) {
1003
1010
  t("a quote without text");
1004
1011
  continue;
@@ -1007,7 +1014,7 @@ function as(e, t = () => {
1007
1014
  break;
1008
1015
  }
1009
1016
  case "code": {
1010
- const s = yn(o.text);
1017
+ const s = _n(o.text);
1011
1018
  if (!s) {
1012
1019
  t("a code block without text");
1013
1020
  continue;
@@ -1021,15 +1028,15 @@ function as(e, t = () => {
1021
1028
  break;
1022
1029
  case "list": {
1023
1030
  const s = Array.isArray(o.items) ? o.items : [], a = [];
1024
- for (const d of s) {
1025
- if (a.length >= $e) {
1026
- t(`more than ${$e} list items`);
1031
+ for (const u of s) {
1032
+ if (a.length >= Fe) {
1033
+ t(`more than ${Fe} list items`);
1027
1034
  break;
1028
1035
  }
1029
- const p = v(d?.text);
1030
- if (!p) continue;
1031
- const c = v(d?.lead, 200);
1032
- a.push(c ? { lead: c, text: p } : { text: p });
1036
+ const d = I(u?.text);
1037
+ if (!d) continue;
1038
+ const c = I(u?.lead, 200);
1039
+ a.push(c ? { lead: c, text: d } : { text: d });
1033
1040
  }
1034
1041
  if (a.length === 0) {
1035
1042
  t("a list without usable items");
@@ -1042,48 +1049,48 @@ function as(e, t = () => {
1042
1049
  case "table": {
1043
1050
  const s = Array.isArray(o.columns) ? o.columns : [], a = [];
1044
1051
  for (const c of s) {
1045
- if (a.length >= Pe) {
1046
- t(`more than ${Pe} table columns`);
1052
+ if (a.length >= He) {
1053
+ t(`more than ${He} table columns`);
1047
1054
  break;
1048
1055
  }
1049
- const h = v(c?.label, oe), A = c?.align === "right" ? "right" : void 0;
1050
- a.push(A ? { label: h, align: A } : { label: h });
1056
+ const h = I(c?.label, X), m = c?.align === "right" ? "right" : void 0;
1057
+ a.push(m ? { label: h, align: m } : { label: h });
1051
1058
  }
1052
1059
  if (a.length === 0) {
1053
1060
  t("a table without columns");
1054
1061
  continue;
1055
1062
  }
1056
- const l = Array.isArray(o.rows) ? o.rows : [], d = [];
1063
+ const l = Array.isArray(o.rows) ? o.rows : [], u = [];
1057
1064
  for (const c of l) {
1058
- if (d.length >= Le) {
1059
- t(`more than ${Le} table rows`);
1065
+ if (u.length >= Be) {
1066
+ t(`more than ${Be} table rows`);
1060
1067
  break;
1061
1068
  }
1062
1069
  const h = Array.isArray(c) ? c : [];
1063
- d.push(a.map((A, E) => v(h[E], oe)));
1070
+ u.push(a.map((m, E) => I(h[E], X)));
1064
1071
  }
1065
- const p = v(o.caption, oe);
1072
+ const d = I(o.caption, X);
1066
1073
  n.push({
1067
1074
  ...i,
1068
1075
  type: "table",
1069
1076
  columns: a,
1070
- rows: d,
1071
- ...p ? { caption: p } : {}
1077
+ rows: u,
1078
+ ...d ? { caption: d } : {}
1072
1079
  });
1073
1080
  break;
1074
1081
  }
1075
1082
  case "kpi": {
1076
1083
  const s = Array.isArray(o.items) ? o.items : [], a = [];
1077
1084
  for (const l of s) {
1078
- if (a.length >= Ue) {
1079
- t(`more than ${Ue} kpi items`);
1085
+ if (a.length >= je) {
1086
+ t(`more than ${je} kpi items`);
1080
1087
  break;
1081
1088
  }
1082
- const d = v(l?.value, 40), p = v(l?.label, 80);
1083
- if (!d || !p) continue;
1089
+ const u = I(l?.value, 40), d = I(l?.label, 80);
1090
+ if (!u || !d) continue;
1084
1091
  const c = l?.tone;
1085
1092
  a.push(
1086
- typeof c == "string" && mt.has(c) ? { value: d, label: p, tone: c } : { value: d, label: p }
1093
+ typeof c == "string" && bt.has(c) ? { value: u, label: d, tone: c } : { value: u, label: d }
1087
1094
  );
1088
1095
  }
1089
1096
  if (a.length === 0) {
@@ -1093,17 +1100,84 @@ function as(e, t = () => {
1093
1100
  n.push({ ...i, type: "kpi", items: a });
1094
1101
  break;
1095
1102
  }
1103
+ case "image": {
1104
+ const s = typeof o.url == "string" ? o.url.trim() : "";
1105
+ if (!s || !Te(s)) {
1106
+ t("an image without a usable url");
1107
+ continue;
1108
+ }
1109
+ const a = I(o.alt, 200), l = I(o.caption, X);
1110
+ n.push({
1111
+ ...i,
1112
+ type: "image",
1113
+ url: s,
1114
+ ...a ? { alt: a } : {},
1115
+ ...l ? { caption: l } : {}
1116
+ });
1117
+ break;
1118
+ }
1119
+ case "letterhead": {
1120
+ const s = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
+ for (const d of s) {
1122
+ if (a.length >= We) {
1123
+ t(`more than ${We} letterhead fields`);
1124
+ break;
1125
+ }
1126
+ const c = d, h = typeof c?.key == "string" ? c.key.slice(0, 48) : "", m = P(c?.value);
1127
+ if (!h || !m) continue;
1128
+ const E = P(c?.label, 80);
1129
+ a.push(E ? { key: h, label: E, value: m } : { key: h, value: m });
1130
+ }
1131
+ const u = (Array.isArray(o.recipient) ? o.recipient : []).slice(0, hn).map((d) => P(d)).filter(Boolean);
1132
+ if (a.length === 0 && u.length === 0) {
1133
+ t("a letterhead without fields or recipient");
1134
+ continue;
1135
+ }
1136
+ n.push({
1137
+ ...i,
1138
+ type: "letterhead",
1139
+ fields: a,
1140
+ ...u.length > 0 ? { recipient: u } : {}
1141
+ });
1142
+ break;
1143
+ }
1144
+ case "totals": {
1145
+ const s = (u) => {
1146
+ const d = Array.isArray(u) ? u : [], c = [];
1147
+ for (const h of d) {
1148
+ if (c.length >= Ge) {
1149
+ t(`more than ${Ge} totals rows`);
1150
+ break;
1151
+ }
1152
+ const m = h, E = P(m?.label), g = P(m?.amount, 40);
1153
+ !E || !g || c.push(
1154
+ m?.emphasis === !0 ? { label: E, amount: g, emphasis: !0 } : { label: E, amount: g }
1155
+ );
1156
+ }
1157
+ return c;
1158
+ }, a = s(o.rows);
1159
+ if (a.length === 0) {
1160
+ t("a totals block without usable rows");
1161
+ continue;
1162
+ }
1163
+ const l = s(o.taxRows);
1164
+ n.push({ ...i, type: "totals", rows: a, ...l.length > 0 ? { taxRows: l } : {} });
1165
+ break;
1166
+ }
1167
+ case "pagebreak":
1168
+ n.push({ ...i, type: "pagebreak" });
1169
+ break;
1096
1170
  case "callout": {
1097
- const s = v(o.text);
1171
+ const s = I(o.text);
1098
1172
  if (!s) {
1099
1173
  t("a callout without text");
1100
1174
  continue;
1101
1175
  }
1102
- const a = v(o.title, 200);
1176
+ const a = I(o.title, 200);
1103
1177
  n.push({
1104
1178
  ...i,
1105
1179
  type: "callout",
1106
- tone: bn(o.tone),
1180
+ tone: Tn(o.tone),
1107
1181
  ...a ? { title: a } : {},
1108
1182
  text: s
1109
1183
  });
@@ -1113,28 +1187,28 @@ function as(e, t = () => {
1113
1187
  }
1114
1188
  return n;
1115
1189
  }
1116
- function cs(e) {
1190
+ function fs(e) {
1117
1191
  return JSON.stringify(e).length;
1118
1192
  }
1119
- function ls(e) {
1193
+ function ps(e) {
1120
1194
  return {
1121
1195
  blocks: e.length,
1122
1196
  types: e.map((t) => t.type),
1123
1197
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
1124
1198
  };
1125
1199
  }
1126
- function Fe(e) {
1200
+ function Xe(e) {
1127
1201
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1128
1202
  }
1129
- function Be(e, t, n) {
1203
+ function oe(e, t, n) {
1130
1204
  const r = e.map((o, i) => n?.[i] === "right" ? "---:" : "---");
1131
1205
  return [
1132
- `| ${e.map(Fe).join(" | ")} |`,
1206
+ `| ${e.map(Xe).join(" | ")} |`,
1133
1207
  `| ${r.join(" | ")} |`,
1134
- ...t.map((o) => `| ${o.map(Fe).join(" | ")} |`)
1208
+ ...t.map((o) => `| ${o.map(Xe).join(" | ")} |`)
1135
1209
  ];
1136
1210
  }
1137
- function An(e) {
1211
+ function In(e) {
1138
1212
  switch (e.type) {
1139
1213
  case "heading":
1140
1214
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -1152,7 +1226,7 @@ function An(e) {
1152
1226
  return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
1153
1227
  });
1154
1228
  case "table": {
1155
- const t = Be(
1229
+ const t = oe(
1156
1230
  e.columns.map((n) => n.label),
1157
1231
  e.rows,
1158
1232
  e.columns.map((n) => n.align ?? "left")
@@ -1160,19 +1234,41 @@ function An(e) {
1160
1234
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
1161
1235
  }
1162
1236
  case "kpi":
1163
- return Be(
1237
+ return oe(
1164
1238
  e.items.map((t) => t.value),
1165
1239
  [e.items.map((t) => t.label)]
1166
1240
  );
1167
1241
  case "callout":
1168
1242
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1243
+ case "image": {
1244
+ const t = `![${e.alt ?? ""}](${e.url})`;
1245
+ return e.caption ? [t, "", `*${e.caption}*`] : [t];
1246
+ }
1247
+ case "letterhead": {
1248
+ const t = [...e.recipient ?? []];
1249
+ t.length > 0 && e.fields.length > 0 && t.push("");
1250
+ for (const n of e.fields)
1251
+ t.push(n.label ? `**${n.label}:** ${n.value}` : n.value);
1252
+ return t.map((n, r) => r < t.length - 1 ? `${n} ` : n);
1253
+ }
1254
+ case "totals":
1255
+ return oe(
1256
+ ["", ""],
1257
+ [...e.rows, ...e.taxRows ?? []].map((t) => [
1258
+ t.emphasis ? `**${t.label}**` : t.label,
1259
+ t.emphasis ? `**${t.amount}**` : t.amount
1260
+ ]),
1261
+ ["left", "right"]
1262
+ );
1263
+ case "pagebreak":
1264
+ return ["---"];
1169
1265
  }
1170
1266
  }
1171
- function us(e, t) {
1267
+ function ms(e, t) {
1172
1268
  const n = [], r = e.some((o) => o.type === "heading" && o.level === 1);
1173
1269
  t && !r && n.push(`# ${t}`);
1174
1270
  for (const o of e) {
1175
- const i = An(o);
1271
+ const i = In(o);
1176
1272
  i.length > 0 && n.push(i.join(`
1177
1273
  `));
1178
1274
  }
@@ -1181,45 +1277,45 @@ function us(e, t) {
1181
1277
  `)}
1182
1278
  `;
1183
1279
  }
1184
- const yt = (e) => `user:${e}`, bt = (e) => `team:${e}`;
1185
- function ds(e) {
1280
+ const Et = (e) => `user:${e}`, St = (e) => `team:${e}`;
1281
+ function hs(e) {
1186
1282
  const t = /* @__PURE__ */ new Set();
1187
1283
  for (const n of e ?? [])
1188
- n?.id && (n.kind === "user" && t.add(yt(n.id)), n.kind === "team" && t.add(bt(n.id)));
1284
+ n?.id && (n.kind === "user" && t.add(Et(n.id)), n.kind === "team" && t.add(St(n.id)));
1189
1285
  return [...t].sort();
1190
1286
  }
1191
- function fs(e, t) {
1192
- return [yt(e), ...t.map(bt)];
1287
+ function gs(e, t) {
1288
+ return [Et(e), ...t.map(St)];
1193
1289
  }
1194
- function ps(e) {
1290
+ function ys(e) {
1195
1291
  const t = /* @__PURE__ */ new Set();
1196
1292
  for (const n of e ?? [])
1197
1293
  n?.kind && t.add(n.kind);
1198
1294
  return [...t];
1199
1295
  }
1200
- const En = ["done", "escalated"], ms = ["open", "waiting"];
1201
- function gs(e) {
1202
- return En.includes(e);
1296
+ const wn = ["done", "escalated"], bs = ["open", "waiting"];
1297
+ function As(e) {
1298
+ return wn.includes(e);
1203
1299
  }
1204
- const Sn = "assignment";
1205
- function hs(e) {
1206
- return `${Sn}:${e}`;
1300
+ const Mn = "assignment";
1301
+ function Es(e) {
1302
+ return `${Mn}:${e}`;
1207
1303
  }
1208
- function ys(e, t, n, r) {
1304
+ function Ss(e, t, n, r) {
1209
1305
  if (e.direction === "inbound") return !0;
1210
1306
  if (e.author?.type === "user" && e.author.id === t) return !1;
1211
1307
  const o = e.payload?.mentions;
1212
1308
  return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
1213
1309
  }
1214
- function bs(e) {
1310
+ function _s(e) {
1215
1311
  const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
1216
1312
  return !o || !t || t !== r ? !1 : n !== r;
1217
1313
  }
1218
- function As(e) {
1314
+ function Ts(e) {
1219
1315
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1220
1316
  }
1221
- const _n = 12;
1222
- function Es(e, t, n = _n) {
1317
+ const kn = 12;
1318
+ function Is(e, t, n = kn) {
1223
1319
  const r = t + 1;
1224
1320
  return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
1225
1321
  status: "escalated",
@@ -1233,39 +1329,39 @@ function Es(e, t, n = _n) {
1233
1329
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1234
1330
  };
1235
1331
  }
1236
- const Ss = /* @__PURE__ */ new Set(["mail", "message"]);
1237
- function Tn(e, t) {
1332
+ const ws = /* @__PURE__ */ new Set(["mail", "message"]);
1333
+ function vn(e, t) {
1238
1334
  const n = e.settings?.signatures?.[t];
1239
1335
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1240
1336
  }
1241
- function _s(e, t, n, r = "html") {
1337
+ function Ms(e, t, n, r = "html") {
1242
1338
  if (!e) return n;
1243
- const o = Tn(e, t);
1339
+ const o = vn(e, t);
1244
1340
  return o ? `${n}${r === "text" ? `
1245
1341
 
1246
1342
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1247
1343
  }
1248
- function Ts(e) {
1344
+ function ks(e) {
1249
1345
  return e.endpoints ?? [];
1250
1346
  }
1251
- const wn = 36e5, In = 864e5, R = -1 / 0, ws = (e) => e.score > R, X = {
1347
+ const On = 36e5, Cn = 864e5, D = -1 / 0, vs = (e) => e.score > D, q = {
1252
1348
  urgent: 40,
1253
1349
  high: 25,
1254
1350
  normal: 10,
1255
1351
  low: 0
1256
1352
  };
1257
- function Is(e) {
1353
+ function Os(e) {
1258
1354
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1259
1355
  }
1260
- const Mn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, At = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1261
- function kn(e, t) {
1262
- return !!(e && Mn.test(e) || t && At.test(t));
1356
+ const Nn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, _t = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1357
+ function xn(e, t) {
1358
+ return !!(e && Nn.test(e) || t && _t.test(t));
1263
1359
  }
1264
- const vn = 3, On = 600;
1265
- function Ms(e, t) {
1266
- return e >= vn || t >= On;
1360
+ const Rn = 3, Dn = 600;
1361
+ function Cs(e, t) {
1362
+ return e >= Rn || t >= Dn;
1267
1363
  }
1268
- const Cn = [
1364
+ const $n = [
1269
1365
  "list-unsubscribe",
1270
1366
  "list-unsubscribe-post",
1271
1367
  "list-id",
@@ -1275,93 +1371,93 @@ const Cn = [
1275
1371
  "feedback-id",
1276
1372
  "x-mailer"
1277
1373
  ];
1278
- function ks(e) {
1374
+ function Ns(e) {
1279
1375
  const t = {};
1280
1376
  for (const n of e) {
1281
1377
  const r = n.name?.toLowerCase();
1282
- r && n.value !== void 0 && Cn.includes(r) && (t[r] = n.value);
1378
+ r && n.value !== void 0 && $n.includes(r) && (t[r] = n.value);
1283
1379
  }
1284
1380
  return t;
1285
1381
  }
1286
- const Nn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, xn = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1287
- function vs(e) {
1382
+ const Ln = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Pn = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1383
+ function xs(e) {
1288
1384
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1289
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && Nn.test(n))
1385
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && Ln.test(n))
1290
1386
  return "automated";
1291
1387
  const o = t.precedence?.toLowerCase();
1292
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && At.test(e.body) || n && xn.test(n))
1388
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && _t.test(e.body) || n && Pn.test(n))
1293
1389
  return "marketing";
1294
1390
  }
1295
- function Rn(e, t) {
1391
+ function Un(e, t) {
1296
1392
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1297
1393
  }
1298
- const Dn = ["open"], $n = 1e3, Ln = {
1394
+ const Kn = ["open"], Fn = 1e3, Bn = {
1299
1395
  urgent: 1,
1300
1396
  high: 4,
1301
1397
  normal: 8,
1302
1398
  low: 24
1303
- }, Pn = 72;
1304
- function Un(e) {
1305
- return e.lastActivityAt ?? (e.createdAt ? new Date(nn(e)).getTime() : 0);
1399
+ }, Hn = 72;
1400
+ function jn(e) {
1401
+ return e.lastActivityAt ?? (e.createdAt ? new Date(an(e)).getTime() : 0);
1306
1402
  }
1307
- function Kn(e, t) {
1308
- return Fn(t.remindersById?.[e.id], e, t.now);
1403
+ function Wn(e, t) {
1404
+ return Gn(t.remindersById?.[e.id], e, t.now);
1309
1405
  }
1310
- function Fn(e, t, n) {
1406
+ function Gn(e, t, n) {
1311
1407
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1312
1408
  }
1313
- const Et = (e) => qt(e) === "outbound_message", St = (e) => Dn.includes(e);
1314
- function Ee(e, t) {
1315
- return Math.max(0, (t - Un(e)) / wn);
1409
+ const Tt = (e) => en(e) === "outbound_message", It = (e) => Kn.includes(e);
1410
+ function Ie(e, t) {
1411
+ return Math.max(0, (t - jn(e)) / On);
1316
1412
  }
1317
- function Bn(e, t) {
1413
+ function Vn(e, t) {
1318
1414
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1319
- return typeof n == "number" && n > 0 ? n : Ln[e.priority ?? "normal"];
1415
+ return typeof n == "number" && n > 0 ? n : Bn[e.priority ?? "normal"];
1320
1416
  }
1321
- function Os(e) {
1417
+ function Rs(e) {
1322
1418
  const t = {};
1323
1419
  for (const n of e)
1324
1420
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1325
1421
  return t;
1326
1422
  }
1327
- function Cs(e, t, n) {
1328
- return !St(e.status) || e.firstResponseAt ? !1 : Ee(e, t) > Bn(e, n);
1423
+ function Ds(e, t, n) {
1424
+ return !It(e.status) || e.firstResponseAt ? !1 : Ie(e, t) > Vn(e, n);
1329
1425
  }
1330
- function Hn(e, t) {
1426
+ function Xn(e, t) {
1331
1427
  const n = e.lastActivityPreview;
1332
- return n?.direction !== "outbound" || !Et(n.type) ? !1 : Ee(e, t) < Pn;
1428
+ return n?.direction !== "outbound" || !Tt(n.type) ? !1 : Ie(e, t) < Hn;
1333
1429
  }
1334
- function Ns(e, t) {
1335
- if (!St(e.status)) return { score: R, reasons: [] };
1336
- if (e.snoozedTill && e.snoozedTill > t.now) return { score: R, reasons: [] };
1337
- if (Hn(e, t.now)) return { score: R, reasons: [] };
1338
- if (Kn(e, t)) return { score: R, reasons: [] };
1430
+ function $s(e, t) {
1431
+ if (!It(e.status)) return { score: D, reasons: [] };
1432
+ if (e.snoozedTill && e.snoozedTill > t.now) return { score: D, reasons: [] };
1433
+ if (Xn(e, t.now)) return { score: D, reasons: [] };
1434
+ if (Wn(e, t)) return { score: D, reasons: [] };
1339
1435
  let n = 0;
1340
1436
  const r = [], o = e.priority ?? "normal";
1341
- X[o] > 0 && (n += X[o], r.push(`priority:${o}`)), Rn(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1342
- const i = Ee(e, t.now);
1437
+ q[o] > 0 && (n += q[o], r.push(`priority:${o}`)), Un(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1438
+ const i = Ie(e, t.now);
1343
1439
  if (i > 0) {
1344
1440
  const l = Math.min(i * 2, 30);
1345
1441
  n += l, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
1346
1442
  }
1347
1443
  const s = e.lastActivityPreview;
1348
- return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Et(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") || kn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= $n, r.push("bulk")), { score: n, reasons: r };
1444
+ return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Tt(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") || xn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Fn, r.push("bulk")), { score: n, reasons: r };
1349
1445
  }
1350
- const xs = (e) => !!e.assignedUserId || !!e.assignedInboxId, Rs = (e) => e.status === "closed", Ds = (e) => ({
1446
+ const Ls = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ps = (e) => e.status === "closed", Us = (e) => ({
1351
1447
  urgent: 10,
1352
1448
  high: 5,
1353
1449
  normal: 2,
1354
1450
  low: 1
1355
- })[e.priority] || 0, $s = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1356
- function Ls(e, t) {
1451
+ })[e.priority] || 0, Ks = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1452
+ function Fs(e, t) {
1357
1453
  const n = e.labels ?? [];
1358
1454
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1359
1455
  }
1360
- function Ps(e, t, n) {
1456
+ function Bs(e, t, n) {
1361
1457
  const r = e.translations ?? [];
1362
1458
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
1363
1459
  }
1364
- const He = [
1460
+ const ze = [
1365
1461
  { code: "nl", label: "Nederlands", english: "Dutch" },
1366
1462
  { code: "en", label: "English", english: "English" },
1367
1463
  { code: "de", label: "Deutsch", english: "German" },
@@ -1376,36 +1472,36 @@ const He = [
1376
1472
  { code: "fi", label: "Suomi", english: "Finnish" },
1377
1473
  { code: "tr", label: "Türkçe", english: "Turkish" }
1378
1474
  ];
1379
- function _t(e) {
1475
+ function wt(e) {
1380
1476
  const t = (e ?? "").toLowerCase();
1381
- return He.find((n) => n.code === t) ?? He.find((n) => n.code === t.split("-")[0]);
1477
+ return ze.find((n) => n.code === t) ?? ze.find((n) => n.code === t.split("-")[0]);
1382
1478
  }
1383
- function Us(e) {
1384
- return _t(e)?.label ?? e;
1479
+ function Hs(e) {
1480
+ return wt(e)?.label ?? e;
1385
1481
  }
1386
- function Ks(e) {
1387
- const t = _t(e);
1482
+ function js(e) {
1483
+ const t = wt(e);
1388
1484
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1389
1485
  }
1390
- const Tt = 3;
1391
- function jn(e, t) {
1486
+ const Mt = 3;
1487
+ function zn(e, t) {
1392
1488
  const n = /* @__PURE__ */ new Set();
1393
1489
  let r = 1, o = t.get(e)?.parentId;
1394
1490
  for (; o; ) {
1395
- if (n.has(o) || (n.add(o), r++, r > Tt + 1)) return 1 / 0;
1491
+ if (n.has(o) || (n.add(o), r++, r > Mt + 1)) return 1 / 0;
1396
1492
  o = t.get(o)?.parentId;
1397
1493
  }
1398
1494
  return r;
1399
1495
  }
1400
- function Fs(e, t, n) {
1496
+ function Ws(e, t, n) {
1401
1497
  if (!e) return !0;
1402
1498
  if (e === t) return !1;
1403
1499
  const r = new Map(n.map((s) => [s.id, s]));
1404
- if (!r.has(e) || t && Gn(e, t, r)) return !1;
1405
- const o = jn(e, r), i = t ? wt(t, n) : 1;
1406
- return o + i <= Tt;
1500
+ if (!r.has(e) || t && Yn(e, t, r)) return !1;
1501
+ const o = zn(e, r), i = t ? kt(t, n) : 1;
1502
+ return o + i <= Mt;
1407
1503
  }
1408
- function Gn(e, t, n) {
1504
+ function Yn(e, t, n) {
1409
1505
  const r = /* @__PURE__ */ new Set();
1410
1506
  let o = n.get(e)?.parentId;
1411
1507
  for (; o; ) {
@@ -1415,44 +1511,44 @@ function Gn(e, t, n) {
1415
1511
  }
1416
1512
  return !1;
1417
1513
  }
1418
- function wt(e, t, n = /* @__PURE__ */ new Set()) {
1514
+ function kt(e, t, n = /* @__PURE__ */ new Set()) {
1419
1515
  if (n.has(e)) return 1;
1420
1516
  n.add(e);
1421
1517
  const r = t.filter((o) => o.parentId === e);
1422
- return r.length ? 1 + Math.max(...r.map((o) => wt(o.id, t, n))) : 1;
1518
+ return r.length ? 1 + Math.max(...r.map((o) => kt(o.id, t, n))) : 1;
1423
1519
  }
1424
- const Wn = "en";
1425
- function Vn(e) {
1426
- return e.defaultLocale || e.locale || Wn;
1520
+ const qn = "en";
1521
+ function Jn(e) {
1522
+ return e.defaultLocale || e.locale || qn;
1427
1523
  }
1428
- function Bs(e) {
1524
+ function Gs(e) {
1429
1525
  const t = /* @__PURE__ */ new Set(), n = [];
1430
- for (const r of [Vn(e), ...e.locales ?? []])
1526
+ for (const r of [Jn(e), ...e.locales ?? []])
1431
1527
  !r || t.has(r) || (t.add(r), n.push(r));
1432
1528
  return n;
1433
1529
  }
1434
- function Hs(e, t, n) {
1530
+ function Vs(e, t, n) {
1435
1531
  const r = e.translations ?? [];
1436
1532
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
1437
1533
  }
1438
- const je = ["lookup", "condition", "parallel", "for-each"];
1439
- function Ge(e) {
1534
+ const Ye = ["lookup", "condition", "parallel", "for-each"];
1535
+ function qe(e) {
1440
1536
  for (const t of e) {
1441
- if (!je.includes(t.type))
1442
- return `staptype "${t.type}" mag niet meelezen (alleen ${je.join(", ")})`;
1537
+ if (!Ye.includes(t.type))
1538
+ return `staptype "${t.type}" mag niet meelezen (alleen ${Ye.join(", ")})`;
1443
1539
  if (t.type === "parallel")
1444
1540
  for (const n of t.branches ?? []) {
1445
- const r = Ge(n);
1541
+ const r = qe(n);
1446
1542
  if (r) return r;
1447
1543
  }
1448
1544
  if (t.type === "for-each") {
1449
- const n = Ge(t.body ?? []);
1545
+ const n = qe(t.body ?? []);
1450
1546
  if (n) return n;
1451
1547
  }
1452
1548
  }
1453
1549
  return null;
1454
1550
  }
1455
- function zn(e, t) {
1551
+ function Zn(e, t) {
1456
1552
  switch (e.kind) {
1457
1553
  case "org":
1458
1554
  return !0;
@@ -1462,22 +1558,22 @@ function zn(e, t) {
1462
1558
  return e.userId === t.userId;
1463
1559
  }
1464
1560
  }
1465
- function js(e, t) {
1466
- return e.filter((n) => n.enabled && zn(n.ownerScope, t));
1561
+ function Xs(e, t) {
1562
+ return e.filter((n) => n.enabled && Zn(n.ownerScope, t));
1467
1563
  }
1468
- function Gs(e) {
1564
+ function zs(e) {
1469
1565
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1470
1566
  }
1471
- function Ws(e) {
1567
+ function Ys(e) {
1472
1568
  return `mcp__${e}__`;
1473
1569
  }
1474
- const Vs = 1e3, zs = 2e3, Ys = 500, Xs = 12e3, qs = 4e3, Yn = ["contact", "company", "work_item"];
1475
- function Js(e) {
1570
+ const qs = 1e3, Js = 2e3, Zs = 500, Qs = 12e3, ea = 4e3, Qn = ["contact", "company", "work_item"];
1571
+ function ta(e) {
1476
1572
  if (!e) return !1;
1477
1573
  const t = e.slice(0, e.indexOf(":"));
1478
- return Yn.includes(t);
1574
+ return Qn.includes(t);
1479
1575
  }
1480
- const Zs = "onboarding-source", Qs = ["support", "billing", "availability", "sales", "onboarding"], ea = ["keep", "replace"], Se = [
1576
+ const na = "onboarding-source", ra = ["support", "billing", "availability", "sales", "onboarding"], oa = ["keep", "replace"], we = [
1481
1577
  {
1482
1578
  key: "shift",
1483
1579
  label: "kind_shift",
@@ -1551,72 +1647,71 @@ const Zs = "onboarding-source", Qs = ["support", "billing", "availability", "sal
1551
1647
  absent: !0,
1552
1648
  icon: "party-popper"
1553
1649
  }
1554
- ], Xn = {
1650
+ ], er = {
1555
1651
  key: "unknown",
1556
1652
  label: "kind_unknown",
1557
1653
  capacity: !1,
1558
1654
  productive: !1,
1559
1655
  absent: !1
1560
1656
  };
1561
- function $(e, t = Se) {
1562
- return t.find((n) => n.key === e) ?? { ...Xn, key: e };
1657
+ function x(e, t = we) {
1658
+ return t.find((n) => n.key === e) ?? { ...er, key: e };
1563
1659
  }
1564
- function q(e) {
1660
+ function H(e) {
1565
1661
  return e === "published" || e === "approved";
1566
1662
  }
1567
- function qn(e, t, n = Se) {
1663
+ function vt(e, t, n = we) {
1568
1664
  if (e.workstreamId !== t) return !1;
1569
- const r = $(e.kindKey, n);
1665
+ const r = x(e.kindKey, n);
1570
1666
  return r.absent ? !1 : r.productive || r.capacity;
1571
1667
  }
1572
- function ta(e, t = Se) {
1573
- if (!e.userId || !q(e.status)) return !1;
1574
- const n = $(e.kindKey, t);
1668
+ function ia(e, t = we) {
1669
+ if (!e.userId || !H(e.status)) return !1;
1670
+ const n = x(e.kindKey, t);
1575
1671
  return n.capacity || n.productive || n.absent;
1576
1672
  }
1577
- const Jn = 864e5;
1578
- function Zn(e, t) {
1579
- const n = new Date(e), r = new Date(t);
1580
- return n.setHours(12, 0, 0, 0), r.setHours(12, 0, 0, 0), Math.round((r.getTime() - n.getTime()) / Jn);
1673
+ const tr = 864e5;
1674
+ function nr(e, t) {
1675
+ return Math.round((t - e) / tr);
1581
1676
  }
1582
- function It(e, t) {
1677
+ function Ot(e, t) {
1583
1678
  const n = e.cycleMinutes.length;
1584
- return n === 0 ? 0 : (Zn(e.anchor, t) % n + n) % n;
1679
+ return n === 0 ? 0 : (nr(e.anchor, t) % n + n) % n;
1585
1680
  }
1586
- function Mt(e, t) {
1587
- return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[It(e, t)] ?? 0;
1681
+ function Ct(e, t) {
1682
+ return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[Ot(e, t)] ?? 0;
1588
1683
  }
1589
- function kt(e, t) {
1590
- return e.startTimes?.[It(e, t)];
1684
+ function Nt(e, t) {
1685
+ return e.startTimes?.[Ot(e, t)];
1591
1686
  }
1592
- function vt(e, t, n, r) {
1687
+ function xt(e, t, n, r) {
1593
1688
  const o = e.filter(
1594
1689
  (a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
1595
- ), i = (a) => a.sort((l, d) => (d.effectiveFrom ?? 0) - (l.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
1690
+ ), i = (a) => a.sort((l, u) => (u.effectiveFrom ?? 0) - (l.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
1596
1691
  return s || i(
1597
1692
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
1598
1693
  );
1599
1694
  }
1600
- function Qn(e, t, n) {
1695
+ function rr(e, t, n) {
1601
1696
  return e.filter(
1602
1697
  (r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
1603
1698
  ).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
1604
1699
  }
1605
- const We = 864e5;
1606
- function er(e) {
1607
- const t = new Date(e);
1608
- return t.setHours(0, 0, 0, 0), t.getTime();
1700
+ const fe = 864e5;
1701
+ function or(e) {
1702
+ const t = Math.max(1, Math.round((e.to - e.from) / fe));
1703
+ return Array.from({ length: t }, (n, r) => e.from + r * fe);
1609
1704
  }
1610
- function Ve(e, t, n, r) {
1705
+ function pe(e, t, n, r) {
1611
1706
  const o = Math.min(t, r) - Math.max(e, n);
1612
1707
  return o > 0 ? o / 1e3 : 0;
1613
1708
  }
1614
- const ze = { interval: 0, day: 1, week: 2 };
1615
- function na(e, t) {
1709
+ const Je = { interval: 0, day: 1, week: 2 };
1710
+ function sa(e, t) {
1616
1711
  const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
1617
- (c) => c.userId && q(c.status) && $(c.kindKey).capacity
1712
+ (c) => c.userId && H(c.status) && x(c.kindKey).capacity
1618
1713
  ), s = n.filter(
1619
- (c) => c.userId && q(c.status) && $(c.kindKey).absent
1714
+ (c) => c.userId && H(c.status) && x(c.kindKey).absent
1620
1715
  ), a = t.userIds ?? [
1621
1716
  .../* @__PURE__ */ new Set([
1622
1717
  ...i.map((c) => c.userId),
@@ -1624,261 +1719,286 @@ function na(e, t) {
1624
1719
  ...o.map((c) => c.userId)
1625
1720
  ])
1626
1721
  ].filter((c) => !!c), l = {};
1627
- let d = "interval";
1628
- const p = (c) => {
1629
- ze[c] > ze[d] && (d = c);
1722
+ let u = "interval";
1723
+ const d = (c) => {
1724
+ Je[c] > Je[u] && (u = c);
1630
1725
  };
1631
1726
  for (const c of a) {
1632
1727
  const h = t.teamIdsOf?.(c) ?? [];
1633
- let A = 0, E = 0, b = 0;
1634
- for (let u = er(e.from); u < e.to; u += We) {
1635
- const _ = Math.max(u, e.from), w = Math.min(u + We, e.to);
1636
- b++;
1637
- const C = i.filter((I) => I.userId === c).reduce((I, L) => I + Ve(L.start, L.end, _, w), 0);
1638
- if (C > 0) {
1639
- A += C;
1728
+ let m = 0, E = 0, g = 0;
1729
+ for (const f of or(e)) {
1730
+ const S = Math.max(f, e.from), N = Math.min(f + fe, e.to);
1731
+ g++;
1732
+ const O = i.filter((M) => M.userId === c).reduce((M, Ne) => M + pe(Ne.start, Ne.end, S, N), 0);
1733
+ if (O > 0) {
1734
+ m += O;
1640
1735
  continue;
1641
1736
  }
1642
- const k = vt(r, c, h, u), x = k ? Mt(k, u) : 0;
1643
- if (k && x > 0) {
1644
- A += x * 60, p(kt(k, u) ? "interval" : "day");
1737
+ const k = xt(r, c, h, f), C = k ? Ct(k, f) : 0;
1738
+ if (k && C > 0) {
1739
+ m += C * 60, d(Nt(k, f) ? "interval" : "day");
1645
1740
  continue;
1646
1741
  }
1647
1742
  k || E++;
1648
1743
  }
1649
1744
  if (E > 0) {
1650
- const u = Qn(o, c, e.from);
1651
- u && (A += u.weeklyMinutes * 60 * (E / 7), p("week"));
1745
+ const f = rr(o, c, e.from);
1746
+ f && (m += f.weeklyMinutes * 60 * (E / 7), d("week"));
1652
1747
  }
1653
- const T = s.filter((u) => u.userId === c).reduce(
1654
- (u, _) => u + Ve(_.start, _.end, e.from, e.to),
1748
+ const T = s.filter((f) => f.userId === c).reduce(
1749
+ (f, S) => f + pe(S.start, S.end, e.from, e.to),
1655
1750
  0
1656
- ), f = Math.max(0, A - T);
1657
- (f > 0 || b > 0) && (l[c] = f);
1751
+ ), p = Math.max(0, m - T);
1752
+ (p > 0 || g > 0) && (l[c] = p);
1658
1753
  }
1659
1754
  return {
1660
1755
  seconds: Object.values(l).reduce((c, h) => c + h, 0),
1661
- precision: d,
1756
+ precision: u,
1662
1757
  byUser: l
1663
1758
  };
1664
1759
  }
1665
- function ra(e, t) {
1666
- const n = /* @__PURE__ */ new Map();
1667
- for (const s of e) {
1668
- const a = s.userId ?? null;
1669
- n.set(a, (n.get(a) ?? 0) + s.seconds);
1760
+ function aa(e, t) {
1761
+ if (!e.some((a) => a.userId)) return [];
1762
+ const n = "", r = /* @__PURE__ */ new Map();
1763
+ for (const a of e) {
1764
+ const l = a.userId ?? n;
1765
+ r.set(l, (r.get(l) ?? 0) + a.seconds);
1670
1766
  }
1671
- const o = [.../* @__PURE__ */ new Set([
1767
+ const i = [.../* @__PURE__ */ new Set([
1672
1768
  ...Object.keys(t.byUser),
1673
- ...[...n.keys()].filter((s) => s !== null)
1674
- ])].map((s) => {
1675
- const a = n.get(s) ?? 0, l = t.byUser[s] ?? 0;
1769
+ ...[...r.keys()].filter((a) => a !== n)
1770
+ ])].map((a) => {
1771
+ const l = r.get(a) ?? 0, u = t.byUser[a] ?? 0;
1676
1772
  return {
1677
- userId: s,
1678
- requiredSeconds: a,
1679
- capacitySeconds: l,
1680
- netSeconds: l - a
1773
+ userId: a,
1774
+ requiredSeconds: l,
1775
+ capacitySeconds: u,
1776
+ netSeconds: u - l
1681
1777
  };
1682
1778
  });
1683
- o.sort((s, a) => s.netSeconds - a.netSeconds);
1684
- const i = n.get(null) ?? 0;
1685
- return i > 0 && o.push({ userId: null, requiredSeconds: i, capacitySeconds: 0, netSeconds: -i }), o;
1779
+ i.sort((a, l) => a.netSeconds - l.netSeconds);
1780
+ const s = r.get(n) ?? 0;
1781
+ return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
1782
+ }
1783
+ function ca(e, t, n, r) {
1784
+ const o = e.filter(
1785
+ (s) => s.userId && H(s.status) && !x(s.kindKey).absent
1786
+ ), i = Object.entries(r.byUser).map(
1787
+ ([s, a]) => {
1788
+ let l = 0, u = 0;
1789
+ for (const d of o) {
1790
+ if (d.userId !== s || x(d.kindKey).capacity && !d.workstreamId) continue;
1791
+ const c = pe(d.start, d.end, n.from, n.to);
1792
+ c <= 0 || (vt(d, t) ? l += c : u += c);
1793
+ }
1794
+ return {
1795
+ userId: s,
1796
+ capacitySeconds: a,
1797
+ onThisSeconds: l,
1798
+ elsewhereSeconds: u,
1799
+ freeSeconds: Math.max(0, a - l - u)
1800
+ };
1801
+ }
1802
+ );
1803
+ return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
1686
1804
  }
1687
- const oa = "demand-source", Ye = 1e3;
1688
- function tr(e, t) {
1805
+ const la = "demand-source", Ze = 1e3;
1806
+ function ir(e, t) {
1689
1807
  let n = 1;
1690
1808
  for (let r = 1; r <= e; r++)
1691
1809
  n = t * n / (r + t * n);
1692
1810
  return n;
1693
1811
  }
1694
- function nr(e, t) {
1812
+ function sr(e, t) {
1695
1813
  if (e <= 0) return 1;
1696
1814
  if (t <= 0) return 0;
1697
1815
  if (e <= t) return 1;
1698
- const n = tr(e, t), r = t / e;
1816
+ const n = ir(e, t), r = t / e;
1699
1817
  return n / (1 - r * (1 - n));
1700
1818
  }
1701
- function rr(e, t, n, r) {
1702
- return r <= 0 ? 1 : e <= t ? 0 : 1 - nr(e, t) * Math.exp(-(e - t) * n / r);
1819
+ function ar(e, t, n, r) {
1820
+ return r <= 0 ? 1 : e <= t ? 0 : 1 - sr(e, t) * Math.exp(-(e - t) * n / r);
1703
1821
  }
1704
- function or(e, t, n) {
1822
+ function cr(e, t, n) {
1705
1823
  return n <= 0 ? 0 : e * t / n;
1706
1824
  }
1707
- function ir(e, t, n, r) {
1825
+ function lr(e, t, n, r) {
1708
1826
  if (e <= 0 || t <= 0) return 0;
1709
- const o = or(e, t, n);
1827
+ const o = cr(e, t, n);
1710
1828
  if (o <= 0) return 0;
1711
1829
  const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
1712
- for (let a = Math.max(1, Math.ceil(o)); a <= Ye; a++)
1713
- if (!(a <= o) && !(rr(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
1830
+ for (let a = Math.max(1, Math.ceil(o)); a <= Ze; a++)
1831
+ if (!(a <= o) && !(ar(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
1714
1832
  return a;
1715
- return Ye;
1833
+ return Ze;
1716
1834
  }
1717
- const sr = 36e5, ar = 864e5;
1718
- function cr(e) {
1719
- return e === "day" ? ar : sr;
1835
+ const ur = 36e5, dr = 864e5;
1836
+ function fr(e) {
1837
+ return e === "day" ? dr : ur;
1720
1838
  }
1721
- function ia(e, t) {
1839
+ function ua(e, t) {
1722
1840
  return e.start < t.end && t.start < e.end;
1723
1841
  }
1724
1842
  function ie(e, t, n) {
1725
1843
  const r = Math.min(e.end, n) - Math.max(e.start, t);
1726
1844
  return r > 0 ? r / 1e3 : 0;
1727
1845
  }
1728
- function lr(e, t, n) {
1846
+ function pr(e, t, n) {
1729
1847
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
1730
1848
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
1731
1849
  const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
1732
1850
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
1733
- const a = ir(e.volume, r, n, t);
1851
+ const a = lr(e.volume, r, n, t);
1734
1852
  return { seconds: o, headcount: a * s };
1735
1853
  }
1736
1854
  return { seconds: o, headcount: o / n * s };
1737
1855
  }
1738
- function sa(e) {
1739
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = cr(s), l = a / 1e3, d = e.kinds, p = t.filter((b) => q(b.status)), c = p.filter((b) => qn(b, n, d)), h = p.filter((b) => $(b.kindKey, d).capacity), A = p.filter((b) => $(b.kindKey, d).absent), E = [];
1740
- for (let b = B(i.from, s); b < i.to; b += a) {
1741
- const T = b + a, f = F(b, s);
1742
- let u = 0;
1743
- for (const I of c) u += ie(I, b, T);
1744
- let _ = 0;
1745
- for (const I of h) _ += ie(I, b, T);
1746
- let w = 0;
1747
- for (const I of A) w += ie(I, b, T);
1748
- const C = o?.[f] ?? {}, k = lr(C, r, l), x = u / l;
1856
+ function da(e) {
1857
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = fr(s), l = a / 1e3, u = e.kinds, d = t.filter((g) => H(g.status)), c = d.filter((g) => vt(g, n, u)), h = d.filter((g) => x(g.kindKey, u).capacity), m = d.filter((g) => x(g.kindKey, u).absent), E = [];
1858
+ for (let g = B(i.from, s); g < i.to; g += a) {
1859
+ const T = g + a, p = F(g, s);
1860
+ let f = 0;
1861
+ for (const M of c) f += ie(M, g, T);
1862
+ let S = 0;
1863
+ for (const M of h) S += ie(M, g, T);
1864
+ let N = 0;
1865
+ for (const M of m) N += ie(M, g, T);
1866
+ const O = o?.[p] ?? {}, k = pr(O, r, l), C = f / l;
1749
1867
  E.push({
1750
- period: f,
1751
- forecastVolume: C.volume,
1868
+ period: p,
1869
+ forecastVolume: O.volume,
1752
1870
  requiredSeconds: k.seconds,
1753
1871
  requiredHeadcount: k.headcount,
1754
- scheduledSeconds: u,
1755
- scheduledHeadcount: x,
1756
- netHeadcount: x - k.headcount,
1757
- capacitySeconds: _,
1758
- absentSeconds: w
1872
+ scheduledSeconds: f,
1873
+ scheduledHeadcount: C,
1874
+ netHeadcount: C - k.headcount,
1875
+ capacitySeconds: S,
1876
+ absentSeconds: N
1759
1877
  });
1760
1878
  }
1761
1879
  return E;
1762
1880
  }
1763
- function ur(e, t) {
1881
+ function mr(e, t) {
1764
1882
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
1765
1883
  }
1766
- function aa(e, t, n) {
1767
- const r = ur(e, t);
1884
+ function fa(e, t, n) {
1885
+ const r = mr(e, t);
1768
1886
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
1769
1887
  }
1770
- function ca(e) {
1888
+ function pa(e) {
1771
1889
  return e.filter(
1772
1890
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
1773
1891
  );
1774
1892
  }
1775
- const dr = 36e5, de = 6048e5, fr = 8, pr = 0.5, mr = 2;
1776
- function gr(e) {
1893
+ const hr = 36e5, me = 6048e5, gr = 8, yr = 0.5, br = 2;
1894
+ function Ar(e) {
1777
1895
  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;
1778
1896
  return Date.UTC(t, n - 1, r, o);
1779
1897
  }
1780
- function hr(e, t, n) {
1898
+ function Er(e, t, n) {
1781
1899
  const r = [];
1782
1900
  for (let i = 0; i < n; i++) {
1783
- const s = t - i * de, a = s - de;
1784
- let l = 0, d = !1;
1785
- for (const [p, c] of e)
1786
- p >= a && p < s && (l += c, d = !0);
1787
- d && r.push(l);
1901
+ const s = t - i * me, a = s - me;
1902
+ let l = 0, u = !1;
1903
+ for (const [d, c] of e)
1904
+ d >= a && d < s && (l += c, u = !0);
1905
+ u && r.push(l);
1788
1906
  }
1789
1907
  if (r.length < 2) return 1;
1790
1908
  const o = r.reduce((i, s) => i + s, 0) / r.length;
1791
- return o <= 0 ? 1 : Math.min(mr, Math.max(pr, r[0] / o));
1909
+ return o <= 0 ? 1 : Math.min(br, Math.max(yr, r[0] / o));
1792
1910
  }
1793
- function yr(e, t) {
1911
+ function Sr(e, t) {
1794
1912
  if (!e?.length) return;
1795
1913
  let n;
1796
1914
  for (const r of e)
1797
1915
  t >= r.from && t < r.to && (n = r);
1798
1916
  return n;
1799
1917
  }
1800
- function la(e, t, n) {
1801
- const r = Math.max(1, n?.weeks ?? fr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
1918
+ function ma(e, t, n) {
1919
+ const r = Math.max(1, n?.weeks ?? gr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
1802
1920
  for (const l of e)
1803
- o.set(gr(l.period), l.value), i.add(l.period.slice(0, 10));
1804
- const s = hr(o, B(t.from, "hour"), r), a = [];
1805
- for (let l = B(t.from, "hour"); l < t.to; l += dr) {
1806
- let d = 0, p = 0;
1807
- for (let A = 1; A <= r; A++) {
1808
- const E = l - A * de, T = o.get(E) ?? (i.has(F(E, "day")) ? 0 : void 0);
1921
+ o.set(Ar(l.period), l.value), i.add(l.period.slice(0, 10));
1922
+ const s = Er(o, B(t.from, "hour"), r), a = [];
1923
+ for (let l = B(t.from, "hour"); l < t.to; l += hr) {
1924
+ let u = 0, d = 0;
1925
+ for (let m = 1; m <= r; m++) {
1926
+ const E = l - m * me, T = o.get(E) ?? (i.has(F(E, "day")) ? 0 : void 0);
1809
1927
  if (T === void 0) continue;
1810
- const f = r - A + 1;
1811
- d += T * f, p += f;
1928
+ const p = r - m + 1;
1929
+ u += T * p, d += p;
1812
1930
  }
1813
- let c = p > 0 ? d / p * s : 0;
1814
- const h = yr(n?.adjustments, l);
1931
+ let c = d > 0 ? u / d * s : 0;
1932
+ const h = Sr(n?.adjustments, l);
1815
1933
  h?.absoluteVolume !== void 0 ? c = h.absoluteVolume : h?.factor !== void 0 && (c *= h.factor), a.push({ period: F(l, "hour"), volume: c });
1816
1934
  }
1817
1935
  return a;
1818
1936
  }
1819
- const br = "schedule_entry", Ar = "workstream";
1820
- function ua(e) {
1821
- return `${br}:${e}`;
1937
+ const _r = "schedule_entry", Tr = "workstream";
1938
+ function ha(e) {
1939
+ return `${_r}:${e}`;
1822
1940
  }
1823
- function da(e) {
1824
- return `${Ar}:${e}`;
1941
+ function ga(e) {
1942
+ return `${Tr}:${e}`;
1825
1943
  }
1826
- const fe = 36e5, P = 864e5;
1827
- function Er(e, t) {
1828
- const n = t === "day" ? P : fe, r = [];
1944
+ const he = 36e5, L = 864e5;
1945
+ function Ir(e, t) {
1946
+ const n = t === "day" ? L : he, r = [];
1829
1947
  for (let o = B(e.from, t); o < e.to; o += n) r.push(o);
1830
1948
  return r;
1831
1949
  }
1832
- function Xe(e, t, n, r) {
1950
+ function Qe(e) {
1951
+ const t = Math.max(1, Math.round((e.to - e.from) / L));
1952
+ return Array.from({ length: t }, (n, r) => e.from + r * L);
1953
+ }
1954
+ function se(e, t, n, r) {
1833
1955
  const o = Math.min(t, r) - Math.max(e, n);
1834
1956
  return o > 0 ? o / 1e3 : 0;
1835
1957
  }
1836
- function fa(e, t, n = {}) {
1837
- const r = n.grain ?? "hour", o = Er(t, r), i = r === "day" ? P : fe, s = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && $(c.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, d = /* @__PURE__ */ new Set();
1958
+ function ya(e, t, n = {}) {
1959
+ const r = n.grain ?? "hour", o = Ir(t, r), i = r === "day" ? L : he, s = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && x(c.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, u = /* @__PURE__ */ new Set();
1838
1960
  for (const c of a)
1839
1961
  if (!(l && c.userId && !l.has(c.userId))) {
1840
1962
  for (const h of o) {
1841
- const A = Xe(c.start, c.end, h, h + i);
1842
- A > 0 && s.set(h, (s.get(h) ?? 0) + A);
1963
+ const m = se(c.start, c.end, h, h + i);
1964
+ m > 0 && s.set(h, (s.get(h) ?? 0) + m);
1843
1965
  }
1844
- for (let h = V(c.start); h < c.end; h += P)
1845
- d.add(`${c.userId}:${V(h)}`);
1966
+ for (const h of Qe(t))
1967
+ se(c.start, c.end, h, h + L) > 0 && u.add(`${c.userId}:${h}`);
1846
1968
  }
1847
- const p = n.userIds ?? [
1848
- ...new Set(a.map((c) => c.userId).filter(Boolean))
1849
- ];
1969
+ const d = n.userIds ?? [
1970
+ .../* @__PURE__ */ new Set([
1971
+ ...a.map((c) => c.userId),
1972
+ ...(n.patterns ?? []).map((c) => c.userId)
1973
+ ])
1974
+ ].filter((c) => !!c);
1850
1975
  if (n.patterns?.length)
1851
- for (const c of p) {
1976
+ for (const c of d) {
1852
1977
  const h = n.teamIdsOf?.(c) ?? [];
1853
- for (let A = V(t.from); A < t.to; A += P) {
1854
- const E = V(A);
1855
- if (d.has(`${c}:${E}`)) continue;
1856
- const b = vt(n.patterns, c, h, E);
1857
- if (!b) continue;
1858
- const T = Mt(b, E);
1859
- if (T <= 0) continue;
1860
- const f = kt(b, E);
1861
- if (f) {
1862
- const [w, C] = f.split(":").map(Number), k = E + w * fe + (C ?? 0) * 6e4, x = k + T * 6e4;
1863
- for (const I of o) {
1864
- const L = Xe(k, x, I, I + i);
1865
- L > 0 && s.set(I, (s.get(I) ?? 0) + L);
1978
+ for (const m of Qe(t)) {
1979
+ if (u.has(`${c}:${m}`)) continue;
1980
+ const E = xt(n.patterns, c, h, m);
1981
+ if (!E) continue;
1982
+ const g = Ct(E, m);
1983
+ if (g <= 0) continue;
1984
+ const T = Nt(E, m);
1985
+ if (T) {
1986
+ const [S, N] = T.split(":").map(Number), O = m + S * he + (N ?? 0) * 6e4, k = O + g * 6e4;
1987
+ for (const C of o) {
1988
+ const M = se(O, k, C, C + i);
1989
+ M > 0 && s.set(C, (s.get(C) ?? 0) + M);
1866
1990
  }
1867
1991
  continue;
1868
1992
  }
1869
- const u = o.filter((w) => w >= E && w < E + P);
1870
- if (!u.length) continue;
1871
- const _ = T * 60 / u.length;
1872
- for (const w of u) s.set(w, (s.get(w) ?? 0) + _);
1993
+ const p = o.filter((S) => S >= m && S < m + L);
1994
+ if (!p.length) continue;
1995
+ const f = g * 60 / p.length;
1996
+ for (const S of p) s.set(S, (s.get(S) ?? 0) + f);
1873
1997
  }
1874
1998
  }
1875
1999
  return o.map((c) => ({ period: F(c, r), weight: s.get(c) ?? 0 }));
1876
2000
  }
1877
- function V(e) {
1878
- const t = new Date(e);
1879
- return t.setHours(0, 0, 0, 0), t.getTime();
1880
- }
1881
- function Sr(e, t) {
2001
+ function wr(e, t) {
1882
2002
  if (e <= 0 || !t.length) return [];
1883
2003
  const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
1884
2004
  if (n <= 0) {
@@ -1887,20 +2007,20 @@ function Sr(e, t) {
1887
2007
  }
1888
2008
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
1889
2009
  }
1890
- function pa(e, t, n) {
2010
+ function ba(e, t, n) {
1891
2011
  const r = /* @__PURE__ */ new Map();
1892
2012
  for (const o of e) {
1893
2013
  const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
1894
- for (const a of Sr(o.seconds, s)) {
1895
- const l = `${a.period}|${o.userId ?? ""}`, d = r.get(l);
1896
- d ? d.seconds += a.seconds : r.set(l, { ...a, userId: o.userId });
2014
+ for (const a of wr(o.seconds, s)) {
2015
+ const l = `${a.period}|${o.userId ?? ""}`, u = r.get(l);
2016
+ u ? u.seconds += a.seconds : r.set(l, { ...a, userId: o.userId });
1897
2017
  }
1898
2018
  }
1899
2019
  return [...r.values()].sort(
1900
2020
  (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
1901
2021
  );
1902
2022
  }
1903
- function _r(e) {
2023
+ function Mr(e) {
1904
2024
  switch (e.kind) {
1905
2025
  case "user":
1906
2026
  return `user:${e.userId}`;
@@ -1910,7 +2030,7 @@ function _r(e) {
1910
2030
  return "org";
1911
2031
  }
1912
2032
  }
1913
- function ma(e) {
2033
+ function Aa(e) {
1914
2034
  if (typeof e != "string") return;
1915
2035
  const t = e.trim();
1916
2036
  if (t === "org") return { kind: "org" };
@@ -1922,10 +2042,10 @@ function ma(e) {
1922
2042
  if (r === "team") return { kind: "team", teamId: o };
1923
2043
  }
1924
2044
  }
1925
- function Tr(e) {
1926
- return _r(e);
2045
+ function kr(e) {
2046
+ return Mr(e);
1927
2047
  }
1928
- function wr(e) {
2048
+ function vr(e) {
1929
2049
  switch (e.kind) {
1930
2050
  case "personal":
1931
2051
  return { kind: "user", userId: e.userId };
@@ -1935,14 +2055,14 @@ function wr(e) {
1935
2055
  return { kind: "org" };
1936
2056
  }
1937
2057
  }
1938
- const Ir = wr;
1939
- function ga(e) {
1940
- return e.agentId ? { kind: "user", userId: e.agentId } : Ir(e.ownerScope);
2058
+ const Or = vr;
2059
+ function Ea(e) {
2060
+ return e.agentId ? { kind: "user", userId: e.agentId } : Or(e.ownerScope);
1941
2061
  }
1942
- function ha(e) {
1943
- return Tr(e);
2062
+ function Sa(e) {
2063
+ return kr(e);
1944
2064
  }
1945
- function ya(e, t) {
2065
+ function _a(e, t) {
1946
2066
  if (!t) return;
1947
2067
  let n = e;
1948
2068
  for (const r of t.split(".")) {
@@ -1951,24 +2071,24 @@ function ya(e, t) {
1951
2071
  }
1952
2072
  return n;
1953
2073
  }
1954
- function ba(e, t) {
2074
+ function Ta(e, t) {
1955
2075
  return e.targets.find((n) => n.activityTypes.includes(t));
1956
2076
  }
1957
- function Aa(e, t) {
2077
+ function Ia(e, t) {
1958
2078
  if (t)
1959
2079
  return e.targets.find((n) => n.id === t);
1960
2080
  }
1961
- function Mr(e) {
2081
+ function Cr(e) {
1962
2082
  return e?.kind === "assignment";
1963
2083
  }
1964
- function Ea(e) {
2084
+ function wa(e) {
1965
2085
  const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
1966
- return Mr(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";
2086
+ return Cr(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";
1967
2087
  }
1968
- function Sa(e) {
2088
+ function Ma(e) {
1969
2089
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1970
2090
  }
1971
- const _a = [
2091
+ const ka = [
1972
2092
  { name: "text", type: "string" },
1973
2093
  { name: "subject", type: "string" },
1974
2094
  { name: "from", type: "string" },
@@ -2008,7 +2128,7 @@ const _a = [
2008
2128
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
2009
2129
  // the trigger filter runs — like contactId/companyId above.
2010
2130
  { name: "assigneeUserId", type: "string" }
2011
- ], Ta = {
2131
+ ], va = {
2012
2132
  topics: [
2013
2133
  { name: "topicId", type: "string" },
2014
2134
  { name: "topic", type: "string" },
@@ -2022,58 +2142,58 @@ const _a = [
2022
2142
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2023
2143
  extract: []
2024
2144
  };
2025
- function kr(e) {
2145
+ function Nr(e) {
2026
2146
  return `${e.type}:${e.id}`;
2027
2147
  }
2028
- const vr = "interaction";
2029
- function Or(e) {
2030
- return e?.type === vr ? e.id : void 0;
2148
+ const xr = "interaction";
2149
+ function Rr(e) {
2150
+ return e?.type === xr ? e.id : void 0;
2031
2151
  }
2032
- const Cr = 64, Nr = 8e3;
2033
- function wa(e) {
2152
+ const Dr = 64, $r = 8e3;
2153
+ function Oa(e) {
2034
2154
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2035
2155
  if (!(!Number.isFinite(t) || t <= 0))
2036
- return Math.min(Math.max(Math.round(t), Cr), Nr);
2156
+ return Math.min(Math.max(Math.round(t), Dr), $r);
2037
2157
  }
2038
- const Ia = { kind: "workflow", steps: [] };
2039
- function Ma(e) {
2158
+ const Ca = { kind: "workflow", steps: [] };
2159
+ function Na(e) {
2040
2160
  return e?.kind === "workflow" ? e.steps : [];
2041
2161
  }
2042
- function ka(e) {
2162
+ function xa(e) {
2043
2163
  return e?.kind === "procedure" ? e.procedure : void 0;
2044
2164
  }
2045
- function xr(e) {
2165
+ function Lr(e) {
2046
2166
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2047
2167
  return { total: n, rate: n ? t / n : 0 };
2048
2168
  }
2049
- const Rr = 10, Dr = 0.9;
2050
- function va(e) {
2051
- const { total: t, rate: n } = xr(e);
2052
- return t >= Rr && n >= Dr;
2169
+ const Pr = 10, Ur = 0.9;
2170
+ function Ra(e) {
2171
+ const { total: t, rate: n } = Lr(e);
2172
+ return t >= Pr && n >= Ur;
2053
2173
  }
2054
- const $r = ["done", "escalated", "failed", "stopped"];
2055
- function Oa(e) {
2056
- return $r.includes(e);
2174
+ const Kr = ["done", "escalated", "failed", "stopped"];
2175
+ function Da(e) {
2176
+ return Kr.includes(e);
2057
2177
  }
2058
- function Lr(e) {
2178
+ function Fr(e) {
2059
2179
  return e === "waiting";
2060
2180
  }
2061
- function Ca(e) {
2062
- return e === "running" || Lr(e);
2181
+ function $a(e) {
2182
+ return e === "running" || Fr(e);
2063
2183
  }
2064
- function Ot(e) {
2184
+ function Rt(e) {
2065
2185
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2066
2186
  }
2067
- function Na(e) {
2068
- const t = Ot(e);
2069
- return t ? kr(t) : void 0;
2187
+ function La(e) {
2188
+ const t = Rt(e);
2189
+ return t ? Nr(t) : void 0;
2070
2190
  }
2071
- function xa(e) {
2072
- return Or(Ot(e));
2191
+ function Pa(e) {
2192
+ return Rr(Rt(e));
2073
2193
  }
2074
- function Ra(e) {
2194
+ function Ua(e) {
2075
2195
  const t = [], n = /* @__PURE__ */ new Map();
2076
- for (const r of [...e].sort(Pr)) {
2196
+ for (const r of [...e].sort(Br)) {
2077
2197
  const o = n.get(r.emoji);
2078
2198
  if (o) {
2079
2199
  o.push(r.actor);
@@ -2086,58 +2206,58 @@ function Ra(e) {
2086
2206
  return { emoji: r, count: o.length, actors: o };
2087
2207
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2088
2208
  }
2089
- const Pr = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2090
- function Da(e, t) {
2209
+ const Br = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2210
+ function Ka(e, t) {
2091
2211
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2092
2212
  }
2093
- const pe = 6e4, Ur = 36e5, H = 864e5, Ct = 800;
2094
- function qe(e, t) {
2213
+ const ge = 6e4, Hr = 36e5, j = 864e5, Dt = 800;
2214
+ function et(e, t) {
2095
2215
  const n = Date.UTC(e, t + 1, 0);
2096
- return n - new Date(n).getUTCDay() * H + Ur;
2216
+ return n - new Date(n).getUTCDay() * j + Hr;
2097
2217
  }
2098
- function Kr(e) {
2218
+ function jr(e) {
2099
2219
  const t = new Date(e).getUTCFullYear();
2100
- return e >= qe(t, 2) && e < qe(t, 9);
2220
+ return e >= et(t, 2) && e < et(t, 9);
2101
2221
  }
2102
- function Nt(e, t) {
2103
- const n = t.dst === "eu" && Kr(e) ? 60 : 0;
2104
- return (t.utcOffsetMinutes + n) * pe;
2222
+ function $t(e, t) {
2223
+ const n = t.dst === "eu" && jr(e) ? 60 : 0;
2224
+ return (t.utcOffsetMinutes + n) * ge;
2105
2225
  }
2106
- function Fr(e) {
2226
+ function Wr(e) {
2107
2227
  return (e + 3) % 7 + 1;
2108
2228
  }
2109
- function xt(e, t) {
2110
- const n = Nt(e, t), r = e + n, o = Math.floor(r / H);
2111
- if (!t.days.includes(Fr(o))) return null;
2112
- const i = o * H;
2229
+ function Lt(e, t) {
2230
+ const n = $t(e, t), r = e + n, o = Math.floor(r / j);
2231
+ if (!t.days.includes(Wr(o))) return null;
2232
+ const i = o * j;
2113
2233
  return {
2114
- open: i + t.fromMinutes * pe - n,
2115
- close: i + t.toMinutes * pe - n
2234
+ open: i + t.fromMinutes * ge - n,
2235
+ close: i + t.toMinutes * ge - n
2116
2236
  };
2117
2237
  }
2118
- function Rt(e, t) {
2119
- const n = Nt(e, t), r = e + n;
2120
- return (Math.floor(r / H) + 1) * H - n;
2238
+ function Pt(e, t) {
2239
+ const n = $t(e, t), r = e + n;
2240
+ return (Math.floor(r / j) + 1) * j - n;
2121
2241
  }
2122
- function me(e, t, n) {
2242
+ function ye(e, t, n) {
2123
2243
  if (t <= e) return 0;
2124
2244
  if (!n) return t - e;
2125
2245
  let r = 0, o = e;
2126
- for (let i = 0; i < Ct && o < t; i++) {
2127
- const s = xt(o, n);
2246
+ for (let i = 0; i < Dt && o < t; i++) {
2247
+ const s = Lt(o, n);
2128
2248
  if (s) {
2129
2249
  const a = Math.max(o, s.open), l = Math.min(t, s.close);
2130
2250
  l > a && (r += l - a);
2131
2251
  }
2132
- o = Rt(o, n);
2252
+ o = Pt(o, n);
2133
2253
  }
2134
2254
  return r;
2135
2255
  }
2136
- function _e(e, t, n) {
2256
+ function Me(e, t, n) {
2137
2257
  if (!n) return e + t;
2138
2258
  let r = t, o = e;
2139
- for (let i = 0; i < Ct; i++) {
2140
- const s = xt(o, n);
2259
+ for (let i = 0; i < Dt; i++) {
2260
+ const s = Lt(o, n);
2141
2261
  if (s) {
2142
2262
  const a = Math.max(o, s.open);
2143
2263
  if (s.close > a) {
@@ -2146,183 +2266,183 @@ function _e(e, t, n) {
2146
2266
  r -= l;
2147
2267
  }
2148
2268
  }
2149
- o = Rt(o, n);
2269
+ o = Pt(o, n);
2150
2270
  }
2151
2271
  return e + t;
2152
2272
  }
2153
- function $a(e) {
2273
+ function Fa(e) {
2154
2274
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
2155
2275
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
2156
2276
  }
2157
- const ge = 1, he = 2;
2158
- function La(e) {
2159
- return e === "snoozed" ? ge : he;
2277
+ const be = 1, Ae = 2;
2278
+ function Ba(e) {
2279
+ return e === "snoozed" ? be : Ae;
2160
2280
  }
2161
- function Te(e) {
2281
+ function ke(e) {
2162
2282
  const t = e.calendar;
2163
2283
  return t && Array.isArray(t.days) ? t : null;
2164
2284
  }
2165
- const Pa = [
2285
+ const Ha = [
2166
2286
  "speed_of_answer",
2167
2287
  "first_response",
2168
2288
  "next_response",
2169
2289
  "resolution",
2170
2290
  "close"
2171
- ], Ua = ["snoozed", "waiting_for_customer"], Br = 6e4, Dt = ["speed_of_answer", "first_response", "next_response"], Hr = [...Dt, "resolution", "close"];
2172
- function j(e) {
2291
+ ], ja = ["snoozed", "waiting_for_customer"], Gr = 6e4, Ut = ["speed_of_answer", "first_response", "next_response"], Vr = [...Ut, "resolution", "close"];
2292
+ function W(e) {
2173
2293
  return e.state === "running" || e.state === "paused";
2174
2294
  }
2175
- function jr(e, t) {
2176
- return j(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
2295
+ function Xr(e, t) {
2296
+ return W(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
2177
2297
  }
2178
- function Je(e) {
2179
- return j(e) ? { state: "void" } : null;
2298
+ function tt(e) {
2299
+ return W(e) ? { state: "void" } : null;
2180
2300
  }
2181
- function Gr(e, t, n, r) {
2182
- if (!j(e) || (e.pauseBits & t) !== 0) return null;
2301
+ function zr(e, t, n, r) {
2302
+ if (!W(e) || (e.pauseBits & t) !== 0) return null;
2183
2303
  const o = e.pauseBits | t;
2184
- return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: me(n, e.dueAt, r) };
2304
+ return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: ye(n, e.dueAt, r) };
2185
2305
  }
2186
- function Wr(e, t, n, r) {
2187
- if (!j(e) || (e.pauseBits & t) === 0) return null;
2306
+ function Yr(e, t, n, r) {
2307
+ if (!W(e) || (e.pauseBits & t) === 0) return null;
2188
2308
  const o = e.pauseBits & ~t;
2189
- return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: _e(n, e.remainingMs, r) };
2190
- }
2191
- function Ka({ event: e, at: t, now: n, clocks: r, profile: o }) {
2192
- const i = Te(o), s = Math.min(t, n), a = r.map((f) => ({ ...f })), l = [], d = (f, u) => {
2193
- u && (l.push({ op: "patch", clockId: f.id, patch: u }), Object.assign(f, u));
2194
- }, p = (f) => {
2195
- for (const u of a)
2196
- u.metric === f && d(u, jr(u, s));
2197
- }, c = (f) => {
2198
- for (const u of a)
2199
- f.includes(u.metric) && d(u, Je(u));
2200
- }, h = (f) => {
2201
- for (const u of a) d(u, Gr(u, f, s, i));
2202
- }, A = (f) => {
2203
- for (const u of a) d(u, Wr(u, f, s, i));
2204
- }, E = (f) => a.reduce((u, _) => _.metric === f ? Math.max(u, _.attempt) : u, 0) + 1, b = (f) => a.some((u) => u.metric === f && j(u)), T = (f, u) => {
2205
- const _ = o.targets.find((C) => C.metric === f);
2206
- if (!_) return;
2207
- const w = _.minutes * Br;
2309
+ return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: Me(n, e.remainingMs, r) };
2310
+ }
2311
+ function Wa({ event: e, at: t, now: n, clocks: r, profile: o }) {
2312
+ const i = ke(o), s = Math.min(t, n), a = r.map((p) => ({ ...p })), l = [], u = (p, f) => {
2313
+ f && (l.push({ op: "patch", clockId: p.id, patch: f }), Object.assign(p, f));
2314
+ }, d = (p) => {
2315
+ for (const f of a)
2316
+ f.metric === p && u(f, Xr(f, s));
2317
+ }, c = (p) => {
2318
+ for (const f of a)
2319
+ p.includes(f.metric) && u(f, tt(f));
2320
+ }, h = (p) => {
2321
+ for (const f of a) u(f, zr(f, p, s, i));
2322
+ }, m = (p) => {
2323
+ for (const f of a) u(f, Yr(f, p, s, i));
2324
+ }, E = (p) => a.reduce((f, S) => S.metric === p ? Math.max(f, S.attempt) : f, 0) + 1, g = (p) => a.some((f) => f.metric === p && W(f)), T = (p, f) => {
2325
+ const S = o.targets.find((O) => O.metric === p);
2326
+ if (!S) return;
2327
+ const N = S.minutes * Gr;
2208
2328
  l.push({
2209
2329
  op: "start",
2210
- metric: f,
2211
- attempt: E(f),
2212
- startedAt: u,
2213
- targetMs: w,
2214
- dueAt: _e(u, w, i)
2330
+ metric: p,
2331
+ attempt: E(p),
2332
+ startedAt: f,
2333
+ targetMs: N,
2334
+ dueAt: Me(f, N, i)
2215
2335
  });
2216
2336
  };
2217
2337
  switch (e) {
2218
2338
  case "apply": {
2219
- for (const f of a)
2220
- f.profileId !== o.id && d(f, Je(f));
2221
- for (const f of o.targets) {
2222
- if (f.metric === "next_response") continue;
2339
+ for (const p of a)
2340
+ p.profileId !== o.id && u(p, tt(p));
2341
+ for (const p of o.targets) {
2342
+ if (p.metric === "next_response") continue;
2223
2343
  a.some(
2224
- (_) => _.metric === f.metric && _.profileId === o.id
2225
- ) || T(f.metric, s);
2344
+ (S) => S.metric === p.metric && S.profileId === o.id
2345
+ ) || T(p.metric, s);
2226
2346
  }
2227
2347
  break;
2228
2348
  }
2229
2349
  case "answered":
2230
- p("speed_of_answer");
2350
+ d("speed_of_answer");
2231
2351
  break;
2232
2352
  case "outbound": {
2233
- p("first_response"), p("next_response"), o.pauseOn.includes("waiting_for_customer") && h(he);
2353
+ d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && h(Ae);
2234
2354
  break;
2235
2355
  }
2236
2356
  case "inbound": {
2237
- A(he), !b("first_response") && !b("next_response") && T("next_response", s);
2357
+ m(Ae), !g("first_response") && !g("next_response") && T("next_response", s);
2238
2358
  break;
2239
2359
  }
2240
2360
  case "resolved":
2241
- p("resolution");
2361
+ d("resolution");
2242
2362
  break;
2243
2363
  case "closed":
2244
- p("close"), p("resolution"), c(Dt);
2364
+ d("close"), d("resolution"), c(Ut);
2245
2365
  break;
2246
2366
  case "reopened":
2247
- b("resolution") || T("resolution", s), b("close") || T("close", s);
2367
+ g("resolution") || T("resolution", s), g("close") || T("close", s);
2248
2368
  break;
2249
2369
  case "snoozed":
2250
- o.pauseOn.includes("snoozed") && h(ge);
2370
+ o.pauseOn.includes("snoozed") && h(be);
2251
2371
  break;
2252
2372
  case "unsnoozed":
2253
- A(ge);
2373
+ m(be);
2254
2374
  break;
2255
2375
  case "discarded":
2256
- c(Hr);
2376
+ c(Vr);
2257
2377
  break;
2258
2378
  }
2259
2379
  return l;
2260
2380
  }
2261
- function Vr(e) {
2381
+ function qr(e) {
2262
2382
  return e.state === "running" || e.state === "paused";
2263
2383
  }
2264
- function ye(e, t) {
2265
- const n = Te(e);
2266
- return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -me(e.dueAt, t, n) : me(t, e.dueAt, n);
2384
+ function Ee(e, t) {
2385
+ const n = ke(e);
2386
+ return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -ye(e.dueAt, t, n) : ye(t, e.dueAt, n);
2267
2387
  }
2268
- function Fa(e, t) {
2269
- return e.state === "paused" ? _e(t, e.remainingMs, Te(e)) : e.dueAt;
2388
+ function Ga(e, t) {
2389
+ return e.state === "paused" ? Me(t, e.remainingMs, ke(e)) : e.dueAt;
2270
2390
  }
2271
- function Ba(e, t) {
2272
- const n = e.filter(Vr);
2391
+ function Va(e, t) {
2392
+ const n = e.filter(qr);
2273
2393
  if (!n.length) return;
2274
2394
  const r = n.filter((i) => i.state === "running");
2275
2395
  return (r.length ? r : n).reduce(
2276
- (i, s) => ye(s, t) < ye(i, t) ? s : i
2396
+ (i, s) => Ee(s, t) < Ee(i, t) ? s : i
2277
2397
  );
2278
2398
  }
2279
- function Ha(e, t) {
2399
+ function Xa(e, t) {
2280
2400
  if (e.state === "missed") return "breached";
2281
2401
  if (e.state === "hit") return "met";
2282
2402
  if (e.state === "paused") return "paused";
2283
2403
  if (e.state === "void") return "met";
2284
- const n = ye(e, t);
2404
+ const n = Ee(e, t);
2285
2405
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
2286
2406
  }
2287
- function ja(e) {
2407
+ function za(e) {
2288
2408
  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);
2289
2409
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
2290
2410
  }
2291
- const zr = "strategy_item";
2292
- function $t(e) {
2293
- return `${zr}:${e}`;
2411
+ const Jr = "strategy_item";
2412
+ function Kt(e) {
2413
+ return `${Jr}:${e}`;
2294
2414
  }
2295
- function Ga(e, t = 25) {
2296
- const n = /* @__PURE__ */ new Set([$t(e.id)]);
2415
+ function Ya(e, t = 25) {
2416
+ const n = /* @__PURE__ */ new Set([Kt(e.id)]);
2297
2417
  for (const r of e.ancestorKeys ?? []) n.add(r);
2298
2418
  return Array.from(n).slice(0, t);
2299
2419
  }
2300
- function Wa(e) {
2301
- return e ? [...e.ancestorKeys ?? [], $t(e.id)] : [];
2420
+ function qa(e) {
2421
+ return e ? [...e.ancestorKeys ?? [], Kt(e.id)] : [];
2302
2422
  }
2303
2423
  const Q = [
2304
2424
  { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
2305
2425
  { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
2306
2426
  { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
2307
- ], Yr = 999, Xr = 7;
2308
- function qr(e, t = Q) {
2427
+ ], Zr = 999, Qr = 7;
2428
+ function eo(e, t = Q) {
2309
2429
  return t.find((n) => n.key === e);
2310
2430
  }
2311
- function be(e, t = Q) {
2312
- return qr(e, t)?.order ?? Yr;
2431
+ function Se(e, t = Q) {
2432
+ return eo(e, t)?.order ?? Zr;
2313
2433
  }
2314
- function Va(e, t, n = Q) {
2315
- return be(t, n) <= be(e, n);
2434
+ function Ja(e, t, n = Q) {
2435
+ return Se(t, n) <= Se(e, n);
2316
2436
  }
2317
- function za(e, t = Q) {
2318
- const n = be(e, t);
2437
+ function Za(e, t = Q) {
2438
+ const n = Se(e, t);
2319
2439
  return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
2320
2440
  }
2321
- function Ya(e) {
2441
+ function Qa(e) {
2322
2442
  const t = e.trim().toLowerCase();
2323
2443
  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;
2324
2444
  }
2325
- const Ae = {
2445
+ const _e = {
2326
2446
  pending: "open",
2327
2447
  on_track: "open",
2328
2448
  at_risk: "open",
@@ -2331,74 +2451,74 @@ const Ae = {
2331
2451
  achieved: "closed",
2332
2452
  missed: "closed"
2333
2453
  };
2334
- function Xa(e) {
2335
- return Ae[e] ?? "open";
2454
+ function ec(e) {
2455
+ return _e[e] ?? "open";
2336
2456
  }
2337
- function qa(e) {
2338
- return Object.keys(Ae).filter(
2339
- (t) => e.includes(Ae[t])
2457
+ function tc(e) {
2458
+ return Object.keys(_e).filter(
2459
+ (t) => e.includes(_e[t])
2340
2460
  );
2341
2461
  }
2342
- const Jr = 864e5, ee = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2343
- function Ja(e, t) {
2462
+ const to = 864e5, ee = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2463
+ function nc(e, t) {
2344
2464
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
2345
2465
  if (!Number.isFinite(t)) return 0;
2346
2466
  const i = n === "down" ? t <= o : t >= o, s = o - r;
2347
2467
  return (n === "down" ? s < 0 : s > 0) ? ee((t - r) / s) : i ? 1 : 0;
2348
2468
  }
2349
- function Za(e, t) {
2469
+ function rc(e, t) {
2350
2470
  const { startDate: n, targetDate: r } = e;
2351
2471
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
2352
2472
  return ee((t - n) / (r - n));
2353
2473
  }
2354
- const Zr = 0.1, Qr = 0.25;
2355
- function Qa(e, t) {
2474
+ const no = 0.1, ro = 0.25;
2475
+ function oc(e, t) {
2356
2476
  if (typeof e != "number" || typeof t != "number") return;
2357
2477
  if (e >= 1) return "achieved";
2358
2478
  const n = t - e;
2359
- return n >= Qr ? "off_track" : n >= Zr ? "at_risk" : "on_track";
2479
+ return n >= ro ? "off_track" : n >= no ? "at_risk" : "on_track";
2360
2480
  }
2361
- function ec(e, t) {
2481
+ function ic(e, t) {
2362
2482
  if (t)
2363
2483
  return ee(e / t);
2364
2484
  }
2365
- function tc(e) {
2485
+ function sc(e) {
2366
2486
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
2367
2487
  if (t.length)
2368
2488
  return ee(t.reduce((n, r) => n + r, 0) / t.length);
2369
2489
  }
2370
- function nc(e, t) {
2490
+ function ac(e, t) {
2371
2491
  const n = e.lastCheckInAt ?? e.createdAt;
2372
2492
  if (typeof n != "number") return 0;
2373
- const r = (e.checkInEveryDays ?? Xr) * Jr, o = t - n - r;
2493
+ const r = (e.checkInEveryDays ?? Qr) * to, o = t - n - r;
2374
2494
  return o > 0 ? o : 0;
2375
2495
  }
2376
- function rc(e) {
2496
+ function cc(e) {
2377
2497
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
2378
2498
  }
2379
- function oc(e, t) {
2499
+ function lc(e, t) {
2380
2500
  const n = e.accumulatedSeconds || 0;
2381
2501
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
2382
2502
  }
2383
- function ic(e, t) {
2503
+ function uc(e, t) {
2384
2504
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
2385
2505
  if (!t || t === "exact") return n * 60;
2386
2506
  const r = Number(t);
2387
2507
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
2388
2508
  }
2389
- function sc(e) {
2509
+ function dc(e) {
2390
2510
  const t = Math.max(0, Math.round(e / 60));
2391
2511
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
2392
2512
  }
2393
- function ac(e) {
2513
+ function fc(e) {
2394
2514
  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);
2395
2515
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
2396
2516
  }
2397
- function eo(e) {
2517
+ function oo(e) {
2398
2518
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2399
2519
  }
2400
- function cc(e, t) {
2401
- const n = eo(e) || "werksoort", r = new Set(t);
2520
+ function pc(e, t) {
2521
+ const n = oo(e) || "werksoort", r = new Set(t);
2402
2522
  if (!r.has(n)) return n;
2403
2523
  for (let o = 2; o < 500; o++) {
2404
2524
  const i = `${n}-${o}`;
@@ -2406,82 +2526,82 @@ function cc(e, t) {
2406
2526
  }
2407
2527
  return `${n}-${r.size + 1}`;
2408
2528
  }
2409
- function lc(e, t) {
2529
+ function mc(e, t) {
2410
2530
  const n = e.ownerScope;
2411
2531
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
2412
2532
  }
2413
- function uc(e) {
2414
- return e.filter((t) => !t.archived).sort(to);
2533
+ function hc(e) {
2534
+ return e.filter((t) => !t.archived).sort(io);
2415
2535
  }
2416
- function to(e, t) {
2536
+ function io(e, t) {
2417
2537
  const n = (e.order ?? 0) - (t.order ?? 0);
2418
2538
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
2419
2539
  }
2420
- const no = 20, ro = 20, se = 300;
2421
- function D(e) {
2540
+ const so = 20, ao = 20, ae = 300;
2541
+ function $(e) {
2422
2542
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
2423
2543
  }
2424
- function oo(e) {
2544
+ function co(e) {
2425
2545
  const t = e.replace(/\s+/g, " ").trim();
2426
- if (t.length <= se) return t;
2427
- const n = t.slice(0, se), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
2428
- return r > se * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
2429
- }
2430
- function dc(e, t) {
2431
- const n = oo(t.text), r = D(n);
2432
- if (!r || (e.examples ?? []).some((s) => D(s) === r)) return null;
2433
- const o = e.exampleCandidates ?? [], i = o.findIndex((s) => D(s.text) === r);
2546
+ if (t.length <= ae) return t;
2547
+ const n = t.slice(0, ae), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
2548
+ return r > ae * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
2549
+ }
2550
+ function gc(e, t) {
2551
+ const n = co(t.text), r = $(n);
2552
+ if (!r || (e.examples ?? []).some((s) => $(s) === r)) return null;
2553
+ const o = e.exampleCandidates ?? [], i = o.findIndex((s) => $(s.text) === r);
2434
2554
  if (i >= 0) {
2435
2555
  if (o[i].corrected || !t.corrected) return null;
2436
2556
  const s = [...o];
2437
- return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, Ze(s);
2557
+ return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, nt(s);
2438
2558
  }
2439
- return Ze([{ ...t, text: n }, ...o]).slice(0, ro);
2559
+ return nt([{ ...t, text: n }, ...o]).slice(0, ao);
2440
2560
  }
2441
- function Ze(e) {
2561
+ function nt(e) {
2442
2562
  return [...e].sort(
2443
2563
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
2444
2564
  );
2445
2565
  }
2446
- function fc(e, t) {
2447
- const n = D(t), r = (e.examples ?? []).filter((i) => i.trim());
2448
- return { examples: r.some((i) => D(i) === n) ? r : [...r, t].slice(-no), exampleCandidates: io(e, t) };
2566
+ function yc(e, t) {
2567
+ const n = $(t), r = (e.examples ?? []).filter((i) => i.trim());
2568
+ return { examples: r.some((i) => $(i) === n) ? r : [...r, t].slice(-so), exampleCandidates: lo(e, t) };
2449
2569
  }
2450
- function io(e, t) {
2451
- const n = D(t);
2452
- return (e.exampleCandidates ?? []).filter((r) => D(r.text) !== n);
2570
+ function lo(e, t) {
2571
+ const n = $(t);
2572
+ return (e.exampleCandidates ?? []).filter((r) => $(r.text) !== n);
2453
2573
  }
2454
- function so(e, t) {
2574
+ function uo(e, t) {
2455
2575
  const n = e.ownerScope;
2456
2576
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
2457
2577
  }
2458
- function pc(e, t) {
2459
- return e.filter((n) => so(n, t));
2578
+ function bc(e, t) {
2579
+ return e.filter((n) => uo(n, t));
2460
2580
  }
2461
- function mc(e) {
2581
+ function Ac(e) {
2462
2582
  return e.type === "agent";
2463
2583
  }
2464
- const gc = "WORK_COMMENT_ADDED", hc = "WORK_ITEM_ASSIGNED", yc = "WORK_ITEM_STATUS_CHANGED";
2465
- function ao(e, t) {
2584
+ const Ec = "WORK_COMMENT_ADDED", Sc = "WORK_ITEM_ASSIGNED", _c = "WORK_ITEM_STATUS_CHANGED";
2585
+ function fo(e, t) {
2466
2586
  const n = (r) => {
2467
2587
  const o = new Date(r);
2468
2588
  return o.setHours(0, 0, 0, 0), o.getTime();
2469
2589
  };
2470
- return Math.round((n(e) - n(t)) / In);
2590
+ return Math.round((n(e) - n(t)) / Cn);
2471
2591
  }
2472
- function bc(e, t) {
2473
- if (e.closedAt != null) return { score: R, reasons: [] };
2592
+ function Tc(e, t) {
2593
+ if (e.closedAt != null) return { score: D, reasons: [] };
2474
2594
  const n = t.remindersById?.[e.id];
2475
- if (n && n.remindAt > t.now) return { score: R, reasons: [] };
2595
+ if (n && n.remindAt > t.now) return { score: D, reasons: [] };
2476
2596
  let r = 0;
2477
2597
  const o = [], i = e.priority ?? "normal";
2478
- if (X[i] > 0 && (r += X[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
2479
- const s = ao(e.dueDate, t.now);
2598
+ if (q[i] > 0 && (r += q[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
2599
+ const s = fo(e.dueDate, t.now);
2480
2600
  s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
2481
2601
  }
2482
2602
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
2483
2603
  }
2484
- const we = [
2604
+ const ve = [
2485
2605
  { key: "task", label: "type_task" },
2486
2606
  { key: "bug", label: "type_bug" },
2487
2607
  { key: "story", label: "type_story" },
@@ -2489,35 +2609,35 @@ const we = [
2489
2609
  { key: "subtask", label: "type_subtask" },
2490
2610
  { key: "case", label: "type_case" },
2491
2611
  { key: "deal", label: "type_deal" }
2492
- ], Ac = we.map((e) => e.key);
2493
- function Ec(e) {
2494
- return e?.types?.length ? e.types : we;
2612
+ ], Ic = ve.map((e) => e.key);
2613
+ function wc(e) {
2614
+ return e?.types?.length ? e.types : ve;
2495
2615
  }
2496
- function Sc(e, t) {
2616
+ function Mc(e, t) {
2497
2617
  return t.find((n) => n.key === e);
2498
2618
  }
2499
- function _c(e) {
2619
+ function kc(e) {
2500
2620
  const t = e.trim().toLowerCase();
2501
2621
  return t ? t.includes("sub-task") || t.includes("subtask") || t.includes("sub task") ? "subtask" : t.includes("bug") || t.includes("defect") ? "bug" : t.includes("epic") ? "epic" : t.includes("story") ? "story" : t.includes("incident") || t.includes("problem") || t.includes("service request") || t.includes("change") ? "case" : t.includes("task") ? "task" : null : null;
2502
2622
  }
2503
- function Tc(...e) {
2504
- return e.map((t) => we.find((n) => n.key === t)).filter((t) => !!t);
2623
+ function vc(...e) {
2624
+ return e.map((t) => ve.find((n) => n.key === t)).filter((t) => !!t);
2505
2625
  }
2506
- const co = "work_item", lo = "work_project", uo = "work_activity", wc = "work_cycle";
2507
- function fo(e) {
2508
- return `${co}:${e}`;
2626
+ const po = "work_item", mo = "work_project", ho = "work_activity", Oc = "work_cycle";
2627
+ function go(e) {
2628
+ return `${po}:${e}`;
2509
2629
  }
2510
- function Lt(e) {
2511
- return `${lo}:${e}`;
2630
+ function Ft(e) {
2631
+ return `${mo}:${e}`;
2512
2632
  }
2513
- function Ic(e) {
2514
- return `${uo}:${e}`;
2633
+ function Cc(e) {
2634
+ return `${ho}:${e}`;
2515
2635
  }
2516
- function Mc(e, t, n) {
2636
+ function Nc(e, t, n) {
2517
2637
  const r = `${e}-${t}`;
2518
2638
  return n ? `${r}-${n}` : r;
2519
2639
  }
2520
- function kc(e) {
2640
+ function xc(e) {
2521
2641
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
2522
2642
  return t ? {
2523
2643
  projectKey: t[1].toUpperCase(),
@@ -2525,52 +2645,52 @@ function kc(e) {
2525
2645
  ...t[3] ? { subSequence: Number(t[3]) } : {}
2526
2646
  } : null;
2527
2647
  }
2528
- function vc(e) {
2648
+ function Rc(e) {
2529
2649
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
2530
2650
  }
2531
- function Oc(e, t = 25) {
2532
- const n = /* @__PURE__ */ new Set([fo(e.id)]);
2533
- e.projectId && n.add(Lt(e.projectId));
2651
+ function Dc(e, t = 25) {
2652
+ const n = /* @__PURE__ */ new Set([go(e.id)]);
2653
+ e.projectId && n.add(Ft(e.projectId));
2534
2654
  for (const r of e.ancestorKeys ?? []) n.add(r);
2535
2655
  for (const r of e.partyKeys ?? []) n.add(r);
2536
2656
  return Array.from(n).slice(0, t);
2537
2657
  }
2538
- function Cc(e) {
2539
- return [Lt(e.id)];
2658
+ function $c(e) {
2659
+ return [Ft(e.id)];
2540
2660
  }
2541
- const Ie = [
2661
+ const Oe = [
2542
2662
  { key: "open", label: "status_open", category: "todo", order: 0 },
2543
2663
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
2544
2664
  { key: "done", label: "status_done", category: "done", order: 2 },
2545
2665
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
2546
- ], Pt = Ie.map((e) => e.key);
2547
- function po(e) {
2548
- return e?.statuses?.length ? e.statuses : Ie;
2666
+ ], Bt = Oe.map((e) => e.key);
2667
+ function yo(e) {
2668
+ return e?.statuses?.length ? e.statuses : Oe;
2549
2669
  }
2550
- function mo(e, t) {
2670
+ function bo(e, t) {
2551
2671
  return t.find((n) => n.key === e)?.category ?? "todo";
2552
2672
  }
2553
- function Nc(e, t) {
2673
+ function Lc(e, t) {
2554
2674
  return t.find((n) => n.key === e);
2555
2675
  }
2556
- function xc(e) {
2557
- const t = po(e), n = e?.defaultStatusKey;
2558
- return n && t.some((r) => r.key === n) ? n : go(t)[0]?.key ?? Ie[0].key;
2676
+ function Pc(e) {
2677
+ const t = yo(e), n = e?.defaultStatusKey;
2678
+ return n && t.some((r) => r.key === n) ? n : Ao(t)[0]?.key ?? Oe[0].key;
2559
2679
  }
2560
- function go(e) {
2680
+ function Ao(e) {
2561
2681
  return [...e].sort((t, n) => {
2562
2682
  const r = (t.order ?? 0) - (n.order ?? 0);
2563
2683
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
2564
2684
  });
2565
2685
  }
2566
- function Rc(e, t) {
2567
- return mo(e, t) === "done";
2686
+ function Uc(e, t) {
2687
+ return bo(e, t) === "done";
2568
2688
  }
2569
- function ho(e) {
2689
+ function Eo(e) {
2570
2690
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2571
2691
  }
2572
- function Dc(e, t) {
2573
- const n = ho(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Pt]);
2692
+ function Kc(e, t) {
2693
+ const n = Eo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Bt]);
2574
2694
  if (!r.has(n)) return n;
2575
2695
  for (let o = 2; o < 500; o++) {
2576
2696
  const i = `${n}-${o}`;
@@ -2578,7 +2698,7 @@ function Dc(e, t) {
2578
2698
  }
2579
2699
  return `${n}-${r.size + 1}`;
2580
2700
  }
2581
- function $c(e) {
2701
+ function Fc(e) {
2582
2702
  const t = [];
2583
2703
  if (!e.length) return [{ index: -1, reason: "empty" }];
2584
2704
  const n = /* @__PURE__ */ new Set();
@@ -2587,16 +2707,16 @@ function $c(e) {
2587
2707
  t.push({ index: o, reason: "missing_key" });
2588
2708
  return;
2589
2709
  }
2590
- Pt.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);
2710
+ Bt.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);
2591
2711
  }), 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;
2592
2712
  }
2593
- function Lc(e) {
2713
+ function Bc(e) {
2594
2714
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
2595
2715
  }
2596
- function Pc(e) {
2716
+ function Hc(e) {
2597
2717
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
2598
2718
  }
2599
- const yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), bo = /* @__PURE__ */ new Set([
2719
+ const So = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), _o = /* @__PURE__ */ new Set([
2600
2720
  "text/plain",
2601
2721
  "text/markdown",
2602
2722
  "text/csv",
@@ -2605,67 +2725,67 @@ const yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
2605
2725
  "application/xml",
2606
2726
  "text/xml"
2607
2727
  ]);
2608
- function Ao(e) {
2728
+ function To(e) {
2609
2729
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
2610
- return t ? yo.has(t) ? "image" : t === "application/pdf" ? "pdf" : bo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
2730
+ return t ? So.has(t) ? "image" : t === "application/pdf" ? "pdf" : _o.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
2611
2731
  }
2612
- const U = 1024 * 1024, Eo = {
2732
+ const U = 1024 * 1024, Io = {
2613
2733
  image: 5 * U,
2614
2734
  pdf: 20 * U,
2615
2735
  text: 1 * U,
2616
2736
  audio: 20 * U
2617
- }, Uc = 25 * U, Kc = 5;
2618
- function Fc(e, t) {
2619
- const n = Ao(e);
2620
- return n === "unsupported" ? "unsupported" : t > Eo[n] ? "too-large" : null;
2737
+ }, jc = 25 * U, Wc = 5;
2738
+ function Gc(e, t) {
2739
+ const n = To(e);
2740
+ return n === "unsupported" ? "unsupported" : t > Io[n] ? "too-large" : null;
2621
2741
  }
2622
- function Bc(e) {
2742
+ function Vc(e) {
2623
2743
  return e.access !== "read" && e.effect !== "internal";
2624
2744
  }
2625
- function So(e) {
2745
+ function wo(e) {
2626
2746
  return `${e.kind}:${e.id || e.url || e.title}`;
2627
2747
  }
2628
- function Hc(e, t = []) {
2748
+ function Xc(e, t = []) {
2629
2749
  const n = new Set(t), r = [], o = [];
2630
2750
  for (const i of e) {
2631
- const s = So(i);
2751
+ const s = wo(i);
2632
2752
  n.has(s) || (n.add(s), r.push(i), o.push(s));
2633
2753
  }
2634
2754
  return { sources: r, keys: o };
2635
2755
  }
2636
- const jc = "assist-source", Gc = ["blocking", "due", "open"];
2637
- function Wc(e, t) {
2756
+ const zc = "assist-source", Yc = ["blocking", "due", "open"];
2757
+ function qc(e, t) {
2638
2758
  const [n, r] = (e.subjectKey ?? "").split(":");
2639
2759
  return n === t && r ? r : void 0;
2640
2760
  }
2641
- const Qe = { blocking: 0, due: 1, open: 2 };
2642
- function Vc(e, t) {
2643
- return Qe[e.band ?? "open"] - Qe[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
2761
+ const rt = { blocking: 0, due: 1, open: 2 };
2762
+ function Jc(e, t) {
2763
+ return rt[e.band ?? "open"] - rt[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
2644
2764
  }
2645
- function zc(e) {
2765
+ function Zc(e) {
2646
2766
  return e.sessions.filter(
2647
2767
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
2648
2768
  );
2649
2769
  }
2650
- function Yc(e) {
2770
+ function Qc(e) {
2651
2771
  return e.sessions.filter(
2652
2772
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
2653
2773
  );
2654
2774
  }
2655
- function Xc(e) {
2775
+ function el(e) {
2656
2776
  return e.sessions.some(
2657
2777
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
2658
2778
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
2659
2779
  }
2660
- function _o(e, t) {
2661
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => wo(s, r[s.intent]));
2780
+ function Mo(e, t) {
2781
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => vo(s, r[s.intent]));
2662
2782
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
2663
2783
  const i = new Set(o.map((s) => s.intent));
2664
2784
  for (const s of e.extraIntents)
2665
2785
  i.has(s.intent) || (o.push(s), i.add(s.intent));
2666
2786
  return o;
2667
2787
  }
2668
- function To(e, t) {
2788
+ function ko(e, t) {
2669
2789
  const n = {};
2670
2790
  for (const r of e.intents) {
2671
2791
  if (!r.togglable) continue;
@@ -2674,46 +2794,46 @@ function To(e, t) {
2674
2794
  }
2675
2795
  return n;
2676
2796
  }
2677
- function qc(e, t) {
2678
- const n = To(e, t);
2797
+ function tl(e, t) {
2798
+ const n = ko(e, t);
2679
2799
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
2680
2800
  }
2681
- function wo(e, t) {
2801
+ function vo(e, t) {
2682
2802
  return t ? {
2683
2803
  intent: t.intent ?? e.intent,
2684
2804
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
2685
2805
  transport: t.transport ?? e.transport
2686
2806
  } : e;
2687
2807
  }
2688
- function Jc(e, t) {
2808
+ function nl(e, t) {
2689
2809
  const n = [];
2690
2810
  for (const r of e) {
2691
2811
  if (!r.enabled) continue;
2692
2812
  const o = t[r.providerId];
2693
2813
  if (o)
2694
- for (const i of _o(r, o))
2814
+ for (const i of Mo(r, o))
2695
2815
  n.push({ channel: r, description: o, capability: i });
2696
2816
  }
2697
2817
  return n;
2698
2818
  }
2699
- function Zc(e, t) {
2819
+ function rl(e, t) {
2700
2820
  return t.filter((n) => n.capability.intent === e);
2701
2821
  }
2702
- function Io(e, t) {
2822
+ function Oo(e, t) {
2703
2823
  return t.filter((n) => n.capability.targetSchemes.includes(e));
2704
2824
  }
2705
- function Qc(e, t) {
2706
- return Io(e.scheme, t);
2825
+ function ol(e, t) {
2826
+ return Oo(e.scheme, t);
2707
2827
  }
2708
- function el(e, t, n) {
2828
+ function il(e, t, n) {
2709
2829
  const r = [];
2710
2830
  for (const o of e)
2711
2831
  for (const i of n)
2712
2832
  i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
2713
2833
  return r;
2714
2834
  }
2715
- var Mo = /* @__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))(Mo || {});
2716
- const ko = {
2835
+ var Co = /* @__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))(Co || {});
2836
+ const No = {
2717
2837
  mailto: "mail",
2718
2838
  sip: "tel",
2719
2839
  tel: "tel",
@@ -2734,10 +2854,10 @@ const ko = {
2734
2854
  id: "note",
2735
2855
  custom: "note"
2736
2856
  };
2737
- function tl(e) {
2738
- return e ? ko[e] ?? "note" : "note";
2857
+ function sl(e) {
2858
+ return e ? No[e] ?? "note" : "note";
2739
2859
  }
2740
- const nl = "message_window", rl = "message_templates", ol = {
2860
+ const al = "message_window", cl = "message_templates", ll = {
2741
2861
  // E-mail
2742
2862
  FROM: "from",
2743
2863
  TO: "to",
@@ -2754,12 +2874,12 @@ const nl = "message_window", rl = "message_templates", ol = {
2754
2874
  // Voice/conference
2755
2875
  HOST: "host",
2756
2876
  PARTICIPANT: "participant"
2757
- }, il = (e, t) => ({ intent: e, ...t }), sl = "folder_management", al = "remote_search", cl = "message_reactions", ll = {
2877
+ }, ul = (e, t) => ({ intent: e, ...t }), dl = "folder_management", fl = "remote_search", pl = "message_reactions", ml = {
2758
2878
  ok: !1,
2759
2879
  code: "UNSUPPORTED",
2760
2880
  message: "Provider does not support this op"
2761
- }, ul = "connector", dl = "context.collect", y = (e) => ({ type: "string", description: e }), g = (e) => ({ type: "number", description: e }), z = (e) => ({ type: "boolean", description: e }), O = y("Sheet name. Omit for the sheet the user is looking at."), et = y("Slide id, as `inspect` reports it.");
2762
- function m(e, t, n, r, o, i) {
2881
+ }, hl = "connector", gl = "context.collect", A = (e) => ({ type: "string", description: e }), b = (e) => ({ type: "number", description: e }), z = (e) => ({ type: "boolean", description: e }), v = A("Sheet name. Omit for the sheet the user is looking at."), ot = A("Slide id, as `inspect` reports it.");
2882
+ function y(e, t, n, r, o, i) {
2763
2883
  return {
2764
2884
  op: e,
2765
2885
  kinds: t,
@@ -2769,24 +2889,24 @@ function m(e, t, n, r, o, i) {
2769
2889
  visible: i.visible
2770
2890
  };
2771
2891
  }
2772
- const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt = { undoable: !1, visible: !0 }, J = { undoable: !1, visible: !1 }, vo = [
2773
- m(
2892
+ const K = { undoable: !1, visible: !0 }, _ = { undoable: !0, visible: !0 }, it = { undoable: !1, visible: !0 }, J = { undoable: !1, visible: !1 }, xo = [
2893
+ y(
2774
2894
  "pdf.goToPage",
2775
2895
  ["pdf"],
2776
2896
  "Scroll the viewer to a page.",
2777
- { page: g("1-based page number.") },
2897
+ { page: b("1-based page number.") },
2778
2898
  ["page"],
2779
2899
  K
2780
2900
  ),
2781
- m(
2901
+ y(
2782
2902
  "pdf.search",
2783
2903
  ["pdf"],
2784
2904
  "Search the document and highlight the matches, as the find bar does.",
2785
- { query: y("Text to find."), next: z("Jump to the next match instead of the first.") },
2905
+ { query: A("Text to find."), next: z("Jump to the next match instead of the first.") },
2786
2906
  ["query"],
2787
2907
  K
2788
2908
  ),
2789
- m(
2909
+ y(
2790
2910
  "pdf.setTool",
2791
2911
  ["pdf"],
2792
2912
  "Select a markup tool for the user, so their next click draws it.",
@@ -2800,21 +2920,21 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
2800
2920
  ["tool"],
2801
2921
  K
2802
2922
  ),
2803
- m(
2923
+ y(
2804
2924
  "pdf.fillField",
2805
2925
  ["pdf"],
2806
2926
  "Fill one form field of a fillable PDF.",
2807
2927
  {
2808
- field: y("Field name, exactly as `inspect` reports it under `fields`."),
2928
+ field: A("Field name, exactly as `inspect` reports it under `fields`."),
2809
2929
  value: {
2810
2930
  type: ["string", "boolean"],
2811
2931
  description: "Text for a text field, true/false for a checkbox or radio."
2812
2932
  }
2813
2933
  },
2814
2934
  ["field", "value"],
2815
- S
2935
+ _
2816
2936
  ),
2817
- m(
2937
+ y(
2818
2938
  "pdf.reorderPages",
2819
2939
  ["pdf"],
2820
2940
  "Put the pages in a different order. Pages left out are deleted.",
@@ -2826,52 +2946,52 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
2826
2946
  }
2827
2947
  },
2828
2948
  ["order"],
2829
- tt
2949
+ it
2830
2950
  ),
2831
- m(
2951
+ y(
2832
2952
  "pdf.deletePages",
2833
2953
  ["pdf"],
2834
2954
  "Remove pages, keeping the rest in order.",
2835
2955
  { pages: { type: "array", items: { type: "number" }, description: "1-based page numbers." } },
2836
2956
  ["pages"],
2837
- tt
2957
+ it
2838
2958
  ),
2839
- m(
2959
+ y(
2840
2960
  "pdf.addNote",
2841
2961
  ["pdf"],
2842
2962
  "Place a text note on a page. Written on save; not visible before that.",
2843
2963
  {
2844
- page: g("1-based page number."),
2845
- text: y("The note's text."),
2846
- left: g("Distance from the left edge, in PDF points (72 per inch)."),
2847
- top: g("Distance from the top edge, in PDF points."),
2848
- width: g("Box width in points. Omit for a sensible default."),
2849
- height: g("Box height in points. Omit for a sensible default."),
2850
- fontSize: g("Font size in points. Omit for 12.")
2964
+ page: b("1-based page number."),
2965
+ text: A("The note's text."),
2966
+ left: b("Distance from the left edge, in PDF points (72 per inch)."),
2967
+ top: b("Distance from the top edge, in PDF points."),
2968
+ width: b("Box width in points. Omit for a sensible default."),
2969
+ height: b("Box height in points. Omit for a sensible default."),
2970
+ fontSize: b("Font size in points. Omit for 12.")
2851
2971
  },
2852
2972
  ["page", "text", "left", "top"],
2853
2973
  J
2854
2974
  ),
2855
- m(
2975
+ y(
2856
2976
  "pdf.highlightText",
2857
2977
  ["pdf"],
2858
2978
  "Highlight a phrase on a page. Written on save; not visible before that.",
2859
2979
  {
2860
- page: g("1-based page number."),
2861
- text: y("The exact phrase to highlight, as it appears in the page's text."),
2862
- occurrence: g("Which occurrence on that page, 1-based. Omit for the first.")
2980
+ page: b("1-based page number."),
2981
+ text: A("The exact phrase to highlight, as it appears in the page's text."),
2982
+ occurrence: b("Which occurrence on that page, 1-based. Omit for the first.")
2863
2983
  },
2864
2984
  ["page", "text"],
2865
2985
  J
2866
2986
  )
2867
- ], Oo = [
2868
- m(
2987
+ ], Ro = [
2988
+ y(
2869
2989
  "sheet.setValues",
2870
2990
  ["sheet"],
2871
2991
  "Write a block of values. The block's shape must match the range.",
2872
2992
  {
2873
- sheet: O,
2874
- range: y("A1 notation, e.g. `B2:D5` or a single `A1`."),
2993
+ sheet: v,
2994
+ range: A("A1 notation, e.g. `B2:D5` or a single `A1`."),
2875
2995
  values: {
2876
2996
  type: "array",
2877
2997
  items: { type: "array", items: { type: ["string", "number", "boolean", "null"] } },
@@ -2879,261 +2999,261 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
2879
2999
  }
2880
3000
  },
2881
3001
  ["range", "values"],
2882
- S
3002
+ _
2883
3003
  ),
2884
- m(
3004
+ y(
2885
3005
  "sheet.setFormula",
2886
3006
  ["sheet"],
2887
3007
  "Put a formula in every cell of a range.",
2888
- { sheet: O, range: y("A1 notation."), formula: y("Including the leading `=`.") },
3008
+ { sheet: v, range: A("A1 notation."), formula: A("Including the leading `=`.") },
2889
3009
  ["range", "formula"],
2890
- S
3010
+ _
2891
3011
  ),
2892
- m(
3012
+ y(
2893
3013
  "sheet.setStyle",
2894
3014
  ["sheet"],
2895
3015
  "Change the look of a range. Only the properties you pass are touched.",
2896
3016
  {
2897
- sheet: O,
2898
- range: y("A1 notation."),
3017
+ sheet: v,
3018
+ range: A("A1 notation."),
2899
3019
  bold: z("Bold on or off."),
2900
3020
  italic: z("Italic on or off."),
2901
- fontSize: g("Point size."),
2902
- fontColor: y("CSS colour, e.g. `#b91c1c`."),
2903
- background: y("CSS colour for the cell fill."),
3021
+ fontSize: b("Point size."),
3022
+ fontColor: A("CSS colour, e.g. `#b91c1c`."),
3023
+ background: A("CSS colour for the cell fill."),
2904
3024
  horizontalAlignment: {
2905
3025
  type: "string",
2906
3026
  enum: ["left", "center", "right"],
2907
3027
  description: "Horizontal alignment."
2908
3028
  },
2909
- numberFormat: y("Number format pattern, e.g. `#,##0.00` or `0%`.")
3029
+ numberFormat: A("Number format pattern, e.g. `#,##0.00` or `0%`.")
2910
3030
  },
2911
3031
  ["range"],
2912
- S
3032
+ _
2913
3033
  ),
2914
- m(
3034
+ y(
2915
3035
  "sheet.insertRows",
2916
3036
  ["sheet"],
2917
3037
  "Insert empty rows, pushing the rest down.",
2918
3038
  {
2919
- sheet: O,
2920
- at: g("1-based row number to insert before."),
2921
- count: g("How many. Omit for 1.")
3039
+ sheet: v,
3040
+ at: b("1-based row number to insert before."),
3041
+ count: b("How many. Omit for 1.")
2922
3042
  },
2923
3043
  ["at"],
2924
- S
3044
+ _
2925
3045
  ),
2926
- m(
3046
+ y(
2927
3047
  "sheet.deleteRows",
2928
3048
  ["sheet"],
2929
3049
  "Delete rows, pulling the rest up.",
2930
- { sheet: O, at: g("1-based first row to delete."), count: g("How many. Omit for 1.") },
3050
+ { sheet: v, at: b("1-based first row to delete."), count: b("How many. Omit for 1.") },
2931
3051
  ["at"],
2932
- S
3052
+ _
2933
3053
  ),
2934
- m(
3054
+ y(
2935
3055
  "sheet.insertColumns",
2936
3056
  ["sheet"],
2937
3057
  "Insert empty columns, pushing the rest right.",
2938
3058
  {
2939
- sheet: O,
2940
- at: g("1-based column number to insert before."),
2941
- count: g("How many. Omit for 1.")
3059
+ sheet: v,
3060
+ at: b("1-based column number to insert before."),
3061
+ count: b("How many. Omit for 1.")
2942
3062
  },
2943
3063
  ["at"],
2944
- S
3064
+ _
2945
3065
  ),
2946
- m(
3066
+ y(
2947
3067
  "sheet.deleteColumns",
2948
3068
  ["sheet"],
2949
3069
  "Delete columns, pulling the rest left.",
2950
3070
  {
2951
- sheet: O,
2952
- at: g("1-based first column to delete."),
2953
- count: g("How many. Omit for 1.")
3071
+ sheet: v,
3072
+ at: b("1-based first column to delete."),
3073
+ count: b("How many. Omit for 1.")
2954
3074
  },
2955
3075
  ["at"],
2956
- S
3076
+ _
2957
3077
  ),
2958
- m(
3078
+ y(
2959
3079
  "sheet.merge",
2960
3080
  ["sheet"],
2961
3081
  "Merge a range into one cell.",
2962
- { sheet: O, range: y("A1 notation.") },
3082
+ { sheet: v, range: A("A1 notation.") },
2963
3083
  ["range"],
2964
- S
3084
+ _
2965
3085
  ),
2966
- m(
3086
+ y(
2967
3087
  "sheet.unmerge",
2968
3088
  ["sheet"],
2969
3089
  "Break merged cells in a range apart.",
2970
- { sheet: O, range: y("A1 notation.") },
3090
+ { sheet: v, range: A("A1 notation.") },
2971
3091
  ["range"],
2972
- S
3092
+ _
2973
3093
  ),
2974
- m(
3094
+ y(
2975
3095
  "sheet.sort",
2976
3096
  ["sheet"],
2977
3097
  "Sort a range on one of its columns.",
2978
3098
  {
2979
- sheet: O,
2980
- range: y("A1 notation covering the rows to sort, header excluded."),
2981
- column: g("1-based column *within the range*, not within the sheet."),
3099
+ sheet: v,
3100
+ range: A("A1 notation covering the rows to sort, header excluded."),
3101
+ column: b("1-based column *within the range*, not within the sheet."),
2982
3102
  ascending: z("Ascending. Omit for ascending.")
2983
3103
  },
2984
3104
  ["range", "column"],
2985
- S
3105
+ _
2986
3106
  ),
2987
- m(
3107
+ y(
2988
3108
  "sheet.insertSheet",
2989
3109
  ["sheet"],
2990
3110
  "Add a new sheet.",
2991
- { name: y("Name for the new sheet.") },
3111
+ { name: A("Name for the new sheet.") },
2992
3112
  ["name"],
2993
- S
3113
+ _
2994
3114
  ),
2995
- m(
3115
+ y(
2996
3116
  "sheet.renameSheet",
2997
3117
  ["sheet"],
2998
3118
  "Rename a sheet.",
2999
- { sheet: y("Current name."), name: y("New name.") },
3119
+ { sheet: A("Current name."), name: A("New name.") },
3000
3120
  ["sheet", "name"],
3001
- S
3121
+ _
3002
3122
  ),
3003
- m(
3123
+ y(
3004
3124
  "sheet.deleteSheet",
3005
3125
  ["sheet"],
3006
3126
  "Remove a sheet and everything on it.",
3007
- { sheet: y("Name of the sheet to delete.") },
3127
+ { sheet: A("Name of the sheet to delete.") },
3008
3128
  ["sheet"],
3009
- S
3129
+ _
3010
3130
  ),
3011
- m(
3131
+ y(
3012
3132
  "sheet.activate",
3013
3133
  ["sheet"],
3014
3134
  "Show the user a sheet and select a range on it.",
3015
- { sheet: O, range: y("A1 notation to select. Omit to only switch sheets.") },
3135
+ { sheet: v, range: A("A1 notation to select. Omit to only switch sheets.") },
3016
3136
  [],
3017
3137
  K
3018
3138
  )
3019
- ], Co = [
3020
- m(
3139
+ ], Do = [
3140
+ y(
3021
3141
  "word.replaceParagraph",
3022
3142
  ["word"],
3023
3143
  "Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
3024
3144
  {
3025
- at: g("The offset the paragraph starts at, exactly as `inspect` prints it."),
3026
- text: y("The new text for that paragraph. A newline starts a further paragraph.")
3145
+ at: b("The offset the paragraph starts at, exactly as `inspect` prints it."),
3146
+ text: A("The new text for that paragraph. A newline starts a further paragraph.")
3027
3147
  },
3028
3148
  ["at", "text"],
3029
- S
3149
+ _
3030
3150
  ),
3031
- m(
3151
+ y(
3032
3152
  "word.replaceRange",
3033
3153
  ["word"],
3034
3154
  "Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",
3035
3155
  {
3036
- start: g("Character offset where the replaced text starts, as `inspect` reports offsets."),
3037
- end: g("Character offset just past the last character to replace."),
3038
- text: y("The replacement text. A newline starts a new paragraph.")
3156
+ start: b("Character offset where the replaced text starts, as `inspect` reports offsets."),
3157
+ end: b("Character offset just past the last character to replace."),
3158
+ text: A("The replacement text. A newline starts a new paragraph.")
3039
3159
  },
3040
3160
  ["start", "end", "text"],
3041
- S
3161
+ _
3042
3162
  ),
3043
- m(
3163
+ y(
3044
3164
  "word.insertText",
3045
3165
  ["word"],
3046
3166
  "Insert text at a character offset, without removing anything.",
3047
3167
  {
3048
- index: g("Character offset, as `inspect` reports offsets."),
3049
- text: y("The text to insert.")
3168
+ index: b("Character offset, as `inspect` reports offsets."),
3169
+ text: A("The text to insert.")
3050
3170
  },
3051
3171
  ["index", "text"],
3052
- S
3172
+ _
3053
3173
  ),
3054
- m(
3174
+ y(
3055
3175
  "word.appendText",
3056
3176
  ["word"],
3057
3177
  "Add text at the end of the document.",
3058
- { text: y("The text to append.") },
3178
+ { text: A("The text to append.") },
3059
3179
  ["text"],
3060
- S
3180
+ _
3061
3181
  ),
3062
- m(
3182
+ y(
3063
3183
  "word.insertParagraph",
3064
3184
  ["word"],
3065
3185
  "Start a new paragraph, optionally with text in it.",
3066
3186
  {
3067
- text: y("Paragraph text. Newlines start further paragraphs."),
3068
- index: g("Character offset to insert at. Omit for the end of the document.")
3187
+ text: A("Paragraph text. Newlines start further paragraphs."),
3188
+ index: b("Character offset to insert at. Omit for the end of the document.")
3069
3189
  },
3070
3190
  [],
3071
- S
3191
+ _
3072
3192
  ),
3073
- m(
3193
+ y(
3074
3194
  "word.setSelection",
3075
3195
  ["word"],
3076
3196
  "Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",
3077
- { start: g("Start character offset."), end: g("End character offset. Omit for a caret.") },
3197
+ { start: b("Start character offset."), end: b("End character offset. Omit for a caret.") },
3078
3198
  ["start"],
3079
3199
  K
3080
3200
  )
3081
- ], No = [
3082
- m(
3201
+ ], $o = [
3202
+ y(
3083
3203
  "slides.setText",
3084
3204
  ["slides"],
3085
3205
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
3086
3206
  {
3087
- slide: et,
3088
- element: y("Element id, as `inspect` reports it."),
3089
- text: y("The new text.")
3207
+ slide: ot,
3208
+ element: A("Element id, as `inspect` reports it."),
3209
+ text: A("The new text.")
3090
3210
  },
3091
3211
  ["slide", "element", "text"],
3092
3212
  J
3093
3213
  ),
3094
- m(
3214
+ y(
3095
3215
  "slides.setTransform",
3096
3216
  ["slides"],
3097
3217
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
3098
3218
  {
3099
- slide: et,
3100
- element: y("Element id."),
3101
- left: g("Distance from the left edge, in pixels."),
3102
- top: g("Distance from the top edge, in pixels."),
3103
- width: g("Width in pixels."),
3104
- height: g("Height in pixels.")
3219
+ slide: ot,
3220
+ element: A("Element id."),
3221
+ left: b("Distance from the left edge, in pixels."),
3222
+ top: b("Distance from the top edge, in pixels."),
3223
+ width: b("Width in pixels."),
3224
+ height: b("Height in pixels.")
3105
3225
  },
3106
3226
  ["slide", "element"],
3107
3227
  J
3108
3228
  )
3109
- ], Ut = [
3110
- ...vo,
3111
- ...Oo,
3112
- ...Co,
3113
- ...No
3229
+ ], Ht = [
3230
+ ...xo,
3231
+ ...Ro,
3232
+ ...Do,
3233
+ ...$o
3114
3234
  ];
3115
- function fl(e) {
3116
- return Ut.filter((t) => t.kinds.includes(e));
3235
+ function yl(e) {
3236
+ return Ht.filter((t) => t.kinds.includes(e));
3117
3237
  }
3118
- function pl(e) {
3119
- return Ut.find((t) => t.op === e);
3238
+ function bl(e) {
3239
+ return Ht.find((t) => t.op === e);
3120
3240
  }
3121
- const ml = "documents.describe", gl = "documents.inspect", hl = "documents.apply";
3122
- function yl(e) {
3241
+ const Al = "documents.describe", El = "documents.inspect", Sl = "documents.apply";
3242
+ function _l(e) {
3123
3243
  const t = e.indexOf(":");
3124
3244
  if (t !== -1) return e.slice(0, t);
3125
3245
  const n = e.indexOf(".");
3126
3246
  return n === -1 ? e : e.slice(0, n);
3127
3247
  }
3128
- const bl = "installation-id";
3129
- function Al(e) {
3248
+ const Tl = "installation-id";
3249
+ function Il(e) {
3130
3250
  const t = [];
3131
3251
  for (const n of Object.keys(e))
3132
3252
  for (const r of Object.keys(e[n]))
3133
3253
  t.push({ lang: n, key: r, value: e[n][r] });
3134
3254
  return t;
3135
3255
  }
3136
- const El = "notification-source", Sl = (e, t) => `${e}.pref.${t}`, _l = {
3256
+ const wl = "notification-source", Ml = (e, t) => `${e}.pref.${t}`, kl = {
3137
3257
  ai: [
3138
3258
  "account.read",
3139
3259
  "account.write",
@@ -3268,48 +3388,48 @@ const El = "notification-source", Sl = (e, t) => `${e}.pref.${t}`, _l = {
3268
3388
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
3269
3389
  user: ["user.read", "user.write"],
3270
3390
  work: ["item.read", "item.write", "project.read", "project.write"]
3271
- }, Kt = 9e4, xo = ["out_of_office"], Ft = (e) => xo.includes(e);
3272
- function Tl(e, t, n) {
3273
- const r = n - e < Kt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
3391
+ }, jt = 9e4, Lo = ["out_of_office"], Wt = (e) => Lo.includes(e);
3392
+ function vl(e, t, n) {
3393
+ const r = n - e < jt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
3274
3394
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
3275
3395
  const i = o.status;
3276
- return !r && !Ft(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
3396
+ return !r && !Wt(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
3277
3397
  }
3278
- function wl(e, t) {
3279
- const n = t - e.lastSeenAt < Kt, r = n || Ft(e.status) ? e.status : "offline";
3398
+ function Ol(e, t) {
3399
+ const n = t - e.lastSeenAt < jt, r = n || Wt(e.status) ? e.status : "offline";
3280
3400
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
3281
3401
  }
3282
- function Il(e, t) {
3402
+ function Cl(e, t) {
3283
3403
  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 };
3284
3404
  }
3285
- function Ml(e) {
3405
+ function Nl(e) {
3286
3406
  return e.providerAvailable && e.allowed;
3287
3407
  }
3288
- const kl = "resources.describe", vl = "resources.search", Ol = "resources.resolve", Cl = "resources.attached";
3289
- function Nl(e) {
3408
+ const xl = "resources.describe", Rl = "resources.search", Dl = "resources.resolve", $l = "resources.attached";
3409
+ function Ll(e) {
3290
3410
  const t = e.indexOf(":");
3291
3411
  return t === -1 ? e : e.slice(0, t);
3292
3412
  }
3293
- const xl = "/provider/scope/related", Rl = "/provider/scope/read", Bt = "auth";
3294
- function Ht(e) {
3413
+ const Pl = "/provider/scope/related", Ul = "/provider/scope/read", Gt = "auth";
3414
+ function Vt(e) {
3295
3415
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
3296
3416
  return t ? t[1] : null;
3297
3417
  }
3298
- function Dl(e) {
3299
- const t = Ht(e);
3300
- return t ? t !== Bt : typeof e == "string" && e.startsWith("/wake");
3418
+ function Kl(e) {
3419
+ const t = Vt(e);
3420
+ return t ? t !== Gt : typeof e == "string" && e.startsWith("/wake");
3301
3421
  }
3302
- function $l(e) {
3303
- return typeof e != "string" || e === "" || e === "/" ? !0 : Ht(e) === Bt;
3422
+ function Fl(e) {
3423
+ return typeof e != "string" || e === "" || e === "/" ? !0 : Vt(e) === Gt;
3304
3424
  }
3305
- function Ro(e) {
3425
+ function Po(e) {
3306
3426
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3307
3427
  }
3308
- function Do(e) {
3309
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Ro(r)}`).join("");
3428
+ function Uo(e) {
3429
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Po(r)}`).join("");
3310
3430
  return new RegExp(`^${n}\\/?$`);
3311
3431
  }
3312
- function $o(e, t) {
3432
+ function Ko(e, t) {
3313
3433
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
3314
3434
  return n.forEach((i, s) => {
3315
3435
  if (i.startsWith(":")) {
@@ -3318,14 +3438,14 @@ function $o(e, t) {
3318
3438
  }
3319
3439
  }), o;
3320
3440
  }
3321
- function Lo(e) {
3441
+ function Fo(e) {
3322
3442
  return e.publicBasePath ?? `/apps/${e.name}`;
3323
3443
  }
3324
- function Ll(e) {
3444
+ function Bl(e) {
3325
3445
  const t = [];
3326
3446
  for (const n of e) {
3327
3447
  if (!n?.name) continue;
3328
- const r = Lo(n);
3448
+ const r = Fo(n);
3329
3449
  for (const o of n.routes ?? []) {
3330
3450
  if (!o.public) continue;
3331
3451
  const i = o.path === "/" ? "" : o.path;
@@ -3339,7 +3459,7 @@ function Ll(e) {
3339
3459
  }
3340
3460
  return t;
3341
3461
  }
3342
- function Po(e, t) {
3462
+ function Bo(e, t) {
3343
3463
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
3344
3464
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
3345
3465
  const i = n[o].startsWith(":"), s = r[o].startsWith(":");
@@ -3347,17 +3467,17 @@ function Po(e, t) {
3347
3467
  }
3348
3468
  return n.length > r.length;
3349
3469
  }
3350
- function Uo(e, t) {
3470
+ function Ho(e, t) {
3351
3471
  if (typeof e != "string") return null;
3352
3472
  let n = null;
3353
3473
  for (const r of t)
3354
- Do(r.pattern).test(e) && (!n || Po(r.pattern, n.pattern)) && (n = r);
3355
- return n ? { ...n, params: { ...n.props, ...$o(n.pattern, e) } } : null;
3474
+ Uo(r.pattern).test(e) && (!n || Bo(r.pattern, n.pattern)) && (n = r);
3475
+ return n ? { ...n, params: { ...n.props, ...Ko(n.pattern, e) } } : null;
3356
3476
  }
3357
- function Pl(e, t) {
3358
- return Uo(e, t) !== null;
3477
+ function Hl(e, t) {
3478
+ return Ho(e, t) !== null;
3359
3479
  }
3360
- const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20, Ko = {
3480
+ const jl = 10 * 1024 * 1024, Wl = 25 * 1024 * 1024, Gl = "sync-target", Vl = 20, jo = {
3361
3481
  afrikaans: [
3362
3482
  "[Muziek]",
3363
3483
  "(C) TV GELDERLAND 2021",
@@ -3507,14 +3627,14 @@ const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20,
3507
3627
  "[MÚSICA]",
3508
3628
  "[Music cuts in British]"
3509
3629
  ]
3510
- }, Fo = (e) => {
3630
+ }, Wo = (e) => {
3511
3631
  let t = e;
3512
- return Object.values(Ko).forEach((n) => {
3632
+ return Object.values(jo).forEach((n) => {
3513
3633
  n.forEach((r) => {
3514
3634
  t = t.replaceAll(r, "");
3515
3635
  });
3516
3636
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
3517
- }, Bo = 6e4, Ho = 8e3, jo = 2, Go = 0.4, Wo = 3, Vo = /* @__PURE__ */ new Set([
3637
+ }, Go = 6e4, Vo = 8e3, Xo = 2, zo = 0.4, Yo = 3, qo = /* @__PURE__ */ new Set([
3518
3638
  "aan",
3519
3639
  "als",
3520
3640
  "ben",
@@ -3627,13 +3747,13 @@ const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20,
3627
3747
  "you",
3628
3748
  "your"
3629
3749
  ]);
3630
- function zo(e) {
3750
+ function Jo(e) {
3631
3751
  const t = /* @__PURE__ */ new Set();
3632
3752
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
3633
- n.length < Wo || Vo.has(n) || t.add(n);
3753
+ n.length < Yo || qo.has(n) || t.add(n);
3634
3754
  return [...t];
3635
3755
  }
3636
- function Yo(e, t) {
3756
+ function Zo(e, t) {
3637
3757
  if (!e.length) return 0;
3638
3758
  if (!t.length) return 1;
3639
3759
  const n = new Set(t), r = new Set(e);
@@ -3641,38 +3761,38 @@ function Yo(e, t) {
3641
3761
  for (const i of r) n.has(i) || (o += 1);
3642
3762
  return o / r.size;
3643
3763
  }
3644
- function Xo(e, t = Bo) {
3764
+ function Qo(e, t = Go) {
3645
3765
  const n = e.filter((s) => !s.partial && typeof s.text == "string");
3646
3766
  if (!n.length) return { text: "", segmentCount: 0 };
3647
3767
  const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
3648
- return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Fo(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
3768
+ return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Wo(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
3649
3769
  }
3650
- const qo = 60;
3651
- function Hl(e, t, n = qo) {
3770
+ const ei = 60;
3771
+ function Xl(e, t, n = ei) {
3652
3772
  const r = new Set(e), o = [...e];
3653
3773
  for (const i of t)
3654
3774
  !i || r.has(i) || (r.add(i), o.push(i));
3655
3775
  return o.slice(-n);
3656
3776
  }
3657
- function jl(e) {
3777
+ function zl(e) {
3658
3778
  const { segments: t, now: n, state: r } = e;
3659
- if (r.lastTriggerAt && n - r.lastTriggerAt < Ho)
3779
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Vo)
3660
3780
  return { trigger: !1, reason: "too_soon" };
3661
- const o = Xo(t, e.windowMs);
3781
+ const o = Qo(t, e.windowMs);
3662
3782
  if (!o.text) return { trigger: !1, reason: "no_speech" };
3663
3783
  const i = o.segmentCount - (r.lastSegmentCount ?? 0);
3664
- if (r.lastQueryTerms && i < jo)
3784
+ if (r.lastQueryTerms && i < Xo)
3665
3785
  return { trigger: !1, reason: "too_few_new" };
3666
- const s = zo(o.text);
3667
- return s.length ? r.lastQueryTerms?.length && Yo(s, r.lastQueryTerms) < Go ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
3786
+ const s = Jo(o.text);
3787
+ return s.length ? r.lastQueryTerms?.length && Zo(s, r.lastQueryTerms) < zo ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
3668
3788
  }
3669
- const Gl = [
3789
+ const Yl = [
3670
3790
  "personal",
3671
3791
  "workspace",
3672
3792
  "connections",
3673
3793
  "work",
3674
3794
  "ai"
3675
- ], Wl = "navNotice", Me = {
3795
+ ], ql = "navNotice", Ce = {
3676
3796
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
3677
3797
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
3678
3798
  // An over-permissive key is harmless — it simply matches nothing.
@@ -3695,53 +3815,53 @@ const Gl = [
3695
3815
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
3696
3816
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
3697
3817
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
3698
- }, Jo = "NL", Zo = 15, Qo = 8, ei = Array.from(
3699
- new Set(Object.values(Me).map((e) => e.callingCode))
3818
+ }, ti = "NL", ni = 15, ri = 8, oi = Array.from(
3819
+ new Set(Object.values(Ce).map((e) => e.callingCode))
3700
3820
  ).sort((e, t) => t.length - e.length);
3701
- function nt(e) {
3821
+ function st(e) {
3702
3822
  if (e)
3703
- return Me[e.trim().toUpperCase()];
3823
+ return Ce[e.trim().toUpperCase()];
3704
3824
  }
3705
3825
  function Y(e, t) {
3706
3826
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
3707
3827
  }
3708
- function rt(e) {
3709
- if (e.length > Zo) return null;
3710
- for (const t of ei) {
3828
+ function at(e) {
3829
+ if (e.length > ni) return null;
3830
+ for (const t of oi) {
3711
3831
  if (!e.startsWith(t)) continue;
3712
3832
  const n = e.slice(t.length);
3713
- for (const r of Object.values(Me)) {
3833
+ for (const r of Object.values(Ce)) {
3714
3834
  if (r.callingCode !== t) continue;
3715
3835
  const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
3716
3836
  if (Y(i, r)) return `+${t}${i}`;
3717
3837
  }
3718
3838
  return null;
3719
3839
  }
3720
- return e.length < Qo ? null : `+${e}`;
3840
+ return e.length < ri ? null : `+${e}`;
3721
3841
  }
3722
- function ti(e) {
3842
+ function ii(e) {
3723
3843
  let t = e.trim();
3724
3844
  const n = t.match(/^(sips?|tel|whatsapp):/i);
3725
3845
  n && (t = t.slice(n[0].length));
3726
3846
  const r = t.indexOf("@");
3727
3847
  return r >= 0 && (t = t.slice(0, r)), t.trim();
3728
3848
  }
3729
- function Vl(e) {
3849
+ function Jl(e) {
3730
3850
  if (!e) return !1;
3731
3851
  const t = e.indexOf("@");
3732
3852
  if (t <= 0) return !1;
3733
3853
  const n = e.slice(0, t).trim();
3734
3854
  return !/^[+\d\s().-]+$/.test(n);
3735
3855
  }
3736
- function ot(e, t) {
3856
+ function ct(e, t) {
3737
3857
  if (!e) return null;
3738
- const n = ti(e);
3858
+ const n = ii(e);
3739
3859
  if (!n) return null;
3740
3860
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
3741
3861
  if (!o) return null;
3742
- if (r) return rt(o);
3743
- if (o.startsWith("00")) return rt(o.slice(2));
3744
- const i = nt(t) ?? nt(Jo);
3862
+ if (r) return at(o);
3863
+ if (o.startsWith("00")) return at(o.slice(2));
3864
+ const i = st(t) ?? st(ti);
3745
3865
  if (!i) return null;
3746
3866
  const s = i.trunkPrefix;
3747
3867
  if (s && o.startsWith(s)) {
@@ -3754,22 +3874,22 @@ function ot(e, t) {
3754
3874
  }
3755
3875
  return !s && Y(o, i) ? `+${i.callingCode}${o}` : null;
3756
3876
  }
3757
- function zl(e, t = 9) {
3877
+ function Zl(e, t = 9) {
3758
3878
  const n = (e ?? "").replace(/\D/g, "");
3759
3879
  return n.length < t ? null : n.slice(-t);
3760
3880
  }
3761
- function jt(e) {
3881
+ function Xt(e) {
3762
3882
  if (!e) return null;
3763
3883
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
3764
3884
  if (n <= 0 || n === t.length - 1) return null;
3765
3885
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
3766
3886
  return !r || !o.includes(".") ? null : `${r}@${o}`;
3767
3887
  }
3768
- function Yl(e) {
3769
- const t = jt(e);
3888
+ function Ql(e) {
3889
+ const t = Xt(e);
3770
3890
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
3771
3891
  }
3772
- const ni = /* @__PURE__ */ new Set([
3892
+ const si = /* @__PURE__ */ new Set([
3773
3893
  "co.uk",
3774
3894
  "org.uk",
3775
3895
  "gov.uk",
@@ -3779,14 +3899,14 @@ const ni = /* @__PURE__ */ new Set([
3779
3899
  "com.br",
3780
3900
  "co.za"
3781
3901
  ]);
3782
- function ri(e) {
3902
+ function ai(e) {
3783
3903
  if (!e) return null;
3784
3904
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
3785
3905
  if (t.length < 2) return null;
3786
3906
  const n = t.slice(-2).join(".");
3787
- return ni.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
3907
+ return si.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
3788
3908
  }
3789
- const oi = /* @__PURE__ */ new Set([
3909
+ const ci = /* @__PURE__ */ new Set([
3790
3910
  "gmail.com",
3791
3911
  "googlemail.com",
3792
3912
  "outlook.com",
@@ -3831,34 +3951,34 @@ const oi = /* @__PURE__ */ new Set([
3831
3951
  "proximus.be",
3832
3952
  "scarlet.be"
3833
3953
  ]);
3834
- function Xl(e) {
3835
- const t = ri(e);
3836
- return t ? oi.has(t) : !1;
3954
+ function eu(e) {
3955
+ const t = ai(e);
3956
+ return t ? ci.has(t) : !1;
3837
3957
  }
3838
- function ql(e) {
3958
+ function tu(e) {
3839
3959
  if (!e) return !1;
3840
3960
  const t = e.trim().toLowerCase();
3841
3961
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
3842
3962
  }
3843
- function Jl(e, t, n) {
3963
+ function nu(e, t, n) {
3844
3964
  if (!e || !t) return null;
3845
3965
  const r = e.trim().toLowerCase();
3846
3966
  if (r === "tel" || r === "sms" || r === "whatsapp") {
3847
- const i = ot(t, n);
3967
+ const i = ct(t, n);
3848
3968
  return i ? `tel:${i}` : null;
3849
3969
  }
3850
3970
  if (r === "fax") {
3851
- const i = ot(t, n);
3971
+ const i = ct(t, n);
3852
3972
  return i ? `fax:${i}` : null;
3853
3973
  }
3854
3974
  if (r === "mailto" || r === "email") {
3855
- const i = jt(t);
3975
+ const i = Xt(t);
3856
3976
  return i ? `mailto:${i}` : null;
3857
3977
  }
3858
3978
  const o = t.trim().toLowerCase();
3859
3979
  return o ? `${r}:${o}` : null;
3860
3980
  }
3861
- const ii = [
3981
+ const li = [
3862
3982
  /<blockquote/i,
3863
3983
  /class="?gmail_quote/i,
3864
3984
  // Gmail quote container
@@ -3871,72 +3991,72 @@ const ii = [
3871
3991
  // Outlook underscore separator before "From:"
3872
3992
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
3873
3993
  // Gmail "On <date> <name> wrote:"
3874
- ], it = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, si = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3875
- function ai(e) {
3994
+ ], lt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ui = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
3995
+ function di(e) {
3876
3996
  const t = e.split(`
3877
3997
  `);
3878
3998
  for (let n = 0; n < t.length; n++)
3879
- if (si.test(t[n]) || it.test(t[n]) && t.slice(n + 1, n + 4).some((r) => it.test(r)))
3999
+ if (ui.test(t[n]) || lt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => lt.test(r)))
3880
4000
  return t.slice(0, n).join(`
3881
4001
  `).trim();
3882
4002
  return e;
3883
4003
  }
3884
- const ci = /^(?:https?:|mailto:|tel:)/i, li = /^(?:https?:|cid:|data:image\/)/i;
3885
- function ae(e, t) {
4004
+ const fi = /^(?:https?:|mailto:|tel:)/i, pi = /^(?:https?:|cid:|data:image\/)/i;
4005
+ function ce(e, t) {
3886
4006
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
3887
4007
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
3888
4008
  }
3889
- const ui = /(!\[[^\]]*\]\([^)]*\))/;
3890
- function st(e) {
3891
- return e.replace(/\s+/g, " ").trim().split(ui).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4009
+ const mi = /(!\[[^\]]*\]\([^)]*\))/;
4010
+ function ut(e) {
4011
+ return e.replace(/\s+/g, " ").trim().split(mi).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
3892
4012
  }
3893
- function ce(e) {
4013
+ function le(e) {
3894
4014
  return e.replace(
3895
4015
  /[()\s<>"]/g,
3896
4016
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
3897
4017
  );
3898
4018
  }
3899
- function di(e) {
4019
+ function hi(e) {
3900
4020
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
3901
- const o = ae(r, "src");
3902
- return li.test(o) ? `![${st(ae(r, "alt"))}](${ce(o)})` : "";
4021
+ const o = ce(r, "src");
4022
+ return pi.test(o) ? `![${ut(ce(r, "alt"))}](${le(o)})` : "";
3903
4023
  }).replace(
3904
4024
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
3905
4025
  (n, r, o) => {
3906
- const i = st(o.replace(/<[^>]*>/g, "")), s = ae(r, "href");
3907
- return ci.test(s) ? `[${i || ce(s)}](${ce(s)})` : i;
4026
+ const i = ut(o.replace(/<[^>]*>/g, "")), s = ce(r, "href");
4027
+ return fi.test(s) ? `[${i || le(s)}](${le(s)})` : i;
3908
4028
  }
3909
4029
  );
3910
4030
  }
3911
- const fi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, pi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, mi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
3912
- function gi(e, t) {
4031
+ const gi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, yi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, bi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4032
+ function Ai(e, t) {
3913
4033
  return /<table\b/i.test(e) || e.includes(`
3914
4034
 
3915
4035
  |`) || t.includes("![") || t.length > 200;
3916
4036
  }
3917
- const hi = 40, yi = { left: "---", center: ":---:", right: "---:" };
3918
- function bi(e) {
4037
+ const Ei = 40, Si = { left: "---", center: ":---:", right: "---:" };
4038
+ function _i(e) {
3919
4039
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
3920
4040
  return t ? t[1].toLowerCase() : "left";
3921
4041
  }
3922
- function Ai(e) {
4042
+ function Ti(e) {
3923
4043
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
3924
4044
  }
3925
- function Ei(e) {
4045
+ function Ii(e) {
3926
4046
  const t = [];
3927
- for (const s of e.matchAll(pi)) {
4047
+ for (const s of e.matchAll(yi)) {
3928
4048
  const a = [];
3929
- for (const l of s[1].matchAll(mi)) {
3930
- const d = Ai(l[3]);
3931
- if (gi(l[3], d)) return null;
3932
- a.push({ text: d, align: bi(l[2]) });
4049
+ for (const l of s[1].matchAll(bi)) {
4050
+ const u = Ti(l[3]);
4051
+ if (Ai(l[3], u)) return null;
4052
+ a.push({ text: u, align: _i(l[2]) });
3933
4053
  }
3934
4054
  if (a.length === 0) return null;
3935
4055
  a.some((l) => l.text !== "") && t.push(a);
3936
4056
  }
3937
4057
  const n = t[0]?.length ?? 0;
3938
4058
  if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
3939
- const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => yi[s.align]).join(" | "), i = t.slice(1).map(r).join(`
4059
+ const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => Si[s.align]).join(" | "), i = t.slice(1).map(r).join(`
3940
4060
  `);
3941
4061
  return `
3942
4062
 
@@ -3946,36 +4066,36 @@ ${i}
3946
4066
 
3947
4067
  `;
3948
4068
  }
3949
- function Si(e) {
4069
+ function wi(e) {
3950
4070
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
3951
4071
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
3952
4072
  }
3953
- function _i(e) {
4073
+ function Mi(e) {
3954
4074
  let t = e;
3955
- for (let n = 0; n < hi; n++) {
3956
- const r = fi.exec(t);
4075
+ for (let n = 0; n < Ei; n++) {
4076
+ const r = gi.exec(t);
3957
4077
  if (!r || r.index === void 0) break;
3958
- const i = Ei(r[1]) ?? `
4078
+ const i = Ii(r[1]) ?? `
3959
4079
 
3960
- ${Si(r[1])}
4080
+ ${wi(r[1])}
3961
4081
 
3962
4082
  `;
3963
4083
  t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
3964
4084
  }
3965
4085
  return t;
3966
4086
  }
3967
- function at(e, t) {
4087
+ function dt(e, t) {
3968
4088
  let n = e;
3969
4089
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
3970
- `), t && (n = _i(di(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4090
+ `), t && (n = Mi(hi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
3971
4091
 
3972
4092
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
3973
4093
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
3974
4094
  }
3975
- function ct(e) {
4095
+ function ft(e) {
3976
4096
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
3977
4097
  }
3978
- const Ti = {
4098
+ const ki = {
3979
4099
  euro: "€",
3980
4100
  pound: "£",
3981
4101
  yen: "¥",
@@ -3997,455 +4117,471 @@ const Ti = {
3997
4117
  rdquo: "”",
3998
4118
  apos: "'"
3999
4119
  };
4000
- function lt(e) {
4001
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => Ti[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => ct(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ct(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4120
+ function pt(e) {
4121
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => ki[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => ft(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ft(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4002
4122
  }
4003
- function ut(e) {
4123
+ function mt(e) {
4004
4124
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
4005
4125
  `).replace(/\n{3,}/g, `
4006
4126
 
4007
4127
  `).trim();
4008
4128
  }
4009
- const wi = /<\s*(html|body|div|p|table|br|span)\b/i;
4010
- function Zl(e) {
4011
- return wi.test(e);
4129
+ const vi = /<\s*(html|body|div|p|table|br|span)\b/i;
4130
+ function ru(e) {
4131
+ return vi.test(e);
4012
4132
  }
4013
- function Ql(e) {
4014
- return Gt(e, !1);
4133
+ function ou(e) {
4134
+ return zt(e, !1);
4015
4135
  }
4016
- function eu(e) {
4017
- return Gt(e, !0);
4136
+ function iu(e) {
4137
+ return zt(e, !0);
4018
4138
  }
4019
- function Gt(e, t) {
4139
+ function zt(e, t) {
4020
4140
  if (typeof e != "string" || !e) return "";
4021
4141
  let n = e.length;
4022
- for (const s of ii) {
4142
+ for (const s of li) {
4023
4143
  const a = e.search(s);
4024
4144
  a >= 0 && a < n && (n = a);
4025
4145
  }
4026
4146
  const r = e.slice(0, n);
4027
- let o = ut(lt(at(r, t)));
4028
- return o || (o = ut(lt(at(e, t)))), ai(o) || o;
4147
+ let o = mt(pt(dt(r, t)));
4148
+ return o || (o = mt(pt(dt(e, t)))), di(o) || o;
4029
4149
  }
4030
4150
  export {
4031
- ms as ACTIVE_ASSIGNMENT_STATUSES,
4032
- N as ACTIVITY_CATALOG,
4033
- Eo as AI_ATTACHMENT_LIMITS,
4034
- Kc as AI_ATTACHMENT_MAX_PER_TURN,
4035
- Uc as AI_ATTACHMENT_TURN_BUDGET,
4036
- pt as AI_VENDORS,
4037
- fn as ALLOWED_LINK_SCHEMES,
4038
- _l as APP_PERMISSIONS,
4039
- De as ARTIFACT_MAX_BLOCKS,
4040
- ss as ARTIFACT_MAX_BODY_BYTES,
4041
- oe as ARTIFACT_MAX_CELL_LEN,
4042
- Ue as ARTIFACT_MAX_KPI_ITEMS,
4043
- $e as ARTIFACT_MAX_LIST_ITEMS,
4044
- Pe as ARTIFACT_MAX_TABLE_COLUMNS,
4045
- Le as ARTIFACT_MAX_TABLE_ROWS,
4046
- gt as ARTIFACT_MAX_TEXT_LEN,
4047
- Sn as ASSIGNMENT_SCOPE_KIND,
4048
- Gc as ASSIST_BANDS,
4049
- jc as ASSIST_SOURCE_PROVIDER_GROUP,
4050
- Dn as ATTENTION_STATUSES,
4051
- Zr as AT_RISK_GAP,
4052
- Bt as AUTH_APP_NAME,
4053
- Rr as AUTO_READY_MIN_PROPOSALS,
4054
- Dr as AUTO_READY_RATE,
4055
- tn as ActivityTypeRegistry,
4056
- Hi as BUILT_IN_ONLY,
4057
- $n as BULK_PENALTY,
4058
- Ho as CADENCE_FLOOR_MS,
4059
- jo as CADENCE_MIN_NEW_SEGMENTS,
4060
- Go as CADENCE_MIN_NOVELTY,
4061
- Bo as CADENCE_WINDOW_MS,
4062
- Ta as CLASSIFY_VARS,
4063
- ul as CONNECTOR_PROVIDER_GROUP,
4064
- dl as CONTEXT_COLLECT_SERVICE,
4065
- es as CORE_DIMENSIONS,
4066
- Mo as CommunicationScheme,
4067
- In as DAY_MS,
4068
- Xr as DEFAULT_CHECK_IN_DAYS,
4069
- fr as DEFAULT_FORECAST_WEEKS,
4070
- qs as DEFAULT_MEMORY_BUDGET,
4071
- Jo as DEFAULT_PHONE_REGION,
4072
- oa as DEMAND_SOURCE_PROVIDER_GROUP,
4073
- hl as DOCUMENT_APPLY_SERVICE,
4074
- ml as DOCUMENT_DESCRIBE_SERVICE,
4075
- gl as DOCUMENT_INSPECT_SERVICE,
4076
- Ut as DOCUMENT_OPERATIONS,
4077
- Ia as EMPTY_WORKFLOW,
4078
- sl as FEATURE_FOLDER_MANAGEMENT,
4079
- cl as FEATURE_MESSAGE_REACTIONS,
4080
- al as FEATURE_REMOTE_SEARCH,
4081
- Se as FIXED_KINDS,
4151
+ bs as ACTIVE_ASSIGNMENT_STATUSES,
4152
+ R as ACTIVITY_CATALOG,
4153
+ Io as AI_ATTACHMENT_LIMITS,
4154
+ Wc as AI_ATTACHMENT_MAX_PER_TURN,
4155
+ jc as AI_ATTACHMENT_TURN_BUDGET,
4156
+ yt as AI_VENDORS,
4157
+ yn as ALLOWED_LINK_SCHEMES,
4158
+ kl as APP_PERMISSIONS,
4159
+ Ke as ARTIFACT_MAX_BLOCKS,
4160
+ us as ARTIFACT_MAX_BODY_BYTES,
4161
+ X as ARTIFACT_MAX_CELL_LEN,
4162
+ je as ARTIFACT_MAX_KPI_ITEMS,
4163
+ Fe as ARTIFACT_MAX_LIST_ITEMS,
4164
+ He as ARTIFACT_MAX_TABLE_COLUMNS,
4165
+ Be as ARTIFACT_MAX_TABLE_ROWS,
4166
+ At as ARTIFACT_MAX_TEXT_LEN,
4167
+ Mn as ASSIGNMENT_SCOPE_KIND,
4168
+ Yc as ASSIST_BANDS,
4169
+ zc as ASSIST_SOURCE_PROVIDER_GROUP,
4170
+ Kn as ATTENTION_STATUSES,
4171
+ no as AT_RISK_GAP,
4172
+ Gt as AUTH_APP_NAME,
4173
+ Pr as AUTO_READY_MIN_PROPOSALS,
4174
+ Ur as AUTO_READY_RATE,
4175
+ sn as ActivityTypeRegistry,
4176
+ Vi as BUILT_IN_ONLY,
4177
+ Fn as BULK_PENALTY,
4178
+ Vo as CADENCE_FLOOR_MS,
4179
+ Xo as CADENCE_MIN_NEW_SEGMENTS,
4180
+ zo as CADENCE_MIN_NOVELTY,
4181
+ Go as CADENCE_WINDOW_MS,
4182
+ va as CLASSIFY_VARS,
4183
+ hl as CONNECTOR_PROVIDER_GROUP,
4184
+ gl as CONTEXT_COLLECT_SERVICE,
4185
+ os as CORE_DIMENSIONS,
4186
+ Co as CommunicationScheme,
4187
+ Cn as DAY_MS,
4188
+ Qr as DEFAULT_CHECK_IN_DAYS,
4189
+ gr as DEFAULT_FORECAST_WEEKS,
4190
+ ea as DEFAULT_MEMORY_BUDGET,
4191
+ ti as DEFAULT_PHONE_REGION,
4192
+ la as DEMAND_SOURCE_PROVIDER_GROUP,
4193
+ Sl as DOCUMENT_APPLY_SERVICE,
4194
+ Al as DOCUMENT_DESCRIBE_SERVICE,
4195
+ El as DOCUMENT_INSPECT_SERVICE,
4196
+ Ke as DOCUMENT_MAX_BLOCKS,
4197
+ us as DOCUMENT_MAX_BODY_BYTES,
4198
+ X as DOCUMENT_MAX_CELL_LEN,
4199
+ je as DOCUMENT_MAX_KPI_ITEMS,
4200
+ We as DOCUMENT_MAX_LETTERHEAD_FIELDS,
4201
+ Fe as DOCUMENT_MAX_LIST_ITEMS,
4202
+ hn as DOCUMENT_MAX_RECIPIENT_LINES,
4203
+ He as DOCUMENT_MAX_TABLE_COLUMNS,
4204
+ Be as DOCUMENT_MAX_TABLE_ROWS,
4205
+ At as DOCUMENT_MAX_TEXT_LEN,
4206
+ Ge as DOCUMENT_MAX_TOTALS_ROWS,
4207
+ Ht as DOCUMENT_OPERATIONS,
4208
+ Ca as EMPTY_WORKFLOW,
4209
+ dl as FEATURE_FOLDER_MANAGEMENT,
4210
+ pl as FEATURE_MESSAGE_REACTIONS,
4211
+ fl as FEATURE_REMOTE_SEARCH,
4212
+ we as FIXED_KINDS,
4082
4213
  Q as FIXED_LEVELS,
4083
- we as FIXED_TYPES,
4084
- Pn as FOLLOW_UP_HOURS,
4085
- wn as HOUR_MS,
4086
- wi as HTML_BODY_RE,
4087
- R as INELIGIBLE,
4088
- bl as INSTALLATION_HEADER,
4089
- vr as INTERACTION_KIND,
4090
- ol as InteractionParticipantRole,
4091
- Wn as KB_FALLBACK_LOCALE,
4092
- He as KB_LOCALES,
4093
- Ie as LOOSE_STATUSES,
4094
- Cn as MAIL_HINT_HEADERS,
4095
- vi as MAX_ACTIONS,
4096
- _n as MAX_ASSIGNMENT_TURNS,
4097
- Ii as MAX_BLOCKS,
4098
- Tt as MAX_COLLECTION_DEPTH,
4099
- Ul as MAX_EDITABLE_FILE_BYTES,
4100
- Mi as MAX_FIELDS,
4101
- ki as MAX_LIST_ITEMS,
4102
- Vs as MAX_MEMORY_BROWSE,
4103
- Xs as MAX_MEMORY_BUDGET,
4104
- zs as MAX_MEMORY_CHARS,
4105
- qo as MAX_SHOWN_KEYS,
4106
- ro as MAX_TOPIC_CANDIDATES,
4107
- no as MAX_TOPIC_EXAMPLES,
4108
- se as MAX_TOPIC_EXAMPLE_CHARS,
4109
- Kl as MAX_VIEWABLE_FILE_BYTES,
4110
- Ys as MIN_MEMORY_BUDGET,
4111
- Wl as NAV_NOTICE_SLOT,
4112
- El as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4113
- Qr as OFF_TRACK_GAP,
4114
- Zs as ONBOARDING_SOURCE_PROVIDER_GROUP,
4115
- ge as PAUSE_SNOOZED,
4116
- he as PAUSE_WAITING_FOR_CUSTOMER,
4117
- Me as PHONE_REGIONS,
4118
- Kt as PRESENCE_ONLINE_WINDOW_MS,
4119
- xo as PRESENCE_SURVIVES_OFFLINE,
4120
- ea as PROFILE_TOOL_DISPOSITIONS,
4121
- rl as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4122
- nl as PROVIDER_FEATURE_MESSAGE_WINDOW,
4123
- oi as PUBLIC_EMAIL_DOMAINS,
4124
- je as READ_STEP_TYPES,
4125
- Yn as RELATED_SUBJECT_KINDS,
4126
- Pt as RESERVED_STATUS_KEYS,
4127
- Ac as RESERVED_TYPE_KEYS,
4128
- Cl as RESOURCE_ATTACHED_SERVICE,
4129
- kl as RESOURCE_DESCRIBE_SERVICE,
4130
- Ol as RESOURCE_RESOLVE_SERVICE,
4131
- vl as RESOURCE_SEARCH_SERVICE,
4132
- br as SCHEDULE_ENTRY_SCOPE_KIND,
4133
- Rl as SCOPE_READ_ROUTE,
4134
- xl as SCOPE_RELATED_ROUTE,
4135
- Gl as SETTINGS_CATEGORIES,
4136
- Ss as SIGNATURE_INTENTS,
4137
- Ln as SLA_HOURS_BY_PRIORITY,
4138
- Pa as SLA_METRICS,
4139
- Ua as SLA_PAUSE_REASONS,
4140
- Nr as STEP_MAX_TOKENS_MAX,
4141
- Cr as STEP_MAX_TOKENS_MIN,
4142
- zr as STRATEGY_ITEM_SCOPE_KIND,
4143
- On as SUMMARY_MIN_LAST_CHARS,
4144
- vn as SUMMARY_MIN_MESSAGES,
4145
- Bl as SYNC_RUN_MAX_ERRORS,
4146
- Fl as SYNC_TARGET_PROVIDER_GROUP,
4147
- En as TERMINAL_ASSIGNMENT_STATUSES,
4148
- $r as TERMINAL_RUN_STATUSES,
4149
- _a as TRIGGER_VARS,
4150
- Xn as UNKNOWN_KIND,
4151
- Yr as UNKNOWN_LEVEL_ORDER,
4152
- ll as UNSUPPORTED,
4153
- cn as USAGE_DIMENSIONS,
4154
- ln as USAGE_DIMENSION_IDS,
4155
- Ar as WORKSTREAM_SCOPE_KIND,
4156
- uo as WORK_ACTIVITY_SCOPE_KIND,
4157
- Qs as WORK_AREAS,
4158
- gc as WORK_COMMENT_ADDED,
4159
- wc as WORK_CYCLE_SYNC_KIND,
4160
- hc as WORK_ITEM_ASSIGNED,
4161
- co as WORK_ITEM_SCOPE_KIND,
4162
- yc as WORK_ITEM_STATUS_CHANGED,
4163
- lo as WORK_PROJECT_SCOPE_KIND,
4164
- X as W_PRIORITY,
4165
- fc as acceptExampleCandidate,
4166
- Tr as actingIdentityKey,
4167
- uc as activeWorkTypes,
4168
- Ci as activityIconOf,
4169
- Fi as activityJoinUrl,
4170
- Jt as activitySnippet,
4171
- Zt as activityTextParams,
4172
- Ki as activityTimelineText,
4173
- nn as activityTimestamp,
4174
- M as activityTypeInfo,
4175
- ha as actorKey,
4176
- dc as addExampleCandidate,
4177
- _e as addWorkingMs,
4178
- wl as agePresenceEntry,
4179
- Ao as aiAttachmentKind,
4180
- Fc as aiAttachmentRejection,
4181
- Re as aiBudgetLimit,
4182
- Zi as aiBudgetPeriodKey,
4183
- rn as aiBudgetPeriodStart,
4184
- Ji as aiBudgetState,
4185
- qi as aiVendorAcceptsAttachment,
4186
- zi as aiVendorDefaultModel,
4187
- Vi as aiVendorLabel,
4188
- Xi as aiVendorNeedsBaseUrl,
4189
- Yi as aiVendorsWith,
4190
- Ht as appNameFromPath,
4191
- ic as applyRounding,
4192
- _s as applySignature,
4193
- xr as approvalRate,
4194
- cs as artifactBodyBytes,
4195
- ls as artifactOutline,
4196
- us as artifactToMarkdown,
4197
- Ea as assignmentMismatch,
4198
- hs as assignmentScopeKey,
4199
- As as assignmentSubject,
4200
- ta as belongsOnCalendar,
4201
- Bi as buildActivityPreview,
4202
- Jc as buildChannelIntents,
4203
- ds as buildShareKeys,
4204
- Xo as buildWindow,
4205
- Zn as calendarDaysBetween,
4206
- Te as calendarOf,
4207
- Fs as canNestUnder,
4208
- Va as canParent,
4209
- na as capacityTotal,
4210
- fa as capacityWeights,
4211
- $i as carriesText,
4212
- Hs as categoryLabel,
4213
- mo as categoryOf,
4214
- tl as channelKindForScheme,
4215
- Ni as channelKindOf,
4216
- nc as checkInOverdueMs,
4217
- wa as clampStepMaxTokens,
4218
- vs as classifyMail,
4219
- eu as cleanMessageMarkdown,
4220
- Ql as cleanMessageText,
4221
- Vc as compareAssistRank,
4222
- to as compareWorkTypes,
4223
- q as countsAsPlanned,
4224
- ra as coverageByPerson,
4225
- sa as coverageFor,
4226
- qn as coversWorkstream,
4227
- It as cycleDayIndex,
4228
- Lc as cycleOrder,
4229
- Pc as cycleState,
4230
- Es as decideAssignmentState,
4231
- jl as decideCadence,
4232
- Xc as decideIncomingCall,
4233
- Vn as defaultLocaleOf,
4234
- xc as defaultStatusKey,
4235
- il as defineIntent,
4236
- jn as depthOf,
4237
- Tl as derivePresence,
4238
- rs as describeClause,
4239
- qc as disabledIntentsFromCapabilities,
4240
- yl as documentKindOf,
4241
- Fa as dueAtOf,
4242
- oc as elapsedSeconds,
4243
- Yl as emailDomain,
4244
- Jl as endpointKey,
4245
- nr as erlangC,
4246
- $o as extractParams,
4247
- zo as extractTerms,
4248
- Qc as filterByEndpoint,
4249
- Zc as filterByIntent,
4250
- Io as filterByTargetScheme,
4251
- ns as filterableDimensions,
4214
+ ve as FIXED_TYPES,
4215
+ Hn as FOLLOW_UP_HOURS,
4216
+ On as HOUR_MS,
4217
+ vi as HTML_BODY_RE,
4218
+ D as INELIGIBLE,
4219
+ Tl as INSTALLATION_HEADER,
4220
+ xr as INTERACTION_KIND,
4221
+ ll as InteractionParticipantRole,
4222
+ qn as KB_FALLBACK_LOCALE,
4223
+ ze as KB_LOCALES,
4224
+ Oe as LOOSE_STATUSES,
4225
+ $n as MAIL_HINT_HEADERS,
4226
+ xi as MAX_ACTIONS,
4227
+ kn as MAX_ASSIGNMENT_TURNS,
4228
+ Oi as MAX_BLOCKS,
4229
+ Mt as MAX_COLLECTION_DEPTH,
4230
+ jl as MAX_EDITABLE_FILE_BYTES,
4231
+ Ci as MAX_FIELDS,
4232
+ Ni as MAX_LIST_ITEMS,
4233
+ qs as MAX_MEMORY_BROWSE,
4234
+ Qs as MAX_MEMORY_BUDGET,
4235
+ Js as MAX_MEMORY_CHARS,
4236
+ ei as MAX_SHOWN_KEYS,
4237
+ ao as MAX_TOPIC_CANDIDATES,
4238
+ so as MAX_TOPIC_EXAMPLES,
4239
+ ae as MAX_TOPIC_EXAMPLE_CHARS,
4240
+ Wl as MAX_VIEWABLE_FILE_BYTES,
4241
+ Zs as MIN_MEMORY_BUDGET,
4242
+ ql as NAV_NOTICE_SLOT,
4243
+ wl as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4244
+ ro as OFF_TRACK_GAP,
4245
+ na as ONBOARDING_SOURCE_PROVIDER_GROUP,
4246
+ be as PAUSE_SNOOZED,
4247
+ Ae as PAUSE_WAITING_FOR_CUSTOMER,
4248
+ Ce as PHONE_REGIONS,
4249
+ jt as PRESENCE_ONLINE_WINDOW_MS,
4250
+ Lo as PRESENCE_SURVIVES_OFFLINE,
4251
+ oa as PROFILE_TOOL_DISPOSITIONS,
4252
+ cl as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4253
+ al as PROVIDER_FEATURE_MESSAGE_WINDOW,
4254
+ ci as PUBLIC_EMAIL_DOMAINS,
4255
+ Ye as READ_STEP_TYPES,
4256
+ Qn as RELATED_SUBJECT_KINDS,
4257
+ Bt as RESERVED_STATUS_KEYS,
4258
+ Ic as RESERVED_TYPE_KEYS,
4259
+ $l as RESOURCE_ATTACHED_SERVICE,
4260
+ xl as RESOURCE_DESCRIBE_SERVICE,
4261
+ Dl as RESOURCE_RESOLVE_SERVICE,
4262
+ Rl as RESOURCE_SEARCH_SERVICE,
4263
+ _r as SCHEDULE_ENTRY_SCOPE_KIND,
4264
+ Ul as SCOPE_READ_ROUTE,
4265
+ Pl as SCOPE_RELATED_ROUTE,
4266
+ Yl as SETTINGS_CATEGORIES,
4267
+ ws as SIGNATURE_INTENTS,
4268
+ Bn as SLA_HOURS_BY_PRIORITY,
4269
+ Ha as SLA_METRICS,
4270
+ ja as SLA_PAUSE_REASONS,
4271
+ $r as STEP_MAX_TOKENS_MAX,
4272
+ Dr as STEP_MAX_TOKENS_MIN,
4273
+ Jr as STRATEGY_ITEM_SCOPE_KIND,
4274
+ Dn as SUMMARY_MIN_LAST_CHARS,
4275
+ Rn as SUMMARY_MIN_MESSAGES,
4276
+ Vl as SYNC_RUN_MAX_ERRORS,
4277
+ Gl as SYNC_TARGET_PROVIDER_GROUP,
4278
+ wn as TERMINAL_ASSIGNMENT_STATUSES,
4279
+ Kr as TERMINAL_RUN_STATUSES,
4280
+ ka as TRIGGER_VARS,
4281
+ er as UNKNOWN_KIND,
4282
+ Zr as UNKNOWN_LEVEL_ORDER,
4283
+ ml as UNSUPPORTED,
4284
+ fn as USAGE_DIMENSIONS,
4285
+ pn as USAGE_DIMENSION_IDS,
4286
+ Tr as WORKSTREAM_SCOPE_KIND,
4287
+ ho as WORK_ACTIVITY_SCOPE_KIND,
4288
+ ra as WORK_AREAS,
4289
+ Ec as WORK_COMMENT_ADDED,
4290
+ Oc as WORK_CYCLE_SYNC_KIND,
4291
+ Sc as WORK_ITEM_ASSIGNED,
4292
+ po as WORK_ITEM_SCOPE_KIND,
4293
+ _c as WORK_ITEM_STATUS_CHANGED,
4294
+ mo as WORK_PROJECT_SCOPE_KIND,
4295
+ q as W_PRIORITY,
4296
+ yc as acceptExampleCandidate,
4297
+ kr as actingIdentityKey,
4298
+ hc as activeWorkTypes,
4299
+ Di as activityIconOf,
4300
+ Wi as activityJoinUrl,
4301
+ tn as activitySnippet,
4302
+ nn as activityTextParams,
4303
+ ji as activityTimelineText,
4304
+ an as activityTimestamp,
4305
+ w as activityTypeInfo,
4306
+ Sa as actorKey,
4307
+ gc as addExampleCandidate,
4308
+ Me as addWorkingMs,
4309
+ Ol as agePresenceEntry,
4310
+ To as aiAttachmentKind,
4311
+ Gc as aiAttachmentRejection,
4312
+ Ue as aiBudgetLimit,
4313
+ ns as aiBudgetPeriodKey,
4314
+ cn as aiBudgetPeriodStart,
4315
+ ts as aiBudgetState,
4316
+ es as aiVendorAcceptsAttachment,
4317
+ Ji as aiVendorDefaultModel,
4318
+ qi as aiVendorLabel,
4319
+ Qi as aiVendorNeedsBaseUrl,
4320
+ Zi as aiVendorsWith,
4321
+ Vt as appNameFromPath,
4322
+ uc as applyRounding,
4323
+ Ms as applySignature,
4324
+ Lr as approvalRate,
4325
+ fs as artifactBodyBytes,
4326
+ ps as artifactOutline,
4327
+ ms as artifactToMarkdown,
4328
+ wa as assignmentMismatch,
4329
+ Es as assignmentScopeKey,
4330
+ Ts as assignmentSubject,
4331
+ ca as availabilityByPerson,
4332
+ ia as belongsOnCalendar,
4333
+ Gi as buildActivityPreview,
4334
+ nl as buildChannelIntents,
4335
+ hs as buildShareKeys,
4336
+ Qo as buildWindow,
4337
+ nr as calendarDaysBetween,
4338
+ ke as calendarOf,
4339
+ Ws as canNestUnder,
4340
+ Ja as canParent,
4341
+ sa as capacityTotal,
4342
+ ya as capacityWeights,
4343
+ Ki as carriesText,
4344
+ Vs as categoryLabel,
4345
+ bo as categoryOf,
4346
+ sl as channelKindForScheme,
4347
+ $i as channelKindOf,
4348
+ ac as checkInOverdueMs,
4349
+ Oa as clampStepMaxTokens,
4350
+ xs as classifyMail,
4351
+ iu as cleanMessageMarkdown,
4352
+ ou as cleanMessageText,
4353
+ Jc as compareAssistRank,
4354
+ io as compareWorkTypes,
4355
+ H as countsAsPlanned,
4356
+ aa as coverageByPerson,
4357
+ da as coverageFor,
4358
+ vt as coversWorkstream,
4359
+ Ot as cycleDayIndex,
4360
+ Bc as cycleOrder,
4361
+ Hc as cycleState,
4362
+ Is as decideAssignmentState,
4363
+ zl as decideCadence,
4364
+ el as decideIncomingCall,
4365
+ Jn as defaultLocaleOf,
4366
+ Pc as defaultStatusKey,
4367
+ ul as defineIntent,
4368
+ zn as depthOf,
4369
+ vl as derivePresence,
4370
+ as as describeClause,
4371
+ tl as disabledIntentsFromCapabilities,
4372
+ fs as documentBodyBytes,
4373
+ _l as documentKindOf,
4374
+ ps as documentOutline,
4375
+ ms as documentToMarkdown,
4376
+ Ga as dueAtOf,
4377
+ lc as elapsedSeconds,
4378
+ Ql as emailDomain,
4379
+ nu as endpointKey,
4380
+ sr as erlangC,
4381
+ Ko as extractParams,
4382
+ Jo as extractTerms,
4383
+ ol as filterByEndpoint,
4384
+ rl as filterByIntent,
4385
+ Oo as filterByTargetScheme,
4386
+ ss as filterableDimensions,
4252
4387
  Z as findAiVendor,
4253
- Ya as fixedLevelForName,
4254
- _c as fixedTypeForName,
4255
- Tc as fixedTypes,
4256
- Al as flattenLocales,
4388
+ Qa as fixedLevelForName,
4389
+ kc as fixedTypeForName,
4390
+ vc as fixedTypes,
4391
+ Il as flattenLocales,
4257
4392
  B as floorToPeriod,
4258
- la as forecastIntervals,
4259
- _r as formatActingIdentity,
4260
- ac as formatClock,
4261
- sc as formatHm,
4262
- Mc as formatItemKey,
4393
+ ma as forecastIntervals,
4394
+ Mr as formatActingIdentity,
4395
+ fc as formatClock,
4396
+ dc as formatHm,
4397
+ Nc as formatItemKey,
4263
4398
  F as formatPeriod,
4264
- ja as formatSlaDuration,
4265
- Hc as freshSources,
4266
- ji as getActivitySeenUserIds,
4267
- Ts as getContactEndpoints,
4268
- $s as getShortTitle,
4269
- Ds as getUrgencyScore,
4270
- Da as hasReacted,
4271
- Xa as healthCategory,
4272
- qa as healthsInCategory,
4273
- wt as heightOf,
4274
- Ps as helpCenterText,
4275
- Sa as humanizeAction,
4276
- Or as interactionIdOf,
4277
- mc as isAgentUser,
4278
- xs as isAssigned,
4279
- gs as isAssignmentTerminal,
4280
- Mr as isAssignmentTrigger,
4281
- va as isAutoReady,
4282
- Hn as isAwaitingThem,
4283
- Wi as isChatMessageActivity,
4284
- Rs as isClosed,
4285
- Pi as isConnectedType,
4286
- Dl as isDeepLink,
4287
- Gn as isDescendant,
4288
- ws as isEligible,
4289
- Gi as isEmailActivity,
4290
- Zl as isHtmlBody,
4291
- Ca as isInFlight,
4292
- Rn as isInteractionUnseen,
4293
- $l as isLandingPath,
4294
- kn as isLikelyBulk,
4295
- dt as isMessageShape,
4296
- xi as isMessageType,
4297
- Po as isMoreSpecificPattern,
4298
- ft as isNoteShape,
4299
- Vr as isOpenClock,
4300
- Bc as isOutwardTool,
4301
- Kn as isParked,
4302
- Lr as isPaused,
4303
- Li as isPlaybookAuthoredType,
4304
- Xl as isPublicEmailDomain,
4305
- Pl as isPublicPath,
4306
- Fn as isReminderActive,
4307
- Di as isReplyableType,
4308
- Cs as isSlaAtRisk,
4309
- Oa as isTerminal,
4310
- Ms as isThreadLongEnough,
4311
- Ui as isTranscriptType,
4312
- Rc as isWorkClosed,
4313
- lc as isWorkTypeVisible,
4314
- Oc as itemDossierKeys,
4315
- $ as kindFor,
4316
- po as ladderFor,
4317
- qr as levelIn,
4318
- be as levelOrder,
4319
- Ls as linkLabel,
4320
- Qi as listeningAllowed,
4321
- Ks as localeInstruction,
4322
- Us as localeName,
4323
- Bs as localesOf,
4324
- Vl as looksLikeEmail,
4325
- el as matchContactToIntents,
4326
- Uo as matchPublicRoute,
4327
- Gs as mcpCredentialScope,
4328
- Ws as mcpToolPrefix,
4329
- Ja as measureRatio,
4330
- Hl as mergeShownKeys,
4331
- qt as messageCountsAs,
4332
- os as metricOption,
4333
- Mt as minutesOn,
4334
- ql as needsPhoneRegion,
4335
- Ri as nestsUnderParent,
4336
- za as nextLevelBelow,
4337
- Ba as nextSlaClock,
4338
- as as normalizeArtifactBlocks,
4339
- Oi as normalizeBlocks,
4340
- jt as normalizeEmail,
4341
- D as normalizeExample,
4342
- Sl as notificationPrefKey,
4343
- Yo as novelty,
4344
- pl as operationDescriptor,
4345
- fl as operationsForKind,
4399
+ za as formatSlaDuration,
4400
+ Xc as freshSources,
4401
+ Xi as getActivitySeenUserIds,
4402
+ ks as getContactEndpoints,
4403
+ Ks as getShortTitle,
4404
+ Us as getUrgencyScore,
4405
+ Ka as hasReacted,
4406
+ ec as healthCategory,
4407
+ tc as healthsInCategory,
4408
+ kt as heightOf,
4409
+ Bs as helpCenterText,
4410
+ Ma as humanizeAction,
4411
+ Rr as interactionIdOf,
4412
+ Ac as isAgentUser,
4413
+ Ls as isAssigned,
4414
+ As as isAssignmentTerminal,
4415
+ Cr as isAssignmentTrigger,
4416
+ Ra as isAutoReady,
4417
+ Xn as isAwaitingThem,
4418
+ Yi as isChatMessageActivity,
4419
+ Ps as isClosed,
4420
+ Bi as isConnectedType,
4421
+ Kl as isDeepLink,
4422
+ Yn as isDescendant,
4423
+ vs as isEligible,
4424
+ zi as isEmailActivity,
4425
+ ru as isHtmlBody,
4426
+ $a as isInFlight,
4427
+ Un as isInteractionUnseen,
4428
+ Fl as isLandingPath,
4429
+ xn as isLikelyBulk,
4430
+ ht as isMessageShape,
4431
+ Li as isMessageType,
4432
+ Bo as isMoreSpecificPattern,
4433
+ gt as isNoteShape,
4434
+ qr as isOpenClock,
4435
+ Vc as isOutwardTool,
4436
+ Wn as isParked,
4437
+ Fr as isPaused,
4438
+ Fi as isPlaybookAuthoredType,
4439
+ eu as isPublicEmailDomain,
4440
+ Hl as isPublicPath,
4441
+ Gn as isReminderActive,
4442
+ Ui as isReplyableType,
4443
+ Ds as isSlaAtRisk,
4444
+ Da as isTerminal,
4445
+ Cs as isThreadLongEnough,
4446
+ Hi as isTranscriptType,
4447
+ Uc as isWorkClosed,
4448
+ mc as isWorkTypeVisible,
4449
+ Dc as itemDossierKeys,
4450
+ x as kindFor,
4451
+ yo as ladderFor,
4452
+ eo as levelIn,
4453
+ Se as levelOrder,
4454
+ Fs as linkLabel,
4455
+ rs as listeningAllowed,
4456
+ js as localeInstruction,
4457
+ Hs as localeName,
4458
+ Gs as localesOf,
4459
+ Jl as looksLikeEmail,
4460
+ il as matchContactToIntents,
4461
+ Ho as matchPublicRoute,
4462
+ zs as mcpCredentialScope,
4463
+ Ys as mcpToolPrefix,
4464
+ nc as measureRatio,
4465
+ Xl as mergeShownKeys,
4466
+ en as messageCountsAs,
4467
+ cs as metricOption,
4468
+ Ct as minutesOn,
4469
+ tu as needsPhoneRegion,
4470
+ Pi as nestsUnderParent,
4471
+ Za as nextLevelBelow,
4472
+ Va as nextSlaClock,
4473
+ ds as normalizeArtifactBlocks,
4474
+ Ri as normalizeBlocks,
4475
+ ds as normalizeDocumentBlocks,
4476
+ Xt as normalizeEmail,
4477
+ $ as normalizeExample,
4478
+ Ml as notificationPrefKey,
4479
+ Zo as novelty,
4480
+ bl as operationDescriptor,
4481
+ yl as operationsForKind,
4346
4482
  ie as overlapSeconds,
4347
- ia as overlaps,
4348
- Za as paceRatio,
4349
- Is as parkMarksById,
4350
- ma as parseActingIdentity,
4351
- $a as parseClockMinutes,
4352
- kc as parseItemKey,
4353
- Do as pathToRegex,
4354
- vt as patternFor,
4355
- kt as patternStartTime,
4356
- La as pauseBitFor,
4357
- ts as periodsInRange,
4358
- zl as phoneSuffix,
4359
- ks as pickMailHeaders,
4360
- pa as placeLumps,
4361
- Yt as plainTextFromMarkdown,
4362
- Ka as planSlaEvent,
4363
- aa as plannedBillable,
4364
- ur as plannedWorkTypeKey,
4365
- Ir as playbookActor,
4366
- ka as procedureOf,
4367
- Cc as projectDossierKeys,
4368
- Lo as publicBasePathFor,
4369
- Ll as publicRoutePatterns,
4370
- bs as reactionWakesAssignment,
4371
- le as readPath,
4372
- Ge as readStepError,
4373
- Un as recencyOf,
4374
- kr as refKey,
4375
- ri as registrableDomain,
4376
- io as rejectExampleCandidate,
4377
- Js as relatedByDefault,
4378
- ye as remainingMsOf,
4379
- ir as requiredAgents,
4380
- lr as requirementFor,
4381
- To as resolveAccountCapabilities,
4382
- ue as resolveActivityText,
4383
- _o as resolveChannelIntents,
4384
- Tn as resolveSignature,
4385
- Il as resolveWorkMode,
4386
- Nl as resourceKindOf,
4387
- tc as rollupChildren,
4388
- ga as runActor,
4389
- xa as runInteractionId,
4390
- hn as sanitizeInline,
4391
- Fo as sanitizeTranscript,
4392
- ua as scheduleEntryScopeKey,
4393
- Ns as scoreInteraction,
4394
- bc as scoreWorkItem,
4395
- js as selectLenses,
4396
- rr as serviceLevel,
4397
- Yc as sessionsHoldCannotReach,
4398
- zc as sessionsToHold,
4399
- bt as shareKeyForTeam,
4400
- yt as shareKeyForUser,
4401
- fs as shareKeysForViewer,
4402
- ca as shortfalls,
4403
- Ml as shouldRunAudioPipeline,
4404
- Ha as slaBadgeTone,
4405
- Os as slaHoursByInbox,
4406
- Bn as slaHoursFor,
4407
- go as sortStatuses,
4408
- So as sourceKey,
4409
- Sr as spreadOverWeights,
4410
- Nc as statusIn,
4411
- Ma as stepsOf,
4412
- Wa as strategyAncestorKeysFor,
4413
- Ga as strategyDossierKeys,
4414
- $t as strategyItemScopeKey,
4415
- Xt as stripHtml,
4416
- Na as subjectKeyOf,
4417
- Ot as subjectOf,
4418
- Wc as subjectRef,
4419
- vc as suggestProjectKey,
4420
- Qa as suggestedHealth,
4421
- Ra as summarizeReactions,
4422
- Aa as targetById,
4423
- ba as targetForActivityType,
4424
- rc as targetOrder,
4425
- Qn as termsFor,
4426
- wr as toActingIdentity,
4427
- ot as toE164,
4428
- ps as toolSourceKinds,
4429
- so as topicOfferedForTeam,
4430
- pc as topicsForTeam,
4431
- or as trafficIntensity,
4432
- oo as truncateExample,
4433
- Sc as typeIn,
4434
- Ec as typesFor,
4435
- Dc as uniqueWorkStatusKey,
4436
- cc as uniqueWorkTypeKey,
4437
- un as usageMetricId,
4438
- is as usageMetrics,
4439
- $c as validateStatuses,
4440
- ya as valueAtPath,
4441
- Ee as waitHoursOf,
4442
- ys as wakesAssignment,
4443
- Ic as workActivityScopeKey,
4444
- fo as workItemScopeKey,
4445
- Lt as workProjectScopeKey,
4446
- ec as workRatio,
4447
- ho as workStatusKey,
4448
- eo as workTypeKey,
4449
- me as workingMsBetween,
4450
- da as workstreamScopeKey
4483
+ ua as overlaps,
4484
+ rc as paceRatio,
4485
+ Os as parkMarksById,
4486
+ Aa as parseActingIdentity,
4487
+ Fa as parseClockMinutes,
4488
+ xc as parseItemKey,
4489
+ Uo as pathToRegex,
4490
+ xt as patternFor,
4491
+ Nt as patternStartTime,
4492
+ Ba as pauseBitFor,
4493
+ is as periodsInRange,
4494
+ Zl as phoneSuffix,
4495
+ Ns as pickMailHeaders,
4496
+ ba as placeLumps,
4497
+ Zt as plainTextFromMarkdown,
4498
+ Wa as planSlaEvent,
4499
+ fa as plannedBillable,
4500
+ mr as plannedWorkTypeKey,
4501
+ Or as playbookActor,
4502
+ xa as procedureOf,
4503
+ $c as projectDossierKeys,
4504
+ Fo as publicBasePathFor,
4505
+ Bl as publicRoutePatterns,
4506
+ _s as reactionWakesAssignment,
4507
+ ue as readPath,
4508
+ qe as readStepError,
4509
+ jn as recencyOf,
4510
+ Nr as refKey,
4511
+ ai as registrableDomain,
4512
+ lo as rejectExampleCandidate,
4513
+ ta as relatedByDefault,
4514
+ Ee as remainingMsOf,
4515
+ lr as requiredAgents,
4516
+ pr as requirementFor,
4517
+ ko as resolveAccountCapabilities,
4518
+ de as resolveActivityText,
4519
+ Mo as resolveChannelIntents,
4520
+ vn as resolveSignature,
4521
+ Cl as resolveWorkMode,
4522
+ Ll as resourceKindOf,
4523
+ sc as rollupChildren,
4524
+ Ea as runActor,
4525
+ Pa as runInteractionId,
4526
+ Sn as sanitizeInline,
4527
+ Wo as sanitizeTranscript,
4528
+ ha as scheduleEntryScopeKey,
4529
+ $s as scoreInteraction,
4530
+ Tc as scoreWorkItem,
4531
+ Xs as selectLenses,
4532
+ ar as serviceLevel,
4533
+ Qc as sessionsHoldCannotReach,
4534
+ Zc as sessionsToHold,
4535
+ St as shareKeyForTeam,
4536
+ Et as shareKeyForUser,
4537
+ gs as shareKeysForViewer,
4538
+ pa as shortfalls,
4539
+ Nl as shouldRunAudioPipeline,
4540
+ Xa as slaBadgeTone,
4541
+ Rs as slaHoursByInbox,
4542
+ Vn as slaHoursFor,
4543
+ Ao as sortStatuses,
4544
+ wo as sourceKey,
4545
+ wr as spreadOverWeights,
4546
+ Lc as statusIn,
4547
+ Na as stepsOf,
4548
+ qa as strategyAncestorKeysFor,
4549
+ Ya as strategyDossierKeys,
4550
+ Kt as strategyItemScopeKey,
4551
+ Qt as stripHtml,
4552
+ La as subjectKeyOf,
4553
+ Rt as subjectOf,
4554
+ qc as subjectRef,
4555
+ Rc as suggestProjectKey,
4556
+ oc as suggestedHealth,
4557
+ Ua as summarizeReactions,
4558
+ Ia as targetById,
4559
+ Ta as targetForActivityType,
4560
+ cc as targetOrder,
4561
+ rr as termsFor,
4562
+ vr as toActingIdentity,
4563
+ ct as toE164,
4564
+ ys as toolSourceKinds,
4565
+ uo as topicOfferedForTeam,
4566
+ bc as topicsForTeam,
4567
+ cr as trafficIntensity,
4568
+ co as truncateExample,
4569
+ Mc as typeIn,
4570
+ wc as typesFor,
4571
+ Kc as uniqueWorkStatusKey,
4572
+ pc as uniqueWorkTypeKey,
4573
+ mn as usageMetricId,
4574
+ ls as usageMetrics,
4575
+ Fc as validateStatuses,
4576
+ _a as valueAtPath,
4577
+ Ie as waitHoursOf,
4578
+ Ss as wakesAssignment,
4579
+ Cc as workActivityScopeKey,
4580
+ go as workItemScopeKey,
4581
+ Ft as workProjectScopeKey,
4582
+ ic as workRatio,
4583
+ Eo as workStatusKey,
4584
+ oo as workTypeKey,
4585
+ ye as workingMsBetween,
4586
+ ga as workstreamScopeKey
4451
4587
  };