@opencxh/domain 1.197.0 → 1.198.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/activity/types.d.ts +1 -1
- package/dist/entities/interaction/attention.d.ts +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.js +94 -90
- package/dist/platform/assist-source.d.ts +2 -0
- package/dist/platform/manifest.d.ts +21 -1
- package/dist/platform/menu.d.ts +5 -0
- package/dist/platform/ui.d.ts +14 -0
- package/package.json +1 -1
|
@@ -212,7 +212,7 @@ export type FileUploadedPayload = {
|
|
|
212
212
|
* status changes leaving no trace, so a conversation jumped out of and back into the list without
|
|
213
213
|
* anything saying why.
|
|
214
214
|
*/
|
|
215
|
-
export type InteractionStatus = "open" | "
|
|
215
|
+
export type InteractionStatus = "open" | "closed" | "snoozed";
|
|
216
216
|
export type InteractionStatusChangedPayload = {
|
|
217
217
|
fromStatus: InteractionStatus;
|
|
218
218
|
toStatus: InteractionStatus;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AttentionCtx, ParkMark, Priority, Scored } from '../../platform/attention';
|
|
2
2
|
import { Interaction } from './types';
|
|
3
3
|
/** The only statuses that can ask for attention; `closed` and `snoozed` never compete. */
|
|
4
|
-
export declare const ATTENTION_STATUSES: readonly ["open"
|
|
4
|
+
export declare const ATTENTION_STATUSES: readonly ["open"];
|
|
5
5
|
/**
|
|
6
6
|
* Deterministic attention scoring for one conversation. No AI: every point is a transparent,
|
|
7
7
|
* testable rule, and each contributor lands in `reasons` so a reader can be told *why* something
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=10,I=10,b=10,M=5,Sn=new Set(["header","section","context","divider","image","list","actions","attachments"]);function P(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 _n(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=$){t(`more than ${$} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const i=r;if(!Sn.has(i.type)){t(`unknown block type ${String(i.type)}`);continue}switch(i.type){case"header":if(!P(i.text)){t("a header without text");continue}break;case"context":if(!P(i.text)){t("a context block without text");continue}break;case"image":if(!i.url||!i.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(i.fields)&&i.fields.length>I&&(t(`more than ${I} fields in a section`),i.fields=i.fields.slice(0,I));break;case"list":if(!Array.isArray(i.items)||i.items.length===0){t("a list without items");continue}i.items.length>b&&(t(`more than ${b} list items`),i.items=i.items.slice(0,b));break;case"actions":{const a=Array.isArray(i.elements)?i.elements:[],o=a.filter(s=>s?.action_id&&s.invoke&&P(s.text));if(o.length!==a.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>M&&t(`more than ${M} actions`),i.elements=o.slice(0,M);break}}n.push(i)}return n}function Re(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function _(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 le(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function x(e){return e?.split("@")?.[0]||e||""}function T(e){return e.map(t=>t.name).join(", ")}function ue(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 — ${x(e.payload.from)}`:`Outbound call started — ${x(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.payload.duration)})`:""}`,timeline:e=>`Call ended${le(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${x(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.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:de},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:de},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} toegevoegd`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} verlaten`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${ue(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.payload.duration)})`:""}`,timeline:e=>`${ue(e.payload.callType)} ended${le(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.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}`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`}};function de(e){const t=e.payload,n=t.bodyText?.trim()||t.bodySnippet?.trim()||Re(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function c(e){return m[e]}function Tn(e){return c(e)?.icon??"circle"}function In(e){return c(e)?.channelKind}function z(e){return e==="message"||e==="note"}function bn(e){return z(c(e)?.shape)}function Mn(e){return c(e)?.replyable===!0}function On(e){return c(e)?.carriesText===!0}function Ce(e){return c(e)?.countsAs}function Rn(e){return c(e)?.playbookAuthored===!0}function Cn(e){return c(e)?.connected===!0}function wn(e){const t=c(e);return t?.shape==="artifact"&&t?.carriesText===!0}function we(e){const t=c(e.type)?.snippet;return t?t(e):""}function Nn(e,t){const n=c(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function kn(e){const t=c(e.type)?.joinUrl;return t?t(e):void 0}function w(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function N(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return w(t,e.value)||null;const r={};for(const[a,o]of Object.entries(e.params??{}))r[a]=w(t,o);const i=n(e.key,r);return i===e.key?null:i}function Ne(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,i]of Object.entries(e.params??{}))n[r]=w(t,i);return{key:e.key,params:n}}const pe=140;function vn(e){const t=e.trim();return t.length<=pe?t:`${t.slice(0,pe-1).trimEnd()}…`}function Dn(e,t){const n=Ne(t?.text,e),r=t?N(t.text,e,i=>i):null;return{activityId:e.id,type:e.type,snippet:vn(r??we(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Ln=e=>e;function fe(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 me(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 ke{constructor(t=[],n=Ln){this.translate=n;for(const r of t)r?.type&&(r.type in m||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in m)return fe(t);const n=this.declared.get(t);return n?me(n):void 0}triggerable(){const t=Object.keys(m).filter(r=>m[r].triggerable).map(fe),n=[...this.declared.values()].map(me).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=m[t.type];if(r?.timeline)return r.timeline(t,n);const i=this.declared.get(t.type);return N(i?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=m[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return N(r?.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 z(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 Pn=new ke;function xn(e,t,n=[]){const r=e.createdAt;if(!r)return[];const i=new Set(n);return e.author.type==="user"&&e.author.id&&i.add(e.author.id),Object.entries(t).filter(([a,o])=>o>=r&&!i.has(a)).map(([a])=>a)}function ve(e){return e.createdAt??0}function Un(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function $n(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}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 y(e){return q.find(t=>t.id===e)}function Kn(e){return y(e)?.label??e}function Bn(e,t="gpt-5-mini"){return y(e)?.defaultModel??t}function Gn(e){return q.filter(t=>t.capabilities.includes(e))}function Fn(e){const t=y(e);return!!t&&!t.baseUrl}function Hn(e,t){return t==="text"?!0:y(e)?.attachmentKinds?.includes(t)===!0}function Wn(e,t){if(!e.enabled)return"ok";const n=K(e.hardLimitNanos),r=K(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function K(e){return typeof e=="number"?e:void 0}function De(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Vn(e,t="month"){const n=new Date(De(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function jn(e){return e?.listeningEnabled!==!1}const Yn=[{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 U(e){return e<10?`0${e}`:`${e}`}function Le(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${U(n.getUTCMonth()+1)}-${U(n.getUTCDate())}`;return t==="day"?r:`${r}T${U(n.getUTCHours())}`}function Pe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Xn=36e5,zn=864e5;function qn(e,t,n){const r=n==="hour"?Xn:zn,i=[];for(let a=Pe(e,n);a<=t;a+=r)i.push(Le(a,n));return i}const xe=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Ue=xe.map(e=>e.id);function $e(e,t){return`${e}.usage.${t}`}function Jn(e,t){return t.map(n=>({id:$e(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Ue,...n.extraDimensions??[],"time"]}))}const Ke=new Set(["info","success","warning","destructive"]),B=200,G=100,F=200,H=12,W=4,J=4e3,O=500,Zn=256*1024,Qn=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Be=["http:","https:","mailto:","tel:"],er=/^[a-z][a-z0-9+.-]*:/i;function Ge(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=er.exec(t)?.[0];return n?Be.includes(n.toLowerCase()):!t.startsWith("//")}const tr=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function nr(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const i=n+(r?2:1),a=ge(e,i,"[","]");if(a<0||e[a+1]!=="("){t+=e[n],n+=1;continue}const o=ge(e,a+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(i,a),l=e.slice(a+2,o).trim().split(/\s+/)[0]??"";t+=r||!Ge(l)?s:e.slice(n,o+1),n=o+1}return t}function ge(e,t,n,r){let i=1;for(let a=t;a<e.length;a+=1){if(e[a]==="\\"){a+=1;continue}if(e[a]===n)i+=1;else if(e[a]===r&&(i-=1,i===0))return a}return-1}function Fe(e){return nr(e).replace(tr,(t,n,r)=>Ge(r)?t:"")}function d(e,t=J){return typeof e=="string"?Fe(e).slice(0,t):""}function rr(e,t=J){return typeof e=="string"?e.slice(0,t):""}function ir(e,t="info"){return typeof e=="string"&&Ke.has(e)?e:t}function ar(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=B){t(`more than ${B} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const i=r;if(!Qn.has(i.type)){t(`unknown block type ${String(i.type)}`);continue}const a=typeof i.block_id=="string"?{block_id:i.block_id}:{};switch(i.type){case"heading":{const o=d(i.text);if(!o){t("a heading without text");continue}const s=i.level===2||i.level===3?i.level:1;n.push({...a,type:"heading",level:s,text:o});break}case"paragraph":{const o=d(i.text);if(!o){t("a paragraph without text");continue}n.push({...a,type:"paragraph",text:o});break}case"quote":{const o=d(i.text);if(!o){t("a quote without text");continue}n.push({...a,type:"quote",text:o});break}case"code":{const o=rr(i.text);if(!o){t("a code block without text");continue}const s=typeof i.lang=="string"?{lang:i.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(i.items)?i.items:[],s=[];for(const p of o){if(s.length>=G){t(`more than ${G} 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 l=i.style==="numbered"?"numbered":"bulleted";n.push({...a,type:"list",style:l,items:s});break}case"table":{const o=Array.isArray(i.columns)?i.columns:[],s=[];for(const u of o){if(s.length>=H){t(`more than ${H} table columns`);break}const S=d(u?.label,O),L=u?.align==="right"?"right":void 0;s.push(L?{label:S,align:L}:{label:S})}if(s.length===0){t("a table without columns");continue}const l=Array.isArray(i.rows)?i.rows:[],p=[];for(const u of l){if(p.length>=F){t(`more than ${F} table rows`);break}const S=Array.isArray(u)?u:[];p.push(s.map((L,yn)=>d(S[yn],O)))}const f=d(i.caption,O);n.push({...a,type:"table",columns:s,rows:p,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(i.items)?i.items:[],s=[];for(const l of o){if(s.length>=W){t(`more than ${W} kpi items`);break}const p=d(l?.value,40),f=d(l?.label,80);if(!p||!f)continue;const u=l?.tone;s.push(typeof u=="string"&&Ke.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(i.text);if(!o){t("a callout without text");continue}const s=d(i.title,200);n.push({...a,type:"callout",tone:ir(i.tone),...s?{title:s}:{},text:o});break}}}return n}function or(e){return JSON.stringify(e).length}function sr(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function he(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Ae(e,t,n){const r=e.map((i,a)=>n?.[a]==="right"?"---:":"---");return[`| ${e.map(he).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(i=>`| ${i.map(he).join(" | ")} |`)]}function cr(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 r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Ae(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 Ae(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 lr(e,t){const n=[],r=e.some(i=>i.type==="heading"&&i.level===1);t&&!r&&n.push(`# ${t}`);for(const i of e){const a=cr(i);a.length>0&&n.push(a.join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=10,I=10,b=10,M=5,yn=new Set(["header","section","context","divider","image","list","actions","attachments"]);function P(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 _n(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=$){t(`more than ${$} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const i=r;if(!yn.has(i.type)){t(`unknown block type ${String(i.type)}`);continue}switch(i.type){case"header":if(!P(i.text)){t("a header without text");continue}break;case"context":if(!P(i.text)){t("a context block without text");continue}break;case"image":if(!i.url||!i.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(i.fields)&&i.fields.length>I&&(t(`more than ${I} fields in a section`),i.fields=i.fields.slice(0,I));break;case"list":if(!Array.isArray(i.items)||i.items.length===0){t("a list without items");continue}i.items.length>b&&(t(`more than ${b} list items`),i.items=i.items.slice(0,b));break;case"actions":{const a=Array.isArray(i.elements)?i.elements:[],o=a.filter(s=>s?.action_id&&s.invoke&&P(s.text));if(o.length!==a.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>M&&t(`more than ${M} actions`),i.elements=o.slice(0,M);break}}n.push(i)}return n}function Re(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function _(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 le(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function x(e){return e?.split("@")?.[0]||e||""}function T(e){return e.map(t=>t.name).join(", ")}function ue(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 — ${x(e.payload.from)}`:`Outbound call started — ${x(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.payload.duration)})`:""}`,timeline:e=>`Call ended${le(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${x(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.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:de},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:de},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} toegevoegd`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${T(e.payload.members)} verlaten`,timeline:e=>{const t=T(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${ue(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.payload.duration)})`:""}`,timeline:e=>`${ue(e.payload.callType)} ended${le(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.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}`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`}};function de(e){const t=e.payload,n=t.bodyText?.trim()||t.bodySnippet?.trim()||Re(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function c(e){return m[e]}function Tn(e){return c(e)?.icon??"circle"}function In(e){return c(e)?.channelKind}function z(e){return e==="message"||e==="note"}function bn(e){return z(c(e)?.shape)}function Mn(e){return c(e)?.replyable===!0}function On(e){return c(e)?.carriesText===!0}function Ce(e){return c(e)?.countsAs}function Rn(e){return c(e)?.playbookAuthored===!0}function Cn(e){return c(e)?.connected===!0}function wn(e){const t=c(e);return t?.shape==="artifact"&&t?.carriesText===!0}function we(e){const t=c(e.type)?.snippet;return t?t(e):""}function Nn(e,t){const n=c(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function kn(e){const t=c(e.type)?.joinUrl;return t?t(e):void 0}function w(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function N(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return w(t,e.value)||null;const r={};for(const[a,o]of Object.entries(e.params??{}))r[a]=w(t,o);const i=n(e.key,r);return i===e.key?null:i}function Ne(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,i]of Object.entries(e.params??{}))n[r]=w(t,i);return{key:e.key,params:n}}const pe=140;function vn(e){const t=e.trim();return t.length<=pe?t:`${t.slice(0,pe-1).trimEnd()}…`}function Dn(e,t){const n=Ne(t?.text,e),r=t?N(t.text,e,i=>i):null;return{activityId:e.id,type:e.type,snippet:vn(r??we(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Ln=e=>e;function fe(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 me(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 ke{constructor(t=[],n=Ln){this.translate=n;for(const r of t)r?.type&&(r.type in m||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in m)return fe(t);const n=this.declared.get(t);return n?me(n):void 0}triggerable(){const t=Object.keys(m).filter(r=>m[r].triggerable).map(fe),n=[...this.declared.values()].map(me).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=m[t.type];if(r?.timeline)return r.timeline(t,n);const i=this.declared.get(t.type);return N(i?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=m[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return N(r?.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 z(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 Pn=new ke;function xn(e,t,n=[]){const r=e.createdAt;if(!r)return[];const i=new Set(n);return e.author.type==="user"&&e.author.id&&i.add(e.author.id),Object.entries(t).filter(([a,o])=>o>=r&&!i.has(a)).map(([a])=>a)}function ve(e){return e.createdAt??0}function Un(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function $n(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}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 S(e){return q.find(t=>t.id===e)}function Kn(e){return S(e)?.label??e}function Bn(e,t="gpt-5-mini"){return S(e)?.defaultModel??t}function Gn(e){return q.filter(t=>t.capabilities.includes(e))}function Fn(e){const t=S(e);return!!t&&!t.baseUrl}function Hn(e,t){return t==="text"?!0:S(e)?.attachmentKinds?.includes(t)===!0}function Wn(e,t){if(!e.enabled)return"ok";const n=K(e.hardLimitNanos),r=K(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function K(e){return typeof e=="number"?e:void 0}function De(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Vn(e,t="month"){const n=new Date(De(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function jn(e){return e?.listeningEnabled!==!1}const Yn=[{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 U(e){return e<10?`0${e}`:`${e}`}function Le(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${U(n.getUTCMonth()+1)}-${U(n.getUTCDate())}`;return t==="day"?r:`${r}T${U(n.getUTCHours())}`}function Pe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Xn=36e5,zn=864e5;function qn(e,t,n){const r=n==="hour"?Xn:zn,i=[];for(let a=Pe(e,n);a<=t;a+=r)i.push(Le(a,n));return i}const xe=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Ue=xe.map(e=>e.id);function $e(e,t){return`${e}.usage.${t}`}function Jn(e,t){return t.map(n=>({id:$e(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Ue,...n.extraDimensions??[],"time"]}))}const Ke=new Set(["info","success","warning","destructive"]),B=200,G=100,F=200,H=12,W=4,J=4e3,O=500,Zn=256*1024,Qn=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Be=["http:","https:","mailto:","tel:"],er=/^[a-z][a-z0-9+.-]*:/i;function Ge(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=er.exec(t)?.[0];return n?Be.includes(n.toLowerCase()):!t.startsWith("//")}const tr=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function nr(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const i=n+(r?2:1),a=ge(e,i,"[","]");if(a<0||e[a+1]!=="("){t+=e[n],n+=1;continue}const o=ge(e,a+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(i,a),l=e.slice(a+2,o).trim().split(/\s+/)[0]??"";t+=r||!Ge(l)?s:e.slice(n,o+1),n=o+1}return t}function ge(e,t,n,r){let i=1;for(let a=t;a<e.length;a+=1){if(e[a]==="\\"){a+=1;continue}if(e[a]===n)i+=1;else if(e[a]===r&&(i-=1,i===0))return a}return-1}function Fe(e){return nr(e).replace(tr,(t,n,r)=>Ge(r)?t:"")}function d(e,t=J){return typeof e=="string"?Fe(e).slice(0,t):""}function rr(e,t=J){return typeof e=="string"?e.slice(0,t):""}function ir(e,t="info"){return typeof e=="string"&&Ke.has(e)?e:t}function ar(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=B){t(`more than ${B} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const i=r;if(!Qn.has(i.type)){t(`unknown block type ${String(i.type)}`);continue}const a=typeof i.block_id=="string"?{block_id:i.block_id}:{};switch(i.type){case"heading":{const o=d(i.text);if(!o){t("a heading without text");continue}const s=i.level===2||i.level===3?i.level:1;n.push({...a,type:"heading",level:s,text:o});break}case"paragraph":{const o=d(i.text);if(!o){t("a paragraph without text");continue}n.push({...a,type:"paragraph",text:o});break}case"quote":{const o=d(i.text);if(!o){t("a quote without text");continue}n.push({...a,type:"quote",text:o});break}case"code":{const o=rr(i.text);if(!o){t("a code block without text");continue}const s=typeof i.lang=="string"?{lang:i.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(i.items)?i.items:[],s=[];for(const p of o){if(s.length>=G){t(`more than ${G} 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 l=i.style==="numbered"?"numbered":"bulleted";n.push({...a,type:"list",style:l,items:s});break}case"table":{const o=Array.isArray(i.columns)?i.columns:[],s=[];for(const u of o){if(s.length>=H){t(`more than ${H} table columns`);break}const y=d(u?.label,O),L=u?.align==="right"?"right":void 0;s.push(L?{label:y,align:L}:{label:y})}if(s.length===0){t("a table without columns");continue}const l=Array.isArray(i.rows)?i.rows:[],p=[];for(const u of l){if(p.length>=F){t(`more than ${F} table rows`);break}const y=Array.isArray(u)?u:[];p.push(s.map((L,Sn)=>d(y[Sn],O)))}const f=d(i.caption,O);n.push({...a,type:"table",columns:s,rows:p,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(i.items)?i.items:[],s=[];for(const l of o){if(s.length>=W){t(`more than ${W} kpi items`);break}const p=d(l?.value,40),f=d(l?.label,80);if(!p||!f)continue;const u=l?.tone;s.push(typeof u=="string"&&Ke.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(i.text);if(!o){t("a callout without text");continue}const s=d(i.title,200);n.push({...a,type:"callout",tone:ir(i.tone),...s?{title:s}:{},text:o});break}}}return n}function or(e){return JSON.stringify(e).length}function sr(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function he(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Ae(e,t,n){const r=e.map((i,a)=>n?.[a]==="right"?"---:":"---");return[`| ${e.map(he).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(i=>`| ${i.map(he).join(" | ")} |`)]}function cr(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 r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Ae(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 Ae(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 lr(e,t){const n=[],r=e.some(i=>i.type==="heading"&&i.level===1);t&&!r&&n.push(`# ${t}`);for(const i of e){const a=cr(i);a.length>0&&n.push(a.join(`
|
|
2
2
|
`))}return`${n.join(`
|
|
3
3
|
|
|
4
4
|
`)}
|
|
5
|
-
`}const Z=e=>`user:${e}`,Q=e=>`team:${e}`;function ur(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(Q(n.id)));return[...t].sort()}function dr(e,t){return[Z(e),...t.map(Q)]}function pr(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const He=["done","escalated"];function fr(e){return He.includes(e)}const We="assignment";function mr(e){return`${We}:${e}`}function gr(e,t,n){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const r=e.payload?.mentions;return Array.isArray(r)&&r.includes(t)?!0:n==="reply"}function hr(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Ve=12;function Ar(e,t,n=Ve){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Er=new Set(["mail","message"]);function je(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function
|
|
5
|
+
`}const Z=e=>`user:${e}`,Q=e=>`team:${e}`;function ur(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(Q(n.id)));return[...t].sort()}function dr(e,t){return[Z(e),...t.map(Q)]}function pr(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const He=["done","escalated"];function fr(e){return He.includes(e)}const We="assignment";function mr(e){return`${We}:${e}`}function gr(e,t,n){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const r=e.payload?.mentions;return Array.isArray(r)&&r.includes(t)?!0:n==="reply"}function hr(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Ve=12;function Ar(e,t,n=Ve){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Er=new Set(["mail","message"]);function je(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function Sr(e,t,n,r="html"){if(!e)return n;const i=je(e,t);return i?`${n}${r==="text"?`
|
|
6
6
|
|
|
7
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${i.body}`:n}function Sr(e){return e.endpoints??[]}const Ye=36e5,Xe=864e5,g=-1/0,_r=e=>e.score>g,E={urgent:40,high:25,normal:10,low:0};function Tr(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Ir=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,br=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function ze(e,t){return!!(e&&Ir.test(e)||t&&br.test(t))}const qe=3,Je=600;function Mr(e,t){return e>=qe||t>=Je}function Ze(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Qe=["open","pending"],et=1e3,tt={urgent:1,high:4,normal:8,low:24},nt=72;function rt(e){return e.lastActivityAt??(e.createdAt?new Date(ve(e)).getTime():0)}function it(e,t){return at(t.remindersById?.[e.id],e,t.now)}function at(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ot=e=>Ce(e)==="outbound_message",st=e=>Qe.includes(e);function k(e,t){return Math.max(0,(t-rt(e))/Ye)}function ct(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:tt[e.priority??"normal"]}function Or(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Rr(e,t,n){return!st(e.status)||e.firstResponseAt?!1:k(e,t)>ct(e,n)}function lt(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ot(n.type)?!1:k(e,t)<nt}function Cr(e,t){if(!st(e.status))return{score:g,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:g,reasons:[]};if(lt(e,t.now))return{score:g,reasons:[]};if(it(e,t))return{score:g,reasons:[]};let n=0;const r=[],i=e.priority??"normal";E[i]>0&&(n+=E[i],r.push(`priority:${i}`)),Ze(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const a=k(e,t.now);if(a>0){const s=Math.min(a*2,30);n+=s,a>=1&&r.push(`waiting:${Math.round(a)}h`)}const o=e.lastActivityPreview;return o?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),o?.direction==="outbound"&&ot(o.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),ze(e.remoteParty?.resource,e.lastActivityPreview?.snippet)&&(n-=et,r.push("bulk")),{score:n,reasons:r}}const wr=e=>!!e.assignedUserId||!!e.assignedInboxId,Nr=e=>e.status==="closed",kr=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,vr=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function Dr(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function Lr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)??(n?r.find(i=>i.locale===n):void 0)??{locale:t}}const V=[{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 ut(e){const t=(e??"").toLowerCase();return V.find(n=>n.code===t)??V.find(n=>n.code===t.split("-")[0])}function Pr(e){return ut(e)?.label??e}function xr(e){const t=ut(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const ee=3;function dt(e,t){const n=new Set;let r=1,i=t.get(e)?.parentId;for(;i;){if(n.has(i)||(n.add(i),r++,r>ee+1))return 1/0;i=t.get(i)?.parentId}return r}function Ur(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(o=>[o.id,o]));if(!r.has(e)||t&&pt(e,t,r))return!1;const i=dt(e,r),a=t?te(t,n):1;return i+a<=ee}function pt(e,t,n){const r=new Set;let i=n.get(e)?.parentId;for(;i;){if(i===t)return!0;if(r.has(i))return!1;r.add(i),i=n.get(i)?.parentId}return!1}function te(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(i=>i.parentId===e);return r.length?1+Math.max(...r.map(i=>te(i.id,t,n))):1}const ft="en";function mt(e){return e.defaultLocale||e.locale||ft}function $r(e){const t=new Set,n=[];for(const r of[mt(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Kr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)?.name??(n?r.find(i=>i.locale===n)?.name:void 0)??e.name}const j=["lookup","condition","parallel","for-each"];function Y(e){for(const t of e){if(!j.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${j.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Y(n);if(r)return r}if(t.type==="for-each"){const n=Y(t.body??[]);if(n)return n}}return null}function Br(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 Gr(e,t){return e.filter(n=>n.enabled&&Br(n.ownerScope,t))}function Fr(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Hr(e){return`mcp__${e}__`}const Wr=1e3,Vr=2e3,jr=500,Yr=12e3,Xr=4e3,gt=["contact","company","work_item"];function zr(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return gt.includes(t)}const qr="onboarding-source",Jr=["support","billing","availability","sales","onboarding"],Zr=["keep","replace"];function ht(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Qr(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 r=t.slice(0,n),i=t.slice(n+1).trim();if(i){if(r==="user")return{kind:"user",userId:i};if(r==="team")return{kind:"team",teamId:i}}}function At(e){return ht(e)}function Et(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"}}}const yt=Et;function ei(e){return e.agentId?{kind:"user",userId:e.agentId}:yt(e.ownerScope)}function ti(e){return At(e)}function ni(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function ri(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function ii(e,t){if(t)return e.targets.find(n=>n.id===t)}function St(e){return e?.kind==="assignment"}function ai(e){const{trigger:t,agentId:n,target:r,activityType:i,assigneeUserId:a,authorUserId:o}=e;return St(t)?n?r?r.activityTypes.includes(i)?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 ${r.assigneePath}`:`activity type ${i} does not announce an assignment for ${r.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 oi(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const si=[{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:"itemId",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:"toCategory",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],ci={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 _t(e){return`${e.type}:${e.id}`}const Tt="interaction";function It(e){return e?.type===Tt?e.id:void 0}const bt=64,Mt=8e3;function li(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),bt),Mt)}const ui={kind:"workflow",steps:[]};function di(e){return e?.kind==="workflow"?e.steps:[]}function pi(e){return e?.kind==="procedure"?e.procedure:void 0}function Ot(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Rt=10,Ct=.9;function fi(e){const{total:t,rate:n}=Ot(e);return t>=Rt&&n>=Ct}const wt=["done","escalated","failed","stopped"];function mi(e){return wt.includes(e)}function Nt(e){return e==="waiting"}function gi(e){return e==="running"||Nt(e)}function ne(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function hi(e){const t=ne(e);return t?_t(t):void 0}function Ai(e){return It(ne(e))}function Ei(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function yi(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function Si(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function _i(e){const t=Math.max(0,Math.floor(e)),n=a=>String(a).padStart(2,"0"),r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function kt(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ti(e,t){const n=kt(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function Ii(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function bi(e){return e.filter(t=>!t.archived).sort(vt)}function vt(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Dt=20,Lt=20,R=300;function h(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Pt(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=R)return t;const n=t.slice(0,R),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>R*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function Mi(e,t){const n=Pt(t.text),r=h(n);if(!r||(e.examples??[]).some(o=>h(o)===r))return null;const i=e.exampleCandidates??[],a=i.findIndex(o=>h(o.text)===r);if(a>=0){if(i[a].corrected||!t.corrected)return null;const o=[...i];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},Ee(o)}return Ee([{...t,text:n},...i]).slice(0,Lt)}function Ee(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Oi(e,t){const n=h(t),r=(e.examples??[]).filter(a=>a.trim());return{examples:r.some(a=>h(a)===n)?r:[...r,t].slice(-Dt),exampleCandidates:xt(e,t)}}function xt(e,t){const n=h(t);return(e.exampleCandidates??[]).filter(r=>h(r.text)!==n)}function Ut(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Ri(e,t){return e.filter(n=>Ut(n,t))}function Ci(e){return e.type==="agent"}const wi="WORK_COMMENT_ADDED",Ni="WORK_ITEM_ASSIGNED",ki="WORK_ITEM_STATUS_CHANGED";function vi(e,t){const n=r=>{const i=new Date(r);return i.setHours(0,0,0,0),i.getTime()};return Math.round((n(e)-n(t))/Xe)}function Di(e,t){if(e.closedAt!=null)return{score:g,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:g,reasons:[]};let r=0;const i=[],a=e.priority??"normal";if(E[a]>0&&(r+=E[a],i.push(`priority:${a}`)),typeof e.dueDate=="number"){const o=vi(e.dueDate,t.now);o<0?(r+=35,i.push("overdue")):o===0&&(r+=20,i.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,i.push(`auto:${e.source.systemReason}`)),{score:r,reasons:i}}const $t="work_item",Kt="work_project";function Bt(e){return`${$t}:${e}`}function re(e){return`${Kt}:${e}`}function Li(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Pi(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 xi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Ui(e,t=25){const n=new Set([Bt(e.id)]);e.projectId&&n.add(re(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function $i(e){return[re(e.id)]}const v=[{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},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],ie=v.map(e=>e.key);function Gt(e){return e?.statuses?.length?e.statuses:v}function Ft(e,t){return t.find(n=>n.key===e)?.category??"todo"}function Ki(e,t){return t.find(n=>n.key===e)}function Bi(e){const t=Gt(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Ht(t)[0]?.key??v[0].key}function Ht(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Gi(e,t){return Ft(e,t)==="done"}function Wt(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Fi(e,t){const n=Wt(e)||"status",r=new Set([...t,...ie]);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function Hi(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,i)=>{if(!r.key){t.push({index:i,reason:"missing_key"});return}ie.includes(r.key)&&t.push({index:i,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:i,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}const Wi=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Vi=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Vt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Wi.has(t)?"image":t==="application/pdf"?"pdf":Vi.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const A=1024*1024,jt={image:5*A,pdf:20*A,text:1*A,audio:20*A},ji=25*A,Yi=5;function Xi(e,t){const n=Vt(e);return n==="unsupported"?"unsupported":t>jt[n]?"too-large":null}function zi(e){return e.access!=="read"&&e.effect!=="internal"}function Yt(e){return`${e.kind}:${e.id||e.url||e.title}`}function qi(e,t=[]){const n=new Set(t),r=[],i=[];for(const a of e){const o=Yt(a);n.has(o)||(n.add(o),r.push(a),i.push(o))}return{sources:r,keys:i}}const Ji="assist-source",Zi=["blocking","due","open"];function Qi(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const ye={blocking:0,due:1,open:2};function ea(e,t){return ye[e.band??"open"]-ye[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}function ta(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function na(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function ra(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Xt(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},i=t.intents.filter(o=>!n.has(o.intent)).map(o=>aa(o,r[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return i;const a=new Set(i.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(i.push(o),a.add(o.intent));return i}function zt(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const i=t?.[r.intent];n[r.intent]=i??r.defaultEnabled??!0}return n}function ia(e,t){const n=zt(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function aa(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function oa(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const i=t[r.providerId];if(i)for(const a of Xt(r,i))n.push({channel:r,description:i,capability:a})}return n}function sa(e,t){return t.filter(n=>n.capability.intent===e)}function qt(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function ca(e,t){return qt(e.scheme,t)}function la(e,t,n){const r=[];for(const i of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(i.scheme)&&r.push({channelIntent:a,endpoint:i});return r}var Jt=(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))(Jt||{});const ua={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 da(e){return e?ua[e]??"note":"note"}const pa="message_window",fa="message_templates",ma={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},ga=(e,t)=>({intent:e,...t}),ha="folder_management",Aa="remote_search",Ea={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},ya="context.collect",Sa="installation-id";function _a(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}const Ta="notification-source",Ia=(e,t)=>`${e}.pref.${t}`,ba={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","attribute.read","attribute.write","calendar.read","calendar.write","channel.read","channel.write","custom-field.read","custom-field.write","folder.read","folder.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write","topic.read","topic.write"],context:["kind.read","kind.write","memory.read","memory.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},ae=9e4,Zt=["out_of_office"],Qt=e=>Zt.includes(e);function Ma(e,t,n){const r=n-e<ae,i=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!i?.status)return{online:r,status:r?"available":"offline"};const a=i.status;return!r&&!Qt(a)?{online:!1,status:"offline"}:{online:r,status:a,message:i.message}}function Oa(e,t){const n=t-e.lastSeenAt<ae,r=n||Qt(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}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 Ca(e){return e.providerAvailable&&e.allowed}const wa="resources.describe",Na="resources.search",ka="resources.resolve",va="resources.attached";function Da(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const oe="auth";function se(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function La(e){const t=se(e);return t?t!==oe:typeof e=="string"&&e.startsWith("/wake")}function Pa(e){return typeof e!="string"||e===""||e==="/"?!0:se(e)===oe}function xa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function en(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${xa(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function tn(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),i={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),l=r[o];l&&(i[s]=l)}}),i}function nn(e){return e.publicBasePath??`/apps/${e.name}`}function Ua(e){const t=[];for(const n of e){if(!n?.name)continue;const r=nn(n);for(const i of n.routes??[]){if(!i.public)continue;const a=i.path==="/"?"":i.path;t.push({appName:n.name,resource:i.resource,pattern:`${r}${a}`,props:i.props})}}return t}function rn(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let i=0;i<Math.min(n.length,r.length);i++){const a=n[i].startsWith(":"),o=r[i].startsWith(":");if(a!==o)return o}return n.length>r.length}function an(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)en(r.pattern).test(e)&&(!n||rn(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...tn(n.pattern,e)}}:null}function $a(e,t){return an(e,t)!==null}const Ka="sync-source",Ba="sync-target",Ga=20,Fa={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]"]},on=e=>{let t=e;return Object.values(Fa).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},sn=6e4,cn=8e3,ln=2,un=.4,Ha=3,Wa=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 dn(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Ha||Wa.has(n)||t.add(n);return[...t]}function pn(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let i=0;for(const a of r)n.has(a)||(i+=1);return i/r.size}function fn(e,t=sn){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const i=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=i).map(o=>on(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const mn=60;function Va(e,t,n=mn){const r=new Set(e),i=[...e];for(const a of t)!a||r.has(a)||(r.add(a),i.push(a));return i.slice(-n)}function ja(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<cn)return{trigger:!1,reason:"too_soon"};const i=fn(t,e.windowMs);if(!i.text)return{trigger:!1,reason:"no_speech"};const a=i.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&a<ln)return{trigger:!1,reason:"too_few_new"};const o=dn(i.text);return o.length?r.lastQueryTerms?.length&&pn(o,r.lastQueryTerms)<un?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:i.text,terms:o,segmentCount:i.segmentCount}:{trigger:!1,reason:"no_speech"}}const Ya="navNotice",D={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}},gn="NL",Xa=15,za=8,qa=Array.from(new Set(Object.values(D).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Se(e){if(e)return D[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function _e(e){if(e.length>Xa)return null;for(const t of qa){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(D)){if(r.callingCode!==t)continue;const i=r.trunkPrefix,a=i&&n.startsWith(i)?n.slice(i.length):n;if(C(a,r))return`+${t}${a}`}return null}return e.length<za?null:`+${e}`}function Ja(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function Za(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 X(e,t){if(!e)return null;const n=Ja(e);if(!n)return null;const r=n.startsWith("+"),i=n.replace(/\D/g,"");if(!i)return null;if(r)return _e(i);if(i.startsWith("00"))return _e(i.slice(2));const a=Se(t)??Se(gn);if(!a)return null;const o=a.trunkPrefix;if(o&&i.startsWith(o)){const s=i.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(i.startsWith(a.callingCode)){const s=i.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(i,a)?`+${a.callingCode}${i}`:null}function Qa(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ce(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],i=t.slice(n+1);return!r||!i.includes(".")?null:`${r}@${i}`}function eo(e){const t=ce(e);return t?t.slice(t.lastIndexOf("@")+1):null}const to=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function hn(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 to.has(n)&&t.length>=3?t.slice(-3).join("."):n}const An=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 no(e){const t=hn(e);return t?An.has(t):!1}function ro(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function io(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const a=X(t,n);return a?`tel:${a}`:null}if(r==="fax"){const a=X(t,n);return a?`fax:${a}`:null}if(r==="mailto"||r==="email"){const a=ce(t);return a?`mailto:${a}`:null}const i=t.trim().toLowerCase();return i?`${r}:${i}`:null}const ao=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,oo=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function so(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>"}${i.body}`:n}function yr(e){return e.endpoints??[]}const Ye=36e5,Xe=864e5,g=-1/0,_r=e=>e.score>g,E={urgent:40,high:25,normal:10,low:0};function Tr(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Ir=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,br=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function ze(e,t){return!!(e&&Ir.test(e)||t&&br.test(t))}const qe=3,Je=600;function Mr(e,t){return e>=qe||t>=Je}function Ze(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Qe=["open"],et=1e3,tt={urgent:1,high:4,normal:8,low:24},nt=72;function rt(e){return e.lastActivityAt??(e.createdAt?new Date(ve(e)).getTime():0)}function it(e,t){return at(t.remindersById?.[e.id],e,t.now)}function at(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ot=e=>Ce(e)==="outbound_message",st=e=>Qe.includes(e);function k(e,t){return Math.max(0,(t-rt(e))/Ye)}function ct(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:tt[e.priority??"normal"]}function Or(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Rr(e,t,n){return!st(e.status)||e.firstResponseAt?!1:k(e,t)>ct(e,n)}function lt(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ot(n.type)?!1:k(e,t)<nt}function Cr(e,t){if(!st(e.status))return{score:g,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:g,reasons:[]};if(lt(e,t.now))return{score:g,reasons:[]};if(it(e,t))return{score:g,reasons:[]};let n=0;const r=[],i=e.priority??"normal";E[i]>0&&(n+=E[i],r.push(`priority:${i}`)),Ze(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const a=k(e,t.now);if(a>0){const s=Math.min(a*2,30);n+=s,a>=1&&r.push(`waiting:${Math.round(a)}h`)}const o=e.lastActivityPreview;return o?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),o?.direction==="outbound"&&ot(o.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),ze(e.remoteParty?.resource,e.lastActivityPreview?.snippet)&&(n-=et,r.push("bulk")),{score:n,reasons:r}}const wr=e=>!!e.assignedUserId||!!e.assignedInboxId,Nr=e=>e.status==="closed",kr=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,vr=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function Dr(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function Lr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)??(n?r.find(i=>i.locale===n):void 0)??{locale:t}}const V=[{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 ut(e){const t=(e??"").toLowerCase();return V.find(n=>n.code===t)??V.find(n=>n.code===t.split("-")[0])}function Pr(e){return ut(e)?.label??e}function xr(e){const t=ut(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const ee=3;function dt(e,t){const n=new Set;let r=1,i=t.get(e)?.parentId;for(;i;){if(n.has(i)||(n.add(i),r++,r>ee+1))return 1/0;i=t.get(i)?.parentId}return r}function Ur(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(o=>[o.id,o]));if(!r.has(e)||t&&pt(e,t,r))return!1;const i=dt(e,r),a=t?te(t,n):1;return i+a<=ee}function pt(e,t,n){const r=new Set;let i=n.get(e)?.parentId;for(;i;){if(i===t)return!0;if(r.has(i))return!1;r.add(i),i=n.get(i)?.parentId}return!1}function te(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(i=>i.parentId===e);return r.length?1+Math.max(...r.map(i=>te(i.id,t,n))):1}const ft="en";function mt(e){return e.defaultLocale||e.locale||ft}function $r(e){const t=new Set,n=[];for(const r of[mt(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Kr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)?.name??(n?r.find(i=>i.locale===n)?.name:void 0)??e.name}const j=["lookup","condition","parallel","for-each"];function Y(e){for(const t of e){if(!j.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${j.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Y(n);if(r)return r}if(t.type==="for-each"){const n=Y(t.body??[]);if(n)return n}}return null}function Br(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 Gr(e,t){return e.filter(n=>n.enabled&&Br(n.ownerScope,t))}function Fr(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Hr(e){return`mcp__${e}__`}const Wr=1e3,Vr=2e3,jr=500,Yr=12e3,Xr=4e3,gt=["contact","company","work_item"];function zr(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return gt.includes(t)}const qr="onboarding-source",Jr=["support","billing","availability","sales","onboarding"],Zr=["keep","replace"];function ht(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Qr(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 r=t.slice(0,n),i=t.slice(n+1).trim();if(i){if(r==="user")return{kind:"user",userId:i};if(r==="team")return{kind:"team",teamId:i}}}function At(e){return ht(e)}function Et(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"}}}const St=Et;function ei(e){return e.agentId?{kind:"user",userId:e.agentId}:St(e.ownerScope)}function ti(e){return At(e)}function ni(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function ri(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function ii(e,t){if(t)return e.targets.find(n=>n.id===t)}function yt(e){return e?.kind==="assignment"}function ai(e){const{trigger:t,agentId:n,target:r,activityType:i,assigneeUserId:a,authorUserId:o}=e;return yt(t)?n?r?r.activityTypes.includes(i)?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 ${r.assigneePath}`:`activity type ${i} does not announce an assignment for ${r.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 oi(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const si=[{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:"itemId",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:"toCategory",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],ci={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 _t(e){return`${e.type}:${e.id}`}const Tt="interaction";function It(e){return e?.type===Tt?e.id:void 0}const bt=64,Mt=8e3;function li(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),bt),Mt)}const ui={kind:"workflow",steps:[]};function di(e){return e?.kind==="workflow"?e.steps:[]}function pi(e){return e?.kind==="procedure"?e.procedure:void 0}function Ot(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Rt=10,Ct=.9;function fi(e){const{total:t,rate:n}=Ot(e);return t>=Rt&&n>=Ct}const wt=["done","escalated","failed","stopped"];function mi(e){return wt.includes(e)}function Nt(e){return e==="waiting"}function gi(e){return e==="running"||Nt(e)}function ne(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function hi(e){const t=ne(e);return t?_t(t):void 0}function Ai(e){return It(ne(e))}function Ei(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Si(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function yi(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function _i(e){const t=Math.max(0,Math.floor(e)),n=a=>String(a).padStart(2,"0"),r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function kt(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ti(e,t){const n=kt(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function Ii(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function bi(e){return e.filter(t=>!t.archived).sort(vt)}function vt(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Dt=20,Lt=20,R=300;function h(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Pt(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=R)return t;const n=t.slice(0,R),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>R*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function Mi(e,t){const n=Pt(t.text),r=h(n);if(!r||(e.examples??[]).some(o=>h(o)===r))return null;const i=e.exampleCandidates??[],a=i.findIndex(o=>h(o.text)===r);if(a>=0){if(i[a].corrected||!t.corrected)return null;const o=[...i];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},Ee(o)}return Ee([{...t,text:n},...i]).slice(0,Lt)}function Ee(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Oi(e,t){const n=h(t),r=(e.examples??[]).filter(a=>a.trim());return{examples:r.some(a=>h(a)===n)?r:[...r,t].slice(-Dt),exampleCandidates:xt(e,t)}}function xt(e,t){const n=h(t);return(e.exampleCandidates??[]).filter(r=>h(r.text)!==n)}function Ut(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Ri(e,t){return e.filter(n=>Ut(n,t))}function Ci(e){return e.type==="agent"}const wi="WORK_COMMENT_ADDED",Ni="WORK_ITEM_ASSIGNED",ki="WORK_ITEM_STATUS_CHANGED";function vi(e,t){const n=r=>{const i=new Date(r);return i.setHours(0,0,0,0),i.getTime()};return Math.round((n(e)-n(t))/Xe)}function Di(e,t){if(e.closedAt!=null)return{score:g,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:g,reasons:[]};let r=0;const i=[],a=e.priority??"normal";if(E[a]>0&&(r+=E[a],i.push(`priority:${a}`)),typeof e.dueDate=="number"){const o=vi(e.dueDate,t.now);o<0?(r+=35,i.push("overdue")):o===0&&(r+=20,i.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,i.push(`auto:${e.source.systemReason}`)),{score:r,reasons:i}}const $t="work_item",Kt="work_project";function Bt(e){return`${$t}:${e}`}function re(e){return`${Kt}:${e}`}function Li(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Pi(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 xi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Ui(e,t=25){const n=new Set([Bt(e.id)]);e.projectId&&n.add(re(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function $i(e){return[re(e.id)]}const v=[{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},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],ie=v.map(e=>e.key);function Gt(e){return e?.statuses?.length?e.statuses:v}function Ft(e,t){return t.find(n=>n.key===e)?.category??"todo"}function Ki(e,t){return t.find(n=>n.key===e)}function Bi(e){const t=Gt(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Ht(t)[0]?.key??v[0].key}function Ht(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Gi(e,t){return Ft(e,t)==="done"}function Wt(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Fi(e,t){const n=Wt(e)||"status",r=new Set([...t,...ie]);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function Hi(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,i)=>{if(!r.key){t.push({index:i,reason:"missing_key"});return}ie.includes(r.key)&&t.push({index:i,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:i,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}const Wi=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Vi=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Vt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Wi.has(t)?"image":t==="application/pdf"?"pdf":Vi.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const A=1024*1024,jt={image:5*A,pdf:20*A,text:1*A,audio:20*A},ji=25*A,Yi=5;function Xi(e,t){const n=Vt(e);return n==="unsupported"?"unsupported":t>jt[n]?"too-large":null}function zi(e){return e.access!=="read"&&e.effect!=="internal"}function Yt(e){return`${e.kind}:${e.id||e.url||e.title}`}function qi(e,t=[]){const n=new Set(t),r=[],i=[];for(const a of e){const o=Yt(a);n.has(o)||(n.add(o),r.push(a),i.push(o))}return{sources:r,keys:i}}const Ji="assist-source",Zi=["blocking","due","open"];function Qi(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Se={blocking:0,due:1,open:2};function ea(e,t){return Se[e.band??"open"]-Se[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}function ta(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function na(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function ra(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Xt(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},i=t.intents.filter(o=>!n.has(o.intent)).map(o=>aa(o,r[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return i;const a=new Set(i.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(i.push(o),a.add(o.intent));return i}function zt(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const i=t?.[r.intent];n[r.intent]=i??r.defaultEnabled??!0}return n}function ia(e,t){const n=zt(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function aa(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function oa(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const i=t[r.providerId];if(i)for(const a of Xt(r,i))n.push({channel:r,description:i,capability:a})}return n}function sa(e,t){return t.filter(n=>n.capability.intent===e)}function qt(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function ca(e,t){return qt(e.scheme,t)}function la(e,t,n){const r=[];for(const i of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(i.scheme)&&r.push({channelIntent:a,endpoint:i});return r}var Jt=(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))(Jt||{});const ua={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 da(e){return e?ua[e]??"note":"note"}const pa="message_window",fa="message_templates",ma={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},ga=(e,t)=>({intent:e,...t}),ha="folder_management",Aa="remote_search",Ea={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},Sa="context.collect",ya="installation-id";function _a(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}const Ta="notification-source",Ia=(e,t)=>`${e}.pref.${t}`,ba={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","attribute.read","attribute.write","calendar.read","calendar.write","channel.read","channel.write","custom-field.read","custom-field.write","folder.read","folder.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write","topic.read","topic.write"],context:["kind.read","kind.write","memory.read","memory.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},ae=9e4,Zt=["out_of_office"],Qt=e=>Zt.includes(e);function Ma(e,t,n){const r=n-e<ae,i=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!i?.status)return{online:r,status:r?"available":"offline"};const a=i.status;return!r&&!Qt(a)?{online:!1,status:"offline"}:{online:r,status:a,message:i.message}}function Oa(e,t){const n=t-e.lastSeenAt<ae,r=n||Qt(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}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 Ca(e){return e.providerAvailable&&e.allowed}const wa="resources.describe",Na="resources.search",ka="resources.resolve",va="resources.attached";function Da(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const oe="auth";function se(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function La(e){const t=se(e);return t?t!==oe:typeof e=="string"&&e.startsWith("/wake")}function Pa(e){return typeof e!="string"||e===""||e==="/"?!0:se(e)===oe}function xa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function en(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${xa(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function tn(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),i={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),l=r[o];l&&(i[s]=l)}}),i}function nn(e){return e.publicBasePath??`/apps/${e.name}`}function Ua(e){const t=[];for(const n of e){if(!n?.name)continue;const r=nn(n);for(const i of n.routes??[]){if(!i.public)continue;const a=i.path==="/"?"":i.path;t.push({appName:n.name,resource:i.resource,pattern:`${r}${a}`,props:i.props})}}return t}function rn(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let i=0;i<Math.min(n.length,r.length);i++){const a=n[i].startsWith(":"),o=r[i].startsWith(":");if(a!==o)return o}return n.length>r.length}function an(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)en(r.pattern).test(e)&&(!n||rn(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...tn(n.pattern,e)}}:null}function $a(e,t){return an(e,t)!==null}const Ka="sync-source",Ba="sync-target",Ga=20,Fa={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]"]},on=e=>{let t=e;return Object.values(Fa).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},sn=6e4,cn=8e3,ln=2,un=.4,Ha=3,Wa=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 dn(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Ha||Wa.has(n)||t.add(n);return[...t]}function pn(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let i=0;for(const a of r)n.has(a)||(i+=1);return i/r.size}function fn(e,t=sn){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const i=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=i).map(o=>on(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const mn=60;function Va(e,t,n=mn){const r=new Set(e),i=[...e];for(const a of t)!a||r.has(a)||(r.add(a),i.push(a));return i.slice(-n)}function ja(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<cn)return{trigger:!1,reason:"too_soon"};const i=fn(t,e.windowMs);if(!i.text)return{trigger:!1,reason:"no_speech"};const a=i.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&a<ln)return{trigger:!1,reason:"too_few_new"};const o=dn(i.text);return o.length?r.lastQueryTerms?.length&&pn(o,r.lastQueryTerms)<un?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:i.text,terms:o,segmentCount:i.segmentCount}:{trigger:!1,reason:"no_speech"}}const Ya=["personal","workspace","connections","work","ai"],Xa="navNotice",D={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}},gn="NL",za=15,qa=8,Ja=Array.from(new Set(Object.values(D).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function ye(e){if(e)return D[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function _e(e){if(e.length>za)return null;for(const t of Ja){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(D)){if(r.callingCode!==t)continue;const i=r.trunkPrefix,a=i&&n.startsWith(i)?n.slice(i.length):n;if(C(a,r))return`+${t}${a}`}return null}return e.length<qa?null:`+${e}`}function Za(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function Qa(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 X(e,t){if(!e)return null;const n=Za(e);if(!n)return null;const r=n.startsWith("+"),i=n.replace(/\D/g,"");if(!i)return null;if(r)return _e(i);if(i.startsWith("00"))return _e(i.slice(2));const a=ye(t)??ye(gn);if(!a)return null;const o=a.trunkPrefix;if(o&&i.startsWith(o)){const s=i.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(i.startsWith(a.callingCode)){const s=i.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(i,a)?`+${a.callingCode}${i}`:null}function eo(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ce(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],i=t.slice(n+1);return!r||!i.includes(".")?null:`${r}@${i}`}function to(e){const t=ce(e);return t?t.slice(t.lastIndexOf("@")+1):null}const no=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function hn(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 no.has(n)&&t.length>=3?t.slice(-3).join("."):n}const An=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 ro(e){const t=hn(e);return t?An.has(t):!1}function io(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function ao(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const a=X(t,n);return a?`tel:${a}`:null}if(r==="fax"){const a=X(t,n);return a?`fax:${a}`:null}if(r==="mailto"||r==="email"){const a=ce(t);return a?`mailto:${a}`:null}const i=t.trim().toLowerCase();return i?`${r}:${i}`:null}const oo=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,so=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function co(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(
|
|
10
|
-
`);for(let n=0;n<t.length;n++)if(
|
|
9
|
+
`),t=t.replace(oo,"$2"),t=t.replace(so,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const lo=[/<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],Te=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,uo=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function po(e){const t=e.split(`
|
|
10
|
+
`);for(let n=0;n<t.length;n++)if(uo.test(t[n])||Te.test(t[n])&&t.slice(n+1,n+4).some(r=>Te.test(r)))return t.slice(0,n).join(`
|
|
11
11
|
`).trim();return e}function Ie(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
|
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
`),t=t.replace(/<\/(td|th)>/gi," "),t=t.replace(/<[^>]+>/g,""),t=t.replace(/<[^>]*$/,""),t}function be(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function Me(e){return e.replace(/ /gi," ").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>be(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>be(parseInt(n,16))??t).replace(/&/gi,"&")}function Oe(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
16
16
|
`).replace(/\n{3,}/g,`
|
|
17
17
|
|
|
18
|
-
`).trim()}const En=/<\s*(html|body|div|p|table|br|span)\b/i;function
|
|
18
|
+
`).trim()}const En=/<\s*(html|body|div|p|table|br|span)\b/i;function fo(e){return En.test(e)}function mo(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const a of lo){const o=e.search(a);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let r=Oe(Me(Ie(n)));return r||(r=Oe(Me(Ie(e)))),po(r)||r}exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=jt;exports.AI_ATTACHMENT_MAX_PER_TURN=Yi;exports.AI_ATTACHMENT_TURN_BUDGET=ji;exports.AI_VENDORS=q;exports.ALLOWED_LINK_SCHEMES=Be;exports.APP_PERMISSIONS=ba;exports.ARTIFACT_MAX_BLOCKS=B;exports.ARTIFACT_MAX_BODY_BYTES=Zn;exports.ARTIFACT_MAX_CELL_LEN=O;exports.ARTIFACT_MAX_KPI_ITEMS=W;exports.ARTIFACT_MAX_LIST_ITEMS=G;exports.ARTIFACT_MAX_TABLE_COLUMNS=H;exports.ARTIFACT_MAX_TABLE_ROWS=F;exports.ARTIFACT_MAX_TEXT_LEN=J;exports.ASSIGNMENT_SCOPE_KIND=We;exports.ASSIST_BANDS=Zi;exports.ASSIST_SOURCE_PROVIDER_GROUP=Ji;exports.ATTENTION_STATUSES=Qe;exports.AUTH_APP_NAME=oe;exports.AUTO_READY_MIN_PROPOSALS=Rt;exports.AUTO_READY_RATE=Ct;exports.ActivityTypeRegistry=ke;exports.BUILT_IN_ONLY=Pn;exports.BULK_PENALTY=et;exports.CADENCE_FLOOR_MS=cn;exports.CADENCE_MIN_NEW_SEGMENTS=ln;exports.CADENCE_MIN_NOVELTY=un;exports.CADENCE_WINDOW_MS=sn;exports.CLASSIFY_VARS=ci;exports.CONTEXT_COLLECT_SERVICE=Sa;exports.CORE_DIMENSIONS=Yn;exports.CommunicationScheme=Jt;exports.DAY_MS=Xe;exports.DEFAULT_MEMORY_BUDGET=Xr;exports.DEFAULT_PHONE_REGION=gn;exports.EMPTY_WORKFLOW=ui;exports.FEATURE_FOLDER_MANAGEMENT=ha;exports.FEATURE_REMOTE_SEARCH=Aa;exports.FOLLOW_UP_HOURS=nt;exports.HOUR_MS=Ye;exports.HTML_BODY_RE=En;exports.INELIGIBLE=g;exports.INSTALLATION_HEADER=ya;exports.INTERACTION_KIND=Tt;exports.InteractionParticipantRole=ma;exports.KB_FALLBACK_LOCALE=ft;exports.KB_LOCALES=V;exports.LOOSE_STATUSES=v;exports.MAX_ACTIONS=M;exports.MAX_ASSIGNMENT_TURNS=Ve;exports.MAX_BLOCKS=$;exports.MAX_COLLECTION_DEPTH=ee;exports.MAX_FIELDS=I;exports.MAX_LIST_ITEMS=b;exports.MAX_MEMORY_BROWSE=Wr;exports.MAX_MEMORY_BUDGET=Yr;exports.MAX_MEMORY_CHARS=Vr;exports.MAX_SHOWN_KEYS=mn;exports.MAX_TOPIC_CANDIDATES=Lt;exports.MAX_TOPIC_EXAMPLES=Dt;exports.MAX_TOPIC_EXAMPLE_CHARS=R;exports.MIN_MEMORY_BUDGET=jr;exports.NAV_NOTICE_SLOT=Xa;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Ta;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=qr;exports.PHONE_REGIONS=D;exports.PRESENCE_ONLINE_WINDOW_MS=ae;exports.PRESENCE_SURVIVES_OFFLINE=Zt;exports.PROFILE_TOOL_DISPOSITIONS=Zr;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=fa;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=pa;exports.PUBLIC_EMAIL_DOMAINS=An;exports.READ_STEP_TYPES=j;exports.RELATED_SUBJECT_KINDS=gt;exports.RESERVED_STATUS_KEYS=ie;exports.RESOURCE_ATTACHED_SERVICE=va;exports.RESOURCE_DESCRIBE_SERVICE=wa;exports.RESOURCE_RESOLVE_SERVICE=ka;exports.RESOURCE_SEARCH_SERVICE=Na;exports.SETTINGS_CATEGORIES=Ya;exports.SIGNATURE_INTENTS=Er;exports.SLA_HOURS_BY_PRIORITY=tt;exports.STEP_MAX_TOKENS_MAX=Mt;exports.STEP_MAX_TOKENS_MIN=bt;exports.SUMMARY_MIN_LAST_CHARS=Je;exports.SUMMARY_MIN_MESSAGES=qe;exports.SYNC_RUN_MAX_ERRORS=Ga;exports.SYNC_SOURCE_PROVIDER_GROUP=Ka;exports.SYNC_TARGET_PROVIDER_GROUP=Ba;exports.TERMINAL_ASSIGNMENT_STATUSES=He;exports.TERMINAL_RUN_STATUSES=wt;exports.TRIGGER_VARS=si;exports.UNSUPPORTED=Ea;exports.USAGE_DIMENSIONS=xe;exports.USAGE_DIMENSION_IDS=Ue;exports.WORK_AREAS=Jr;exports.WORK_COMMENT_ADDED=wi;exports.WORK_ITEM_ASSIGNED=Ni;exports.WORK_ITEM_SCOPE_KIND=$t;exports.WORK_ITEM_STATUS_CHANGED=ki;exports.WORK_PROJECT_SCOPE_KIND=Kt;exports.W_PRIORITY=E;exports.acceptExampleCandidate=Oi;exports.actingIdentityKey=At;exports.activeWorkTypes=bi;exports.activityIconOf=Tn;exports.activityJoinUrl=kn;exports.activitySnippet=we;exports.activityTextParams=Ne;exports.activityTimelineText=Nn;exports.activityTimestamp=ve;exports.activityTypeInfo=c;exports.actorKey=ti;exports.addExampleCandidate=Mi;exports.agePresenceEntry=Oa;exports.aiAttachmentKind=Vt;exports.aiAttachmentRejection=Xi;exports.aiBudgetLimit=K;exports.aiBudgetPeriodKey=Vn;exports.aiBudgetPeriodStart=De;exports.aiBudgetState=Wn;exports.aiVendorAcceptsAttachment=Hn;exports.aiVendorDefaultModel=Bn;exports.aiVendorLabel=Kn;exports.aiVendorNeedsBaseUrl=Fn;exports.aiVendorsWith=Gn;exports.appNameFromPath=se;exports.applyRounding=Si;exports.applySignature=Sr;exports.approvalRate=Ot;exports.artifactBodyBytes=or;exports.artifactOutline=sr;exports.artifactToMarkdown=lr;exports.assignmentMismatch=ai;exports.assignmentScopeKey=mr;exports.assignmentSubject=hr;exports.buildActivityPreview=Dn;exports.buildChannelIntents=oa;exports.buildShareKeys=ur;exports.buildWindow=fn;exports.canNestUnder=Ur;exports.carriesText=On;exports.categoryLabel=Kr;exports.categoryOf=Ft;exports.channelKindForScheme=da;exports.channelKindOf=In;exports.clampStepMaxTokens=li;exports.cleanMessageText=mo;exports.compareAssistRank=ea;exports.compareWorkTypes=vt;exports.decideAssignmentState=Ar;exports.decideCadence=ja;exports.decideIncomingCall=ra;exports.defaultLocaleOf=mt;exports.defaultStatusKey=Bi;exports.defineIntent=ga;exports.depthOf=dt;exports.derivePresence=Ma;exports.disabledIntentsFromCapabilities=ia;exports.elapsedSeconds=Ei;exports.emailDomain=to;exports.endpointKey=ao;exports.extractParams=tn;exports.extractTerms=dn;exports.filterByEndpoint=ca;exports.filterByIntent=sa;exports.filterByTargetScheme=qt;exports.findAiVendor=S;exports.flattenLocales=_a;exports.floorToPeriod=Pe;exports.formatActingIdentity=ht;exports.formatClock=_i;exports.formatHm=yi;exports.formatItemKey=Li;exports.formatPeriod=Le;exports.freshSources=qi;exports.getActivitySeenUserIds=xn;exports.getContactEndpoints=yr;exports.getShortTitle=vr;exports.getUrgencyScore=kr;exports.heightOf=te;exports.helpCenterText=Lr;exports.humanizeAction=oi;exports.interactionIdOf=It;exports.isAgentUser=Ci;exports.isAssigned=wr;exports.isAssignmentTerminal=fr;exports.isAssignmentTrigger=yt;exports.isAutoReady=fi;exports.isAwaitingThem=lt;exports.isChatMessageActivity=$n;exports.isClosed=Nr;exports.isConnectedType=Cn;exports.isDeepLink=La;exports.isDescendant=pt;exports.isEligible=_r;exports.isEmailActivity=Un;exports.isHtmlBody=fo;exports.isInFlight=gi;exports.isInteractionUnseen=Ze;exports.isLandingPath=Pa;exports.isLikelyBulk=ze;exports.isMessageShape=z;exports.isMessageType=bn;exports.isMoreSpecificPattern=rn;exports.isOutwardTool=zi;exports.isParked=it;exports.isPaused=Nt;exports.isPlaybookAuthoredType=Rn;exports.isPublicEmailDomain=ro;exports.isPublicPath=$a;exports.isReminderActive=at;exports.isReplyableType=Mn;exports.isSlaAtRisk=Rr;exports.isTerminal=mi;exports.isThreadLongEnough=Mr;exports.isTranscriptType=wn;exports.isWorkClosed=Gi;exports.isWorkTypeVisible=Ii;exports.itemDossierKeys=Ui;exports.ladderFor=Gt;exports.linkLabel=Dr;exports.listeningAllowed=jn;exports.localeInstruction=xr;exports.localeName=Pr;exports.localesOf=$r;exports.looksLikeEmail=Qa;exports.matchContactToIntents=la;exports.matchPublicRoute=an;exports.mcpCredentialScope=Fr;exports.mcpToolPrefix=Hr;exports.mergeShownKeys=Va;exports.messageCountsAs=Ce;exports.needsPhoneRegion=io;exports.normalizeArtifactBlocks=ar;exports.normalizeBlocks=_n;exports.normalizeEmail=ce;exports.normalizeExample=h;exports.notificationPrefKey=Ia;exports.novelty=pn;exports.parkMarksById=Tr;exports.parseActingIdentity=Qr;exports.parseItemKey=Pi;exports.pathToRegex=en;exports.periodsInRange=qn;exports.phoneSuffix=eo;exports.plainTextFromMarkdown=co;exports.playbookActor=St;exports.procedureOf=pi;exports.projectDossierKeys=$i;exports.publicBasePathFor=nn;exports.publicRoutePatterns=Ua;exports.readPath=w;exports.readStepError=Y;exports.recencyOf=rt;exports.refKey=_t;exports.registrableDomain=hn;exports.rejectExampleCandidate=xt;exports.relatedByDefault=zr;exports.resolveAccountCapabilities=zt;exports.resolveActivityText=N;exports.resolveChannelIntents=Xt;exports.resolveSignature=je;exports.resolveWorkMode=Ra;exports.resourceKindOf=Da;exports.runActor=ei;exports.runInteractionId=Ai;exports.sanitizeInline=Fe;exports.sanitizeTranscript=on;exports.scoreInteraction=Cr;exports.scoreWorkItem=Di;exports.selectLenses=Gr;exports.sessionsHoldCannotReach=na;exports.sessionsToHold=ta;exports.shareKeyForTeam=Q;exports.shareKeyForUser=Z;exports.shareKeysForViewer=dr;exports.shouldRunAudioPipeline=Ca;exports.slaHoursByInbox=Or;exports.slaHoursFor=ct;exports.sortStatuses=Ht;exports.sourceKey=Yt;exports.statusIn=Ki;exports.stepsOf=di;exports.stripHtml=Re;exports.subjectKeyOf=hi;exports.subjectOf=ne;exports.subjectRef=Qi;exports.suggestProjectKey=xi;exports.targetById=ii;exports.targetForActivityType=ri;exports.toActingIdentity=Et;exports.toE164=X;exports.toolSourceKinds=pr;exports.topicOfferedForTeam=Ut;exports.topicsForTeam=Ri;exports.truncateExample=Pt;exports.uniqueWorkStatusKey=Fi;exports.uniqueWorkTypeKey=Ti;exports.usageMetricId=$e;exports.usageMetrics=Jn;exports.validateStatuses=Hi;exports.valueAtPath=ni;exports.waitHoursOf=k;exports.wakesAssignment=gr;exports.workItemScopeKey=Bt;exports.workProjectScopeKey=re;exports.workStatusKey=Wt;exports.workTypeKey=kt;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const qn = 10, Jn = 10, Zn = 10, Qn = 5,
|
|
1
|
+
const qn = 10, Jn = 10, Zn = 10, Qn = 5, Ne = /* @__PURE__ */ new Set([
|
|
2
2
|
"header",
|
|
3
3
|
"section",
|
|
4
4
|
"context",
|
|
@@ -25,7 +25,7 @@ function er(e, t = () => {
|
|
|
25
25
|
}
|
|
26
26
|
if (!r || typeof r != "object") continue;
|
|
27
27
|
const i = r;
|
|
28
|
-
if (!
|
|
28
|
+
if (!Ne.has(i.type)) {
|
|
29
29
|
t(`unknown block type ${String(i.type)}`);
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
@@ -69,7 +69,7 @@ function er(e, t = () => {
|
|
|
69
69
|
}
|
|
70
70
|
return n;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
72
|
+
function ve(e) {
|
|
73
73
|
return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/\s+/g, " ").trim();
|
|
74
74
|
}
|
|
75
75
|
function b(e) {
|
|
@@ -439,7 +439,7 @@ const m = {
|
|
|
439
439
|
}
|
|
440
440
|
};
|
|
441
441
|
function P(e) {
|
|
442
|
-
const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() ||
|
|
442
|
+
const t = e.payload, n = t.bodyText?.trim() || t.bodySnippet?.trim() || ve(t.body ?? "");
|
|
443
443
|
return t.subject ? `${t.subject} — ${n}` : n;
|
|
444
444
|
}
|
|
445
445
|
function d(e) {
|
|
@@ -488,7 +488,7 @@ function ur(e) {
|
|
|
488
488
|
const t = d(e.type)?.joinUrl;
|
|
489
489
|
return t ? t(e) : void 0;
|
|
490
490
|
}
|
|
491
|
-
function
|
|
491
|
+
function N(e, t) {
|
|
492
492
|
let n = e;
|
|
493
493
|
for (const r of t.split(".")) {
|
|
494
494
|
if (n == null || typeof n != "object") return "";
|
|
@@ -496,14 +496,14 @@ function v(e, t) {
|
|
|
496
496
|
}
|
|
497
497
|
return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
|
|
498
498
|
}
|
|
499
|
-
function
|
|
499
|
+
function v(e, t, n) {
|
|
500
500
|
if (e === void 0) return null;
|
|
501
501
|
if (typeof e == "string") return e || null;
|
|
502
502
|
if ("value" in e)
|
|
503
|
-
return
|
|
503
|
+
return N(t, e.value) || null;
|
|
504
504
|
const r = {};
|
|
505
505
|
for (const [o, a] of Object.entries(e.params ?? {}))
|
|
506
|
-
r[o] =
|
|
506
|
+
r[o] = N(t, a);
|
|
507
507
|
const i = n(e.key, r);
|
|
508
508
|
return i === e.key ? null : i;
|
|
509
509
|
}
|
|
@@ -511,7 +511,7 @@ function xe(e, t) {
|
|
|
511
511
|
if (!e || typeof e == "string" || "value" in e) return null;
|
|
512
512
|
const n = {};
|
|
513
513
|
for (const [r, i] of Object.entries(e.params ?? {}))
|
|
514
|
-
n[r] =
|
|
514
|
+
n[r] = N(t, i);
|
|
515
515
|
return { key: e.key, params: n };
|
|
516
516
|
}
|
|
517
517
|
const U = 140;
|
|
@@ -520,7 +520,7 @@ function De(e) {
|
|
|
520
520
|
return t.length <= U ? t : `${t.slice(0, U - 1).trimEnd()}…`;
|
|
521
521
|
}
|
|
522
522
|
function dr(e, t) {
|
|
523
|
-
const n = xe(t?.text, e), r = t ?
|
|
523
|
+
const n = xe(t?.text, e), r = t ? v(t.text, e, (i) => i) : null;
|
|
524
524
|
return {
|
|
525
525
|
activityId: e.id,
|
|
526
526
|
type: e.type,
|
|
@@ -548,7 +548,7 @@ function K(e) {
|
|
|
548
548
|
displayNameKey: t.displayNameKey
|
|
549
549
|
};
|
|
550
550
|
}
|
|
551
|
-
function
|
|
551
|
+
function G(e) {
|
|
552
552
|
return {
|
|
553
553
|
type: e.type,
|
|
554
554
|
shape: e.shape,
|
|
@@ -573,11 +573,11 @@ class Pe {
|
|
|
573
573
|
get(t) {
|
|
574
574
|
if (t in m) return K(t);
|
|
575
575
|
const n = this.declared.get(t);
|
|
576
|
-
return n ?
|
|
576
|
+
return n ? G(n) : void 0;
|
|
577
577
|
}
|
|
578
578
|
/** Everything that may be offered as a trigger, built-in and declared. */
|
|
579
579
|
triggerable() {
|
|
580
|
-
const t = Object.keys(m).filter((r) => m[r].triggerable).map(K), n = [...this.declared.values()].map(
|
|
580
|
+
const t = Object.keys(m).filter((r) => m[r].triggerable).map(K), n = [...this.declared.values()].map(G).filter((r) => r.triggerable);
|
|
581
581
|
return [...t, ...n];
|
|
582
582
|
}
|
|
583
583
|
/**
|
|
@@ -589,14 +589,14 @@ class Pe {
|
|
|
589
589
|
const r = m[t.type];
|
|
590
590
|
if (r?.timeline) return r.timeline(t, n);
|
|
591
591
|
const i = this.declared.get(t.type);
|
|
592
|
-
return
|
|
592
|
+
return v(i?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
|
|
593
593
|
}
|
|
594
594
|
/** The line for the inbox list. Empty when the type has nothing to show. */
|
|
595
595
|
snippet(t) {
|
|
596
596
|
const n = m[t.type];
|
|
597
597
|
if (n?.snippet) return n.snippet(t);
|
|
598
598
|
const r = this.declared.get(t.type);
|
|
599
|
-
return
|
|
599
|
+
return v(r?.text, t, this.translate) ?? "";
|
|
600
600
|
}
|
|
601
601
|
/** The descriptor as it arrived; needed to store `text` as a key. */
|
|
602
602
|
descriptor(t) {
|
|
@@ -776,10 +776,10 @@ function Er(e, t) {
|
|
|
776
776
|
}
|
|
777
777
|
function Sr(e, t) {
|
|
778
778
|
if (!e.enabled) return "ok";
|
|
779
|
-
const n =
|
|
779
|
+
const n = j(e.hardLimitNanos), r = j(e.softLimitNanos);
|
|
780
780
|
return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
|
|
781
781
|
}
|
|
782
|
-
function
|
|
782
|
+
function j(e) {
|
|
783
783
|
return typeof e == "number" ? e : void 0;
|
|
784
784
|
}
|
|
785
785
|
function Ke(e, t = "month") {
|
|
@@ -806,19 +806,19 @@ const Ir = [
|
|
|
806
806
|
function k(e) {
|
|
807
807
|
return e < 10 ? `0${e}` : `${e}`;
|
|
808
808
|
}
|
|
809
|
-
function
|
|
809
|
+
function Ge(e, t) {
|
|
810
810
|
const n = new Date(e), r = `${n.getUTCFullYear()}-${k(n.getUTCMonth() + 1)}-${k(n.getUTCDate())}`;
|
|
811
811
|
return t === "day" ? r : `${r}T${k(n.getUTCHours())}`;
|
|
812
812
|
}
|
|
813
|
-
function
|
|
813
|
+
function je(e, t) {
|
|
814
814
|
const n = new Date(e);
|
|
815
815
|
return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
|
|
816
816
|
}
|
|
817
817
|
const Be = 36e5, He = 864e5;
|
|
818
818
|
function wr(e, t, n) {
|
|
819
819
|
const r = n === "hour" ? Be : He, i = [];
|
|
820
|
-
for (let o =
|
|
821
|
-
i.push(
|
|
820
|
+
for (let o = je(e, n); o <= t; o += r)
|
|
821
|
+
i.push(Ge(o, n));
|
|
822
822
|
return i;
|
|
823
823
|
}
|
|
824
824
|
const Fe = [
|
|
@@ -1067,7 +1067,7 @@ function Cr(e, t = () => {
|
|
|
1067
1067
|
function Or(e) {
|
|
1068
1068
|
return JSON.stringify(e).length;
|
|
1069
1069
|
}
|
|
1070
|
-
function
|
|
1070
|
+
function Nr(e) {
|
|
1071
1071
|
return {
|
|
1072
1072
|
blocks: e.length,
|
|
1073
1073
|
types: e.map((t) => t.type),
|
|
@@ -1119,7 +1119,7 @@ function tt(e) {
|
|
|
1119
1119
|
return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
|
|
1120
1120
|
}
|
|
1121
1121
|
}
|
|
1122
|
-
function
|
|
1122
|
+
function vr(e, t) {
|
|
1123
1123
|
const n = [], r = e.some((i) => i.type === "heading" && i.level === 1);
|
|
1124
1124
|
t && !r && n.push(`# ${t}`);
|
|
1125
1125
|
for (const i of e) {
|
|
@@ -1180,12 +1180,12 @@ function Kr(e, t, n = it) {
|
|
|
1180
1180
|
reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
|
|
1181
1181
|
};
|
|
1182
1182
|
}
|
|
1183
|
-
const
|
|
1183
|
+
const Gr = /* @__PURE__ */ new Set(["mail", "message"]);
|
|
1184
1184
|
function ot(e, t) {
|
|
1185
1185
|
const n = e.settings?.signatures?.[t];
|
|
1186
1186
|
return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
|
|
1187
1187
|
}
|
|
1188
|
-
function
|
|
1188
|
+
function jr(e, t, n, r = "html") {
|
|
1189
1189
|
if (!e) return n;
|
|
1190
1190
|
const i = ot(e, t);
|
|
1191
1191
|
return i ? `${n}${r === "text" ? `
|
|
@@ -1215,10 +1215,7 @@ function Vr(e, t) {
|
|
|
1215
1215
|
function ft(e, t) {
|
|
1216
1216
|
return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
|
|
1217
1217
|
}
|
|
1218
|
-
const mt = [
|
|
1219
|
-
"open",
|
|
1220
|
-
"pending"
|
|
1221
|
-
], gt = 1e3, ht = {
|
|
1218
|
+
const mt = ["open"], gt = 1e3, ht = {
|
|
1222
1219
|
urgent: 1,
|
|
1223
1220
|
high: 4,
|
|
1224
1221
|
normal: 8,
|
|
@@ -1423,10 +1420,10 @@ function Ai(e) {
|
|
|
1423
1420
|
if (r === "team") return { kind: "team", teamId: i };
|
|
1424
1421
|
}
|
|
1425
1422
|
}
|
|
1426
|
-
function
|
|
1423
|
+
function Nt(e) {
|
|
1427
1424
|
return Ot(e);
|
|
1428
1425
|
}
|
|
1429
|
-
function
|
|
1426
|
+
function vt(e) {
|
|
1430
1427
|
switch (e.kind) {
|
|
1431
1428
|
case "personal":
|
|
1432
1429
|
return { kind: "user", userId: e.userId };
|
|
@@ -1436,12 +1433,12 @@ function Nt(e) {
|
|
|
1436
1433
|
return { kind: "org" };
|
|
1437
1434
|
}
|
|
1438
1435
|
}
|
|
1439
|
-
const Rt =
|
|
1436
|
+
const Rt = vt;
|
|
1440
1437
|
function bi(e) {
|
|
1441
1438
|
return e.agentId ? { kind: "user", userId: e.agentId } : Rt(e.ownerScope);
|
|
1442
1439
|
}
|
|
1443
1440
|
function Ei(e) {
|
|
1444
|
-
return
|
|
1441
|
+
return Nt(e);
|
|
1445
1442
|
}
|
|
1446
1443
|
function Si(e, t) {
|
|
1447
1444
|
if (!t) return;
|
|
@@ -1531,20 +1528,20 @@ function Ci(e) {
|
|
|
1531
1528
|
return Math.min(Math.max(Math.round(t), Pt), Ut);
|
|
1532
1529
|
}
|
|
1533
1530
|
const Oi = { kind: "workflow", steps: [] };
|
|
1534
|
-
function
|
|
1531
|
+
function Ni(e) {
|
|
1535
1532
|
return e?.kind === "workflow" ? e.steps : [];
|
|
1536
1533
|
}
|
|
1537
|
-
function
|
|
1534
|
+
function vi(e) {
|
|
1538
1535
|
return e?.kind === "procedure" ? e.procedure : void 0;
|
|
1539
1536
|
}
|
|
1540
1537
|
function Kt(e) {
|
|
1541
1538
|
const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
|
|
1542
1539
|
return { total: n, rate: n ? t / n : 0 };
|
|
1543
1540
|
}
|
|
1544
|
-
const
|
|
1541
|
+
const Gt = 10, jt = 0.9;
|
|
1545
1542
|
function Ri(e) {
|
|
1546
1543
|
const { total: t, rate: n } = Kt(e);
|
|
1547
|
-
return t >=
|
|
1544
|
+
return t >= Gt && n >= jt;
|
|
1548
1545
|
}
|
|
1549
1546
|
const Bt = ["done", "escalated", "failed", "stopped"];
|
|
1550
1547
|
function $i(e) {
|
|
@@ -1580,14 +1577,14 @@ function Ki(e) {
|
|
|
1580
1577
|
const t = Math.max(0, Math.round(e / 60));
|
|
1581
1578
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
1582
1579
|
}
|
|
1583
|
-
function
|
|
1580
|
+
function Gi(e) {
|
|
1584
1581
|
const t = Math.max(0, Math.floor(e)), n = (o) => String(o).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
|
|
1585
1582
|
return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
|
|
1586
1583
|
}
|
|
1587
1584
|
function Ft(e) {
|
|
1588
1585
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
|
|
1589
1586
|
}
|
|
1590
|
-
function
|
|
1587
|
+
function ji(e, t) {
|
|
1591
1588
|
const n = Ft(e) || "werksoort", r = new Set(t);
|
|
1592
1589
|
if (!r.has(n)) return n;
|
|
1593
1590
|
for (let i = 2; i < 500; i++) {
|
|
@@ -1913,7 +1910,7 @@ const ko = "message_window", Co = "message_templates", Oo = {
|
|
|
1913
1910
|
// Voice/conference
|
|
1914
1911
|
HOST: "host",
|
|
1915
1912
|
PARTICIPANT: "participant"
|
|
1916
|
-
},
|
|
1913
|
+
}, No = (e, t) => ({ intent: e, ...t }), vo = "folder_management", Ro = "remote_search", $o = {
|
|
1917
1914
|
ok: !1,
|
|
1918
1915
|
code: "UNSUPPORTED",
|
|
1919
1916
|
message: "Provider does not support this op"
|
|
@@ -2059,13 +2056,13 @@ const Po = "notification-source", Uo = (e, t) => `${e}.pref.${t}`, Ko = {
|
|
|
2059
2056
|
user: ["user.read", "user.write"],
|
|
2060
2057
|
work: ["item.read", "item.write", "project.read", "project.write"]
|
|
2061
2058
|
}, Ie = 9e4, yn = ["out_of_office"], we = (e) => yn.includes(e);
|
|
2062
|
-
function
|
|
2059
|
+
function Go(e, t, n) {
|
|
2063
2060
|
const r = n - e < Ie, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
|
|
2064
2061
|
if (!i?.status) return { online: r, status: r ? "available" : "offline" };
|
|
2065
2062
|
const o = i.status;
|
|
2066
2063
|
return !r && !we(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
|
|
2067
2064
|
}
|
|
2068
|
-
function
|
|
2065
|
+
function jo(e, t) {
|
|
2069
2066
|
const n = t - e.lastSeenAt < Ie, r = n || we(e.status) ? e.status : "offline";
|
|
2070
2067
|
return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
|
|
2071
2068
|
}
|
|
@@ -2304,7 +2301,7 @@ const Qo = "sync-source", ea = "sync-target", ta = 20, In = {
|
|
|
2304
2301
|
t = t.replaceAll(r, "");
|
|
2305
2302
|
});
|
|
2306
2303
|
}), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
|
|
2307
|
-
}, Mn = 6e4, kn = 8e3, Cn = 2, On = 0.4,
|
|
2304
|
+
}, Mn = 6e4, kn = 8e3, Cn = 2, On = 0.4, Nn = 3, vn = /* @__PURE__ */ new Set([
|
|
2308
2305
|
"aan",
|
|
2309
2306
|
"als",
|
|
2310
2307
|
"ben",
|
|
@@ -2420,7 +2417,7 @@ const Qo = "sync-source", ea = "sync-target", ta = 20, In = {
|
|
|
2420
2417
|
function Rn(e) {
|
|
2421
2418
|
const t = /* @__PURE__ */ new Set();
|
|
2422
2419
|
for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
|
|
2423
|
-
n.length <
|
|
2420
|
+
n.length < Nn || vn.has(n) || t.add(n);
|
|
2424
2421
|
return [...t];
|
|
2425
2422
|
}
|
|
2426
2423
|
function $n(e, t) {
|
|
@@ -2456,7 +2453,13 @@ function ra(e) {
|
|
|
2456
2453
|
const a = Rn(i.text);
|
|
2457
2454
|
return a.length ? r.lastQueryTerms?.length && $n(a, r.lastQueryTerms) < On ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
|
|
2458
2455
|
}
|
|
2459
|
-
const ia =
|
|
2456
|
+
const ia = [
|
|
2457
|
+
"personal",
|
|
2458
|
+
"workspace",
|
|
2459
|
+
"connections",
|
|
2460
|
+
"work",
|
|
2461
|
+
"ai"
|
|
2462
|
+
], oa = "navNotice", x = {
|
|
2460
2463
|
// The lower bounds are deliberately generous: service ranges (0800/0900) are
|
|
2461
2464
|
// shorter than geographic numbers, and a too-strict minimum silently drops them.
|
|
2462
2465
|
// An over-permissive key is harmless — it simply matches nothing.
|
|
@@ -2503,14 +2506,14 @@ function ne(e) {
|
|
|
2503
2506
|
}
|
|
2504
2507
|
return e.length < Un ? null : `+${e}`;
|
|
2505
2508
|
}
|
|
2506
|
-
function
|
|
2509
|
+
function Gn(e) {
|
|
2507
2510
|
let t = e.trim();
|
|
2508
2511
|
const n = t.match(/^(sips?|tel|whatsapp):/i);
|
|
2509
2512
|
n && (t = t.slice(n[0].length));
|
|
2510
2513
|
const r = t.indexOf("@");
|
|
2511
2514
|
return r >= 0 && (t = t.slice(0, r)), t.trim();
|
|
2512
2515
|
}
|
|
2513
|
-
function
|
|
2516
|
+
function aa(e) {
|
|
2514
2517
|
if (!e) return !1;
|
|
2515
2518
|
const t = e.indexOf("@");
|
|
2516
2519
|
if (t <= 0) return !1;
|
|
@@ -2519,7 +2522,7 @@ function oa(e) {
|
|
|
2519
2522
|
}
|
|
2520
2523
|
function re(e, t) {
|
|
2521
2524
|
if (!e) return null;
|
|
2522
|
-
const n =
|
|
2525
|
+
const n = Gn(e);
|
|
2523
2526
|
if (!n) return null;
|
|
2524
2527
|
const r = n.startsWith("+"), i = n.replace(/\D/g, "");
|
|
2525
2528
|
if (!i) return null;
|
|
@@ -2538,7 +2541,7 @@ function re(e, t) {
|
|
|
2538
2541
|
}
|
|
2539
2542
|
return !a && S(i, o) ? `+${o.callingCode}${i}` : null;
|
|
2540
2543
|
}
|
|
2541
|
-
function
|
|
2544
|
+
function sa(e, t = 9) {
|
|
2542
2545
|
const n = (e ?? "").replace(/\D/g, "");
|
|
2543
2546
|
return n.length < t ? null : n.slice(-t);
|
|
2544
2547
|
}
|
|
@@ -2549,11 +2552,11 @@ function Ce(e) {
|
|
|
2549
2552
|
const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
|
|
2550
2553
|
return !r || !i.includes(".") ? null : `${r}@${i}`;
|
|
2551
2554
|
}
|
|
2552
|
-
function
|
|
2555
|
+
function ca(e) {
|
|
2553
2556
|
const t = Ce(e);
|
|
2554
2557
|
return t ? t.slice(t.lastIndexOf("@") + 1) : null;
|
|
2555
2558
|
}
|
|
2556
|
-
const
|
|
2559
|
+
const jn = /* @__PURE__ */ new Set([
|
|
2557
2560
|
"co.uk",
|
|
2558
2561
|
"org.uk",
|
|
2559
2562
|
"gov.uk",
|
|
@@ -2568,7 +2571,7 @@ function Bn(e) {
|
|
|
2568
2571
|
const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
|
|
2569
2572
|
if (t.length < 2) return null;
|
|
2570
2573
|
const n = t.slice(-2).join(".");
|
|
2571
|
-
return
|
|
2574
|
+
return jn.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
|
|
2572
2575
|
}
|
|
2573
2576
|
const Hn = /* @__PURE__ */ new Set([
|
|
2574
2577
|
"gmail.com",
|
|
@@ -2615,16 +2618,16 @@ const Hn = /* @__PURE__ */ new Set([
|
|
|
2615
2618
|
"proximus.be",
|
|
2616
2619
|
"scarlet.be"
|
|
2617
2620
|
]);
|
|
2618
|
-
function
|
|
2621
|
+
function la(e) {
|
|
2619
2622
|
const t = Bn(e);
|
|
2620
2623
|
return t ? Hn.has(t) : !1;
|
|
2621
2624
|
}
|
|
2622
|
-
function
|
|
2625
|
+
function ua(e) {
|
|
2623
2626
|
if (!e) return !1;
|
|
2624
2627
|
const t = e.trim().toLowerCase();
|
|
2625
2628
|
return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
|
|
2626
2629
|
}
|
|
2627
|
-
function
|
|
2630
|
+
function da(e, t, n) {
|
|
2628
2631
|
if (!e || !t) return null;
|
|
2629
2632
|
const r = e.trim().toLowerCase();
|
|
2630
2633
|
if (r === "tel" || r === "sms" || r === "whatsapp") {
|
|
@@ -2643,7 +2646,7 @@ function ua(e, t, n) {
|
|
|
2643
2646
|
return i ? `${r}:${i}` : null;
|
|
2644
2647
|
}
|
|
2645
2648
|
const Fn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, Vn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
|
|
2646
|
-
function
|
|
2649
|
+
function pa(e) {
|
|
2647
2650
|
if (typeof e != "string" || !e) return "";
|
|
2648
2651
|
let t = e;
|
|
2649
2652
|
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(`
|
|
@@ -2696,10 +2699,10 @@ function ce(e) {
|
|
|
2696
2699
|
`).trim();
|
|
2697
2700
|
}
|
|
2698
2701
|
const Yn = /<\s*(html|body|div|p|table|br|span)\b/i;
|
|
2699
|
-
function
|
|
2702
|
+
function fa(e) {
|
|
2700
2703
|
return Yn.test(e);
|
|
2701
2704
|
}
|
|
2702
|
-
function
|
|
2705
|
+
function ma(e) {
|
|
2703
2706
|
if (typeof e != "string" || !e) return "";
|
|
2704
2707
|
let t = e.length;
|
|
2705
2708
|
for (const o of Wn) {
|
|
@@ -2731,8 +2734,8 @@ export {
|
|
|
2731
2734
|
mo as ASSIST_SOURCE_PROVIDER_GROUP,
|
|
2732
2735
|
mt as ATTENTION_STATUSES,
|
|
2733
2736
|
Me as AUTH_APP_NAME,
|
|
2734
|
-
|
|
2735
|
-
|
|
2737
|
+
Gt as AUTO_READY_MIN_PROPOSALS,
|
|
2738
|
+
jt as AUTO_READY_RATE,
|
|
2736
2739
|
Pe as ActivityTypeRegistry,
|
|
2737
2740
|
pr as BUILT_IN_ONLY,
|
|
2738
2741
|
gt as BULK_PENALTY,
|
|
@@ -2748,7 +2751,7 @@ export {
|
|
|
2748
2751
|
fi as DEFAULT_MEMORY_BUDGET,
|
|
2749
2752
|
Ln as DEFAULT_PHONE_REGION,
|
|
2750
2753
|
Oi as EMPTY_WORKFLOW,
|
|
2751
|
-
|
|
2754
|
+
vo as FEATURE_FOLDER_MANAGEMENT,
|
|
2752
2755
|
Ro as FEATURE_REMOTE_SEARCH,
|
|
2753
2756
|
yt as FOLLOW_UP_HOURS,
|
|
2754
2757
|
at as HOUR_MS,
|
|
@@ -2774,7 +2777,7 @@ export {
|
|
|
2774
2777
|
Wt as MAX_TOPIC_EXAMPLES,
|
|
2775
2778
|
O as MAX_TOPIC_EXAMPLE_CHARS,
|
|
2776
2779
|
di as MIN_MEMORY_BUDGET,
|
|
2777
|
-
|
|
2780
|
+
oa as NAV_NOTICE_SLOT,
|
|
2778
2781
|
Po as NOTIFICATION_SOURCE_PROVIDER_GROUP,
|
|
2779
2782
|
gi as ONBOARDING_SOURCE_PROVIDER_GROUP,
|
|
2780
2783
|
x as PHONE_REGIONS,
|
|
@@ -2791,7 +2794,8 @@ export {
|
|
|
2791
2794
|
Fo as RESOURCE_DESCRIBE_SERVICE,
|
|
2792
2795
|
Wo as RESOURCE_RESOLVE_SERVICE,
|
|
2793
2796
|
Vo as RESOURCE_SEARCH_SERVICE,
|
|
2794
|
-
|
|
2797
|
+
ia as SETTINGS_CATEGORIES,
|
|
2798
|
+
Gr as SIGNATURE_INTENTS,
|
|
2795
2799
|
ht as SLA_HOURS_BY_PRIORITY,
|
|
2796
2800
|
Ut as STEP_MAX_TOKENS_MAX,
|
|
2797
2801
|
Pt as STEP_MAX_TOKENS_MIN,
|
|
@@ -2814,7 +2818,7 @@ export {
|
|
|
2814
2818
|
Qt as WORK_PROJECT_SCOPE_KIND,
|
|
2815
2819
|
_ as W_PRIORITY,
|
|
2816
2820
|
Vi as acceptExampleCandidate,
|
|
2817
|
-
|
|
2821
|
+
Nt as actingIdentityKey,
|
|
2818
2822
|
Hi as activeWorkTypes,
|
|
2819
2823
|
tr as activityIconOf,
|
|
2820
2824
|
ur as activityJoinUrl,
|
|
@@ -2825,10 +2829,10 @@ export {
|
|
|
2825
2829
|
d as activityTypeInfo,
|
|
2826
2830
|
Ei as actorKey,
|
|
2827
2831
|
Fi as addExampleCandidate,
|
|
2828
|
-
|
|
2832
|
+
jo as agePresenceEntry,
|
|
2829
2833
|
cn as aiAttachmentKind,
|
|
2830
2834
|
uo as aiAttachmentRejection,
|
|
2831
|
-
|
|
2835
|
+
j as aiBudgetLimit,
|
|
2832
2836
|
_r as aiBudgetPeriodKey,
|
|
2833
2837
|
Ke as aiBudgetPeriodStart,
|
|
2834
2838
|
Sr as aiBudgetState,
|
|
@@ -2839,11 +2843,11 @@ export {
|
|
|
2839
2843
|
Ar as aiVendorsWith,
|
|
2840
2844
|
ke as appNameFromPath,
|
|
2841
2845
|
Ui as applyRounding,
|
|
2842
|
-
|
|
2846
|
+
jr as applySignature,
|
|
2843
2847
|
Kt as approvalRate,
|
|
2844
2848
|
Or as artifactBodyBytes,
|
|
2845
|
-
|
|
2846
|
-
|
|
2849
|
+
Nr as artifactOutline,
|
|
2850
|
+
vr as artifactToMarkdown,
|
|
2847
2851
|
Ii as assignmentMismatch,
|
|
2848
2852
|
Lr as assignmentScopeKey,
|
|
2849
2853
|
Ur as assignmentSubject,
|
|
@@ -2858,7 +2862,7 @@ export {
|
|
|
2858
2862
|
Mo as channelKindForScheme,
|
|
2859
2863
|
nr as channelKindOf,
|
|
2860
2864
|
Ci as clampStepMaxTokens,
|
|
2861
|
-
|
|
2865
|
+
ma as cleanMessageText,
|
|
2862
2866
|
yo as compareAssistRank,
|
|
2863
2867
|
Vt as compareWorkTypes,
|
|
2864
2868
|
Kr as decideAssignmentState,
|
|
@@ -2866,13 +2870,13 @@ export {
|
|
|
2866
2870
|
Eo as decideIncomingCall,
|
|
2867
2871
|
Mt as defaultLocaleOf,
|
|
2868
2872
|
io as defaultStatusKey,
|
|
2869
|
-
|
|
2873
|
+
No as defineIntent,
|
|
2870
2874
|
Tt as depthOf,
|
|
2871
|
-
|
|
2875
|
+
Go as derivePresence,
|
|
2872
2876
|
So as disabledIntentsFromCapabilities,
|
|
2873
2877
|
Pi as elapsedSeconds,
|
|
2874
|
-
|
|
2875
|
-
|
|
2878
|
+
ca as emailDomain,
|
|
2879
|
+
da as endpointKey,
|
|
2876
2880
|
En as extractParams,
|
|
2877
2881
|
Rn as extractTerms,
|
|
2878
2882
|
Io as filterByEndpoint,
|
|
@@ -2880,12 +2884,12 @@ export {
|
|
|
2880
2884
|
mn as filterByTargetScheme,
|
|
2881
2885
|
T as findAiVendor,
|
|
2882
2886
|
Lo as flattenLocales,
|
|
2883
|
-
|
|
2887
|
+
je as floorToPeriod,
|
|
2884
2888
|
Ot as formatActingIdentity,
|
|
2885
|
-
|
|
2889
|
+
Gi as formatClock,
|
|
2886
2890
|
Ki as formatHm,
|
|
2887
2891
|
Zi as formatItemKey,
|
|
2888
|
-
|
|
2892
|
+
Ge as formatPeriod,
|
|
2889
2893
|
fo as freshSources,
|
|
2890
2894
|
fr as getActivitySeenUserIds,
|
|
2891
2895
|
Br as getContactEndpoints,
|
|
@@ -2908,7 +2912,7 @@ export {
|
|
|
2908
2912
|
It as isDescendant,
|
|
2909
2913
|
Hr as isEligible,
|
|
2910
2914
|
mr as isEmailActivity,
|
|
2911
|
-
|
|
2915
|
+
fa as isHtmlBody,
|
|
2912
2916
|
xi as isInFlight,
|
|
2913
2917
|
ft as isInteractionUnseen,
|
|
2914
2918
|
qo as isLandingPath,
|
|
@@ -2920,7 +2924,7 @@ export {
|
|
|
2920
2924
|
bt as isParked,
|
|
2921
2925
|
Ht as isPaused,
|
|
2922
2926
|
ar as isPlaybookAuthoredType,
|
|
2923
|
-
|
|
2927
|
+
la as isPublicEmailDomain,
|
|
2924
2928
|
Zo as isPublicPath,
|
|
2925
2929
|
Et as isReminderActive,
|
|
2926
2930
|
ir as isReplyableType,
|
|
@@ -2937,14 +2941,14 @@ export {
|
|
|
2937
2941
|
ni as localeInstruction,
|
|
2938
2942
|
ti as localeName,
|
|
2939
2943
|
ii as localesOf,
|
|
2940
|
-
|
|
2944
|
+
aa as looksLikeEmail,
|
|
2941
2945
|
wo as matchContactToIntents,
|
|
2942
2946
|
Tn as matchPublicRoute,
|
|
2943
2947
|
si as mcpCredentialScope,
|
|
2944
2948
|
ci as mcpToolPrefix,
|
|
2945
2949
|
na as mergeShownKeys,
|
|
2946
2950
|
Re as messageCountsAs,
|
|
2947
|
-
|
|
2951
|
+
ua as needsPhoneRegion,
|
|
2948
2952
|
Cr as normalizeArtifactBlocks,
|
|
2949
2953
|
er as normalizeBlocks,
|
|
2950
2954
|
Ce as normalizeEmail,
|
|
@@ -2956,14 +2960,14 @@ export {
|
|
|
2956
2960
|
Qi as parseItemKey,
|
|
2957
2961
|
bn as pathToRegex,
|
|
2958
2962
|
wr as periodsInRange,
|
|
2959
|
-
|
|
2960
|
-
|
|
2963
|
+
sa as phoneSuffix,
|
|
2964
|
+
pa as plainTextFromMarkdown,
|
|
2961
2965
|
Rt as playbookActor,
|
|
2962
|
-
|
|
2966
|
+
vi as procedureOf,
|
|
2963
2967
|
no as projectDossierKeys,
|
|
2964
2968
|
Sn as publicBasePathFor,
|
|
2965
2969
|
Jo as publicRoutePatterns,
|
|
2966
|
-
|
|
2970
|
+
N as readPath,
|
|
2967
2971
|
Z as readStepError,
|
|
2968
2972
|
At as recencyOf,
|
|
2969
2973
|
xt as refKey,
|
|
@@ -2971,7 +2975,7 @@ export {
|
|
|
2971
2975
|
Yt as rejectExampleCandidate,
|
|
2972
2976
|
mi as relatedByDefault,
|
|
2973
2977
|
pn as resolveAccountCapabilities,
|
|
2974
|
-
|
|
2978
|
+
v as resolveActivityText,
|
|
2975
2979
|
dn as resolveChannelIntents,
|
|
2976
2980
|
ot as resolveSignature,
|
|
2977
2981
|
Bo as resolveWorkMode,
|
|
@@ -2994,22 +2998,22 @@ export {
|
|
|
2994
2998
|
rn as sortStatuses,
|
|
2995
2999
|
un as sourceKey,
|
|
2996
3000
|
ro as statusIn,
|
|
2997
|
-
|
|
2998
|
-
|
|
3001
|
+
Ni as stepsOf,
|
|
3002
|
+
ve as stripHtml,
|
|
2999
3003
|
Di as subjectKeyOf,
|
|
3000
3004
|
Se as subjectOf,
|
|
3001
3005
|
ho as subjectRef,
|
|
3002
3006
|
eo as suggestProjectKey,
|
|
3003
3007
|
Ti as targetById,
|
|
3004
3008
|
_i as targetForActivityType,
|
|
3005
|
-
|
|
3009
|
+
vt as toActingIdentity,
|
|
3006
3010
|
re as toE164,
|
|
3007
3011
|
xr as toolSourceKinds,
|
|
3008
3012
|
qt as topicOfferedForTeam,
|
|
3009
3013
|
Wi as topicsForTeam,
|
|
3010
3014
|
Xt as truncateExample,
|
|
3011
3015
|
ao as uniqueWorkStatusKey,
|
|
3012
|
-
|
|
3016
|
+
ji as uniqueWorkTypeKey,
|
|
3013
3017
|
We as usageMetricId,
|
|
3014
3018
|
Mr as usageMetrics,
|
|
3015
3019
|
so as validateStatuses,
|
|
@@ -45,6 +45,8 @@ export interface AssistNudge extends AssistRanked {
|
|
|
45
45
|
snoozeAction?: string;
|
|
46
46
|
/** Where "done" posts, as an invoke action. Same rule as `snoozeAction`. */
|
|
47
47
|
resolveAction?: string;
|
|
48
|
+
/** Where "hand to a colleague" posts `{ userId }`, as an invoke action. Same rule. */
|
|
49
|
+
assignAction?: string;
|
|
48
50
|
/**
|
|
49
51
|
* Federated resource that draws this nudge's body in the queue, as `"<app>:<Component>"`.
|
|
50
52
|
* Handed {@link AssistCardProps}. Absent = the queue falls back to `text` plus a button to `url`.
|
|
@@ -37,6 +37,23 @@ export type ResourceDefinition<T = any> = T;
|
|
|
37
37
|
* It defines the app's identity, its components, its UI contributions,
|
|
38
38
|
* and most importantly, its security sandbox via the permissions block.
|
|
39
39
|
*/
|
|
40
|
+
/** The two groups of the app switcher: the product itself, and what extends it. */
|
|
41
|
+
export type AppSwitcherGroup = "core" | "apps";
|
|
42
|
+
/**
|
|
43
|
+
* Where an app sits in the shell's app switcher. Declaring this — not having an
|
|
44
|
+
* `icon` — is what puts an app in the switcher; settings-only and provider apps
|
|
45
|
+
* leave it out and stay reachable through settings, panels and docks.
|
|
46
|
+
*/
|
|
47
|
+
export interface AppSwitcherPlacement {
|
|
48
|
+
/** `core` is reserved for first-party product apps; everything else is `apps`. */
|
|
49
|
+
group: AppSwitcherGroup;
|
|
50
|
+
/** Position within `core` — a fixed reading order, not alphabetical. Ignored for `apps`. */
|
|
51
|
+
order?: number;
|
|
52
|
+
/** Also offer the app in the mobile tab bar. Core apps are there by default. */
|
|
53
|
+
mobile?: boolean;
|
|
54
|
+
/** Permissions the reader needs before the app is listed at all (`"<app>.<resource>.<action>"`). */
|
|
55
|
+
permissions?: string[];
|
|
56
|
+
}
|
|
40
57
|
export interface AppManifest<_TSDK = any> {
|
|
41
58
|
/**
|
|
42
59
|
* The namespace of the application.
|
|
@@ -63,9 +80,12 @@ export interface AppManifest<_TSDK = any> {
|
|
|
63
80
|
*/
|
|
64
81
|
description?: string;
|
|
65
82
|
/**
|
|
66
|
-
* Optional icon for the application.
|
|
83
|
+
* Optional icon for the application. Shown wherever the app is listed; on its own
|
|
84
|
+
* it does not place the app in the switcher — see `switcher`.
|
|
67
85
|
*/
|
|
68
86
|
icon?: IconDefinition;
|
|
87
|
+
/** Placement in the app switcher and the mobile tab bar. Absent = not listed. */
|
|
88
|
+
switcher?: AppSwitcherPlacement;
|
|
69
89
|
/**
|
|
70
90
|
* Optional default route for the application.
|
|
71
91
|
*/
|
package/dist/platform/menu.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export interface MenuItem {
|
|
|
12
12
|
group?: string;
|
|
13
13
|
/** The required capabilities of the menu item. */
|
|
14
14
|
requiredCapabilities?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Permissions (`"<app>.<resource>.<action>"`) the reader needs to see this item. All must hold.
|
|
17
|
+
* Absent = visible to everyone. Read `docs/ROLES.md` for the vocabulary.
|
|
18
|
+
*/
|
|
19
|
+
permissions?: string[];
|
|
15
20
|
}
|
|
16
21
|
export interface NamespacedMenuItem extends MenuItem {
|
|
17
22
|
/** The namespace of the menu item. */
|
package/dist/platform/ui.d.ts
CHANGED
|
@@ -72,6 +72,14 @@ export interface DockControls {
|
|
|
72
72
|
* Which settings-panel tab a page appears under. A page may belong to both.
|
|
73
73
|
*/
|
|
74
74
|
export type SettingsScope = "personal" | "company";
|
|
75
|
+
/**
|
|
76
|
+
* The heading a settings page sits under. The overlay groups on this, not on the
|
|
77
|
+
* app that registered the page, so a mailbox, a PBX and an MCP server all land
|
|
78
|
+
* under "connections" whichever app owns them.
|
|
79
|
+
*/
|
|
80
|
+
export type SettingsCategory = "personal" | "workspace" | "connections" | "work" | "ai";
|
|
81
|
+
/** Reading order of the categories in the settings nav. */
|
|
82
|
+
export declare const SETTINGS_CATEGORIES: readonly SettingsCategory[];
|
|
75
83
|
export interface SettingsPageConfig {
|
|
76
84
|
id: string;
|
|
77
85
|
displayName: string;
|
|
@@ -86,6 +94,12 @@ export interface SettingsPageConfig {
|
|
|
86
94
|
* the group itself.
|
|
87
95
|
*/
|
|
88
96
|
group?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Heading in the settings nav. Absent = `personal` for a personal-only page,
|
|
99
|
+
* otherwise `workspace`; declare it, the fallback is only there for apps
|
|
100
|
+
* that have not caught up.
|
|
101
|
+
*/
|
|
102
|
+
category?: SettingsCategory;
|
|
89
103
|
icon?: string;
|
|
90
104
|
resource: string;
|
|
91
105
|
order?: number;
|