@opencxh/domain 1.235.0 → 1.236.0

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