@opencxh/domain 1.189.0 → 1.193.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const wn = 10, Mn = 10, kn = 10, Cn = 5, Ie = /* @__PURE__ */ new Set([
1
+ const Vn = 10, zn = 10, Xn = 10, Yn = 5, Ne = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -8,13 +8,13 @@ const wn = 10, Mn = 10, kn = 10, Cn = 5, Ie = /* @__PURE__ */ new Set([
8
8
  "actions",
9
9
  "attachments"
10
10
  ]);
11
- function T(e) {
11
+ function w(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 On(e, t = () => {
17
+ function qn(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,19 +25,19 @@ function On(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const i = r;
28
- if (!Ie.has(i.type)) {
28
+ if (!Ne.has(i.type)) {
29
29
  t(`unknown block type ${String(i.type)}`);
30
30
  continue;
31
31
  }
32
32
  switch (i.type) {
33
33
  case "header":
34
- if (!T(i.text)) {
34
+ if (!w(i.text)) {
35
35
  t("a header without text");
36
36
  continue;
37
37
  }
38
38
  break;
39
39
  case "context":
40
- if (!T(i.text)) {
40
+ if (!w(i.text)) {
41
41
  t("a context block without text");
42
42
  continue;
43
43
  }
@@ -59,7 +59,7 @@ function On(e, t = () => {
59
59
  i.items.length > 10 && (t("more than 10 list items"), i.items = i.items.slice(0, 10));
60
60
  break;
61
61
  case "actions": {
62
- const a = Array.isArray(i.elements) ? i.elements : [], o = a.filter((s) => s?.action_id && s.invoke && T(s.text));
62
+ const a = Array.isArray(i.elements) ? i.elements : [], o = a.filter((s) => s?.action_id && s.invoke && w(s.text));
63
63
  if (o.length !== a.length && t("an action without action_id, invoke or text"), o.length === 0) continue;
64
64
  o.length > 5 && t("more than 5 actions"), i.elements = o.slice(0, 5);
65
65
  break;
@@ -69,24 +69,24 @@ function On(e, t = () => {
69
69
  }
70
70
  return n;
71
71
  }
72
- function we(e) {
72
+ function ve(e) {
73
73
  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();
74
74
  }
75
- function A(e) {
75
+ function b(e) {
76
76
  if (!e || e < 0) return "";
77
77
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
78
78
  return `${t}:${n.toString().padStart(2, "0")}`;
79
79
  }
80
- function x(e) {
80
+ function D(e) {
81
81
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
82
82
  }
83
- function I(e) {
83
+ function M(e) {
84
84
  return e?.split("@")?.[0] || e || "";
85
85
  }
86
- function b(e) {
86
+ function S(e) {
87
87
  return e.map((t) => t.name).join(", ");
88
88
  }
89
- function $(e) {
89
+ function L(e) {
90
90
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
91
91
  }
92
92
  const m = {
@@ -96,7 +96,7 @@ const m = {
96
96
  channelKind: "voice",
97
97
  icon: "phone",
98
98
  snippet: () => "Gesprek gestart",
99
- timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${I(e.payload.from)}` : `Outbound call started — ${I(e.payload.to)}`
99
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${M(e.payload.from)}` : `Outbound call started — ${M(e.payload.to)}`
100
100
  },
101
101
  VOICE_CALL_ANSWERED: {
102
102
  shape: "event",
@@ -123,15 +123,15 @@ const m = {
123
123
  shape: "event",
124
124
  channelKind: "voice",
125
125
  icon: "phone",
126
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${A(e.payload.duration)})` : ""}`,
127
- timeline: (e) => `Call ended${x(e.payload.duration)}`
126
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
127
+ timeline: (e) => `Call ended${D(e.payload.duration)}`
128
128
  },
129
129
  VOICE_CALL_MISSED: {
130
130
  shape: "event",
131
131
  channelKind: "voice",
132
132
  icon: "phone",
133
133
  snippet: () => "Gemiste oproep",
134
- timeline: (e) => `Missed call — ${I(e.payload.from)}`
134
+ timeline: (e) => `Missed call — ${M(e.payload.from)}`
135
135
  },
136
136
  VOICE_CALL_FAILED: {
137
137
  shape: "event",
@@ -178,7 +178,7 @@ const m = {
178
178
  shape: "event",
179
179
  channelKind: "video",
180
180
  icon: "video",
181
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${A(e.payload.duration)})` : ""}`,
181
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
182
182
  timeline: () => "Video call ended"
183
183
  },
184
184
  VIDEO_CALL_MISSED: {
@@ -206,7 +206,7 @@ const m = {
206
206
  replyable: !0,
207
207
  carriesText: !0,
208
208
  countsAs: "inbound_message",
209
- snippet: R
209
+ snippet: P
210
210
  },
211
211
  EMAIL_SENT: {
212
212
  shape: "message",
@@ -216,7 +216,7 @@ const m = {
216
216
  replyable: !0,
217
217
  carriesText: !0,
218
218
  countsAs: "outbound_message",
219
- snippet: R
219
+ snippet: P
220
220
  },
221
221
  /* ---- chat ---- */
222
222
  CHAT_MESSAGE_SENT: {
@@ -245,9 +245,9 @@ const m = {
245
245
  shape: "event",
246
246
  channelKind: "chat",
247
247
  icon: "message-circle",
248
- snippet: (e) => `${b(e.payload.members)} toegevoegd`,
248
+ snippet: (e) => `${S(e.payload.members)} toegevoegd`,
249
249
  timeline: (e) => {
250
- const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
250
+ const t = S(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
251
251
  return `${t} joined the chat${n}`;
252
252
  }
253
253
  },
@@ -255,9 +255,9 @@ const m = {
255
255
  shape: "event",
256
256
  channelKind: "chat",
257
257
  icon: "message-circle",
258
- snippet: (e) => `${b(e.payload.members)} verlaten`,
258
+ snippet: (e) => `${S(e.payload.members)} verlaten`,
259
259
  timeline: (e) => {
260
- const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
260
+ const t = S(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
261
261
  return `${t} left the chat${n}`;
262
262
  }
263
263
  },
@@ -273,15 +273,15 @@ const m = {
273
273
  channelKind: "chat",
274
274
  icon: "message-circle",
275
275
  snippet: () => "Gesprek gestart",
276
- timeline: (e) => `${$(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
276
+ timeline: (e) => `${L(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
277
277
  joinUrl: (e) => e.payload.joinUrl
278
278
  },
279
279
  CHAT_CALL_ENDED: {
280
280
  shape: "event",
281
281
  channelKind: "chat",
282
282
  icon: "message-circle",
283
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${A(e.payload.duration)})` : ""}`,
284
- timeline: (e) => `${$(e.payload.callType)} ended${x(e.payload.duration)}`,
283
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
284
+ timeline: (e) => `${L(e.payload.callType)} ended${D(e.payload.duration)}`,
285
285
  joinUrl: (e) => e.payload.joinUrl
286
286
  },
287
287
  CHAT_EVENT: {
@@ -370,7 +370,7 @@ const m = {
370
370
  MEETING_ENDED: {
371
371
  shape: "event",
372
372
  icon: "calendar",
373
- snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${A(e.payload.duration)})` : ""}`,
373
+ snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
374
374
  timeline: () => "Meeting ended"
375
375
  },
376
376
  MEETING_PARTICIPANT_JOINED: {
@@ -438,57 +438,57 @@ const m = {
438
438
  timeline: (e, t) => `Status changed by ${t}`
439
439
  }
440
440
  };
441
- function R(e) {
442
- const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() || we(t.body ?? "");
441
+ function P(e) {
442
+ const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() || ve(t.body ?? "");
443
443
  return t.subject ? `${t.subject} — ${n}` : n;
444
444
  }
445
445
  function d(e) {
446
446
  return m[e];
447
447
  }
448
- function Nn(e) {
448
+ function Jn(e) {
449
449
  return d(e)?.icon ?? "circle";
450
450
  }
451
- function vn(e) {
451
+ function Zn(e) {
452
452
  return d(e)?.channelKind;
453
453
  }
454
- function ae(e) {
454
+ function le(e) {
455
455
  return e === "message" || e === "note";
456
456
  }
457
- function xn(e) {
458
- return ae(d(e)?.shape);
457
+ function Qn(e) {
458
+ return le(d(e)?.shape);
459
459
  }
460
- function $n(e) {
460
+ function er(e) {
461
461
  return d(e)?.replyable === !0;
462
462
  }
463
- function Rn(e) {
463
+ function tr(e) {
464
464
  return d(e)?.carriesText === !0;
465
465
  }
466
- function Dn(e) {
466
+ function Re(e) {
467
467
  return d(e)?.countsAs;
468
468
  }
469
- function Ln(e) {
469
+ function nr(e) {
470
470
  return d(e)?.playbookAuthored === !0;
471
471
  }
472
- function Pn(e) {
472
+ function rr(e) {
473
473
  return d(e)?.connected === !0;
474
474
  }
475
- function Kn(e) {
475
+ function ir(e) {
476
476
  const t = d(e);
477
477
  return t?.shape === "artifact" && t?.carriesText === !0;
478
478
  }
479
- function Me(e) {
479
+ function $e(e) {
480
480
  const t = d(e.type)?.snippet;
481
481
  return t ? t(e) : "";
482
482
  }
483
- function Un(e, t) {
483
+ function ar(e, t) {
484
484
  const n = d(e.type)?.timeline;
485
485
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
486
486
  }
487
- function Gn(e) {
487
+ function or(e) {
488
488
  const t = d(e.type)?.joinUrl;
489
489
  return t ? t(e) : void 0;
490
490
  }
491
- function C(e, t) {
491
+ function N(e, t) {
492
492
  let n = e;
493
493
  for (const r of t.split(".")) {
494
494
  if (n == null || typeof n != "object") return "";
@@ -496,43 +496,43 @@ function C(e, t) {
496
496
  }
497
497
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
498
498
  }
499
- function O(e, t, n) {
499
+ function v(e, t, n) {
500
500
  if (e === void 0) return null;
501
501
  if (typeof e == "string") return e || null;
502
502
  if ("value" in e)
503
- return C(t, e.value) || null;
503
+ return N(t, e.value) || null;
504
504
  const r = {};
505
505
  for (const [a, o] of Object.entries(e.params ?? {}))
506
- r[a] = C(t, o);
506
+ r[a] = N(t, o);
507
507
  const i = n(e.key, r);
508
508
  return i === e.key ? null : i;
509
509
  }
510
- function ke(e, t) {
510
+ function xe(e, t) {
511
511
  if (!e || typeof e == "string" || "value" in e) return null;
512
512
  const n = {};
513
513
  for (const [r, i] of Object.entries(e.params ?? {}))
514
- n[r] = C(t, i);
514
+ n[r] = N(t, i);
515
515
  return { key: e.key, params: n };
516
516
  }
517
- const D = 140;
518
- function Ce(e) {
517
+ const U = 140;
518
+ function De(e) {
519
519
  const t = e.trim();
520
- return t.length <= D ? t : `${t.slice(0, D - 1).trimEnd()}…`;
520
+ return t.length <= U ? t : `${t.slice(0, U - 1).trimEnd()}…`;
521
521
  }
522
- function jn(e, t) {
523
- const n = ke(t?.text, e), r = t ? O(t.text, e, (i) => i) : null;
522
+ function sr(e, t) {
523
+ const n = xe(t?.text, e), r = t ? v(t.text, e, (i) => i) : null;
524
524
  return {
525
525
  activityId: e.id,
526
526
  type: e.type,
527
- snippet: Ce(r ?? Me(e)),
527
+ snippet: De(r ?? $e(e)),
528
528
  authorName: e.author?.name ?? "",
529
529
  direction: e.direction,
530
530
  createdAt: e.createdAt ?? Date.now(),
531
531
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
532
532
  };
533
533
  }
534
- const Oe = (e) => e;
535
- function L(e) {
534
+ const Le = (e) => e;
535
+ function K(e) {
536
536
  const t = m[e];
537
537
  return {
538
538
  type: e,
@@ -548,7 +548,7 @@ function L(e) {
548
548
  displayNameKey: t.displayNameKey
549
549
  };
550
550
  }
551
- function P(e) {
551
+ function j(e) {
552
552
  return {
553
553
  type: e.type,
554
554
  shape: e.shape,
@@ -563,21 +563,21 @@ function P(e) {
563
563
  displayNameKey: e.displayNameKey
564
564
  };
565
565
  }
566
- class Ne {
567
- constructor(t = [], n = Oe) {
566
+ class Pe {
567
+ constructor(t = [], n = Le) {
568
568
  this.translate = n;
569
569
  for (const r of t)
570
570
  r?.type && (r.type in m || this.declared.has(r.type) || this.declared.set(r.type, r));
571
571
  }
572
572
  declared = /* @__PURE__ */ new Map();
573
573
  get(t) {
574
- if (t in m) return L(t);
574
+ if (t in m) return K(t);
575
575
  const n = this.declared.get(t);
576
- return n ? P(n) : void 0;
576
+ return n ? j(n) : void 0;
577
577
  }
578
578
  /** Everything that may be offered as a trigger, built-in and declared. */
579
579
  triggerable() {
580
- const t = Object.keys(m).filter((r) => m[r].triggerable).map(L), n = [...this.declared.values()].map(P).filter((r) => r.triggerable);
580
+ const t = Object.keys(m).filter((r) => m[r].triggerable).map(K), n = [...this.declared.values()].map(j).filter((r) => r.triggerable);
581
581
  return [...t, ...n];
582
582
  }
583
583
  /**
@@ -589,14 +589,14 @@ class Ne {
589
589
  const r = m[t.type];
590
590
  if (r?.timeline) return r.timeline(t, n);
591
591
  const i = this.declared.get(t.type);
592
- return O(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
592
+ return v(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
593
593
  }
594
594
  /** The line for the inbox list. Empty when the type has nothing to show. */
595
595
  snippet(t) {
596
596
  const n = m[t.type];
597
597
  if (n?.snippet) return n.snippet(t);
598
598
  const r = this.declared.get(t.type);
599
- return O(r?.text, t, this.translate) ?? "";
599
+ return v(r?.text, t, this.translate) ?? "";
600
600
  }
601
601
  /** The descriptor as it arrived; needed to store `text` as a key. */
602
602
  descriptor(t) {
@@ -621,7 +621,7 @@ class Ne {
621
621
  * {@link ResolvedActivityType}.
622
622
  */
623
623
  isMessage(t) {
624
- return ae(this.get(t)?.shape);
624
+ return le(this.get(t)?.shape);
625
625
  }
626
626
  /** Can a person reply to this? Notes cannot — those go nowhere. */
627
627
  isReplyable(t) {
@@ -649,23 +649,23 @@ class Ne {
649
649
  return this.translate;
650
650
  }
651
651
  }
652
- const Bn = new Ne();
653
- function Fn(e, t, n = []) {
652
+ const cr = new Pe();
653
+ function lr(e, t, n = []) {
654
654
  const r = e.createdAt;
655
655
  if (!r) return [];
656
656
  const i = new Set(n);
657
657
  return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([a, o]) => o >= r && !i.has(a)).map(([a]) => a);
658
658
  }
659
- function Hn(e) {
659
+ function Ue(e) {
660
660
  return e.createdAt ?? 0;
661
661
  }
662
- function Vn(e) {
662
+ function ur(e) {
663
663
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
664
664
  }
665
- function Wn(e) {
665
+ function dr(e) {
666
666
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
667
667
  }
668
- const oe = [
668
+ const ue = [
669
669
  {
670
670
  id: "openai",
671
671
  attachmentKinds: ["image", "pdf"],
@@ -755,52 +755,45 @@ const oe = [
755
755
  defaultModel: "default"
756
756
  }
757
757
  ];
758
- function S(e) {
759
- return oe.find((t) => t.id === e);
758
+ function T(e) {
759
+ return ue.find((t) => t.id === e);
760
760
  }
761
- function zn(e) {
762
- return S(e)?.label ?? e;
761
+ function pr(e) {
762
+ return T(e)?.label ?? e;
763
763
  }
764
- function Xn(e, t = "gpt-5-mini") {
765
- return S(e)?.defaultModel ?? t;
764
+ function fr(e, t = "gpt-5-mini") {
765
+ return T(e)?.defaultModel ?? t;
766
766
  }
767
- function Yn(e) {
768
- return oe.filter((t) => t.capabilities.includes(e));
767
+ function mr(e) {
768
+ return ue.filter((t) => t.capabilities.includes(e));
769
769
  }
770
- function qn(e) {
771
- const t = S(e);
770
+ function gr(e) {
771
+ const t = T(e);
772
772
  return !!t && !t.baseUrl;
773
773
  }
774
- function Jn(e, t) {
775
- return t === "text" ? !0 : S(e)?.attachmentKinds?.includes(t) === !0;
774
+ function hr(e, t) {
775
+ return t === "text" ? !0 : T(e)?.attachmentKinds?.includes(t) === !0;
776
776
  }
777
- function Zn(e, t) {
777
+ function yr(e, t) {
778
778
  if (!e.enabled) return "ok";
779
- const n = K(e.hardLimitNanos), r = K(e.softLimitNanos);
779
+ const n = G(e.hardLimitNanos), r = G(e.softLimitNanos);
780
780
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
781
781
  }
782
- function K(e) {
782
+ function G(e) {
783
783
  return typeof e == "number" ? e : void 0;
784
784
  }
785
- function ve(e, t = "month") {
785
+ function Ke(e, t = "month") {
786
786
  const n = new Date(e);
787
787
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
788
788
  }
789
- function Qn(e, t = "month") {
790
- const n = new Date(ve(e, t));
789
+ function Ar(e, t = "month") {
790
+ const n = new Date(Ke(e, t));
791
791
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
792
792
  }
793
- function er(e) {
793
+ function br(e) {
794
794
  return e?.listeningEnabled !== !1;
795
795
  }
796
- function tr(e) {
797
- const t = [];
798
- for (const n of Object.keys(e))
799
- for (const r of Object.keys(e[n]))
800
- t.push({ lang: n, key: r, value: e[n][r] });
801
- return t;
802
- }
803
- const nr = [
796
+ const Sr = [
804
797
  { id: "agent", label: "Agent", labelSource: "user" },
805
798
  { id: "team", label: "Team", labelSource: "team" },
806
799
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -810,47 +803,47 @@ const nr = [
810
803
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
811
804
  { id: "time", label: "Tijd", labelSource: "raw" }
812
805
  ];
813
- function w(e) {
806
+ function k(e) {
814
807
  return e < 10 ? `0${e}` : `${e}`;
815
808
  }
816
- function xe(e, t) {
817
- const n = new Date(e), r = `${n.getUTCFullYear()}-${w(n.getUTCMonth() + 1)}-${w(n.getUTCDate())}`;
818
- return t === "day" ? r : `${r}T${w(n.getUTCHours())}`;
809
+ function je(e, t) {
810
+ const n = new Date(e), r = `${n.getUTCFullYear()}-${k(n.getUTCMonth() + 1)}-${k(n.getUTCDate())}`;
811
+ return t === "day" ? r : `${r}T${k(n.getUTCHours())}`;
819
812
  }
820
- function $e(e, t) {
813
+ function Ge(e, t) {
821
814
  const n = new Date(e);
822
815
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
823
816
  }
824
- const Re = 36e5, De = 864e5;
825
- function rr(e, t, n) {
826
- const r = n === "hour" ? Re : De, i = [];
827
- for (let a = $e(e, n); a <= t; a += r)
828
- i.push(xe(a, n));
817
+ const Be = 36e5, He = 864e5;
818
+ function Er(e, t, n) {
819
+ const r = n === "hour" ? Be : He, i = [];
820
+ for (let a = Ge(e, n); a <= t; a += r)
821
+ i.push(je(a, n));
829
822
  return i;
830
823
  }
831
- const Le = [
824
+ const Fe = [
832
825
  { id: "resource", label: "Resource", labelSource: "raw" },
833
826
  { id: "origin", label: "Herkomst", labelSource: "raw" }
834
- ], Pe = Le.map((e) => e.id);
835
- function Ke(e, t) {
827
+ ], We = Fe.map((e) => e.id);
828
+ function Ve(e, t) {
836
829
  return `${e}.usage.${t}`;
837
830
  }
838
- function ir(e, t) {
831
+ function _r(e, t) {
839
832
  return t.map((n) => ({
840
- id: Ke(e, n.unit),
833
+ id: Ve(e, n.unit),
841
834
  label: n.label,
842
835
  category: "Verbruik",
843
836
  valueType: n.valueType ?? "count",
844
837
  aggregation: "sum",
845
838
  supportedDimensions: [
846
839
  "provider",
847
- ...Pe,
840
+ ...We,
848
841
  ...n.extraDimensions ?? [],
849
842
  "time"
850
843
  ]
851
844
  }));
852
845
  }
853
- const se = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), U = 200, G = 100, j = 200, B = 12, F = 4, ce = 4e3, M = 500, ar = 256 * 1024, Ue = /* @__PURE__ */ new Set([
846
+ const de = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), B = 200, H = 100, F = 200, W = 12, V = 4, pe = 4e3, C = 500, Tr = 256 * 1024, ze = /* @__PURE__ */ new Set([
854
847
  "heading",
855
848
  "paragraph",
856
849
  "list",
@@ -860,15 +853,15 @@ const se = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
860
853
  "table",
861
854
  "kpi",
862
855
  "callout"
863
- ]), Ge = ["http:", "https:", "mailto:", "tel:"], je = /^[a-z][a-z0-9+.-]*:/i;
864
- function le(e) {
856
+ ]), Xe = ["http:", "https:", "mailto:", "tel:"], Ye = /^[a-z][a-z0-9+.-]*:/i;
857
+ function fe(e) {
865
858
  const t = e.trim().replace(/^<|>$/g, "");
866
859
  if (!t) return !1;
867
- const n = je.exec(t)?.[0];
868
- return n ? Ge.includes(n.toLowerCase()) : !t.startsWith("//");
860
+ const n = Ye.exec(t)?.[0];
861
+ return n ? Xe.includes(n.toLowerCase()) : !t.startsWith("//");
869
862
  }
870
- const Be = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
871
- function Fe(e) {
863
+ const qe = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
864
+ function Je(e) {
872
865
  let t = "", n = 0;
873
866
  for (; n < e.length; ) {
874
867
  const r = e[n] === "!" && e[n + 1] === "[";
@@ -876,22 +869,22 @@ function Fe(e) {
876
869
  t += e[n], n += 1;
877
870
  continue;
878
871
  }
879
- const i = n + (r ? 2 : 1), a = H(e, i, "[", "]");
872
+ const i = n + (r ? 2 : 1), a = z(e, i, "[", "]");
880
873
  if (a < 0 || e[a + 1] !== "(") {
881
874
  t += e[n], n += 1;
882
875
  continue;
883
876
  }
884
- const o = H(e, a + 2, "(", ")");
877
+ const o = z(e, a + 2, "(", ")");
885
878
  if (o < 0) {
886
879
  t += e[n], n += 1;
887
880
  continue;
888
881
  }
889
882
  const s = e.slice(i, a), c = e.slice(a + 2, o).trim().split(/\s+/)[0] ?? "";
890
- t += r || !le(c) ? s : e.slice(n, o + 1), n = o + 1;
883
+ t += r || !fe(c) ? s : e.slice(n, o + 1), n = o + 1;
891
884
  }
892
885
  return t;
893
886
  }
894
- function H(e, t, n, r) {
887
+ function z(e, t, n, r) {
895
888
  let i = 1;
896
889
  for (let a = t; a < e.length; a += 1) {
897
890
  if (e[a] === "\\") {
@@ -904,33 +897,33 @@ function H(e, t, n, r) {
904
897
  }
905
898
  return -1;
906
899
  }
907
- function He(e) {
908
- return Fe(e).replace(
909
- Be,
910
- (t, n, r) => le(r) ? t : ""
900
+ function Ze(e) {
901
+ return Je(e).replace(
902
+ qe,
903
+ (t, n, r) => fe(r) ? t : ""
911
904
  );
912
905
  }
913
- function u(e, t = ce) {
914
- return typeof e == "string" ? He(e).slice(0, t) : "";
906
+ function u(e, t = pe) {
907
+ return typeof e == "string" ? Ze(e).slice(0, t) : "";
915
908
  }
916
- function Ve(e, t = ce) {
909
+ function Qe(e, t = pe) {
917
910
  return typeof e == "string" ? e.slice(0, t) : "";
918
911
  }
919
- function We(e, t = "info") {
920
- return typeof e == "string" && se.has(e) ? e : t;
912
+ function et(e, t = "info") {
913
+ return typeof e == "string" && de.has(e) ? e : t;
921
914
  }
922
- function or(e, t = () => {
915
+ function Ir(e, t = () => {
923
916
  }) {
924
917
  if (!Array.isArray(e)) return [];
925
918
  const n = [];
926
919
  for (const r of e) {
927
- if (n.length >= U) {
928
- t(`more than ${U} blocks; the rest was dropped`);
920
+ if (n.length >= B) {
921
+ t(`more than ${B} blocks; the rest was dropped`);
929
922
  break;
930
923
  }
931
924
  if (!r || typeof r != "object") continue;
932
925
  const i = r;
933
- if (!Ue.has(i.type)) {
926
+ if (!ze.has(i.type)) {
934
927
  t(`unknown block type ${String(i.type)}`);
935
928
  continue;
936
929
  }
@@ -965,7 +958,7 @@ function or(e, t = () => {
965
958
  break;
966
959
  }
967
960
  case "code": {
968
- const o = Ve(i.text);
961
+ const o = Qe(i.text);
969
962
  if (!o) {
970
963
  t("a code block without text");
971
964
  continue;
@@ -980,8 +973,8 @@ function or(e, t = () => {
980
973
  case "list": {
981
974
  const o = Array.isArray(i.items) ? i.items : [], s = [];
982
975
  for (const p of o) {
983
- if (s.length >= G) {
984
- t(`more than ${G} list items`);
976
+ if (s.length >= H) {
977
+ t(`more than ${H} list items`);
985
978
  break;
986
979
  }
987
980
  const f = u(p?.text);
@@ -1000,12 +993,12 @@ function or(e, t = () => {
1000
993
  case "table": {
1001
994
  const o = Array.isArray(i.columns) ? i.columns : [], s = [];
1002
995
  for (const l of o) {
1003
- if (s.length >= B) {
1004
- t(`more than ${B} table columns`);
996
+ if (s.length >= W) {
997
+ t(`more than ${W} table columns`);
1005
998
  break;
1006
999
  }
1007
- const y = u(l?.label, M), _ = l?.align === "right" ? "right" : void 0;
1008
- s.push(_ ? { label: y, align: _ } : { label: y });
1000
+ const A = u(l?.label, C), I = l?.align === "right" ? "right" : void 0;
1001
+ s.push(I ? { label: A, align: I } : { label: A });
1009
1002
  }
1010
1003
  if (s.length === 0) {
1011
1004
  t("a table without columns");
@@ -1013,14 +1006,14 @@ function or(e, t = () => {
1013
1006
  }
1014
1007
  const c = Array.isArray(i.rows) ? i.rows : [], p = [];
1015
1008
  for (const l of c) {
1016
- if (p.length >= j) {
1017
- t(`more than ${j} table rows`);
1009
+ if (p.length >= F) {
1010
+ t(`more than ${F} table rows`);
1018
1011
  break;
1019
1012
  }
1020
- const y = Array.isArray(l) ? l : [];
1021
- p.push(s.map((_, Te) => u(y[Te], M)));
1013
+ const A = Array.isArray(l) ? l : [];
1014
+ p.push(s.map((I, Oe) => u(A[Oe], C)));
1022
1015
  }
1023
- const f = u(i.caption, M);
1016
+ const f = u(i.caption, C);
1024
1017
  n.push({
1025
1018
  ...a,
1026
1019
  type: "table",
@@ -1033,15 +1026,15 @@ function or(e, t = () => {
1033
1026
  case "kpi": {
1034
1027
  const o = Array.isArray(i.items) ? i.items : [], s = [];
1035
1028
  for (const c of o) {
1036
- if (s.length >= F) {
1037
- t(`more than ${F} kpi items`);
1029
+ if (s.length >= V) {
1030
+ t(`more than ${V} kpi items`);
1038
1031
  break;
1039
1032
  }
1040
1033
  const p = u(c?.value, 40), f = u(c?.label, 80);
1041
1034
  if (!p || !f) continue;
1042
1035
  const l = c?.tone;
1043
1036
  s.push(
1044
- typeof l == "string" && se.has(l) ? { value: p, label: f, tone: l } : { value: p, label: f }
1037
+ typeof l == "string" && de.has(l) ? { value: p, label: f, tone: l } : { value: p, label: f }
1045
1038
  );
1046
1039
  }
1047
1040
  if (s.length === 0) {
@@ -1061,7 +1054,7 @@ function or(e, t = () => {
1061
1054
  n.push({
1062
1055
  ...a,
1063
1056
  type: "callout",
1064
- tone: We(i.tone),
1057
+ tone: et(i.tone),
1065
1058
  ...s ? { title: s } : {},
1066
1059
  text: o
1067
1060
  });
@@ -1071,28 +1064,28 @@ function or(e, t = () => {
1071
1064
  }
1072
1065
  return n;
1073
1066
  }
1074
- function sr(e) {
1067
+ function wr(e) {
1075
1068
  return JSON.stringify(e).length;
1076
1069
  }
1077
- function cr(e) {
1070
+ function Mr(e) {
1078
1071
  return {
1079
1072
  blocks: e.length,
1080
1073
  types: e.map((t) => t.type),
1081
1074
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
1082
1075
  };
1083
1076
  }
1084
- function V(e) {
1077
+ function X(e) {
1085
1078
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1086
1079
  }
1087
- function W(e, t, n) {
1080
+ function Y(e, t, n) {
1088
1081
  const r = e.map((i, a) => n?.[a] === "right" ? "---:" : "---");
1089
1082
  return [
1090
- `| ${e.map(V).join(" | ")} |`,
1083
+ `| ${e.map(X).join(" | ")} |`,
1091
1084
  `| ${r.join(" | ")} |`,
1092
- ...t.map((i) => `| ${i.map(V).join(" | ")} |`)
1085
+ ...t.map((i) => `| ${i.map(X).join(" | ")} |`)
1093
1086
  ];
1094
1087
  }
1095
- function ze(e) {
1088
+ function tt(e) {
1096
1089
  switch (e.type) {
1097
1090
  case "heading":
1098
1091
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -1110,7 +1103,7 @@ function ze(e) {
1110
1103
  return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
1111
1104
  });
1112
1105
  case "table": {
1113
- const t = W(
1106
+ const t = Y(
1114
1107
  e.columns.map((n) => n.label),
1115
1108
  e.rows,
1116
1109
  e.columns.map((n) => n.align ?? "left")
@@ -1118,7 +1111,7 @@ function ze(e) {
1118
1111
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
1119
1112
  }
1120
1113
  case "kpi":
1121
- return W(
1114
+ return Y(
1122
1115
  e.items.map((t) => t.value),
1123
1116
  [e.items.map((t) => t.label)]
1124
1117
  );
@@ -1126,11 +1119,11 @@ function ze(e) {
1126
1119
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
1127
1120
  }
1128
1121
  }
1129
- function lr(e, t) {
1122
+ function kr(e, t) {
1130
1123
  const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
1131
1124
  t && !r && n.push(`# ${t}`);
1132
1125
  for (const i of e) {
1133
- const a = ze(i);
1126
+ const a = tt(i);
1134
1127
  a.length > 0 && n.push(a.join(`
1135
1128
  `));
1136
1129
  }
@@ -1139,41 +1132,41 @@ function lr(e, t) {
1139
1132
  `)}
1140
1133
  `;
1141
1134
  }
1142
- const ue = (e) => `user:${e}`, de = (e) => `team:${e}`;
1143
- function ur(e) {
1135
+ const me = (e) => `user:${e}`, ge = (e) => `team:${e}`;
1136
+ function Cr(e) {
1144
1137
  const t = /* @__PURE__ */ new Set();
1145
1138
  for (const n of e ?? [])
1146
- n?.id && (n.kind === "user" && t.add(ue(n.id)), n.kind === "team" && t.add(de(n.id)));
1139
+ n?.id && (n.kind === "user" && t.add(me(n.id)), n.kind === "team" && t.add(ge(n.id)));
1147
1140
  return [...t].sort();
1148
1141
  }
1149
- function dr(e, t) {
1150
- return [ue(e), ...t.map(de)];
1142
+ function Or(e, t) {
1143
+ return [me(e), ...t.map(ge)];
1151
1144
  }
1152
- function pr(e) {
1145
+ function Nr(e) {
1153
1146
  const t = /* @__PURE__ */ new Set();
1154
1147
  for (const n of e ?? [])
1155
1148
  n?.kind && t.add(n.kind);
1156
1149
  return [...t];
1157
1150
  }
1158
- const Xe = ["done", "escalated"];
1159
- function fr(e) {
1160
- return Xe.includes(e);
1151
+ const nt = ["done", "escalated"];
1152
+ function vr(e) {
1153
+ return nt.includes(e);
1161
1154
  }
1162
- const Ye = "assignment";
1163
- function mr(e) {
1164
- return `${Ye}:${e}`;
1155
+ const rt = "assignment";
1156
+ function Rr(e) {
1157
+ return `${rt}:${e}`;
1165
1158
  }
1166
- function gr(e, t, n) {
1159
+ function $r(e, t, n) {
1167
1160
  if (e.direction === "inbound") return !0;
1168
1161
  if (e.author?.type === "user" && e.author.id === t) return !1;
1169
1162
  const r = e.payload?.mentions;
1170
1163
  return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1171
1164
  }
1172
- function hr(e) {
1165
+ function xr(e) {
1173
1166
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1174
1167
  }
1175
- const qe = 12;
1176
- function yr(e, t, n = qe) {
1168
+ const it = 12;
1169
+ function Dr(e, t, n = it) {
1177
1170
  const r = t + 1;
1178
1171
  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 ? {
1179
1172
  status: "escalated",
@@ -1187,39 +1180,101 @@ function yr(e, t, n = qe) {
1187
1180
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1188
1181
  };
1189
1182
  }
1190
- const Ar = /* @__PURE__ */ new Set(["mail", "message"]);
1191
- function Je(e, t) {
1183
+ const Lr = /* @__PURE__ */ new Set(["mail", "message"]);
1184
+ function at(e, t) {
1192
1185
  const n = e.settings?.signatures?.[t];
1193
1186
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1194
1187
  }
1195
- function br(e, t, n, r = "html") {
1188
+ function Pr(e, t, n, r = "html") {
1196
1189
  if (!e) return n;
1197
- const i = Je(e, t);
1190
+ const i = at(e, t);
1198
1191
  return i ? `${n}${r === "text" ? `
1199
1192
 
1200
1193
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1201
1194
  }
1202
- function Er(e) {
1195
+ function Ur(e) {
1203
1196
  return e.endpoints ?? [];
1204
1197
  }
1205
- const Sr = (e) => !!e.assignedUserId || !!e.assignedInboxId, _r = (e) => e.status === "closed", Tr = (e) => ({
1198
+ const ot = 36e5, st = 864e5, g = -1 / 0, Kr = (e) => e.score > g, _ = {
1199
+ urgent: 40,
1200
+ high: 25,
1201
+ normal: 10,
1202
+ low: 0
1203
+ };
1204
+ function jr(e) {
1205
+ return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1206
+ }
1207
+ const ct = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, lt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1208
+ function ut(e, t) {
1209
+ return !!(e && ct.test(e) || t && lt.test(t));
1210
+ }
1211
+ const dt = 3, pt = 600;
1212
+ function Gr(e, t) {
1213
+ return e >= dt || t >= pt;
1214
+ }
1215
+ function ft(e, t) {
1216
+ return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1217
+ }
1218
+ const mt = [
1219
+ "open",
1220
+ "pending"
1221
+ ], gt = 1e3, ht = {
1222
+ urgent: 1,
1223
+ high: 4,
1224
+ normal: 8,
1225
+ low: 24
1226
+ }, yt = 72;
1227
+ function At(e) {
1228
+ return e.lastActivityAt ?? (e.createdAt ? new Date(Ue(e)).getTime() : 0);
1229
+ }
1230
+ function bt(e, t) {
1231
+ return St(t.remindersById?.[e.id], e, t.now);
1232
+ }
1233
+ function St(e, t, n) {
1234
+ return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1235
+ }
1236
+ const he = (e) => Re(e) === "outbound_message", ye = (e) => mt.includes(e);
1237
+ function R(e, t) {
1238
+ return Math.max(0, (t - At(e)) / ot);
1239
+ }
1240
+ function Br(e, t) {
1241
+ return !ye(e.status) || e.firstResponseAt ? !1 : R(e, t) > ht[e.priority ?? "normal"];
1242
+ }
1243
+ function Et(e, t) {
1244
+ const n = e.lastActivityPreview;
1245
+ return n?.direction !== "outbound" || !he(n.type) ? !1 : R(e, t) < yt;
1246
+ }
1247
+ function Hr(e, t) {
1248
+ if (!ye(e.status)) return { score: g, reasons: [] };
1249
+ if (e.snoozedTill && e.snoozedTill > t.now) return { score: g, reasons: [] };
1250
+ if (Et(e, t.now)) return { score: g, reasons: [] };
1251
+ if (bt(e, t)) return { score: g, reasons: [] };
1252
+ let n = 0;
1253
+ const r = [], i = e.priority ?? "normal";
1254
+ _[i] > 0 && (n += _[i], r.push(`priority:${i}`)), ft(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1255
+ const a = R(e, t.now);
1256
+ if (a > 0) {
1257
+ const s = Math.min(a * 2, 30);
1258
+ n += s, a >= 1 && r.push(`waiting:${Math.round(a)}h`);
1259
+ }
1260
+ const o = e.lastActivityPreview;
1261
+ return o?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), o?.direction === "outbound" && he(o.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), ut(e.remoteParty?.resource, e.lastActivityPreview?.snippet) && (n -= gt, r.push("bulk")), { score: n, reasons: r };
1262
+ }
1263
+ const Fr = (e) => !!e.assignedUserId || !!e.assignedInboxId, Wr = (e) => e.status === "closed", Vr = (e) => ({
1206
1264
  urgent: 10,
1207
1265
  high: 5,
1208
1266
  normal: 2,
1209
1267
  low: 1
1210
- })[e.priority] || 0, Ir = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1211
- function wr(e, t) {
1212
- return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1213
- }
1214
- function Mr(e, t) {
1268
+ })[e.priority] || 0, zr = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1269
+ function Xr(e, t) {
1215
1270
  const n = e.labels ?? [];
1216
1271
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1217
1272
  }
1218
- function kr(e, t, n) {
1273
+ function Yr(e, t, n) {
1219
1274
  const r = e.translations ?? [];
1220
1275
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1221
1276
  }
1222
- const z = [
1277
+ const q = [
1223
1278
  { code: "nl", label: "Nederlands", english: "Dutch" },
1224
1279
  { code: "en", label: "English", english: "English" },
1225
1280
  { code: "de", label: "Deutsch", english: "German" },
@@ -1234,36 +1289,36 @@ const z = [
1234
1289
  { code: "fi", label: "Suomi", english: "Finnish" },
1235
1290
  { code: "tr", label: "Türkçe", english: "Turkish" }
1236
1291
  ];
1237
- function pe(e) {
1292
+ function Ae(e) {
1238
1293
  const t = (e ?? "").toLowerCase();
1239
- return z.find((n) => n.code === t) ?? z.find((n) => n.code === t.split("-")[0]);
1294
+ return q.find((n) => n.code === t) ?? q.find((n) => n.code === t.split("-")[0]);
1240
1295
  }
1241
- function Cr(e) {
1242
- return pe(e)?.label ?? e;
1296
+ function qr(e) {
1297
+ return Ae(e)?.label ?? e;
1243
1298
  }
1244
- function Or(e) {
1245
- const t = pe(e);
1299
+ function Jr(e) {
1300
+ const t = Ae(e);
1246
1301
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1247
1302
  }
1248
- const fe = 3;
1249
- function Ze(e, t) {
1303
+ const be = 3;
1304
+ function _t(e, t) {
1250
1305
  const n = /* @__PURE__ */ new Set();
1251
1306
  let r = 1, i = t.get(e)?.parentId;
1252
1307
  for (; i; ) {
1253
- if (n.has(i) || (n.add(i), r++, r > fe + 1)) return 1 / 0;
1308
+ if (n.has(i) || (n.add(i), r++, r > be + 1)) return 1 / 0;
1254
1309
  i = t.get(i)?.parentId;
1255
1310
  }
1256
1311
  return r;
1257
1312
  }
1258
- function Nr(e, t, n) {
1313
+ function Zr(e, t, n) {
1259
1314
  if (!e) return !0;
1260
1315
  if (e === t) return !1;
1261
1316
  const r = new Map(n.map((o) => [o.id, o]));
1262
- if (!r.has(e) || t && Qe(e, t, r)) return !1;
1263
- const i = Ze(e, r), a = t ? me(t, n) : 1;
1264
- return i + a <= fe;
1317
+ if (!r.has(e) || t && Tt(e, t, r)) return !1;
1318
+ const i = _t(e, r), a = t ? Se(t, n) : 1;
1319
+ return i + a <= be;
1265
1320
  }
1266
- function Qe(e, t, n) {
1321
+ function Tt(e, t, n) {
1267
1322
  const r = /* @__PURE__ */ new Set();
1268
1323
  let i = n.get(e)?.parentId;
1269
1324
  for (; i; ) {
@@ -1273,44 +1328,44 @@ function Qe(e, t, n) {
1273
1328
  }
1274
1329
  return !1;
1275
1330
  }
1276
- function me(e, t, n = /* @__PURE__ */ new Set()) {
1331
+ function Se(e, t, n = /* @__PURE__ */ new Set()) {
1277
1332
  if (n.has(e)) return 1;
1278
1333
  n.add(e);
1279
1334
  const r = t.filter((i) => i.parentId === e);
1280
- return r.length ? 1 + Math.max(...r.map((i) => me(i.id, t, n))) : 1;
1335
+ return r.length ? 1 + Math.max(...r.map((i) => Se(i.id, t, n))) : 1;
1281
1336
  }
1282
- const et = "en";
1283
- function tt(e) {
1284
- return e.defaultLocale || e.locale || et;
1337
+ const It = "en";
1338
+ function wt(e) {
1339
+ return e.defaultLocale || e.locale || It;
1285
1340
  }
1286
- function vr(e) {
1341
+ function Qr(e) {
1287
1342
  const t = /* @__PURE__ */ new Set(), n = [];
1288
- for (const r of [tt(e), ...e.locales ?? []])
1343
+ for (const r of [wt(e), ...e.locales ?? []])
1289
1344
  !r || t.has(r) || (t.add(r), n.push(r));
1290
1345
  return n;
1291
1346
  }
1292
- function xr(e, t, n) {
1347
+ function ei(e, t, n) {
1293
1348
  const r = e.translations ?? [];
1294
1349
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1295
1350
  }
1296
- const X = ["lookup", "condition", "parallel", "for-each"];
1297
- function Y(e) {
1351
+ const J = ["lookup", "condition", "parallel", "for-each"];
1352
+ function Z(e) {
1298
1353
  for (const t of e) {
1299
- if (!X.includes(t.type))
1300
- return `staptype "${t.type}" mag niet meelezen (alleen ${X.join(", ")})`;
1354
+ if (!J.includes(t.type))
1355
+ return `staptype "${t.type}" mag niet meelezen (alleen ${J.join(", ")})`;
1301
1356
  if (t.type === "parallel")
1302
1357
  for (const n of t.branches ?? []) {
1303
- const r = Y(n);
1358
+ const r = Z(n);
1304
1359
  if (r) return r;
1305
1360
  }
1306
1361
  if (t.type === "for-each") {
1307
- const n = Y(t.body ?? []);
1362
+ const n = Z(t.body ?? []);
1308
1363
  if (n) return n;
1309
1364
  }
1310
1365
  }
1311
1366
  return null;
1312
1367
  }
1313
- function nt(e, t) {
1368
+ function Mt(e, t) {
1314
1369
  switch (e.kind) {
1315
1370
  case "org":
1316
1371
  return !0;
@@ -1320,23 +1375,23 @@ function nt(e, t) {
1320
1375
  return e.userId === t.userId;
1321
1376
  }
1322
1377
  }
1323
- function $r(e, t) {
1324
- return e.filter((n) => n.enabled && nt(n.ownerScope, t));
1378
+ function ti(e, t) {
1379
+ return e.filter((n) => n.enabled && Mt(n.ownerScope, t));
1325
1380
  }
1326
- function Rr(e) {
1381
+ function ni(e) {
1327
1382
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1328
1383
  }
1329
- function Dr(e) {
1384
+ function ri(e) {
1330
1385
  return `mcp__${e}__`;
1331
1386
  }
1332
- const Lr = 1e3, Pr = 2e3, Kr = 500, Ur = 12e3, Gr = 4e3, rt = ["contact", "company", "work_item"];
1333
- function jr(e) {
1387
+ const ii = 1e3, ai = 2e3, oi = 500, si = 12e3, ci = 4e3, kt = ["contact", "company", "work_item"];
1388
+ function li(e) {
1334
1389
  if (!e) return !1;
1335
1390
  const t = e.slice(0, e.indexOf(":"));
1336
- return rt.includes(t);
1391
+ return kt.includes(t);
1337
1392
  }
1338
- const Br = "onboarding-source", Fr = ["support", "billing", "availability", "sales", "onboarding"], Hr = ["keep", "replace"];
1339
- function it(e) {
1393
+ const ui = "onboarding-source", di = ["support", "billing", "availability", "sales", "onboarding"], pi = ["keep", "replace"];
1394
+ function Ct(e) {
1340
1395
  switch (e.kind) {
1341
1396
  case "user":
1342
1397
  return `user:${e.userId}`;
@@ -1346,7 +1401,7 @@ function it(e) {
1346
1401
  return "org";
1347
1402
  }
1348
1403
  }
1349
- function Vr(e) {
1404
+ function fi(e) {
1350
1405
  if (typeof e != "string") return;
1351
1406
  const t = e.trim();
1352
1407
  if (t === "org") return { kind: "org" };
@@ -1358,10 +1413,10 @@ function Vr(e) {
1358
1413
  if (r === "team") return { kind: "team", teamId: i };
1359
1414
  }
1360
1415
  }
1361
- function at(e) {
1362
- return it(e);
1416
+ function Ot(e) {
1417
+ return Ct(e);
1363
1418
  }
1364
- function ot(e) {
1419
+ function Nt(e) {
1365
1420
  switch (e.kind) {
1366
1421
  case "personal":
1367
1422
  return { kind: "user", userId: e.userId };
@@ -1371,14 +1426,14 @@ function ot(e) {
1371
1426
  return { kind: "org" };
1372
1427
  }
1373
1428
  }
1374
- const st = ot;
1375
- function Wr(e) {
1376
- return e.agentId ? { kind: "user", userId: e.agentId } : st(e.ownerScope);
1429
+ const vt = Nt;
1430
+ function mi(e) {
1431
+ return e.agentId ? { kind: "user", userId: e.agentId } : vt(e.ownerScope);
1377
1432
  }
1378
- function zr(e) {
1379
- return at(e);
1433
+ function gi(e) {
1434
+ return Ot(e);
1380
1435
  }
1381
- function Xr(e, t) {
1436
+ function hi(e, t) {
1382
1437
  if (!t) return;
1383
1438
  let n = e;
1384
1439
  for (const r of t.split(".")) {
@@ -1387,24 +1442,24 @@ function Xr(e, t) {
1387
1442
  }
1388
1443
  return n;
1389
1444
  }
1390
- function Yr(e, t) {
1445
+ function yi(e, t) {
1391
1446
  return e.targets.find((n) => n.activityTypes.includes(t));
1392
1447
  }
1393
- function qr(e, t) {
1448
+ function Ai(e, t) {
1394
1449
  if (t)
1395
1450
  return e.targets.find((n) => n.id === t);
1396
1451
  }
1397
- function ct(e) {
1452
+ function Rt(e) {
1398
1453
  return e?.kind === "assignment";
1399
1454
  }
1400
- function Jr(e) {
1455
+ function bi(e) {
1401
1456
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: a, authorUserId: o } = e;
1402
- return ct(t) ? n ? r ? r.activityTypes.includes(i) ? a ? a !== n ? "assigned to someone else" : o && o === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1457
+ return Rt(t) ? n ? r ? r.activityTypes.includes(i) ? a ? a !== n ? "assigned to someone else" : o && o === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1403
1458
  }
1404
- function Zr(e) {
1459
+ function Si(e) {
1405
1460
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1406
1461
  }
1407
- const Qr = [
1462
+ const Ei = [
1408
1463
  { name: "text", type: "string" },
1409
1464
  { name: "subject", type: "string" },
1410
1465
  { name: "from", type: "string" },
@@ -1438,7 +1493,7 @@ const Qr = [
1438
1493
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1439
1494
  // the trigger filter runs — like contactId/companyId above.
1440
1495
  { name: "assigneeUserId", type: "string" }
1441
- ], ei = {
1496
+ ], _i = {
1442
1497
  topics: [
1443
1498
  { name: "topicId", type: "string" },
1444
1499
  { name: "topic", type: "string" },
@@ -1452,69 +1507,69 @@ const Qr = [
1452
1507
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
1453
1508
  extract: []
1454
1509
  };
1455
- function lt(e) {
1510
+ function $t(e) {
1456
1511
  return `${e.type}:${e.id}`;
1457
1512
  }
1458
- const ut = "interaction";
1459
- function dt(e) {
1460
- return e?.type === ut ? e.id : void 0;
1513
+ const xt = "interaction";
1514
+ function Dt(e) {
1515
+ return e?.type === xt ? e.id : void 0;
1461
1516
  }
1462
- const pt = 64, ft = 8e3;
1463
- function ti(e) {
1517
+ const Lt = 64, Pt = 8e3;
1518
+ function Ti(e) {
1464
1519
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1465
1520
  if (!(!Number.isFinite(t) || t <= 0))
1466
- return Math.min(Math.max(Math.round(t), pt), ft);
1521
+ return Math.min(Math.max(Math.round(t), Lt), Pt);
1467
1522
  }
1468
- const ni = { kind: "workflow", steps: [] };
1469
- function ri(e) {
1523
+ const Ii = { kind: "workflow", steps: [] };
1524
+ function wi(e) {
1470
1525
  return e?.kind === "workflow" ? e.steps : [];
1471
1526
  }
1472
- function ii(e) {
1527
+ function Mi(e) {
1473
1528
  return e?.kind === "procedure" ? e.procedure : void 0;
1474
1529
  }
1475
- const mt = ["done", "escalated", "failed", "stopped"];
1476
- function ai(e) {
1477
- return mt.includes(e);
1530
+ const Ut = ["done", "escalated", "failed", "stopped"];
1531
+ function ki(e) {
1532
+ return Ut.includes(e);
1478
1533
  }
1479
- function gt(e) {
1534
+ function Kt(e) {
1480
1535
  return e === "waiting";
1481
1536
  }
1482
- function oi(e) {
1483
- return e === "running" || gt(e);
1537
+ function Ci(e) {
1538
+ return e === "running" || Kt(e);
1484
1539
  }
1485
- function ge(e) {
1540
+ function Ee(e) {
1486
1541
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1487
1542
  }
1488
- function si(e) {
1489
- const t = ge(e);
1490
- return t ? lt(t) : void 0;
1543
+ function Oi(e) {
1544
+ const t = Ee(e);
1545
+ return t ? $t(t) : void 0;
1491
1546
  }
1492
- function ci(e) {
1493
- return dt(ge(e));
1547
+ function Ni(e) {
1548
+ return Dt(Ee(e));
1494
1549
  }
1495
- function li(e, t) {
1550
+ function vi(e, t) {
1496
1551
  const n = e.accumulatedSeconds || 0;
1497
1552
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1498
1553
  }
1499
- function ui(e, t) {
1554
+ function Ri(e, t) {
1500
1555
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1501
1556
  if (!t || t === "exact") return n * 60;
1502
1557
  const r = Number(t);
1503
1558
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1504
1559
  }
1505
- function di(e) {
1560
+ function $i(e) {
1506
1561
  const t = Math.max(0, Math.round(e / 60));
1507
1562
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1508
1563
  }
1509
- function pi(e) {
1564
+ function xi(e) {
1510
1565
  const t = Math.max(0, Math.floor(e)), n = (a) => String(a).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
1511
1566
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1512
1567
  }
1513
- function ht(e) {
1568
+ function jt(e) {
1514
1569
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1515
1570
  }
1516
- function fi(e, t) {
1517
- const n = ht(e) || "werksoort", r = new Set(t);
1571
+ function Di(e, t) {
1572
+ const n = jt(e) || "werksoort", r = new Set(t);
1518
1573
  if (!r.has(n)) return n;
1519
1574
  for (let i = 2; i < 500; i++) {
1520
1575
  const a = `${n}-${i}`;
@@ -1522,73 +1577,93 @@ function fi(e, t) {
1522
1577
  }
1523
1578
  return `${n}-${r.size + 1}`;
1524
1579
  }
1525
- function mi(e, t) {
1580
+ function Li(e, t) {
1526
1581
  const n = e.ownerScope;
1527
1582
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1528
1583
  }
1529
- function gi(e) {
1530
- return e.filter((t) => !t.archived).sort(yt);
1584
+ function Pi(e) {
1585
+ return e.filter((t) => !t.archived).sort(Gt);
1531
1586
  }
1532
- function yt(e, t) {
1587
+ function Gt(e, t) {
1533
1588
  const n = (e.order ?? 0) - (t.order ?? 0);
1534
1589
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
1535
1590
  }
1536
- const At = 20, bt = 20, k = 300;
1537
- function g(e) {
1591
+ const Bt = 20, Ht = 20, O = 300;
1592
+ function h(e) {
1538
1593
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1539
1594
  }
1540
- function Et(e) {
1595
+ function Ft(e) {
1541
1596
  const t = e.replace(/\s+/g, " ").trim();
1542
- if (t.length <= k) return t;
1543
- const n = t.slice(0, k), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1544
- return r > k * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1545
- }
1546
- function hi(e, t) {
1547
- const n = Et(t.text), r = g(n);
1548
- if (!r || (e.examples ?? []).some((o) => g(o) === r)) return null;
1549
- const i = e.exampleCandidates ?? [], a = i.findIndex((o) => g(o.text) === r);
1597
+ if (t.length <= O) return t;
1598
+ const n = t.slice(0, O), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1599
+ return r > O * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1600
+ }
1601
+ function Ui(e, t) {
1602
+ const n = Ft(t.text), r = h(n);
1603
+ if (!r || (e.examples ?? []).some((o) => h(o) === r)) return null;
1604
+ const i = e.exampleCandidates ?? [], a = i.findIndex((o) => h(o.text) === r);
1550
1605
  if (a >= 0) {
1551
1606
  if (i[a].corrected || !t.corrected) return null;
1552
1607
  const o = [...i];
1553
- return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, q(o);
1608
+ return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, Q(o);
1554
1609
  }
1555
- return q([{ ...t, text: n }, ...i]).slice(0, bt);
1610
+ return Q([{ ...t, text: n }, ...i]).slice(0, Ht);
1556
1611
  }
1557
- function q(e) {
1612
+ function Q(e) {
1558
1613
  return [...e].sort(
1559
1614
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1560
1615
  );
1561
1616
  }
1562
- function yi(e, t) {
1563
- const n = g(t), r = (e.examples ?? []).filter((a) => a.trim());
1564
- return { examples: r.some((a) => g(a) === n) ? r : [...r, t].slice(-At), exampleCandidates: St(e, t) };
1617
+ function Ki(e, t) {
1618
+ const n = h(t), r = (e.examples ?? []).filter((a) => a.trim());
1619
+ return { examples: r.some((a) => h(a) === n) ? r : [...r, t].slice(-Bt), exampleCandidates: Wt(e, t) };
1565
1620
  }
1566
- function St(e, t) {
1567
- const n = g(t);
1568
- return (e.exampleCandidates ?? []).filter((r) => g(r.text) !== n);
1621
+ function Wt(e, t) {
1622
+ const n = h(t);
1623
+ return (e.exampleCandidates ?? []).filter((r) => h(r.text) !== n);
1569
1624
  }
1570
- function _t(e, t) {
1625
+ function Vt(e, t) {
1571
1626
  const n = e.ownerScope;
1572
1627
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1573
1628
  }
1574
- function Ai(e, t) {
1575
- return e.filter((n) => _t(n, t));
1629
+ function ji(e, t) {
1630
+ return e.filter((n) => Vt(n, t));
1576
1631
  }
1577
- function bi(e) {
1632
+ function Gi(e) {
1578
1633
  return e.type === "agent";
1579
1634
  }
1580
- const Ei = "WORK_COMMENT_ADDED", Si = "WORK_ITEM_ASSIGNED", _i = "WORK_ITEM_STATUS_CHANGED", Tt = "work_item", It = "work_project";
1581
- function wt(e) {
1582
- return `${Tt}:${e}`;
1635
+ const Bi = "WORK_COMMENT_ADDED", Hi = "WORK_ITEM_ASSIGNED", Fi = "WORK_ITEM_STATUS_CHANGED";
1636
+ function zt(e, t) {
1637
+ const n = (r) => {
1638
+ const i = new Date(r);
1639
+ return i.setHours(0, 0, 0, 0), i.getTime();
1640
+ };
1641
+ return Math.round((n(e) - n(t)) / st);
1642
+ }
1643
+ function Wi(e, t) {
1644
+ if (e.closedAt != null) return { score: g, reasons: [] };
1645
+ const n = t.remindersById?.[e.id];
1646
+ if (n && n.remindAt > t.now) return { score: g, reasons: [] };
1647
+ let r = 0;
1648
+ const i = [], a = e.priority ?? "normal";
1649
+ if (_[a] > 0 && (r += _[a], i.push(`priority:${a}`)), typeof e.dueDate == "number") {
1650
+ const o = zt(e.dueDate, t.now);
1651
+ o < 0 ? (r += 35, i.push("overdue")) : o === 0 && (r += 20, i.push("due-today"));
1652
+ }
1653
+ return e.source?.initiator === "system" && e.source.systemReason && (r += 15, i.push(`auto:${e.source.systemReason}`)), { score: r, reasons: i };
1583
1654
  }
1584
- function he(e) {
1585
- return `${It}:${e}`;
1655
+ const Xt = "work_item", Yt = "work_project";
1656
+ function qt(e) {
1657
+ return `${Xt}:${e}`;
1586
1658
  }
1587
- function Ti(e, t, n) {
1659
+ function _e(e) {
1660
+ return `${Yt}:${e}`;
1661
+ }
1662
+ function Vi(e, t, n) {
1588
1663
  const r = `${e}-${t}`;
1589
1664
  return n ? `${r}-${n}` : r;
1590
1665
  }
1591
- function Ii(e) {
1666
+ function zi(e) {
1592
1667
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1593
1668
  return t ? {
1594
1669
  projectKey: t[1].toUpperCase(),
@@ -1596,52 +1671,52 @@ function Ii(e) {
1596
1671
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1597
1672
  } : null;
1598
1673
  }
1599
- function wi(e) {
1674
+ function Xi(e) {
1600
1675
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1601
1676
  }
1602
- function Mi(e, t = 25) {
1603
- const n = /* @__PURE__ */ new Set([wt(e.id)]);
1604
- e.projectId && n.add(he(e.projectId));
1677
+ function Yi(e, t = 25) {
1678
+ const n = /* @__PURE__ */ new Set([qt(e.id)]);
1679
+ e.projectId && n.add(_e(e.projectId));
1605
1680
  for (const r of e.ancestorKeys ?? []) n.add(r);
1606
1681
  for (const r of e.partyKeys ?? []) n.add(r);
1607
1682
  return Array.from(n).slice(0, t);
1608
1683
  }
1609
- function ki(e) {
1610
- return [he(e.id)];
1684
+ function qi(e) {
1685
+ return [_e(e.id)];
1611
1686
  }
1612
- const N = [
1687
+ const $ = [
1613
1688
  { key: "open", label: "status_open", category: "todo", order: 0 },
1614
1689
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1615
1690
  { key: "done", label: "status_done", category: "done", order: 2 },
1616
1691
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1617
- ], ye = N.map((e) => e.key);
1618
- function Mt(e) {
1619
- return e?.statuses?.length ? e.statuses : N;
1692
+ ], Te = $.map((e) => e.key);
1693
+ function Jt(e) {
1694
+ return e?.statuses?.length ? e.statuses : $;
1620
1695
  }
1621
- function kt(e, t) {
1696
+ function Zt(e, t) {
1622
1697
  return t.find((n) => n.key === e)?.category ?? "todo";
1623
1698
  }
1624
- function Ci(e, t) {
1699
+ function Ji(e, t) {
1625
1700
  return t.find((n) => n.key === e);
1626
1701
  }
1627
- function Oi(e) {
1628
- const t = Mt(e), n = e?.defaultStatusKey;
1629
- return n && t.some((r) => r.key === n) ? n : Ct(t)[0]?.key ?? N[0].key;
1702
+ function Zi(e) {
1703
+ const t = Jt(e), n = e?.defaultStatusKey;
1704
+ return n && t.some((r) => r.key === n) ? n : Qt(t)[0]?.key ?? $[0].key;
1630
1705
  }
1631
- function Ct(e) {
1706
+ function Qt(e) {
1632
1707
  return [...e].sort((t, n) => {
1633
1708
  const r = (t.order ?? 0) - (n.order ?? 0);
1634
1709
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1635
1710
  });
1636
1711
  }
1637
- function Ni(e, t) {
1638
- return kt(e, t) === "done";
1712
+ function Qi(e, t) {
1713
+ return Zt(e, t) === "done";
1639
1714
  }
1640
- function Ot(e) {
1715
+ function en(e) {
1641
1716
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1642
1717
  }
1643
- function vi(e, t) {
1644
- const n = Ot(e) || "status", r = /* @__PURE__ */ new Set([...t, ...ye]);
1718
+ function ea(e, t) {
1719
+ const n = en(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Te]);
1645
1720
  if (!r.has(n)) return n;
1646
1721
  for (let i = 2; i < 500; i++) {
1647
1722
  const a = `${n}-${i}`;
@@ -1649,7 +1724,7 @@ function vi(e, t) {
1649
1724
  }
1650
1725
  return `${n}-${r.size + 1}`;
1651
1726
  }
1652
- function xi(e) {
1727
+ function ta(e) {
1653
1728
  const t = [];
1654
1729
  if (!e.length) return [{ index: -1, reason: "empty" }];
1655
1730
  const n = /* @__PURE__ */ new Set();
@@ -1658,10 +1733,10 @@ function xi(e) {
1658
1733
  t.push({ index: i, reason: "missing_key" });
1659
1734
  return;
1660
1735
  }
1661
- ye.includes(r.key) && t.push({ index: i, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: i, reason: "duplicate_key", key: r.key }), n.add(r.key);
1736
+ Te.includes(r.key) && t.push({ index: i, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: i, reason: "duplicate_key", key: r.key }), n.add(r.key);
1662
1737
  }), 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;
1663
1738
  }
1664
- const Nt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), vt = /* @__PURE__ */ new Set([
1739
+ const tn = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), nn = /* @__PURE__ */ new Set([
1665
1740
  "text/plain",
1666
1741
  "text/markdown",
1667
1742
  "text/csv",
@@ -1670,55 +1745,67 @@ const Nt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1670
1745
  "application/xml",
1671
1746
  "text/xml"
1672
1747
  ]);
1673
- function xt(e) {
1748
+ function rn(e) {
1674
1749
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1675
- return t ? Nt.has(t) ? "image" : t === "application/pdf" ? "pdf" : vt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1676
- }
1677
- const h = 1024 * 1024, $t = {
1678
- image: 5 * h,
1679
- pdf: 20 * h,
1680
- text: 1 * h,
1681
- audio: 20 * h
1682
- }, $i = 25 * h, Ri = 5;
1683
- function Di(e, t) {
1684
- const n = xt(e);
1685
- return n === "unsupported" ? "unsupported" : t > $t[n] ? "too-large" : null;
1750
+ return t ? tn.has(t) ? "image" : t === "application/pdf" ? "pdf" : nn.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1751
+ }
1752
+ const y = 1024 * 1024, an = {
1753
+ image: 5 * y,
1754
+ pdf: 20 * y,
1755
+ text: 1 * y,
1756
+ audio: 20 * y
1757
+ }, na = 25 * y, ra = 5;
1758
+ function ia(e, t) {
1759
+ const n = rn(e);
1760
+ return n === "unsupported" ? "unsupported" : t > an[n] ? "too-large" : null;
1686
1761
  }
1687
- function Rt(e) {
1762
+ function aa(e) {
1763
+ return e.access !== "read" && e.effect !== "internal";
1764
+ }
1765
+ function on(e) {
1688
1766
  return `${e.kind}:${e.id || e.url || e.title}`;
1689
1767
  }
1690
- function Li(e, t = []) {
1768
+ function oa(e, t = []) {
1691
1769
  const n = new Set(t), r = [], i = [];
1692
1770
  for (const a of e) {
1693
- const o = Rt(a);
1771
+ const o = on(a);
1694
1772
  n.has(o) || (n.add(o), r.push(a), i.push(o));
1695
1773
  }
1696
1774
  return { sources: r, keys: i };
1697
1775
  }
1698
- function Pi(e) {
1776
+ const sa = "assist-source", ca = ["blocking", "due", "open"];
1777
+ function la(e, t) {
1778
+ const [n, r] = (e.subjectKey ?? "").split(":");
1779
+ return n === t && r ? r : void 0;
1780
+ }
1781
+ const ee = { blocking: 0, due: 1, open: 2 };
1782
+ function ua(e, t) {
1783
+ return ee[e.band ?? "open"] - ee[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1784
+ }
1785
+ function da(e) {
1699
1786
  return e.sessions.filter(
1700
1787
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1701
1788
  );
1702
1789
  }
1703
- function Ki(e) {
1790
+ function pa(e) {
1704
1791
  return e.sessions.filter(
1705
1792
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1706
1793
  );
1707
1794
  }
1708
- function Ui(e) {
1795
+ function fa(e) {
1709
1796
  return e.sessions.some(
1710
1797
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1711
1798
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
1712
1799
  }
1713
- function Dt(e, t) {
1714
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => Pt(o, r[o.intent]));
1800
+ function sn(e, t) {
1801
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => ln(o, r[o.intent]));
1715
1802
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
1716
1803
  const a = new Set(i.map((o) => o.intent));
1717
1804
  for (const o of e.extraIntents)
1718
1805
  a.has(o.intent) || (i.push(o), a.add(o.intent));
1719
1806
  return i;
1720
1807
  }
1721
- function Lt(e, t) {
1808
+ function cn(e, t) {
1722
1809
  const n = {};
1723
1810
  for (const r of e.intents) {
1724
1811
  if (!r.togglable) continue;
@@ -1727,46 +1814,46 @@ function Lt(e, t) {
1727
1814
  }
1728
1815
  return n;
1729
1816
  }
1730
- function Gi(e, t) {
1731
- const n = Lt(e, t);
1817
+ function ma(e, t) {
1818
+ const n = cn(e, t);
1732
1819
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1733
1820
  }
1734
- function Pt(e, t) {
1821
+ function ln(e, t) {
1735
1822
  return t ? {
1736
1823
  intent: t.intent ?? e.intent,
1737
1824
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1738
1825
  transport: t.transport ?? e.transport
1739
1826
  } : e;
1740
1827
  }
1741
- function ji(e, t) {
1828
+ function ga(e, t) {
1742
1829
  const n = [];
1743
1830
  for (const r of e) {
1744
1831
  if (!r.enabled) continue;
1745
1832
  const i = t[r.providerId];
1746
1833
  if (i)
1747
- for (const a of Dt(r, i))
1834
+ for (const a of sn(r, i))
1748
1835
  n.push({ channel: r, description: i, capability: a });
1749
1836
  }
1750
1837
  return n;
1751
1838
  }
1752
- function Bi(e, t) {
1839
+ function ha(e, t) {
1753
1840
  return t.filter((n) => n.capability.intent === e);
1754
1841
  }
1755
- function Kt(e, t) {
1842
+ function un(e, t) {
1756
1843
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1757
1844
  }
1758
- function Fi(e, t) {
1759
- return Kt(e.scheme, t);
1845
+ function ya(e, t) {
1846
+ return un(e.scheme, t);
1760
1847
  }
1761
- function Hi(e, t, n) {
1848
+ function Aa(e, t, n) {
1762
1849
  const r = [];
1763
1850
  for (const i of e)
1764
1851
  for (const a of n)
1765
1852
  a.capability.intent === t && a.capability.targetSchemes.includes(i.scheme) && r.push({ channelIntent: a, endpoint: i });
1766
1853
  return r;
1767
1854
  }
1768
- var Ut = /* @__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))(Ut || {});
1769
- const Gt = {
1855
+ var dn = /* @__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))(dn || {});
1856
+ const pn = {
1770
1857
  mailto: "mail",
1771
1858
  sip: "tel",
1772
1859
  tel: "tel",
@@ -1787,10 +1874,10 @@ const Gt = {
1787
1874
  id: "note",
1788
1875
  custom: "note"
1789
1876
  };
1790
- function Vi(e) {
1791
- return e ? Gt[e] ?? "note" : "note";
1877
+ function ba(e) {
1878
+ return e ? pn[e] ?? "note" : "note";
1792
1879
  }
1793
- const Wi = "message_window", zi = "message_templates", Xi = {
1880
+ const Sa = "message_window", Ea = "message_templates", _a = {
1794
1881
  // E-mail
1795
1882
  FROM: "from",
1796
1883
  TO: "to",
@@ -1807,11 +1894,19 @@ const Wi = "message_window", zi = "message_templates", Xi = {
1807
1894
  // Voice/conference
1808
1895
  HOST: "host",
1809
1896
  PARTICIPANT: "participant"
1810
- }, Yi = (e, t) => ({ intent: e, ...t }), qi = "folder_management", Ji = "remote_search", Zi = {
1897
+ }, Ta = (e, t) => ({ intent: e, ...t }), Ia = "folder_management", wa = "remote_search", Ma = {
1811
1898
  ok: !1,
1812
1899
  code: "UNSUPPORTED",
1813
1900
  message: "Provider does not support this op"
1814
- }, Qi = "installation-id", ea = "notification-source", ta = (e, t) => `${e}.pref.${t}`, na = {
1901
+ }, ka = "installation-id";
1902
+ function Ca(e) {
1903
+ const t = [];
1904
+ for (const n of Object.keys(e))
1905
+ for (const r of Object.keys(e[n]))
1906
+ t.push({ lang: n, key: r, value: e[n][r] });
1907
+ return t;
1908
+ }
1909
+ const Oa = "notification-source", Na = (e, t) => `${e}.pref.${t}`, va = {
1815
1910
  ai: [
1816
1911
  "account.read",
1817
1912
  "account.write",
@@ -1845,6 +1940,7 @@ const Wi = "message_window", zi = "message_templates", Xi = {
1845
1940
  ],
1846
1941
  analytics: ["report.read"],
1847
1942
  "app-store": ["app.publish", "app.read", "app.write", "setting.read", "setting.write"],
1943
+ assist: ["board.read"],
1848
1944
  automations: ["sync.read", "sync.write", "webhook.read", "webhook.write"],
1849
1945
  communication: [
1850
1946
  "account.read",
@@ -1943,48 +2039,48 @@ const Wi = "message_window", zi = "message_templates", Xi = {
1943
2039
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
1944
2040
  user: ["user.read", "user.write"],
1945
2041
  work: ["item.read", "item.write", "project.read", "project.write"]
1946
- }, Ae = 9e4, jt = ["out_of_office"], be = (e) => jt.includes(e);
1947
- function ra(e, t, n) {
1948
- const r = n - e < Ae, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2042
+ }, Ie = 9e4, fn = ["out_of_office"], we = (e) => fn.includes(e);
2043
+ function Ra(e, t, n) {
2044
+ const r = n - e < Ie, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
1949
2045
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
1950
2046
  const a = i.status;
1951
- return !r && !be(a) ? { online: !1, status: "offline" } : { online: r, status: a, message: i.message };
2047
+ return !r && !we(a) ? { online: !1, status: "offline" } : { online: r, status: a, message: i.message };
1952
2048
  }
1953
- function ia(e, t) {
1954
- const n = t - e.lastSeenAt < Ae, r = n || be(e.status) ? e.status : "offline";
2049
+ function $a(e, t) {
2050
+ const n = t - e.lastSeenAt < Ie, r = n || we(e.status) ? e.status : "offline";
1955
2051
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
1956
2052
  }
1957
- function aa(e, t) {
2053
+ function xa(e, t) {
1958
2054
  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 };
1959
2055
  }
1960
- function oa(e) {
2056
+ function Da(e) {
1961
2057
  return e.providerAvailable && e.allowed;
1962
2058
  }
1963
- const sa = "resources.describe", ca = "resources.search", la = "resources.resolve";
1964
- function ua(e) {
2059
+ const La = "resources.describe", Pa = "resources.search", Ua = "resources.resolve";
2060
+ function Ka(e) {
1965
2061
  const t = e.indexOf(":");
1966
2062
  return t === -1 ? e : e.slice(0, t);
1967
2063
  }
1968
- const Ee = "auth";
1969
- function Se(e) {
2064
+ const Me = "auth";
2065
+ function ke(e) {
1970
2066
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
1971
2067
  return t ? t[1] : null;
1972
2068
  }
1973
- function da(e) {
1974
- const t = Se(e);
1975
- return t ? t !== Ee : typeof e == "string" && e.startsWith("/wake");
2069
+ function ja(e) {
2070
+ const t = ke(e);
2071
+ return t ? t !== Me : typeof e == "string" && e.startsWith("/wake");
1976
2072
  }
1977
- function pa(e) {
1978
- return typeof e != "string" || e === "" || e === "/" ? !0 : Se(e) === Ee;
2073
+ function Ga(e) {
2074
+ return typeof e != "string" || e === "" || e === "/" ? !0 : ke(e) === Me;
1979
2075
  }
1980
- function Bt(e) {
2076
+ function mn(e) {
1981
2077
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1982
2078
  }
1983
- function Ft(e) {
1984
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Bt(r)}`).join("");
2079
+ function gn(e) {
2080
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${mn(r)}`).join("");
1985
2081
  return new RegExp(`^${n}\\/?$`);
1986
2082
  }
1987
- function Ht(e, t) {
2083
+ function hn(e, t) {
1988
2084
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), i = {};
1989
2085
  return n.forEach((a, o) => {
1990
2086
  if (a.startsWith(":")) {
@@ -1993,14 +2089,14 @@ function Ht(e, t) {
1993
2089
  }
1994
2090
  }), i;
1995
2091
  }
1996
- function Vt(e) {
2092
+ function yn(e) {
1997
2093
  return e.publicBasePath ?? `/apps/${e.name}`;
1998
2094
  }
1999
- function fa(e) {
2095
+ function Ba(e) {
2000
2096
  const t = [];
2001
2097
  for (const n of e) {
2002
2098
  if (!n?.name) continue;
2003
- const r = Vt(n);
2099
+ const r = yn(n);
2004
2100
  for (const i of n.routes ?? []) {
2005
2101
  if (!i.public) continue;
2006
2102
  const a = i.path === "/" ? "" : i.path;
@@ -2014,7 +2110,7 @@ function fa(e) {
2014
2110
  }
2015
2111
  return t;
2016
2112
  }
2017
- function Wt(e, t) {
2113
+ function An(e, t) {
2018
2114
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2019
2115
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2020
2116
  const a = n[i].startsWith(":"), o = r[i].startsWith(":");
@@ -2022,17 +2118,17 @@ function Wt(e, t) {
2022
2118
  }
2023
2119
  return n.length > r.length;
2024
2120
  }
2025
- function zt(e, t) {
2121
+ function bn(e, t) {
2026
2122
  if (typeof e != "string") return null;
2027
2123
  let n = null;
2028
2124
  for (const r of t)
2029
- Ft(r.pattern).test(e) && (!n || Wt(r.pattern, n.pattern)) && (n = r);
2030
- return n ? { ...n, params: { ...n.props, ...Ht(n.pattern, e) } } : null;
2125
+ gn(r.pattern).test(e) && (!n || An(r.pattern, n.pattern)) && (n = r);
2126
+ return n ? { ...n, params: { ...n.props, ...hn(n.pattern, e) } } : null;
2031
2127
  }
2032
- function ma(e, t) {
2033
- return zt(e, t) !== null;
2128
+ function Ha(e, t) {
2129
+ return bn(e, t) !== null;
2034
2130
  }
2035
- const ga = "sync-source", ha = "sync-target", ya = 20, Xt = {
2131
+ const Fa = "sync-source", Wa = "sync-target", Va = 20, Sn = {
2036
2132
  afrikaans: [
2037
2133
  "[Muziek]",
2038
2134
  "(C) TV GELDERLAND 2021",
@@ -2182,14 +2278,14 @@ const ga = "sync-source", ha = "sync-target", ya = 20, Xt = {
2182
2278
  "[MÚSICA]",
2183
2279
  "[Music cuts in British]"
2184
2280
  ]
2185
- }, Yt = (e) => {
2281
+ }, En = (e) => {
2186
2282
  let t = e;
2187
- return Object.values(Xt).forEach((n) => {
2283
+ return Object.values(Sn).forEach((n) => {
2188
2284
  n.forEach((r) => {
2189
2285
  t = t.replaceAll(r, "");
2190
2286
  });
2191
2287
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2192
- }, qt = 6e4, Jt = 8e3, Zt = 2, Qt = 0.4, en = 3, tn = /* @__PURE__ */ new Set([
2288
+ }, _n = 6e4, Tn = 8e3, In = 2, wn = 0.4, Mn = 3, kn = /* @__PURE__ */ new Set([
2193
2289
  "aan",
2194
2290
  "als",
2195
2291
  "ben",
@@ -2302,13 +2398,13 @@ const ga = "sync-source", ha = "sync-target", ya = 20, Xt = {
2302
2398
  "you",
2303
2399
  "your"
2304
2400
  ]);
2305
- function nn(e) {
2401
+ function Cn(e) {
2306
2402
  const t = /* @__PURE__ */ new Set();
2307
2403
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
2308
- n.length < en || tn.has(n) || t.add(n);
2404
+ n.length < Mn || kn.has(n) || t.add(n);
2309
2405
  return [...t];
2310
2406
  }
2311
- function rn(e, t) {
2407
+ function On(e, t) {
2312
2408
  if (!e.length) return 0;
2313
2409
  if (!t.length) return 1;
2314
2410
  const n = new Set(t), r = new Set(e);
@@ -2316,32 +2412,32 @@ function rn(e, t) {
2316
2412
  for (const a of r) n.has(a) || (i += 1);
2317
2413
  return i / r.size;
2318
2414
  }
2319
- function an(e, t = qt) {
2415
+ function Nn(e, t = _n) {
2320
2416
  const n = e.filter((o) => !o.partial && typeof o.text == "string");
2321
2417
  if (!n.length) return { text: "", segmentCount: 0 };
2322
2418
  const i = n.reduce((o, s) => Math.max(o, s.endedAt ?? 0), 0) - t;
2323
- return { text: n.filter((o) => (o.endedAt ?? 0) >= i).map((o) => Yt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2419
+ return { text: n.filter((o) => (o.endedAt ?? 0) >= i).map((o) => En(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2324
2420
  }
2325
- const on = 60;
2326
- function Aa(e, t, n = on) {
2421
+ const vn = 60;
2422
+ function za(e, t, n = vn) {
2327
2423
  const r = new Set(e), i = [...e];
2328
2424
  for (const a of t)
2329
2425
  !a || r.has(a) || (r.add(a), i.push(a));
2330
2426
  return i.slice(-n);
2331
2427
  }
2332
- function ba(e) {
2428
+ function Xa(e) {
2333
2429
  const { segments: t, now: n, state: r } = e;
2334
- if (r.lastTriggerAt && n - r.lastTriggerAt < Jt)
2430
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Tn)
2335
2431
  return { trigger: !1, reason: "too_soon" };
2336
- const i = an(t, e.windowMs);
2432
+ const i = Nn(t, e.windowMs);
2337
2433
  if (!i.text) return { trigger: !1, reason: "no_speech" };
2338
2434
  const a = i.segmentCount - (r.lastSegmentCount ?? 0);
2339
- if (r.lastQueryTerms && a < Zt)
2435
+ if (r.lastQueryTerms && a < In)
2340
2436
  return { trigger: !1, reason: "too_few_new" };
2341
- const o = nn(i.text);
2342
- return o.length ? r.lastQueryTerms?.length && rn(o, r.lastQueryTerms) < Qt ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: o, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2437
+ const o = Cn(i.text);
2438
+ return o.length ? r.lastQueryTerms?.length && On(o, r.lastQueryTerms) < wn ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: o, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2343
2439
  }
2344
- const Ea = "navNotice", v = {
2440
+ const Ya = "navNotice", x = {
2345
2441
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2346
2442
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2347
2443
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2364,53 +2460,53 @@ const Ea = "navNotice", v = {
2364
2460
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
2365
2461
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2366
2462
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2367
- }, sn = "NL", cn = 15, ln = 8, un = Array.from(
2368
- new Set(Object.values(v).map((e) => e.callingCode))
2463
+ }, Rn = "NL", $n = 15, xn = 8, Dn = Array.from(
2464
+ new Set(Object.values(x).map((e) => e.callingCode))
2369
2465
  ).sort((e, t) => t.length - e.length);
2370
- function J(e) {
2466
+ function te(e) {
2371
2467
  if (e)
2372
- return v[e.trim().toUpperCase()];
2468
+ return x[e.trim().toUpperCase()];
2373
2469
  }
2374
2470
  function E(e, t) {
2375
2471
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
2376
2472
  }
2377
- function Z(e) {
2378
- if (e.length > cn) return null;
2379
- for (const t of un) {
2473
+ function ne(e) {
2474
+ if (e.length > $n) return null;
2475
+ for (const t of Dn) {
2380
2476
  if (!e.startsWith(t)) continue;
2381
2477
  const n = e.slice(t.length);
2382
- for (const r of Object.values(v)) {
2478
+ for (const r of Object.values(x)) {
2383
2479
  if (r.callingCode !== t) continue;
2384
2480
  const i = r.trunkPrefix, a = i && n.startsWith(i) ? n.slice(i.length) : n;
2385
2481
  if (E(a, r)) return `+${t}${a}`;
2386
2482
  }
2387
2483
  return null;
2388
2484
  }
2389
- return e.length < ln ? null : `+${e}`;
2485
+ return e.length < xn ? null : `+${e}`;
2390
2486
  }
2391
- function dn(e) {
2487
+ function Ln(e) {
2392
2488
  let t = e.trim();
2393
2489
  const n = t.match(/^(sips?|tel|whatsapp):/i);
2394
2490
  n && (t = t.slice(n[0].length));
2395
2491
  const r = t.indexOf("@");
2396
2492
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2397
2493
  }
2398
- function Sa(e) {
2494
+ function qa(e) {
2399
2495
  if (!e) return !1;
2400
2496
  const t = e.indexOf("@");
2401
2497
  if (t <= 0) return !1;
2402
2498
  const n = e.slice(0, t).trim();
2403
2499
  return !/^[+\d\s().-]+$/.test(n);
2404
2500
  }
2405
- function Q(e, t) {
2501
+ function re(e, t) {
2406
2502
  if (!e) return null;
2407
- const n = dn(e);
2503
+ const n = Ln(e);
2408
2504
  if (!n) return null;
2409
2505
  const r = n.startsWith("+"), i = n.replace(/\D/g, "");
2410
2506
  if (!i) return null;
2411
- if (r) return Z(i);
2412
- if (i.startsWith("00")) return Z(i.slice(2));
2413
- const a = J(t) ?? J(sn);
2507
+ if (r) return ne(i);
2508
+ if (i.startsWith("00")) return ne(i.slice(2));
2509
+ const a = te(t) ?? te(Rn);
2414
2510
  if (!a) return null;
2415
2511
  const o = a.trunkPrefix;
2416
2512
  if (o && i.startsWith(o)) {
@@ -2423,22 +2519,22 @@ function Q(e, t) {
2423
2519
  }
2424
2520
  return !o && E(i, a) ? `+${a.callingCode}${i}` : null;
2425
2521
  }
2426
- function _a(e, t = 9) {
2522
+ function Ja(e, t = 9) {
2427
2523
  const n = (e ?? "").replace(/\D/g, "");
2428
2524
  return n.length < t ? null : n.slice(-t);
2429
2525
  }
2430
- function _e(e) {
2526
+ function Ce(e) {
2431
2527
  if (!e) return null;
2432
2528
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
2433
2529
  if (n <= 0 || n === t.length - 1) return null;
2434
2530
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2435
2531
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2436
2532
  }
2437
- function Ta(e) {
2438
- const t = _e(e);
2533
+ function Za(e) {
2534
+ const t = Ce(e);
2439
2535
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2440
2536
  }
2441
- const pn = /* @__PURE__ */ new Set([
2537
+ const Pn = /* @__PURE__ */ new Set([
2442
2538
  "co.uk",
2443
2539
  "org.uk",
2444
2540
  "gov.uk",
@@ -2448,14 +2544,14 @@ const pn = /* @__PURE__ */ new Set([
2448
2544
  "com.br",
2449
2545
  "co.za"
2450
2546
  ]);
2451
- function fn(e) {
2547
+ function Un(e) {
2452
2548
  if (!e) return null;
2453
2549
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
2454
2550
  if (t.length < 2) return null;
2455
2551
  const n = t.slice(-2).join(".");
2456
- return pn.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
2552
+ return Pn.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
2457
2553
  }
2458
- const mn = /* @__PURE__ */ new Set([
2554
+ const Kn = /* @__PURE__ */ new Set([
2459
2555
  "gmail.com",
2460
2556
  "googlemail.com",
2461
2557
  "outlook.com",
@@ -2500,44 +2596,44 @@ const mn = /* @__PURE__ */ new Set([
2500
2596
  "proximus.be",
2501
2597
  "scarlet.be"
2502
2598
  ]);
2503
- function Ia(e) {
2504
- const t = fn(e);
2505
- return t ? mn.has(t) : !1;
2599
+ function Qa(e) {
2600
+ const t = Un(e);
2601
+ return t ? Kn.has(t) : !1;
2506
2602
  }
2507
- function wa(e) {
2603
+ function eo(e) {
2508
2604
  if (!e) return !1;
2509
2605
  const t = e.trim().toLowerCase();
2510
2606
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
2511
2607
  }
2512
- function Ma(e, t, n) {
2608
+ function to(e, t, n) {
2513
2609
  if (!e || !t) return null;
2514
2610
  const r = e.trim().toLowerCase();
2515
2611
  if (r === "tel" || r === "sms" || r === "whatsapp") {
2516
- const a = Q(t, n);
2612
+ const a = re(t, n);
2517
2613
  return a ? `tel:${a}` : null;
2518
2614
  }
2519
2615
  if (r === "fax") {
2520
- const a = Q(t, n);
2616
+ const a = re(t, n);
2521
2617
  return a ? `fax:${a}` : null;
2522
2618
  }
2523
2619
  if (r === "mailto" || r === "email") {
2524
- const a = _e(t);
2620
+ const a = Ce(t);
2525
2621
  return a ? `mailto:${a}` : null;
2526
2622
  }
2527
2623
  const i = t.trim().toLowerCase();
2528
2624
  return i ? `${r}:${i}` : null;
2529
2625
  }
2530
- const gn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, hn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
2531
- function ka(e) {
2626
+ const jn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Gn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
2627
+ function no(e) {
2532
2628
  if (typeof e != "string" || !e) return "";
2533
2629
  let t = e;
2534
2630
  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(`
2535
2631
  `).map(
2536
2632
  (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,}$/, "")
2537
2633
  ).join(`
2538
- `), t = t.replace(gn, "$2"), t = t.replace(hn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
2634
+ `), t = t.replace(jn, "$2"), t = t.replace(Gn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
2539
2635
  }
2540
- const yn = [
2636
+ const Bn = [
2541
2637
  /<blockquote/i,
2542
2638
  /class="?gmail_quote/i,
2543
2639
  // Gmail quote container
@@ -2550,17 +2646,17 @@ const yn = [
2550
2646
  // Outlook underscore separator before "From:"
2551
2647
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
2552
2648
  // Gmail "On <date> <name> wrote:"
2553
- ], ee = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, An = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
2554
- function bn(e) {
2649
+ ], ie = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Hn = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
2650
+ function Fn(e) {
2555
2651
  const t = e.split(`
2556
2652
  `);
2557
2653
  for (let n = 0; n < t.length; n++)
2558
- if (An.test(t[n]) || ee.test(t[n]) && t.slice(n + 1, n + 4).some((r) => ee.test(r)))
2654
+ if (Hn.test(t[n]) || ie.test(t[n]) && t.slice(n + 1, n + 4).some((r) => ie.test(r)))
2559
2655
  return t.slice(0, n).join(`
2560
2656
  `).trim();
2561
2657
  return e;
2562
2658
  }
2563
- function te(e) {
2659
+ function ae(e) {
2564
2660
  let t = e;
2565
2661
  return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
2566
2662
  `), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
@@ -2568,318 +2664,333 @@ function te(e) {
2568
2664
  `), t = t.replace(/<\/(div|li|tr)>/gi, `
2569
2665
  `), t = t.replace(/<\/(td|th)>/gi, " "), t = t.replace(/<[^>]+>/g, ""), t = t.replace(/<[^>]*$/, ""), t;
2570
2666
  }
2571
- function ne(e) {
2667
+ function oe(e) {
2572
2668
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
2573
2669
  }
2574
- function re(e) {
2575
- return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => ne(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ne(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
2670
+ function se(e) {
2671
+ return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => oe(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => oe(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
2576
2672
  }
2577
- function ie(e) {
2673
+ function ce(e) {
2578
2674
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
2579
2675
  `).replace(/\n{3,}/g, `
2580
2676
 
2581
2677
  `).trim();
2582
2678
  }
2583
- const En = /<\s*(html|body|div|p|table|br|span)\b/i;
2584
- function Ca(e) {
2585
- return En.test(e);
2679
+ const Wn = /<\s*(html|body|div|p|table|br|span)\b/i;
2680
+ function ro(e) {
2681
+ return Wn.test(e);
2586
2682
  }
2587
- function Oa(e) {
2683
+ function io(e) {
2588
2684
  if (typeof e != "string" || !e) return "";
2589
2685
  let t = e.length;
2590
- for (const a of yn) {
2686
+ for (const a of Bn) {
2591
2687
  const o = e.search(a);
2592
2688
  o >= 0 && o < t && (t = o);
2593
2689
  }
2594
2690
  const n = e.slice(0, t);
2595
- let r = ie(re(te(n)));
2596
- return r || (r = ie(re(te(e)))), bn(r) || r;
2597
- }
2598
- const Sn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, _n = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
2599
- function Na(e, t) {
2600
- return !!(e && Sn.test(e) || t && _n.test(t));
2601
- }
2602
- const Tn = 3, In = 600;
2603
- function va(e, t) {
2604
- return e >= Tn || t >= In;
2691
+ let r = ce(se(ae(n)));
2692
+ return r || (r = ce(se(ae(e)))), Fn(r) || r;
2605
2693
  }
2606
2694
  export {
2607
2695
  m as ACTIVITY_CATALOG,
2608
- $t as AI_ATTACHMENT_LIMITS,
2609
- Ri as AI_ATTACHMENT_MAX_PER_TURN,
2610
- $i as AI_ATTACHMENT_TURN_BUDGET,
2611
- oe as AI_VENDORS,
2612
- Ge as ALLOWED_LINK_SCHEMES,
2613
- na as APP_PERMISSIONS,
2614
- U as ARTIFACT_MAX_BLOCKS,
2615
- ar as ARTIFACT_MAX_BODY_BYTES,
2616
- M as ARTIFACT_MAX_CELL_LEN,
2617
- F as ARTIFACT_MAX_KPI_ITEMS,
2618
- G as ARTIFACT_MAX_LIST_ITEMS,
2619
- B as ARTIFACT_MAX_TABLE_COLUMNS,
2620
- j as ARTIFACT_MAX_TABLE_ROWS,
2621
- ce as ARTIFACT_MAX_TEXT_LEN,
2622
- Ye as ASSIGNMENT_SCOPE_KIND,
2623
- Ee as AUTH_APP_NAME,
2624
- Ne as ActivityTypeRegistry,
2625
- Bn as BUILT_IN_ONLY,
2626
- Jt as CADENCE_FLOOR_MS,
2627
- Zt as CADENCE_MIN_NEW_SEGMENTS,
2628
- Qt as CADENCE_MIN_NOVELTY,
2629
- qt as CADENCE_WINDOW_MS,
2630
- ei as CLASSIFY_VARS,
2631
- nr as CORE_DIMENSIONS,
2632
- Ut as CommunicationScheme,
2633
- Gr as DEFAULT_MEMORY_BUDGET,
2634
- sn as DEFAULT_PHONE_REGION,
2635
- ni as EMPTY_WORKFLOW,
2636
- qi as FEATURE_FOLDER_MANAGEMENT,
2637
- Ji as FEATURE_REMOTE_SEARCH,
2638
- En as HTML_BODY_RE,
2639
- Qi as INSTALLATION_HEADER,
2640
- ut as INTERACTION_KIND,
2641
- Xi as InteractionParticipantRole,
2642
- et as KB_FALLBACK_LOCALE,
2643
- z as KB_LOCALES,
2644
- N as LOOSE_STATUSES,
2645
- Cn as MAX_ACTIONS,
2646
- qe as MAX_ASSIGNMENT_TURNS,
2647
- wn as MAX_BLOCKS,
2648
- fe as MAX_COLLECTION_DEPTH,
2649
- Mn as MAX_FIELDS,
2650
- kn as MAX_LIST_ITEMS,
2651
- Lr as MAX_MEMORY_BROWSE,
2652
- Ur as MAX_MEMORY_BUDGET,
2653
- Pr as MAX_MEMORY_CHARS,
2654
- on as MAX_SHOWN_KEYS,
2655
- bt as MAX_TOPIC_CANDIDATES,
2656
- At as MAX_TOPIC_EXAMPLES,
2657
- k as MAX_TOPIC_EXAMPLE_CHARS,
2658
- Kr as MIN_MEMORY_BUDGET,
2659
- Ea as NAV_NOTICE_SLOT,
2660
- ea as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2661
- Br as ONBOARDING_SOURCE_PROVIDER_GROUP,
2662
- v as PHONE_REGIONS,
2663
- Ae as PRESENCE_ONLINE_WINDOW_MS,
2664
- jt as PRESENCE_SURVIVES_OFFLINE,
2665
- Hr as PROFILE_TOOL_DISPOSITIONS,
2666
- zi as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2667
- Wi as PROVIDER_FEATURE_MESSAGE_WINDOW,
2668
- mn as PUBLIC_EMAIL_DOMAINS,
2669
- X as READ_STEP_TYPES,
2670
- rt as RELATED_SUBJECT_KINDS,
2671
- ye as RESERVED_STATUS_KEYS,
2672
- sa as RESOURCE_DESCRIBE_SERVICE,
2673
- la as RESOURCE_RESOLVE_SERVICE,
2674
- ca as RESOURCE_SEARCH_SERVICE,
2675
- Ar as SIGNATURE_INTENTS,
2676
- ft as STEP_MAX_TOKENS_MAX,
2677
- pt as STEP_MAX_TOKENS_MIN,
2678
- In as SUMMARY_MIN_LAST_CHARS,
2679
- Tn as SUMMARY_MIN_MESSAGES,
2680
- ya as SYNC_RUN_MAX_ERRORS,
2681
- ga as SYNC_SOURCE_PROVIDER_GROUP,
2682
- ha as SYNC_TARGET_PROVIDER_GROUP,
2683
- Xe as TERMINAL_ASSIGNMENT_STATUSES,
2684
- mt as TERMINAL_RUN_STATUSES,
2685
- Qr as TRIGGER_VARS,
2686
- Zi as UNSUPPORTED,
2687
- Le as USAGE_DIMENSIONS,
2688
- Pe as USAGE_DIMENSION_IDS,
2689
- Fr as WORK_AREAS,
2690
- Ei as WORK_COMMENT_ADDED,
2691
- Si as WORK_ITEM_ASSIGNED,
2692
- Tt as WORK_ITEM_SCOPE_KIND,
2693
- _i as WORK_ITEM_STATUS_CHANGED,
2694
- It as WORK_PROJECT_SCOPE_KIND,
2695
- yi as acceptExampleCandidate,
2696
- at as actingIdentityKey,
2697
- gi as activeWorkTypes,
2698
- Nn as activityIconOf,
2699
- Gn as activityJoinUrl,
2700
- Me as activitySnippet,
2701
- ke as activityTextParams,
2702
- Un as activityTimelineText,
2703
- Hn as activityTimestamp,
2696
+ an as AI_ATTACHMENT_LIMITS,
2697
+ ra as AI_ATTACHMENT_MAX_PER_TURN,
2698
+ na as AI_ATTACHMENT_TURN_BUDGET,
2699
+ ue as AI_VENDORS,
2700
+ Xe as ALLOWED_LINK_SCHEMES,
2701
+ va as APP_PERMISSIONS,
2702
+ B as ARTIFACT_MAX_BLOCKS,
2703
+ Tr as ARTIFACT_MAX_BODY_BYTES,
2704
+ C as ARTIFACT_MAX_CELL_LEN,
2705
+ V as ARTIFACT_MAX_KPI_ITEMS,
2706
+ H as ARTIFACT_MAX_LIST_ITEMS,
2707
+ W as ARTIFACT_MAX_TABLE_COLUMNS,
2708
+ F as ARTIFACT_MAX_TABLE_ROWS,
2709
+ pe as ARTIFACT_MAX_TEXT_LEN,
2710
+ rt as ASSIGNMENT_SCOPE_KIND,
2711
+ ca as ASSIST_BANDS,
2712
+ sa as ASSIST_SOURCE_PROVIDER_GROUP,
2713
+ mt as ATTENTION_STATUSES,
2714
+ Me as AUTH_APP_NAME,
2715
+ Pe as ActivityTypeRegistry,
2716
+ cr as BUILT_IN_ONLY,
2717
+ gt as BULK_PENALTY,
2718
+ Tn as CADENCE_FLOOR_MS,
2719
+ In as CADENCE_MIN_NEW_SEGMENTS,
2720
+ wn as CADENCE_MIN_NOVELTY,
2721
+ _n as CADENCE_WINDOW_MS,
2722
+ _i as CLASSIFY_VARS,
2723
+ Sr as CORE_DIMENSIONS,
2724
+ dn as CommunicationScheme,
2725
+ st as DAY_MS,
2726
+ ci as DEFAULT_MEMORY_BUDGET,
2727
+ Rn as DEFAULT_PHONE_REGION,
2728
+ Ii as EMPTY_WORKFLOW,
2729
+ Ia as FEATURE_FOLDER_MANAGEMENT,
2730
+ wa as FEATURE_REMOTE_SEARCH,
2731
+ yt as FOLLOW_UP_HOURS,
2732
+ ot as HOUR_MS,
2733
+ Wn as HTML_BODY_RE,
2734
+ g as INELIGIBLE,
2735
+ ka as INSTALLATION_HEADER,
2736
+ xt as INTERACTION_KIND,
2737
+ _a as InteractionParticipantRole,
2738
+ It as KB_FALLBACK_LOCALE,
2739
+ q as KB_LOCALES,
2740
+ $ as LOOSE_STATUSES,
2741
+ Yn as MAX_ACTIONS,
2742
+ it as MAX_ASSIGNMENT_TURNS,
2743
+ Vn as MAX_BLOCKS,
2744
+ be as MAX_COLLECTION_DEPTH,
2745
+ zn as MAX_FIELDS,
2746
+ Xn as MAX_LIST_ITEMS,
2747
+ ii as MAX_MEMORY_BROWSE,
2748
+ si as MAX_MEMORY_BUDGET,
2749
+ ai as MAX_MEMORY_CHARS,
2750
+ vn as MAX_SHOWN_KEYS,
2751
+ Ht as MAX_TOPIC_CANDIDATES,
2752
+ Bt as MAX_TOPIC_EXAMPLES,
2753
+ O as MAX_TOPIC_EXAMPLE_CHARS,
2754
+ oi as MIN_MEMORY_BUDGET,
2755
+ Ya as NAV_NOTICE_SLOT,
2756
+ Oa as NOTIFICATION_SOURCE_PROVIDER_GROUP,
2757
+ ui as ONBOARDING_SOURCE_PROVIDER_GROUP,
2758
+ x as PHONE_REGIONS,
2759
+ Ie as PRESENCE_ONLINE_WINDOW_MS,
2760
+ fn as PRESENCE_SURVIVES_OFFLINE,
2761
+ pi as PROFILE_TOOL_DISPOSITIONS,
2762
+ Ea as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2763
+ Sa as PROVIDER_FEATURE_MESSAGE_WINDOW,
2764
+ Kn as PUBLIC_EMAIL_DOMAINS,
2765
+ J as READ_STEP_TYPES,
2766
+ kt as RELATED_SUBJECT_KINDS,
2767
+ Te as RESERVED_STATUS_KEYS,
2768
+ La as RESOURCE_DESCRIBE_SERVICE,
2769
+ Ua as RESOURCE_RESOLVE_SERVICE,
2770
+ Pa as RESOURCE_SEARCH_SERVICE,
2771
+ Lr as SIGNATURE_INTENTS,
2772
+ ht as SLA_HOURS_BY_PRIORITY,
2773
+ Pt as STEP_MAX_TOKENS_MAX,
2774
+ Lt as STEP_MAX_TOKENS_MIN,
2775
+ pt as SUMMARY_MIN_LAST_CHARS,
2776
+ dt as SUMMARY_MIN_MESSAGES,
2777
+ Va as SYNC_RUN_MAX_ERRORS,
2778
+ Fa as SYNC_SOURCE_PROVIDER_GROUP,
2779
+ Wa as SYNC_TARGET_PROVIDER_GROUP,
2780
+ nt as TERMINAL_ASSIGNMENT_STATUSES,
2781
+ Ut as TERMINAL_RUN_STATUSES,
2782
+ Ei as TRIGGER_VARS,
2783
+ Ma as UNSUPPORTED,
2784
+ Fe as USAGE_DIMENSIONS,
2785
+ We as USAGE_DIMENSION_IDS,
2786
+ di as WORK_AREAS,
2787
+ Bi as WORK_COMMENT_ADDED,
2788
+ Hi as WORK_ITEM_ASSIGNED,
2789
+ Xt as WORK_ITEM_SCOPE_KIND,
2790
+ Fi as WORK_ITEM_STATUS_CHANGED,
2791
+ Yt as WORK_PROJECT_SCOPE_KIND,
2792
+ _ as W_PRIORITY,
2793
+ Ki as acceptExampleCandidate,
2794
+ Ot as actingIdentityKey,
2795
+ Pi as activeWorkTypes,
2796
+ Jn as activityIconOf,
2797
+ or as activityJoinUrl,
2798
+ $e as activitySnippet,
2799
+ xe as activityTextParams,
2800
+ ar as activityTimelineText,
2801
+ Ue as activityTimestamp,
2704
2802
  d as activityTypeInfo,
2705
- zr as actorKey,
2706
- hi as addExampleCandidate,
2707
- ia as agePresenceEntry,
2708
- xt as aiAttachmentKind,
2709
- Di as aiAttachmentRejection,
2710
- K as aiBudgetLimit,
2711
- Qn as aiBudgetPeriodKey,
2712
- ve as aiBudgetPeriodStart,
2713
- Zn as aiBudgetState,
2714
- Jn as aiVendorAcceptsAttachment,
2715
- Xn as aiVendorDefaultModel,
2716
- zn as aiVendorLabel,
2717
- qn as aiVendorNeedsBaseUrl,
2718
- Yn as aiVendorsWith,
2719
- Se as appNameFromPath,
2720
- ui as applyRounding,
2721
- br as applySignature,
2722
- sr as artifactBodyBytes,
2723
- cr as artifactOutline,
2724
- lr as artifactToMarkdown,
2725
- Jr as assignmentMismatch,
2726
- mr as assignmentScopeKey,
2727
- hr as assignmentSubject,
2728
- jn as buildActivityPreview,
2729
- ji as buildChannelIntents,
2730
- ur as buildShareKeys,
2731
- an as buildWindow,
2732
- Nr as canNestUnder,
2733
- Rn as carriesText,
2734
- xr as categoryLabel,
2735
- kt as categoryOf,
2736
- Vi as channelKindForScheme,
2737
- vn as channelKindOf,
2738
- ti as clampStepMaxTokens,
2739
- Oa as cleanMessageText,
2740
- yt as compareWorkTypes,
2741
- yr as decideAssignmentState,
2742
- ba as decideCadence,
2743
- Ui as decideIncomingCall,
2744
- tt as defaultLocaleOf,
2745
- Oi as defaultStatusKey,
2746
- Yi as defineIntent,
2747
- Ze as depthOf,
2748
- ra as derivePresence,
2749
- Gi as disabledIntentsFromCapabilities,
2750
- li as elapsedSeconds,
2751
- Ta as emailDomain,
2752
- Ma as endpointKey,
2753
- Ht as extractParams,
2754
- nn as extractTerms,
2755
- Fi as filterByEndpoint,
2756
- Bi as filterByIntent,
2757
- Kt as filterByTargetScheme,
2758
- S as findAiVendor,
2759
- tr as flattenLocales,
2760
- $e as floorToPeriod,
2761
- it as formatActingIdentity,
2762
- pi as formatClock,
2763
- di as formatHm,
2764
- Ti as formatItemKey,
2765
- xe as formatPeriod,
2766
- Li as freshSources,
2767
- Fn as getActivitySeenUserIds,
2768
- Er as getContactEndpoints,
2769
- Ir as getShortTitle,
2770
- Tr as getUrgencyScore,
2771
- me as heightOf,
2772
- kr as helpCenterText,
2773
- Zr as humanizeAction,
2774
- dt as interactionIdOf,
2775
- bi as isAgentUser,
2776
- Sr as isAssigned,
2777
- fr as isAssignmentTerminal,
2778
- ct as isAssignmentTrigger,
2779
- Wn as isChatMessageActivity,
2780
- _r as isClosed,
2781
- Pn as isConnectedType,
2782
- da as isDeepLink,
2783
- Qe as isDescendant,
2784
- Vn as isEmailActivity,
2785
- Ca as isHtmlBody,
2786
- oi as isInFlight,
2787
- wr as isInteractionUnseen,
2788
- pa as isLandingPath,
2789
- Na as isLikelyBulk,
2790
- ae as isMessageShape,
2791
- xn as isMessageType,
2792
- Wt as isMoreSpecificPattern,
2793
- gt as isPaused,
2794
- Ln as isPlaybookAuthoredType,
2795
- Ia as isPublicEmailDomain,
2796
- ma as isPublicPath,
2797
- $n as isReplyableType,
2798
- ai as isTerminal,
2799
- va as isThreadLongEnough,
2800
- Kn as isTranscriptType,
2801
- Ni as isWorkClosed,
2802
- mi as isWorkTypeVisible,
2803
- Mi as itemDossierKeys,
2804
- Mt as ladderFor,
2805
- Mr as linkLabel,
2806
- er as listeningAllowed,
2807
- Or as localeInstruction,
2808
- Cr as localeName,
2809
- vr as localesOf,
2810
- Sa as looksLikeEmail,
2811
- Hi as matchContactToIntents,
2812
- zt as matchPublicRoute,
2813
- Rr as mcpCredentialScope,
2814
- Dr as mcpToolPrefix,
2815
- Aa as mergeShownKeys,
2816
- Dn as messageCountsAs,
2817
- wa as needsPhoneRegion,
2818
- or as normalizeArtifactBlocks,
2819
- On as normalizeBlocks,
2820
- _e as normalizeEmail,
2821
- g as normalizeExample,
2822
- ta as notificationPrefKey,
2823
- rn as novelty,
2824
- Vr as parseActingIdentity,
2825
- Ii as parseItemKey,
2826
- Ft as pathToRegex,
2827
- rr as periodsInRange,
2828
- _a as phoneSuffix,
2829
- ka as plainTextFromMarkdown,
2830
- st as playbookActor,
2831
- ii as procedureOf,
2832
- ki as projectDossierKeys,
2833
- Vt as publicBasePathFor,
2834
- fa as publicRoutePatterns,
2835
- C as readPath,
2836
- Y as readStepError,
2837
- lt as refKey,
2838
- fn as registrableDomain,
2839
- St as rejectExampleCandidate,
2840
- jr as relatedByDefault,
2841
- Lt as resolveAccountCapabilities,
2842
- O as resolveActivityText,
2843
- Dt as resolveChannelIntents,
2844
- Je as resolveSignature,
2845
- aa as resolveWorkMode,
2846
- ua as resourceKindOf,
2847
- Wr as runActor,
2848
- ci as runInteractionId,
2849
- He as sanitizeInline,
2850
- Yt as sanitizeTranscript,
2851
- $r as selectLenses,
2852
- Ki as sessionsHoldCannotReach,
2853
- Pi as sessionsToHold,
2854
- de as shareKeyForTeam,
2855
- ue as shareKeyForUser,
2856
- dr as shareKeysForViewer,
2857
- oa as shouldRunAudioPipeline,
2858
- Ct as sortStatuses,
2859
- Rt as sourceKey,
2860
- Ci as statusIn,
2861
- ri as stepsOf,
2862
- we as stripHtml,
2863
- si as subjectKeyOf,
2864
- ge as subjectOf,
2865
- wi as suggestProjectKey,
2866
- qr as targetById,
2867
- Yr as targetForActivityType,
2868
- ot as toActingIdentity,
2869
- Q as toE164,
2870
- pr as toolSourceKinds,
2871
- _t as topicOfferedForTeam,
2872
- Ai as topicsForTeam,
2873
- Et as truncateExample,
2874
- vi as uniqueWorkStatusKey,
2875
- fi as uniqueWorkTypeKey,
2876
- Ke as usageMetricId,
2877
- ir as usageMetrics,
2878
- xi as validateStatuses,
2879
- Xr as valueAtPath,
2880
- gr as wakesAssignment,
2881
- wt as workItemScopeKey,
2882
- he as workProjectScopeKey,
2883
- Ot as workStatusKey,
2884
- ht as workTypeKey
2803
+ gi as actorKey,
2804
+ Ui as addExampleCandidate,
2805
+ $a as agePresenceEntry,
2806
+ rn as aiAttachmentKind,
2807
+ ia as aiAttachmentRejection,
2808
+ G as aiBudgetLimit,
2809
+ Ar as aiBudgetPeriodKey,
2810
+ Ke as aiBudgetPeriodStart,
2811
+ yr as aiBudgetState,
2812
+ hr as aiVendorAcceptsAttachment,
2813
+ fr as aiVendorDefaultModel,
2814
+ pr as aiVendorLabel,
2815
+ gr as aiVendorNeedsBaseUrl,
2816
+ mr as aiVendorsWith,
2817
+ ke as appNameFromPath,
2818
+ Ri as applyRounding,
2819
+ Pr as applySignature,
2820
+ wr as artifactBodyBytes,
2821
+ Mr as artifactOutline,
2822
+ kr as artifactToMarkdown,
2823
+ bi as assignmentMismatch,
2824
+ Rr as assignmentScopeKey,
2825
+ xr as assignmentSubject,
2826
+ sr as buildActivityPreview,
2827
+ ga as buildChannelIntents,
2828
+ Cr as buildShareKeys,
2829
+ Nn as buildWindow,
2830
+ Zr as canNestUnder,
2831
+ tr as carriesText,
2832
+ ei as categoryLabel,
2833
+ Zt as categoryOf,
2834
+ ba as channelKindForScheme,
2835
+ Zn as channelKindOf,
2836
+ Ti as clampStepMaxTokens,
2837
+ io as cleanMessageText,
2838
+ ua as compareAssistRank,
2839
+ Gt as compareWorkTypes,
2840
+ Dr as decideAssignmentState,
2841
+ Xa as decideCadence,
2842
+ fa as decideIncomingCall,
2843
+ wt as defaultLocaleOf,
2844
+ Zi as defaultStatusKey,
2845
+ Ta as defineIntent,
2846
+ _t as depthOf,
2847
+ Ra as derivePresence,
2848
+ ma as disabledIntentsFromCapabilities,
2849
+ vi as elapsedSeconds,
2850
+ Za as emailDomain,
2851
+ to as endpointKey,
2852
+ hn as extractParams,
2853
+ Cn as extractTerms,
2854
+ ya as filterByEndpoint,
2855
+ ha as filterByIntent,
2856
+ un as filterByTargetScheme,
2857
+ T as findAiVendor,
2858
+ Ca as flattenLocales,
2859
+ Ge as floorToPeriod,
2860
+ Ct as formatActingIdentity,
2861
+ xi as formatClock,
2862
+ $i as formatHm,
2863
+ Vi as formatItemKey,
2864
+ je as formatPeriod,
2865
+ oa as freshSources,
2866
+ lr as getActivitySeenUserIds,
2867
+ Ur as getContactEndpoints,
2868
+ zr as getShortTitle,
2869
+ Vr as getUrgencyScore,
2870
+ Se as heightOf,
2871
+ Yr as helpCenterText,
2872
+ Si as humanizeAction,
2873
+ Dt as interactionIdOf,
2874
+ Gi as isAgentUser,
2875
+ Fr as isAssigned,
2876
+ vr as isAssignmentTerminal,
2877
+ Rt as isAssignmentTrigger,
2878
+ Et as isAwaitingThem,
2879
+ dr as isChatMessageActivity,
2880
+ Wr as isClosed,
2881
+ rr as isConnectedType,
2882
+ ja as isDeepLink,
2883
+ Tt as isDescendant,
2884
+ Kr as isEligible,
2885
+ ur as isEmailActivity,
2886
+ ro as isHtmlBody,
2887
+ Ci as isInFlight,
2888
+ ft as isInteractionUnseen,
2889
+ Ga as isLandingPath,
2890
+ ut as isLikelyBulk,
2891
+ le as isMessageShape,
2892
+ Qn as isMessageType,
2893
+ An as isMoreSpecificPattern,
2894
+ aa as isOutwardTool,
2895
+ bt as isParked,
2896
+ Kt as isPaused,
2897
+ nr as isPlaybookAuthoredType,
2898
+ Qa as isPublicEmailDomain,
2899
+ Ha as isPublicPath,
2900
+ St as isReminderActive,
2901
+ er as isReplyableType,
2902
+ Br as isSlaAtRisk,
2903
+ ki as isTerminal,
2904
+ Gr as isThreadLongEnough,
2905
+ ir as isTranscriptType,
2906
+ Qi as isWorkClosed,
2907
+ Li as isWorkTypeVisible,
2908
+ Yi as itemDossierKeys,
2909
+ Jt as ladderFor,
2910
+ Xr as linkLabel,
2911
+ br as listeningAllowed,
2912
+ Jr as localeInstruction,
2913
+ qr as localeName,
2914
+ Qr as localesOf,
2915
+ qa as looksLikeEmail,
2916
+ Aa as matchContactToIntents,
2917
+ bn as matchPublicRoute,
2918
+ ni as mcpCredentialScope,
2919
+ ri as mcpToolPrefix,
2920
+ za as mergeShownKeys,
2921
+ Re as messageCountsAs,
2922
+ eo as needsPhoneRegion,
2923
+ Ir as normalizeArtifactBlocks,
2924
+ qn as normalizeBlocks,
2925
+ Ce as normalizeEmail,
2926
+ h as normalizeExample,
2927
+ Na as notificationPrefKey,
2928
+ On as novelty,
2929
+ jr as parkMarksById,
2930
+ fi as parseActingIdentity,
2931
+ zi as parseItemKey,
2932
+ gn as pathToRegex,
2933
+ Er as periodsInRange,
2934
+ Ja as phoneSuffix,
2935
+ no as plainTextFromMarkdown,
2936
+ vt as playbookActor,
2937
+ Mi as procedureOf,
2938
+ qi as projectDossierKeys,
2939
+ yn as publicBasePathFor,
2940
+ Ba as publicRoutePatterns,
2941
+ N as readPath,
2942
+ Z as readStepError,
2943
+ At as recencyOf,
2944
+ $t as refKey,
2945
+ Un as registrableDomain,
2946
+ Wt as rejectExampleCandidate,
2947
+ li as relatedByDefault,
2948
+ cn as resolveAccountCapabilities,
2949
+ v as resolveActivityText,
2950
+ sn as resolveChannelIntents,
2951
+ at as resolveSignature,
2952
+ xa as resolveWorkMode,
2953
+ Ka as resourceKindOf,
2954
+ mi as runActor,
2955
+ Ni as runInteractionId,
2956
+ Ze as sanitizeInline,
2957
+ En as sanitizeTranscript,
2958
+ Hr as scoreInteraction,
2959
+ Wi as scoreWorkItem,
2960
+ ti as selectLenses,
2961
+ pa as sessionsHoldCannotReach,
2962
+ da as sessionsToHold,
2963
+ ge as shareKeyForTeam,
2964
+ me as shareKeyForUser,
2965
+ Or as shareKeysForViewer,
2966
+ Da as shouldRunAudioPipeline,
2967
+ Qt as sortStatuses,
2968
+ on as sourceKey,
2969
+ Ji as statusIn,
2970
+ wi as stepsOf,
2971
+ ve as stripHtml,
2972
+ Oi as subjectKeyOf,
2973
+ Ee as subjectOf,
2974
+ la as subjectRef,
2975
+ Xi as suggestProjectKey,
2976
+ Ai as targetById,
2977
+ yi as targetForActivityType,
2978
+ Nt as toActingIdentity,
2979
+ re as toE164,
2980
+ Nr as toolSourceKinds,
2981
+ Vt as topicOfferedForTeam,
2982
+ ji as topicsForTeam,
2983
+ Ft as truncateExample,
2984
+ ea as uniqueWorkStatusKey,
2985
+ Di as uniqueWorkTypeKey,
2986
+ Ve as usageMetricId,
2987
+ _r as usageMetrics,
2988
+ ta as validateStatuses,
2989
+ hi as valueAtPath,
2990
+ R as waitHoursOf,
2991
+ $r as wakesAssignment,
2992
+ qt as workItemScopeKey,
2993
+ _e as workProjectScopeKey,
2994
+ en as workStatusKey,
2995
+ jt as workTypeKey
2885
2996
  };