@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.
- package/dist/entities/activity/catalog.d.ts +33 -2
- package/dist/entities/activity/resolve.d.ts +24 -0
- package/dist/entities/activity/types.d.ts +45 -2
- package/dist/entities/ai-conversation/types.d.ts +26 -0
- package/dist/entities/ai-profile/types.d.ts +19 -6
- package/dist/entities/ai-settings/types.d.ts +27 -0
- package/dist/entities/ai-settings/types.test.d.ts +1 -0
- package/dist/entities/assignment/index.d.ts +1 -0
- package/dist/entities/assignment/types.d.ts +170 -0
- package/dist/entities/assignment/types.test.d.ts +1 -0
- package/dist/entities/interaction/types.d.ts +4 -2
- package/dist/entities/live-lens/index.d.ts +1 -0
- package/dist/entities/live-lens/types.d.ts +81 -0
- package/dist/entities/live-lens/types.test.d.ts +1 -0
- package/dist/entities/playbook/actor.d.ts +20 -0
- package/dist/entities/playbook/assignment.d.ts +123 -0
- package/dist/entities/playbook/assignment.test.d.ts +1 -0
- package/dist/entities/playbook/index.d.ts +1 -0
- package/dist/entities/playbook/status.test.d.ts +1 -0
- package/dist/entities/playbook/trigger-vars.d.ts +34 -3
- package/dist/entities/playbook/types.d.ts +412 -33
- package/dist/entities/read-state/types.d.ts +1 -5
- package/dist/entities/user/types.d.ts +56 -0
- package/dist/index.cjs +8 -8
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1099 -545
- package/dist/platform/ai-tools.d.ts +20 -0
- package/dist/platform/api.d.ts +13 -0
- package/dist/platform/audio-gate.test.d.ts +1 -0
- package/dist/platform/context.d.ts +16 -0
- package/dist/platform/presence.d.ts +59 -0
- package/dist/platform/resource.d.ts +39 -0
- package/dist/platform/sdk.d.ts +6 -0
- package/dist/platform/tool-sources.test.d.ts +1 -0
- package/dist/platform/transcript-cadence.d.ts +93 -0
- package/dist/platform/transcript-cadence.test.d.ts +1 -0
- package/dist/platform/transcript-sanitize.d.ts +1 -0
- package/dist/platform/transcript-sanitize.test.d.ts +1 -0
- package/dist/platform/work-mode.test.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
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
|
|
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
|
|
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 >=
|
|
23
|
-
t("more than
|
|
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 (!
|
|
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 (!
|
|
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 (!
|
|
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 >
|
|
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 >
|
|
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 &&
|
|
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 >
|
|
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
|
|
78
|
+
function Ce(e) {
|
|
73
79
|
return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/\s+/g, " ").trim();
|
|
74
80
|
}
|
|
75
|
-
function
|
|
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
|
|
86
|
+
function D(e) {
|
|
81
87
|
return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
|
|
82
88
|
}
|
|
83
|
-
function
|
|
89
|
+
function w(e) {
|
|
84
90
|
return e?.split("@")?.[0] || e || "";
|
|
85
91
|
}
|
|
86
|
-
function
|
|
92
|
+
function b(e) {
|
|
87
93
|
return e.map((t) => t.name).join(", ");
|
|
88
94
|
}
|
|
89
|
-
function
|
|
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 — ${
|
|
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 ? ` (${
|
|
126
|
-
timeline: (e) => `Call ended${
|
|
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 — ${
|
|
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 ? ` (${
|
|
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) => `${
|
|
254
|
+
snippet: (e) => `${b(e.payload.members)} toegevoegd`,
|
|
247
255
|
timeline: (e) => {
|
|
248
|
-
const t =
|
|
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) => `${
|
|
264
|
+
snippet: (e) => `${b(e.payload.members)} verlaten`,
|
|
257
265
|
timeline: (e) => {
|
|
258
|
-
const t =
|
|
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) => `${
|
|
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 ? ` (${
|
|
282
|
-
timeline: (e) => `${
|
|
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 ? ` (${
|
|
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
|
|
408
|
-
const t = e.payload, n = t.bodySnippet?.trim() ||
|
|
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
|
|
420
|
+
function d(e) {
|
|
412
421
|
return m[e];
|
|
413
422
|
}
|
|
414
|
-
function
|
|
415
|
-
return
|
|
423
|
+
function yn(e) {
|
|
424
|
+
return d(e)?.icon ?? "circle";
|
|
416
425
|
}
|
|
417
|
-
function
|
|
418
|
-
return
|
|
426
|
+
function bn(e) {
|
|
427
|
+
return d(e)?.channelKind;
|
|
419
428
|
}
|
|
420
|
-
function
|
|
421
|
-
|
|
422
|
-
return t === "message" || t === "note";
|
|
429
|
+
function le(e) {
|
|
430
|
+
return e === "message" || e === "note";
|
|
423
431
|
}
|
|
424
|
-
function
|
|
425
|
-
return
|
|
432
|
+
function En(e) {
|
|
433
|
+
return le(d(e)?.shape);
|
|
426
434
|
}
|
|
427
|
-
function
|
|
428
|
-
return
|
|
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
|
|
431
|
-
return
|
|
441
|
+
function _n(e) {
|
|
442
|
+
return d(e)?.countsAs;
|
|
432
443
|
}
|
|
433
|
-
function
|
|
434
|
-
return
|
|
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
|
|
437
|
-
const t =
|
|
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
|
|
441
|
-
const n =
|
|
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
|
|
445
|
-
const t =
|
|
462
|
+
function kn(e) {
|
|
463
|
+
const t = d(e.type)?.joinUrl;
|
|
446
464
|
return t ? t(e) : void 0;
|
|
447
465
|
}
|
|
448
|
-
function
|
|
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
|
|
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
|
|
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] =
|
|
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
|
|
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] =
|
|
489
|
+
n[i] = x(t, r);
|
|
472
490
|
return { key: e.key, params: n };
|
|
473
491
|
}
|
|
474
|
-
const
|
|
475
|
-
function
|
|
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
|
|
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
|
|
507
|
-
constructor(t = [], n =
|
|
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
|
|
532
|
+
if (t in m) return U(t);
|
|
515
533
|
const n = this.declared.get(t);
|
|
516
|
-
return n ?
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
556
|
-
function
|
|
610
|
+
const vn = new Ne(), j = 140;
|
|
611
|
+
function xe(e) {
|
|
557
612
|
const t = e.trim();
|
|
558
|
-
return t.length <=
|
|
613
|
+
return t.length <= j ? t : t.slice(0, j - 1).trimEnd() + "…";
|
|
559
614
|
}
|
|
560
|
-
function
|
|
561
|
-
const n =
|
|
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:
|
|
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
|
|
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
|
|
633
|
+
function On(e) {
|
|
579
634
|
return e.createdAt ?? 0;
|
|
580
635
|
}
|
|
581
|
-
const
|
|
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
|
|
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
|
|
653
|
+
function k(e) {
|
|
599
654
|
return e < 10 ? `0${e}` : `${e}`;
|
|
600
655
|
}
|
|
601
|
-
function
|
|
602
|
-
const n = new Date(e), i = `${n.getUTCFullYear()}-${
|
|
603
|
-
return t === "day" ? i : `${i}T${
|
|
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
|
|
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
|
|
610
|
-
function
|
|
611
|
-
const i = n === "hour" ?
|
|
612
|
-
for (let a =
|
|
613
|
-
r.push(
|
|
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
|
|
671
|
+
const Re = [
|
|
617
672
|
{ id: "resource", label: "Resource", labelSource: "raw" },
|
|
618
673
|
{ id: "origin", label: "Herkomst", labelSource: "raw" }
|
|
619
|
-
],
|
|
620
|
-
function
|
|
674
|
+
], Pe = Re.map((e) => e.id);
|
|
675
|
+
function Ue(e, t) {
|
|
621
676
|
return `${e}.usage.${t}`;
|
|
622
677
|
}
|
|
623
|
-
function
|
|
678
|
+
function Rn(e, t) {
|
|
624
679
|
return t.map((n) => ({
|
|
625
|
-
id:
|
|
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
|
-
...
|
|
687
|
+
...Pe,
|
|
633
688
|
...n.extraDimensions ?? [],
|
|
634
689
|
"time"
|
|
635
690
|
]
|
|
636
691
|
}));
|
|
637
692
|
}
|
|
638
|
-
const
|
|
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
|
-
]),
|
|
649
|
-
function
|
|
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 =
|
|
653
|
-
return n ?
|
|
707
|
+
const n = Ge.exec(t)?.[0];
|
|
708
|
+
return n ? je.includes(n.toLowerCase()) : !t.startsWith("//");
|
|
654
709
|
}
|
|
655
|
-
const
|
|
656
|
-
function
|
|
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 =
|
|
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 =
|
|
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 || !
|
|
730
|
+
t += i || !de(l) ? s : e.slice(n, o + 1), n = o + 1;
|
|
676
731
|
}
|
|
677
732
|
return t;
|
|
678
733
|
}
|
|
679
|
-
function
|
|
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
|
|
693
|
-
return
|
|
694
|
-
|
|
695
|
-
(t, n, i) =>
|
|
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 =
|
|
699
|
-
return typeof e == "string" ?
|
|
753
|
+
function u(e, t = ue) {
|
|
754
|
+
return typeof e == "string" ? He(e).slice(0, t) : "";
|
|
700
755
|
}
|
|
701
|
-
function
|
|
756
|
+
function Ve(e, t = ue) {
|
|
702
757
|
return typeof e == "string" ? e.slice(0, t) : "";
|
|
703
758
|
}
|
|
704
|
-
function
|
|
705
|
-
return typeof e == "string" &&
|
|
759
|
+
function We(e, t = "info") {
|
|
760
|
+
return typeof e == "string" && ce.has(e) ? e : t;
|
|
706
761
|
}
|
|
707
|
-
function
|
|
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 >=
|
|
713
|
-
t("more than " +
|
|
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 (!
|
|
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 =
|
|
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 >=
|
|
769
|
-
t("more than " +
|
|
823
|
+
if (s.length >= B) {
|
|
824
|
+
t("more than " + B + " list items");
|
|
770
825
|
break;
|
|
771
826
|
}
|
|
772
|
-
const
|
|
773
|
-
if (!
|
|
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:
|
|
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 >=
|
|
789
|
-
t("more than " +
|
|
843
|
+
if (s.length >= H) {
|
|
844
|
+
t("more than " + H + " table columns");
|
|
790
845
|
break;
|
|
791
846
|
}
|
|
792
|
-
const
|
|
793
|
-
s.push(T ? { label:
|
|
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 >=
|
|
802
|
-
t("more than " +
|
|
856
|
+
if (p.length >= F) {
|
|
857
|
+
t("more than " + F + " table rows");
|
|
803
858
|
break;
|
|
804
859
|
}
|
|
805
|
-
const
|
|
860
|
+
const A = Array.isArray(c) ? c : [];
|
|
806
861
|
p.push(
|
|
807
|
-
s.map((T,
|
|
862
|
+
s.map((T, Ie) => u(A[Ie], v))
|
|
808
863
|
);
|
|
809
864
|
}
|
|
810
|
-
const
|
|
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
|
-
...
|
|
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 >=
|
|
824
|
-
t("more than " +
|
|
878
|
+
if (s.length >= V) {
|
|
879
|
+
t("more than " + V + " kpi items");
|
|
825
880
|
break;
|
|
826
881
|
}
|
|
827
|
-
const p = u(l?.value, 40),
|
|
828
|
-
if (!p || !
|
|
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" &&
|
|
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:
|
|
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
|
|
916
|
+
function Kn(e) {
|
|
862
917
|
return JSON.stringify(e).length;
|
|
863
918
|
}
|
|
864
|
-
function
|
|
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
|
|
926
|
+
function z(e) {
|
|
872
927
|
return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
|
|
873
928
|
}
|
|
874
|
-
function
|
|
929
|
+
function X(e, t, n) {
|
|
875
930
|
const i = e.map((r, a) => n?.[a] === "right" ? "---:" : "---");
|
|
876
931
|
return [
|
|
877
|
-
`| ${e.map(
|
|
932
|
+
`| ${e.map(z).join(" | ")} |`,
|
|
878
933
|
`| ${i.join(" | ")} |`,
|
|
879
|
-
...t.map((r) => `| ${r.map(
|
|
934
|
+
...t.map((r) => `| ${r.map(z).join(" | ")} |`)
|
|
880
935
|
];
|
|
881
936
|
}
|
|
882
|
-
function
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
930
|
-
function
|
|
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(
|
|
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
|
|
937
|
-
return [
|
|
991
|
+
function Fn(e, t) {
|
|
992
|
+
return [pe(e), ...t.map(fe)];
|
|
938
993
|
}
|
|
939
|
-
function
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
1005
|
-
return
|
|
1129
|
+
function Ze(e) {
|
|
1130
|
+
return Qe(e);
|
|
1006
1131
|
}
|
|
1007
|
-
function
|
|
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
|
|
1018
|
-
return
|
|
1142
|
+
function ti(e) {
|
|
1143
|
+
return e.agentId ? { kind: "user", userId: e.agentId } : et(e.ownerScope);
|
|
1019
1144
|
}
|
|
1020
|
-
|
|
1021
|
-
|
|
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),
|
|
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
|
-
|
|
1027
|
-
|
|
1028
|
-
return Ve.includes(e);
|
|
1188
|
+
function ui(e) {
|
|
1189
|
+
return e?.kind === "procedure" ? e.procedure : void 0;
|
|
1029
1190
|
}
|
|
1030
|
-
|
|
1031
|
-
|
|
1191
|
+
const st = ["done", "escalated", "failed", "stopped"];
|
|
1192
|
+
function di(e) {
|
|
1193
|
+
return st.includes(e);
|
|
1032
1194
|
}
|
|
1033
|
-
function
|
|
1034
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1234
|
+
function ge(e) {
|
|
1060
1235
|
const t = (e ?? "").toLowerCase();
|
|
1061
|
-
return
|
|
1236
|
+
return J.find((n) => n.code === t) ?? J.find((n) => n.code === t.split("-")[0]);
|
|
1062
1237
|
}
|
|
1063
|
-
function
|
|
1064
|
-
return
|
|
1238
|
+
function Ai(e) {
|
|
1239
|
+
return ge(e)?.label ?? e;
|
|
1065
1240
|
}
|
|
1066
|
-
function
|
|
1067
|
-
const t =
|
|
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
|
|
1071
|
-
function
|
|
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 >
|
|
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
|
|
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 &&
|
|
1085
|
-
const r =
|
|
1086
|
-
return r + a <=
|
|
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
|
|
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
|
|
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) =>
|
|
1277
|
+
return i.length ? 1 + Math.max(...i.map((r) => Ae(r.id, t, n))) : 1;
|
|
1103
1278
|
}
|
|
1104
|
-
const
|
|
1105
|
-
function
|
|
1106
|
-
return e.defaultLocale || e.locale ||
|
|
1279
|
+
const dt = "en";
|
|
1280
|
+
function pt(e) {
|
|
1281
|
+
return e.defaultLocale || e.locale || dt;
|
|
1107
1282
|
}
|
|
1108
|
-
function
|
|
1283
|
+
function Ei(e) {
|
|
1109
1284
|
const t = /* @__PURE__ */ new Set(), n = [];
|
|
1110
|
-
for (const i of [
|
|
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
|
|
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
|
|
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
|
|
1297
|
+
function gt(e) {
|
|
1123
1298
|
const t = e.replace(/\s+/g, " ").trim();
|
|
1124
|
-
if (t.length <=
|
|
1125
|
-
const n = t.slice(0,
|
|
1126
|
-
return i >
|
|
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
|
|
1129
|
-
const 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 },
|
|
1310
|
+
return o[a] = { ...o[a], corrected: !0, addedAt: t.addedAt }, Q(o);
|
|
1136
1311
|
}
|
|
1137
|
-
return
|
|
1312
|
+
return Q([{ ...t, text: n }, ...r]).slice(0, mt);
|
|
1138
1313
|
}
|
|
1139
|
-
function
|
|
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
|
|
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(-
|
|
1319
|
+
return { examples: i.some((a) => g(a) === n) ? i : [...i, t].slice(-ft), exampleCandidates: ht(e, t) };
|
|
1145
1320
|
}
|
|
1146
|
-
function
|
|
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
|
|
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
|
|
1155
|
-
return e.filter((n) =>
|
|
1329
|
+
function Ii(e, t) {
|
|
1330
|
+
return e.filter((n) => At(n, t));
|
|
1156
1331
|
}
|
|
1157
|
-
const
|
|
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
|
|
1249
|
-
return
|
|
1423
|
+
function S(e) {
|
|
1424
|
+
return ye.find((t) => t.id === e);
|
|
1250
1425
|
}
|
|
1251
|
-
function
|
|
1252
|
-
return
|
|
1426
|
+
function Mi(e) {
|
|
1427
|
+
return S(e)?.label ?? e;
|
|
1253
1428
|
}
|
|
1254
|
-
function
|
|
1255
|
-
return
|
|
1429
|
+
function Ci(e, t = "gpt-5-mini") {
|
|
1430
|
+
return S(e)?.defaultModel ?? t;
|
|
1256
1431
|
}
|
|
1257
|
-
function
|
|
1258
|
-
return
|
|
1432
|
+
function wi(e) {
|
|
1433
|
+
return ye.filter((t) => t.capabilities.includes(e));
|
|
1259
1434
|
}
|
|
1260
|
-
function
|
|
1261
|
-
const t =
|
|
1435
|
+
function ki(e) {
|
|
1436
|
+
const t = S(e);
|
|
1262
1437
|
return !!t && !t.baseUrl;
|
|
1263
1438
|
}
|
|
1264
|
-
function
|
|
1265
|
-
return t === "text" ? !0 :
|
|
1439
|
+
function vi(e, t) {
|
|
1440
|
+
return t === "text" ? !0 : S(e)?.attachmentKinds?.includes(t) === !0;
|
|
1266
1441
|
}
|
|
1267
|
-
function
|
|
1442
|
+
function Ni(e, t) {
|
|
1268
1443
|
if (!e.enabled) return "ok";
|
|
1269
|
-
const n =
|
|
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
|
|
1447
|
+
function Z(e) {
|
|
1273
1448
|
return typeof e == "number" ? e : void 0;
|
|
1274
1449
|
}
|
|
1275
|
-
function
|
|
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
|
|
1280
|
-
const n = new Date(
|
|
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
|
-
|
|
1284
|
-
|
|
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
|
|
1466
|
+
function $i(e, t, n, i = "html") {
|
|
1289
1467
|
if (!e) return n;
|
|
1290
|
-
const r =
|
|
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
|
|
1473
|
+
function Di(e) {
|
|
1296
1474
|
return e.endpoints ?? [];
|
|
1297
1475
|
}
|
|
1298
|
-
const
|
|
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,
|
|
1304
|
-
function
|
|
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
|
|
1308
|
-
function
|
|
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
|
|
1489
|
+
return Et.includes(t);
|
|
1490
|
+
}
|
|
1491
|
+
function zi(e) {
|
|
1492
|
+
return e.type === "agent";
|
|
1312
1493
|
}
|
|
1313
|
-
const
|
|
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
|
-
},
|
|
1337
|
-
new Set(Object.values(
|
|
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
|
|
1520
|
+
function ee(e) {
|
|
1340
1521
|
if (e)
|
|
1341
|
-
return
|
|
1522
|
+
return L[e.trim().toUpperCase()];
|
|
1342
1523
|
}
|
|
1343
|
-
function
|
|
1524
|
+
function E(e, t) {
|
|
1344
1525
|
return e.length >= t.nsnMin && e.length <= t.nsnMax;
|
|
1345
1526
|
}
|
|
1346
|
-
function
|
|
1347
|
-
if (e.length >
|
|
1348
|
-
for (const t of
|
|
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(
|
|
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 (
|
|
1535
|
+
if (E(a, i)) return `+${t}${a}`;
|
|
1355
1536
|
}
|
|
1356
1537
|
return null;
|
|
1357
1538
|
}
|
|
1358
|
-
return e.length <
|
|
1539
|
+
return e.length < _t ? null : `+${e}`;
|
|
1359
1540
|
}
|
|
1360
|
-
function
|
|
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
|
|
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
|
|
1555
|
+
function ne(e, t) {
|
|
1375
1556
|
if (!e) return null;
|
|
1376
|
-
const n =
|
|
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
|
|
1381
|
-
if (r.startsWith("00")) return
|
|
1382
|
-
const a =
|
|
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
|
|
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 (
|
|
1572
|
+
if (E(s, a)) return `+${a.callingCode}${s}`;
|
|
1392
1573
|
}
|
|
1393
|
-
return !o &&
|
|
1574
|
+
return !o && E(r, a) ? `+${a.callingCode}${r}` : null;
|
|
1394
1575
|
}
|
|
1395
|
-
function
|
|
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
|
|
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
|
|
1407
|
-
const t =
|
|
1587
|
+
function qi(e) {
|
|
1588
|
+
const t = be(e);
|
|
1408
1589
|
return t ? t.slice(t.lastIndexOf("@") + 1) : null;
|
|
1409
1590
|
}
|
|
1410
|
-
const
|
|
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
|
|
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
|
|
1606
|
+
return Ct.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
|
|
1426
1607
|
}
|
|
1427
|
-
const
|
|
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
|
|
1473
|
-
const t =
|
|
1474
|
-
return t ?
|
|
1653
|
+
function Ji(e) {
|
|
1654
|
+
const t = wt(e);
|
|
1655
|
+
return t ? kt.has(t) : !1;
|
|
1475
1656
|
}
|
|
1476
|
-
function
|
|
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
|
|
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 =
|
|
1666
|
+
const a = ne(t, n);
|
|
1486
1667
|
return a ? `tel:${a}` : null;
|
|
1487
1668
|
}
|
|
1488
1669
|
if (i === "fax") {
|
|
1489
|
-
const a =
|
|
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 =
|
|
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
|
|
1500
|
-
function
|
|
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(
|
|
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
|
|
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
|
-
],
|
|
1523
|
-
function
|
|
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 (
|
|
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
|
|
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
|
|
1721
|
+
function ae(e) {
|
|
1541
1722
|
return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
|
|
1542
1723
|
}
|
|
1543
|
-
function
|
|
1544
|
-
return e.replace(/ /gi, " ").replace(/</gi, "<").replace(/>/gi, ">").replace(/"/gi, '"').replace(/&#(\d+);/g, (t, n) =>
|
|
1724
|
+
function oe(e) {
|
|
1725
|
+
return e.replace(/ /gi, " ").replace(/</gi, "<").replace(/>/gi, ">").replace(/"/gi, '"').replace(/&#(\d+);/g, (t, n) => ae(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ae(parseInt(n, 16)) ?? t).replace(/&/gi, "&");
|
|
1545
1726
|
}
|
|
1546
|
-
function
|
|
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
|
|
1733
|
+
function tr(e) {
|
|
1553
1734
|
if (typeof e != "string" || !e) return "";
|
|
1554
1735
|
let t = e.length;
|
|
1555
|
-
for (const a of
|
|
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 =
|
|
1561
|
-
return i || (i =
|
|
1741
|
+
let i = se(oe(re(n)));
|
|
1742
|
+
return i || (i = se(oe(re(e)))), Lt(i) || i;
|
|
1562
1743
|
}
|
|
1563
|
-
const
|
|
1564
|
-
function
|
|
1565
|
-
return !!(e &&
|
|
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
|
|
1568
|
-
function
|
|
1569
|
-
return e >=
|
|
1748
|
+
const Rt = 3, Pt = 600;
|
|
1749
|
+
function ir(e, t) {
|
|
1750
|
+
return e >= Rt || t >= Pt;
|
|
1570
1751
|
}
|
|
1571
|
-
const
|
|
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
|
|
1761
|
+
function jt(e) {
|
|
1581
1762
|
const t = (e ?? "").trim().toLowerCase().split(";")[0];
|
|
1582
|
-
return t ?
|
|
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,
|
|
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
|
-
},
|
|
1590
|
-
function
|
|
1591
|
-
const n =
|
|
1592
|
-
return n === "unsupported" ? "unsupported" : t >
|
|
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
|
|
1595
|
-
const n = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, r = t.intents.filter((o) => !n.has(o.intent)).map((o) =>
|
|
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
|
|
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
|
|
1612
|
-
const n =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1825
|
+
function ur(e, t) {
|
|
1634
1826
|
return t.filter((n) => n.capability.intent === e);
|
|
1635
1827
|
}
|
|
1636
|
-
function
|
|
1828
|
+
function Wt(e, t) {
|
|
1637
1829
|
return t.filter((n) => n.capability.targetSchemes.includes(e));
|
|
1638
1830
|
}
|
|
1639
|
-
function
|
|
1640
|
-
return
|
|
1831
|
+
function dr(e, t) {
|
|
1832
|
+
return Wt(e.scheme, t);
|
|
1641
1833
|
}
|
|
1642
|
-
function
|
|
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
|
|
1650
|
-
const
|
|
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
|
|
1673
|
-
return e ?
|
|
1864
|
+
function fr(e) {
|
|
1865
|
+
return e ? Xt[e] ?? "note" : "note";
|
|
1674
1866
|
}
|
|
1675
|
-
const
|
|
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
|
-
},
|
|
1693
|
-
function
|
|
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
|
|
1698
|
-
const t =
|
|
1699
|
-
return t ? t !==
|
|
1889
|
+
function Sr(e) {
|
|
1890
|
+
const t = Se(e);
|
|
1891
|
+
return t ? t !== Ee : typeof e == "string" && e.startsWith("/wake");
|
|
1700
1892
|
}
|
|
1701
|
-
function
|
|
1702
|
-
return typeof e != "string" || e === "" || e === "/" ? !0 :
|
|
1893
|
+
function Tr(e) {
|
|
1894
|
+
return typeof e != "string" || e === "" || e === "/" ? !0 : Se(e) === Ee;
|
|
1703
1895
|
}
|
|
1704
|
-
function
|
|
1896
|
+
function Yt(e) {
|
|
1705
1897
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1706
1898
|
}
|
|
1707
|
-
function
|
|
1708
|
-
const n = e.split("/").filter(Boolean).map((i) => i.startsWith(":") ? i.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" +
|
|
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
|
|
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
|
|
1912
|
+
function Qt(e) {
|
|
1721
1913
|
return e.publicBasePath ?? `/apps/${e.name}`;
|
|
1722
1914
|
}
|
|
1723
|
-
function
|
|
1915
|
+
function _r(e) {
|
|
1724
1916
|
const t = [];
|
|
1725
1917
|
for (const n of e) {
|
|
1726
1918
|
if (!n?.name) continue;
|
|
1727
|
-
const i =
|
|
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
|
|
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
|
|
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
|
-
|
|
1754
|
-
return n ? { ...n, params: { ...n.props, ...
|
|
1755
|
-
}
|
|
1756
|
-
function
|
|
1757
|
-
return
|
|
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
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
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 && !
|
|
2265
|
+
return !i && !_e(a) ? { online: !1, status: "offline" } : { online: i, status: a, message: r.message };
|
|
1765
2266
|
}
|
|
1766
|
-
function
|
|
1767
|
-
const n = t - e.lastSeenAt <
|
|
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
|
-
|
|
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
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
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
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
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
|
};
|