@opencxh/domain 1.162.0 → 1.165.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.
@@ -60,54 +60,3 @@ export interface Transcription {
60
60
  export interface SessionMetadata {
61
61
  [custom: string]: unknown;
62
62
  }
63
- export type AuthState = {
64
- type: "oauth2";
65
- accessToken: string;
66
- refreshToken?: string;
67
- /** Epoch ms */
68
- expiresAt: number;
69
- scopes: string[];
70
- idToken?: string;
71
- } | {
72
- type: "password";
73
- username: string;
74
- /** Rauw wachtwoord (geen secret-store in repo). Alleen via internal-path. */
75
- password: string;
76
- /** Toekomstige secret-store-referentie i.p.v. raw `password`. */
77
- passwordRef?: string;
78
- } | {
79
- type: "certificate";
80
- certRef: string;
81
- } | {
82
- type: "apikey";
83
- /** Rauwe API-key (geen secret-store in repo). Alleen via internal-path. */
84
- apiKey: string;
85
- } | {
86
- type: "static";
87
- };
88
- export type ManagedAccountStatus = "connected" | "disconnected" | "error" | "expired";
89
- export interface ManagedAccount {
90
- id: string;
91
- organizationId: string;
92
- /** null = org-level account (geen specifieke user). */
93
- userId?: string;
94
- providerId: string;
95
- /** "oauth2" | "imap" | "sip" | "webhook" | "apikey" | provider-eigen string */
96
- protocol: string;
97
- displayName: string;
98
- status: ManagedAccountStatus;
99
- auth: AuthState;
100
- /** Provider-specifieke metadata (tenantId, externalUserId, scope-flags). */
101
- metadata: Record<string, unknown>;
102
- createdAt?: number;
103
- updatedAt?: number;
104
- }
105
- /**
106
- * Public-view zonder tokens — wat `account/list` en `account/get` aan
107
- * UI/comm-server retourneren. `auth` is gestripped tot alleen het type.
108
- */
109
- export type ManagedAccountPublic = Omit<ManagedAccount, "auth"> & {
110
- authType: AuthState["type"];
111
- scopes?: string[];
112
- expiresAt?: number;
113
- };
@@ -1,7 +1,57 @@
1
1
  /** How the AI server authenticates to an MCP server. */
2
2
  export type McpAuthMode = "header" | "oauth";
3
- /** Whether an OAuth-authenticated MCP server uses one shared org account or one per user. */
3
+ /**
4
+ * @deprecated Gebruik {@link McpCredentialScope}. Blijft één release staan omdat bestaande
5
+ * rijen `oauth.scope` dragen; `mcpCredentialScope()` leest beide.
6
+ */
4
7
  export type McpOAuthAccountScope = "user" | "org";
8
+ /**
9
+ * **Hoe deze connector aan zijn credential komt:** één gedeeld organisatie-credential, of
10
+ * iedereen brengt zijn eigen mee.
11
+ *
12
+ * Dit is de tweede van de drie scope-vragen, en de enige die op de connector hoort:
13
+ *
14
+ * | Vraag | Waar |
15
+ * |---|---|
16
+ * | Van wie is deze *rij*? | `ownerUserId` / `ManagedAccount.userId` (afwezig = gedeeld) |
17
+ * | Hoe komt hij aan een credential? | **`credentialScope`** — hier |
18
+ * | Met wie is de *resource* gedeeld? | `ownerScope` op contacten, werkitems, geheugens |
19
+ *
20
+ * Het is een **configuratiekeuze van de organisatie**, geen eigenschap van de vendor: dezelfde
21
+ * MCP-server kan met één service-account of met een token per gebruiker draaien. Hij hoort dus op
22
+ * de connectorrij, want daar woont configuratie.
23
+ *
24
+ * De consequentie die hem belangrijk maakt: **een onbemande run (sync, cron, playbook) heeft geen
25
+ * handelende gebruiker en kan dus nooit bij een `"per-user"`-credential.** Dat is vooraf te
26
+ * controleren en uit te leggen, in plaats van te eindigen als een ronde die nul tools zag.
27
+ *
28
+ * `personalConnect` is hier expliciet géén onderdeel van: dat is een *permissie* (mag een lid zijn
29
+ * eigen token aan een beheerder-gedefinieerde server hangen), niet een scope. Alleen zinvol samen
30
+ * met `"per-user"`.
31
+ */
32
+ export type McpCredentialScope = "shared" | "per-user";
33
+ /**
34
+ * De credential-scope van een server, met terugval op de oude velden.
35
+ *
36
+ * Bestaande rijen dragen `oauth.scope`; nieuwe dragen `credentialScope`. Eén functie zodat
37
+ * "wie brengt het token mee" nergens twee keer wordt uitgerekend.
38
+ */
39
+ export declare function mcpCredentialScope(server: {
40
+ credentialScope?: McpCredentialScope;
41
+ authMode?: McpAuthMode;
42
+ oauth?: {
43
+ scope?: McpOAuthAccountScope;
44
+ };
45
+ }): McpCredentialScope;
46
+ /**
47
+ * De naamconventie van een MCP-tool, op één plek.
48
+ *
49
+ * Een tool heet `mcp__<connectorId>__<toolnaam>`. Het connector-id is per organisatie
50
+ * willekeurig, dus een app kan de naam niet hardcoderen — maar zodra hij het id *heeft*
51
+ * (bijvoorbeeld omdat de koppeling het expliciet bewaart) is dit een pure string en is er
52
+ * geen enkele lookup nodig.
53
+ */
54
+ export declare function mcpToolPrefix(connectorId: string): string;
5
55
  /**
6
56
  * Client-facing OAuth view for an MCP server. Never carries the client secret
7
57
  * or tokens — those live server-side (entity `oauth.client` / ManagedAccount).
@@ -24,6 +74,14 @@ export interface McpServerConfig {
24
74
  id: string;
25
75
  organizationId: string;
26
76
  name: string;
77
+ /**
78
+ * De catalogus-sleutel waar deze verbinding uit komt, als hint voor pickers.
79
+ *
80
+ * Stond wél op de write-body maar niet op de read view, en dáárom moest het "welke verbinding is
81
+ * Asana"-antwoord server-side verzonnen worden: een client kón het niet zien. Nu wel, en dan is
82
+ * voorfilteren gewoon een `filter` in de UI.
83
+ */
84
+ catalogKey?: string;
27
85
  /** Only Streamable HTTP transport is supported for server-side connections. */
28
86
  transport: "http";
29
87
  url: string;
@@ -35,14 +93,21 @@ export interface McpServerConfig {
35
93
  /** OAuth settings, present when `authMode === "oauth"`. */
36
94
  oauth?: McpOAuthClientView;
37
95
  /**
38
- * Owner of this server DEFINITION: absent/null = org-defined (admin-managed),
39
- * set = a user's own custom personal server. Governs who may edit/delete it and
40
- * where it is visible; orthogonal to `oauth.scope` (which is about credentials).
96
+ * Hoe deze connector aan zijn credential komt. Afwezig op oude rijen — lees hem altijd via
97
+ * {@link mcpCredentialScope}, nooit rechtstreeks.
98
+ */
99
+ credentialScope?: McpCredentialScope;
100
+ /**
101
+ * Van wie is deze RIJ: afwezig = door de organisatie gedefinieerd (beheerder), gezet = de
102
+ * eigen custom server van die gebruiker. Bepaalt wie hem mag wijzigen en waar hij zichtbaar
103
+ * is — los van {@link McpCredentialScope}, dat over het credential gaat.
41
104
  */
42
105
  ownerUserId?: string;
43
106
  /**
44
- * Org-defined servers only: users may connect this personally (the "catalog").
45
- * Only meaningful together with `oauth.scope === "user"`.
107
+ * PERMISSIE, geen scope: mag een lid zijn eigen credential hangen aan deze door de
108
+ * organisatie gedefinieerde server (de "catalogus")? Alleen zinvol bij
109
+ * `credentialScope === "per-user"`. Bewust niet afgeleid — dat zou het recht stil
110
+ * verruimen voor servers waar de beheerder het juist niet toestond.
46
111
  */
47
112
  personalConnect?: boolean;
48
113
  }
@@ -75,16 +140,55 @@ export interface McpCatalogEntry {
75
140
  scope?: McpOAuthAccountScope;
76
141
  scopes?: string[];
77
142
  };
143
+ /** De voorgestelde default bij het toevoegen. Afwezig = afleiden uit `oauth.scope`. */
144
+ credentialScope?: McpCredentialScope;
145
+ }
146
+ /**
147
+ * Wat een app over een **gekozen** connector mag weten.
148
+ *
149
+ * Dit is een preflight, geen zoekopdracht: je komt hier met een id dat iemand bij het
150
+ * configureren heeft vastgelegd, en de vraag is alleen "kan ik hem nog gebruiken". Een lookup
151
+ * op primary key, dus deterministisch van constructie — anders dan de eerdere zoekopdracht op
152
+ * catalogus-sleutel, die bij twee kandidaten een willekeurige winnaar koos.
153
+ */
154
+ export interface McpConnectorDescribe {
155
+ id: string;
156
+ name: string;
157
+ /** Alleen als hij uit de catalogus komt. */
158
+ catalogKey?: string;
159
+ enabled: boolean;
160
+ credentialScope: McpCredentialScope;
161
+ /**
162
+ * Er bestaat een gedeeld organisatie-credential.
163
+ *
164
+ * De enige vorm die een onbemande run kan gebruiken: die heeft geen handelende gebruiker en
165
+ * kan dus niet bij een persoonlijk token. `false` bij een `"per-user"`-connector, ook als
166
+ * tien mensen persoonlijk verbonden zijn.
167
+ */
168
+ sharedCredential: boolean;
169
+ /** `mcp__<id>__`, hetzelfde als {@link mcpToolPrefix} — meegegeven zodat de beller niets rekent. */
170
+ toolPrefix: string;
78
171
  }
79
172
  /** Body accepted by the create/update endpoints (write shape, distinct from the read view). */
80
173
  export interface McpServerInput {
81
174
  name?: string;
82
175
  url?: string;
176
+ /**
177
+ * De catalogus-sleutel waar dit uit komt ({@link McpCatalogEntry.key}).
178
+ *
179
+ * **Een hint, geen resolutie.** Hij filtert de connector-picker ("welke van jouw
180
+ * verbindingen is Asana") en voedt de "al toegevoegd"-status in de catalogus. Wie een
181
+ * connector nodig heeft bewaart het connector-**id** expliciet en gebruikt
182
+ * {@link mcpToolPrefix} — een zoekopdracht op key kan bij twee kandidaten geen winnaar
183
+ * kiezen en heeft dat eerder ook niet gedaan.
184
+ */
185
+ catalogKey?: string;
83
186
  enabled?: boolean;
84
187
  /** Header-mode secrets; masked values mean "unchanged". */
85
188
  headers?: Record<string, string>;
86
189
  authMode?: McpAuthMode;
87
190
  oauth?: McpServerOAuthInput;
191
+ credentialScope?: McpCredentialScope;
88
192
  /** Org-defined servers: mark as personally connectable (catalog membership). */
89
193
  personalConnect?: boolean;
90
194
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -18,4 +18,17 @@ export interface Webhook {
18
18
  triggers: WebhookTrigger[];
19
19
  enabled: boolean;
20
20
  createdBy: string;
21
+ /**
22
+ * Hoe de laatste aflevering ging.
23
+ *
24
+ * Vier velden en geen afleverhistorie: de vraag die een beheerder stelt is "komt dit aan?", en
25
+ * die is met de laatste poging plus een teller beantwoord. Een volledige historie is een eigen
26
+ * scherm en een eigen entiteit.
27
+ */
28
+ lastDeliveryAt?: number;
29
+ /** HTTP-status van de laatste poging. Afwezig = de call kwam niet tot een antwoord. */
30
+ lastStatus?: number;
31
+ lastError?: string;
32
+ /** Opeenvolgende mislukkingen, nul zodra er één aankomt — niet een totaalteller. */
33
+ failureCount?: number;
21
34
  }
package/dist/index.cjs CHANGED
@@ -1,18 +1,18 @@
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(`
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,_=10,T=10,b=5,Yt=new Set(["header","section","context","divider","image","list","actions","attachments"]);function v(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(!v(r.text)){t("a header without text");continue}break;case"context":if(!v(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("more than "+_+" fields in a section"),r.fields=r.fields.slice(0,_));break;case"list":if(!Array.isArray(r.items)||r.items.length===0){t("a list without items");continue}r.items.length>T&&(t("more than "+T+" list items"),r.items=r.items.slice(0,T));break;case"actions":{const a=Array.isArray(r.elements)?r.elements:[],o=a.filter(s=>s&&s.action_id&&s.invoke&&v(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 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 oe(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function L(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 — ${L(e.payload.from)}`:`Outbound call started — ${L(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${oe(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${L(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: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?` (${y(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?` (${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 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 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 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 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 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?O(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 Oe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const En=36e5,An=864e5;function yn(e,t,n){const i=n==="hour"?En:An,r=[];for(let a=Oe(e,n);a<=t;a+=i)r.push(Ne(a,n));return r}const Re=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],ke=Re.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",...ke,...n.extraDimensions??[],"time"]}))}const ve=new Set(["info","success","warning","destructive"]),P=200,$=100,K=200,U=12,B=4,X=4e3,I=500,_n=256*1024,Tn=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Le=["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?Le.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"&&ve.has(e)?e:t}function On(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(!Tn.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 A=d(u?.label,I),w=u?.align==="right"?"right":void 0;s.push(w?{label:A,align:w}:{label:A})}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 A=Array.isArray(u)?u:[];p.push(s.map((w,Ht)=>d(A[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>=B){t("more than "+B+" 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:Nn(r.tone),...s?{title:s}:{},text:o});break}}}return n}function Rn(e){return JSON.stringify(e).length}function kn(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 vn(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 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"?`
5
+ `}const z=e=>`user:${e}`,Y=e=>`team:${e}`;function Ln(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 Bn(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 F=["lookup","condition","parallel","for-each"];function G(e){for(const t of e){if(!F.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${F.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 Fn(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&&Fn(n.ownerScope,t))}function jn(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Vn=[{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"}],Wn={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 Be(e){return Ue(e)}function Fe(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}:Fe(e.ownerScope)}function zn(e){return Be(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 Ve="interaction";function We(e){return e?.type===Ve?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 We(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 E(e){return Q.find(t=>t.id===e)}function Ei(e){return E(e)?.label??e}function Ai(e,t="gpt-5-mini"){return E(e)?.defaultModel??t}function yi(e){return Q.filter(t=>t.capabilities.includes(e))}function Si(e){const t=E(e);return!!t&&!t.baseUrl}function _i(e,t){return t==="text"?!0:E(e)?.attachmentKinds?.includes(t)===!0}function Ti(e,t){if(!e.enabled)return"ok";const n=V(e.hardLimitNanos),i=V(e.softLimitNanos);return n!==void 0&&t>=n?"hard":i!==void 0&&t>=i?"soft":"ok"}function V(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}function Mi(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Ci(e){return`mcp__${e}__`}const Ni=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 Oi(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 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(`
7
+ `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${r.body}`:n}function Ri(e){return e.endpoints??[]}const ki=e=>!!e.assignedUserId||!!e.assignedInboxId,wi=e=>e.status==="closed",vi=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Li=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function xi(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Di=1e3,Pi=2e3,$i=500,Ki=12e3,Ui=4e3,lt=["contact","company"];function Bi(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return lt.includes(t)}function Fi(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Gi(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 ji(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Vi(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 Wi(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 Hi(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Xi(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 zi(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 Yi(e,t,n){const i=`${e}-${t}`;return n?`${i}-${n}`:i}function qi(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 Ji(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Zi(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 Qi(e){return[ee(e.id)]}const R=[{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=R.map(e=>e.key);function mt(e){return e?.statuses?.length?e.statuses:R}function gt(e,t){return t.find(n=>n.key===e)?.category??"todo"}function er(e,t){return t.find(n=>n.key===e)}function tr(e){const t=mt(e),n=e?.defaultStatusKey;return n&&t.some(i=>i.key===n)?n:ht(t)[0]?.key??R[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 nr(e,t){return gt(e,t)==="done"}function Et(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ir(e,t){const n=Et(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 rr(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 k={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}},At="NL",ar=15,or=8,sr=Array.from(new Set(Object.values(k).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function he(e){if(e)return k[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Ee(e){if(e.length>ar)return null;for(const t of sr){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const i of Object.values(k)){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<or?null:`+${e}`}function lr(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 cr(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 W(e,t){if(!e)return null;const n=lr(e);if(!n)return null;const i=n.startsWith("+"),r=n.replace(/\D/g,"");if(!r)return null;if(i)return Ee(r);if(r.startsWith("00"))return Ee(r.slice(2));const a=he(t)??he(At);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 ur(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 dr(e){const t=ne(e);return t?t.slice(t.lastIndexOf("@")+1):null}const pr=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function yt(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 pr.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 fr(e){const t=yt(e);return t?St.has(t):!1}function mr(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function gr(e,t,n){if(!e||!t)return null;const i=e.trim().toLowerCase();if(i==="tel"||i==="sms"||i==="whatsapp"){const a=W(t,n);return a?`tel:${a}`:null}if(i==="fax"){const a=W(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 hr=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,Er=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Ar(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(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,`
9
+ `),t=t.replace(hr,"$2"),t=t.replace(Er,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const yr=[/<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],Ae=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,Sr=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function _r(e){const t=e.split(`
10
+ `);for(let n=0;n<t.length;n++)if(Sr.test(t[n])||Ae.test(t[n])&&t.slice(n+1,n+4).some(i=>Ae.test(i)))return t.slice(0,n).join(`
11
+ `).trim();return e}function ye(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 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,`
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 _e(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 Te(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
16
16
  `).replace(/\n{3,}/g,`
17
17
 
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;
18
+ `).trim()}function Tr(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const a of yr){const o=e.search(a);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let i=Te(_e(ye(n)));return i||(i=Te(_e(ye(e)))),_r(i)||i}const br=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ir=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Mr(e,t){return!!(e&&br.test(e)||t&&Ir.test(t))}const _t=3,Tt=600;function Cr(e,t){return e>=_t||t>=Tt}const Nr=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Or=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?Nr.has(t)?"image":t==="application/pdf"?"pdf":Or.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},Rr=25*h,kr=5;function wr(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=>xr(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 Lr(e,t){const n=Nt(e,t);return Object.entries(n).filter(([,i])=>!i).map(([i])=>i)}function xr(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Dr(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 Pr(e,t){return t.filter(n=>n.capability.intent===e)}function Ot(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function $r(e,t){return Ot(e.scheme,t)}function Kr(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 Rt=(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))(Rt||{});const Ur={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 Br(e){return e?Ur[e]??"note":"note"}const Fr="message_window",Gr="message_templates",jr={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Vr=(e,t)=>({intent:e,...t}),Wr="folder_management",Hr="remote_search",Xr={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},zr="resources.describe",Yr="resources.search",qr="resources.resolve";function Jr(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const ie="auth";function re(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Zr(e){const t=re(e);return t?t!==ie:typeof e=="string"&&e.startsWith("/wake")}function Qr(e){return typeof e!="string"||e===""||e==="/"?!0:re(e)===ie}function ea(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kt(e){const n=e.split("/").filter(Boolean).map(i=>i.startsWith(":")?i.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":"/"+ea(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 vt(e){return e.publicBasePath??`/apps/${e.name}`}function ta(e){const t=[];for(const n of e){if(!n?.name)continue;const i=vt(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 Lt(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)kt(i.pattern).test(e)&&(!n||Lt(i.pattern,n.pattern))&&(n=i);return n?{...n,params:{...n.props,...wt(n.pattern,e)}}:null}function na(e,t){return xt(e,t)!==null}const ia="sync-source",ra="sync-target",aa=20,oa={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(oa).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,sa=3,la=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 Bt(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<sa||la.has(n)||t.add(n);return[...t]}function Ft(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 ca(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 ua(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=Bt(r.text);return o.length?i.lastQueryTerms?.length&&Ft(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,Vt=["out_of_office"],Wt=e=>Vt.includes(e);function da(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&&!Wt(a)?{online:!1,status:"offline"}:{online:i,status:a,message:r.message}}function pa(e,t){const n=t-e.lastSeenAt<ae,i=n||Wt(e.status)?e.status:"offline";return n===e.online&&i===e.status?e:{...e,online:n,status:i}}function fa(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 ma(e){return e.providerAvailable&&e.allowed}const ga="installation-id";exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=It;exports.AI_ATTACHMENT_MAX_PER_TURN=kr;exports.AI_ATTACHMENT_TURN_BUDGET=Rr;exports.AI_VENDORS=Q;exports.ALLOWED_LINK_SCHEMES=Le;exports.ARTIFACT_MAX_BLOCKS=P;exports.ARTIFACT_MAX_BODY_BYTES=_n;exports.ARTIFACT_MAX_CELL_LEN=I;exports.ARTIFACT_MAX_KPI_ITEMS=B;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=Wn;exports.CORE_DIMENSIONS=gn;exports.CommunicationScheme=Rt;exports.DEFAULT_MEMORY_BUDGET=Ui;exports.DEFAULT_PHONE_REGION=At;exports.EMPTY_WORKFLOW=ei;exports.FEATURE_FOLDER_MANAGEMENT=Wr;exports.FEATURE_REMOTE_SEARCH=Hr;exports.INSTALLATION_HEADER=ga;exports.INTERACTION_KIND=Ve;exports.InteractionParticipantRole=jr;exports.KB_FALLBACK_LOCALE=Qe;exports.KB_LOCALES=j;exports.LOOSE_STATUSES=R;exports.MAX_ACTIONS=b;exports.MAX_ASSIGNMENT_TURNS=Ke;exports.MAX_BLOCKS=D;exports.MAX_COLLECTION_DEPTH=J;exports.MAX_FIELDS=_;exports.MAX_LIST_ITEMS=T;exports.MAX_MEMORY_BROWSE=Di;exports.MAX_MEMORY_BUDGET=Ki;exports.MAX_MEMORY_CHARS=Pi;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=$i;exports.PHONE_REGIONS=k;exports.PRESENCE_ONLINE_WINDOW_MS=ae;exports.PRESENCE_SURVIVES_OFFLINE=Vt;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Gr;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Fr;exports.PUBLIC_EMAIL_DOMAINS=St;exports.READ_STEP_TYPES=F;exports.RELATED_SUBJECT_KINDS=lt;exports.RESERVED_STATUS_KEYS=te;exports.RESOURCE_DESCRIBE_SERVICE=zr;exports.RESOURCE_RESOLVE_SERVICE=qr;exports.RESOURCE_SEARCH_SERVICE=Yr;exports.SIGNATURE_INTENTS=Ni;exports.STEP_MAX_TOKENS_MAX=Xe;exports.STEP_MAX_TOKENS_MIN=He;exports.SUMMARY_MIN_LAST_CHARS=Tt;exports.SUMMARY_MIN_MESSAGES=_t;exports.SYNC_RUN_MAX_ERRORS=aa;exports.SYNC_SOURCE_PROVIDER_GROUP=ia;exports.SYNC_TARGET_PROVIDER_GROUP=ra;exports.TERMINAL_ASSIGNMENT_STATUSES=Pe;exports.TERMINAL_RUN_STATUSES=ze;exports.TRIGGER_VARS=Vn;exports.UNSUPPORTED=Xr;exports.USAGE_DIMENSIONS=Re;exports.USAGE_DIMENSION_IDS=ke;exports.WORK_ITEM_SCOPE_KIND=dt;exports.WORK_PROJECT_SCOPE_KIND=pt;exports.acceptExampleCandidate=gi;exports.actingIdentityKey=Be;exports.activeWorkTypes=Xi;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=pa;exports.aiAttachmentKind=bt;exports.aiAttachmentRejection=wr;exports.aiBudgetLimit=V;exports.aiBudgetPeriodKey=bi;exports.aiBudgetPeriodStart=ot;exports.aiBudgetState=Ti;exports.aiVendorAcceptsAttachment=_i;exports.aiVendorDefaultModel=Ai;exports.aiVendorLabel=Ei;exports.aiVendorNeedsBaseUrl=Si;exports.aiVendorsWith=yi;exports.appNameFromPath=re;exports.applyRounding=Gi;exports.applySignature=Oi;exports.artifactBodyBytes=Rn;exports.artifactOutline=kn;exports.artifactToMarkdown=vn;exports.assignmentMismatch=Zn;exports.assignmentScopeKey=$n;exports.assignmentSubject=Un;exports.buildActivityPreview=pn;exports.buildChannelIntents=Dr;exports.buildShareKeys=Ln;exports.buildWindow=Gt;exports.canNestUnder=di;exports.carriesText=tn;exports.categoryLabel=fi;exports.categoryOf=gt;exports.channelKindForScheme=Br;exports.channelKindOf=Zt;exports.clampStepMaxTokens=Qn;exports.cleanMessageText=Tr;exports.compareWorkTypes=ut;exports.decideAssignmentState=Bn;exports.decideCadence=ua;exports.defaultLocaleOf=et;exports.defaultStatusKey=tr;exports.defineIntent=Vr;exports.depthOf=Je;exports.derivePresence=da;exports.disabledIntentsFromCapabilities=Lr;exports.elapsedSeconds=Fi;exports.emailDomain=dr;exports.endpointKey=gr;exports.extractParams=wt;exports.extractTerms=Bt;exports.filterByEndpoint=$r;exports.filterByIntent=Pr;exports.filterByTargetScheme=Ot;exports.findAiVendor=E;exports.flattenLocales=hn;exports.floorToPeriod=Oe;exports.formatActingIdentity=Ue;exports.formatClock=Vi;exports.formatHm=ji;exports.formatItemKey=Yi;exports.formatPeriod=Ne;exports.freshSources=vr;exports.getActivitySeenUserIds=fn;exports.getContactEndpoints=Ri;exports.getShortTitle=Li;exports.getUrgencyScore=vi;exports.heightOf=Z;exports.helpCenterText=li;exports.humanizeAction=jn;exports.interactionIdOf=We;exports.isAgentUser=zi;exports.isAssigned=ki;exports.isAssignmentTerminal=Pn;exports.isAssignmentTrigger=Ge;exports.isChatMessageActivity=zt;exports.isClosed=wi;exports.isConnectedType=an;exports.isDeepLink=Zr;exports.isDescendant=Ze;exports.isEmailActivity=Xt;exports.isInFlight=ri;exports.isInteractionUnseen=xi;exports.isLandingPath=Qr;exports.isLikelyBulk=Mr;exports.isMessageShape=H;exports.isMessageType=Qt;exports.isMoreSpecificPattern=Lt;exports.isPaused=Ye;exports.isPlaybookAuthoredType=rn;exports.isPublicEmailDomain=fr;exports.isPublicPath=na;exports.isReplyableType=en;exports.isTerminal=ii;exports.isThreadLongEnough=Cr;exports.isTranscriptType=on;exports.isWorkClosed=nr;exports.isWorkTypeVisible=Hi;exports.itemDossierKeys=Zi;exports.ladderFor=mt;exports.linkLabel=si;exports.listeningAllowed=Ii;exports.localeInstruction=ui;exports.localeName=ci;exports.localesOf=pi;exports.looksLikeEmail=cr;exports.matchContactToIntents=Kr;exports.matchPublicRoute=xt;exports.mcpCredentialScope=Mi;exports.mcpToolPrefix=Ci;exports.mergeShownKeys=ca;exports.messageCountsAs=nn;exports.needsPhoneRegion=mr;exports.normalizeArtifactBlocks=On;exports.normalizeBlocks=qt;exports.normalizeEmail=ne;exports.normalizeExample=g;exports.novelty=Ft;exports.parseActingIdentity=Hn;exports.parseItemKey=qi;exports.pathToRegex=kt;exports.periodsInRange=yn;exports.phoneSuffix=ur;exports.plainTextFromMarkdown=Ar;exports.playbookActor=Fe;exports.procedureOf=ni;exports.projectDossierKeys=Qi;exports.publicBasePathFor=vt;exports.publicRoutePatterns=ta;exports.readPath=N;exports.readStepError=G;exports.refKey=je;exports.registrableDomain=yt;exports.rejectExampleCandidate=rt;exports.relatedByDefault=Bi;exports.resolveAccountCapabilities=Nt;exports.resolveActivityText=O;exports.resolveChannelIntents=Ct;exports.resolveSignature=st;exports.resolveWorkMode=fa;exports.resourceKindOf=Jr;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=ma;exports.sortStatuses=ht;exports.sourceKey=Mt;exports.statusIn=er;exports.stepsOf=ti;exports.stripHtml=be;exports.subjectKeyOf=ai;exports.subjectOf=q;exports.suggestProjectKey=Ji;exports.targetById=Jn;exports.targetForActivityType=qn;exports.toE164=W;exports.toolSourceKinds=Dn;exports.topicOfferedForTeam=at;exports.topicsForTeam=hi;exports.truncateExample=it;exports.uniqueWorkStatusKey=ir;exports.uniqueWorkTypeKey=Wi;exports.usageMetricId=we;exports.usageMetrics=Sn;exports.validateStatuses=rr;exports.valueAtPath=Yn;exports.wakesAssignment=Kn;exports.workItemScopeKey=ft;exports.workProjectScopeKey=ee;exports.workStatusKey=Et;exports.workTypeKey=ct;
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export * from './text/endpoint';
42
42
  export * from './text/markdown';
43
43
  export * from './text/message';
44
44
  export * from './text/triage';
45
+ export * from './platform/account';
45
46
  export * from './platform/ai-attachments';
46
47
  export * from './platform/ai-tools';
47
48
  export * from './platform/api';
@@ -60,12 +61,14 @@ export * from './platform/manifest';
60
61
  export * from './platform/menu';
61
62
  export * from './platform/reactive';
62
63
  export * from './platform/resource';
64
+ export * from './platform/resource-source';
63
65
  export * from './platform/routing';
64
66
  export * from './platform/scope';
65
67
  export * from './platform/sdk';
66
68
  export * from './platform/settings';
67
69
  export * from './platform/service-registry';
68
70
  export * from './platform/services';
71
+ export * from './platform/sync-source';
69
72
  export * from './platform/ui';
70
73
  export * from './platform/media';
71
74
  export * from './platform/transcript-cadence';