@opencxh/domain 1.160.0 → 1.162.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.
@@ -0,0 +1,255 @@
1
+ import { OwnerScope } from '../contact/types';
2
+ /**
3
+ * Work management — één entiteit voor alles wat *werk* is.
4
+ *
5
+ * Taak, subtaak, zaak, project, fase, deal en campagne zijn hier rijen in hetzelfde model.
6
+ * Wat ze onderscheidt is configuratie, geen code: het **project** draagt de workflow, de
7
+ * veldselectie en de toegang, en `typeKey` is niet meer dan een icoon met een etiket.
8
+ *
9
+ * De regel waarmee dit model is afgebakend, in drie vragen:
10
+ *
11
+ * 1. *Wie bepaalt de statusovergang?* Onze gebruikers → een `WorkItem`. Een extern systeem
12
+ * (Shopify, de boekhouding) → gespiegeld door de bron-app, hier hooguit een `WorkLink`.
13
+ * 2. *Eigen levensduur, of hangt het ergens aan?* Eigen → een item. Hangt eraan (uren,
14
+ * notities, attributen, geheugen) → een annotatie op een `scopeKey`, nooit een rij hier.
15
+ * 3. *Ander gedrag, of andere woorden?* Alleen andere woorden → een `WorkProject` met andere
16
+ * statussen. Pas bij ander gedrag komt er code bij.
17
+ *
18
+ * Test 3 is waarom "Dossier", "Project" en "Deal" geen drie entiteiten zijn.
19
+ */
20
+ /**
21
+ * De drie categorieën waarin elke status valt.
22
+ *
23
+ * Vast, terwijl de statusnaam per project vrij is ("Offerte", "Wacht op cliënt"). Dit is de
24
+ * vraag die élke consument stelt — de lijst, de teller, de rapportage — en zou die de
25
+ * projectconfiguratie moeten lezen om hem te beantwoorden, dan kon geen enkele query het
26
+ * geïndexeerd doen.
27
+ */
28
+ export type WorkStatusCategory = "todo" | "in_progress" | "done";
29
+ /**
30
+ * Eén stap in de workflow van een project.
31
+ *
32
+ * `key` is **org-uniek en niet project-uniek**, en dat is een bewuste last op het
33
+ * beheerscherm in ruil voor iets belangrijks: het item draagt alleen `statusKey`, dus
34
+ * "al mijn open werk over alle projecten heen" is één `{ statusKey: anyOf(openKeys) }`.
35
+ * Zouden twee projecten allebei een `done` mogen hebben met een andere categorie, dan gaf
36
+ * diezelfde query stilzwijgend het verkeerde antwoord. De sleutel wordt daarom net als bij
37
+ * de werksoorten uit het label geslugd en bij botsing opgehoogd.
38
+ *
39
+ * `label` is vrij te hernoemen; `key` ligt vast zodra er items op staan.
40
+ */
41
+ export interface WorkStatus {
42
+ key: string;
43
+ label: string;
44
+ category: WorkStatusCategory;
45
+ order: number;
46
+ /** Optionele accentkleur voor de bolletjes in de lijst en het beheerscherm. */
47
+ color?: string;
48
+ }
49
+ /**
50
+ * Een afloopreden: hóé iets eindigde, los van wáár het staat.
51
+ *
52
+ * Bewust een vrij label zonder vaste betekenis en zonder uitkomst-vlag. Een advocatenkantoor
53
+ * onderscheidt "geschikt" van "vonnis", een salesteam "gewonnen" van "verloren", en geen van
54
+ * beide past in een enum die wij bedenken. De prijs staat in het plan: niets kan uitrekenen
55
+ * hoeveel er goed afliep. Komt die vraag, dan is een `positive?: boolean` hier de plek.
56
+ */
57
+ export interface WorkResolution {
58
+ key: string;
59
+ label: string;
60
+ order: number;
61
+ }
62
+ /**
63
+ * Een project: de drager van een werkproces.
64
+ *
65
+ * Dit is waar Jira zijn schemes heeft en wij niet. Workflow, veldselectie en toegang hangen
66
+ * rechtstreeks aan het project in plaats van aan drie koppelbare configuratieobjecten — dat
67
+ * scheelt de drie schermen die je bij Jira langs moet om één status te veranderen.
68
+ */
69
+ export interface WorkProject {
70
+ id: string;
71
+ organizationId: string;
72
+ /**
73
+ * Org-uniek, hoofdletters: `"SAL"`. Vormt het voorvoegsel van elke itemsleutel
74
+ * (`SAL-142`), en ligt daarom vast zodra er items zijn — hem wijzigen zou elke sleutel
75
+ * hernoemen, inclusief de exemplaren die mensen in een mail hebben geplakt.
76
+ */
77
+ key: string;
78
+ name: string;
79
+ description?: string;
80
+ /** Lucide-icoonnaam. */
81
+ icon?: string;
82
+ color?: string;
83
+ ownerScope: OwnerScope;
84
+ /** Leden bovenop `ownerScope` — wie er nog meer bij mag. */
85
+ memberUserIds?: string[];
86
+ memberTeamIds?: string[];
87
+ /**
88
+ * De workflow, ingebed in plaats van een eigen entiteit.
89
+ *
90
+ * Drie redenen. Niets bevraagt ooit een losse statusrij: elke itemvraag wordt beantwoord
91
+ * door de platte `statusKey` op het item. De leesvorm is altijd "de hele ladder tegelijk",
92
+ * want een lijst rendert alle labels, kleuren en volgordes. En het beheerscherm bewerkt de
93
+ * ladder als één herordening — deze store kent geen transactie, dus als losse rijen zou
94
+ * "sleep status 3 boven status 1" N updates worden die half kunnen landen en twee
95
+ * statussen op dezelfde `order` achterlaten. Als array is het één `$set`.
96
+ *
97
+ * Wat het kost: uniciteit van `key` wordt niet door de store bewaakt maar door
98
+ * `validateStatuses` in de app.
99
+ */
100
+ statuses: WorkStatus[];
101
+ /** Afloopredenen, vrij per project. Leeg = afronden vraagt geen reden. */
102
+ resolutions?: WorkResolution[];
103
+ /** Welke itemtypes dit project aanbiedt. Leeg = alle. */
104
+ typeKeys?: string[];
105
+ /** Sleutels van de `CustomFieldDef`s die op dit project aan staan, in weergavevolgorde. */
106
+ fieldKeys?: string[];
107
+ /** Waar een nieuw item begint. Afwezig = de eerste status in `order`. */
108
+ defaultStatusKey?: string;
109
+ /**
110
+ * Duurzaam ankerpunt voor de sleutelteller.
111
+ *
112
+ * De teller zelf leeft in `Bridge.kv`, maar kv is een cache: hij kan koud starten of
113
+ * geëvicteerd worden. Dit veld en de `(organizationId, projectId, sequenceNumber)`-index
114
+ * zijn samen de weg terug, zodat een lege kv geen sleutels hergebruikt.
115
+ */
116
+ lastSequence?: number;
117
+ archived?: boolean;
118
+ order?: number;
119
+ createdBy: string;
120
+ createdAt?: number;
121
+ updatedAt?: number;
122
+ }
123
+ export type WorkPriority = "low" | "normal" | "high" | "urgent";
124
+ /** Waar een item vandaan komt — een mens of iets automatisch. */
125
+ export interface WorkItemSource {
126
+ initiator: "user" | "system";
127
+ /** Vrije reden bij `system` ("missed_call", "stale_interaction"). */
128
+ systemReason?: string;
129
+ }
130
+ /**
131
+ * Een werkitem.
132
+ *
133
+ * Let op wat hier **niet** staat: geen `interactionId`, geen `contactId`, geen `companyId`.
134
+ * Verbanden lopen via {@link WorkLink} plus de platgeslagen {@link WorkItem.keys}, zodat "de
135
+ * items op dit gesprek" één geïndexeerde `$in` blijft die combineerbaar is met een
136
+ * statusfilter — wat een omweg langs de koppeltabel niet is.
137
+ *
138
+ * En geen `value`/`currency`: bedragen zijn aangepaste velden in de generieke
139
+ * attribuutstore. Dat maakt sorteren erop een geheugenoperatie; zie het plan.
140
+ */
141
+ export interface WorkItem {
142
+ id: string;
143
+ organizationId: string;
144
+ /**
145
+ * Afwezig = een **los item**: geen sleutel, geen projectvelden, en de vaste ladder uit
146
+ * {@link LOOSE_STATUSES}. Dat is wat een losse taak is ("terugbellen", een opvolging op
147
+ * een gesprek), en het bestaat vanaf dag één zodat werk dat later uit een andere app
148
+ * hierheen komt geen modelwijziging vraagt.
149
+ */
150
+ projectId?: string;
151
+ /** `SAL-142` / `SAL-142-1`. Afwezig bij een los item. Org-uniek waar aanwezig. */
152
+ key?: string;
153
+ sequenceNumber?: number;
154
+ /** Volgnummer binnen de ouder — het `-1` in `SAL-142-1`. */
155
+ subSequence?: number;
156
+ /** Lichte classificatie: icoon en welke velden zinvol zijn. Nooit een workflow. */
157
+ typeKey: string;
158
+ ownerScope: OwnerScope;
159
+ title: string;
160
+ description?: string;
161
+ /**
162
+ * Een {@link WorkStatus.key} — die van het project, of uit de vaste ladder. Omdat de
163
+ * sleutels org-uniek zijn is de categorie er altijd eenduidig bij te zoeken; daarom
164
+ * staat die hier níet als tweede kolom.
165
+ */
166
+ statusKey: string;
167
+ /** {@link WorkResolution.key}. Alleen zinvol als de status in categorie `done` valt. */
168
+ resolution?: string;
169
+ parentId?: string;
170
+ /**
171
+ * De scopeKeys van álle voorouders, platgeslagen op schrijfmoment
172
+ * (`["work_item:program-1", "work_item:project-7"]`, van boven naar beneden).
173
+ *
174
+ * Dít maakt onbeperkte diepte betaalbaar: "alles onder dit project" is één geïndexeerde
175
+ * `$in` in plaats van een recursieve traversal, en die kan deze store niet. De prijs zit
176
+ * aan de schrijfkant — een item verslepen betekent de `ancestorKeys` van zijn hele
177
+ * subtree herschrijven, en dat is een job, geen request.
178
+ */
179
+ ancestorKeys?: string[];
180
+ /** UserIds die dit doen. Leeg = de pool van het team. */
181
+ assignees?: string[];
182
+ /** Wie het inbracht, los van wie het doet. */
183
+ reporterId?: string;
184
+ watchers?: string[];
185
+ priority?: WorkPriority;
186
+ labels?: string[];
187
+ /**
188
+ * De partijen, plat en zonder rol: `["company:123", "contact:456"]`.
189
+ *
190
+ * Afgeleid uit de {@link WorkLink}s op schrijfmoment. Twee vormen naast elkaar omdat ze
191
+ * twee vragen beantwoorden: de link weet *in welke hoedanigheid* (cliënt, wederpartij),
192
+ * deze kolom beantwoordt "alle items waar dit bedrijf in zit" in één indexhit — wat over
193
+ * een koppeltabel een tweede ronde zou kosten.
194
+ */
195
+ partyKeys: string[];
196
+ /**
197
+ * Dossiersleutels — de `keys`-conventie uit `platform/scope.ts`. Eigen sleutel,
198
+ * projectsleutel, voorouders en partijen. Hiermee vinden uren, geheugen en attributen
199
+ * dit item terug.
200
+ */
201
+ keys: string[];
202
+ /** Verwijzingen naar externe systemen (`shopify_order:8842`). Nooit een kopie. */
203
+ externalIds?: string[];
204
+ /** Epoch ms. */
205
+ startDate?: number;
206
+ dueDate?: number;
207
+ /** Gezet zodra de status naar categorie `done` gaat, gewist als hij terugkomt. */
208
+ closedAt?: number;
209
+ estimateSeconds?: number;
210
+ /** Standaard voor uren die hierop geboekt worden; de urenregel mag afwijken. */
211
+ billable?: boolean;
212
+ source: WorkItemSource;
213
+ createdBy: string;
214
+ createdAt?: number;
215
+ updatedAt?: number;
216
+ }
217
+ /**
218
+ * Een getypeerde koppeling tussen een werkitem en wat dan ook.
219
+ *
220
+ * **Eén hop, nooit getraverseerd.** Dat is de afspraak die deze tabel naast de
221
+ * `keys`-conventie laat bestaan in plaats van ermee te concurreren: context en lidmaatschap
222
+ * lopen via `keys` (platgeslagen bij schrijven, één indexhit), en dit is de expliciete,
223
+ * laag-volume, één-niveau-diepe relatie tussen twee dingen. Een link-tabel die alsnog de
224
+ * contextvraag beantwoordt is het begin van de grafiek die hier bewust niet gebouwd is —
225
+ * deze store kan niet recursief traverseren.
226
+ */
227
+ export interface WorkLink {
228
+ id: string;
229
+ organizationId: string;
230
+ /** Altijd `work_item:<id>` op de heenrij. */
231
+ fromKey: string;
232
+ /** Elke scopeKey: een ander item, een gesprek, een contact, een artefact. */
233
+ toKey: string;
234
+ /**
235
+ * De relatie én de partijrol in één vocabulaire: `client` · `opposing` · `context` ·
236
+ * `blocks` · `blocked_by` · `relates` · `duplicates` · `attachment`.
237
+ *
238
+ * Eén veld en geen aparte rol-kolom, want het zijn dezelfde soort uitspraak: "dit bedrijf
239
+ * is de cliënt" en "dit item blokkeert dat item" zijn allebei een benoemde pijl.
240
+ */
241
+ type: string;
242
+ /**
243
+ * Gedeeld door de heen- en terugrij.
244
+ *
245
+ * Elke koppeling wordt als **twee** rijen geschreven, zodat een lookup één geïndexeerde
246
+ * query op `fromKey` is in plaats van een `$or` over twee kolommen — en zodat "welk werk
247
+ * hangt aan `interaction:123`" dezelfde query is als "wat hangt aan dit item". Dit veld
248
+ * houdt ontkoppelen daarmee één handeling.
249
+ */
250
+ pairId: string;
251
+ /** Waar de terugrij zich mee bekendmaakt, zodat de UI "wordt geblokkeerd door" kan tonen. */
252
+ inverse?: boolean;
253
+ createdBy: string;
254
+ createdAt?: number;
255
+ }
package/dist/index.cjs CHANGED
@@ -1,18 +1,18 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function Dt(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Pt(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}const x=10,S=10,_=10,b=5,$t=new Set(["header","section","context","divider","image","list","actions","attachments"]);function k(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function Ut(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=x){t("more than "+x+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const r=i;if(!$t.has(r.type)){t("unknown block type "+String(r.type));continue}switch(r.type){case"header":if(!k(r.text)){t("a header without text");continue}break;case"context":if(!k(r.text)){t("a context block without text");continue}break;case"image":if(!r.url||!r.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(r.fields)&&r.fields.length>S&&(t("more than "+S+" fields in a section"),r.fields=r.fields.slice(0,S));break;case"list":if(!Array.isArray(r.items)||r.items.length===0){t("a list without items");continue}r.items.length>_&&(t("more than "+_+" list items"),r.items=r.items.slice(0,_));break;case"actions":{const a=Array.isArray(r.elements)?r.elements:[],o=a.filter(s=>s&&s.action_id&&s.invoke&&k(s.text));if(o.length!==a.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>b&&t("more than "+b+" actions"),r.elements=o.slice(0,b);break}}n.push(r)}return n}function Te(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function y(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function ie(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function w(e){return e?.split("@")?.[0]||e||""}function T(e){return e.map(t=>t.name).join(", ")}function re(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const m={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${w(e.payload.from)}`:`Outbound call started — ${w(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:e=>`Call ended${ie(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${w(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:ae},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:ae},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} toegevoegd`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} verlaten`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${re(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:e=>`${re(e.payload.callType)} ended${ie(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`}};function ae(e){const t=e.payload,n=t.bodySnippet?.trim()||Te(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function l(e){return m[e]}function Kt(e){return l(e)?.icon??"circle"}function Bt(e){return l(e)?.channelKind}function H(e){return e==="message"||e==="note"}function Ft(e){return H(l(e)?.shape)}function Gt(e){return l(e)?.replyable===!0}function jt(e){return l(e)?.carriesText===!0}function Vt(e){return l(e)?.countsAs}function Ht(e){return l(e)?.playbookAuthored===!0}function Wt(e){return l(e)?.connected===!0}function Xt(e){const t=l(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Se(e){const t=l(e.type)?.snippet;return t?t(e):""}function zt(e,t){const n=l(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Yt(e){const t=l(e.type)?.joinUrl;return t?t(e):void 0}function N(e,t){let n=e;for(const i of t.split(".")){if(n==null||typeof n!="object")return"";n=n[i]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function O(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return N(t,e.value)||null;const i={};for(const[a,o]of Object.entries(e.params??{}))i[a]=N(t,o);const r=n(e.key,i);return r===e.key?null:r}function _e(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[i,r]of Object.entries(e.params??{}))n[i]=N(t,r);return{key:e.key,params:n}}const qt=e=>e;function oe(e){const t=m[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function se(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class be{constructor(t=[],n=qt){this.translate=n;for(const i of t)i?.type&&(i.type in m||this.declared.has(i.type)||this.declared.set(i.type,i))}declared=new Map;get(t){if(t in m)return oe(t);const n=this.declared.get(t);return n?se(n):void 0}triggerable(){const t=Object.keys(m).filter(i=>m[i].triggerable).map(oe),n=[...this.declared.values()].map(se).filter(i=>i.triggerable);return[...t,...n]}timelineText(t,n){const i=m[t.type];if(i?.timeline)return i.timeline(t,n);const r=this.declared.get(t.type);return O(r?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=m[t.type];if(n?.snippet)return n.snippet(t);const i=this.declared.get(t.type);return O(i?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return H(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Jt=new be,le=140;function Qt(e){const t=e.trim();return t.length<=le?t:t.slice(0,le-1).trimEnd()+"…"}function Zt(e,t){const n=_e(t?.text,e),i=t?O(t.text,e,r=>r):null;return{activityId:e.id,type:e.type,snippet:Qt(i??Se(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}function en(e,t,n=[]){const i=e.createdAt;if(!i)return[];const r=new Set(n);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)}function tn(e){return e.createdAt??0}const nn=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function rn(e){const t=[];for(const n of Object.keys(e))for(const i of Object.keys(e[n]))t.push({lang:n,key:i,value:e[n][i]});return t}function R(e){return e<10?`0${e}`:`${e}`}function Ie(e,t){const n=new Date(e),i=`${n.getUTCFullYear()}-${R(n.getUTCMonth()+1)}-${R(n.getUTCDate())}`;return t==="day"?i:`${i}T${R(n.getUTCHours())}`}function Me(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const an=36e5,on=864e5;function sn(e,t,n){const i=n==="hour"?an:on,r=[];for(let a=Me(e,n);a<=t;a+=i)r.push(Ie(a,n));return r}const Ce=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Ne=Ce.map(e=>e.id);function Oe(e,t){return`${e}.usage.${t}`}function ln(e,t){return t.map(n=>({id:Oe(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Ne,...n.extraDimensions??[],"time"]}))}const ve=new Set(["info","success","warning","destructive"]),D=200,P=100,$=200,U=12,K=4,W=4e3,I=500,cn=256*1024,un=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Le=["http:","https:","mailto:","tel:"],dn=/^[a-z][a-z0-9+.-]*:/i;function ke(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=dn.exec(t)?.[0];return n?Le.includes(n.toLowerCase()):!t.startsWith("//")}const pn=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function fn(e){let t="",n=0;for(;n<e.length;){const i=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!i){t+=e[n],n+=1;continue}const r=n+(i?2:1),a=ce(e,r,"[","]");if(a<0||e[a+1]!=="("){t+=e[n],n+=1;continue}const o=ce(e,a+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(r,a),c=e.slice(a+2,o).trim().split(/\s+/)[0]??"";t+=i||!ke(c)?s:e.slice(n,o+1),n=o+1}return t}function ce(e,t,n,i){let r=1;for(let a=t;a<e.length;a+=1){if(e[a]==="\\"){a+=1;continue}if(e[a]===n)r+=1;else if(e[a]===i&&(r-=1,r===0))return a}return-1}function we(e){return fn(e).replace(pn,(t,n,i)=>ke(i)?t:"")}function d(e,t=W){return typeof e=="string"?we(e).slice(0,t):""}function mn(e,t=W){return typeof e=="string"?e.slice(0,t):""}function gn(e,t="info"){return typeof e=="string"&&ve.has(e)?e:t}function hn(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=D){t("more than "+D+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const r=i;if(!un.has(r.type)){t("unknown block type "+String(r.type));continue}const a=typeof r.block_id=="string"?{block_id:r.block_id}:{};switch(r.type){case"heading":{const o=d(r.text);if(!o){t("a heading without text");continue}const s=r.level===2||r.level===3?r.level:1;n.push({...a,type:"heading",level:s,text:o});break}case"paragraph":{const o=d(r.text);if(!o){t("a paragraph without text");continue}n.push({...a,type:"paragraph",text:o});break}case"quote":{const o=d(r.text);if(!o){t("a quote without text");continue}n.push({...a,type:"quote",text:o});break}case"code":{const o=mn(r.text);if(!o){t("a code block without text");continue}const s=typeof r.lang=="string"?{lang:r.lang.slice(0,32)}:{};n.push({...a,type:"code",...s,text:o});break}case"divider":n.push({...a,type:"divider"});break;case"list":{const o=Array.isArray(r.items)?r.items:[],s=[];for(const p of o){if(s.length>=P){t("more than "+P+" list items");break}const f=d(p?.text);if(!f)continue;const u=d(p?.lead,200);s.push(u?{lead:u,text:f}:{text:f})}if(s.length===0){t("a list without usable items");continue}const c=r.style==="numbered"?"numbered":"bulleted";n.push({...a,type:"list",style:c,items:s});break}case"table":{const o=Array.isArray(r.columns)?r.columns:[],s=[];for(const u of o){if(s.length>=U){t("more than "+U+" table columns");break}const E=d(u?.label,I),L=u?.align==="right"?"right":void 0;s.push(L?{label:E,align:L}:{label:E})}if(s.length===0){t("a table without columns");continue}const c=Array.isArray(r.rows)?r.rows:[],p=[];for(const u of c){if(p.length>=$){t("more than "+$+" table rows");break}const E=Array.isArray(u)?u:[];p.push(s.map((L,xt)=>d(E[xt],I)))}const f=d(r.caption,I);n.push({...a,type:"table",columns:s,rows:p,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(r.items)?r.items:[],s=[];for(const c of o){if(s.length>=K){t("more than "+K+" kpi items");break}const p=d(c?.value,40),f=d(c?.label,80);if(!p||!f)continue;const u=c?.tone;s.push(typeof u=="string"&&ve.has(u)?{value:p,label:f,tone:u}:{value:p,label:f})}if(s.length===0){t("a kpi block without usable items");continue}n.push({...a,type:"kpi",items:s});break}case"callout":{const o=d(r.text);if(!o){t("a callout without text");continue}const s=d(r.title,200);n.push({...a,type:"callout",tone:gn(r.tone),...s?{title:s}:{},text:o});break}}}return n}function An(e){return JSON.stringify(e).length}function En(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function ue(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function de(e,t,n){const i=e.map((r,a)=>n?.[a]==="right"?"---:":"---");return[`| ${e.map(ue).join(" | ")} |`,`| ${i.join(" | ")} |`,...t.map(r=>`| ${r.map(ue).join(" | ")} |`)]}function yn(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const i=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${i} **${t.lead}** ${t.text}`:`${i} ${t.text}`});case"table":{const t=de(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return de(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`)}}function Tn(e,t){const n=[],i=e.some(r=>r.type==="heading"&&r.level===1);t&&!i&&n.push(`# ${t}`);for(const r of e){const a=yn(r);a.length>0&&n.push(a.join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function Xt(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function zt(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}const D=10,T=10,_=10,b=5,Yt=new Set(["header","section","context","divider","image","list","actions","attachments"]);function L(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function qt(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=D){t("more than "+D+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const r=i;if(!Yt.has(r.type)){t("unknown block type "+String(r.type));continue}switch(r.type){case"header":if(!L(r.text)){t("a header without text");continue}break;case"context":if(!L(r.text)){t("a context block without text");continue}break;case"image":if(!r.url||!r.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(r.fields)&&r.fields.length>T&&(t("more than "+T+" fields in a section"),r.fields=r.fields.slice(0,T));break;case"list":if(!Array.isArray(r.items)||r.items.length===0){t("a list without items");continue}r.items.length>_&&(t("more than "+_+" list items"),r.items=r.items.slice(0,_));break;case"actions":{const a=Array.isArray(r.elements)?r.elements:[],o=a.filter(s=>s&&s.action_id&&s.invoke&&L(s.text));if(o.length!==a.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>b&&t("more than "+b+" actions"),r.elements=o.slice(0,b);break}}n.push(r)}return n}function be(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function E(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function oe(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function R(e){return e?.split("@")?.[0]||e||""}function S(e){return e.map(t=>t.name).join(", ")}function se(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const m={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${R(e.payload.from)}`:`Outbound call started — ${R(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${E(e.payload.duration)})`:""}`,timeline:e=>`Call ended${oe(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${R(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${E(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:le},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:le},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${S(e.payload.members)} toegevoegd`,timeline:e=>{const t=S(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${S(e.payload.members)} verlaten`,timeline:e=>{const t=S(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${se(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${E(e.payload.duration)})`:""}`,timeline:e=>`${se(e.payload.callType)} ended${oe(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${E(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`}};function le(e){const t=e.payload,n=t.bodySnippet?.trim()||be(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function l(e){return m[e]}function Jt(e){return l(e)?.icon??"circle"}function Zt(e){return l(e)?.channelKind}function H(e){return e==="message"||e==="note"}function Qt(e){return H(l(e)?.shape)}function en(e){return l(e)?.replyable===!0}function tn(e){return l(e)?.carriesText===!0}function nn(e){return l(e)?.countsAs}function rn(e){return l(e)?.playbookAuthored===!0}function an(e){return l(e)?.connected===!0}function on(e){const t=l(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Ie(e){const t=l(e.type)?.snippet;return t?t(e):""}function sn(e,t){const n=l(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function ln(e){const t=l(e.type)?.joinUrl;return t?t(e):void 0}function N(e,t){let n=e;for(const i of t.split(".")){if(n==null||typeof n!="object")return"";n=n[i]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function k(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return N(t,e.value)||null;const i={};for(const[a,o]of Object.entries(e.params??{}))i[a]=N(t,o);const r=n(e.key,i);return r===e.key?null:r}function Me(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[i,r]of Object.entries(e.params??{}))n[i]=N(t,r);return{key:e.key,params:n}}const cn=e=>e;function ce(e){const t=m[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function ue(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class Ce{constructor(t=[],n=cn){this.translate=n;for(const i of t)i?.type&&(i.type in m||this.declared.has(i.type)||this.declared.set(i.type,i))}declared=new Map;get(t){if(t in m)return ce(t);const n=this.declared.get(t);return n?ue(n):void 0}triggerable(){const t=Object.keys(m).filter(i=>m[i].triggerable).map(ce),n=[...this.declared.values()].map(ue).filter(i=>i.triggerable);return[...t,...n]}timelineText(t,n){const i=m[t.type];if(i?.timeline)return i.timeline(t,n);const r=this.declared.get(t.type);return k(r?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=m[t.type];if(n?.snippet)return n.snippet(t);const i=this.declared.get(t.type);return k(i?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return H(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const un=new Ce,de=140;function dn(e){const t=e.trim();return t.length<=de?t:t.slice(0,de-1).trimEnd()+"…"}function pn(e,t){const n=Me(t?.text,e),i=t?k(t.text,e,r=>r):null;return{activityId:e.id,type:e.type,snippet:dn(i??Ie(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}function fn(e,t,n=[]){const i=e.createdAt;if(!i)return[];const r=new Set(n);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)}function mn(e){return e.createdAt??0}const gn=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function hn(e){const t=[];for(const n of Object.keys(e))for(const i of Object.keys(e[n]))t.push({lang:n,key:i,value:e[n][i]});return t}function x(e){return e<10?`0${e}`:`${e}`}function Ne(e,t){const n=new Date(e),i=`${n.getUTCFullYear()}-${x(n.getUTCMonth()+1)}-${x(n.getUTCDate())}`;return t==="day"?i:`${i}T${x(n.getUTCHours())}`}function ke(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const An=36e5,yn=864e5;function En(e,t,n){const i=n==="hour"?An:yn,r=[];for(let a=ke(e,n);a<=t;a+=i)r.push(Ne(a,n));return r}const Oe=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],ve=Oe.map(e=>e.id);function we(e,t){return`${e}.usage.${t}`}function Sn(e,t){return t.map(n=>({id:we(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...ve,...n.extraDimensions??[],"time"]}))}const Le=new Set(["info","success","warning","destructive"]),P=200,$=100,K=200,U=12,F=4,X=4e3,I=500,Tn=256*1024,_n=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Re=["http:","https:","mailto:","tel:"],bn=/^[a-z][a-z0-9+.-]*:/i;function xe(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=bn.exec(t)?.[0];return n?Re.includes(n.toLowerCase()):!t.startsWith("//")}const In=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Mn(e){let t="",n=0;for(;n<e.length;){const i=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!i){t+=e[n],n+=1;continue}const r=n+(i?2:1),a=pe(e,r,"[","]");if(a<0||e[a+1]!=="("){t+=e[n],n+=1;continue}const o=pe(e,a+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(r,a),c=e.slice(a+2,o).trim().split(/\s+/)[0]??"";t+=i||!xe(c)?s:e.slice(n,o+1),n=o+1}return t}function pe(e,t,n,i){let r=1;for(let a=t;a<e.length;a+=1){if(e[a]==="\\"){a+=1;continue}if(e[a]===n)r+=1;else if(e[a]===i&&(r-=1,r===0))return a}return-1}function De(e){return Mn(e).replace(In,(t,n,i)=>xe(i)?t:"")}function d(e,t=X){return typeof e=="string"?De(e).slice(0,t):""}function Cn(e,t=X){return typeof e=="string"?e.slice(0,t):""}function Nn(e,t="info"){return typeof e=="string"&&Le.has(e)?e:t}function kn(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=P){t("more than "+P+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const r=i;if(!_n.has(r.type)){t("unknown block type "+String(r.type));continue}const a=typeof r.block_id=="string"?{block_id:r.block_id}:{};switch(r.type){case"heading":{const o=d(r.text);if(!o){t("a heading without text");continue}const s=r.level===2||r.level===3?r.level:1;n.push({...a,type:"heading",level:s,text:o});break}case"paragraph":{const o=d(r.text);if(!o){t("a paragraph without text");continue}n.push({...a,type:"paragraph",text:o});break}case"quote":{const o=d(r.text);if(!o){t("a quote without text");continue}n.push({...a,type:"quote",text:o});break}case"code":{const o=Cn(r.text);if(!o){t("a code block without text");continue}const s=typeof r.lang=="string"?{lang:r.lang.slice(0,32)}:{};n.push({...a,type:"code",...s,text:o});break}case"divider":n.push({...a,type:"divider"});break;case"list":{const o=Array.isArray(r.items)?r.items:[],s=[];for(const p of o){if(s.length>=$){t("more than "+$+" list items");break}const f=d(p?.text);if(!f)continue;const u=d(p?.lead,200);s.push(u?{lead:u,text:f}:{text:f})}if(s.length===0){t("a list without usable items");continue}const c=r.style==="numbered"?"numbered":"bulleted";n.push({...a,type:"list",style:c,items:s});break}case"table":{const o=Array.isArray(r.columns)?r.columns:[],s=[];for(const u of o){if(s.length>=U){t("more than "+U+" table columns");break}const y=d(u?.label,I),w=u?.align==="right"?"right":void 0;s.push(w?{label:y,align:w}:{label:y})}if(s.length===0){t("a table without columns");continue}const c=Array.isArray(r.rows)?r.rows:[],p=[];for(const u of c){if(p.length>=K){t("more than "+K+" table rows");break}const y=Array.isArray(u)?u:[];p.push(s.map((w,Ht)=>d(y[Ht],I)))}const f=d(r.caption,I);n.push({...a,type:"table",columns:s,rows:p,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(r.items)?r.items:[],s=[];for(const c of o){if(s.length>=F){t("more than "+F+" kpi items");break}const p=d(c?.value,40),f=d(c?.label,80);if(!p||!f)continue;const u=c?.tone;s.push(typeof u=="string"&&Le.has(u)?{value:p,label:f,tone:u}:{value:p,label:f})}if(s.length===0){t("a kpi block without usable items");continue}n.push({...a,type:"kpi",items:s});break}case"callout":{const o=d(r.text);if(!o){t("a callout without text");continue}const s=d(r.title,200);n.push({...a,type:"callout",tone:Nn(r.tone),...s?{title:s}:{},text:o});break}}}return n}function On(e){return JSON.stringify(e).length}function vn(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function fe(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function me(e,t,n){const i=e.map((r,a)=>n?.[a]==="right"?"---:":"---");return[`| ${e.map(fe).join(" | ")} |`,`| ${i.join(" | ")} |`,...t.map(r=>`| ${r.map(fe).join(" | ")} |`)]}function wn(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const i=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${i} **${t.lead}** ${t.text}`:`${i} ${t.text}`});case"table":{const t=me(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return me(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`)}}function Ln(e,t){const n=[],i=e.some(r=>r.type==="heading"&&r.level===1);t&&!i&&n.push(`# ${t}`);for(const r of e){const a=wn(r);a.length>0&&n.push(a.join(`
2
2
  `))}return`${n.join(`
3
3
 
4
4
  `)}
5
- `}const X=e=>`user:${e}`,z=e=>`team:${e}`;function Sn(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(X(n.id)),n.kind==="team"&&t.add(z(n.id)));return[...t].sort()}function _n(e,t){return[X(e),...t.map(z)]}function bn(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Re=["done","escalated"];function In(e){return Re.includes(e)}const xe="assignment";function Mn(e){return`${xe}:${e}`}function Cn(e,t){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const n=e.payload?.mentions;return Array.isArray(n)&&n.includes(t)}function Nn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const De=12;function On(e,t,n=De){const i=t+1;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?{status:"escalated",waitingOn:null,turns:i,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:i}:{status:"escalated",waitingOn:null,turns:i,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const B=["lookup","condition","parallel","for-each"];function F(e){for(const t of e){if(!B.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${B.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const i=F(n);if(i)return i}if(t.type==="for-each"){const n=F(t.body??[]);if(n)return n}}return null}function vn(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function Ln(e,t){return e.filter(n=>n.enabled&&vn(n.ownerScope,t))}function kn(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const wn=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],Rn={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Pe(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function xn(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const i=t.slice(0,n),r=t.slice(n+1).trim();if(r){if(i==="user")return{kind:"user",userId:r};if(i==="team")return{kind:"team",teamId:r}}}function $e(e){return Pe(e)}function Ue(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function Dn(e){return e.agentId?{kind:"user",userId:e.agentId}:Ue(e.ownerScope)}function Pn(e){return $e(e)}function $n(e,t){if(!t)return;let n=e;for(const i of t.split(".")){if(n===null||typeof n!="object")return;n=n[i]}return n}function Un(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Kn(e,t){if(t)return e.targets.find(n=>n.id===t)}function Ke(e){return e?.kind==="assignment"}function Bn(e){const{trigger:t,agentId:n,target:i,activityType:r,assigneeUserId:a,authorUserId:o}=e;return Ke(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"}function Be(e){return`${e.type}:${e.id}`}const Fe="interaction";function Ge(e){return e?.type===Fe?e.id:void 0}const je=64,Ve=8e3;function Fn(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),je),Ve)}const Gn={kind:"workflow",steps:[]};function jn(e){return e?.kind==="workflow"?e.steps:[]}function Vn(e){return e?.kind==="procedure"?e.procedure:void 0}const He=["done","escalated","failed","stopped"];function Hn(e){return He.includes(e)}function We(e){return e==="waiting"}function Wn(e){return e==="running"||We(e)}function Y(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Xn(e){const t=Y(e);return t?Be(t):void 0}function zn(e){return Ge(Y(e))}function Yn(e,t){const n=e.labels??[];return n.find(i=>i.locale===t)?.label??n[0]?.label??e.url}function qn(e,t,n){const i=e.translations??[];return i.find(r=>r.locale===t)??(n?i.find(r=>r.locale===n):void 0)??{locale:t}}const G=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function Xe(e){const t=(e??"").toLowerCase();return G.find(n=>n.code===t)??G.find(n=>n.code===t.split("-")[0])}function Jn(e){return Xe(e)?.label??e}function Qn(e){const t=Xe(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const q=3;function ze(e,t){const n=new Set;let i=1,r=t.get(e)?.parentId;for(;r;){if(n.has(r)||(n.add(r),i++,i>q+1))return 1/0;r=t.get(r)?.parentId}return i}function Zn(e,t,n){if(!e)return!0;if(e===t)return!1;const i=new Map(n.map(o=>[o.id,o]));if(!i.has(e)||t&&Ye(e,t,i))return!1;const r=ze(e,i),a=t?J(t,n):1;return r+a<=q}function Ye(e,t,n){const i=new Set;let r=n.get(e)?.parentId;for(;r;){if(r===t)return!0;if(i.has(r))return!1;i.add(r),r=n.get(r)?.parentId}return!1}function J(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const i=t.filter(r=>r.parentId===e);return i.length?1+Math.max(...i.map(r=>J(r.id,t,n))):1}const qe="en";function Je(e){return e.defaultLocale||e.locale||qe}function ei(e){const t=new Set,n=[];for(const i of[Je(e),...e.locales??[]])!i||t.has(i)||(t.add(i),n.push(i));return n}function ti(e,t,n){const i=e.translations??[];return i.find(r=>r.locale===t)?.name??(n?i.find(r=>r.locale===n)?.name:void 0)??e.name}const Qe=20,Ze=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function et(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),i=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return i>M*.6?n.slice(0,i+1):`${n.trimEnd()}…`}function ni(e,t){const n=et(t.text),i=g(n);if(!i||(e.examples??[]).some(o=>g(o)===i))return null;const r=e.exampleCandidates??[],a=r.findIndex(o=>g(o.text)===i);if(a>=0){if(r[a].corrected||!t.corrected)return null;const o=[...r];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},pe(o)}return pe([{...t,text:n},...r]).slice(0,Ze)}function pe(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function ii(e,t){const n=g(t),i=(e.examples??[]).filter(a=>a.trim());return{examples:i.some(a=>g(a)===n)?i:[...i,t].slice(-Qe),exampleCandidates:tt(e,t)}}function tt(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(i=>g(i.text)!==n)}function nt(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function ri(e,t){return e.filter(n=>nt(n,t))}const Q=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function A(e){return Q.find(t=>t.id===e)}function ai(e){return A(e)?.label??e}function oi(e,t="gpt-5-mini"){return A(e)?.defaultModel??t}function si(e){return Q.filter(t=>t.capabilities.includes(e))}function li(e){const t=A(e);return!!t&&!t.baseUrl}function ci(e,t){return t==="text"?!0:A(e)?.attachmentKinds?.includes(t)===!0}function ui(e,t){if(!e.enabled)return"ok";const n=j(e.hardLimitNanos),i=j(e.softLimitNanos);return n!==void 0&&t>=n?"hard":i!==void 0&&t>=i?"soft":"ok"}function j(e){return typeof e=="number"?e:void 0}function it(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function di(e,t="month"){const n=new Date(it(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function pi(e){return e?.listeningEnabled!==!1}const fi=new Set(["mail","message"]);function rt(e,t){const n=e.settings?.signatures?.[t];return!n||!n.enabled||!n.body||n.body.trim()===""?null:n}function mi(e,t,n,i="html"){if(!e)return n;const r=rt(e,t);return r?`${n}${i==="text"?`
5
+ `}const z=e=>`user:${e}`,Y=e=>`team:${e}`;function Rn(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(z(n.id)),n.kind==="team"&&t.add(Y(n.id)));return[...t].sort()}function xn(e,t){return[z(e),...t.map(Y)]}function Dn(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Pe=["done","escalated"];function Pn(e){return Pe.includes(e)}const $e="assignment";function $n(e){return`${$e}:${e}`}function Kn(e,t,n){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const i=e.payload?.mentions;return Array.isArray(i)&&i.includes(t)?!0:n==="reply"}function Un(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Ke=12;function Fn(e,t,n=Ke){const i=t+1;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?{status:"escalated",waitingOn:null,turns:i,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:i}:{status:"escalated",waitingOn:null,turns:i,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const B=["lookup","condition","parallel","for-each"];function G(e){for(const t of e){if(!B.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${B.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const i=G(n);if(i)return i}if(t.type==="for-each"){const n=G(t.body??[]);if(n)return n}}return null}function Bn(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function Gn(e,t){return e.filter(n=>n.enabled&&Bn(n.ownerScope,t))}function jn(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Wn=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],Vn={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Ue(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Hn(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const i=t.slice(0,n),r=t.slice(n+1).trim();if(r){if(i==="user")return{kind:"user",userId:r};if(i==="team")return{kind:"team",teamId:r}}}function Fe(e){return Ue(e)}function Be(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function Xn(e){return e.agentId?{kind:"user",userId:e.agentId}:Be(e.ownerScope)}function zn(e){return Fe(e)}function Yn(e,t){if(!t)return;let n=e;for(const i of t.split(".")){if(n===null||typeof n!="object")return;n=n[i]}return n}function qn(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Jn(e,t){if(t)return e.targets.find(n=>n.id===t)}function Ge(e){return e?.kind==="assignment"}function Zn(e){const{trigger:t,agentId:n,target:i,activityType:r,assigneeUserId:a,authorUserId:o}=e;return Ge(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"}function je(e){return`${e.type}:${e.id}`}const We="interaction";function Ve(e){return e?.type===We?e.id:void 0}const He=64,Xe=8e3;function Qn(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),He),Xe)}const ei={kind:"workflow",steps:[]};function ti(e){return e?.kind==="workflow"?e.steps:[]}function ni(e){return e?.kind==="procedure"?e.procedure:void 0}const ze=["done","escalated","failed","stopped"];function ii(e){return ze.includes(e)}function Ye(e){return e==="waiting"}function ri(e){return e==="running"||Ye(e)}function q(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function ai(e){const t=q(e);return t?je(t):void 0}function oi(e){return Ve(q(e))}function si(e,t){const n=e.labels??[];return n.find(i=>i.locale===t)?.label??n[0]?.label??e.url}function li(e,t,n){const i=e.translations??[];return i.find(r=>r.locale===t)??(n?i.find(r=>r.locale===n):void 0)??{locale:t}}const j=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function qe(e){const t=(e??"").toLowerCase();return j.find(n=>n.code===t)??j.find(n=>n.code===t.split("-")[0])}function ci(e){return qe(e)?.label??e}function ui(e){const t=qe(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const J=3;function Je(e,t){const n=new Set;let i=1,r=t.get(e)?.parentId;for(;r;){if(n.has(r)||(n.add(r),i++,i>J+1))return 1/0;r=t.get(r)?.parentId}return i}function di(e,t,n){if(!e)return!0;if(e===t)return!1;const i=new Map(n.map(o=>[o.id,o]));if(!i.has(e)||t&&Ze(e,t,i))return!1;const r=Je(e,i),a=t?Z(t,n):1;return r+a<=J}function Ze(e,t,n){const i=new Set;let r=n.get(e)?.parentId;for(;r;){if(r===t)return!0;if(i.has(r))return!1;i.add(r),r=n.get(r)?.parentId}return!1}function Z(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const i=t.filter(r=>r.parentId===e);return i.length?1+Math.max(...i.map(r=>Z(r.id,t,n))):1}const Qe="en";function et(e){return e.defaultLocale||e.locale||Qe}function pi(e){const t=new Set,n=[];for(const i of[et(e),...e.locales??[]])!i||t.has(i)||(t.add(i),n.push(i));return n}function fi(e,t,n){const i=e.translations??[];return i.find(r=>r.locale===t)?.name??(n?i.find(r=>r.locale===n)?.name:void 0)??e.name}const tt=20,nt=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function it(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),i=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return i>M*.6?n.slice(0,i+1):`${n.trimEnd()}…`}function mi(e,t){const n=it(t.text),i=g(n);if(!i||(e.examples??[]).some(o=>g(o)===i))return null;const r=e.exampleCandidates??[],a=r.findIndex(o=>g(o.text)===i);if(a>=0){if(r[a].corrected||!t.corrected)return null;const o=[...r];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},ge(o)}return ge([{...t,text:n},...r]).slice(0,nt)}function ge(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function gi(e,t){const n=g(t),i=(e.examples??[]).filter(a=>a.trim());return{examples:i.some(a=>g(a)===n)?i:[...i,t].slice(-tt),exampleCandidates:rt(e,t)}}function rt(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(i=>g(i.text)!==n)}function at(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function hi(e,t){return e.filter(n=>at(n,t))}const Q=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function A(e){return Q.find(t=>t.id===e)}function Ai(e){return A(e)?.label??e}function yi(e,t="gpt-5-mini"){return A(e)?.defaultModel??t}function Ei(e){return Q.filter(t=>t.capabilities.includes(e))}function Si(e){const t=A(e);return!!t&&!t.baseUrl}function Ti(e,t){return t==="text"?!0:A(e)?.attachmentKinds?.includes(t)===!0}function _i(e,t){if(!e.enabled)return"ok";const n=W(e.hardLimitNanos),i=W(e.softLimitNanos);return n!==void 0&&t>=n?"hard":i!==void 0&&t>=i?"soft":"ok"}function W(e){return typeof e=="number"?e:void 0}function ot(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function bi(e,t="month"){const n=new Date(ot(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Ii(e){return e?.listeningEnabled!==!1}const Mi=new Set(["mail","message"]);function st(e,t){const n=e.settings?.signatures?.[t];return!n||!n.enabled||!n.body||n.body.trim()===""?null:n}function Ci(e,t,n,i="html"){if(!e)return n;const r=st(e,t);return r?`${n}${i==="text"?`
6
6
 
7
- `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${r.body}`:n}function gi(e){return e.endpoints??[]}const hi=e=>!!e.assignedUserId||!!e.assignedInboxId,Ai=e=>e.status==="closed",Ei=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,yi=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function Ti(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Si=1e3,_i=2e3,bi=500,Ii=12e3,Mi=4e3,at=["contact","company"];function Ci(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return at.includes(t)}function Ni(e){return e.type==="agent"}const v={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},ot="NL",Oi=15,vi=8,Li=Array.from(new Set(Object.values(v).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function fe(e){if(e)return v[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function me(e){if(e.length>Oi)return null;for(const t of Li){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const i of Object.values(v)){if(i.callingCode!==t)continue;const r=i.trunkPrefix,a=r&&n.startsWith(r)?n.slice(r.length):n;if(C(a,i))return`+${t}${a}`}return null}return e.length<vi?null:`+${e}`}function ki(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const i=t.indexOf("@");return i>=0&&(t=t.slice(0,i)),t.trim()}function wi(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function V(e,t){if(!e)return null;const n=ki(e);if(!n)return null;const i=n.startsWith("+"),r=n.replace(/\D/g,"");if(!r)return null;if(i)return me(r);if(r.startsWith("00"))return me(r.slice(2));const a=fe(t)??fe(ot);if(!a)return null;const o=a.trunkPrefix;if(o&&r.startsWith(o)){const s=r.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(r.startsWith(a.callingCode)){const s=r.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(r,a)?`+${a.callingCode}${r}`:null}function Ri(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function Z(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const i=t.slice(0,n).split("+")[0],r=t.slice(n+1);return!i||!r.includes(".")?null:`${i}@${r}`}function xi(e){const t=Z(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Di=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function st(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return Di.has(n)&&t.length>=3?t.slice(-3).join("."):n}const lt=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function Pi(e){const t=st(e);return t?lt.has(t):!1}function $i(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Ui(e,t,n){if(!e||!t)return null;const i=e.trim().toLowerCase();if(i==="tel"||i==="sms"||i==="whatsapp"){const a=V(t,n);return a?`tel:${a}`:null}if(i==="fax"){const a=V(t,n);return a?`fax:${a}`:null}if(i==="mailto"||i==="email"){const a=Z(t);return a?`mailto:${a}`:null}const r=t.trim().toLowerCase();return r?`${i}:${r}`:null}const Ki=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,Bi=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Fi(e){if(typeof e!="string"||!e)return"";let t=e;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(`
7
+ `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${r.body}`:n}function Ni(e){return e.endpoints??[]}const ki=e=>!!e.assignedUserId||!!e.assignedInboxId,Oi=e=>e.status==="closed",vi=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,wi=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function Li(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Ri=1e3,xi=2e3,Di=500,Pi=12e3,$i=4e3,lt=["contact","company"];function Ki(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return lt.includes(t)}function Ui(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Fi(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const i=Number(t);return!Number.isFinite(i)||i<=0?n*60:Math.ceil(n/i)*i*60}function Bi(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Gi(e){const t=Math.max(0,Math.floor(e)),n=a=>String(a).padStart(2,"0"),i=Math.floor(t/60)%60,r=Math.floor(t/3600);return r>0?`${r}:${n(i)}:${n(t%60)}`:`${n(i)}:${n(t%60)}`}function ct(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ji(e,t){const n=ct(e)||"werksoort",i=new Set(t);if(!i.has(n))return n;for(let r=2;r<500;r++){const a=`${n}-${r}`;if(!i.has(a))return a}return`${n}-${i.size+1}`}function Wi(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Vi(e){return e.filter(t=>!t.archived).sort(ut)}function ut(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}function Hi(e){return e.type==="agent"}const dt="work_item",pt="work_project";function ft(e){return`${dt}:${e}`}function ee(e){return`${pt}:${e}`}function Xi(e,t,n){const i=`${e}-${t}`;return n?`${i}-${n}`:i}function zi(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function Yi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function qi(e,t=25){const n=new Set([ft(e.id)]);e.projectId&&n.add(ee(e.projectId));for(const i of e.ancestorKeys??[])n.add(i);for(const i of e.partyKeys??[])n.add(i);return Array.from(n).slice(0,t)}function Ji(e){return[ee(e.id)]}const O=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2}],te=O.map(e=>e.key);function mt(e){return e?.statuses?.length?e.statuses:O}function gt(e,t){return t.find(n=>n.key===e)?.category??"todo"}function Zi(e,t){return t.find(n=>n.key===e)}function Qi(e){const t=mt(e),n=e?.defaultStatusKey;return n&&t.some(i=>i.key===n)?n:ht(t)[0]?.key??O[0].key}function ht(e){return[...e].sort((t,n)=>{const i=(t.order??0)-(n.order??0);return i!==0?i:(t.label||"").localeCompare(n.label||"")})}function er(e,t){return gt(e,t)==="done"}function At(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function tr(e,t){const n=At(e)||"status",i=new Set([...t,...te]);if(!i.has(n))return n;for(let r=2;r<500;r++){const a=`${n}-${r}`;if(!i.has(a))return a}return`${n}-${i.size+1}`}function nr(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((i,r)=>{if(!i.key){t.push({index:r,reason:"missing_key"});return}te.includes(i.key)&&t.push({index:r,reason:"reserved_key",key:i.key}),n.has(i.key)&&t.push({index:r,reason:"duplicate_key",key:i.key}),n.add(i.key)}),e.some(i=>i.category==="todo"||i.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(i=>i.category==="done")||t.push({index:-1,reason:"no_done"}),t}const v={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},yt="NL",ir=15,rr=8,ar=Array.from(new Set(Object.values(v).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function he(e){if(e)return v[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Ae(e){if(e.length>ir)return null;for(const t of ar){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const i of Object.values(v)){if(i.callingCode!==t)continue;const r=i.trunkPrefix,a=r&&n.startsWith(r)?n.slice(r.length):n;if(C(a,i))return`+${t}${a}`}return null}return e.length<rr?null:`+${e}`}function or(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const i=t.indexOf("@");return i>=0&&(t=t.slice(0,i)),t.trim()}function sr(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function V(e,t){if(!e)return null;const n=or(e);if(!n)return null;const i=n.startsWith("+"),r=n.replace(/\D/g,"");if(!r)return null;if(i)return Ae(r);if(r.startsWith("00"))return Ae(r.slice(2));const a=he(t)??he(yt);if(!a)return null;const o=a.trunkPrefix;if(o&&r.startsWith(o)){const s=r.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(r.startsWith(a.callingCode)){const s=r.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(r,a)?`+${a.callingCode}${r}`:null}function lr(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ne(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const i=t.slice(0,n).split("+")[0],r=t.slice(n+1);return!i||!r.includes(".")?null:`${i}@${r}`}function cr(e){const t=ne(e);return t?t.slice(t.lastIndexOf("@")+1):null}const ur=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Et(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return ur.has(n)&&t.length>=3?t.slice(-3).join("."):n}const St=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function dr(e){const t=Et(e);return t?St.has(t):!1}function pr(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function fr(e,t,n){if(!e||!t)return null;const i=e.trim().toLowerCase();if(i==="tel"||i==="sms"||i==="whatsapp"){const a=V(t,n);return a?`tel:${a}`:null}if(i==="fax"){const a=V(t,n);return a?`fax:${a}`:null}if(i==="mailto"||i==="email"){const a=ne(t);return a?`mailto:${a}`:null}const r=t.trim().toLowerCase();return r?`${i}:${r}`:null}const mr=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,gr=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function hr(e){if(typeof e!="string"||!e)return"";let t=e;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(`
8
8
  `).map(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,}$/,"")).join(`
9
- `),t=t.replace(Ki,"$2"),t=t.replace(Bi,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const Gi=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],ge=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,ji=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Vi(e){const t=e.split(`
10
- `);for(let n=0;n<t.length;n++)if(ji.test(t[n])||ge.test(t[n])&&t.slice(n+1,n+4).some(i=>ge.test(i)))return t.slice(0,n).join(`
11
- `).trim();return e}function he(e){let t=e;return t=t.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),t=t.replace(/<br\s*\/?>/gi,`
9
+ `),t=t.replace(mr,"$2"),t=t.replace(gr,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const Ar=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],ye=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,yr=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Er(e){const t=e.split(`
10
+ `);for(let n=0;n<t.length;n++)if(yr.test(t[n])||ye.test(t[n])&&t.slice(n+1,n+4).some(i=>ye.test(i)))return t.slice(0,n).join(`
11
+ `).trim();return e}function Ee(e){let t=e;return t=t.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),t=t.replace(/<br\s*\/?>/gi,`
12
12
  `),t=t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
13
13
 
14
14
  `),t=t.replace(/<\/(div|li|tr)>/gi,`
15
- `),t=t.replace(/<\/(td|th)>/gi," "),t=t.replace(/<[^>]+>/g,""),t=t.replace(/<[^>]*$/,""),t}function Ae(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function Ee(e){return e.replace(/&nbsp;/gi," ").replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>Ae(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>Ae(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function ye(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
15
+ `),t=t.replace(/<\/(td|th)>/gi," "),t=t.replace(/<[^>]+>/g,""),t=t.replace(/<[^>]*$/,""),t}function Se(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function Te(e){return e.replace(/&nbsp;/gi," ").replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>Se(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>Se(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function _e(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
16
16
  `).replace(/\n{3,}/g,`
17
17
 
18
- `).trim()}function Hi(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const a of Gi){const o=e.search(a);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let i=ye(Ee(he(n)));return i||(i=ye(Ee(he(e)))),Vi(i)||i}const Wi=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Xi=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function zi(e,t){return!!(e&&Wi.test(e)||t&&Xi.test(t))}const ct=3,ut=600;function Yi(e,t){return e>=ct||t>=ut}const qi=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Ji=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function dt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?qi.has(t)?"image":t==="application/pdf"?"pdf":Ji.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,pt={image:5*h,pdf:20*h,text:1*h,audio:20*h},Qi=25*h,Zi=5;function er(e,t){const n=dt(e);return n==="unsupported"?"unsupported":t>pt[n]?"too-large":null}function ft(e){return`${e.kind}:${e.id||e.url||e.title}`}function tr(e,t=[]){const n=new Set(t),i=[],r=[];for(const a of e){const o=ft(a);n.has(o)||(n.add(o),i.push(a),r.push(o))}return{sources:i,keys:r}}function mt(e,t){const n=new Set(e.disabledIntents??[]),i=e.intentOverrides??{},r=t.intents.filter(o=>!n.has(o.intent)).map(o=>ir(o,i[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return r;const a=new Set(r.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(r.push(o),a.add(o.intent));return r}function gt(e,t){const n={};for(const i of e.intents){if(!i.togglable)continue;const r=t?.[i.intent];n[i.intent]=r??i.defaultEnabled??!0}return n}function nr(e,t){const n=gt(e,t);return Object.entries(n).filter(([,i])=>!i).map(([i])=>i)}function ir(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function rr(e,t){const n=[];for(const i of e){if(!i.enabled)continue;const r=t[i.providerId];if(r)for(const a of mt(i,r))n.push({channel:i,description:r,capability:a})}return n}function ar(e,t){return t.filter(n=>n.capability.intent===e)}function ht(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function or(e,t){return ht(e.scheme,t)}function sr(e,t,n){const i=[];for(const r of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(r.scheme)&&i.push({channelIntent:a,endpoint:r});return i}var At=(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))(At||{});const lr={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function cr(e){return e?lr[e]??"note":"note"}const ur="message_window",dr="message_templates",pr={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},fr=(e,t)=>({intent:e,...t}),mr="folder_management",gr="remote_search",hr={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},ee="auth";function te(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Ar(e){const t=te(e);return t?t!==ee:typeof e=="string"&&e.startsWith("/wake")}function Er(e){return typeof e!="string"||e===""||e==="/"?!0:te(e)===ee}function yr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Et(e){const n=e.split("/").filter(Boolean).map(i=>i.startsWith(":")?i.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":"/"+yr(i)).join("");return new RegExp(`^${n}\\/?$`)}function yt(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean),r={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),c=i[o];c&&(r[s]=c)}}),r}function Tt(e){return e.publicBasePath??`/apps/${e.name}`}function Tr(e){const t=[];for(const n of e){if(!n?.name)continue;const i=Tt(n);for(const r of n.routes??[]){if(!r.public)continue;const a=r.path==="/"?"":r.path;t.push({appName:n.name,resource:r.resource,pattern:`${i}${a}`,props:r.props})}}return t}function St(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean);for(let r=0;r<Math.min(n.length,i.length);r++){const a=n[r].startsWith(":"),o=i[r].startsWith(":");if(a!==o)return o}return n.length>i.length}function _t(e,t){if(typeof e!="string")return null;let n=null;for(const i of t)Et(i.pattern).test(e)&&(!n||St(i.pattern,n.pattern))&&(n=i);return n?{...n,params:{...n.props,...yt(n.pattern,e)}}:null}function Sr(e,t){return _t(e,t)!==null}const _r={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},bt=e=>{let t=e;return Object.values(_r).forEach(n=>{n.forEach(i=>{t=t.replaceAll(i,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},It=6e4,Mt=8e3,Ct=2,Nt=.4,br=3,Ir=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function Ot(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<br||Ir.has(n)||t.add(n);return[...t]}function vt(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),i=new Set(e);let r=0;for(const a of i)n.has(a)||(r+=1);return r/i.size}function Lt(e,t=It){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const r=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=r).map(o=>bt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const kt=60;function Mr(e,t,n=kt){const i=new Set(e),r=[...e];for(const a of t)!a||i.has(a)||(i.add(a),r.push(a));return r.slice(-n)}function Cr(e){const{segments:t,now:n,state:i}=e;if(i.lastTriggerAt&&n-i.lastTriggerAt<Mt)return{trigger:!1,reason:"too_soon"};const r=Lt(t,e.windowMs);if(!r.text)return{trigger:!1,reason:"no_speech"};const a=r.segmentCount-(i.lastSegmentCount??0);if(i.lastQueryTerms&&a<Ct)return{trigger:!1,reason:"too_few_new"};const o=Ot(r.text);return o.length?i.lastQueryTerms?.length&&vt(o,i.lastQueryTerms)<Nt?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:r.text,terms:o,segmentCount:r.segmentCount}:{trigger:!1,reason:"no_speech"}}const ne=9e4,wt=["out_of_office"],Rt=e=>wt.includes(e);function Nr(e,t,n){const i=n-e<ne,r=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!r?.status)return{online:i,status:i?"available":"offline"};const a=r.status;return!i&&!Rt(a)?{online:!1,status:"offline"}:{online:i,status:a,message:r.message}}function Or(e,t){const n=t-e.lastSeenAt<ne,i=n||Rt(e.status)?e.status:"offline";return n===e.online&&i===e.status?e:{...e,online:n,status:i}}function vr(e,t){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}}function Lr(e){return e.providerAvailable&&e.allowed}const kr="installation-id";exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=pt;exports.AI_ATTACHMENT_MAX_PER_TURN=Zi;exports.AI_ATTACHMENT_TURN_BUDGET=Qi;exports.AI_VENDORS=Q;exports.ALLOWED_LINK_SCHEMES=Le;exports.ARTIFACT_MAX_BLOCKS=D;exports.ARTIFACT_MAX_BODY_BYTES=cn;exports.ARTIFACT_MAX_CELL_LEN=I;exports.ARTIFACT_MAX_KPI_ITEMS=K;exports.ARTIFACT_MAX_LIST_ITEMS=P;exports.ARTIFACT_MAX_TABLE_COLUMNS=U;exports.ARTIFACT_MAX_TABLE_ROWS=$;exports.ARTIFACT_MAX_TEXT_LEN=W;exports.ASSIGNMENT_SCOPE_KIND=xe;exports.AUTH_APP_NAME=ee;exports.ActivityTypeRegistry=be;exports.BUILT_IN_ONLY=Jt;exports.CADENCE_FLOOR_MS=Mt;exports.CADENCE_MIN_NEW_SEGMENTS=Ct;exports.CADENCE_MIN_NOVELTY=Nt;exports.CADENCE_WINDOW_MS=It;exports.CLASSIFY_VARS=Rn;exports.CORE_DIMENSIONS=nn;exports.CommunicationScheme=At;exports.DEFAULT_MEMORY_BUDGET=Mi;exports.DEFAULT_PHONE_REGION=ot;exports.EMPTY_WORKFLOW=Gn;exports.FEATURE_FOLDER_MANAGEMENT=mr;exports.FEATURE_REMOTE_SEARCH=gr;exports.INSTALLATION_HEADER=kr;exports.INTERACTION_KIND=Fe;exports.InteractionParticipantRole=pr;exports.KB_FALLBACK_LOCALE=qe;exports.KB_LOCALES=G;exports.MAX_ACTIONS=b;exports.MAX_ASSIGNMENT_TURNS=De;exports.MAX_BLOCKS=x;exports.MAX_COLLECTION_DEPTH=q;exports.MAX_FIELDS=S;exports.MAX_LIST_ITEMS=_;exports.MAX_MEMORY_BROWSE=Si;exports.MAX_MEMORY_BUDGET=Ii;exports.MAX_MEMORY_CHARS=_i;exports.MAX_SHOWN_KEYS=kt;exports.MAX_TOPIC_CANDIDATES=Ze;exports.MAX_TOPIC_EXAMPLES=Qe;exports.MAX_TOPIC_EXAMPLE_CHARS=M;exports.MIN_MEMORY_BUDGET=bi;exports.PHONE_REGIONS=v;exports.PRESENCE_ONLINE_WINDOW_MS=ne;exports.PRESENCE_SURVIVES_OFFLINE=wt;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=dr;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ur;exports.PUBLIC_EMAIL_DOMAINS=lt;exports.READ_STEP_TYPES=B;exports.RELATED_SUBJECT_KINDS=at;exports.SIGNATURE_INTENTS=fi;exports.STEP_MAX_TOKENS_MAX=Ve;exports.STEP_MAX_TOKENS_MIN=je;exports.SUMMARY_MIN_LAST_CHARS=ut;exports.SUMMARY_MIN_MESSAGES=ct;exports.TERMINAL_ASSIGNMENT_STATUSES=Re;exports.TERMINAL_RUN_STATUSES=He;exports.TRIGGER_VARS=wn;exports.UNSUPPORTED=hr;exports.USAGE_DIMENSIONS=Ce;exports.USAGE_DIMENSION_IDS=Ne;exports.acceptExampleCandidate=ii;exports.actingIdentityKey=$e;exports.activityIconOf=Kt;exports.activityJoinUrl=Yt;exports.activitySnippet=Se;exports.activityTextParams=_e;exports.activityTimelineText=zt;exports.activityTimestamp=tn;exports.activityTypeInfo=l;exports.actorKey=Pn;exports.addExampleCandidate=ni;exports.agePresenceEntry=Or;exports.aiAttachmentKind=dt;exports.aiAttachmentRejection=er;exports.aiBudgetLimit=j;exports.aiBudgetPeriodKey=di;exports.aiBudgetPeriodStart=it;exports.aiBudgetState=ui;exports.aiVendorAcceptsAttachment=ci;exports.aiVendorDefaultModel=oi;exports.aiVendorLabel=ai;exports.aiVendorNeedsBaseUrl=li;exports.aiVendorsWith=si;exports.appNameFromPath=te;exports.applySignature=mi;exports.artifactBodyBytes=An;exports.artifactOutline=En;exports.artifactToMarkdown=Tn;exports.assignmentMismatch=Bn;exports.assignmentScopeKey=Mn;exports.assignmentSubject=Nn;exports.buildActivityPreview=Zt;exports.buildChannelIntents=rr;exports.buildShareKeys=Sn;exports.buildWindow=Lt;exports.canNestUnder=Zn;exports.carriesText=jt;exports.categoryLabel=ti;exports.channelKindForScheme=cr;exports.channelKindOf=Bt;exports.clampStepMaxTokens=Fn;exports.cleanMessageText=Hi;exports.decideAssignmentState=On;exports.decideCadence=Cr;exports.defaultLocaleOf=Je;exports.defineIntent=fr;exports.depthOf=ze;exports.derivePresence=Nr;exports.disabledIntentsFromCapabilities=nr;exports.emailDomain=xi;exports.endpointKey=Ui;exports.extractParams=yt;exports.extractTerms=Ot;exports.filterByEndpoint=or;exports.filterByIntent=ar;exports.filterByTargetScheme=ht;exports.findAiVendor=A;exports.flattenLocales=rn;exports.floorToPeriod=Me;exports.formatActingIdentity=Pe;exports.formatPeriod=Ie;exports.freshSources=tr;exports.getActivitySeenUserIds=en;exports.getContactEndpoints=gi;exports.getShortTitle=yi;exports.getUrgencyScore=Ei;exports.heightOf=J;exports.helpCenterText=qn;exports.humanizeAction=kn;exports.interactionIdOf=Ge;exports.isAgentUser=Ni;exports.isAssigned=hi;exports.isAssignmentTerminal=In;exports.isAssignmentTrigger=Ke;exports.isChatMessageActivity=Pt;exports.isClosed=Ai;exports.isConnectedType=Wt;exports.isDeepLink=Ar;exports.isDescendant=Ye;exports.isEmailActivity=Dt;exports.isInFlight=Wn;exports.isInteractionUnseen=Ti;exports.isLandingPath=Er;exports.isLikelyBulk=zi;exports.isMessageShape=H;exports.isMessageType=Ft;exports.isMoreSpecificPattern=St;exports.isPaused=We;exports.isPlaybookAuthoredType=Ht;exports.isPublicEmailDomain=Pi;exports.isPublicPath=Sr;exports.isReplyableType=Gt;exports.isTerminal=Hn;exports.isThreadLongEnough=Yi;exports.isTranscriptType=Xt;exports.linkLabel=Yn;exports.listeningAllowed=pi;exports.localeInstruction=Qn;exports.localeName=Jn;exports.localesOf=ei;exports.looksLikeEmail=wi;exports.matchContactToIntents=sr;exports.matchPublicRoute=_t;exports.mergeShownKeys=Mr;exports.messageCountsAs=Vt;exports.needsPhoneRegion=$i;exports.normalizeArtifactBlocks=hn;exports.normalizeBlocks=Ut;exports.normalizeEmail=Z;exports.normalizeExample=g;exports.novelty=vt;exports.parseActingIdentity=xn;exports.pathToRegex=Et;exports.periodsInRange=sn;exports.phoneSuffix=Ri;exports.plainTextFromMarkdown=Fi;exports.playbookActor=Ue;exports.procedureOf=Vn;exports.publicBasePathFor=Tt;exports.publicRoutePatterns=Tr;exports.readPath=N;exports.readStepError=F;exports.refKey=Be;exports.registrableDomain=st;exports.rejectExampleCandidate=tt;exports.relatedByDefault=Ci;exports.resolveAccountCapabilities=gt;exports.resolveActivityText=O;exports.resolveChannelIntents=mt;exports.resolveSignature=rt;exports.resolveWorkMode=vr;exports.runActor=Dn;exports.runInteractionId=zn;exports.sanitizeInline=we;exports.sanitizeTranscript=bt;exports.selectLenses=Ln;exports.shareKeyForTeam=z;exports.shareKeyForUser=X;exports.shareKeysForViewer=_n;exports.shouldRunAudioPipeline=Lr;exports.sourceKey=ft;exports.stepsOf=jn;exports.stripHtml=Te;exports.subjectKeyOf=Xn;exports.subjectOf=Y;exports.targetById=Kn;exports.targetForActivityType=Un;exports.toE164=V;exports.toolSourceKinds=bn;exports.topicOfferedForTeam=nt;exports.topicsForTeam=ri;exports.truncateExample=et;exports.usageMetricId=Oe;exports.usageMetrics=ln;exports.valueAtPath=$n;exports.wakesAssignment=Cn;
18
+ `).trim()}function Sr(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const a of Ar){const o=e.search(a);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let i=_e(Te(Ee(n)));return i||(i=_e(Te(Ee(e)))),Er(i)||i}const Tr=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,_r=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function br(e,t){return!!(e&&Tr.test(e)||t&&_r.test(t))}const Tt=3,_t=600;function Ir(e,t){return e>=Tt||t>=_t}const Mr=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Cr=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function bt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Mr.has(t)?"image":t==="application/pdf"?"pdf":Cr.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,It={image:5*h,pdf:20*h,text:1*h,audio:20*h},Nr=25*h,kr=5;function Or(e,t){const n=bt(e);return n==="unsupported"?"unsupported":t>It[n]?"too-large":null}function Mt(e){return`${e.kind}:${e.id||e.url||e.title}`}function vr(e,t=[]){const n=new Set(t),i=[],r=[];for(const a of e){const o=Mt(a);n.has(o)||(n.add(o),i.push(a),r.push(o))}return{sources:i,keys:r}}function Ct(e,t){const n=new Set(e.disabledIntents??[]),i=e.intentOverrides??{},r=t.intents.filter(o=>!n.has(o.intent)).map(o=>Lr(o,i[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return r;const a=new Set(r.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(r.push(o),a.add(o.intent));return r}function Nt(e,t){const n={};for(const i of e.intents){if(!i.togglable)continue;const r=t?.[i.intent];n[i.intent]=r??i.defaultEnabled??!0}return n}function wr(e,t){const n=Nt(e,t);return Object.entries(n).filter(([,i])=>!i).map(([i])=>i)}function Lr(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Rr(e,t){const n=[];for(const i of e){if(!i.enabled)continue;const r=t[i.providerId];if(r)for(const a of Ct(i,r))n.push({channel:i,description:r,capability:a})}return n}function xr(e,t){return t.filter(n=>n.capability.intent===e)}function kt(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Dr(e,t){return kt(e.scheme,t)}function Pr(e,t,n){const i=[];for(const r of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(r.scheme)&&i.push({channelIntent:a,endpoint:r});return i}var Ot=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(Ot||{});const $r={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function Kr(e){return e?$r[e]??"note":"note"}const Ur="message_window",Fr="message_templates",Br={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Gr=(e,t)=>({intent:e,...t}),jr="folder_management",Wr="remote_search",Vr={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},ie="auth";function re(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Hr(e){const t=re(e);return t?t!==ie:typeof e=="string"&&e.startsWith("/wake")}function Xr(e){return typeof e!="string"||e===""||e==="/"?!0:re(e)===ie}function zr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vt(e){const n=e.split("/").filter(Boolean).map(i=>i.startsWith(":")?i.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":"/"+zr(i)).join("");return new RegExp(`^${n}\\/?$`)}function wt(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean),r={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),c=i[o];c&&(r[s]=c)}}),r}function Lt(e){return e.publicBasePath??`/apps/${e.name}`}function Yr(e){const t=[];for(const n of e){if(!n?.name)continue;const i=Lt(n);for(const r of n.routes??[]){if(!r.public)continue;const a=r.path==="/"?"":r.path;t.push({appName:n.name,resource:r.resource,pattern:`${i}${a}`,props:r.props})}}return t}function Rt(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean);for(let r=0;r<Math.min(n.length,i.length);r++){const a=n[r].startsWith(":"),o=i[r].startsWith(":");if(a!==o)return o}return n.length>i.length}function xt(e,t){if(typeof e!="string")return null;let n=null;for(const i of t)vt(i.pattern).test(e)&&(!n||Rt(i.pattern,n.pattern))&&(n=i);return n?{...n,params:{...n.props,...wt(n.pattern,e)}}:null}function qr(e,t){return xt(e,t)!==null}const Jr={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},Dt=e=>{let t=e;return Object.values(Jr).forEach(n=>{n.forEach(i=>{t=t.replaceAll(i,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Pt=6e4,$t=8e3,Kt=2,Ut=.4,Zr=3,Qr=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function Ft(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Zr||Qr.has(n)||t.add(n);return[...t]}function Bt(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),i=new Set(e);let r=0;for(const a of i)n.has(a)||(r+=1);return r/i.size}function Gt(e,t=Pt){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const r=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=r).map(o=>Dt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const jt=60;function ea(e,t,n=jt){const i=new Set(e),r=[...e];for(const a of t)!a||i.has(a)||(i.add(a),r.push(a));return r.slice(-n)}function ta(e){const{segments:t,now:n,state:i}=e;if(i.lastTriggerAt&&n-i.lastTriggerAt<$t)return{trigger:!1,reason:"too_soon"};const r=Gt(t,e.windowMs);if(!r.text)return{trigger:!1,reason:"no_speech"};const a=r.segmentCount-(i.lastSegmentCount??0);if(i.lastQueryTerms&&a<Kt)return{trigger:!1,reason:"too_few_new"};const o=Ft(r.text);return o.length?i.lastQueryTerms?.length&&Bt(o,i.lastQueryTerms)<Ut?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:r.text,terms:o,segmentCount:r.segmentCount}:{trigger:!1,reason:"no_speech"}}const ae=9e4,Wt=["out_of_office"],Vt=e=>Wt.includes(e);function na(e,t,n){const i=n-e<ae,r=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!r?.status)return{online:i,status:i?"available":"offline"};const a=r.status;return!i&&!Vt(a)?{online:!1,status:"offline"}:{online:i,status:a,message:r.message}}function ia(e,t){const n=t-e.lastSeenAt<ae,i=n||Vt(e.status)?e.status:"offline";return n===e.online&&i===e.status?e:{...e,online:n,status:i}}function ra(e,t){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}}function aa(e){return e.providerAvailable&&e.allowed}const oa="installation-id";exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=It;exports.AI_ATTACHMENT_MAX_PER_TURN=kr;exports.AI_ATTACHMENT_TURN_BUDGET=Nr;exports.AI_VENDORS=Q;exports.ALLOWED_LINK_SCHEMES=Re;exports.ARTIFACT_MAX_BLOCKS=P;exports.ARTIFACT_MAX_BODY_BYTES=Tn;exports.ARTIFACT_MAX_CELL_LEN=I;exports.ARTIFACT_MAX_KPI_ITEMS=F;exports.ARTIFACT_MAX_LIST_ITEMS=$;exports.ARTIFACT_MAX_TABLE_COLUMNS=U;exports.ARTIFACT_MAX_TABLE_ROWS=K;exports.ARTIFACT_MAX_TEXT_LEN=X;exports.ASSIGNMENT_SCOPE_KIND=$e;exports.AUTH_APP_NAME=ie;exports.ActivityTypeRegistry=Ce;exports.BUILT_IN_ONLY=un;exports.CADENCE_FLOOR_MS=$t;exports.CADENCE_MIN_NEW_SEGMENTS=Kt;exports.CADENCE_MIN_NOVELTY=Ut;exports.CADENCE_WINDOW_MS=Pt;exports.CLASSIFY_VARS=Vn;exports.CORE_DIMENSIONS=gn;exports.CommunicationScheme=Ot;exports.DEFAULT_MEMORY_BUDGET=$i;exports.DEFAULT_PHONE_REGION=yt;exports.EMPTY_WORKFLOW=ei;exports.FEATURE_FOLDER_MANAGEMENT=jr;exports.FEATURE_REMOTE_SEARCH=Wr;exports.INSTALLATION_HEADER=oa;exports.INTERACTION_KIND=We;exports.InteractionParticipantRole=Br;exports.KB_FALLBACK_LOCALE=Qe;exports.KB_LOCALES=j;exports.LOOSE_STATUSES=O;exports.MAX_ACTIONS=b;exports.MAX_ASSIGNMENT_TURNS=Ke;exports.MAX_BLOCKS=D;exports.MAX_COLLECTION_DEPTH=J;exports.MAX_FIELDS=T;exports.MAX_LIST_ITEMS=_;exports.MAX_MEMORY_BROWSE=Ri;exports.MAX_MEMORY_BUDGET=Pi;exports.MAX_MEMORY_CHARS=xi;exports.MAX_SHOWN_KEYS=jt;exports.MAX_TOPIC_CANDIDATES=nt;exports.MAX_TOPIC_EXAMPLES=tt;exports.MAX_TOPIC_EXAMPLE_CHARS=M;exports.MIN_MEMORY_BUDGET=Di;exports.PHONE_REGIONS=v;exports.PRESENCE_ONLINE_WINDOW_MS=ae;exports.PRESENCE_SURVIVES_OFFLINE=Wt;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Fr;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Ur;exports.PUBLIC_EMAIL_DOMAINS=St;exports.READ_STEP_TYPES=B;exports.RELATED_SUBJECT_KINDS=lt;exports.RESERVED_STATUS_KEYS=te;exports.SIGNATURE_INTENTS=Mi;exports.STEP_MAX_TOKENS_MAX=Xe;exports.STEP_MAX_TOKENS_MIN=He;exports.SUMMARY_MIN_LAST_CHARS=_t;exports.SUMMARY_MIN_MESSAGES=Tt;exports.TERMINAL_ASSIGNMENT_STATUSES=Pe;exports.TERMINAL_RUN_STATUSES=ze;exports.TRIGGER_VARS=Wn;exports.UNSUPPORTED=Vr;exports.USAGE_DIMENSIONS=Oe;exports.USAGE_DIMENSION_IDS=ve;exports.WORK_ITEM_SCOPE_KIND=dt;exports.WORK_PROJECT_SCOPE_KIND=pt;exports.acceptExampleCandidate=gi;exports.actingIdentityKey=Fe;exports.activeWorkTypes=Vi;exports.activityIconOf=Jt;exports.activityJoinUrl=ln;exports.activitySnippet=Ie;exports.activityTextParams=Me;exports.activityTimelineText=sn;exports.activityTimestamp=mn;exports.activityTypeInfo=l;exports.actorKey=zn;exports.addExampleCandidate=mi;exports.agePresenceEntry=ia;exports.aiAttachmentKind=bt;exports.aiAttachmentRejection=Or;exports.aiBudgetLimit=W;exports.aiBudgetPeriodKey=bi;exports.aiBudgetPeriodStart=ot;exports.aiBudgetState=_i;exports.aiVendorAcceptsAttachment=Ti;exports.aiVendorDefaultModel=yi;exports.aiVendorLabel=Ai;exports.aiVendorNeedsBaseUrl=Si;exports.aiVendorsWith=Ei;exports.appNameFromPath=re;exports.applyRounding=Fi;exports.applySignature=Ci;exports.artifactBodyBytes=On;exports.artifactOutline=vn;exports.artifactToMarkdown=Ln;exports.assignmentMismatch=Zn;exports.assignmentScopeKey=$n;exports.assignmentSubject=Un;exports.buildActivityPreview=pn;exports.buildChannelIntents=Rr;exports.buildShareKeys=Rn;exports.buildWindow=Gt;exports.canNestUnder=di;exports.carriesText=tn;exports.categoryLabel=fi;exports.categoryOf=gt;exports.channelKindForScheme=Kr;exports.channelKindOf=Zt;exports.clampStepMaxTokens=Qn;exports.cleanMessageText=Sr;exports.compareWorkTypes=ut;exports.decideAssignmentState=Fn;exports.decideCadence=ta;exports.defaultLocaleOf=et;exports.defaultStatusKey=Qi;exports.defineIntent=Gr;exports.depthOf=Je;exports.derivePresence=na;exports.disabledIntentsFromCapabilities=wr;exports.elapsedSeconds=Ui;exports.emailDomain=cr;exports.endpointKey=fr;exports.extractParams=wt;exports.extractTerms=Ft;exports.filterByEndpoint=Dr;exports.filterByIntent=xr;exports.filterByTargetScheme=kt;exports.findAiVendor=A;exports.flattenLocales=hn;exports.floorToPeriod=ke;exports.formatActingIdentity=Ue;exports.formatClock=Gi;exports.formatHm=Bi;exports.formatItemKey=Xi;exports.formatPeriod=Ne;exports.freshSources=vr;exports.getActivitySeenUserIds=fn;exports.getContactEndpoints=Ni;exports.getShortTitle=wi;exports.getUrgencyScore=vi;exports.heightOf=Z;exports.helpCenterText=li;exports.humanizeAction=jn;exports.interactionIdOf=Ve;exports.isAgentUser=Hi;exports.isAssigned=ki;exports.isAssignmentTerminal=Pn;exports.isAssignmentTrigger=Ge;exports.isChatMessageActivity=zt;exports.isClosed=Oi;exports.isConnectedType=an;exports.isDeepLink=Hr;exports.isDescendant=Ze;exports.isEmailActivity=Xt;exports.isInFlight=ri;exports.isInteractionUnseen=Li;exports.isLandingPath=Xr;exports.isLikelyBulk=br;exports.isMessageShape=H;exports.isMessageType=Qt;exports.isMoreSpecificPattern=Rt;exports.isPaused=Ye;exports.isPlaybookAuthoredType=rn;exports.isPublicEmailDomain=dr;exports.isPublicPath=qr;exports.isReplyableType=en;exports.isTerminal=ii;exports.isThreadLongEnough=Ir;exports.isTranscriptType=on;exports.isWorkClosed=er;exports.isWorkTypeVisible=Wi;exports.itemDossierKeys=qi;exports.ladderFor=mt;exports.linkLabel=si;exports.listeningAllowed=Ii;exports.localeInstruction=ui;exports.localeName=ci;exports.localesOf=pi;exports.looksLikeEmail=sr;exports.matchContactToIntents=Pr;exports.matchPublicRoute=xt;exports.mergeShownKeys=ea;exports.messageCountsAs=nn;exports.needsPhoneRegion=pr;exports.normalizeArtifactBlocks=kn;exports.normalizeBlocks=qt;exports.normalizeEmail=ne;exports.normalizeExample=g;exports.novelty=Bt;exports.parseActingIdentity=Hn;exports.parseItemKey=zi;exports.pathToRegex=vt;exports.periodsInRange=En;exports.phoneSuffix=lr;exports.plainTextFromMarkdown=hr;exports.playbookActor=Be;exports.procedureOf=ni;exports.projectDossierKeys=Ji;exports.publicBasePathFor=Lt;exports.publicRoutePatterns=Yr;exports.readPath=N;exports.readStepError=G;exports.refKey=je;exports.registrableDomain=Et;exports.rejectExampleCandidate=rt;exports.relatedByDefault=Ki;exports.resolveAccountCapabilities=Nt;exports.resolveActivityText=k;exports.resolveChannelIntents=Ct;exports.resolveSignature=st;exports.resolveWorkMode=ra;exports.runActor=Xn;exports.runInteractionId=oi;exports.sanitizeInline=De;exports.sanitizeTranscript=Dt;exports.selectLenses=Gn;exports.shareKeyForTeam=Y;exports.shareKeyForUser=z;exports.shareKeysForViewer=xn;exports.shouldRunAudioPipeline=aa;exports.sortStatuses=ht;exports.sourceKey=Mt;exports.statusIn=Zi;exports.stepsOf=ti;exports.stripHtml=be;exports.subjectKeyOf=ai;exports.subjectOf=q;exports.suggestProjectKey=Yi;exports.targetById=Jn;exports.targetForActivityType=qn;exports.toE164=V;exports.toolSourceKinds=Dn;exports.topicOfferedForTeam=at;exports.topicsForTeam=hi;exports.truncateExample=it;exports.uniqueWorkStatusKey=tr;exports.uniqueWorkTypeKey=ji;exports.usageMetricId=we;exports.usageMetrics=Sn;exports.validateStatuses=nr;exports.valueAtPath=Yn;exports.wakesAssignment=Kn;exports.workItemScopeKey=ft;exports.workProjectScopeKey=ee;exports.workStatusKey=At;exports.workTypeKey=ct;
package/dist/index.d.ts CHANGED
@@ -31,11 +31,13 @@ export * from './entities/note';
31
31
  export * from './entities/read-state';
32
32
  export * from './entities/resource-reminder';
33
33
  export * from './entities/team';
34
+ export * from './entities/time-entry';
34
35
  export * from './entities/organization';
35
36
  export * from './entities/shopify';
36
37
  export * from './entities/transcript';
37
38
  export * from './entities/user';
38
39
  export * from './entities/webhook';
40
+ export * from './entities/work';
39
41
  export * from './text/endpoint';
40
42
  export * from './text/markdown';
41
43
  export * from './text/message';