@opencxh/domain 1.141.0 → 1.142.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 ut = 10, pt = 10, dt = 10, mt = 5, re = /* @__PURE__ */ new Set([
1
+ const bt = 10, At = 10, Et = 10, _t = 5, re = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function T(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function ft(e, t = () => {
17
+ function Tt(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -77,19 +77,19 @@ function y(e) {
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 k(e) {
80
+ function x(e) {
81
81
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
82
82
  }
83
83
  function I(e) {
84
84
  return e?.split("@")?.[0] || e || "";
85
85
  }
86
- function A(e) {
86
+ function b(e) {
87
87
  return e.map((t) => t.name).join(", ");
88
88
  }
89
- function x(e) {
89
+ function k(e) {
90
90
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
91
91
  }
92
- const f = {
92
+ const m = {
93
93
  /* ---- voice ---- */
94
94
  VOICE_CALL_STARTED: {
95
95
  shape: "event",
@@ -123,7 +123,7 @@ const f = {
123
123
  channelKind: "voice",
124
124
  icon: "phone",
125
125
  snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
126
- timeline: (e) => `Call ended${k(e.payload.duration)}`
126
+ timeline: (e) => `Call ended${x(e.payload.duration)}`
127
127
  },
128
128
  VOICE_CALL_MISSED: {
129
129
  shape: "event",
@@ -204,7 +204,7 @@ const f = {
204
204
  replyable: !0,
205
205
  carriesText: !0,
206
206
  countsAs: "inbound_message",
207
- snippet: O
207
+ snippet: L
208
208
  },
209
209
  EMAIL_SENT: {
210
210
  shape: "message",
@@ -214,7 +214,7 @@ const f = {
214
214
  replyable: !0,
215
215
  carriesText: !0,
216
216
  countsAs: "outbound_message",
217
- snippet: O
217
+ snippet: L
218
218
  },
219
219
  /* ---- chat ---- */
220
220
  CHAT_MESSAGE_SENT: {
@@ -243,9 +243,9 @@ const f = {
243
243
  shape: "event",
244
244
  channelKind: "chat",
245
245
  icon: "message-circle",
246
- snippet: (e) => `${A(e.payload.members)} toegevoegd`,
246
+ snippet: (e) => `${b(e.payload.members)} toegevoegd`,
247
247
  timeline: (e) => {
248
- const t = A(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 f = {
253
253
  shape: "event",
254
254
  channelKind: "chat",
255
255
  icon: "message-circle",
256
- snippet: (e) => `${A(e.payload.members)} verlaten`,
256
+ snippet: (e) => `${b(e.payload.members)} verlaten`,
257
257
  timeline: (e) => {
258
- const t = A(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,7 +271,7 @@ const f = {
271
271
  channelKind: "chat",
272
272
  icon: "message-circle",
273
273
  snippet: () => "Gesprek gestart",
274
- timeline: (e) => `${x(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
274
+ timeline: (e) => `${k(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: {
@@ -279,7 +279,7 @@ const f = {
279
279
  channelKind: "chat",
280
280
  icon: "message-circle",
281
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)}`,
282
+ timeline: (e) => `${k(e.payload.callType)} ended${x(e.payload.duration)}`,
283
283
  joinUrl: (e) => e.payload.joinUrl
284
284
  },
285
285
  CHAT_EVENT: {
@@ -404,45 +404,45 @@ const f = {
404
404
  timeline: (e, t) => `Assigned by ${t}`
405
405
  }
406
406
  };
407
- function O(e) {
407
+ function L(e) {
408
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 d(e) {
412
- return f[e];
411
+ function f(e) {
412
+ return m[e];
413
413
  }
414
- function gt(e) {
415
- return d(e)?.icon ?? "circle";
414
+ function It(e) {
415
+ return f(e)?.icon ?? "circle";
416
416
  }
417
- function ht(e) {
418
- return d(e)?.channelKind;
417
+ function St(e) {
418
+ return f(e)?.channelKind;
419
419
  }
420
- function yt(e) {
421
- const t = d(e)?.shape;
420
+ function Mt(e) {
421
+ const t = f(e)?.shape;
422
422
  return t === "message" || t === "note";
423
423
  }
424
- function At(e) {
425
- return d(e)?.replyable === !0;
424
+ function Ct(e) {
425
+ return f(e)?.replyable === !0;
426
426
  }
427
- function bt(e) {
428
- return d(e)?.carriesText === !0;
427
+ function Nt(e) {
428
+ return f(e)?.carriesText === !0;
429
429
  }
430
- function Et(e) {
431
- return d(e)?.countsAs;
430
+ function vt(e) {
431
+ return f(e)?.countsAs;
432
432
  }
433
- function _t(e) {
434
- return d(e)?.playbookAuthored === !0;
433
+ function xt(e) {
434
+ return f(e)?.playbookAuthored === !0;
435
435
  }
436
436
  function se(e) {
437
- const t = d(e.type)?.snippet;
437
+ const t = f(e.type)?.snippet;
438
438
  return t ? t(e) : "";
439
439
  }
440
- function Tt(e, t) {
441
- const n = d(e.type)?.timeline;
440
+ function kt(e, t) {
441
+ const n = f(e.type)?.timeline;
442
442
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
443
443
  }
444
- function It(e) {
445
- const t = d(e.type)?.joinUrl;
444
+ function Lt(e) {
445
+ const t = f(e.type)?.joinUrl;
446
446
  return t ? t(e) : void 0;
447
447
  }
448
448
  function C(e, t) {
@@ -472,8 +472,8 @@ function le(e, t) {
472
472
  return { key: e.key, params: n };
473
473
  }
474
474
  const ce = (e) => e;
475
- function L(e) {
476
- const t = f[e];
475
+ function $(e) {
476
+ const t = m[e];
477
477
  return {
478
478
  type: e,
479
479
  shape: t.shape,
@@ -488,7 +488,7 @@ function L(e) {
488
488
  displayNameKey: t.displayNameKey
489
489
  };
490
490
  }
491
- function $(e) {
491
+ function O(e) {
492
492
  return {
493
493
  type: e.type,
494
494
  shape: e.shape,
@@ -507,17 +507,17 @@ class ue {
507
507
  constructor(t = [], n = ce) {
508
508
  this.translate = n;
509
509
  for (const a of t)
510
- a?.type && (a.type in f || this.declared.has(a.type) || this.declared.set(a.type, a));
510
+ a?.type && (a.type in m || 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 f) return L(t);
514
+ if (t in m) return $(t);
515
515
  const n = this.declared.get(t);
516
- return n ? $(n) : void 0;
516
+ return n ? O(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(f).filter((a) => f[a].triggerable).map(L), n = [...this.declared.values()].map($).filter((a) => a.triggerable);
520
+ const t = Object.keys(m).filter((a) => m[a].triggerable).map($), n = [...this.declared.values()].map(O).filter((a) => a.triggerable);
521
521
  return [...t, ...n];
522
522
  }
523
523
  /**
@@ -526,14 +526,14 @@ class ue {
526
526
  * typenaam — dezelfde regel die de feed altijd al toonde voor onbekende types.
527
527
  */
528
528
  timelineText(t, n) {
529
- const a = f[t.type];
529
+ const a = m[t.type];
530
530
  if (a?.timeline) return a.timeline(t, n);
531
531
  const i = this.declared.get(t.type);
532
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 = f[t.type];
536
+ const n = m[t.type];
537
537
  if (n?.snippet) return n.snippet(t);
538
538
  const a = this.declared.get(t.type);
539
539
  return N(a?.text, t, this.translate) ?? "";
@@ -552,12 +552,12 @@ class ue {
552
552
  return this.translate;
553
553
  }
554
554
  }
555
- const St = new ue(), R = 140;
555
+ const $t = new ue(), R = 140;
556
556
  function pe(e) {
557
557
  const t = e.trim();
558
558
  return t.length <= R ? t : t.slice(0, R - 1).trimEnd() + "…";
559
559
  }
560
- function Mt(e, t) {
560
+ function Ot(e, t) {
561
561
  const n = le(t?.text, e), a = t ? N(t.text, e, (i) => i) : null;
562
562
  return {
563
563
  activityId: e.id,
@@ -569,16 +569,16 @@ function Mt(e, t) {
569
569
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
570
570
  };
571
571
  }
572
- function Ct(e, t, n = []) {
572
+ function Rt(e, t, n = []) {
573
573
  const a = e.createdAt;
574
574
  if (!a) return [];
575
575
  const i = new Set(n);
576
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 Nt(e) {
578
+ function wt(e) {
579
579
  return e.createdAt ?? 0;
580
580
  }
581
- const vt = [
581
+ const Dt = [
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,7 +588,7 @@ const vt = [
588
588
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
589
589
  { id: "time", label: "Tijd", labelSource: "raw" }
590
590
  ];
591
- function kt(e) {
591
+ function Ut(e) {
592
592
  const t = [];
593
593
  for (const n of Object.keys(e))
594
594
  for (const a of Object.keys(e[n]))
@@ -602,14 +602,14 @@ function de(e, t) {
602
602
  const n = new Date(e), a = `${n.getUTCFullYear()}-${S(n.getUTCMonth() + 1)}-${S(n.getUTCDate())}`;
603
603
  return t === "day" ? a : `${a}T${S(n.getUTCHours())}`;
604
604
  }
605
- function me(e, t) {
605
+ function fe(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 fe = 36e5, ge = 864e5;
610
- function xt(e, t, n) {
611
- const a = n === "hour" ? fe : ge, i = [];
612
- for (let r = me(e, n); r <= t; r += a)
609
+ const me = 36e5, ge = 864e5;
610
+ function Pt(e, t, n) {
611
+ const a = n === "hour" ? me : ge, i = [];
612
+ for (let r = fe(e, n); r <= t; r += a)
613
613
  i.push(de(r, n));
614
614
  return i;
615
615
  }
@@ -617,12 +617,12 @@ const he = [
617
617
  { id: "resource", label: "Resource", labelSource: "raw" },
618
618
  { id: "origin", label: "Herkomst", labelSource: "raw" }
619
619
  ], ye = he.map((e) => e.id);
620
- function Ae(e, t) {
620
+ function be(e, t) {
621
621
  return `${e}.usage.${t}`;
622
622
  }
623
- function Ot(e, t) {
623
+ function Kt(e, t) {
624
624
  return t.map((n) => ({
625
- id: Ae(e, n.unit),
625
+ id: be(e, n.unit),
626
626
  label: n.label,
627
627
  category: "Verbruik",
628
628
  valueType: n.valueType ?? "count",
@@ -635,7 +635,7 @@ function Ot(e, t) {
635
635
  ]
636
636
  }));
637
637
  }
638
- const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), D = 200, w = 100, U = 200, K = 12, P = 4, Q = 4e3, M = 500, Lt = 256 * 1024, be = /* @__PURE__ */ new Set([
638
+ const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), w = 200, D = 100, U = 200, P = 12, K = 4, Q = 4e3, M = 500, Gt = 256 * 1024, Ae = /* @__PURE__ */ new Set([
639
639
  "heading",
640
640
  "paragraph",
641
641
  "list",
@@ -671,8 +671,8 @@ function Ie(e) {
671
671
  t += e[n], n += 1;
672
672
  continue;
673
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;
674
+ const s = e.slice(i, r), l = e.slice(r + 2, o).trim().split(/\s+/)[0] ?? "";
675
+ t += a || !Z(l) ? s : e.slice(n, o + 1), n = o + 1;
676
676
  }
677
677
  return t;
678
678
  }
@@ -695,7 +695,7 @@ function Se(e) {
695
695
  (t, n, a) => Z(a) ? t : ""
696
696
  );
697
697
  }
698
- function c(e, t = Q) {
698
+ function u(e, t = Q) {
699
699
  return typeof e == "string" ? Se(e).slice(0, t) : "";
700
700
  }
701
701
  function Me(e, t = Q) {
@@ -704,25 +704,25 @@ function Me(e, t = Q) {
704
704
  function Ce(e, t = "info") {
705
705
  return typeof e == "string" && J.has(e) ? e : t;
706
706
  }
707
- function $t(e, t = () => {
707
+ function Bt(e, t = () => {
708
708
  }) {
709
709
  if (!Array.isArray(e)) return [];
710
710
  const n = [];
711
711
  for (const a of e) {
712
- if (n.length >= D) {
713
- t("more than " + D + " blocks; the rest was dropped");
712
+ if (n.length >= w) {
713
+ t("more than " + w + " blocks; the rest was dropped");
714
714
  break;
715
715
  }
716
716
  if (!a || typeof a != "object") continue;
717
717
  const i = a;
718
- if (!be.has(i.type)) {
718
+ if (!Ae.has(i.type)) {
719
719
  t("unknown block type " + String(i.type));
720
720
  continue;
721
721
  }
722
722
  const r = typeof i.block_id == "string" ? { block_id: i.block_id } : {};
723
723
  switch (i.type) {
724
724
  case "heading": {
725
- const o = c(i.text);
725
+ const o = u(i.text);
726
726
  if (!o) {
727
727
  t("a heading without text");
728
728
  continue;
@@ -732,7 +732,7 @@ function $t(e, t = () => {
732
732
  break;
733
733
  }
734
734
  case "paragraph": {
735
- const o = c(i.text);
735
+ const o = u(i.text);
736
736
  if (!o) {
737
737
  t("a paragraph without text");
738
738
  continue;
@@ -741,7 +741,7 @@ function $t(e, t = () => {
741
741
  break;
742
742
  }
743
743
  case "quote": {
744
- const o = c(i.text);
744
+ const o = u(i.text);
745
745
  if (!o) {
746
746
  t("a quote without text");
747
747
  continue;
@@ -764,71 +764,71 @@ function $t(e, t = () => {
764
764
  break;
765
765
  case "list": {
766
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");
767
+ for (const p of o) {
768
+ if (s.length >= D) {
769
+ t("more than " + D + " list items");
770
770
  break;
771
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 });
772
+ const d = u(p?.text);
773
+ if (!d) continue;
774
+ const c = u(p?.lead, 200);
775
+ s.push(c ? { lead: c, text: d } : { text: d });
776
776
  }
777
777
  if (s.length === 0) {
778
778
  t("a list without usable items");
779
779
  continue;
780
780
  }
781
- const m = i.style === "numbered" ? "numbered" : "bulleted";
782
- n.push({ ...r, type: "list", style: m, items: s });
781
+ const l = i.style === "numbered" ? "numbered" : "bulleted";
782
+ n.push({ ...r, type: "list", style: l, items: s });
783
783
  break;
784
784
  }
785
785
  case "table": {
786
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");
787
+ for (const c of o) {
788
+ if (s.length >= P) {
789
+ t("more than " + P + " table columns");
790
790
  break;
791
791
  }
792
- const h = c(l?.label, M), _ = l?.align === "right" ? "right" : void 0;
792
+ const h = u(c?.label, M), _ = c?.align === "right" ? "right" : void 0;
793
793
  s.push(_ ? { label: h, align: _ } : { label: h });
794
794
  }
795
795
  if (s.length === 0) {
796
796
  t("a table without columns");
797
797
  continue;
798
798
  }
799
- const m = Array.isArray(i.rows) ? i.rows : [], u = [];
800
- for (const l of m) {
801
- if (u.length >= U) {
799
+ const l = Array.isArray(i.rows) ? i.rows : [], p = [];
800
+ for (const c of l) {
801
+ if (p.length >= U) {
802
802
  t("more than " + U + " table rows");
803
803
  break;
804
804
  }
805
- const h = Array.isArray(l) ? l : [];
806
- u.push(
807
- s.map((_, ae) => c(h[ae], M))
805
+ const h = Array.isArray(c) ? c : [];
806
+ p.push(
807
+ s.map((_, ae) => u(h[ae], M))
808
808
  );
809
809
  }
810
- const p = c(i.caption, M);
810
+ const d = u(i.caption, M);
811
811
  n.push({
812
812
  ...r,
813
813
  type: "table",
814
814
  columns: s,
815
- rows: u,
816
- ...p ? { caption: p } : {}
815
+ rows: p,
816
+ ...d ? { caption: d } : {}
817
817
  });
818
818
  break;
819
819
  }
820
820
  case "kpi": {
821
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");
822
+ for (const l of o) {
823
+ if (s.length >= K) {
824
+ t("more than " + K + " kpi items");
825
825
  break;
826
826
  }
827
- const u = c(m?.value, 40), p = c(m?.label, 80);
828
- if (!u || !p) continue;
829
- const l = m?.tone;
827
+ const p = u(l?.value, 40), d = u(l?.label, 80);
828
+ if (!p || !d) continue;
829
+ const c = l?.tone;
830
830
  s.push(
831
- typeof l == "string" && J.has(l) ? { value: u, label: p, tone: l } : { value: u, label: p }
831
+ typeof c == "string" && J.has(c) ? { value: p, label: d, tone: c } : { value: p, label: d }
832
832
  );
833
833
  }
834
834
  if (s.length === 0) {
@@ -839,12 +839,12 @@ function $t(e, t = () => {
839
839
  break;
840
840
  }
841
841
  case "callout": {
842
- const o = c(i.text);
842
+ const o = u(i.text);
843
843
  if (!o) {
844
844
  t("a callout without text");
845
845
  continue;
846
846
  }
847
- const s = c(i.title, 200);
847
+ const s = u(i.title, 200);
848
848
  n.push({
849
849
  ...r,
850
850
  type: "callout",
@@ -858,25 +858,25 @@ function $t(e, t = () => {
858
858
  }
859
859
  return n;
860
860
  }
861
- function Rt(e) {
861
+ function jt(e) {
862
862
  return JSON.stringify(e).length;
863
863
  }
864
- function Dt(e) {
864
+ function Vt(e) {
865
865
  return {
866
866
  blocks: e.length,
867
867
  types: e.map((t) => t.type),
868
868
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
869
869
  };
870
870
  }
871
- function V(e) {
871
+ function B(e) {
872
872
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
873
873
  }
874
874
  function j(e, t, n) {
875
875
  const a = e.map((i, r) => n?.[r] === "right" ? "---:" : "---");
876
876
  return [
877
- `| ${e.map(V).join(" | ")} |`,
877
+ `| ${e.map(B).join(" | ")} |`,
878
878
  `| ${a.join(" | ")} |`,
879
- ...t.map((i) => `| ${i.map(V).join(" | ")} |`)
879
+ ...t.map((i) => `| ${i.map(B).join(" | ")} |`)
880
880
  ];
881
881
  }
882
882
  function Ne(e) {
@@ -913,7 +913,7 @@ function Ne(e) {
913
913
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
914
914
  }
915
915
  }
916
- function wt(e, t) {
916
+ function Ht(e, t) {
917
917
  const n = [], a = e.some((i) => i.type === "heading" && i.level === 1);
918
918
  t && !a && n.push(`# ${t}`);
919
919
  for (const i of e) {
@@ -927,25 +927,25 @@ function wt(e, t) {
927
927
  `;
928
928
  }
929
929
  const ee = (e) => `user:${e}`, te = (e) => `team:${e}`;
930
- function Ut(e) {
930
+ function Ft(e) {
931
931
  const t = /* @__PURE__ */ new Set();
932
932
  for (const n of e ?? [])
933
933
  n?.id && (n.kind === "user" && t.add(ee(n.id)), n.kind === "team" && t.add(te(n.id)));
934
934
  return [...t].sort();
935
935
  }
936
- function Kt(e, t) {
936
+ function Wt(e, t) {
937
937
  return [ee(e), ...t.map(te)];
938
938
  }
939
- function Pt(e) {
939
+ function Xt(e) {
940
940
  const t = /* @__PURE__ */ new Set();
941
941
  for (const n of e ?? [])
942
942
  n?.kind && t.add(n.kind);
943
943
  return [...t];
944
944
  }
945
- function Gt(e) {
945
+ function zt(e) {
946
946
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
947
947
  }
948
- const Vt = [
948
+ const Yt = [
949
949
  { name: "text", type: "string" },
950
950
  { name: "subject", type: "string" },
951
951
  { name: "from", type: "string" },
@@ -968,7 +968,7 @@ const Vt = [
968
968
  // een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
969
969
  { name: "contactId", type: "string" },
970
970
  { name: "companyId", type: "string" }
971
- ], jt = {
971
+ ], qt = {
972
972
  topics: [
973
973
  { name: "topic", type: "string" },
974
974
  { name: "confidence", type: "number" }
@@ -989,7 +989,7 @@ function ve(e) {
989
989
  return "org";
990
990
  }
991
991
  }
992
- function Bt(e) {
992
+ function Jt(e) {
993
993
  if (typeof e != "string") return;
994
994
  const t = e.trim();
995
995
  if (t === "org") return { kind: "org" };
@@ -1001,10 +1001,10 @@ function Bt(e) {
1001
1001
  if (a === "team") return { kind: "team", teamId: i };
1002
1002
  }
1003
1003
  }
1004
- function ke(e) {
1004
+ function xe(e) {
1005
1005
  return ve(e);
1006
1006
  }
1007
- function Ht(e) {
1007
+ function Qt(e) {
1008
1008
  switch (e.kind) {
1009
1009
  case "personal":
1010
1010
  return { kind: "user", userId: e.userId };
@@ -1014,18 +1014,40 @@ function Ht(e) {
1014
1014
  return { kind: "org" };
1015
1015
  }
1016
1016
  }
1017
- function Ft(e) {
1018
- return ke(e);
1017
+ function Zt(e) {
1018
+ return xe(e);
1019
1019
  }
1020
- const xe = ["done", "escalated", "failed", "timed_out", "stopped"], Oe = ["awaiting_approval", "awaiting_reply"];
1021
- function Le(e) {
1022
- return xe.includes(e);
1020
+ const ke = ["done", "escalated", "failed", "timed_out", "stopped"], Le = ["awaiting_approval", "awaiting_reply"];
1021
+ function $e(e) {
1022
+ return ke.includes(e);
1023
1023
  }
1024
- function Xt(e) {
1025
- return Le(e);
1024
+ function en(e) {
1025
+ return $e(e);
1026
1026
  }
1027
- function Wt(e) {
1028
- return Oe.includes(e);
1027
+ function tn(e) {
1028
+ return Le.includes(e);
1029
+ }
1030
+ function nn(e, t) {
1031
+ const n = e.labels ?? [];
1032
+ return n.find((a) => a.locale === t)?.label ?? n[0]?.label ?? e.url;
1033
+ }
1034
+ function an(e, t, n) {
1035
+ const a = e.translations ?? [];
1036
+ return a.find((i) => i.locale === t) ?? (n ? a.find((i) => i.locale === n) : void 0) ?? { locale: t };
1037
+ }
1038
+ const Oe = "en";
1039
+ function Re(e) {
1040
+ return e.defaultLocale || e.locale || Oe;
1041
+ }
1042
+ function rn(e) {
1043
+ const t = /* @__PURE__ */ new Set(), n = [];
1044
+ for (const a of [Re(e), ...e.locales ?? []])
1045
+ !a || t.has(a) || (t.add(a), n.push(a));
1046
+ return n;
1047
+ }
1048
+ function on(e, t, n) {
1049
+ const a = e.translations ?? [];
1050
+ return a.find((i) => i.locale === t)?.name ?? (n ? a.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1029
1051
  }
1030
1052
  const ne = [
1031
1053
  {
@@ -1121,51 +1143,51 @@ const ne = [
1121
1143
  function E(e) {
1122
1144
  return ne.find((t) => t.id === e);
1123
1145
  }
1124
- function zt(e) {
1146
+ function sn(e) {
1125
1147
  return E(e)?.label ?? e;
1126
1148
  }
1127
- function Yt(e, t = "gpt-5-mini") {
1149
+ function ln(e, t = "gpt-5-mini") {
1128
1150
  return E(e)?.defaultModel ?? t;
1129
1151
  }
1130
- function qt(e) {
1152
+ function cn(e) {
1131
1153
  return ne.filter((t) => t.capabilities.includes(e));
1132
1154
  }
1133
- function Jt(e) {
1155
+ function un(e) {
1134
1156
  const t = E(e);
1135
1157
  return !!t && !t.baseUrl;
1136
1158
  }
1137
- function Qt(e, t) {
1159
+ function pn(e, t) {
1138
1160
  return t === "text" ? !0 : E(e)?.attachmentKinds?.includes(t) === !0;
1139
1161
  }
1140
- const Zt = /* @__PURE__ */ new Set(["mail", "message"]);
1141
- function $e(e, t) {
1162
+ const dn = /* @__PURE__ */ new Set(["mail", "message"]);
1163
+ function we(e, t) {
1142
1164
  const n = e.settings?.signatures?.[t];
1143
1165
  return !n || !n.enabled || !n.body || n.body.trim() === "" ? null : n;
1144
1166
  }
1145
- function en(e, t, n, a = "html") {
1167
+ function fn(e, t, n, a = "html") {
1146
1168
  if (!e) return n;
1147
- const i = $e(e, t);
1169
+ const i = we(e, t);
1148
1170
  return i ? `${n}${a === "text" ? `
1149
1171
 
1150
1172
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1151
1173
  }
1152
- function tn(e) {
1174
+ function mn(e) {
1153
1175
  return e.endpoints ?? [];
1154
1176
  }
1155
- const nn = (e) => !!e.assignedUserId || !!e.assignedInboxId, an = (e) => e.status === "closed", rn = (e) => ({
1177
+ const gn = (e) => !!e.assignedUserId || !!e.assignedInboxId, hn = (e) => e.status === "closed", yn = (e) => ({
1156
1178
  urgent: 10,
1157
1179
  high: 5,
1158
1180
  normal: 2,
1159
1181
  low: 1
1160
- })[e.priority] || 0, on = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1161
- function sn(e, t) {
1182
+ })[e.priority] || 0, bn = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1183
+ function An(e, t) {
1162
1184
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1163
1185
  }
1164
- const ln = 2e3, cn = 500, un = 12e3, pn = 4e3, Re = ["contact", "company"];
1165
- function dn(e) {
1186
+ const En = 2e3, _n = 500, Tn = 12e3, In = 4e3, De = ["contact", "company"];
1187
+ function Sn(e) {
1166
1188
  if (!e) return !1;
1167
1189
  const t = e.slice(0, e.indexOf(":"));
1168
- return Re.includes(t);
1190
+ return De.includes(t);
1169
1191
  }
1170
1192
  const v = {
1171
1193
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
@@ -1190,38 +1212,38 @@ const v = {
1190
1212
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
1191
1213
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
1192
1214
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
1193
- }, De = "NL", we = 15, Ue = 8, Ke = Array.from(
1215
+ }, Ue = "NL", Pe = 15, Ke = 8, Ge = Array.from(
1194
1216
  new Set(Object.values(v).map((e) => e.callingCode))
1195
1217
  ).sort((e, t) => t.length - e.length);
1196
- function B(e) {
1218
+ function V(e) {
1197
1219
  if (e)
1198
1220
  return v[e.trim().toUpperCase()];
1199
1221
  }
1200
- function b(e, t) {
1222
+ function A(e, t) {
1201
1223
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
1202
1224
  }
1203
1225
  function H(e) {
1204
- if (e.length > we) return null;
1205
- for (const t of Ke) {
1226
+ if (e.length > Pe) return null;
1227
+ for (const t of Ge) {
1206
1228
  if (!e.startsWith(t)) continue;
1207
1229
  const n = e.slice(t.length);
1208
1230
  for (const a of Object.values(v)) {
1209
1231
  if (a.callingCode !== t) continue;
1210
1232
  const i = a.trunkPrefix, r = i && n.startsWith(i) ? n.slice(i.length) : n;
1211
- if (b(r, a)) return `+${t}${r}`;
1233
+ if (A(r, a)) return `+${t}${r}`;
1212
1234
  }
1213
1235
  return null;
1214
1236
  }
1215
- return e.length < Ue ? null : `+${e}`;
1237
+ return e.length < Ke ? null : `+${e}`;
1216
1238
  }
1217
- function Pe(e) {
1239
+ function Be(e) {
1218
1240
  let t = e.trim();
1219
1241
  const n = t.match(/^(sips?|tel|whatsapp):/i);
1220
1242
  n && (t = t.slice(n[0].length));
1221
1243
  const a = t.indexOf("@");
1222
1244
  return a >= 0 && (t = t.slice(0, a)), t.trim();
1223
1245
  }
1224
- function mn(e) {
1246
+ function Mn(e) {
1225
1247
  if (!e) return !1;
1226
1248
  const t = e.indexOf("@");
1227
1249
  if (t <= 0) return !1;
@@ -1230,26 +1252,26 @@ function mn(e) {
1230
1252
  }
1231
1253
  function F(e, t) {
1232
1254
  if (!e) return null;
1233
- const n = Pe(e);
1255
+ const n = Be(e);
1234
1256
  if (!n) return null;
1235
1257
  const a = n.startsWith("+"), i = n.replace(/\D/g, "");
1236
1258
  if (!i) return null;
1237
1259
  if (a) return H(i);
1238
1260
  if (i.startsWith("00")) return H(i.slice(2));
1239
- const r = B(t) ?? B(De);
1261
+ const r = V(t) ?? V(Ue);
1240
1262
  if (!r) return null;
1241
1263
  const o = r.trunkPrefix;
1242
1264
  if (o && i.startsWith(o)) {
1243
1265
  const s = i.slice(o.length);
1244
- return b(s, r) ? `+${r.callingCode}${s}` : null;
1266
+ return A(s, r) ? `+${r.callingCode}${s}` : null;
1245
1267
  }
1246
1268
  if (i.startsWith(r.callingCode)) {
1247
1269
  const s = i.slice(r.callingCode.length);
1248
- if (b(s, r)) return `+${r.callingCode}${s}`;
1270
+ if (A(s, r)) return `+${r.callingCode}${s}`;
1249
1271
  }
1250
- return !o && b(i, r) ? `+${r.callingCode}${i}` : null;
1272
+ return !o && A(i, r) ? `+${r.callingCode}${i}` : null;
1251
1273
  }
1252
- function fn(e, t = 9) {
1274
+ function Cn(e, t = 9) {
1253
1275
  const n = (e ?? "").replace(/\D/g, "");
1254
1276
  return n.length < t ? null : n.slice(-t);
1255
1277
  }
@@ -1260,11 +1282,11 @@ function ie(e) {
1260
1282
  const a = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
1261
1283
  return !a || !i.includes(".") ? null : `${a}@${i}`;
1262
1284
  }
1263
- function gn(e) {
1285
+ function Nn(e) {
1264
1286
  const t = ie(e);
1265
1287
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
1266
1288
  }
1267
- const Ge = /* @__PURE__ */ new Set([
1289
+ const je = /* @__PURE__ */ new Set([
1268
1290
  "co.uk",
1269
1291
  "org.uk",
1270
1292
  "gov.uk",
@@ -1279,9 +1301,9 @@ function Ve(e) {
1279
1301
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
1280
1302
  if (t.length < 2) return null;
1281
1303
  const n = t.slice(-2).join(".");
1282
- return Ge.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1304
+ return je.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1283
1305
  }
1284
- const je = /* @__PURE__ */ new Set([
1306
+ const He = /* @__PURE__ */ new Set([
1285
1307
  "gmail.com",
1286
1308
  "googlemail.com",
1287
1309
  "outlook.com",
@@ -1326,16 +1348,16 @@ const je = /* @__PURE__ */ new Set([
1326
1348
  "proximus.be",
1327
1349
  "scarlet.be"
1328
1350
  ]);
1329
- function hn(e) {
1351
+ function vn(e) {
1330
1352
  const t = Ve(e);
1331
- return t ? je.has(t) : !1;
1353
+ return t ? He.has(t) : !1;
1332
1354
  }
1333
- function yn(e) {
1355
+ function xn(e) {
1334
1356
  if (!e) return !1;
1335
1357
  const t = e.trim().toLowerCase();
1336
1358
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
1337
1359
  }
1338
- function An(e, t, n) {
1360
+ function kn(e, t, n) {
1339
1361
  if (!e || !t) return null;
1340
1362
  const a = e.trim().toLowerCase();
1341
1363
  if (a === "tel" || a === "sms" || a === "whatsapp") {
@@ -1353,17 +1375,17 @@ function An(e, t, n) {
1353
1375
  const i = t.trim().toLowerCase();
1354
1376
  return i ? `${a}:${i}` : null;
1355
1377
  }
1356
- const Be = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, He = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1357
- function bn(e) {
1378
+ const Fe = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, We = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1379
+ function Ln(e) {
1358
1380
  if (typeof e != "string" || !e) return "";
1359
1381
  let t = e;
1360
1382
  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(`
1361
1383
  `).map(
1362
1384
  (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,}$/, "")
1363
1385
  ).join(`
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();
1386
+ `), t = t.replace(Fe, "$2"), t = t.replace(We, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1365
1387
  }
1366
- const Fe = [
1388
+ const Xe = [
1367
1389
  /<blockquote/i,
1368
1390
  /class="?gmail_quote/i,
1369
1391
  // Gmail quote container
@@ -1376,17 +1398,17 @@ const Fe = [
1376
1398
  // Outlook underscore separator before "From:"
1377
1399
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
1378
1400
  // Gmail "On <date> <name> wrote:"
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) {
1401
+ ], W = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ze = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1402
+ function Ye(e) {
1381
1403
  const t = e.split(`
1382
1404
  `);
1383
1405
  for (let n = 0; n < t.length; n++)
1384
- if (Xe.test(t[n]) || X.test(t[n]) && t.slice(n + 1, n + 4).some((a) => X.test(a)))
1406
+ if (ze.test(t[n]) || W.test(t[n]) && t.slice(n + 1, n + 4).some((a) => W.test(a)))
1385
1407
  return t.slice(0, n).join(`
1386
1408
  `).trim();
1387
1409
  return e;
1388
1410
  }
1389
- function W(e) {
1411
+ function X(e) {
1390
1412
  let t = e;
1391
1413
  return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
1392
1414
  `), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
@@ -1406,26 +1428,26 @@ function q(e) {
1406
1428
 
1407
1429
  `).trim();
1408
1430
  }
1409
- function En(e) {
1431
+ function $n(e) {
1410
1432
  if (typeof e != "string" || !e) return "";
1411
1433
  let t = e.length;
1412
- for (const r of Fe) {
1434
+ for (const r of Xe) {
1413
1435
  const o = e.search(r);
1414
1436
  o >= 0 && o < t && (t = o);
1415
1437
  }
1416
1438
  const n = e.slice(0, t);
1417
- let a = q(Y(W(n)));
1418
- return a || (a = q(Y(W(e)))), We(a) || a;
1439
+ let a = q(Y(X(n)));
1440
+ return a || (a = q(Y(X(e)))), Ye(a) || a;
1419
1441
  }
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 _n(e, t) {
1422
- return !!(e && ze.test(e) || t && Ye.test(t));
1442
+ const qe = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Je = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1443
+ function On(e, t) {
1444
+ return !!(e && qe.test(e) || t && Je.test(t));
1423
1445
  }
1424
- const qe = 3, Je = 600;
1425
- function Tn(e, t) {
1426
- return e >= qe || t >= Je;
1446
+ const Qe = 3, Ze = 600;
1447
+ function Rn(e, t) {
1448
+ return e >= Qe || t >= Ze;
1427
1449
  }
1428
- const Qe = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Ze = /* @__PURE__ */ new Set([
1450
+ const et = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), tt = /* @__PURE__ */ new Set([
1429
1451
  "text/plain",
1430
1452
  "text/markdown",
1431
1453
  "text/csv",
@@ -1434,29 +1456,29 @@ const Qe = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1434
1456
  "application/xml",
1435
1457
  "text/xml"
1436
1458
  ]);
1437
- function et(e) {
1459
+ function nt(e) {
1438
1460
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1439
- return t ? Qe.has(t) ? "image" : t === "application/pdf" ? "pdf" : Ze.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1461
+ return t ? et.has(t) ? "image" : t === "application/pdf" ? "pdf" : tt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1440
1462
  }
1441
- const g = 1024 * 1024, tt = {
1463
+ const g = 1024 * 1024, it = {
1442
1464
  image: 5 * g,
1443
1465
  pdf: 20 * g,
1444
1466
  text: 1 * g,
1445
1467
  audio: 20 * g
1446
- }, In = 25 * g, Sn = 5;
1447
- function Mn(e, t) {
1448
- const n = et(e);
1449
- return n === "unsupported" ? "unsupported" : t > tt[n] ? "too-large" : null;
1468
+ }, wn = 25 * g, Dn = 5;
1469
+ function Un(e, t) {
1470
+ const n = nt(e);
1471
+ return n === "unsupported" ? "unsupported" : t > it[n] ? "too-large" : null;
1450
1472
  }
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]));
1473
+ function at(e, t) {
1474
+ const n = new Set(e.disabledIntents ?? []), a = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => ot(o, a[o.intent]));
1453
1475
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
1454
1476
  const r = new Set(i.map((o) => o.intent));
1455
1477
  for (const o of e.extraIntents)
1456
1478
  r.has(o.intent) || (i.push(o), r.add(o.intent));
1457
1479
  return i;
1458
1480
  }
1459
- function it(e, t) {
1481
+ function rt(e, t) {
1460
1482
  const n = {};
1461
1483
  for (const a of e.intents) {
1462
1484
  if (!a.togglable) continue;
@@ -1465,46 +1487,46 @@ function it(e, t) {
1465
1487
  }
1466
1488
  return n;
1467
1489
  }
1468
- function Cn(e, t) {
1469
- const n = it(e, t);
1490
+ function Pn(e, t) {
1491
+ const n = rt(e, t);
1470
1492
  return Object.entries(n).filter(([, a]) => !a).map(([a]) => a);
1471
1493
  }
1472
- function at(e, t) {
1494
+ function ot(e, t) {
1473
1495
  return t ? {
1474
1496
  intent: t.intent ?? e.intent,
1475
1497
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1476
1498
  transport: t.transport ?? e.transport
1477
1499
  } : e;
1478
1500
  }
1479
- function Nn(e, t) {
1501
+ function Kn(e, t) {
1480
1502
  const n = [];
1481
1503
  for (const a of e) {
1482
1504
  if (!a.enabled) continue;
1483
1505
  const i = t[a.providerId];
1484
1506
  if (i)
1485
- for (const r of nt(a, i))
1507
+ for (const r of at(a, i))
1486
1508
  n.push({ channel: a, description: i, capability: r });
1487
1509
  }
1488
1510
  return n;
1489
1511
  }
1490
- function vn(e, t) {
1512
+ function Gn(e, t) {
1491
1513
  return t.filter((n) => n.capability.intent === e);
1492
1514
  }
1493
- function rt(e, t) {
1515
+ function st(e, t) {
1494
1516
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1495
1517
  }
1496
- function kn(e, t) {
1497
- return rt(e.scheme, t);
1518
+ function Bn(e, t) {
1519
+ return st(e.scheme, t);
1498
1520
  }
1499
- function xn(e, t, n) {
1521
+ function jn(e, t, n) {
1500
1522
  const a = [];
1501
1523
  for (const i of e)
1502
1524
  for (const r of n)
1503
1525
  r.capability.intent === t && r.capability.targetSchemes.includes(i.scheme) && a.push({ channelIntent: r, endpoint: i });
1504
1526
  return a;
1505
1527
  }
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 = {
1528
+ var lt = /* @__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))(lt || {});
1529
+ const ct = {
1508
1530
  mailto: "mail",
1509
1531
  sip: "tel",
1510
1532
  tel: "tel",
@@ -1526,10 +1548,10 @@ const st = {
1526
1548
  id: "note",
1527
1549
  custom: "note"
1528
1550
  };
1529
- function On(e) {
1530
- return e ? st[e] ?? "note" : "note";
1551
+ function Vn(e) {
1552
+ return e ? ct[e] ?? "note" : "note";
1531
1553
  }
1532
- const Ln = "message_window", $n = "message_templates", Rn = {
1554
+ const Hn = "message_window", Fn = "message_templates", Wn = {
1533
1555
  // E-mail
1534
1556
  FROM: "from",
1535
1557
  TO: "to",
@@ -1546,149 +1568,211 @@ const Ln = "message_window", $n = "message_templates", Rn = {
1546
1568
  // Voice/conference
1547
1569
  HOST: "host",
1548
1570
  PARTICIPANT: "participant"
1549
- }, Dn = (e, t) => ({ intent: e, ...t }), wn = "folder_management", Un = "remote_search", Kn = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, lt = "auth";
1550
- function ct(e) {
1571
+ }, Xn = (e, t) => ({ intent: e, ...t }), zn = "folder_management", Yn = "remote_search", qn = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, ut = "auth";
1572
+ function pt(e) {
1551
1573
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
1552
1574
  return t ? t[1] : null;
1553
1575
  }
1554
- function Pn(e) {
1555
- const t = ct(e);
1556
- return t ? t !== lt : typeof e == "string" && e.startsWith("/wake");
1576
+ function Jn(e) {
1577
+ const t = pt(e);
1578
+ return t ? t !== ut : typeof e == "string" && e.startsWith("/wake");
1579
+ }
1580
+ function dt(e) {
1581
+ return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1582
+ }
1583
+ function ft(e) {
1584
+ const n = e.split("/").filter(Boolean).map((a) => a.startsWith(":") ? a.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + dt(a)).join("");
1585
+ return new RegExp(`^${n}\\/?$`);
1586
+ }
1587
+ function mt(e, t) {
1588
+ const n = e.split("/").filter(Boolean), a = t.split("/").filter(Boolean), i = {};
1589
+ return n.forEach((r, o) => {
1590
+ if (r.startsWith(":")) {
1591
+ const s = r.endsWith("?") ? r.slice(1, -1) : r.slice(1), l = a[o];
1592
+ l && (i[s] = l);
1593
+ }
1594
+ }), i;
1595
+ }
1596
+ function gt(e) {
1597
+ return e.publicBasePath ?? `/apps/${e.name}`;
1598
+ }
1599
+ function Qn(e) {
1600
+ const t = [];
1601
+ for (const n of e) {
1602
+ if (!n?.name) continue;
1603
+ const a = gt(n);
1604
+ for (const i of n.routes ?? []) {
1605
+ if (!i.public) continue;
1606
+ const r = i.path === "/" ? "" : i.path;
1607
+ t.push({ appName: n.name, resource: i.resource, pattern: `${a}${r}` });
1608
+ }
1609
+ }
1610
+ return t;
1611
+ }
1612
+ function ht(e, t) {
1613
+ const n = e.split("/").filter(Boolean), a = t.split("/").filter(Boolean);
1614
+ for (let i = 0; i < Math.min(n.length, a.length); i++) {
1615
+ const r = n[i].startsWith(":"), o = a[i].startsWith(":");
1616
+ if (r !== o) return o;
1617
+ }
1618
+ return n.length > a.length;
1619
+ }
1620
+ function yt(e, t) {
1621
+ if (typeof e != "string") return null;
1622
+ let n = null;
1623
+ for (const a of t)
1624
+ ft(a.pattern).test(e) && (!n || ht(a.pattern, n.pattern)) && (n = a);
1625
+ return n ? { ...n, params: mt(n.pattern, e) } : null;
1626
+ }
1627
+ function Zn(e, t) {
1628
+ return yt(e, t) !== null;
1557
1629
  }
1558
- const Gn = 9e4, Vn = "installation-id";
1630
+ const ei = 9e4, ti = "installation-id";
1559
1631
  export {
1560
- f as ACTIVITY_CATALOG,
1561
- tt as AI_ATTACHMENT_LIMITS,
1562
- Sn as AI_ATTACHMENT_MAX_PER_TURN,
1563
- In as AI_ATTACHMENT_TURN_BUDGET,
1632
+ m as ACTIVITY_CATALOG,
1633
+ it as AI_ATTACHMENT_LIMITS,
1634
+ Dn as AI_ATTACHMENT_MAX_PER_TURN,
1635
+ wn as AI_ATTACHMENT_TURN_BUDGET,
1564
1636
  ne as AI_VENDORS,
1565
1637
  Ee as ALLOWED_LINK_SCHEMES,
1566
- D as ARTIFACT_MAX_BLOCKS,
1567
- Lt as ARTIFACT_MAX_BODY_BYTES,
1638
+ w as ARTIFACT_MAX_BLOCKS,
1639
+ Gt as ARTIFACT_MAX_BODY_BYTES,
1568
1640
  M as ARTIFACT_MAX_CELL_LEN,
1569
- P as ARTIFACT_MAX_KPI_ITEMS,
1570
- w as ARTIFACT_MAX_LIST_ITEMS,
1571
- K as ARTIFACT_MAX_TABLE_COLUMNS,
1641
+ K as ARTIFACT_MAX_KPI_ITEMS,
1642
+ D as ARTIFACT_MAX_LIST_ITEMS,
1643
+ P as ARTIFACT_MAX_TABLE_COLUMNS,
1572
1644
  U as ARTIFACT_MAX_TABLE_ROWS,
1573
1645
  Q as ARTIFACT_MAX_TEXT_LEN,
1574
- lt as AUTH_APP_NAME,
1646
+ ut as AUTH_APP_NAME,
1575
1647
  ue as ActivityTypeRegistry,
1576
- St as BUILT_IN_ONLY,
1577
- jt as CLASSIFY_VARS,
1578
- vt as CORE_DIMENSIONS,
1579
- ot as CommunicationScheme,
1580
- pn as DEFAULT_MEMORY_BUDGET,
1581
- De as DEFAULT_PHONE_REGION,
1582
- wn as FEATURE_FOLDER_MANAGEMENT,
1583
- Un as FEATURE_REMOTE_SEARCH,
1584
- Vn as INSTALLATION_HEADER,
1585
- Rn as InteractionParticipantRole,
1586
- mt as MAX_ACTIONS,
1587
- ut as MAX_BLOCKS,
1588
- pt as MAX_FIELDS,
1589
- dt as MAX_LIST_ITEMS,
1590
- un as MAX_MEMORY_BUDGET,
1591
- ln as MAX_MEMORY_CHARS,
1592
- cn as MIN_MEMORY_BUDGET,
1593
- Oe as PAUSED_RUN_STATUSES,
1648
+ $t as BUILT_IN_ONLY,
1649
+ qt as CLASSIFY_VARS,
1650
+ Dt as CORE_DIMENSIONS,
1651
+ lt as CommunicationScheme,
1652
+ In as DEFAULT_MEMORY_BUDGET,
1653
+ Ue as DEFAULT_PHONE_REGION,
1654
+ zn as FEATURE_FOLDER_MANAGEMENT,
1655
+ Yn as FEATURE_REMOTE_SEARCH,
1656
+ ti as INSTALLATION_HEADER,
1657
+ Wn as InteractionParticipantRole,
1658
+ Oe as KB_FALLBACK_LOCALE,
1659
+ _t as MAX_ACTIONS,
1660
+ bt as MAX_BLOCKS,
1661
+ At as MAX_FIELDS,
1662
+ Et as MAX_LIST_ITEMS,
1663
+ Tn as MAX_MEMORY_BUDGET,
1664
+ En as MAX_MEMORY_CHARS,
1665
+ _n as MIN_MEMORY_BUDGET,
1666
+ Le as PAUSED_RUN_STATUSES,
1594
1667
  v as PHONE_REGIONS,
1595
- Gn as PRESENCE_ONLINE_WINDOW_MS,
1596
- $n as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1597
- Ln as PROVIDER_FEATURE_MESSAGE_WINDOW,
1598
- je as PUBLIC_EMAIL_DOMAINS,
1599
- Re as RELATED_SUBJECT_KINDS,
1600
- Zt as SIGNATURE_INTENTS,
1601
- Je as SUMMARY_MIN_LAST_CHARS,
1602
- qe as SUMMARY_MIN_MESSAGES,
1603
- xe as TERMINAL_RUN_STATUSES,
1604
- Vt as TRIGGER_VARS,
1605
- Kn as UNSUPPORTED,
1668
+ ei as PRESENCE_ONLINE_WINDOW_MS,
1669
+ Fn as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1670
+ Hn as PROVIDER_FEATURE_MESSAGE_WINDOW,
1671
+ He as PUBLIC_EMAIL_DOMAINS,
1672
+ De as RELATED_SUBJECT_KINDS,
1673
+ dn as SIGNATURE_INTENTS,
1674
+ Ze as SUMMARY_MIN_LAST_CHARS,
1675
+ Qe as SUMMARY_MIN_MESSAGES,
1676
+ ke as TERMINAL_RUN_STATUSES,
1677
+ Yt as TRIGGER_VARS,
1678
+ qn as UNSUPPORTED,
1606
1679
  he as USAGE_DIMENSIONS,
1607
1680
  ye as USAGE_DIMENSION_IDS,
1608
- ke as actingIdentityKey,
1609
- gt as activityIconOf,
1610
- It as activityJoinUrl,
1681
+ xe as actingIdentityKey,
1682
+ It as activityIconOf,
1683
+ Lt as activityJoinUrl,
1611
1684
  se as activitySnippet,
1612
1685
  le as activityTextParams,
1613
- Tt as activityTimelineText,
1614
- Nt as activityTimestamp,
1615
- d as activityTypeInfo,
1616
- Ft as actorKey,
1617
- et as aiAttachmentKind,
1618
- Mn as aiAttachmentRejection,
1619
- Qt as aiVendorAcceptsAttachment,
1620
- Yt as aiVendorDefaultModel,
1621
- zt as aiVendorLabel,
1622
- Jt as aiVendorNeedsBaseUrl,
1623
- qt as aiVendorsWith,
1624
- ct as appNameFromPath,
1625
- en as applySignature,
1626
- Rt as artifactBodyBytes,
1627
- Dt as artifactOutline,
1628
- wt as artifactToMarkdown,
1629
- Mt as buildActivityPreview,
1630
- Nn as buildChannelIntents,
1631
- Ut as buildShareKeys,
1632
- bt as carriesText,
1633
- On as channelKindForScheme,
1634
- ht as channelKindOf,
1635
- En as cleanMessageText,
1636
- Dn as defineIntent,
1637
- Cn as disabledIntentsFromCapabilities,
1638
- gn as emailDomain,
1639
- An as endpointKey,
1640
- kn as filterByEndpoint,
1641
- vn as filterByIntent,
1642
- rt as filterByTargetScheme,
1686
+ kt as activityTimelineText,
1687
+ wt as activityTimestamp,
1688
+ f as activityTypeInfo,
1689
+ Zt as actorKey,
1690
+ nt as aiAttachmentKind,
1691
+ Un as aiAttachmentRejection,
1692
+ pn as aiVendorAcceptsAttachment,
1693
+ ln as aiVendorDefaultModel,
1694
+ sn as aiVendorLabel,
1695
+ un as aiVendorNeedsBaseUrl,
1696
+ cn as aiVendorsWith,
1697
+ pt as appNameFromPath,
1698
+ fn as applySignature,
1699
+ jt as artifactBodyBytes,
1700
+ Vt as artifactOutline,
1701
+ Ht as artifactToMarkdown,
1702
+ Ot as buildActivityPreview,
1703
+ Kn as buildChannelIntents,
1704
+ Ft as buildShareKeys,
1705
+ Nt as carriesText,
1706
+ on as categoryLabel,
1707
+ Vn as channelKindForScheme,
1708
+ St as channelKindOf,
1709
+ $n as cleanMessageText,
1710
+ Re as defaultLocaleOf,
1711
+ Xn as defineIntent,
1712
+ Pn as disabledIntentsFromCapabilities,
1713
+ Nn as emailDomain,
1714
+ kn as endpointKey,
1715
+ mt as extractParams,
1716
+ Bn as filterByEndpoint,
1717
+ Gn as filterByIntent,
1718
+ st as filterByTargetScheme,
1643
1719
  E as findAiVendor,
1644
- kt as flattenLocales,
1645
- me as floorToPeriod,
1720
+ Ut as flattenLocales,
1721
+ fe as floorToPeriod,
1646
1722
  ve as formatActingIdentity,
1647
1723
  de as formatPeriod,
1648
- Ct as getActivitySeenUserIds,
1649
- tn as getContactEndpoints,
1650
- on as getShortTitle,
1651
- rn as getUrgencyScore,
1652
- Gt as humanizeAction,
1653
- nn as isAssigned,
1654
- an as isClosed,
1655
- Pn as isDeepLink,
1656
- sn as isInteractionUnseen,
1657
- _n as isLikelyBulk,
1658
- yt as isMessageType,
1659
- Wt as isPaused,
1660
- _t as isPlaybookAuthoredType,
1661
- hn as isPublicEmailDomain,
1662
- At as isReplyableType,
1663
- Xt as isRetryable,
1664
- Le as isTerminal,
1665
- Tn as isThreadLongEnough,
1666
- mn as looksLikeEmail,
1667
- xn as matchContactToIntents,
1668
- Et as messageCountsAs,
1669
- yn as needsPhoneRegion,
1670
- $t as normalizeArtifactBlocks,
1671
- ft as normalizeBlocks,
1724
+ Rt as getActivitySeenUserIds,
1725
+ mn as getContactEndpoints,
1726
+ bn as getShortTitle,
1727
+ yn as getUrgencyScore,
1728
+ an as helpCenterText,
1729
+ zt as humanizeAction,
1730
+ gn as isAssigned,
1731
+ hn as isClosed,
1732
+ Jn as isDeepLink,
1733
+ An as isInteractionUnseen,
1734
+ On as isLikelyBulk,
1735
+ Mt as isMessageType,
1736
+ tn as isPaused,
1737
+ xt as isPlaybookAuthoredType,
1738
+ vn as isPublicEmailDomain,
1739
+ Zn as isPublicPath,
1740
+ Ct as isReplyableType,
1741
+ en as isRetryable,
1742
+ $e as isTerminal,
1743
+ Rn as isThreadLongEnough,
1744
+ nn as linkLabel,
1745
+ rn as localesOf,
1746
+ Mn as looksLikeEmail,
1747
+ jn as matchContactToIntents,
1748
+ yt as matchPublicRoute,
1749
+ vt as messageCountsAs,
1750
+ xn as needsPhoneRegion,
1751
+ Bt as normalizeArtifactBlocks,
1752
+ Tt as normalizeBlocks,
1672
1753
  ie as normalizeEmail,
1673
- Bt as parseActingIdentity,
1674
- xt as periodsInRange,
1675
- fn as phoneSuffix,
1676
- bn as plainTextFromMarkdown,
1677
- Ht as playbookActor,
1754
+ Jt as parseActingIdentity,
1755
+ ft as pathToRegex,
1756
+ Pt as periodsInRange,
1757
+ Cn as phoneSuffix,
1758
+ Ln as plainTextFromMarkdown,
1759
+ Qt as playbookActor,
1760
+ gt as publicBasePathFor,
1761
+ Qn as publicRoutePatterns,
1678
1762
  C as readPath,
1679
1763
  Ve as registrableDomain,
1680
- dn as relatedByDefault,
1681
- it as resolveAccountCapabilities,
1764
+ Sn as relatedByDefault,
1765
+ rt as resolveAccountCapabilities,
1682
1766
  N as resolveActivityText,
1683
- nt as resolveChannelIntents,
1684
- $e as resolveSignature,
1767
+ at as resolveChannelIntents,
1768
+ we as resolveSignature,
1685
1769
  Se as sanitizeInline,
1686
1770
  te as shareKeyForTeam,
1687
1771
  ee as shareKeyForUser,
1688
- Kt as shareKeysForViewer,
1772
+ Wt as shareKeysForViewer,
1689
1773
  oe as stripHtml,
1690
1774
  F as toE164,
1691
- Pt as toolSourceKinds,
1692
- Ae as usageMetricId,
1693
- Ot as usageMetrics
1775
+ Xt as toolSourceKinds,
1776
+ be as usageMetricId,
1777
+ Kt as usageMetrics
1694
1778
  };