@opencxh/domain 1.233.0 → 1.233.1

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