@opencxh/domain 1.136.0 → 1.137.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 De = 10, Le = 10, xe = 10, $e = 5, P = /* @__PURE__ */ new Set([
1
+ const lt = 10, ct = 10, ut = 10, pt = 5, re = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -8,95 +8,95 @@ const De = 10, Le = 10, xe = 10, $e = 5, P = /* @__PURE__ */ new Set([
8
8
  "actions",
9
9
  "attachments"
10
10
  ]);
11
- function g(e) {
11
+ function T(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 Re(e, t = () => {
17
+ function dt(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
21
- for (const i of e) {
21
+ for (const a of e) {
22
22
  if (n.length >= 10) {
23
23
  t("more than 10 blocks; the rest was dropped");
24
24
  break;
25
25
  }
26
- if (!i || typeof i != "object") continue;
27
- const a = i;
28
- if (!P.has(a.type)) {
29
- t("unknown block type " + String(a.type));
26
+ if (!a || typeof a != "object") continue;
27
+ const i = a;
28
+ if (!re.has(i.type)) {
29
+ t("unknown block type " + String(i.type));
30
30
  continue;
31
31
  }
32
- switch (a.type) {
32
+ switch (i.type) {
33
33
  case "header":
34
- if (!g(a.text)) {
34
+ if (!T(i.text)) {
35
35
  t("a header without text");
36
36
  continue;
37
37
  }
38
38
  break;
39
39
  case "context":
40
- if (!g(a.text)) {
40
+ if (!T(i.text)) {
41
41
  t("a context block without text");
42
42
  continue;
43
43
  }
44
44
  break;
45
45
  case "image":
46
- if (!a.url || !a.alt) {
46
+ if (!i.url || !i.alt) {
47
47
  t("an image without url or alt");
48
48
  continue;
49
49
  }
50
50
  break;
51
51
  case "section":
52
- Array.isArray(a.fields) && a.fields.length > 10 && (t("more than 10 fields in a section"), a.fields = a.fields.slice(0, 10));
52
+ Array.isArray(i.fields) && i.fields.length > 10 && (t("more than 10 fields in a section"), i.fields = i.fields.slice(0, 10));
53
53
  break;
54
54
  case "list":
55
- if (!Array.isArray(a.items) || a.items.length === 0) {
55
+ if (!Array.isArray(i.items) || i.items.length === 0) {
56
56
  t("a list without items");
57
57
  continue;
58
58
  }
59
- a.items.length > 10 && (t("more than 10 list items"), a.items = a.items.slice(0, 10));
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 r = Array.isArray(a.elements) ? a.elements : [], o = r.filter((s) => s && s.action_id && s.invoke && g(s.text));
62
+ const r = Array.isArray(i.elements) ? i.elements : [], o = r.filter((s) => s && s.action_id && s.invoke && T(s.text));
63
63
  if (o.length !== r.length && t("an action without action_id, invoke or text"), o.length === 0) continue;
64
- o.length > 5 && t("more than 5 actions"), a.elements = o.slice(0, 5);
64
+ o.length > 5 && t("more than 5 actions"), i.elements = o.slice(0, 5);
65
65
  break;
66
66
  }
67
67
  }
68
- n.push(a);
68
+ n.push(i);
69
69
  }
70
70
  return n;
71
71
  }
72
- function w(e) {
72
+ function oe(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 p(e) {
75
+ function y(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 _(e) {
80
+ function k(e) {
81
81
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
82
82
  }
83
- function h(e) {
83
+ function I(e) {
84
84
  return e?.split("@")?.[0] || e || "";
85
85
  }
86
- function d(e) {
86
+ function b(e) {
87
87
  return e.map((t) => t.name).join(", ");
88
88
  }
89
- function I(e) {
89
+ function x(e) {
90
90
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
91
91
  }
92
- const c = {
92
+ const f = {
93
93
  /* ---- voice ---- */
94
94
  VOICE_CALL_STARTED: {
95
95
  shape: "event",
96
96
  channelKind: "voice",
97
97
  icon: "phone",
98
98
  snippet: () => "Gesprek gestart",
99
- timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${h(e.payload.from)}` : `Outbound call started — ${h(e.payload.to)}`
99
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${I(e.payload.from)}` : `Outbound call started — ${I(e.payload.to)}`
100
100
  },
101
101
  VOICE_CALL_ANSWERED: {
102
102
  shape: "event",
@@ -122,15 +122,15 @@ const c = {
122
122
  shape: "event",
123
123
  channelKind: "voice",
124
124
  icon: "phone",
125
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${p(e.payload.duration)})` : ""}`,
126
- timeline: (e) => `Call ended${_(e.payload.duration)}`
125
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
126
+ timeline: (e) => `Call ended${k(e.payload.duration)}`
127
127
  },
128
128
  VOICE_CALL_MISSED: {
129
129
  shape: "event",
130
130
  channelKind: "voice",
131
131
  icon: "phone",
132
132
  snippet: () => "Gemiste oproep",
133
- timeline: (e) => `Missed call — ${h(e.payload.from)}`
133
+ timeline: (e) => `Missed call — ${I(e.payload.from)}`
134
134
  },
135
135
  VOICE_CALL_FAILED: {
136
136
  shape: "event",
@@ -176,7 +176,7 @@ const c = {
176
176
  shape: "event",
177
177
  channelKind: "video",
178
178
  icon: "video",
179
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${p(e.payload.duration)})` : ""}`,
179
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
180
180
  timeline: () => "Video call ended"
181
181
  },
182
182
  VIDEO_CALL_MISSED: {
@@ -204,7 +204,7 @@ const c = {
204
204
  replyable: !0,
205
205
  carriesText: !0,
206
206
  countsAs: "inbound_message",
207
- snippet: T
207
+ snippet: O
208
208
  },
209
209
  EMAIL_SENT: {
210
210
  shape: "message",
@@ -214,7 +214,7 @@ const c = {
214
214
  replyable: !0,
215
215
  carriesText: !0,
216
216
  countsAs: "outbound_message",
217
- snippet: T
217
+ snippet: O
218
218
  },
219
219
  /* ---- chat ---- */
220
220
  CHAT_MESSAGE_SENT: {
@@ -243,9 +243,9 @@ const c = {
243
243
  shape: "event",
244
244
  channelKind: "chat",
245
245
  icon: "message-circle",
246
- snippet: (e) => `${d(e.payload.members)} toegevoegd`,
246
+ snippet: (e) => `${b(e.payload.members)} toegevoegd`,
247
247
  timeline: (e) => {
248
- const t = d(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
248
+ const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
249
249
  return `${t} joined the chat${n}`;
250
250
  }
251
251
  },
@@ -253,9 +253,9 @@ const c = {
253
253
  shape: "event",
254
254
  channelKind: "chat",
255
255
  icon: "message-circle",
256
- snippet: (e) => `${d(e.payload.members)} verlaten`,
256
+ snippet: (e) => `${b(e.payload.members)} verlaten`,
257
257
  timeline: (e) => {
258
- const t = d(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
258
+ const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
259
259
  return `${t} left the chat${n}`;
260
260
  }
261
261
  },
@@ -271,15 +271,15 @@ const c = {
271
271
  channelKind: "chat",
272
272
  icon: "message-circle",
273
273
  snippet: () => "Gesprek gestart",
274
- timeline: (e) => `${I(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
274
+ timeline: (e) => `${x(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
275
275
  joinUrl: (e) => e.payload.joinUrl
276
276
  },
277
277
  CHAT_CALL_ENDED: {
278
278
  shape: "event",
279
279
  channelKind: "chat",
280
280
  icon: "message-circle",
281
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${p(e.payload.duration)})` : ""}`,
282
- timeline: (e) => `${I(e.payload.callType)} ended${_(e.payload.duration)}`,
281
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
282
+ timeline: (e) => `${x(e.payload.callType)} ended${k(e.payload.duration)}`,
283
283
  joinUrl: (e) => e.payload.joinUrl
284
284
  },
285
285
  CHAT_EVENT: {
@@ -367,7 +367,7 @@ const c = {
367
367
  MEETING_ENDED: {
368
368
  shape: "event",
369
369
  icon: "calendar",
370
- snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${p(e.payload.duration)})` : ""}`,
370
+ snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
371
371
  timeline: () => "Meeting ended"
372
372
  },
373
373
  MEETING_PARTICIPANT_JOINED: {
@@ -404,76 +404,76 @@ const c = {
404
404
  timeline: (e, t) => `Assigned by ${t}`
405
405
  }
406
406
  };
407
- function T(e) {
408
- const t = e.payload, n = t.bodySnippet?.trim() || w(t.body ?? "");
407
+ function O(e) {
408
+ const t = e.payload, n = t.bodySnippet?.trim() || oe(t.body ?? "");
409
409
  return t.subject ? `${t.subject} — ${n}` : n;
410
410
  }
411
- function l(e) {
412
- return c[e];
411
+ function d(e) {
412
+ return f[e];
413
413
  }
414
- function Ue(e) {
415
- return l(e)?.icon ?? "circle";
414
+ function mt(e) {
415
+ return d(e)?.icon ?? "circle";
416
416
  }
417
- function Pe(e) {
418
- return l(e)?.channelKind;
417
+ function ft(e) {
418
+ return d(e)?.channelKind;
419
419
  }
420
- function we(e) {
421
- const t = l(e)?.shape;
420
+ function gt(e) {
421
+ const t = d(e)?.shape;
422
422
  return t === "message" || t === "note";
423
423
  }
424
- function Ke(e) {
425
- return l(e)?.replyable === !0;
424
+ function ht(e) {
425
+ return d(e)?.replyable === !0;
426
426
  }
427
- function Ge(e) {
428
- return l(e)?.carriesText === !0;
427
+ function yt(e) {
428
+ return d(e)?.carriesText === !0;
429
429
  }
430
- function Ve(e) {
431
- return l(e)?.countsAs;
430
+ function bt(e) {
431
+ return d(e)?.countsAs;
432
432
  }
433
- function He(e) {
434
- return l(e)?.playbookAuthored === !0;
433
+ function At(e) {
434
+ return d(e)?.playbookAuthored === !0;
435
435
  }
436
- function K(e) {
437
- const t = l(e.type)?.snippet;
436
+ function se(e) {
437
+ const t = d(e.type)?.snippet;
438
438
  return t ? t(e) : "";
439
439
  }
440
- function je(e, t) {
441
- const n = l(e.type)?.timeline;
440
+ function Et(e, t) {
441
+ const n = d(e.type)?.timeline;
442
442
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
443
443
  }
444
- function Be(e) {
445
- const t = l(e.type)?.joinUrl;
444
+ function _t(e) {
445
+ const t = d(e.type)?.joinUrl;
446
446
  return t ? t(e) : void 0;
447
447
  }
448
- function y(e, t) {
448
+ function C(e, t) {
449
449
  let n = e;
450
- for (const i of t.split(".")) {
450
+ for (const a of t.split(".")) {
451
451
  if (n == null || typeof n != "object") return "";
452
- n = n[i];
452
+ n = n[a];
453
453
  }
454
454
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
455
455
  }
456
- function b(e, t, n) {
456
+ function N(e, t, n) {
457
457
  if (e === void 0) return null;
458
458
  if (typeof e == "string") return e || null;
459
459
  if ("value" in e)
460
- return y(t, e.value) || null;
461
- const i = {};
460
+ return C(t, e.value) || null;
461
+ const a = {};
462
462
  for (const [r, o] of Object.entries(e.params ?? {}))
463
- i[r] = y(t, o);
464
- const a = n(e.key, i);
465
- return a === e.key ? null : a;
463
+ a[r] = C(t, o);
464
+ const i = n(e.key, a);
465
+ return i === e.key ? null : i;
466
466
  }
467
- function G(e, t) {
467
+ function le(e, t) {
468
468
  if (!e || typeof e == "string" || "value" in e) return null;
469
469
  const n = {};
470
- for (const [i, a] of Object.entries(e.params ?? {}))
471
- n[i] = y(t, a);
470
+ for (const [a, i] of Object.entries(e.params ?? {}))
471
+ n[a] = C(t, i);
472
472
  return { key: e.key, params: n };
473
473
  }
474
- const V = (e) => e;
475
- function M(e) {
476
- const t = c[e];
474
+ const ce = (e) => e;
475
+ function L(e) {
476
+ const t = f[e];
477
477
  return {
478
478
  type: e,
479
479
  shape: t.shape,
@@ -488,7 +488,7 @@ function M(e) {
488
488
  displayNameKey: t.displayNameKey
489
489
  };
490
490
  }
491
- function S(e) {
491
+ function $(e) {
492
492
  return {
493
493
  type: e.type,
494
494
  shape: e.shape,
@@ -503,21 +503,21 @@ function S(e) {
503
503
  displayNameKey: e.displayNameKey
504
504
  };
505
505
  }
506
- class H {
507
- constructor(t = [], n = V) {
506
+ class ue {
507
+ constructor(t = [], n = ce) {
508
508
  this.translate = n;
509
- for (const i of t)
510
- i?.type && (i.type in c || this.declared.has(i.type) || this.declared.set(i.type, i));
509
+ for (const a of t)
510
+ a?.type && (a.type in f || this.declared.has(a.type) || this.declared.set(a.type, a));
511
511
  }
512
512
  declared = /* @__PURE__ */ new Map();
513
513
  get(t) {
514
- if (t in c) return M(t);
514
+ if (t in f) return L(t);
515
515
  const n = this.declared.get(t);
516
- return n ? S(n) : void 0;
516
+ return n ? $(n) : void 0;
517
517
  }
518
518
  /** Alles wat als trigger aangeboden mag worden, ingebouwd en gedeclareerd. */
519
519
  triggerable() {
520
- const t = Object.keys(c).filter((i) => c[i].triggerable).map(M), n = [...this.declared.values()].map(S).filter((i) => i.triggerable);
520
+ const t = Object.keys(f).filter((a) => f[a].triggerable).map(L), n = [...this.declared.values()].map($).filter((a) => a.triggerable);
521
521
  return [...t, ...n];
522
522
  }
523
523
  /**
@@ -526,17 +526,17 @@ class H {
526
526
  * typenaam — dezelfde regel die de feed altijd al toonde voor onbekende types.
527
527
  */
528
528
  timelineText(t, n) {
529
- const i = c[t.type];
530
- if (i?.timeline) return i.timeline(t, n);
531
- const a = this.declared.get(t.type);
532
- return b(a?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
529
+ const a = f[t.type];
530
+ if (a?.timeline) return a.timeline(t, n);
531
+ const i = this.declared.get(t.type);
532
+ return N(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
533
533
  }
534
534
  /** De regel voor de inboxlijst. Leeg wanneer het type niets te tonen heeft. */
535
535
  snippet(t) {
536
- const n = c[t.type];
536
+ const n = f[t.type];
537
537
  if (n?.snippet) return n.snippet(t);
538
- const i = this.declared.get(t.type);
539
- return b(i?.text, t, this.translate) ?? "";
538
+ const a = this.declared.get(t.type);
539
+ return N(a?.text, t, this.translate) ?? "";
540
540
  }
541
541
  /** De descriptor zoals hij binnenkwam; nodig om `text` als sleutel op te slaan. */
542
542
  descriptor(t) {
@@ -552,33 +552,33 @@ class H {
552
552
  return this.translate;
553
553
  }
554
554
  }
555
- const Fe = new H(), C = 140;
556
- function j(e) {
555
+ const Tt = new ue(), R = 140;
556
+ function pe(e) {
557
557
  const t = e.trim();
558
- return t.length <= C ? t : t.slice(0, C - 1).trimEnd() + "…";
558
+ return t.length <= R ? t : t.slice(0, R - 1).trimEnd() + "…";
559
559
  }
560
- function Xe(e, t) {
561
- const n = G(t?.text, e), i = t ? b(t.text, e, (a) => a) : null;
560
+ function It(e, t) {
561
+ const n = le(t?.text, e), a = t ? N(t.text, e, (i) => i) : null;
562
562
  return {
563
563
  activityId: e.id,
564
564
  type: e.type,
565
- snippet: j(i ?? K(e)),
565
+ snippet: pe(a ?? se(e)),
566
566
  authorName: e.author?.name ?? "",
567
567
  direction: e.direction,
568
568
  createdAt: e.createdAt ?? Date.now(),
569
569
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
570
570
  };
571
571
  }
572
- function We(e, t, n = []) {
573
- const i = e.createdAt;
574
- if (!i) return [];
575
- const a = new Set(n);
576
- return e.author.type === "user" && e.author.id && a.add(e.author.id), Object.entries(t).filter(([r, o]) => o >= i && !a.has(r)).map(([r]) => r);
572
+ function St(e, t, n = []) {
573
+ const a = e.createdAt;
574
+ if (!a) return [];
575
+ const i = new Set(n);
576
+ return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([r, o]) => o >= a && !i.has(r)).map(([r]) => r);
577
577
  }
578
- function Ye(e) {
578
+ function Mt(e) {
579
579
  return e.createdAt ?? 0;
580
580
  }
581
- const ze = [
581
+ const Ct = [
582
582
  { id: "agent", label: "Agent", labelSource: "user" },
583
583
  { id: "team", label: "Team", labelSource: "team" },
584
584
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -588,57 +588,364 @@ const ze = [
588
588
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
589
589
  { id: "time", label: "Tijd", labelSource: "raw" }
590
590
  ];
591
- function qe(e) {
591
+ function Nt(e) {
592
592
  const t = [];
593
593
  for (const n of Object.keys(e))
594
- for (const i of Object.keys(e[n]))
595
- t.push({ lang: n, key: i, value: e[n][i] });
594
+ for (const a of Object.keys(e[n]))
595
+ t.push({ lang: n, key: a, value: e[n][a] });
596
596
  return t;
597
597
  }
598
- function E(e) {
598
+ function S(e) {
599
599
  return e < 10 ? `0${e}` : `${e}`;
600
600
  }
601
- function B(e, t) {
602
- const n = new Date(e), i = `${n.getUTCFullYear()}-${E(n.getUTCMonth() + 1)}-${E(n.getUTCDate())}`;
603
- return t === "day" ? i : `${i}T${E(n.getUTCHours())}`;
601
+ function de(e, t) {
602
+ const n = new Date(e), a = `${n.getUTCFullYear()}-${S(n.getUTCMonth() + 1)}-${S(n.getUTCDate())}`;
603
+ return t === "day" ? a : `${a}T${S(n.getUTCHours())}`;
604
604
  }
605
- function F(e, t) {
605
+ function me(e, t) {
606
606
  const n = new Date(e);
607
607
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
608
608
  }
609
- const X = 36e5, W = 864e5;
610
- function Je(e, t, n) {
611
- const i = n === "hour" ? X : W, a = [];
612
- for (let r = F(e, n); r <= t; r += i)
613
- a.push(B(r, n));
614
- return a;
609
+ const fe = 36e5, ge = 864e5;
610
+ function vt(e, t, n) {
611
+ const a = n === "hour" ? fe : ge, i = [];
612
+ for (let r = me(e, n); r <= t; r += a)
613
+ i.push(de(r, n));
614
+ return i;
615
615
  }
616
- const Y = [
616
+ const he = [
617
617
  { id: "resource", label: "Resource", labelSource: "raw" },
618
618
  { id: "origin", label: "Herkomst", labelSource: "raw" }
619
- ], z = Y.map((e) => e.id);
620
- function q(e, t) {
619
+ ], ye = he.map((e) => e.id);
620
+ function be(e, t) {
621
621
  return `${e}.usage.${t}`;
622
622
  }
623
- function Qe(e, t) {
623
+ function kt(e, t) {
624
624
  return t.map((n) => ({
625
- id: q(e, n.unit),
625
+ id: be(e, n.unit),
626
626
  label: n.label,
627
627
  category: "Verbruik",
628
628
  valueType: n.valueType ?? "count",
629
629
  aggregation: "sum",
630
630
  supportedDimensions: [
631
631
  "provider",
632
- ...z,
632
+ ...ye,
633
633
  ...n.extraDimensions ?? [],
634
634
  "time"
635
635
  ]
636
636
  }));
637
637
  }
638
- function Ze(e) {
638
+ const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), D = 200, w = 100, U = 200, K = 12, P = 4, Q = 4e3, M = 500, xt = 256 * 1024, Ae = /* @__PURE__ */ new Set([
639
+ "heading",
640
+ "paragraph",
641
+ "list",
642
+ "quote",
643
+ "code",
644
+ "divider",
645
+ "table",
646
+ "kpi",
647
+ "callout"
648
+ ]), Ee = ["http:", "https:", "mailto:", "tel:"], _e = /^[a-z][a-z0-9+.-]*:/i;
649
+ function Z(e) {
650
+ const t = e.trim().replace(/^<|>$/g, "");
651
+ if (!t) return !1;
652
+ const n = _e.exec(t)?.[0];
653
+ return n ? Ee.includes(n.toLowerCase()) : !t.startsWith("//");
654
+ }
655
+ const Te = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
656
+ function Ie(e) {
657
+ let t = "", n = 0;
658
+ for (; n < e.length; ) {
659
+ const a = e[n] === "!" && e[n + 1] === "[";
660
+ if (e[n] !== "[" && !a) {
661
+ t += e[n], n += 1;
662
+ continue;
663
+ }
664
+ const i = n + (a ? 2 : 1), r = G(e, i, "[", "]");
665
+ if (r < 0 || e[r + 1] !== "(") {
666
+ t += e[n], n += 1;
667
+ continue;
668
+ }
669
+ const o = G(e, r + 2, "(", ")");
670
+ if (o < 0) {
671
+ t += e[n], n += 1;
672
+ continue;
673
+ }
674
+ const s = e.slice(i, r), m = e.slice(r + 2, o).trim().split(/\s+/)[0] ?? "";
675
+ t += a || !Z(m) ? s : e.slice(n, o + 1), n = o + 1;
676
+ }
677
+ return t;
678
+ }
679
+ function G(e, t, n, a) {
680
+ let i = 1;
681
+ for (let r = t; r < e.length; r += 1) {
682
+ if (e[r] === "\\") {
683
+ r += 1;
684
+ continue;
685
+ }
686
+ if (e[r] === n) i += 1;
687
+ else if (e[r] === a && (i -= 1, i === 0))
688
+ return r;
689
+ }
690
+ return -1;
691
+ }
692
+ function Se(e) {
693
+ return Ie(e).replace(
694
+ Te,
695
+ (t, n, a) => Z(a) ? t : ""
696
+ );
697
+ }
698
+ function c(e, t = Q) {
699
+ return typeof e == "string" ? Se(e).slice(0, t) : "";
700
+ }
701
+ function Me(e, t = Q) {
702
+ return typeof e == "string" ? e.slice(0, t) : "";
703
+ }
704
+ function Ce(e, t = "info") {
705
+ return typeof e == "string" && J.has(e) ? e : t;
706
+ }
707
+ function Ot(e, t = () => {
708
+ }) {
709
+ if (!Array.isArray(e)) return [];
710
+ const n = [];
711
+ for (const a of e) {
712
+ if (n.length >= D) {
713
+ t("more than " + D + " blocks; the rest was dropped");
714
+ break;
715
+ }
716
+ if (!a || typeof a != "object") continue;
717
+ const i = a;
718
+ if (!Ae.has(i.type)) {
719
+ t("unknown block type " + String(i.type));
720
+ continue;
721
+ }
722
+ const r = typeof i.block_id == "string" ? { block_id: i.block_id } : {};
723
+ switch (i.type) {
724
+ case "heading": {
725
+ const o = c(i.text);
726
+ if (!o) {
727
+ t("a heading without text");
728
+ continue;
729
+ }
730
+ const s = i.level === 2 || i.level === 3 ? i.level : 1;
731
+ n.push({ ...r, type: "heading", level: s, text: o });
732
+ break;
733
+ }
734
+ case "paragraph": {
735
+ const o = c(i.text);
736
+ if (!o) {
737
+ t("a paragraph without text");
738
+ continue;
739
+ }
740
+ n.push({ ...r, type: "paragraph", text: o });
741
+ break;
742
+ }
743
+ case "quote": {
744
+ const o = c(i.text);
745
+ if (!o) {
746
+ t("a quote without text");
747
+ continue;
748
+ }
749
+ n.push({ ...r, type: "quote", text: o });
750
+ break;
751
+ }
752
+ case "code": {
753
+ const o = Me(i.text);
754
+ if (!o) {
755
+ t("a code block without text");
756
+ continue;
757
+ }
758
+ const s = typeof i.lang == "string" ? { lang: i.lang.slice(0, 32) } : {};
759
+ n.push({ ...r, type: "code", ...s, text: o });
760
+ break;
761
+ }
762
+ case "divider":
763
+ n.push({ ...r, type: "divider" });
764
+ break;
765
+ case "list": {
766
+ const o = Array.isArray(i.items) ? i.items : [], s = [];
767
+ for (const u of o) {
768
+ if (s.length >= w) {
769
+ t("more than " + w + " list items");
770
+ break;
771
+ }
772
+ const p = c(u?.text);
773
+ if (!p) continue;
774
+ const l = c(u?.lead, 200);
775
+ s.push(l ? { lead: l, text: p } : { text: p });
776
+ }
777
+ if (s.length === 0) {
778
+ t("a list without usable items");
779
+ continue;
780
+ }
781
+ const m = i.style === "numbered" ? "numbered" : "bulleted";
782
+ n.push({ ...r, type: "list", style: m, items: s });
783
+ break;
784
+ }
785
+ case "table": {
786
+ const o = Array.isArray(i.columns) ? i.columns : [], s = [];
787
+ for (const l of o) {
788
+ if (s.length >= K) {
789
+ t("more than " + K + " table columns");
790
+ break;
791
+ }
792
+ const h = c(l?.label, M), _ = l?.align === "right" ? "right" : void 0;
793
+ s.push(_ ? { label: h, align: _ } : { label: h });
794
+ }
795
+ if (s.length === 0) {
796
+ t("a table without columns");
797
+ continue;
798
+ }
799
+ const m = Array.isArray(i.rows) ? i.rows : [], u = [];
800
+ for (const l of m) {
801
+ if (u.length >= U) {
802
+ t("more than " + U + " table rows");
803
+ break;
804
+ }
805
+ const h = Array.isArray(l) ? l : [];
806
+ u.push(
807
+ s.map((_, ae) => c(h[ae], M))
808
+ );
809
+ }
810
+ const p = c(i.caption, M);
811
+ n.push({
812
+ ...r,
813
+ type: "table",
814
+ columns: s,
815
+ rows: u,
816
+ ...p ? { caption: p } : {}
817
+ });
818
+ break;
819
+ }
820
+ case "kpi": {
821
+ const o = Array.isArray(i.items) ? i.items : [], s = [];
822
+ for (const m of o) {
823
+ if (s.length >= P) {
824
+ t("more than " + P + " kpi items");
825
+ break;
826
+ }
827
+ const u = c(m?.value, 40), p = c(m?.label, 80);
828
+ if (!u || !p) continue;
829
+ const l = m?.tone;
830
+ s.push(
831
+ typeof l == "string" && J.has(l) ? { value: u, label: p, tone: l } : { value: u, label: p }
832
+ );
833
+ }
834
+ if (s.length === 0) {
835
+ t("a kpi block without usable items");
836
+ continue;
837
+ }
838
+ n.push({ ...r, type: "kpi", items: s });
839
+ break;
840
+ }
841
+ case "callout": {
842
+ const o = c(i.text);
843
+ if (!o) {
844
+ t("a callout without text");
845
+ continue;
846
+ }
847
+ const s = c(i.title, 200);
848
+ n.push({
849
+ ...r,
850
+ type: "callout",
851
+ tone: Ce(i.tone),
852
+ ...s ? { title: s } : {},
853
+ text: o
854
+ });
855
+ break;
856
+ }
857
+ }
858
+ }
859
+ return n;
860
+ }
861
+ function Lt(e) {
862
+ return JSON.stringify(e).length;
863
+ }
864
+ function $t(e) {
865
+ return {
866
+ blocks: e.length,
867
+ types: e.map((t) => t.type),
868
+ headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
869
+ };
870
+ }
871
+ function V(e) {
872
+ return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
873
+ }
874
+ function j(e, t, n) {
875
+ const a = e.map((i, r) => n?.[r] === "right" ? "---:" : "---");
876
+ return [
877
+ `| ${e.map(V).join(" | ")} |`,
878
+ `| ${a.join(" | ")} |`,
879
+ ...t.map((i) => `| ${i.map(V).join(" | ")} |`)
880
+ ];
881
+ }
882
+ function Ne(e) {
883
+ switch (e.type) {
884
+ case "heading":
885
+ return [`${"#".repeat(e.level)} ${e.text}`];
886
+ case "paragraph":
887
+ return [e.text];
888
+ case "quote":
889
+ return e.text.split(/\r?\n/).map((t) => `> ${t}`);
890
+ case "code":
891
+ return [`\`\`\`${e.lang ?? ""}`, e.text, "```"];
892
+ case "divider":
893
+ return ["---"];
894
+ case "list":
895
+ return e.items.map((t, n) => {
896
+ const a = e.style === "numbered" ? `${n + 1}.` : "-";
897
+ return t.lead ? `${a} **${t.lead}** ${t.text}` : `${a} ${t.text}`;
898
+ });
899
+ case "table": {
900
+ const t = j(
901
+ e.columns.map((n) => n.label),
902
+ e.rows,
903
+ e.columns.map((n) => n.align ?? "left")
904
+ );
905
+ return e.caption ? [...t, "", `*${e.caption}*`] : t;
906
+ }
907
+ case "kpi":
908
+ return j(
909
+ e.items.map((t) => t.value),
910
+ [e.items.map((t) => t.label)]
911
+ );
912
+ case "callout":
913
+ return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
914
+ }
915
+ }
916
+ function Rt(e, t) {
917
+ const n = [], a = e.some((i) => i.type === "heading" && i.level === 1);
918
+ t && !a && n.push(`# ${t}`);
919
+ for (const i of e) {
920
+ const r = Ne(i);
921
+ r.length > 0 && n.push(r.join(`
922
+ `));
923
+ }
924
+ return `${n.join(`
925
+
926
+ `)}
927
+ `;
928
+ }
929
+ const ee = (e) => `user:${e}`, te = (e) => `team:${e}`;
930
+ function Dt(e) {
931
+ const t = /* @__PURE__ */ new Set();
932
+ for (const n of e ?? [])
933
+ n?.id && (n.kind === "user" && t.add(ee(n.id)), n.kind === "team" && t.add(te(n.id)));
934
+ return [...t].sort();
935
+ }
936
+ function wt(e, t) {
937
+ return [ee(e), ...t.map(te)];
938
+ }
939
+ function Ut(e) {
940
+ const t = /* @__PURE__ */ new Set();
941
+ for (const n of e ?? [])
942
+ n?.kind && t.add(n.kind);
943
+ return [...t];
944
+ }
945
+ function Kt(e) {
639
946
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
640
947
  }
641
- const et = [
948
+ const Pt = [
642
949
  { name: "text", type: "string" },
643
950
  { name: "subject", type: "string" },
644
951
  { name: "from", type: "string" },
@@ -661,7 +968,7 @@ const et = [
661
968
  // een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
662
969
  { name: "contactId", type: "string" },
663
970
  { name: "companyId", type: "string" }
664
- ], tt = {
971
+ ], Gt = {
665
972
  topics: [
666
973
  { name: "topic", type: "string" },
667
974
  { name: "confidence", type: "number" }
@@ -672,7 +979,7 @@ const et = [
672
979
  ],
673
980
  extract: []
674
981
  };
675
- function J(e) {
982
+ function ve(e) {
676
983
  switch (e.kind) {
677
984
  case "user":
678
985
  return `user:${e.userId}`;
@@ -682,22 +989,22 @@ function J(e) {
682
989
  return "org";
683
990
  }
684
991
  }
685
- function nt(e) {
992
+ function Vt(e) {
686
993
  if (typeof e != "string") return;
687
994
  const t = e.trim();
688
995
  if (t === "org") return { kind: "org" };
689
996
  const n = t.indexOf(":");
690
997
  if (n <= 0) return;
691
- const i = t.slice(0, n), a = t.slice(n + 1).trim();
692
- if (a) {
693
- if (i === "user") return { kind: "user", userId: a };
694
- if (i === "team") return { kind: "team", teamId: a };
998
+ const a = t.slice(0, n), i = t.slice(n + 1).trim();
999
+ if (i) {
1000
+ if (a === "user") return { kind: "user", userId: i };
1001
+ if (a === "team") return { kind: "team", teamId: i };
695
1002
  }
696
1003
  }
697
- function Q(e) {
698
- return J(e);
1004
+ function ke(e) {
1005
+ return ve(e);
699
1006
  }
700
- function it(e) {
1007
+ function jt(e) {
701
1008
  switch (e.kind) {
702
1009
  case "personal":
703
1010
  return { kind: "user", userId: e.userId };
@@ -707,20 +1014,20 @@ function it(e) {
707
1014
  return { kind: "org" };
708
1015
  }
709
1016
  }
710
- function at(e) {
711
- return Q(e);
1017
+ function Bt(e) {
1018
+ return ke(e);
712
1019
  }
713
- const Z = ["done", "escalated", "failed", "timed_out", "stopped"], ee = ["awaiting_approval", "awaiting_reply"];
714
- function te(e) {
715
- return Z.includes(e);
1020
+ const xe = ["done", "escalated", "failed", "timed_out", "stopped"], Oe = ["awaiting_approval", "awaiting_reply"];
1021
+ function Le(e) {
1022
+ return xe.includes(e);
716
1023
  }
717
- function rt(e) {
718
- return te(e);
1024
+ function Ht(e) {
1025
+ return Le(e);
719
1026
  }
720
- function ot(e) {
721
- return ee.includes(e);
1027
+ function Ft(e) {
1028
+ return Oe.includes(e);
722
1029
  }
723
- const R = [
1030
+ const ne = [
724
1031
  {
725
1032
  id: "openai",
726
1033
  attachmentKinds: ["image", "pdf"],
@@ -811,56 +1118,56 @@ const R = [
811
1118
  defaultModel: "default"
812
1119
  }
813
1120
  ];
814
- function f(e) {
815
- return R.find((t) => t.id === e);
1121
+ function E(e) {
1122
+ return ne.find((t) => t.id === e);
816
1123
  }
817
- function st(e) {
818
- return f(e)?.label ?? e;
1124
+ function Xt(e) {
1125
+ return E(e)?.label ?? e;
819
1126
  }
820
- function lt(e, t = "gpt-5-mini") {
821
- return f(e)?.defaultModel ?? t;
1127
+ function Wt(e, t = "gpt-5-mini") {
1128
+ return E(e)?.defaultModel ?? t;
822
1129
  }
823
- function ct(e) {
824
- return R.filter((t) => t.capabilities.includes(e));
1130
+ function zt(e) {
1131
+ return ne.filter((t) => t.capabilities.includes(e));
825
1132
  }
826
- function ut(e) {
827
- const t = f(e);
1133
+ function Yt(e) {
1134
+ const t = E(e);
828
1135
  return !!t && !t.baseUrl;
829
1136
  }
830
- function pt(e, t) {
831
- return t === "text" ? !0 : f(e)?.attachmentKinds?.includes(t) === !0;
1137
+ function qt(e, t) {
1138
+ return t === "text" ? !0 : E(e)?.attachmentKinds?.includes(t) === !0;
832
1139
  }
833
- const dt = /* @__PURE__ */ new Set(["mail", "message"]);
834
- function ne(e, t) {
1140
+ const Jt = /* @__PURE__ */ new Set(["mail", "message"]);
1141
+ function $e(e, t) {
835
1142
  const n = e.settings?.signatures?.[t];
836
1143
  return !n || !n.enabled || !n.body || n.body.trim() === "" ? null : n;
837
1144
  }
838
- function mt(e, t, n, i = "html") {
1145
+ function Qt(e, t, n, a = "html") {
839
1146
  if (!e) return n;
840
- const a = ne(e, t);
841
- return a ? `${n}${i === "text" ? `
1147
+ const i = $e(e, t);
1148
+ return i ? `${n}${a === "text" ? `
842
1149
 
843
- ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${a.body}` : n;
1150
+ ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
844
1151
  }
845
- function ft(e) {
1152
+ function Zt(e) {
846
1153
  return e.endpoints ?? [];
847
1154
  }
848
- const gt = (e) => !!e.assignedUserId || !!e.assignedInboxId, ht = (e) => e.status === "closed", Et = (e) => ({
1155
+ const en = (e) => !!e.assignedUserId || !!e.assignedInboxId, tn = (e) => e.status === "closed", nn = (e) => ({
849
1156
  urgent: 10,
850
1157
  high: 5,
851
1158
  normal: 2,
852
1159
  low: 1
853
- })[e.priority] || 0, yt = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
854
- function bt(e, t) {
1160
+ })[e.priority] || 0, an = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1161
+ function rn(e, t) {
855
1162
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
856
1163
  }
857
- const At = 2e3, _t = 500, It = 12e3, Tt = 4e3, ie = ["contact", "company"];
858
- function Mt(e) {
1164
+ const on = 2e3, sn = 500, ln = 12e3, cn = 4e3, Re = ["contact", "company"];
1165
+ function un(e) {
859
1166
  if (!e) return !1;
860
1167
  const t = e.slice(0, e.indexOf(":"));
861
- return ie.includes(t);
1168
+ return Re.includes(t);
862
1169
  }
863
- const A = {
1170
+ const v = {
864
1171
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
865
1172
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
866
1173
  // An over-permissive key is harmless — it simply matches nothing.
@@ -883,81 +1190,81 @@ const A = {
883
1190
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
884
1191
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
885
1192
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
886
- }, ae = "NL", re = 15, oe = 8, se = Array.from(
887
- new Set(Object.values(A).map((e) => e.callingCode))
1193
+ }, De = "NL", we = 15, Ue = 8, Ke = Array.from(
1194
+ new Set(Object.values(v).map((e) => e.callingCode))
888
1195
  ).sort((e, t) => t.length - e.length);
889
- function N(e) {
1196
+ function B(e) {
890
1197
  if (e)
891
- return A[e.trim().toUpperCase()];
1198
+ return v[e.trim().toUpperCase()];
892
1199
  }
893
- function m(e, t) {
1200
+ function A(e, t) {
894
1201
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
895
1202
  }
896
- function v(e) {
897
- if (e.length > re) return null;
898
- for (const t of se) {
1203
+ function H(e) {
1204
+ if (e.length > we) return null;
1205
+ for (const t of Ke) {
899
1206
  if (!e.startsWith(t)) continue;
900
1207
  const n = e.slice(t.length);
901
- for (const i of Object.values(A)) {
902
- if (i.callingCode !== t) continue;
903
- const a = i.trunkPrefix, r = a && n.startsWith(a) ? n.slice(a.length) : n;
904
- if (m(r, i)) return `+${t}${r}`;
1208
+ for (const a of Object.values(v)) {
1209
+ if (a.callingCode !== t) continue;
1210
+ const i = a.trunkPrefix, r = i && n.startsWith(i) ? n.slice(i.length) : n;
1211
+ if (A(r, a)) return `+${t}${r}`;
905
1212
  }
906
1213
  return null;
907
1214
  }
908
- return e.length < oe ? null : `+${e}`;
1215
+ return e.length < Ue ? null : `+${e}`;
909
1216
  }
910
- function le(e) {
1217
+ function Pe(e) {
911
1218
  let t = e.trim();
912
1219
  const n = t.match(/^(sips?|tel|whatsapp):/i);
913
1220
  n && (t = t.slice(n[0].length));
914
- const i = t.indexOf("@");
915
- return i >= 0 && (t = t.slice(0, i)), t.trim();
1221
+ const a = t.indexOf("@");
1222
+ return a >= 0 && (t = t.slice(0, a)), t.trim();
916
1223
  }
917
- function St(e) {
1224
+ function pn(e) {
918
1225
  if (!e) return !1;
919
1226
  const t = e.indexOf("@");
920
1227
  if (t <= 0) return !1;
921
1228
  const n = e.slice(0, t).trim();
922
1229
  return !/^[+\d\s().-]+$/.test(n);
923
1230
  }
924
- function O(e, t) {
1231
+ function F(e, t) {
925
1232
  if (!e) return null;
926
- const n = le(e);
1233
+ const n = Pe(e);
927
1234
  if (!n) return null;
928
- const i = n.startsWith("+"), a = n.replace(/\D/g, "");
929
- if (!a) return null;
930
- if (i) return v(a);
931
- if (a.startsWith("00")) return v(a.slice(2));
932
- const r = N(t) ?? N(ae);
1235
+ const a = n.startsWith("+"), i = n.replace(/\D/g, "");
1236
+ if (!i) return null;
1237
+ if (a) return H(i);
1238
+ if (i.startsWith("00")) return H(i.slice(2));
1239
+ const r = B(t) ?? B(De);
933
1240
  if (!r) return null;
934
1241
  const o = r.trunkPrefix;
935
- if (o && a.startsWith(o)) {
936
- const s = a.slice(o.length);
937
- return m(s, r) ? `+${r.callingCode}${s}` : null;
1242
+ if (o && i.startsWith(o)) {
1243
+ const s = i.slice(o.length);
1244
+ return A(s, r) ? `+${r.callingCode}${s}` : null;
938
1245
  }
939
- if (a.startsWith(r.callingCode)) {
940
- const s = a.slice(r.callingCode.length);
941
- if (m(s, r)) return `+${r.callingCode}${s}`;
1246
+ if (i.startsWith(r.callingCode)) {
1247
+ const s = i.slice(r.callingCode.length);
1248
+ if (A(s, r)) return `+${r.callingCode}${s}`;
942
1249
  }
943
- return !o && m(a, r) ? `+${r.callingCode}${a}` : null;
1250
+ return !o && A(i, r) ? `+${r.callingCode}${i}` : null;
944
1251
  }
945
- function Ct(e, t = 9) {
1252
+ function dn(e, t = 9) {
946
1253
  const n = (e ?? "").replace(/\D/g, "");
947
1254
  return n.length < t ? null : n.slice(-t);
948
1255
  }
949
- function U(e) {
1256
+ function ie(e) {
950
1257
  if (!e) return null;
951
1258
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
952
1259
  if (n <= 0 || n === t.length - 1) return null;
953
- const i = t.slice(0, n).split("+")[0], a = t.slice(n + 1);
954
- return !i || !a.includes(".") ? null : `${i}@${a}`;
1260
+ const a = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
1261
+ return !a || !i.includes(".") ? null : `${a}@${i}`;
955
1262
  }
956
- function Nt(e) {
957
- const t = U(e);
1263
+ function mn(e) {
1264
+ const t = ie(e);
958
1265
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
959
1266
  }
960
- const ce = /* @__PURE__ */ new Set([
1267
+ const Ge = /* @__PURE__ */ new Set([
961
1268
  "co.uk",
962
1269
  "org.uk",
963
1270
  "gov.uk",
@@ -967,14 +1274,14 @@ const ce = /* @__PURE__ */ new Set([
967
1274
  "com.br",
968
1275
  "co.za"
969
1276
  ]);
970
- function ue(e) {
1277
+ function Ve(e) {
971
1278
  if (!e) return null;
972
1279
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
973
1280
  if (t.length < 2) return null;
974
1281
  const n = t.slice(-2).join(".");
975
- return ce.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1282
+ return Ge.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
976
1283
  }
977
- const pe = /* @__PURE__ */ new Set([
1284
+ const je = /* @__PURE__ */ new Set([
978
1285
  "gmail.com",
979
1286
  "googlemail.com",
980
1287
  "outlook.com",
@@ -1019,44 +1326,44 @@ const pe = /* @__PURE__ */ new Set([
1019
1326
  "proximus.be",
1020
1327
  "scarlet.be"
1021
1328
  ]);
1022
- function vt(e) {
1023
- const t = ue(e);
1024
- return t ? pe.has(t) : !1;
1329
+ function fn(e) {
1330
+ const t = Ve(e);
1331
+ return t ? je.has(t) : !1;
1025
1332
  }
1026
- function Ot(e) {
1333
+ function gn(e) {
1027
1334
  if (!e) return !1;
1028
1335
  const t = e.trim().toLowerCase();
1029
1336
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
1030
1337
  }
1031
- function kt(e, t, n) {
1338
+ function hn(e, t, n) {
1032
1339
  if (!e || !t) return null;
1033
- const i = e.trim().toLowerCase();
1034
- if (i === "tel" || i === "sms" || i === "whatsapp") {
1035
- const r = O(t, n);
1340
+ const a = e.trim().toLowerCase();
1341
+ if (a === "tel" || a === "sms" || a === "whatsapp") {
1342
+ const r = F(t, n);
1036
1343
  return r ? `tel:${r}` : null;
1037
1344
  }
1038
- if (i === "fax") {
1039
- const r = O(t, n);
1345
+ if (a === "fax") {
1346
+ const r = F(t, n);
1040
1347
  return r ? `fax:${r}` : null;
1041
1348
  }
1042
- if (i === "mailto" || i === "email") {
1043
- const r = U(t);
1349
+ if (a === "mailto" || a === "email") {
1350
+ const r = ie(t);
1044
1351
  return r ? `mailto:${r}` : null;
1045
1352
  }
1046
- const a = t.trim().toLowerCase();
1047
- return a ? `${i}:${a}` : null;
1353
+ const i = t.trim().toLowerCase();
1354
+ return i ? `${a}:${i}` : null;
1048
1355
  }
1049
- const de = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, me = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1050
- function Dt(e) {
1356
+ const Be = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, He = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1357
+ function yn(e) {
1051
1358
  if (typeof e != "string" || !e) return "";
1052
1359
  let t = e;
1053
1360
  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(`
1054
1361
  `).map(
1055
1362
  (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,}$/, "")
1056
1363
  ).join(`
1057
- `), t = t.replace(de, "$2"), t = t.replace(me, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1364
+ `), t = t.replace(Be, "$2"), t = t.replace(He, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1058
1365
  }
1059
- const fe = [
1366
+ const Fe = [
1060
1367
  /<blockquote/i,
1061
1368
  /class="?gmail_quote/i,
1062
1369
  // Gmail quote container
@@ -1069,54 +1376,56 @@ const fe = [
1069
1376
  // Outlook underscore separator before "From:"
1070
1377
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
1071
1378
  // Gmail "On <date> <name> wrote:"
1072
- ], k = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ge = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1073
- function he(e) {
1379
+ ], X = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Xe = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1380
+ function We(e) {
1074
1381
  const t = e.split(`
1075
1382
  `);
1076
1383
  for (let n = 0; n < t.length; n++)
1077
- if (ge.test(t[n]) || k.test(t[n]) && t.slice(n + 1, n + 4).some((i) => k.test(i)))
1384
+ if (Xe.test(t[n]) || X.test(t[n]) && t.slice(n + 1, n + 4).some((a) => X.test(a)))
1078
1385
  return t.slice(0, n).join(`
1079
1386
  `).trim();
1080
1387
  return e;
1081
1388
  }
1082
- function D(e) {
1389
+ function W(e) {
1083
1390
  let t = e;
1084
1391
  return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
1085
- `), t = t.replace(/<\/(p|div|li|tr|h[1-6]|ul|ol|table)>/gi, `
1086
- `), t = t.replace(/<[^>]+>/g, ""), t = t.replace(/<[^>]*$/, ""), t;
1392
+ `), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
1393
+
1394
+ `), t = t.replace(/<\/(div|li|tr)>/gi, `
1395
+ `), t = t.replace(/<\/(td|th)>/gi, " "), t = t.replace(/<[^>]+>/g, ""), t = t.replace(/<[^>]*$/, ""), t;
1087
1396
  }
1088
- function L(e) {
1397
+ function z(e) {
1089
1398
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
1090
1399
  }
1091
- function x(e) {
1092
- return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => L(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => L(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
1400
+ function Y(e) {
1401
+ return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => z(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => z(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
1093
1402
  }
1094
- function $(e) {
1403
+ function q(e) {
1095
1404
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
1096
1405
  `).replace(/\n{3,}/g, `
1097
1406
 
1098
1407
  `).trim();
1099
1408
  }
1100
- function Lt(e) {
1409
+ function bn(e) {
1101
1410
  if (typeof e != "string" || !e) return "";
1102
1411
  let t = e.length;
1103
- for (const r of fe) {
1412
+ for (const r of Fe) {
1104
1413
  const o = e.search(r);
1105
1414
  o >= 0 && o < t && (t = o);
1106
1415
  }
1107
1416
  const n = e.slice(0, t);
1108
- let i = $(x(D(n)));
1109
- return i || (i = $(x(D(e)))), he(i) || i;
1417
+ let a = q(Y(W(n)));
1418
+ return a || (a = q(Y(W(e)))), We(a) || a;
1110
1419
  }
1111
- const Ee = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ye = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1112
- function xt(e, t) {
1113
- return !!(e && Ee.test(e) || t && ye.test(t));
1420
+ const ze = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Ye = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1421
+ function An(e, t) {
1422
+ return !!(e && ze.test(e) || t && Ye.test(t));
1114
1423
  }
1115
- const be = 3, Ae = 600;
1116
- function $t(e, t) {
1117
- return e >= be || t >= Ae;
1424
+ const qe = 3, Je = 600;
1425
+ function En(e, t) {
1426
+ return e >= qe || t >= Je;
1118
1427
  }
1119
- const _e = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Ie = /* @__PURE__ */ new Set([
1428
+ const Qe = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Ze = /* @__PURE__ */ new Set([
1120
1429
  "text/plain",
1121
1430
  "text/markdown",
1122
1431
  "text/csv",
@@ -1125,77 +1434,77 @@ const _e = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1125
1434
  "application/xml",
1126
1435
  "text/xml"
1127
1436
  ]);
1128
- function Te(e) {
1437
+ function et(e) {
1129
1438
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1130
- return t ? _e.has(t) ? "image" : t === "application/pdf" ? "pdf" : Ie.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1131
- }
1132
- const u = 1024 * 1024, Me = {
1133
- image: 5 * u,
1134
- pdf: 20 * u,
1135
- text: 1 * u,
1136
- audio: 20 * u
1137
- }, Rt = 25 * u, Ut = 5;
1138
- function Pt(e, t) {
1139
- const n = Te(e);
1140
- return n === "unsupported" ? "unsupported" : t > Me[n] ? "too-large" : null;
1141
- }
1142
- function Se(e, t) {
1143
- const n = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, a = t.intents.filter((o) => !n.has(o.intent)).map((o) => Ne(o, i[o.intent]));
1144
- if (!e.extraIntents || e.extraIntents.length === 0) return a;
1145
- const r = new Set(a.map((o) => o.intent));
1439
+ return t ? Qe.has(t) ? "image" : t === "application/pdf" ? "pdf" : Ze.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1440
+ }
1441
+ const g = 1024 * 1024, tt = {
1442
+ image: 5 * g,
1443
+ pdf: 20 * g,
1444
+ text: 1 * g,
1445
+ audio: 20 * g
1446
+ }, _n = 25 * g, Tn = 5;
1447
+ function In(e, t) {
1448
+ const n = et(e);
1449
+ return n === "unsupported" ? "unsupported" : t > tt[n] ? "too-large" : null;
1450
+ }
1451
+ function nt(e, t) {
1452
+ const n = new Set(e.disabledIntents ?? []), a = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => at(o, a[o.intent]));
1453
+ if (!e.extraIntents || e.extraIntents.length === 0) return i;
1454
+ const r = new Set(i.map((o) => o.intent));
1146
1455
  for (const o of e.extraIntents)
1147
- r.has(o.intent) || (a.push(o), r.add(o.intent));
1148
- return a;
1456
+ r.has(o.intent) || (i.push(o), r.add(o.intent));
1457
+ return i;
1149
1458
  }
1150
- function Ce(e, t) {
1459
+ function it(e, t) {
1151
1460
  const n = {};
1152
- for (const i of e.intents) {
1153
- if (!i.togglable) continue;
1154
- const a = t?.[i.intent];
1155
- n[i.intent] = a ?? i.defaultEnabled ?? !0;
1461
+ for (const a of e.intents) {
1462
+ if (!a.togglable) continue;
1463
+ const i = t?.[a.intent];
1464
+ n[a.intent] = i ?? a.defaultEnabled ?? !0;
1156
1465
  }
1157
1466
  return n;
1158
1467
  }
1159
- function wt(e, t) {
1160
- const n = Ce(e, t);
1161
- return Object.entries(n).filter(([, i]) => !i).map(([i]) => i);
1468
+ function Sn(e, t) {
1469
+ const n = it(e, t);
1470
+ return Object.entries(n).filter(([, a]) => !a).map(([a]) => a);
1162
1471
  }
1163
- function Ne(e, t) {
1472
+ function at(e, t) {
1164
1473
  return t ? {
1165
1474
  intent: t.intent ?? e.intent,
1166
1475
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1167
1476
  transport: t.transport ?? e.transport
1168
1477
  } : e;
1169
1478
  }
1170
- function Kt(e, t) {
1479
+ function Mn(e, t) {
1171
1480
  const n = [];
1172
- for (const i of e) {
1173
- if (!i.enabled) continue;
1174
- const a = t[i.providerId];
1175
- if (a)
1176
- for (const r of Se(i, a))
1177
- n.push({ channel: i, description: a, capability: r });
1481
+ for (const a of e) {
1482
+ if (!a.enabled) continue;
1483
+ const i = t[a.providerId];
1484
+ if (i)
1485
+ for (const r of nt(a, i))
1486
+ n.push({ channel: a, description: i, capability: r });
1178
1487
  }
1179
1488
  return n;
1180
1489
  }
1181
- function Gt(e, t) {
1490
+ function Cn(e, t) {
1182
1491
  return t.filter((n) => n.capability.intent === e);
1183
1492
  }
1184
- function ve(e, t) {
1493
+ function rt(e, t) {
1185
1494
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1186
1495
  }
1187
- function Vt(e, t) {
1188
- return ve(e.scheme, t);
1496
+ function Nn(e, t) {
1497
+ return rt(e.scheme, t);
1189
1498
  }
1190
- function Ht(e, t, n) {
1191
- const i = [];
1192
- for (const a of e)
1499
+ function vn(e, t, n) {
1500
+ const a = [];
1501
+ for (const i of e)
1193
1502
  for (const r of n)
1194
- r.capability.intent === t && r.capability.targetSchemes.includes(a.scheme) && i.push({ channelIntent: r, endpoint: a });
1195
- return i;
1503
+ r.capability.intent === t && r.capability.targetSchemes.includes(i.scheme) && a.push({ channelIntent: r, endpoint: i });
1504
+ return a;
1196
1505
  }
1197
- var Oe = /* @__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))(Oe || {});
1198
- const ke = {
1506
+ var ot = /* @__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))(ot || {});
1507
+ const st = {
1199
1508
  mailto: "mail",
1200
1509
  sip: "tel",
1201
1510
  tel: "tel",
@@ -1217,10 +1526,10 @@ const ke = {
1217
1526
  id: "note",
1218
1527
  custom: "note"
1219
1528
  };
1220
- function jt(e) {
1221
- return e ? ke[e] ?? "note" : "note";
1529
+ function kn(e) {
1530
+ return e ? st[e] ?? "note" : "note";
1222
1531
  }
1223
- const Bt = "message_window", Ft = "message_templates", Xt = {
1532
+ const xn = "message_window", On = "message_templates", Ln = {
1224
1533
  // E-mail
1225
1534
  FROM: "from",
1226
1535
  TO: "to",
@@ -1237,118 +1546,137 @@ const Bt = "message_window", Ft = "message_templates", Xt = {
1237
1546
  // Voice/conference
1238
1547
  HOST: "host",
1239
1548
  PARTICIPANT: "participant"
1240
- }, Wt = (e, t) => ({ intent: e, ...t }), Yt = "folder_management", zt = "remote_search", qt = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, Jt = 9e4, Qt = "installation-id";
1549
+ }, $n = (e, t) => ({ intent: e, ...t }), Rn = "folder_management", Dn = "remote_search", wn = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, Un = 9e4, Kn = "installation-id";
1241
1550
  export {
1242
- c as ACTIVITY_CATALOG,
1243
- Me as AI_ATTACHMENT_LIMITS,
1244
- Ut as AI_ATTACHMENT_MAX_PER_TURN,
1245
- Rt as AI_ATTACHMENT_TURN_BUDGET,
1246
- R as AI_VENDORS,
1247
- H as ActivityTypeRegistry,
1248
- Fe as BUILT_IN_ONLY,
1249
- tt as CLASSIFY_VARS,
1250
- ze as CORE_DIMENSIONS,
1251
- Oe as CommunicationScheme,
1252
- Tt as DEFAULT_MEMORY_BUDGET,
1253
- ae as DEFAULT_PHONE_REGION,
1254
- Yt as FEATURE_FOLDER_MANAGEMENT,
1255
- zt as FEATURE_REMOTE_SEARCH,
1256
- Qt as INSTALLATION_HEADER,
1257
- Xt as InteractionParticipantRole,
1258
- $e as MAX_ACTIONS,
1259
- De as MAX_BLOCKS,
1260
- Le as MAX_FIELDS,
1261
- xe as MAX_LIST_ITEMS,
1262
- It as MAX_MEMORY_BUDGET,
1263
- At as MAX_MEMORY_CHARS,
1264
- _t as MIN_MEMORY_BUDGET,
1265
- ee as PAUSED_RUN_STATUSES,
1266
- A as PHONE_REGIONS,
1267
- Jt as PRESENCE_ONLINE_WINDOW_MS,
1268
- Ft as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1269
- Bt as PROVIDER_FEATURE_MESSAGE_WINDOW,
1270
- pe as PUBLIC_EMAIL_DOMAINS,
1271
- ie as RELATED_SUBJECT_KINDS,
1272
- dt as SIGNATURE_INTENTS,
1273
- Ae as SUMMARY_MIN_LAST_CHARS,
1274
- be as SUMMARY_MIN_MESSAGES,
1275
- Z as TERMINAL_RUN_STATUSES,
1276
- et as TRIGGER_VARS,
1277
- qt as UNSUPPORTED,
1278
- Y as USAGE_DIMENSIONS,
1279
- z as USAGE_DIMENSION_IDS,
1280
- Q as actingIdentityKey,
1281
- Ue as activityIconOf,
1282
- Be as activityJoinUrl,
1283
- K as activitySnippet,
1284
- G as activityTextParams,
1285
- je as activityTimelineText,
1286
- Ye as activityTimestamp,
1287
- l as activityTypeInfo,
1288
- at as actorKey,
1289
- Te as aiAttachmentKind,
1290
- Pt as aiAttachmentRejection,
1291
- pt as aiVendorAcceptsAttachment,
1292
- lt as aiVendorDefaultModel,
1293
- st as aiVendorLabel,
1294
- ut as aiVendorNeedsBaseUrl,
1295
- ct as aiVendorsWith,
1296
- mt as applySignature,
1297
- Xe as buildActivityPreview,
1298
- Kt as buildChannelIntents,
1299
- Ge as carriesText,
1300
- jt as channelKindForScheme,
1301
- Pe as channelKindOf,
1302
- Lt as cleanMessageText,
1303
- Wt as defineIntent,
1304
- wt as disabledIntentsFromCapabilities,
1305
- Nt as emailDomain,
1306
- kt as endpointKey,
1307
- Vt as filterByEndpoint,
1308
- Gt as filterByIntent,
1309
- ve as filterByTargetScheme,
1310
- f as findAiVendor,
1311
- qe as flattenLocales,
1312
- F as floorToPeriod,
1313
- J as formatActingIdentity,
1314
- B as formatPeriod,
1315
- We as getActivitySeenUserIds,
1316
- ft as getContactEndpoints,
1317
- yt as getShortTitle,
1318
- Et as getUrgencyScore,
1319
- Ze as humanizeAction,
1320
- gt as isAssigned,
1321
- ht as isClosed,
1322
- bt as isInteractionUnseen,
1323
- xt as isLikelyBulk,
1324
- we as isMessageType,
1325
- ot as isPaused,
1326
- He as isPlaybookAuthoredType,
1327
- vt as isPublicEmailDomain,
1328
- Ke as isReplyableType,
1329
- rt as isRetryable,
1330
- te as isTerminal,
1331
- $t as isThreadLongEnough,
1332
- St as looksLikeEmail,
1333
- Ht as matchContactToIntents,
1334
- Ve as messageCountsAs,
1335
- Ot as needsPhoneRegion,
1336
- Re as normalizeBlocks,
1337
- U as normalizeEmail,
1338
- nt as parseActingIdentity,
1339
- Je as periodsInRange,
1340
- Ct as phoneSuffix,
1341
- Dt as plainTextFromMarkdown,
1342
- it as playbookActor,
1343
- y as readPath,
1344
- ue as registrableDomain,
1345
- Mt as relatedByDefault,
1346
- Ce as resolveAccountCapabilities,
1347
- b as resolveActivityText,
1348
- Se as resolveChannelIntents,
1349
- ne as resolveSignature,
1350
- w as stripHtml,
1351
- O as toE164,
1352
- q as usageMetricId,
1353
- Qe as usageMetrics
1551
+ f as ACTIVITY_CATALOG,
1552
+ tt as AI_ATTACHMENT_LIMITS,
1553
+ Tn as AI_ATTACHMENT_MAX_PER_TURN,
1554
+ _n as AI_ATTACHMENT_TURN_BUDGET,
1555
+ ne as AI_VENDORS,
1556
+ Ee as ALLOWED_LINK_SCHEMES,
1557
+ D as ARTIFACT_MAX_BLOCKS,
1558
+ xt as ARTIFACT_MAX_BODY_BYTES,
1559
+ M as ARTIFACT_MAX_CELL_LEN,
1560
+ P as ARTIFACT_MAX_KPI_ITEMS,
1561
+ w as ARTIFACT_MAX_LIST_ITEMS,
1562
+ K as ARTIFACT_MAX_TABLE_COLUMNS,
1563
+ U as ARTIFACT_MAX_TABLE_ROWS,
1564
+ Q as ARTIFACT_MAX_TEXT_LEN,
1565
+ ue as ActivityTypeRegistry,
1566
+ Tt as BUILT_IN_ONLY,
1567
+ Gt as CLASSIFY_VARS,
1568
+ Ct as CORE_DIMENSIONS,
1569
+ ot as CommunicationScheme,
1570
+ cn as DEFAULT_MEMORY_BUDGET,
1571
+ De as DEFAULT_PHONE_REGION,
1572
+ Rn as FEATURE_FOLDER_MANAGEMENT,
1573
+ Dn as FEATURE_REMOTE_SEARCH,
1574
+ Kn as INSTALLATION_HEADER,
1575
+ Ln as InteractionParticipantRole,
1576
+ pt as MAX_ACTIONS,
1577
+ lt as MAX_BLOCKS,
1578
+ ct as MAX_FIELDS,
1579
+ ut as MAX_LIST_ITEMS,
1580
+ ln as MAX_MEMORY_BUDGET,
1581
+ on as MAX_MEMORY_CHARS,
1582
+ sn as MIN_MEMORY_BUDGET,
1583
+ Oe as PAUSED_RUN_STATUSES,
1584
+ v as PHONE_REGIONS,
1585
+ Un as PRESENCE_ONLINE_WINDOW_MS,
1586
+ On as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1587
+ xn as PROVIDER_FEATURE_MESSAGE_WINDOW,
1588
+ je as PUBLIC_EMAIL_DOMAINS,
1589
+ Re as RELATED_SUBJECT_KINDS,
1590
+ Jt as SIGNATURE_INTENTS,
1591
+ Je as SUMMARY_MIN_LAST_CHARS,
1592
+ qe as SUMMARY_MIN_MESSAGES,
1593
+ xe as TERMINAL_RUN_STATUSES,
1594
+ Pt as TRIGGER_VARS,
1595
+ wn as UNSUPPORTED,
1596
+ he as USAGE_DIMENSIONS,
1597
+ ye as USAGE_DIMENSION_IDS,
1598
+ ke as actingIdentityKey,
1599
+ mt as activityIconOf,
1600
+ _t as activityJoinUrl,
1601
+ se as activitySnippet,
1602
+ le as activityTextParams,
1603
+ Et as activityTimelineText,
1604
+ Mt as activityTimestamp,
1605
+ d as activityTypeInfo,
1606
+ Bt as actorKey,
1607
+ et as aiAttachmentKind,
1608
+ In as aiAttachmentRejection,
1609
+ qt as aiVendorAcceptsAttachment,
1610
+ Wt as aiVendorDefaultModel,
1611
+ Xt as aiVendorLabel,
1612
+ Yt as aiVendorNeedsBaseUrl,
1613
+ zt as aiVendorsWith,
1614
+ Qt as applySignature,
1615
+ Lt as artifactBodyBytes,
1616
+ $t as artifactOutline,
1617
+ Rt as artifactToMarkdown,
1618
+ It as buildActivityPreview,
1619
+ Mn as buildChannelIntents,
1620
+ Dt as buildShareKeys,
1621
+ yt as carriesText,
1622
+ kn as channelKindForScheme,
1623
+ ft as channelKindOf,
1624
+ bn as cleanMessageText,
1625
+ $n as defineIntent,
1626
+ Sn as disabledIntentsFromCapabilities,
1627
+ mn as emailDomain,
1628
+ hn as endpointKey,
1629
+ Nn as filterByEndpoint,
1630
+ Cn as filterByIntent,
1631
+ rt as filterByTargetScheme,
1632
+ E as findAiVendor,
1633
+ Nt as flattenLocales,
1634
+ me as floorToPeriod,
1635
+ ve as formatActingIdentity,
1636
+ de as formatPeriod,
1637
+ St as getActivitySeenUserIds,
1638
+ Zt as getContactEndpoints,
1639
+ an as getShortTitle,
1640
+ nn as getUrgencyScore,
1641
+ Kt as humanizeAction,
1642
+ en as isAssigned,
1643
+ tn as isClosed,
1644
+ rn as isInteractionUnseen,
1645
+ An as isLikelyBulk,
1646
+ gt as isMessageType,
1647
+ Ft as isPaused,
1648
+ At as isPlaybookAuthoredType,
1649
+ fn as isPublicEmailDomain,
1650
+ ht as isReplyableType,
1651
+ Ht as isRetryable,
1652
+ Le as isTerminal,
1653
+ En as isThreadLongEnough,
1654
+ pn as looksLikeEmail,
1655
+ vn as matchContactToIntents,
1656
+ bt as messageCountsAs,
1657
+ gn as needsPhoneRegion,
1658
+ Ot as normalizeArtifactBlocks,
1659
+ dt as normalizeBlocks,
1660
+ ie as normalizeEmail,
1661
+ Vt as parseActingIdentity,
1662
+ vt as periodsInRange,
1663
+ dn as phoneSuffix,
1664
+ yn as plainTextFromMarkdown,
1665
+ jt as playbookActor,
1666
+ C as readPath,
1667
+ Ve as registrableDomain,
1668
+ un as relatedByDefault,
1669
+ it as resolveAccountCapabilities,
1670
+ N as resolveActivityText,
1671
+ nt as resolveChannelIntents,
1672
+ $e as resolveSignature,
1673
+ Se as sanitizeInline,
1674
+ te as shareKeyForTeam,
1675
+ ee as shareKeyForUser,
1676
+ wt as shareKeysForViewer,
1677
+ oe as stripHtml,
1678
+ F as toE164,
1679
+ Ut as toolSourceKinds,
1680
+ be as usageMetricId,
1681
+ kt as usageMetrics
1354
1682
  };