@opencxh/domain 1.154.0 → 1.159.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.
Files changed (40) hide show
  1. package/dist/entities/activity/catalog.d.ts +33 -2
  2. package/dist/entities/activity/resolve.d.ts +24 -0
  3. package/dist/entities/activity/types.d.ts +45 -2
  4. package/dist/entities/ai-conversation/types.d.ts +26 -0
  5. package/dist/entities/ai-profile/types.d.ts +19 -6
  6. package/dist/entities/ai-settings/types.d.ts +27 -0
  7. package/dist/entities/ai-settings/types.test.d.ts +1 -0
  8. package/dist/entities/assignment/index.d.ts +1 -0
  9. package/dist/entities/assignment/types.d.ts +170 -0
  10. package/dist/entities/assignment/types.test.d.ts +1 -0
  11. package/dist/entities/interaction/types.d.ts +4 -2
  12. package/dist/entities/live-lens/index.d.ts +1 -0
  13. package/dist/entities/live-lens/types.d.ts +81 -0
  14. package/dist/entities/live-lens/types.test.d.ts +1 -0
  15. package/dist/entities/playbook/actor.d.ts +20 -0
  16. package/dist/entities/playbook/assignment.d.ts +123 -0
  17. package/dist/entities/playbook/assignment.test.d.ts +1 -0
  18. package/dist/entities/playbook/index.d.ts +1 -0
  19. package/dist/entities/playbook/status.test.d.ts +1 -0
  20. package/dist/entities/playbook/trigger-vars.d.ts +34 -3
  21. package/dist/entities/playbook/types.d.ts +412 -33
  22. package/dist/entities/read-state/types.d.ts +1 -5
  23. package/dist/entities/user/types.d.ts +56 -0
  24. package/dist/index.cjs +8 -8
  25. package/dist/index.d.ts +6 -0
  26. package/dist/index.js +1099 -545
  27. package/dist/platform/ai-tools.d.ts +20 -0
  28. package/dist/platform/api.d.ts +13 -0
  29. package/dist/platform/audio-gate.test.d.ts +1 -0
  30. package/dist/platform/context.d.ts +16 -0
  31. package/dist/platform/presence.d.ts +59 -0
  32. package/dist/platform/resource.d.ts +39 -0
  33. package/dist/platform/sdk.d.ts +6 -0
  34. package/dist/platform/tool-sources.test.d.ts +1 -0
  35. package/dist/platform/transcript-cadence.d.ts +93 -0
  36. package/dist/platform/transcript-cadence.test.d.ts +1 -0
  37. package/dist/platform/transcript-sanitize.d.ts +1 -0
  38. package/dist/platform/transcript-sanitize.test.d.ts +1 -0
  39. package/dist/platform/work-mode.test.d.ts +1 -0
  40. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,4 +1,10 @@
1
- const Kt = 10, Bt = 10, Gt = 10, Ft = 5, ye = /* @__PURE__ */ new Set([
1
+ function gn(e) {
2
+ return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
3
+ }
4
+ function hn(e) {
5
+ return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
6
+ }
7
+ const $ = 10, _ = 10, I = 10, M = 5, Me = /* @__PURE__ */ new Set([
2
8
  "header",
3
9
  "section",
4
10
  "context",
@@ -8,36 +14,36 @@ const Kt = 10, Bt = 10, Gt = 10, Ft = 5, ye = /* @__PURE__ */ new Set([
8
14
  "actions",
9
15
  "attachments"
10
16
  ]);
11
- function S(e) {
17
+ function C(e) {
12
18
  if (typeof e == "string") return e.length > 0;
13
19
  if (!e || typeof e != "object") return !1;
14
20
  const t = e;
15
21
  return typeof t.key == "string" || typeof t.value == "string";
16
22
  }
17
- function Ht(e, t = () => {
23
+ function An(e, t = () => {
18
24
  }) {
19
25
  if (!Array.isArray(e)) return [];
20
26
  const n = [];
21
27
  for (const i of e) {
22
- if (n.length >= 10) {
23
- t("more than 10 blocks; the rest was dropped");
28
+ if (n.length >= $) {
29
+ t("more than " + $ + " blocks; the rest was dropped");
24
30
  break;
25
31
  }
26
32
  if (!i || typeof i != "object") continue;
27
33
  const r = i;
28
- if (!ye.has(r.type)) {
34
+ if (!Me.has(r.type)) {
29
35
  t("unknown block type " + String(r.type));
30
36
  continue;
31
37
  }
32
38
  switch (r.type) {
33
39
  case "header":
34
- if (!S(r.text)) {
40
+ if (!C(r.text)) {
35
41
  t("a header without text");
36
42
  continue;
37
43
  }
38
44
  break;
39
45
  case "context":
40
- if (!S(r.text)) {
46
+ if (!C(r.text)) {
41
47
  t("a context block without text");
42
48
  continue;
43
49
  }
@@ -49,19 +55,19 @@ function Ht(e, t = () => {
49
55
  }
50
56
  break;
51
57
  case "section":
52
- Array.isArray(r.fields) && r.fields.length > 10 && (t("more than 10 fields in a section"), r.fields = r.fields.slice(0, 10));
58
+ Array.isArray(r.fields) && r.fields.length > _ && (t("more than " + _ + " fields in a section"), r.fields = r.fields.slice(0, _));
53
59
  break;
54
60
  case "list":
55
61
  if (!Array.isArray(r.items) || r.items.length === 0) {
56
62
  t("a list without items");
57
63
  continue;
58
64
  }
59
- r.items.length > 10 && (t("more than 10 list items"), r.items = r.items.slice(0, 10));
65
+ r.items.length > I && (t("more than " + I + " list items"), r.items = r.items.slice(0, I));
60
66
  break;
61
67
  case "actions": {
62
- const a = Array.isArray(r.elements) ? r.elements : [], o = a.filter((s) => s && s.action_id && s.invoke && S(s.text));
68
+ const a = Array.isArray(r.elements) ? r.elements : [], o = a.filter((s) => s && s.action_id && s.invoke && C(s.text));
63
69
  if (o.length !== a.length && t("an action without action_id, invoke or text"), o.length === 0) continue;
64
- o.length > 5 && t("more than 5 actions"), r.elements = o.slice(0, 5);
70
+ o.length > M && t("more than " + M + " actions"), r.elements = o.slice(0, M);
65
71
  break;
66
72
  }
67
73
  }
@@ -69,24 +75,24 @@ function Ht(e, t = () => {
69
75
  }
70
76
  return n;
71
77
  }
72
- function be(e) {
78
+ function Ce(e) {
73
79
  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
80
  }
75
- function b(e) {
81
+ function y(e) {
76
82
  if (!e || e < 0) return "";
77
83
  const t = Math.floor(e / 60), n = Math.floor(e % 60);
78
84
  return `${t}:${n.toString().padStart(2, "0")}`;
79
85
  }
80
- function O(e) {
86
+ function D(e) {
81
87
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
82
88
  }
83
- function I(e) {
89
+ function w(e) {
84
90
  return e?.split("@")?.[0] || e || "";
85
91
  }
86
- function E(e) {
92
+ function b(e) {
87
93
  return e.map((t) => t.name).join(", ");
88
94
  }
89
- function L(e) {
95
+ function R(e) {
90
96
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
91
97
  }
92
98
  const m = {
@@ -96,12 +102,13 @@ const m = {
96
102
  channelKind: "voice",
97
103
  icon: "phone",
98
104
  snippet: () => "Gesprek gestart",
99
- timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${I(e.payload.from)}` : `Outbound call started — ${I(e.payload.to)}`
105
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${w(e.payload.from)}` : `Outbound call started — ${w(e.payload.to)}`
100
106
  },
101
107
  VOICE_CALL_ANSWERED: {
102
108
  shape: "event",
103
109
  channelKind: "voice",
104
110
  icon: "phone",
111
+ connected: !0,
105
112
  snippet: () => "Gesprek aangenomen",
106
113
  timeline: (e, t) => `Call answered — ${t}`
107
114
  },
@@ -122,15 +129,15 @@ const m = {
122
129
  shape: "event",
123
130
  channelKind: "voice",
124
131
  icon: "phone",
125
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
126
- timeline: (e) => `Call ended${O(e.payload.duration)}`
132
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
133
+ timeline: (e) => `Call ended${D(e.payload.duration)}`
127
134
  },
128
135
  VOICE_CALL_MISSED: {
129
136
  shape: "event",
130
137
  channelKind: "voice",
131
138
  icon: "phone",
132
139
  snippet: () => "Gemiste oproep",
133
- timeline: (e) => `Missed call — ${I(e.payload.from)}`
140
+ timeline: (e) => `Missed call — ${w(e.payload.from)}`
134
141
  },
135
142
  VOICE_CALL_FAILED: {
136
143
  shape: "event",
@@ -157,6 +164,7 @@ const m = {
157
164
  shape: "event",
158
165
  channelKind: "video",
159
166
  icon: "video",
167
+ connected: !0,
160
168
  snippet: () => "Gesprek aangenomen",
161
169
  timeline: () => "Video call answered"
162
170
  },
@@ -176,7 +184,7 @@ const m = {
176
184
  shape: "event",
177
185
  channelKind: "video",
178
186
  icon: "video",
179
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
187
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
180
188
  timeline: () => "Video call ended"
181
189
  },
182
190
  VIDEO_CALL_MISSED: {
@@ -204,7 +212,7 @@ const m = {
204
212
  replyable: !0,
205
213
  carriesText: !0,
206
214
  countsAs: "inbound_message",
207
- snippet: $
215
+ snippet: P
208
216
  },
209
217
  EMAIL_SENT: {
210
218
  shape: "message",
@@ -214,7 +222,7 @@ const m = {
214
222
  replyable: !0,
215
223
  carriesText: !0,
216
224
  countsAs: "outbound_message",
217
- snippet: $
225
+ snippet: P
218
226
  },
219
227
  /* ---- chat ---- */
220
228
  CHAT_MESSAGE_SENT: {
@@ -243,9 +251,9 @@ const m = {
243
251
  shape: "event",
244
252
  channelKind: "chat",
245
253
  icon: "message-circle",
246
- snippet: (e) => `${E(e.payload.members)} toegevoegd`,
254
+ snippet: (e) => `${b(e.payload.members)} toegevoegd`,
247
255
  timeline: (e) => {
248
- const t = E(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
256
+ const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
249
257
  return `${t} joined the chat${n}`;
250
258
  }
251
259
  },
@@ -253,9 +261,9 @@ const m = {
253
261
  shape: "event",
254
262
  channelKind: "chat",
255
263
  icon: "message-circle",
256
- snippet: (e) => `${E(e.payload.members)} verlaten`,
264
+ snippet: (e) => `${b(e.payload.members)} verlaten`,
257
265
  timeline: (e) => {
258
- const t = E(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
266
+ const t = b(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
259
267
  return `${t} left the chat${n}`;
260
268
  }
261
269
  },
@@ -271,15 +279,15 @@ const m = {
271
279
  channelKind: "chat",
272
280
  icon: "message-circle",
273
281
  snippet: () => "Gesprek gestart",
274
- timeline: (e) => `${L(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
282
+ timeline: (e) => `${R(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
275
283
  joinUrl: (e) => e.payload.joinUrl
276
284
  },
277
285
  CHAT_CALL_ENDED: {
278
286
  shape: "event",
279
287
  channelKind: "chat",
280
288
  icon: "message-circle",
281
- snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
282
- timeline: (e) => `${L(e.payload.callType)} ended${O(e.payload.duration)}`,
289
+ snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
290
+ timeline: (e) => `${R(e.payload.callType)} ended${D(e.payload.duration)}`,
283
291
  joinUrl: (e) => e.payload.joinUrl
284
292
  },
285
293
  CHAT_EVENT: {
@@ -360,6 +368,7 @@ const m = {
360
368
  MEETING_STARTED: {
361
369
  shape: "event",
362
370
  icon: "calendar",
371
+ connected: !0,
363
372
  snippet: (e) => `Vergadering gestart: ${e.payload.title}`,
364
373
  timeline: () => "Meeting started",
365
374
  joinUrl: (e) => e.payload.joinUrl
@@ -367,7 +376,7 @@ const m = {
367
376
  MEETING_ENDED: {
368
377
  shape: "event",
369
378
  icon: "calendar",
370
- snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${b(e.payload.duration)})` : ""}`,
379
+ snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${y(e.payload.duration)})` : ""}`,
371
380
  timeline: () => "Meeting ended"
372
381
  },
373
382
  MEETING_PARTICIPANT_JOINED: {
@@ -404,48 +413,57 @@ const m = {
404
413
  timeline: (e, t) => `Assigned by ${t}`
405
414
  }
406
415
  };
407
- function $(e) {
408
- const t = e.payload, n = t.bodySnippet?.trim() || be(t.body ?? "");
416
+ function P(e) {
417
+ const t = e.payload, n = t.bodySnippet?.trim() || Ce(t.body ?? "");
409
418
  return t.subject ? `${t.subject} — ${n}` : n;
410
419
  }
411
- function f(e) {
420
+ function d(e) {
412
421
  return m[e];
413
422
  }
414
- function Vt(e) {
415
- return f(e)?.icon ?? "circle";
423
+ function yn(e) {
424
+ return d(e)?.icon ?? "circle";
416
425
  }
417
- function jt(e) {
418
- return f(e)?.channelKind;
426
+ function bn(e) {
427
+ return d(e)?.channelKind;
419
428
  }
420
- function Xt(e) {
421
- const t = f(e)?.shape;
422
- return t === "message" || t === "note";
429
+ function le(e) {
430
+ return e === "message" || e === "note";
423
431
  }
424
- function Wt(e) {
425
- return f(e)?.replyable === !0;
432
+ function En(e) {
433
+ return le(d(e)?.shape);
426
434
  }
427
- function Yt(e) {
428
- return f(e)?.carriesText === !0;
435
+ function Sn(e) {
436
+ return d(e)?.replyable === !0;
437
+ }
438
+ function Tn(e) {
439
+ return d(e)?.carriesText === !0;
429
440
  }
430
- function zt(e) {
431
- return f(e)?.countsAs;
441
+ function _n(e) {
442
+ return d(e)?.countsAs;
432
443
  }
433
- function qt(e) {
434
- return f(e)?.playbookAuthored === !0;
444
+ function In(e) {
445
+ return d(e)?.playbookAuthored === !0;
446
+ }
447
+ function Mn(e) {
448
+ return d(e)?.connected === !0;
435
449
  }
436
- function Ee(e) {
437
- const t = f(e.type)?.snippet;
450
+ function Cn(e) {
451
+ const t = d(e);
452
+ return t?.shape === "artifact" && t?.carriesText === !0;
453
+ }
454
+ function we(e) {
455
+ const t = d(e.type)?.snippet;
438
456
  return t ? t(e) : "";
439
457
  }
440
- function Jt(e, t) {
441
- const n = f(e.type)?.timeline;
458
+ function wn(e, t) {
459
+ const n = d(e.type)?.timeline;
442
460
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
443
461
  }
444
- function Qt(e) {
445
- const t = f(e.type)?.joinUrl;
462
+ function kn(e) {
463
+ const t = d(e.type)?.joinUrl;
446
464
  return t ? t(e) : void 0;
447
465
  }
448
- function N(e, t) {
466
+ function x(e, t) {
449
467
  let n = e;
450
468
  for (const i of t.split(".")) {
451
469
  if (n == null || typeof n != "object") return "";
@@ -453,26 +471,26 @@ function N(e, t) {
453
471
  }
454
472
  return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
455
473
  }
456
- function v(e, t, n) {
474
+ function O(e, t, n) {
457
475
  if (e === void 0) return null;
458
476
  if (typeof e == "string") return e || null;
459
477
  if ("value" in e)
460
- return N(t, e.value) || null;
478
+ return x(t, e.value) || null;
461
479
  const i = {};
462
480
  for (const [a, o] of Object.entries(e.params ?? {}))
463
- i[a] = N(t, o);
481
+ i[a] = x(t, o);
464
482
  const r = n(e.key, i);
465
483
  return r === e.key ? null : r;
466
484
  }
467
- function Ae(e, t) {
485
+ function ke(e, t) {
468
486
  if (!e || typeof e == "string" || "value" in e) return null;
469
487
  const n = {};
470
488
  for (const [i, r] of Object.entries(e.params ?? {}))
471
- n[i] = N(t, r);
489
+ n[i] = x(t, r);
472
490
  return { key: e.key, params: n };
473
491
  }
474
- const _e = (e) => e;
475
- function R(e) {
492
+ const ve = (e) => e;
493
+ function U(e) {
476
494
  const t = m[e];
477
495
  return {
478
496
  type: e,
@@ -488,7 +506,7 @@ function R(e) {
488
506
  displayNameKey: t.displayNameKey
489
507
  };
490
508
  }
491
- function w(e) {
509
+ function K(e) {
492
510
  return {
493
511
  type: e.type,
494
512
  shape: e.shape,
@@ -503,21 +521,21 @@ function w(e) {
503
521
  displayNameKey: e.displayNameKey
504
522
  };
505
523
  }
506
- class Te {
507
- constructor(t = [], n = _e) {
524
+ class Ne {
525
+ constructor(t = [], n = ve) {
508
526
  this.translate = n;
509
527
  for (const i of t)
510
528
  i?.type && (i.type in m || this.declared.has(i.type) || this.declared.set(i.type, i));
511
529
  }
512
530
  declared = /* @__PURE__ */ new Map();
513
531
  get(t) {
514
- if (t in m) return R(t);
532
+ if (t in m) return U(t);
515
533
  const n = this.declared.get(t);
516
- return n ? w(n) : void 0;
534
+ return n ? K(n) : void 0;
517
535
  }
518
536
  /** Alles wat als trigger aangeboden mag worden, ingebouwd en gedeclareerd. */
519
537
  triggerable() {
520
- const t = Object.keys(m).filter((i) => m[i].triggerable).map(R), n = [...this.declared.values()].map(w).filter((i) => i.triggerable);
538
+ const t = Object.keys(m).filter((i) => m[i].triggerable).map(U), n = [...this.declared.values()].map(K).filter((i) => i.triggerable);
521
539
  return [...t, ...n];
522
540
  }
523
541
  /**
@@ -529,14 +547,14 @@ class Te {
529
547
  const i = m[t.type];
530
548
  if (i?.timeline) return i.timeline(t, n);
531
549
  const r = this.declared.get(t.type);
532
- return v(r?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
550
+ return O(r?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
533
551
  }
534
552
  /** De regel voor de inboxlijst. Leeg wanneer het type niets te tonen heeft. */
535
553
  snippet(t) {
536
554
  const n = m[t.type];
537
555
  if (n?.snippet) return n.snippet(t);
538
556
  const i = this.declared.get(t.type);
539
- return v(i?.text, t, this.translate) ?? "";
557
+ return O(i?.text, t, this.translate) ?? "";
540
558
  }
541
559
  /** De descriptor zoals hij binnenkwam; nodig om `text` als sleutel op te slaan. */
542
560
  descriptor(t) {
@@ -547,38 +565,75 @@ class Te {
547
565
  const n = this.declared.get(t)?.render;
548
566
  return n?.length ? n : void 0;
549
567
  }
568
+ /**
569
+ * Dezelfde semantische vragen als de losse accessors in `catalog.ts`, maar dan óók voor
570
+ * types die een app declareerde.
571
+ *
572
+ * Dat verschil is de reden dat deze methodes bestaan. `isMessageType(type)` leest alleen
573
+ * `ACTIVITY_CATALOG`, dus een gedeclareerd type met `shape: "message"` gaf daar `false` —
574
+ * een helpdesk-app kon een berichtsoort meebrengen die vervolgens niet meetelde als
575
+ * gesprek, niet antwoordbaar was en niet in de analytics landde. Wie een registry bij de
576
+ * hand heeft, hoort deze te gebruiken; wie er geen heeft valt terug op de ingebouwde.
577
+ *
578
+ * De regel zelf staat maar op één plek: {@link isMessageShape} en de velden van
579
+ * {@link ResolvedActivityType}.
580
+ */
581
+ isMessage(t) {
582
+ return le(this.get(t)?.shape);
583
+ }
584
+ /** Kan een mens hierop antwoorden? Notities niet — die gaan nergens heen. */
585
+ isReplyable(t) {
586
+ return this.get(t)?.replyable === !0;
587
+ }
588
+ /** Leesbare inhoud voor een model: berichten, notities én transcripten. */
589
+ carriesText(t) {
590
+ return this.get(t)?.carriesText === !0;
591
+ }
592
+ /** Telt mee als in- of uitgaand bericht in de analytics-rollup. */
593
+ countsAs(t) {
594
+ return this.get(t)?.countsAs;
595
+ }
596
+ /** `mail` | `chat` | `voice` | `video`, of `undefined` voor een levenscyclus-event. */
597
+ channelKind(t) {
598
+ return this.get(t)?.channelKind;
599
+ }
600
+ /** Transcript-achtig artefact: meegeleverde inhoud die leesbare tekst draagt. */
601
+ isTranscript(t) {
602
+ const n = this.get(t);
603
+ return n?.shape === "artifact" && n.carriesText;
604
+ }
550
605
  /** De vertaler die bij deze registry hoort, voor het oplossen van blokteksten. */
551
606
  get translator() {
552
607
  return this.translate;
553
608
  }
554
609
  }
555
- const Zt = new Te(), D = 140;
556
- function Se(e) {
610
+ const vn = new Ne(), j = 140;
611
+ function xe(e) {
557
612
  const t = e.trim();
558
- return t.length <= D ? t : t.slice(0, D - 1).trimEnd() + "…";
613
+ return t.length <= j ? t : t.slice(0, j - 1).trimEnd() + "…";
559
614
  }
560
- function en(e, t) {
561
- const n = Ae(t?.text, e), i = t ? v(t.text, e, (r) => r) : null;
615
+ function Nn(e, t) {
616
+ const n = ke(t?.text, e), i = t ? O(t.text, e, (r) => r) : null;
562
617
  return {
563
618
  activityId: e.id,
564
619
  type: e.type,
565
- snippet: Se(i ?? Ee(e)),
620
+ snippet: xe(i ?? we(e)),
566
621
  authorName: e.author?.name ?? "",
567
622
  direction: e.direction,
568
623
  createdAt: e.createdAt ?? Date.now(),
569
624
  ...n ? { snippetKey: n.key, snippetParams: n.params } : {}
570
625
  };
571
626
  }
572
- function tn(e, t, n = []) {
627
+ function xn(e, t, n = []) {
573
628
  const i = e.createdAt;
574
629
  if (!i) return [];
575
630
  const r = new Set(n);
576
631
  return e.author.type === "user" && e.author.id && r.add(e.author.id), Object.entries(t).filter(([a, o]) => o >= i && !r.has(a)).map(([a]) => a);
577
632
  }
578
- function nn(e) {
633
+ function On(e) {
579
634
  return e.createdAt ?? 0;
580
635
  }
581
- const rn = [
636
+ const Ln = [
582
637
  { id: "agent", label: "Agent", labelSource: "user" },
583
638
  { id: "team", label: "Team", labelSource: "team" },
584
639
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -588,54 +643,54 @@ const rn = [
588
643
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
589
644
  { id: "time", label: "Tijd", labelSource: "raw" }
590
645
  ];
591
- function an(e) {
646
+ function $n(e) {
592
647
  const t = [];
593
648
  for (const n of Object.keys(e))
594
649
  for (const i of Object.keys(e[n]))
595
650
  t.push({ lang: n, key: i, value: e[n][i] });
596
651
  return t;
597
652
  }
598
- function M(e) {
653
+ function k(e) {
599
654
  return e < 10 ? `0${e}` : `${e}`;
600
655
  }
601
- function Ie(e, t) {
602
- const n = new Date(e), i = `${n.getUTCFullYear()}-${M(n.getUTCMonth() + 1)}-${M(n.getUTCDate())}`;
603
- return t === "day" ? i : `${i}T${M(n.getUTCHours())}`;
656
+ function Oe(e, t) {
657
+ const n = new Date(e), i = `${n.getUTCFullYear()}-${k(n.getUTCMonth() + 1)}-${k(n.getUTCDate())}`;
658
+ return t === "day" ? i : `${i}T${k(n.getUTCHours())}`;
604
659
  }
605
- function Me(e, t) {
660
+ function Le(e, t) {
606
661
  const n = new Date(e);
607
662
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
608
663
  }
609
- const Ce = 36e5, xe = 864e5;
610
- function on(e, t, n) {
611
- const i = n === "hour" ? Ce : xe, r = [];
612
- for (let a = Me(e, n); a <= t; a += i)
613
- r.push(Ie(a, n));
664
+ const $e = 36e5, De = 864e5;
665
+ function Dn(e, t, n) {
666
+ const i = n === "hour" ? $e : De, r = [];
667
+ for (let a = Le(e, n); a <= t; a += i)
668
+ r.push(Oe(a, n));
614
669
  return r;
615
670
  }
616
- const Ne = [
671
+ const Re = [
617
672
  { id: "resource", label: "Resource", labelSource: "raw" },
618
673
  { id: "origin", label: "Herkomst", labelSource: "raw" }
619
- ], ve = Ne.map((e) => e.id);
620
- function ke(e, t) {
674
+ ], Pe = Re.map((e) => e.id);
675
+ function Ue(e, t) {
621
676
  return `${e}.usage.${t}`;
622
677
  }
623
- function sn(e, t) {
678
+ function Rn(e, t) {
624
679
  return t.map((n) => ({
625
- id: ke(e, n.unit),
680
+ id: Ue(e, n.unit),
626
681
  label: n.label,
627
682
  category: "Verbruik",
628
683
  valueType: n.valueType ?? "count",
629
684
  aggregation: "sum",
630
685
  supportedDimensions: [
631
686
  "provider",
632
- ...ve,
687
+ ...Pe,
633
688
  ...n.extraDimensions ?? [],
634
689
  "time"
635
690
  ]
636
691
  }));
637
692
  }
638
- const ne = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), P = 200, U = 100, K = 200, B = 12, G = 4, ie = 4e3, C = 500, ln = 256 * 1024, Oe = /* @__PURE__ */ new Set([
693
+ const ce = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), G = 200, B = 100, F = 200, H = 12, V = 4, ue = 4e3, v = 500, Pn = 256 * 1024, Ke = /* @__PURE__ */ new Set([
639
694
  "heading",
640
695
  "paragraph",
641
696
  "list",
@@ -645,15 +700,15 @@ const ne = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
645
700
  "table",
646
701
  "kpi",
647
702
  "callout"
648
- ]), Le = ["http:", "https:", "mailto:", "tel:"], $e = /^[a-z][a-z0-9+.-]*:/i;
649
- function re(e) {
703
+ ]), je = ["http:", "https:", "mailto:", "tel:"], Ge = /^[a-z][a-z0-9+.-]*:/i;
704
+ function de(e) {
650
705
  const t = e.trim().replace(/^<|>$/g, "");
651
706
  if (!t) return !1;
652
- const n = $e.exec(t)?.[0];
653
- return n ? Le.includes(n.toLowerCase()) : !t.startsWith("//");
707
+ const n = Ge.exec(t)?.[0];
708
+ return n ? je.includes(n.toLowerCase()) : !t.startsWith("//");
654
709
  }
655
- const Re = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
656
- function we(e) {
710
+ const Be = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
711
+ function Fe(e) {
657
712
  let t = "", n = 0;
658
713
  for (; n < e.length; ) {
659
714
  const i = e[n] === "!" && e[n + 1] === "[";
@@ -661,22 +716,22 @@ function we(e) {
661
716
  t += e[n], n += 1;
662
717
  continue;
663
718
  }
664
- const r = n + (i ? 2 : 1), a = F(e, r, "[", "]");
719
+ const r = n + (i ? 2 : 1), a = W(e, r, "[", "]");
665
720
  if (a < 0 || e[a + 1] !== "(") {
666
721
  t += e[n], n += 1;
667
722
  continue;
668
723
  }
669
- const o = F(e, a + 2, "(", ")");
724
+ const o = W(e, a + 2, "(", ")");
670
725
  if (o < 0) {
671
726
  t += e[n], n += 1;
672
727
  continue;
673
728
  }
674
729
  const s = e.slice(r, a), l = e.slice(a + 2, o).trim().split(/\s+/)[0] ?? "";
675
- t += i || !re(l) ? s : e.slice(n, o + 1), n = o + 1;
730
+ t += i || !de(l) ? s : e.slice(n, o + 1), n = o + 1;
676
731
  }
677
732
  return t;
678
733
  }
679
- function F(e, t, n, i) {
734
+ function W(e, t, n, i) {
680
735
  let r = 1;
681
736
  for (let a = t; a < e.length; a += 1) {
682
737
  if (e[a] === "\\") {
@@ -689,33 +744,33 @@ function F(e, t, n, i) {
689
744
  }
690
745
  return -1;
691
746
  }
692
- function De(e) {
693
- return we(e).replace(
694
- Re,
695
- (t, n, i) => re(i) ? t : ""
747
+ function He(e) {
748
+ return Fe(e).replace(
749
+ Be,
750
+ (t, n, i) => de(i) ? t : ""
696
751
  );
697
752
  }
698
- function u(e, t = ie) {
699
- return typeof e == "string" ? De(e).slice(0, t) : "";
753
+ function u(e, t = ue) {
754
+ return typeof e == "string" ? He(e).slice(0, t) : "";
700
755
  }
701
- function Pe(e, t = ie) {
756
+ function Ve(e, t = ue) {
702
757
  return typeof e == "string" ? e.slice(0, t) : "";
703
758
  }
704
- function Ue(e, t = "info") {
705
- return typeof e == "string" && ne.has(e) ? e : t;
759
+ function We(e, t = "info") {
760
+ return typeof e == "string" && ce.has(e) ? e : t;
706
761
  }
707
- function cn(e, t = () => {
762
+ function Un(e, t = () => {
708
763
  }) {
709
764
  if (!Array.isArray(e)) return [];
710
765
  const n = [];
711
766
  for (const i of e) {
712
- if (n.length >= P) {
713
- t("more than " + P + " blocks; the rest was dropped");
767
+ if (n.length >= G) {
768
+ t("more than " + G + " blocks; the rest was dropped");
714
769
  break;
715
770
  }
716
771
  if (!i || typeof i != "object") continue;
717
772
  const r = i;
718
- if (!Oe.has(r.type)) {
773
+ if (!Ke.has(r.type)) {
719
774
  t("unknown block type " + String(r.type));
720
775
  continue;
721
776
  }
@@ -750,7 +805,7 @@ function cn(e, t = () => {
750
805
  break;
751
806
  }
752
807
  case "code": {
753
- const o = Pe(r.text);
808
+ const o = Ve(r.text);
754
809
  if (!o) {
755
810
  t("a code block without text");
756
811
  continue;
@@ -765,14 +820,14 @@ function cn(e, t = () => {
765
820
  case "list": {
766
821
  const o = Array.isArray(r.items) ? r.items : [], s = [];
767
822
  for (const p of o) {
768
- if (s.length >= U) {
769
- t("more than " + U + " list items");
823
+ if (s.length >= B) {
824
+ t("more than " + B + " list items");
770
825
  break;
771
826
  }
772
- const d = u(p?.text);
773
- if (!d) continue;
827
+ const f = u(p?.text);
828
+ if (!f) continue;
774
829
  const c = u(p?.lead, 200);
775
- s.push(c ? { lead: c, text: d } : { text: d });
830
+ s.push(c ? { lead: c, text: f } : { text: f });
776
831
  }
777
832
  if (s.length === 0) {
778
833
  t("a list without usable items");
@@ -785,12 +840,12 @@ function cn(e, t = () => {
785
840
  case "table": {
786
841
  const o = Array.isArray(r.columns) ? r.columns : [], s = [];
787
842
  for (const c of o) {
788
- if (s.length >= B) {
789
- t("more than " + B + " table columns");
843
+ if (s.length >= H) {
844
+ t("more than " + H + " table columns");
790
845
  break;
791
846
  }
792
- const y = u(c?.label, C), T = c?.align === "right" ? "right" : void 0;
793
- s.push(T ? { label: y, align: T } : { label: y });
847
+ const A = u(c?.label, v), T = c?.align === "right" ? "right" : void 0;
848
+ s.push(T ? { label: A, align: T } : { label: A });
794
849
  }
795
850
  if (s.length === 0) {
796
851
  t("a table without columns");
@@ -798,37 +853,37 @@ function cn(e, t = () => {
798
853
  }
799
854
  const l = Array.isArray(r.rows) ? r.rows : [], p = [];
800
855
  for (const c of l) {
801
- if (p.length >= K) {
802
- t("more than " + K + " table rows");
856
+ if (p.length >= F) {
857
+ t("more than " + F + " table rows");
803
858
  break;
804
859
  }
805
- const y = Array.isArray(c) ? c : [];
860
+ const A = Array.isArray(c) ? c : [];
806
861
  p.push(
807
- s.map((T, he) => u(y[he], C))
862
+ s.map((T, Ie) => u(A[Ie], v))
808
863
  );
809
864
  }
810
- const d = u(r.caption, C);
865
+ const f = u(r.caption, v);
811
866
  n.push({
812
867
  ...a,
813
868
  type: "table",
814
869
  columns: s,
815
870
  rows: p,
816
- ...d ? { caption: d } : {}
871
+ ...f ? { caption: f } : {}
817
872
  });
818
873
  break;
819
874
  }
820
875
  case "kpi": {
821
876
  const o = Array.isArray(r.items) ? r.items : [], s = [];
822
877
  for (const l of o) {
823
- if (s.length >= G) {
824
- t("more than " + G + " kpi items");
878
+ if (s.length >= V) {
879
+ t("more than " + V + " kpi items");
825
880
  break;
826
881
  }
827
- const p = u(l?.value, 40), d = u(l?.label, 80);
828
- if (!p || !d) continue;
882
+ const p = u(l?.value, 40), f = u(l?.label, 80);
883
+ if (!p || !f) continue;
829
884
  const c = l?.tone;
830
885
  s.push(
831
- typeof c == "string" && ne.has(c) ? { value: p, label: d, tone: c } : { value: p, label: d }
886
+ typeof c == "string" && ce.has(c) ? { value: p, label: f, tone: c } : { value: p, label: f }
832
887
  );
833
888
  }
834
889
  if (s.length === 0) {
@@ -848,7 +903,7 @@ function cn(e, t = () => {
848
903
  n.push({
849
904
  ...a,
850
905
  type: "callout",
851
- tone: Ue(r.tone),
906
+ tone: We(r.tone),
852
907
  ...s ? { title: s } : {},
853
908
  text: o
854
909
  });
@@ -858,28 +913,28 @@ function cn(e, t = () => {
858
913
  }
859
914
  return n;
860
915
  }
861
- function un(e) {
916
+ function Kn(e) {
862
917
  return JSON.stringify(e).length;
863
918
  }
864
- function pn(e) {
919
+ function jn(e) {
865
920
  return {
866
921
  blocks: e.length,
867
922
  types: e.map((t) => t.type),
868
923
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
869
924
  };
870
925
  }
871
- function H(e) {
926
+ function z(e) {
872
927
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
873
928
  }
874
- function V(e, t, n) {
929
+ function X(e, t, n) {
875
930
  const i = e.map((r, a) => n?.[a] === "right" ? "---:" : "---");
876
931
  return [
877
- `| ${e.map(H).join(" | ")} |`,
932
+ `| ${e.map(z).join(" | ")} |`,
878
933
  `| ${i.join(" | ")} |`,
879
- ...t.map((r) => `| ${r.map(H).join(" | ")} |`)
934
+ ...t.map((r) => `| ${r.map(z).join(" | ")} |`)
880
935
  ];
881
936
  }
882
- function Ke(e) {
937
+ function ze(e) {
883
938
  switch (e.type) {
884
939
  case "heading":
885
940
  return [`${"#".repeat(e.level)} ${e.text}`];
@@ -897,7 +952,7 @@ function Ke(e) {
897
952
  return t.lead ? `${i} **${t.lead}** ${t.text}` : `${i} ${t.text}`;
898
953
  });
899
954
  case "table": {
900
- const t = V(
955
+ const t = X(
901
956
  e.columns.map((n) => n.label),
902
957
  e.rows,
903
958
  e.columns.map((n) => n.align ?? "left")
@@ -905,7 +960,7 @@ function Ke(e) {
905
960
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
906
961
  }
907
962
  case "kpi":
908
- return V(
963
+ return X(
909
964
  e.items.map((t) => t.value),
910
965
  [e.items.map((t) => t.label)]
911
966
  );
@@ -913,11 +968,11 @@ function Ke(e) {
913
968
  return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
914
969
  }
915
970
  }
916
- function dn(e, t) {
971
+ function Gn(e, t) {
917
972
  const n = [], i = e.some((r) => r.type === "heading" && r.level === 1);
918
973
  t && !i && n.push(`# ${t}`);
919
974
  for (const r of e) {
920
- const a = Ke(r);
975
+ const a = ze(r);
921
976
  a.length > 0 && n.push(a.join(`
922
977
  `));
923
978
  }
@@ -926,26 +981,88 @@ function dn(e, t) {
926
981
  `)}
927
982
  `;
928
983
  }
929
- const ae = (e) => `user:${e}`, oe = (e) => `team:${e}`;
930
- function fn(e) {
984
+ const pe = (e) => `user:${e}`, fe = (e) => `team:${e}`;
985
+ function Bn(e) {
931
986
  const t = /* @__PURE__ */ new Set();
932
987
  for (const n of e ?? [])
933
- n?.id && (n.kind === "user" && t.add(ae(n.id)), n.kind === "team" && t.add(oe(n.id)));
988
+ n?.id && (n.kind === "user" && t.add(pe(n.id)), n.kind === "team" && t.add(fe(n.id)));
934
989
  return [...t].sort();
935
990
  }
936
- function mn(e, t) {
937
- return [ae(e), ...t.map(oe)];
991
+ function Fn(e, t) {
992
+ return [pe(e), ...t.map(fe)];
938
993
  }
939
- function gn(e) {
994
+ function Hn(e) {
940
995
  const t = /* @__PURE__ */ new Set();
941
996
  for (const n of e ?? [])
942
997
  n?.kind && t.add(n.kind);
943
998
  return [...t];
944
999
  }
945
- function hn(e) {
1000
+ const Xe = ["done", "escalated"];
1001
+ function Vn(e) {
1002
+ return Xe.includes(e);
1003
+ }
1004
+ const Ye = "assignment";
1005
+ function Wn(e) {
1006
+ return `${Ye}:${e}`;
1007
+ }
1008
+ function zn(e, t) {
1009
+ if (e.direction === "inbound") return !0;
1010
+ if (e.author?.type === "user" && e.author.id === t) return !1;
1011
+ const n = e.payload?.mentions;
1012
+ return Array.isArray(n) && n.includes(t);
1013
+ }
1014
+ function Xn(e) {
1015
+ return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1016
+ }
1017
+ const qe = 12;
1018
+ function Yn(e, t, n = qe) {
1019
+ const i = t + 1;
1020
+ return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: i, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: i, reason: e.reason } : i >= n ? {
1021
+ status: "escalated",
1022
+ waitingOn: null,
1023
+ turns: i,
1024
+ reason: `na ${n} beurten nog niet afgerond, dus een mens neemt het over`
1025
+ } : { status: "waiting", waitingOn: e.on, turns: i } : {
1026
+ status: "escalated",
1027
+ waitingOn: null,
1028
+ turns: i,
1029
+ reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1030
+ };
1031
+ }
1032
+ const Y = ["lookup", "condition", "parallel", "for-each"];
1033
+ function q(e) {
1034
+ for (const t of e) {
1035
+ if (!Y.includes(t.type))
1036
+ return `staptype "${t.type}" mag niet meelezen (alleen ${Y.join(", ")})`;
1037
+ if (t.type === "parallel")
1038
+ for (const n of t.branches ?? []) {
1039
+ const i = q(n);
1040
+ if (i) return i;
1041
+ }
1042
+ if (t.type === "for-each") {
1043
+ const n = q(t.body ?? []);
1044
+ if (n) return n;
1045
+ }
1046
+ }
1047
+ return null;
1048
+ }
1049
+ function Je(e, t) {
1050
+ switch (e.kind) {
1051
+ case "org":
1052
+ return !0;
1053
+ case "team":
1054
+ return !!t.teamId && e.teamId === t.teamId;
1055
+ case "personal":
1056
+ return e.userId === t.userId;
1057
+ }
1058
+ }
1059
+ function qn(e, t) {
1060
+ return e.filter((n) => n.enabled && Je(n.ownerScope, t));
1061
+ }
1062
+ function Jn(e) {
946
1063
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
947
1064
  }
948
- const yn = [
1065
+ const Qn = [
949
1066
  { name: "text", type: "string" },
950
1067
  { name: "subject", type: "string" },
951
1068
  { name: "from", type: "string" },
@@ -967,19 +1084,27 @@ const yn = [
967
1084
  // Leeg zolang de identiteit niet is opgelost (een onbekend nummer, een eerste bericht van
968
1085
  // een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
969
1086
  { name: "contactId", type: "string" },
970
- { name: "companyId", type: "string" }
971
- ], bn = {
1087
+ { name: "companyId", type: "string" },
1088
+ // Aan wie dit werk is toegewezen, bij een activity die een toewijzing aankondigt. Waar dat
1089
+ // op de activity staat is per bron **gedeclareerd** (`AssignmentTargetKind.assigneePath`),
1090
+ // dus `buildTriggerVars` kan hem niet zelf vullen: de job doet dat met de catalogus in de
1091
+ // hand, vóór het trigger-filter draait — net als contactId/companyId hierboven.
1092
+ { name: "assigneeUserId", type: "string" }
1093
+ ], Zn = {
972
1094
  topics: [
1095
+ { name: "topicId", type: "string" },
973
1096
  { name: "topic", type: "string" },
974
- { name: "confidence", type: "number" }
1097
+ { name: "confidence", type: "number" },
1098
+ { name: "reasoning", type: "string" }
975
1099
  ],
976
1100
  question: [
977
1101
  { name: "answer", type: "boolean" },
978
- { name: "confidence", type: "number" }
1102
+ { name: "reasoning", type: "string" }
979
1103
  ],
1104
+ // Leeg met opzet: de velden komen uit `ClassifyStep.fields` en zijn dus per stap anders.
980
1105
  extract: []
981
1106
  };
982
- function Be(e) {
1107
+ function Qe(e) {
983
1108
  switch (e.kind) {
984
1109
  case "user":
985
1110
  return `user:${e.userId}`;
@@ -989,7 +1114,7 @@ function Be(e) {
989
1114
  return "org";
990
1115
  }
991
1116
  }
992
- function En(e) {
1117
+ function ei(e) {
993
1118
  if (typeof e != "string") return;
994
1119
  const t = e.trim();
995
1120
  if (t === "org") return { kind: "org" };
@@ -1001,10 +1126,10 @@ function En(e) {
1001
1126
  if (i === "team") return { kind: "team", teamId: r };
1002
1127
  }
1003
1128
  }
1004
- function Ge(e) {
1005
- return Be(e);
1129
+ function Ze(e) {
1130
+ return Qe(e);
1006
1131
  }
1007
- function An(e) {
1132
+ function et(e) {
1008
1133
  switch (e.kind) {
1009
1134
  case "personal":
1010
1135
  return { kind: "user", userId: e.userId };
@@ -1014,34 +1139,84 @@ function An(e) {
1014
1139
  return { kind: "org" };
1015
1140
  }
1016
1141
  }
1017
- function _n(e) {
1018
- return Ge(e);
1142
+ function ti(e) {
1143
+ return e.agentId ? { kind: "user", userId: e.agentId } : et(e.ownerScope);
1019
1144
  }
1020
- const Fe = 64, He = 8e3;
1021
- function Tn(e) {
1145
+ function ni(e) {
1146
+ return Ze(e);
1147
+ }
1148
+ function ii(e, t) {
1149
+ if (!t) return;
1150
+ let n = e;
1151
+ for (const i of t.split(".")) {
1152
+ if (n === null || typeof n != "object") return;
1153
+ n = n[i];
1154
+ }
1155
+ return n;
1156
+ }
1157
+ function ri(e, t) {
1158
+ return e.targets.find((n) => n.activityTypes.includes(t));
1159
+ }
1160
+ function ai(e, t) {
1161
+ if (t)
1162
+ return e.targets.find((n) => n.id === t);
1163
+ }
1164
+ function tt(e) {
1165
+ return e?.kind === "assignment";
1166
+ }
1167
+ function oi(e) {
1168
+ const { trigger: t, agentId: n, target: i, activityType: r, assigneeUserId: a, authorUserId: o } = e;
1169
+ return tt(t) ? n ? i ? i.activityTypes.includes(r) ? a ? a !== n ? "assigned to someone else" : o && o === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${i.assigneePath}` : `activity type ${r} does not announce an assignment for ${i.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1170
+ }
1171
+ function nt(e) {
1172
+ return `${e.type}:${e.id}`;
1173
+ }
1174
+ const it = "interaction";
1175
+ function rt(e) {
1176
+ return e?.type === it ? e.id : void 0;
1177
+ }
1178
+ const at = 64, ot = 8e3;
1179
+ function si(e) {
1022
1180
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1023
1181
  if (!(!Number.isFinite(t) || t <= 0))
1024
- return Math.min(Math.max(Math.round(t), Fe), He);
1182
+ return Math.min(Math.max(Math.round(t), at), ot);
1183
+ }
1184
+ const li = { kind: "workflow", steps: [] };
1185
+ function ci(e) {
1186
+ return e?.kind === "workflow" ? e.steps : [];
1025
1187
  }
1026
- const Ve = ["done", "escalated", "failed", "timed_out", "stopped"], je = ["awaiting_approval", "awaiting_reply"];
1027
- function Xe(e) {
1028
- return Ve.includes(e);
1188
+ function ui(e) {
1189
+ return e?.kind === "procedure" ? e.procedure : void 0;
1029
1190
  }
1030
- function Sn(e) {
1031
- return Xe(e);
1191
+ const st = ["done", "escalated", "failed", "stopped"];
1192
+ function di(e) {
1193
+ return st.includes(e);
1032
1194
  }
1033
- function In(e) {
1034
- return je.includes(e);
1195
+ function lt(e) {
1196
+ return e === "waiting";
1197
+ }
1198
+ function pi(e) {
1199
+ return e === "running" || lt(e);
1200
+ }
1201
+ function me(e) {
1202
+ return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1035
1203
  }
1036
- function Mn(e, t) {
1204
+ function fi(e) {
1205
+ const t = me(e);
1206
+ return t ? nt(t) : void 0;
1207
+ }
1208
+ function mi(e) {
1209
+ return rt(me(e));
1210
+ }
1211
+ function gi(e, t) {
1037
1212
  const n = e.labels ?? [];
1038
1213
  return n.find((i) => i.locale === t)?.label ?? n[0]?.label ?? e.url;
1039
1214
  }
1040
- function Cn(e, t, n) {
1215
+ function hi(e, t, n) {
1041
1216
  const i = e.translations ?? [];
1042
1217
  return i.find((r) => r.locale === t) ?? (n ? i.find((r) => r.locale === n) : void 0) ?? { locale: t };
1043
1218
  }
1044
- const j = [
1219
+ const J = [
1045
1220
  { code: "nl", label: "Nederlands", english: "Dutch" },
1046
1221
  { code: "en", label: "English", english: "English" },
1047
1222
  { code: "de", label: "Deutsch", english: "German" },
@@ -1056,36 +1231,36 @@ const j = [
1056
1231
  { code: "fi", label: "Suomi", english: "Finnish" },
1057
1232
  { code: "tr", label: "Türkçe", english: "Turkish" }
1058
1233
  ];
1059
- function se(e) {
1234
+ function ge(e) {
1060
1235
  const t = (e ?? "").toLowerCase();
1061
- return j.find((n) => n.code === t) ?? j.find((n) => n.code === t.split("-")[0]);
1236
+ return J.find((n) => n.code === t) ?? J.find((n) => n.code === t.split("-")[0]);
1062
1237
  }
1063
- function xn(e) {
1064
- return se(e)?.label ?? e;
1238
+ function Ai(e) {
1239
+ return ge(e)?.label ?? e;
1065
1240
  }
1066
- function Nn(e) {
1067
- const t = se(e);
1241
+ function yi(e) {
1242
+ const t = ge(e);
1068
1243
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1069
1244
  }
1070
- const le = 3;
1071
- function We(e, t) {
1245
+ const he = 3;
1246
+ function ct(e, t) {
1072
1247
  const n = /* @__PURE__ */ new Set();
1073
1248
  let i = 1, r = t.get(e)?.parentId;
1074
1249
  for (; r; ) {
1075
- if (n.has(r) || (n.add(r), i++, i > le + 1)) return 1 / 0;
1250
+ if (n.has(r) || (n.add(r), i++, i > he + 1)) return 1 / 0;
1076
1251
  r = t.get(r)?.parentId;
1077
1252
  }
1078
1253
  return i;
1079
1254
  }
1080
- function vn(e, t, n) {
1255
+ function bi(e, t, n) {
1081
1256
  if (!e) return !0;
1082
1257
  if (e === t) return !1;
1083
1258
  const i = new Map(n.map((o) => [o.id, o]));
1084
- if (!i.has(e) || t && Ye(e, t, i)) return !1;
1085
- const r = We(e, i), a = t ? ce(t, n) : 1;
1086
- return r + a <= le;
1259
+ if (!i.has(e) || t && ut(e, t, i)) return !1;
1260
+ const r = ct(e, i), a = t ? Ae(t, n) : 1;
1261
+ return r + a <= he;
1087
1262
  }
1088
- function Ye(e, t, n) {
1263
+ function ut(e, t, n) {
1089
1264
  const i = /* @__PURE__ */ new Set();
1090
1265
  let r = n.get(e)?.parentId;
1091
1266
  for (; r; ) {
@@ -1095,66 +1270,66 @@ function Ye(e, t, n) {
1095
1270
  }
1096
1271
  return !1;
1097
1272
  }
1098
- function ce(e, t, n = /* @__PURE__ */ new Set()) {
1273
+ function Ae(e, t, n = /* @__PURE__ */ new Set()) {
1099
1274
  if (n.has(e)) return 1;
1100
1275
  n.add(e);
1101
1276
  const i = t.filter((r) => r.parentId === e);
1102
- return i.length ? 1 + Math.max(...i.map((r) => ce(r.id, t, n))) : 1;
1277
+ return i.length ? 1 + Math.max(...i.map((r) => Ae(r.id, t, n))) : 1;
1103
1278
  }
1104
- const ze = "en";
1105
- function qe(e) {
1106
- return e.defaultLocale || e.locale || ze;
1279
+ const dt = "en";
1280
+ function pt(e) {
1281
+ return e.defaultLocale || e.locale || dt;
1107
1282
  }
1108
- function kn(e) {
1283
+ function Ei(e) {
1109
1284
  const t = /* @__PURE__ */ new Set(), n = [];
1110
- for (const i of [qe(e), ...e.locales ?? []])
1285
+ for (const i of [pt(e), ...e.locales ?? []])
1111
1286
  !i || t.has(i) || (t.add(i), n.push(i));
1112
1287
  return n;
1113
1288
  }
1114
- function On(e, t, n) {
1289
+ function Si(e, t, n) {
1115
1290
  const i = e.translations ?? [];
1116
1291
  return i.find((r) => r.locale === t)?.name ?? (n ? i.find((r) => r.locale === n)?.name : void 0) ?? e.name;
1117
1292
  }
1118
- const Je = 20, Qe = 20, x = 300;
1293
+ const ft = 20, mt = 20, N = 300;
1119
1294
  function g(e) {
1120
1295
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
1121
1296
  }
1122
- function Ze(e) {
1297
+ function gt(e) {
1123
1298
  const t = e.replace(/\s+/g, " ").trim();
1124
- if (t.length <= x) return t;
1125
- const n = t.slice(0, x), i = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1126
- return i > x * 0.6 ? n.slice(0, i + 1) : `${n.trimEnd()}…`;
1299
+ if (t.length <= N) return t;
1300
+ const n = t.slice(0, N), i = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1301
+ return i > N * 0.6 ? n.slice(0, i + 1) : `${n.trimEnd()}…`;
1127
1302
  }
1128
- function Ln(e, t) {
1129
- const n = Ze(t.text), i = g(n);
1303
+ function Ti(e, t) {
1304
+ const n = gt(t.text), i = g(n);
1130
1305
  if (!i || (e.examples ?? []).some((o) => g(o) === i)) return null;
1131
1306
  const r = e.exampleCandidates ?? [], a = r.findIndex((o) => g(o.text) === i);
1132
1307
  if (a >= 0) {
1133
1308
  if (r[a].corrected || !t.corrected) return null;
1134
1309
  const o = [...r];
1135
- return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, X(o);
1310
+ return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, Q(o);
1136
1311
  }
1137
- return X([{ ...t, text: n }, ...r]).slice(0, Qe);
1312
+ return Q([{ ...t, text: n }, ...r]).slice(0, mt);
1138
1313
  }
1139
- function X(e) {
1314
+ function Q(e) {
1140
1315
  return [...e].sort((t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt);
1141
1316
  }
1142
- function $n(e, t) {
1317
+ function _i(e, t) {
1143
1318
  const n = g(t), i = (e.examples ?? []).filter((a) => a.trim());
1144
- return { examples: i.some((a) => g(a) === n) ? i : [...i, t].slice(-Je), exampleCandidates: et(e, t) };
1319
+ return { examples: i.some((a) => g(a) === n) ? i : [...i, t].slice(-ft), exampleCandidates: ht(e, t) };
1145
1320
  }
1146
- function et(e, t) {
1321
+ function ht(e, t) {
1147
1322
  const n = g(t);
1148
1323
  return (e.exampleCandidates ?? []).filter((i) => g(i.text) !== n);
1149
1324
  }
1150
- function tt(e, t) {
1325
+ function At(e, t) {
1151
1326
  const n = e.ownerScope;
1152
1327
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1153
1328
  }
1154
- function Rn(e, t) {
1155
- return e.filter((n) => tt(n, t));
1329
+ function Ii(e, t) {
1330
+ return e.filter((n) => At(n, t));
1156
1331
  }
1157
- const ue = [
1332
+ const ye = [
1158
1333
  {
1159
1334
  id: "openai",
1160
1335
  attachmentKinds: ["image", "pdf"],
@@ -1245,72 +1420,78 @@ const ue = [
1245
1420
  defaultModel: "default"
1246
1421
  }
1247
1422
  ];
1248
- function _(e) {
1249
- return ue.find((t) => t.id === e);
1423
+ function S(e) {
1424
+ return ye.find((t) => t.id === e);
1250
1425
  }
1251
- function wn(e) {
1252
- return _(e)?.label ?? e;
1426
+ function Mi(e) {
1427
+ return S(e)?.label ?? e;
1253
1428
  }
1254
- function Dn(e, t = "gpt-5-mini") {
1255
- return _(e)?.defaultModel ?? t;
1429
+ function Ci(e, t = "gpt-5-mini") {
1430
+ return S(e)?.defaultModel ?? t;
1256
1431
  }
1257
- function Pn(e) {
1258
- return ue.filter((t) => t.capabilities.includes(e));
1432
+ function wi(e) {
1433
+ return ye.filter((t) => t.capabilities.includes(e));
1259
1434
  }
1260
- function Un(e) {
1261
- const t = _(e);
1435
+ function ki(e) {
1436
+ const t = S(e);
1262
1437
  return !!t && !t.baseUrl;
1263
1438
  }
1264
- function Kn(e, t) {
1265
- return t === "text" ? !0 : _(e)?.attachmentKinds?.includes(t) === !0;
1439
+ function vi(e, t) {
1440
+ return t === "text" ? !0 : S(e)?.attachmentKinds?.includes(t) === !0;
1266
1441
  }
1267
- function Bn(e, t) {
1442
+ function Ni(e, t) {
1268
1443
  if (!e.enabled) return "ok";
1269
- const n = W(e.hardLimitNanos), i = W(e.softLimitNanos);
1444
+ const n = Z(e.hardLimitNanos), i = Z(e.softLimitNanos);
1270
1445
  return n !== void 0 && t >= n ? "hard" : i !== void 0 && t >= i ? "soft" : "ok";
1271
1446
  }
1272
- function W(e) {
1447
+ function Z(e) {
1273
1448
  return typeof e == "number" ? e : void 0;
1274
1449
  }
1275
- function nt(e, t = "month") {
1450
+ function yt(e, t = "month") {
1276
1451
  const n = new Date(e);
1277
1452
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
1278
1453
  }
1279
- function Gn(e, t = "month") {
1280
- const n = new Date(nt(e, t));
1454
+ function xi(e, t = "month") {
1455
+ const n = new Date(yt(e, t));
1281
1456
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
1282
1457
  }
1283
- const Fn = /* @__PURE__ */ new Set(["mail", "message"]);
1284
- function it(e, t) {
1458
+ function Oi(e) {
1459
+ return e?.listeningEnabled !== !1;
1460
+ }
1461
+ const Li = /* @__PURE__ */ new Set(["mail", "message"]);
1462
+ function bt(e, t) {
1285
1463
  const n = e.settings?.signatures?.[t];
1286
1464
  return !n || !n.enabled || !n.body || n.body.trim() === "" ? null : n;
1287
1465
  }
1288
- function Hn(e, t, n, i = "html") {
1466
+ function $i(e, t, n, i = "html") {
1289
1467
  if (!e) return n;
1290
- const r = it(e, t);
1468
+ const r = bt(e, t);
1291
1469
  return r ? `${n}${i === "text" ? `
1292
1470
 
1293
1471
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${r.body}` : n;
1294
1472
  }
1295
- function Vn(e) {
1473
+ function Di(e) {
1296
1474
  return e.endpoints ?? [];
1297
1475
  }
1298
- const jn = (e) => !!e.assignedUserId || !!e.assignedInboxId, Xn = (e) => e.status === "closed", Wn = (e) => ({
1476
+ const Ri = (e) => !!e.assignedUserId || !!e.assignedInboxId, Pi = (e) => e.status === "closed", Ui = (e) => ({
1299
1477
  urgent: 10,
1300
1478
  high: 5,
1301
1479
  normal: 2,
1302
1480
  low: 1
1303
- })[e.priority] || 0, Yn = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1304
- function zn(e, t) {
1481
+ })[e.priority] || 0, Ki = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1482
+ function ji(e, t) {
1305
1483
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1306
1484
  }
1307
- const qn = 1e3, Jn = 2e3, Qn = 500, Zn = 12e3, ei = 4e3, rt = ["contact", "company"];
1308
- function ti(e) {
1485
+ const Gi = 1e3, Bi = 2e3, Fi = 500, Hi = 12e3, Vi = 4e3, Et = ["contact", "company"];
1486
+ function Wi(e) {
1309
1487
  if (!e) return !1;
1310
1488
  const t = e.slice(0, e.indexOf(":"));
1311
- return rt.includes(t);
1489
+ return Et.includes(t);
1490
+ }
1491
+ function zi(e) {
1492
+ return e.type === "agent";
1312
1493
  }
1313
- const k = {
1494
+ const L = {
1314
1495
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
1315
1496
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
1316
1497
  // An over-permissive key is harmless — it simply matches nothing.
@@ -1333,81 +1514,81 @@ const k = {
1333
1514
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
1334
1515
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
1335
1516
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
1336
- }, at = "NL", ot = 15, st = 8, lt = Array.from(
1337
- new Set(Object.values(k).map((e) => e.callingCode))
1517
+ }, St = "NL", Tt = 15, _t = 8, It = Array.from(
1518
+ new Set(Object.values(L).map((e) => e.callingCode))
1338
1519
  ).sort((e, t) => t.length - e.length);
1339
- function Y(e) {
1520
+ function ee(e) {
1340
1521
  if (e)
1341
- return k[e.trim().toUpperCase()];
1522
+ return L[e.trim().toUpperCase()];
1342
1523
  }
1343
- function A(e, t) {
1524
+ function E(e, t) {
1344
1525
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
1345
1526
  }
1346
- function z(e) {
1347
- if (e.length > ot) return null;
1348
- for (const t of lt) {
1527
+ function te(e) {
1528
+ if (e.length > Tt) return null;
1529
+ for (const t of It) {
1349
1530
  if (!e.startsWith(t)) continue;
1350
1531
  const n = e.slice(t.length);
1351
- for (const i of Object.values(k)) {
1532
+ for (const i of Object.values(L)) {
1352
1533
  if (i.callingCode !== t) continue;
1353
1534
  const r = i.trunkPrefix, a = r && n.startsWith(r) ? n.slice(r.length) : n;
1354
- if (A(a, i)) return `+${t}${a}`;
1535
+ if (E(a, i)) return `+${t}${a}`;
1355
1536
  }
1356
1537
  return null;
1357
1538
  }
1358
- return e.length < st ? null : `+${e}`;
1539
+ return e.length < _t ? null : `+${e}`;
1359
1540
  }
1360
- function ct(e) {
1541
+ function Mt(e) {
1361
1542
  let t = e.trim();
1362
1543
  const n = t.match(/^(sips?|tel|whatsapp):/i);
1363
1544
  n && (t = t.slice(n[0].length));
1364
1545
  const i = t.indexOf("@");
1365
1546
  return i >= 0 && (t = t.slice(0, i)), t.trim();
1366
1547
  }
1367
- function ni(e) {
1548
+ function Xi(e) {
1368
1549
  if (!e) return !1;
1369
1550
  const t = e.indexOf("@");
1370
1551
  if (t <= 0) return !1;
1371
1552
  const n = e.slice(0, t).trim();
1372
1553
  return !/^[+\d\s().-]+$/.test(n);
1373
1554
  }
1374
- function q(e, t) {
1555
+ function ne(e, t) {
1375
1556
  if (!e) return null;
1376
- const n = ct(e);
1557
+ const n = Mt(e);
1377
1558
  if (!n) return null;
1378
1559
  const i = n.startsWith("+"), r = n.replace(/\D/g, "");
1379
1560
  if (!r) return null;
1380
- if (i) return z(r);
1381
- if (r.startsWith("00")) return z(r.slice(2));
1382
- const a = Y(t) ?? Y(at);
1561
+ if (i) return te(r);
1562
+ if (r.startsWith("00")) return te(r.slice(2));
1563
+ const a = ee(t) ?? ee(St);
1383
1564
  if (!a) return null;
1384
1565
  const o = a.trunkPrefix;
1385
1566
  if (o && r.startsWith(o)) {
1386
1567
  const s = r.slice(o.length);
1387
- return A(s, a) ? `+${a.callingCode}${s}` : null;
1568
+ return E(s, a) ? `+${a.callingCode}${s}` : null;
1388
1569
  }
1389
1570
  if (r.startsWith(a.callingCode)) {
1390
1571
  const s = r.slice(a.callingCode.length);
1391
- if (A(s, a)) return `+${a.callingCode}${s}`;
1572
+ if (E(s, a)) return `+${a.callingCode}${s}`;
1392
1573
  }
1393
- return !o && A(r, a) ? `+${a.callingCode}${r}` : null;
1574
+ return !o && E(r, a) ? `+${a.callingCode}${r}` : null;
1394
1575
  }
1395
- function ii(e, t = 9) {
1576
+ function Yi(e, t = 9) {
1396
1577
  const n = (e ?? "").replace(/\D/g, "");
1397
1578
  return n.length < t ? null : n.slice(-t);
1398
1579
  }
1399
- function pe(e) {
1580
+ function be(e) {
1400
1581
  if (!e) return null;
1401
1582
  const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
1402
1583
  if (n <= 0 || n === t.length - 1) return null;
1403
1584
  const i = t.slice(0, n).split("+")[0], r = t.slice(n + 1);
1404
1585
  return !i || !r.includes(".") ? null : `${i}@${r}`;
1405
1586
  }
1406
- function ri(e) {
1407
- const t = pe(e);
1587
+ function qi(e) {
1588
+ const t = be(e);
1408
1589
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
1409
1590
  }
1410
- const ut = /* @__PURE__ */ new Set([
1591
+ const Ct = /* @__PURE__ */ new Set([
1411
1592
  "co.uk",
1412
1593
  "org.uk",
1413
1594
  "gov.uk",
@@ -1417,14 +1598,14 @@ const ut = /* @__PURE__ */ new Set([
1417
1598
  "com.br",
1418
1599
  "co.za"
1419
1600
  ]);
1420
- function pt(e) {
1601
+ function wt(e) {
1421
1602
  if (!e) return null;
1422
1603
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
1423
1604
  if (t.length < 2) return null;
1424
1605
  const n = t.slice(-2).join(".");
1425
- return ut.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1606
+ return Ct.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
1426
1607
  }
1427
- const dt = /* @__PURE__ */ new Set([
1608
+ const kt = /* @__PURE__ */ new Set([
1428
1609
  "gmail.com",
1429
1610
  "googlemail.com",
1430
1611
  "outlook.com",
@@ -1469,44 +1650,44 @@ const dt = /* @__PURE__ */ new Set([
1469
1650
  "proximus.be",
1470
1651
  "scarlet.be"
1471
1652
  ]);
1472
- function ai(e) {
1473
- const t = pt(e);
1474
- return t ? dt.has(t) : !1;
1653
+ function Ji(e) {
1654
+ const t = wt(e);
1655
+ return t ? kt.has(t) : !1;
1475
1656
  }
1476
- function oi(e) {
1657
+ function Qi(e) {
1477
1658
  if (!e) return !1;
1478
1659
  const t = e.trim().toLowerCase();
1479
1660
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
1480
1661
  }
1481
- function si(e, t, n) {
1662
+ function Zi(e, t, n) {
1482
1663
  if (!e || !t) return null;
1483
1664
  const i = e.trim().toLowerCase();
1484
1665
  if (i === "tel" || i === "sms" || i === "whatsapp") {
1485
- const a = q(t, n);
1666
+ const a = ne(t, n);
1486
1667
  return a ? `tel:${a}` : null;
1487
1668
  }
1488
1669
  if (i === "fax") {
1489
- const a = q(t, n);
1670
+ const a = ne(t, n);
1490
1671
  return a ? `fax:${a}` : null;
1491
1672
  }
1492
1673
  if (i === "mailto" || i === "email") {
1493
- const a = pe(t);
1674
+ const a = be(t);
1494
1675
  return a ? `mailto:${a}` : null;
1495
1676
  }
1496
1677
  const r = t.trim().toLowerCase();
1497
1678
  return r ? `${i}:${r}` : null;
1498
1679
  }
1499
- const ft = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, mt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1500
- function li(e) {
1680
+ const vt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Nt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
1681
+ function er(e) {
1501
1682
  if (typeof e != "string" || !e) return "";
1502
1683
  let t = e;
1503
1684
  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(`
1504
1685
  `).map(
1505
1686
  (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,}$/, "")
1506
1687
  ).join(`
1507
- `), t = t.replace(ft, "$2"), t = t.replace(mt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1688
+ `), t = t.replace(vt, "$2"), t = t.replace(Nt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
1508
1689
  }
1509
- const gt = [
1690
+ const xt = [
1510
1691
  /<blockquote/i,
1511
1692
  /class="?gmail_quote/i,
1512
1693
  // Gmail quote container
@@ -1519,17 +1700,17 @@ const gt = [
1519
1700
  // Outlook underscore separator before "From:"
1520
1701
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
1521
1702
  // Gmail "On <date> <name> wrote:"
1522
- ], J = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, ht = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1523
- function yt(e) {
1703
+ ], ie = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Ot = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
1704
+ function Lt(e) {
1524
1705
  const t = e.split(`
1525
1706
  `);
1526
1707
  for (let n = 0; n < t.length; n++)
1527
- if (ht.test(t[n]) || J.test(t[n]) && t.slice(n + 1, n + 4).some((i) => J.test(i)))
1708
+ if (Ot.test(t[n]) || ie.test(t[n]) && t.slice(n + 1, n + 4).some((i) => ie.test(i)))
1528
1709
  return t.slice(0, n).join(`
1529
1710
  `).trim();
1530
1711
  return e;
1531
1712
  }
1532
- function Q(e) {
1713
+ function re(e) {
1533
1714
  let t = e;
1534
1715
  return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
1535
1716
  `), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
@@ -1537,38 +1718,38 @@ function Q(e) {
1537
1718
  `), t = t.replace(/<\/(div|li|tr)>/gi, `
1538
1719
  `), t = t.replace(/<\/(td|th)>/gi, " "), t = t.replace(/<[^>]+>/g, ""), t = t.replace(/<[^>]*$/, ""), t;
1539
1720
  }
1540
- function Z(e) {
1721
+ function ae(e) {
1541
1722
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
1542
1723
  }
1543
- function ee(e) {
1544
- 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, "&");
1724
+ function oe(e) {
1725
+ return e.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => ae(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ae(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
1545
1726
  }
1546
- function te(e) {
1727
+ function se(e) {
1547
1728
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
1548
1729
  `).replace(/\n{3,}/g, `
1549
1730
 
1550
1731
  `).trim();
1551
1732
  }
1552
- function ci(e) {
1733
+ function tr(e) {
1553
1734
  if (typeof e != "string" || !e) return "";
1554
1735
  let t = e.length;
1555
- for (const a of gt) {
1736
+ for (const a of xt) {
1556
1737
  const o = e.search(a);
1557
1738
  o >= 0 && o < t && (t = o);
1558
1739
  }
1559
1740
  const n = e.slice(0, t);
1560
- let i = te(ee(Q(n)));
1561
- return i || (i = te(ee(Q(e)))), yt(i) || i;
1741
+ let i = se(oe(re(n)));
1742
+ return i || (i = se(oe(re(e)))), Lt(i) || i;
1562
1743
  }
1563
- const bt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Et = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1564
- function ui(e, t) {
1565
- return !!(e && bt.test(e) || t && Et.test(t));
1744
+ const $t = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Dt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1745
+ function nr(e, t) {
1746
+ return !!(e && $t.test(e) || t && Dt.test(t));
1566
1747
  }
1567
- const At = 3, _t = 600;
1568
- function pi(e, t) {
1569
- return e >= At || t >= _t;
1748
+ const Rt = 3, Pt = 600;
1749
+ function ir(e, t) {
1750
+ return e >= Rt || t >= Pt;
1570
1751
  }
1571
- const Tt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), St = /* @__PURE__ */ new Set([
1752
+ const Ut = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Kt = /* @__PURE__ */ new Set([
1572
1753
  "text/plain",
1573
1754
  "text/markdown",
1574
1755
  "text/csv",
@@ -1577,29 +1758,40 @@ const Tt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1577
1758
  "application/xml",
1578
1759
  "text/xml"
1579
1760
  ]);
1580
- function It(e) {
1761
+ function jt(e) {
1581
1762
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1582
- return t ? Tt.has(t) ? "image" : t === "application/pdf" ? "pdf" : St.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1763
+ return t ? Ut.has(t) ? "image" : t === "application/pdf" ? "pdf" : Kt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1583
1764
  }
1584
- const h = 1024 * 1024, Mt = {
1765
+ const h = 1024 * 1024, Gt = {
1585
1766
  image: 5 * h,
1586
1767
  pdf: 20 * h,
1587
1768
  text: 1 * h,
1588
1769
  audio: 20 * h
1589
- }, di = 25 * h, fi = 5;
1590
- function mi(e, t) {
1591
- const n = It(e);
1592
- return n === "unsupported" ? "unsupported" : t > Mt[n] ? "too-large" : null;
1770
+ }, rr = 25 * h, ar = 5;
1771
+ function or(e, t) {
1772
+ const n = jt(e);
1773
+ return n === "unsupported" ? "unsupported" : t > Gt[n] ? "too-large" : null;
1774
+ }
1775
+ function Bt(e) {
1776
+ return `${e.kind}:${e.id || e.url || e.title}`;
1777
+ }
1778
+ function sr(e, t = []) {
1779
+ const n = new Set(t), i = [], r = [];
1780
+ for (const a of e) {
1781
+ const o = Bt(a);
1782
+ n.has(o) || (n.add(o), i.push(a), r.push(o));
1783
+ }
1784
+ return { sources: i, keys: r };
1593
1785
  }
1594
- function Ct(e, t) {
1595
- const n = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, r = t.intents.filter((o) => !n.has(o.intent)).map((o) => Nt(o, i[o.intent]));
1786
+ function Ft(e, t) {
1787
+ const n = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, r = t.intents.filter((o) => !n.has(o.intent)).map((o) => Vt(o, i[o.intent]));
1596
1788
  if (!e.extraIntents || e.extraIntents.length === 0) return r;
1597
1789
  const a = new Set(r.map((o) => o.intent));
1598
1790
  for (const o of e.extraIntents)
1599
1791
  a.has(o.intent) || (r.push(o), a.add(o.intent));
1600
1792
  return r;
1601
1793
  }
1602
- function xt(e, t) {
1794
+ function Ht(e, t) {
1603
1795
  const n = {};
1604
1796
  for (const i of e.intents) {
1605
1797
  if (!i.togglable) continue;
@@ -1608,46 +1800,46 @@ function xt(e, t) {
1608
1800
  }
1609
1801
  return n;
1610
1802
  }
1611
- function gi(e, t) {
1612
- const n = xt(e, t);
1803
+ function lr(e, t) {
1804
+ const n = Ht(e, t);
1613
1805
  return Object.entries(n).filter(([, i]) => !i).map(([i]) => i);
1614
1806
  }
1615
- function Nt(e, t) {
1807
+ function Vt(e, t) {
1616
1808
  return t ? {
1617
1809
  intent: t.intent ?? e.intent,
1618
1810
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
1619
1811
  transport: t.transport ?? e.transport
1620
1812
  } : e;
1621
1813
  }
1622
- function hi(e, t) {
1814
+ function cr(e, t) {
1623
1815
  const n = [];
1624
1816
  for (const i of e) {
1625
1817
  if (!i.enabled) continue;
1626
1818
  const r = t[i.providerId];
1627
1819
  if (r)
1628
- for (const a of Ct(i, r))
1820
+ for (const a of Ft(i, r))
1629
1821
  n.push({ channel: i, description: r, capability: a });
1630
1822
  }
1631
1823
  return n;
1632
1824
  }
1633
- function yi(e, t) {
1825
+ function ur(e, t) {
1634
1826
  return t.filter((n) => n.capability.intent === e);
1635
1827
  }
1636
- function vt(e, t) {
1828
+ function Wt(e, t) {
1637
1829
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1638
1830
  }
1639
- function bi(e, t) {
1640
- return vt(e.scheme, t);
1831
+ function dr(e, t) {
1832
+ return Wt(e.scheme, t);
1641
1833
  }
1642
- function Ei(e, t, n) {
1834
+ function pr(e, t, n) {
1643
1835
  const i = [];
1644
1836
  for (const r of e)
1645
1837
  for (const a of n)
1646
1838
  a.capability.intent === t && a.capability.targetSchemes.includes(r.scheme) && i.push({ channelIntent: a, endpoint: r });
1647
1839
  return i;
1648
1840
  }
1649
- var kt = /* @__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))(kt || {});
1650
- const Ot = {
1841
+ var zt = /* @__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))(zt || {});
1842
+ const Xt = {
1651
1843
  mailto: "mail",
1652
1844
  sip: "tel",
1653
1845
  tel: "tel",
@@ -1669,10 +1861,10 @@ const Ot = {
1669
1861
  id: "note",
1670
1862
  custom: "note"
1671
1863
  };
1672
- function Ai(e) {
1673
- return e ? Ot[e] ?? "note" : "note";
1864
+ function fr(e) {
1865
+ return e ? Xt[e] ?? "note" : "note";
1674
1866
  }
1675
- const _i = "message_window", Ti = "message_templates", Si = {
1867
+ const mr = "message_window", gr = "message_templates", hr = {
1676
1868
  // E-mail
1677
1869
  FROM: "from",
1678
1870
  TO: "to",
@@ -1689,26 +1881,26 @@ const _i = "message_window", Ti = "message_templates", Si = {
1689
1881
  // Voice/conference
1690
1882
  HOST: "host",
1691
1883
  PARTICIPANT: "participant"
1692
- }, Ii = (e, t) => ({ intent: e, ...t }), Mi = "folder_management", Ci = "remote_search", xi = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, de = "auth";
1693
- function fe(e) {
1884
+ }, Ar = (e, t) => ({ intent: e, ...t }), yr = "folder_management", br = "remote_search", Er = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, Ee = "auth";
1885
+ function Se(e) {
1694
1886
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
1695
1887
  return t ? t[1] : null;
1696
1888
  }
1697
- function Ni(e) {
1698
- const t = fe(e);
1699
- return t ? t !== de : typeof e == "string" && e.startsWith("/wake");
1889
+ function Sr(e) {
1890
+ const t = Se(e);
1891
+ return t ? t !== Ee : typeof e == "string" && e.startsWith("/wake");
1700
1892
  }
1701
- function vi(e) {
1702
- return typeof e != "string" || e === "" || e === "/" ? !0 : fe(e) === de;
1893
+ function Tr(e) {
1894
+ return typeof e != "string" || e === "" || e === "/" ? !0 : Se(e) === Ee;
1703
1895
  }
1704
- function Lt(e) {
1896
+ function Yt(e) {
1705
1897
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1706
1898
  }
1707
- function $t(e) {
1708
- const n = e.split("/").filter(Boolean).map((i) => i.startsWith(":") ? i.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + Lt(i)).join("");
1899
+ function qt(e) {
1900
+ const n = e.split("/").filter(Boolean).map((i) => i.startsWith(":") ? i.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + Yt(i)).join("");
1709
1901
  return new RegExp(`^${n}\\/?$`);
1710
1902
  }
1711
- function Rt(e, t) {
1903
+ function Jt(e, t) {
1712
1904
  const n = e.split("/").filter(Boolean), i = t.split("/").filter(Boolean), r = {};
1713
1905
  return n.forEach((a, o) => {
1714
1906
  if (a.startsWith(":")) {
@@ -1717,14 +1909,14 @@ function Rt(e, t) {
1717
1909
  }
1718
1910
  }), r;
1719
1911
  }
1720
- function wt(e) {
1912
+ function Qt(e) {
1721
1913
  return e.publicBasePath ?? `/apps/${e.name}`;
1722
1914
  }
1723
- function ki(e) {
1915
+ function _r(e) {
1724
1916
  const t = [];
1725
1917
  for (const n of e) {
1726
1918
  if (!n?.name) continue;
1727
- const i = wt(n);
1919
+ const i = Qt(n);
1728
1920
  for (const r of n.routes ?? []) {
1729
1921
  if (!r.public) continue;
1730
1922
  const a = r.path === "/" ? "" : r.path;
@@ -1738,7 +1930,7 @@ function ki(e) {
1738
1930
  }
1739
1931
  return t;
1740
1932
  }
1741
- function Dt(e, t) {
1933
+ function Zt(e, t) {
1742
1934
  const n = e.split("/").filter(Boolean), i = t.split("/").filter(Boolean);
1743
1935
  for (let r = 0; r < Math.min(n.length, i.length); r++) {
1744
1936
  const a = n[r].startsWith(":"), o = i[r].startsWith(":");
@@ -1746,204 +1938,566 @@ function Dt(e, t) {
1746
1938
  }
1747
1939
  return n.length > i.length;
1748
1940
  }
1749
- function Pt(e, t) {
1941
+ function en(e, t) {
1750
1942
  if (typeof e != "string") return null;
1751
1943
  let n = null;
1752
1944
  for (const i of t)
1753
- $t(i.pattern).test(e) && (!n || Dt(i.pattern, n.pattern)) && (n = i);
1754
- return n ? { ...n, params: { ...n.props, ...Rt(n.pattern, e) } } : null;
1755
- }
1756
- function Oi(e, t) {
1757
- return Pt(e, t) !== null;
1945
+ qt(i.pattern).test(e) && (!n || Zt(i.pattern, n.pattern)) && (n = i);
1946
+ return n ? { ...n, params: { ...n.props, ...Jt(n.pattern, e) } } : null;
1947
+ }
1948
+ function Ir(e, t) {
1949
+ return en(e, t) !== null;
1950
+ }
1951
+ const tn = {
1952
+ afrikaans: [
1953
+ "[Muziek]",
1954
+ "(C) TV GELDERLAND 2021",
1955
+ "*Thomp thomp thomp*",
1956
+ "www.youtube.com",
1957
+ "ä n wood s",
1958
+ "!.."
1959
+ ],
1960
+ english: [
1961
+ "[applause]",
1962
+ "[APPLAUSE]",
1963
+ "(claps)",
1964
+ "(clapping)",
1965
+ "(audience applauds)",
1966
+ "(keyboard clicking)",
1967
+ "(keyboard clacking)",
1968
+ "(clicking)",
1969
+ "[CLICK]",
1970
+ "[BLANK_AUDIO]",
1971
+ "(upbeat music)",
1972
+ "(dramatic music)",
1973
+ "[music playing]",
1974
+ "(electronic music)",
1975
+ "(audience cheering)",
1976
+ "(audience cheers)",
1977
+ "[MUSIC]",
1978
+ "( ( ( ( ) ( ) ( ) ( )",
1979
+ "(laughs)",
1980
+ "(air whooshing)",
1981
+ "<u>Transcribed</u> by https://otter.ai",
1982
+ "All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is",
1983
+ "www.mooji.org",
1984
+ "KATHRYN A new forecast is coming up... A new forecast is coming up...",
1985
+ "KATHRYN pandemic started. increasing since the The pandemic has been",
1986
+ "A new look at your forecast this morning... A new look at your",
1987
+ "We'll be right back.",
1988
+ "We'll see you next week.",
1989
+ "Thanks for watching!",
1990
+ "❤️ Translated by Amara.org Communit"
1991
+ ],
1992
+ flemish: [
1993
+ "*clap*",
1994
+ "TV GELDERLAND 2020",
1995
+ "TV Gelderland 2021",
1996
+ "(C) TV GELDERLAND 2021",
1997
+ "[Muziek]",
1998
+ "Kuman",
1999
+ "Ondertitels ingediend door de Amara.org gemeenschap",
2000
+ "Ondertiteld door de Amara.org gemeenschap",
2001
+ "Dank u wel voor het kijken.",
2002
+ "Ondertiteling door de Amara.org gemeenschap",
2003
+ "GELUID VAN MAHIH U similarly"
2004
+ ],
2005
+ french: [
2006
+ "(applaudissements)",
2007
+ "[Applaudissements]",
2008
+ "Sous-titres réalisés par la communauté d'Amara.org",
2009
+ "- Bonne journée. - Bonjour.",
2010
+ "POP POP הי",
2011
+ "Merci d'avoir regardé cette vidéo.",
2012
+ "Merci d'avoir regardé cette vidéo!",
2013
+ "Merci d'avoir regardé la vidéo.",
2014
+ "J'espère que vous avez apprécié la vidéo.",
2015
+ "Je vous remercie de vous abonner",
2016
+ "Merci d'avoir regardé!",
2017
+ "❤️ par SousTitreur.com",
2018
+ "— Sous-titrage ST'501 —",
2019
+ "Thanks for watching!",
2020
+ "Sous-titres réalisés par l'Amara.org",
2021
+ "Sous-titres réalisés para la communauté d'Amara.org",
2022
+ "Sous-titres réalisés par la communauté d'Amara.org",
2023
+ "Sous-titres fait par Sous-titres par Amara.org",
2024
+ "Sous-titres réalisés par les SousTitres d'Amara.org",
2025
+ "Sous-titres par Amara.org",
2026
+ "Sous-titres par la communauté d'Amara.org",
2027
+ "Sous-titres réalisés pour la communauté d'Amara.org",
2028
+ "Sous-titres réalisés par la communauté de l'Amara.org",
2029
+ "Sous-Titres faits par la communauté d'Amara.org",
2030
+ "Sous-titres par l'Amara.org",
2031
+ "Sous-titres fait par la communauté d'Amara.org",
2032
+ "Sous-titrage ST' 501",
2033
+ "Sous-titrage ST'501",
2034
+ "Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org",
2035
+ "❤️ par SousTitreur.com"
2036
+ ],
2037
+ german: [
2038
+ "[Klicken]",
2039
+ "(Jubel)",
2040
+ "*lacht*",
2041
+ "[Anhaltender Beifall]",
2042
+ "[Applaus]",
2043
+ "(Applaus)",
2044
+ "* Applaus *",
2045
+ "[MUSIK]",
2046
+ "* mustard ml Drumglöck und knack in einem Handbewerb *",
2047
+ "Untertitelung aufgrund der Amara.org-Community",
2048
+ "Untertitel im Auftrag des ZDF für funk, 2017",
2049
+ "Untertitel von Stephanie Geiges",
2050
+ "Untertitel der Amara.org-Community",
2051
+ "Untertitel im Auftrag des ZDF, 2017",
2052
+ "Untertitel im Auftrag des ZDF, 2020",
2053
+ "Untertitel im Auftrag des ZDF, 2018",
2054
+ "Untertitel im Auftrag des ZDF, 2021",
2055
+ "Untertitelung im Auftrag des ZDF, 2021",
2056
+ "Copyright WDR 2021",
2057
+ "Copyright WDR 2020",
2058
+ "Copyright WDR 2019",
2059
+ "SWR 2021",
2060
+ "SWR 2020"
2061
+ ],
2062
+ italian: [
2063
+ "Alla prossima!",
2064
+ "*applauso*",
2065
+ "[Musica]",
2066
+ "[Musica]",
2067
+ "[Applausi]",
2068
+ "*Bip bip bip bip*",
2069
+ "(musica del NS shore)",
2070
+ "D' 1962 alle tribunte del Gulf",
2071
+ "Sottotitoli creati dalla comunità Amara.org",
2072
+ "Sottotitoli di Sottotitoli di Amara.org",
2073
+ "Sottotitoli e revisione al canale di Amara.org",
2074
+ "Sottotitoli e revisione a cura di Amara.org",
2075
+ "Sottotitoli e revisione a cura di QTSS",
2076
+ "Sottotitoli e revisione a cura di QTSS.",
2077
+ "Sottotitoli a cura di QTSS",
2078
+ "Sottotitoli a cura di Sottotitoli"
2079
+ ],
2080
+ spanish: [
2081
+ "[música]",
2082
+ "[Música de cierre]",
2083
+ "[Aplausos]",
2084
+ "(Aplausos)",
2085
+ "www.alimmenta.com",
2086
+ "¡Gracias por ver el vídeo!",
2087
+ "(sonidos del celular) (Inudible distorsión)",
2088
+ "¡Suscríbete!",
2089
+ "Subtítulos realizados por la comunidad de Amara.org",
2090
+ "Subtitulado por la comunidad de Amara.org",
2091
+ "Subtítulos por la comunidad de Amara.org",
2092
+ "Subtítulos creados por la comunidad de Amara.org",
2093
+ "Subtítulos en español de Amara.org",
2094
+ "Subtítulos hechos por la comunidad de Amara.org",
2095
+ "Subtitulos por la comunidad de Amara.org",
2096
+ "Más información www.alimmenta.com",
2097
+ "www.mooji.org",
2098
+ "[MÚSICA]",
2099
+ "[Music cuts in British]"
2100
+ ]
2101
+ }, nn = (e) => {
2102
+ let t = e;
2103
+ return Object.values(tn).forEach((n) => {
2104
+ n.forEach((i) => {
2105
+ t = t.replaceAll(i, "");
2106
+ });
2107
+ }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
2108
+ }, rn = 6e4, an = 8e3, on = 2, sn = 0.4, ln = 3, cn = /* @__PURE__ */ new Set([
2109
+ "aan",
2110
+ "als",
2111
+ "ben",
2112
+ "bent",
2113
+ "bij",
2114
+ "dan",
2115
+ "dat",
2116
+ "deze",
2117
+ "die",
2118
+ "dit",
2119
+ "doen",
2120
+ "door",
2121
+ "dus",
2122
+ "echt",
2123
+ "een",
2124
+ "eens",
2125
+ "even",
2126
+ "gaan",
2127
+ "gaat",
2128
+ "geen",
2129
+ "geweest",
2130
+ "goed",
2131
+ "graag",
2132
+ "had",
2133
+ "heb",
2134
+ "hebben",
2135
+ "hebt",
2136
+ "heeft",
2137
+ "het",
2138
+ "hier",
2139
+ "hoe",
2140
+ "hoor",
2141
+ "iets",
2142
+ "inderdaad",
2143
+ "kan",
2144
+ "klopt",
2145
+ "kunnen",
2146
+ "kunt",
2147
+ "maar",
2148
+ "mag",
2149
+ "mee",
2150
+ "meer",
2151
+ "met",
2152
+ "mij",
2153
+ "mijn",
2154
+ "misschien",
2155
+ "moet",
2156
+ "moeten",
2157
+ "naar",
2158
+ "net",
2159
+ "niet",
2160
+ "nog",
2161
+ "nou",
2162
+ "oke",
2163
+ "ook",
2164
+ "over",
2165
+ "prima",
2166
+ "toch",
2167
+ "uhm",
2168
+ "uit",
2169
+ "van",
2170
+ "veel",
2171
+ "voor",
2172
+ "wat",
2173
+ "weer",
2174
+ "weet",
2175
+ "wel",
2176
+ "wij",
2177
+ "wil",
2178
+ "wilt",
2179
+ "worden",
2180
+ "wordt",
2181
+ "zeg",
2182
+ "zeggen",
2183
+ "zijn",
2184
+ "zou",
2185
+ "zult",
2186
+ "about",
2187
+ "and",
2188
+ "are",
2189
+ "been",
2190
+ "but",
2191
+ "can",
2192
+ "does",
2193
+ "for",
2194
+ "have",
2195
+ "just",
2196
+ "know",
2197
+ "like",
2198
+ "not",
2199
+ "okay",
2200
+ "right",
2201
+ "she",
2202
+ "that",
2203
+ "the",
2204
+ "them",
2205
+ "then",
2206
+ "there",
2207
+ "they",
2208
+ "this",
2209
+ "want",
2210
+ "was",
2211
+ "well",
2212
+ "were",
2213
+ "what",
2214
+ "will",
2215
+ "with",
2216
+ "would",
2217
+ "yeah",
2218
+ "you",
2219
+ "your"
2220
+ ]);
2221
+ function un(e) {
2222
+ const t = /* @__PURE__ */ new Set();
2223
+ for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
2224
+ n.length < ln || cn.has(n) || t.add(n);
2225
+ return [...t];
1758
2226
  }
1759
- const me = 9e4, Ut = ["out_of_office"], ge = (e) => Ut.includes(e);
1760
- function Li(e, t, n) {
1761
- const i = n - e < me, r = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2227
+ function dn(e, t) {
2228
+ if (!e.length) return 0;
2229
+ if (!t.length) return 1;
2230
+ const n = new Set(t), i = new Set(e);
2231
+ let r = 0;
2232
+ for (const a of i) n.has(a) || (r += 1);
2233
+ return r / i.size;
2234
+ }
2235
+ function pn(e, t = rn) {
2236
+ const n = e.filter((o) => !o.partial && typeof o.text == "string");
2237
+ if (!n.length) return { text: "", segmentCount: 0 };
2238
+ const r = n.reduce((o, s) => Math.max(o, s.endedAt ?? 0), 0) - t;
2239
+ return { text: n.filter((o) => (o.endedAt ?? 0) >= r).map((o) => nn(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2240
+ }
2241
+ const fn = 60;
2242
+ function Mr(e, t, n = fn) {
2243
+ const i = new Set(e), r = [...e];
2244
+ for (const a of t)
2245
+ !a || i.has(a) || (i.add(a), r.push(a));
2246
+ return r.slice(-n);
2247
+ }
2248
+ function Cr(e) {
2249
+ const { segments: t, now: n, state: i } = e;
2250
+ if (i.lastTriggerAt && n - i.lastTriggerAt < an)
2251
+ return { trigger: !1, reason: "too_soon" };
2252
+ const r = pn(t, e.windowMs);
2253
+ if (!r.text) return { trigger: !1, reason: "no_speech" };
2254
+ const a = r.segmentCount - (i.lastSegmentCount ?? 0);
2255
+ if (i.lastQueryTerms && a < on)
2256
+ return { trigger: !1, reason: "too_few_new" };
2257
+ const o = un(r.text);
2258
+ return o.length ? i.lastQueryTerms?.length && dn(o, i.lastQueryTerms) < sn ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: r.text, terms: o, segmentCount: r.segmentCount } : { trigger: !1, reason: "no_speech" };
2259
+ }
2260
+ const Te = 9e4, mn = ["out_of_office"], _e = (e) => mn.includes(e);
2261
+ function wr(e, t, n) {
2262
+ const i = n - e < Te, r = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
1762
2263
  if (!r?.status) return { online: i, status: i ? "available" : "offline" };
1763
2264
  const a = r.status;
1764
- return !i && !ge(a) ? { online: !1, status: "offline" } : { online: i, status: a, message: r.message };
2265
+ return !i && !_e(a) ? { online: !1, status: "offline" } : { online: i, status: a, message: r.message };
1765
2266
  }
1766
- function $i(e, t) {
1767
- const n = t - e.lastSeenAt < me, i = n || ge(e.status) ? e.status : "offline";
2267
+ function kr(e, t) {
2268
+ const n = t - e.lastSeenAt < Te, i = n || _e(e.status) ? e.status : "offline";
1768
2269
  return n === e.online && i === e.status ? e : { ...e, online: n, status: i };
1769
2270
  }
1770
- const Ri = "installation-id";
2271
+ function vr(e, t) {
2272
+ return e?.teamId && t.includes(e.teamId) ? { teamId: e.teamId, mustChoose: !1 } : t.length === 1 ? { teamId: t[0], mustChoose: !1 } : { teamId: void 0, mustChoose: t.length > 1 };
2273
+ }
2274
+ function Nr(e) {
2275
+ return e.providerAvailable && e.allowed;
2276
+ }
2277
+ const xr = "installation-id";
1771
2278
  export {
1772
2279
  m as ACTIVITY_CATALOG,
1773
- Mt as AI_ATTACHMENT_LIMITS,
1774
- fi as AI_ATTACHMENT_MAX_PER_TURN,
1775
- di as AI_ATTACHMENT_TURN_BUDGET,
1776
- ue as AI_VENDORS,
1777
- Le as ALLOWED_LINK_SCHEMES,
1778
- P as ARTIFACT_MAX_BLOCKS,
1779
- ln as ARTIFACT_MAX_BODY_BYTES,
1780
- C as ARTIFACT_MAX_CELL_LEN,
1781
- G as ARTIFACT_MAX_KPI_ITEMS,
1782
- U as ARTIFACT_MAX_LIST_ITEMS,
1783
- B as ARTIFACT_MAX_TABLE_COLUMNS,
1784
- K as ARTIFACT_MAX_TABLE_ROWS,
1785
- ie as ARTIFACT_MAX_TEXT_LEN,
1786
- de as AUTH_APP_NAME,
1787
- Te as ActivityTypeRegistry,
1788
- Zt as BUILT_IN_ONLY,
1789
- bn as CLASSIFY_VARS,
1790
- rn as CORE_DIMENSIONS,
1791
- kt as CommunicationScheme,
1792
- ei as DEFAULT_MEMORY_BUDGET,
1793
- at as DEFAULT_PHONE_REGION,
1794
- Mi as FEATURE_FOLDER_MANAGEMENT,
1795
- Ci as FEATURE_REMOTE_SEARCH,
1796
- Ri as INSTALLATION_HEADER,
1797
- Si as InteractionParticipantRole,
1798
- ze as KB_FALLBACK_LOCALE,
1799
- j as KB_LOCALES,
1800
- Ft as MAX_ACTIONS,
1801
- Kt as MAX_BLOCKS,
1802
- le as MAX_COLLECTION_DEPTH,
1803
- Bt as MAX_FIELDS,
1804
- Gt as MAX_LIST_ITEMS,
1805
- qn as MAX_MEMORY_BROWSE,
1806
- Zn as MAX_MEMORY_BUDGET,
1807
- Jn as MAX_MEMORY_CHARS,
1808
- Qe as MAX_TOPIC_CANDIDATES,
1809
- Je as MAX_TOPIC_EXAMPLES,
1810
- x as MAX_TOPIC_EXAMPLE_CHARS,
1811
- Qn as MIN_MEMORY_BUDGET,
1812
- je as PAUSED_RUN_STATUSES,
1813
- k as PHONE_REGIONS,
1814
- me as PRESENCE_ONLINE_WINDOW_MS,
1815
- Ut as PRESENCE_SURVIVES_OFFLINE,
1816
- Ti as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
1817
- _i as PROVIDER_FEATURE_MESSAGE_WINDOW,
1818
- dt as PUBLIC_EMAIL_DOMAINS,
1819
- rt as RELATED_SUBJECT_KINDS,
1820
- Fn as SIGNATURE_INTENTS,
1821
- He as STEP_MAX_TOKENS_MAX,
1822
- Fe as STEP_MAX_TOKENS_MIN,
1823
- _t as SUMMARY_MIN_LAST_CHARS,
1824
- At as SUMMARY_MIN_MESSAGES,
1825
- Ve as TERMINAL_RUN_STATUSES,
1826
- yn as TRIGGER_VARS,
1827
- xi as UNSUPPORTED,
1828
- Ne as USAGE_DIMENSIONS,
1829
- ve as USAGE_DIMENSION_IDS,
1830
- $n as acceptExampleCandidate,
1831
- Ge as actingIdentityKey,
1832
- Vt as activityIconOf,
1833
- Qt as activityJoinUrl,
1834
- Ee as activitySnippet,
1835
- Ae as activityTextParams,
1836
- Jt as activityTimelineText,
1837
- nn as activityTimestamp,
1838
- f as activityTypeInfo,
1839
- _n as actorKey,
1840
- Ln as addExampleCandidate,
1841
- $i as agePresenceEntry,
1842
- It as aiAttachmentKind,
1843
- mi as aiAttachmentRejection,
1844
- W as aiBudgetLimit,
1845
- Gn as aiBudgetPeriodKey,
1846
- nt as aiBudgetPeriodStart,
1847
- Bn as aiBudgetState,
1848
- Kn as aiVendorAcceptsAttachment,
1849
- Dn as aiVendorDefaultModel,
1850
- wn as aiVendorLabel,
1851
- Un as aiVendorNeedsBaseUrl,
1852
- Pn as aiVendorsWith,
1853
- fe as appNameFromPath,
1854
- Hn as applySignature,
1855
- un as artifactBodyBytes,
1856
- pn as artifactOutline,
1857
- dn as artifactToMarkdown,
1858
- en as buildActivityPreview,
1859
- hi as buildChannelIntents,
1860
- fn as buildShareKeys,
1861
- vn as canNestUnder,
1862
- Yt as carriesText,
1863
- On as categoryLabel,
1864
- Ai as channelKindForScheme,
1865
- jt as channelKindOf,
1866
- Tn as clampStepMaxTokens,
1867
- ci as cleanMessageText,
1868
- qe as defaultLocaleOf,
1869
- Ii as defineIntent,
1870
- We as depthOf,
1871
- Li as derivePresence,
1872
- gi as disabledIntentsFromCapabilities,
1873
- ri as emailDomain,
1874
- si as endpointKey,
1875
- Rt as extractParams,
1876
- bi as filterByEndpoint,
1877
- yi as filterByIntent,
1878
- vt as filterByTargetScheme,
1879
- _ as findAiVendor,
1880
- an as flattenLocales,
1881
- Me as floorToPeriod,
1882
- Be as formatActingIdentity,
1883
- Ie as formatPeriod,
1884
- tn as getActivitySeenUserIds,
1885
- Vn as getContactEndpoints,
1886
- Yn as getShortTitle,
1887
- Wn as getUrgencyScore,
1888
- ce as heightOf,
1889
- Cn as helpCenterText,
1890
- hn as humanizeAction,
1891
- jn as isAssigned,
1892
- Xn as isClosed,
1893
- Ni as isDeepLink,
1894
- Ye as isDescendant,
1895
- zn as isInteractionUnseen,
1896
- vi as isLandingPath,
1897
- ui as isLikelyBulk,
1898
- Xt as isMessageType,
1899
- Dt as isMoreSpecificPattern,
1900
- In as isPaused,
1901
- qt as isPlaybookAuthoredType,
1902
- ai as isPublicEmailDomain,
1903
- Oi as isPublicPath,
1904
- Wt as isReplyableType,
1905
- Sn as isRetryable,
1906
- Xe as isTerminal,
1907
- pi as isThreadLongEnough,
1908
- Mn as linkLabel,
1909
- Nn as localeInstruction,
1910
- xn as localeName,
1911
- kn as localesOf,
1912
- ni as looksLikeEmail,
1913
- Ei as matchContactToIntents,
1914
- Pt as matchPublicRoute,
1915
- zt as messageCountsAs,
1916
- oi as needsPhoneRegion,
1917
- cn as normalizeArtifactBlocks,
1918
- Ht as normalizeBlocks,
1919
- pe as normalizeEmail,
2280
+ Gt as AI_ATTACHMENT_LIMITS,
2281
+ ar as AI_ATTACHMENT_MAX_PER_TURN,
2282
+ rr as AI_ATTACHMENT_TURN_BUDGET,
2283
+ ye as AI_VENDORS,
2284
+ je as ALLOWED_LINK_SCHEMES,
2285
+ G as ARTIFACT_MAX_BLOCKS,
2286
+ Pn as ARTIFACT_MAX_BODY_BYTES,
2287
+ v as ARTIFACT_MAX_CELL_LEN,
2288
+ V as ARTIFACT_MAX_KPI_ITEMS,
2289
+ B as ARTIFACT_MAX_LIST_ITEMS,
2290
+ H as ARTIFACT_MAX_TABLE_COLUMNS,
2291
+ F as ARTIFACT_MAX_TABLE_ROWS,
2292
+ ue as ARTIFACT_MAX_TEXT_LEN,
2293
+ Ye as ASSIGNMENT_SCOPE_KIND,
2294
+ Ee as AUTH_APP_NAME,
2295
+ Ne as ActivityTypeRegistry,
2296
+ vn as BUILT_IN_ONLY,
2297
+ an as CADENCE_FLOOR_MS,
2298
+ on as CADENCE_MIN_NEW_SEGMENTS,
2299
+ sn as CADENCE_MIN_NOVELTY,
2300
+ rn as CADENCE_WINDOW_MS,
2301
+ Zn as CLASSIFY_VARS,
2302
+ Ln as CORE_DIMENSIONS,
2303
+ zt as CommunicationScheme,
2304
+ Vi as DEFAULT_MEMORY_BUDGET,
2305
+ St as DEFAULT_PHONE_REGION,
2306
+ li as EMPTY_WORKFLOW,
2307
+ yr as FEATURE_FOLDER_MANAGEMENT,
2308
+ br as FEATURE_REMOTE_SEARCH,
2309
+ xr as INSTALLATION_HEADER,
2310
+ it as INTERACTION_KIND,
2311
+ hr as InteractionParticipantRole,
2312
+ dt as KB_FALLBACK_LOCALE,
2313
+ J as KB_LOCALES,
2314
+ M as MAX_ACTIONS,
2315
+ qe as MAX_ASSIGNMENT_TURNS,
2316
+ $ as MAX_BLOCKS,
2317
+ he as MAX_COLLECTION_DEPTH,
2318
+ _ as MAX_FIELDS,
2319
+ I as MAX_LIST_ITEMS,
2320
+ Gi as MAX_MEMORY_BROWSE,
2321
+ Hi as MAX_MEMORY_BUDGET,
2322
+ Bi as MAX_MEMORY_CHARS,
2323
+ fn as MAX_SHOWN_KEYS,
2324
+ mt as MAX_TOPIC_CANDIDATES,
2325
+ ft as MAX_TOPIC_EXAMPLES,
2326
+ N as MAX_TOPIC_EXAMPLE_CHARS,
2327
+ Fi as MIN_MEMORY_BUDGET,
2328
+ L as PHONE_REGIONS,
2329
+ Te as PRESENCE_ONLINE_WINDOW_MS,
2330
+ mn as PRESENCE_SURVIVES_OFFLINE,
2331
+ gr as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2332
+ mr as PROVIDER_FEATURE_MESSAGE_WINDOW,
2333
+ kt as PUBLIC_EMAIL_DOMAINS,
2334
+ Y as READ_STEP_TYPES,
2335
+ Et as RELATED_SUBJECT_KINDS,
2336
+ Li as SIGNATURE_INTENTS,
2337
+ ot as STEP_MAX_TOKENS_MAX,
2338
+ at as STEP_MAX_TOKENS_MIN,
2339
+ Pt as SUMMARY_MIN_LAST_CHARS,
2340
+ Rt as SUMMARY_MIN_MESSAGES,
2341
+ Xe as TERMINAL_ASSIGNMENT_STATUSES,
2342
+ st as TERMINAL_RUN_STATUSES,
2343
+ Qn as TRIGGER_VARS,
2344
+ Er as UNSUPPORTED,
2345
+ Re as USAGE_DIMENSIONS,
2346
+ Pe as USAGE_DIMENSION_IDS,
2347
+ _i as acceptExampleCandidate,
2348
+ Ze as actingIdentityKey,
2349
+ yn as activityIconOf,
2350
+ kn as activityJoinUrl,
2351
+ we as activitySnippet,
2352
+ ke as activityTextParams,
2353
+ wn as activityTimelineText,
2354
+ On as activityTimestamp,
2355
+ d as activityTypeInfo,
2356
+ ni as actorKey,
2357
+ Ti as addExampleCandidate,
2358
+ kr as agePresenceEntry,
2359
+ jt as aiAttachmentKind,
2360
+ or as aiAttachmentRejection,
2361
+ Z as aiBudgetLimit,
2362
+ xi as aiBudgetPeriodKey,
2363
+ yt as aiBudgetPeriodStart,
2364
+ Ni as aiBudgetState,
2365
+ vi as aiVendorAcceptsAttachment,
2366
+ Ci as aiVendorDefaultModel,
2367
+ Mi as aiVendorLabel,
2368
+ ki as aiVendorNeedsBaseUrl,
2369
+ wi as aiVendorsWith,
2370
+ Se as appNameFromPath,
2371
+ $i as applySignature,
2372
+ Kn as artifactBodyBytes,
2373
+ jn as artifactOutline,
2374
+ Gn as artifactToMarkdown,
2375
+ oi as assignmentMismatch,
2376
+ Wn as assignmentScopeKey,
2377
+ Xn as assignmentSubject,
2378
+ Nn as buildActivityPreview,
2379
+ cr as buildChannelIntents,
2380
+ Bn as buildShareKeys,
2381
+ pn as buildWindow,
2382
+ bi as canNestUnder,
2383
+ Tn as carriesText,
2384
+ Si as categoryLabel,
2385
+ fr as channelKindForScheme,
2386
+ bn as channelKindOf,
2387
+ si as clampStepMaxTokens,
2388
+ tr as cleanMessageText,
2389
+ Yn as decideAssignmentState,
2390
+ Cr as decideCadence,
2391
+ pt as defaultLocaleOf,
2392
+ Ar as defineIntent,
2393
+ ct as depthOf,
2394
+ wr as derivePresence,
2395
+ lr as disabledIntentsFromCapabilities,
2396
+ qi as emailDomain,
2397
+ Zi as endpointKey,
2398
+ Jt as extractParams,
2399
+ un as extractTerms,
2400
+ dr as filterByEndpoint,
2401
+ ur as filterByIntent,
2402
+ Wt as filterByTargetScheme,
2403
+ S as findAiVendor,
2404
+ $n as flattenLocales,
2405
+ Le as floorToPeriod,
2406
+ Qe as formatActingIdentity,
2407
+ Oe as formatPeriod,
2408
+ sr as freshSources,
2409
+ xn as getActivitySeenUserIds,
2410
+ Di as getContactEndpoints,
2411
+ Ki as getShortTitle,
2412
+ Ui as getUrgencyScore,
2413
+ Ae as heightOf,
2414
+ hi as helpCenterText,
2415
+ Jn as humanizeAction,
2416
+ rt as interactionIdOf,
2417
+ zi as isAgentUser,
2418
+ Ri as isAssigned,
2419
+ Vn as isAssignmentTerminal,
2420
+ tt as isAssignmentTrigger,
2421
+ hn as isChatMessageActivity,
2422
+ Pi as isClosed,
2423
+ Mn as isConnectedType,
2424
+ Sr as isDeepLink,
2425
+ ut as isDescendant,
2426
+ gn as isEmailActivity,
2427
+ pi as isInFlight,
2428
+ ji as isInteractionUnseen,
2429
+ Tr as isLandingPath,
2430
+ nr as isLikelyBulk,
2431
+ le as isMessageShape,
2432
+ En as isMessageType,
2433
+ Zt as isMoreSpecificPattern,
2434
+ lt as isPaused,
2435
+ In as isPlaybookAuthoredType,
2436
+ Ji as isPublicEmailDomain,
2437
+ Ir as isPublicPath,
2438
+ Sn as isReplyableType,
2439
+ di as isTerminal,
2440
+ ir as isThreadLongEnough,
2441
+ Cn as isTranscriptType,
2442
+ gi as linkLabel,
2443
+ Oi as listeningAllowed,
2444
+ yi as localeInstruction,
2445
+ Ai as localeName,
2446
+ Ei as localesOf,
2447
+ Xi as looksLikeEmail,
2448
+ pr as matchContactToIntents,
2449
+ en as matchPublicRoute,
2450
+ Mr as mergeShownKeys,
2451
+ _n as messageCountsAs,
2452
+ Qi as needsPhoneRegion,
2453
+ Un as normalizeArtifactBlocks,
2454
+ An as normalizeBlocks,
2455
+ be as normalizeEmail,
1920
2456
  g as normalizeExample,
1921
- En as parseActingIdentity,
1922
- $t as pathToRegex,
1923
- on as periodsInRange,
1924
- ii as phoneSuffix,
1925
- li as plainTextFromMarkdown,
1926
- An as playbookActor,
1927
- wt as publicBasePathFor,
1928
- ki as publicRoutePatterns,
1929
- N as readPath,
1930
- pt as registrableDomain,
1931
- et as rejectExampleCandidate,
1932
- ti as relatedByDefault,
1933
- xt as resolveAccountCapabilities,
1934
- v as resolveActivityText,
1935
- Ct as resolveChannelIntents,
1936
- it as resolveSignature,
1937
- De as sanitizeInline,
1938
- oe as shareKeyForTeam,
1939
- ae as shareKeyForUser,
1940
- mn as shareKeysForViewer,
1941
- be as stripHtml,
1942
- q as toE164,
1943
- gn as toolSourceKinds,
1944
- tt as topicOfferedForTeam,
1945
- Rn as topicsForTeam,
1946
- Ze as truncateExample,
1947
- ke as usageMetricId,
1948
- sn as usageMetrics
2457
+ dn as novelty,
2458
+ ei as parseActingIdentity,
2459
+ qt as pathToRegex,
2460
+ Dn as periodsInRange,
2461
+ Yi as phoneSuffix,
2462
+ er as plainTextFromMarkdown,
2463
+ et as playbookActor,
2464
+ ui as procedureOf,
2465
+ Qt as publicBasePathFor,
2466
+ _r as publicRoutePatterns,
2467
+ x as readPath,
2468
+ q as readStepError,
2469
+ nt as refKey,
2470
+ wt as registrableDomain,
2471
+ ht as rejectExampleCandidate,
2472
+ Wi as relatedByDefault,
2473
+ Ht as resolveAccountCapabilities,
2474
+ O as resolveActivityText,
2475
+ Ft as resolveChannelIntents,
2476
+ bt as resolveSignature,
2477
+ vr as resolveWorkMode,
2478
+ ti as runActor,
2479
+ mi as runInteractionId,
2480
+ He as sanitizeInline,
2481
+ nn as sanitizeTranscript,
2482
+ qn as selectLenses,
2483
+ fe as shareKeyForTeam,
2484
+ pe as shareKeyForUser,
2485
+ Fn as shareKeysForViewer,
2486
+ Nr as shouldRunAudioPipeline,
2487
+ Bt as sourceKey,
2488
+ ci as stepsOf,
2489
+ Ce as stripHtml,
2490
+ fi as subjectKeyOf,
2491
+ me as subjectOf,
2492
+ ai as targetById,
2493
+ ri as targetForActivityType,
2494
+ ne as toE164,
2495
+ Hn as toolSourceKinds,
2496
+ At as topicOfferedForTeam,
2497
+ Ii as topicsForTeam,
2498
+ gt as truncateExample,
2499
+ Ue as usageMetricId,
2500
+ Rn as usageMetrics,
2501
+ ii as valueAtPath,
2502
+ zn as wakesAssignment
1949
2503
  };