@opencxh/domain 1.152.0 → 1.154.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,20 +42,28 @@ export interface AiBudget {
42
42
  updatedAt?: number;
43
43
  }
44
44
  export type AiBudgetPeriod = "month";
45
+ /** Fields an update may empty. See {@link AiBudgetInput.clear}. */
46
+ export type AiBudgetClearable = "softLimitNanos" | "hardLimitNanos";
45
47
  /**
46
48
  * What a client may send. The server owns everything not in here.
47
49
  *
48
- * The limits are `number | null` and the difference matters: **absent** means
49
- * "leave it alone", **null** means "there is no ceiling any more". Collapsing the
50
- * two would make a cleared field unclearable — the update would keep the old
51
- * amount and the form would look like it had saved.
50
+ * An absent limit means "leave it alone"; **removing** one goes through
51
+ * {@link AiBudgetInput.clear}.
52
+ *
53
+ * That indirection is not taste. The app SDK's `invoke` strips every `null` from
54
+ * the body along with `undefined` (`removeUndefined`, `app-sdk/src/modules/api.ts`),
55
+ * so a `null` never reaches the server and "there is no ceiling any more" has no
56
+ * value that can express it. A named list survives the transport and says out loud
57
+ * what an ambiguous sentinel (`0`? that is a real limit) never could.
52
58
  */
53
59
  export interface AiBudgetInput {
54
60
  scope?: OwnerScope;
55
- softLimitNanos?: number | null;
56
- hardLimitNanos?: number | null;
61
+ softLimitNanos?: number;
62
+ hardLimitNanos?: number;
57
63
  period?: AiBudgetPeriod;
58
64
  enabled?: boolean;
65
+ /** Limits to remove. Wins over a value for the same field. */
66
+ clear?: AiBudgetClearable[];
59
67
  }
60
68
  /**
61
69
  * A budget plus what has been spent against it — the only shape any screen wants.
@@ -34,6 +34,21 @@ export interface Guardrails {
34
34
  maxSteps?: number;
35
35
  maxToolCalls?: number;
36
36
  }
37
+ /**
38
+ * Grenzen voor `maxTokens` op een AI-stap. De bovengrens is dezelfde als die van
39
+ * `/generate`: geen enkele prompt hier heeft meer output nodig, en een op hol
40
+ * geslagen run mag er niet voor betalen. De ondergrens houdt een typfout ("5")
41
+ * tegen die elk antwoord halverwege een woord afkapt.
42
+ */
43
+ export declare const STEP_MAX_TOKENS_MIN = 64;
44
+ export declare const STEP_MAX_TOKENS_MAX = 8000;
45
+ /**
46
+ * `maxTokens` van een stap naar een bruikbare waarde, of `undefined` als er niets
47
+ * (bruikbaars) staat. Neemt ook strings aan, want de editor levert het veld als
48
+ * tekst op (`<input type="number">`) en een string in `max_tokens` is bij OpenAI
49
+ * en Anthropic een 400.
50
+ */
51
+ export declare function clampStepMaxTokens(value: unknown): number | undefined;
37
52
  export interface ConditionStep {
38
53
  type: "condition";
39
54
  /** JSONLogic expression evaluated against the run vars. */
@@ -81,6 +96,16 @@ export interface ClassifyStep {
81
96
  * eerdere `lookup` heeft opgehaald, zoals de berichten van het gesprek.
82
97
  */
83
98
  input?: string;
99
+ /**
100
+ * Plafond op de output van deze stap, per model-call. Leeg = het
101
+ * `providerConfig` van het account/profiel, en anders de vendor-default.
102
+ *
103
+ * Bewust naast `guardrails` en niet erin: `maxSteps`/`maxToolCalls` begrenzen de
104
+ * hele run, dit geldt per call. In dezelfde bak zou het lezen als "totaalbudget
105
+ * voor deze stap", en dat is het niet — een agent-loop van vijf turns mag vijf
106
+ * keer tot dit plafond komen.
107
+ */
108
+ maxTokens?: number;
84
109
  }
85
110
  export interface GenerateStep {
86
111
  type: "generate";
@@ -88,6 +113,8 @@ export interface GenerateStep {
88
113
  goal?: string;
89
114
  kind: "reply" | "compose" | "note";
90
115
  as?: string;
116
+ /** Plafond op de output van deze stap. Zie `ClassifyStep.maxTokens`. */
117
+ maxTokens?: number;
91
118
  }
92
119
  export interface AgentStep {
93
120
  type: "agent";
@@ -97,6 +124,8 @@ export interface AgentStep {
97
124
  toolsOverride?: string[];
98
125
  autonomy?: Autonomy;
99
126
  as?: string;
127
+ /** Plafond op de output **per turn** van de loop. Zie `ClassifyStep.maxTokens`. */
128
+ maxTokens?: number;
100
129
  }
101
130
  export interface WaitForReplyStep {
102
131
  type: "wait-for-reply";
package/dist/index.cjs CHANGED
@@ -1,18 +1,18 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=10,T=10,b=10,I=5,ct=new Set(["header","section","context","divider","image","list","actions","attachments"]);function x(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function ut(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const a of e){if(n.length>=D){t("more than "+D+" blocks; the rest was dropped");break}if(!a||typeof a!="object")continue;const i=a;if(!ct.has(i.type)){t("unknown block type "+String(i.type));continue}switch(i.type){case"header":if(!x(i.text)){t("a header without text");continue}break;case"context":if(!x(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>T&&(t("more than "+T+" fields in a section"),i.fields=i.fields.slice(0,T));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 r=Array.isArray(i.elements)?i.elements:[],o=r.filter(s=>s&&s.action_id&&s.invoke&&x(s.text));if(o.length!==r.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>I&&t("more than "+I+" actions"),i.elements=o.slice(0,I);break}}n.push(i)}return n}function ge(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function y(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function Q(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function v(e){return e?.split("@")?.[0]||e||""}function _(e){return e.map(t=>t.name).join(", ")}function Z(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 — ${v(e.payload.from)}`:`Outbound call started — ${v(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Q(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${v(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",snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:ee},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:ee},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=>`${_(e.payload.members)} toegevoegd`,timeline:e=>{const 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=>`${_(e.payload.members)} verlaten`,timeline:e=>{const 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=>`${Z(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:e=>`${Z(e.payload.callType)} ended${Q(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",snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${y(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`}};function ee(e){const t=e.payload,n=t.bodySnippet?.trim()||ge(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function p(e){return m[e]}function pt(e){return p(e)?.icon??"circle"}function dt(e){return p(e)?.channelKind}function ft(e){const t=p(e)?.shape;return t==="message"||t==="note"}function mt(e){return p(e)?.replyable===!0}function gt(e){return p(e)?.carriesText===!0}function ht(e){return p(e)?.countsAs}function At(e){return p(e)?.playbookAuthored===!0}function he(e){const t=p(e.type)?.snippet;return t?t(e):""}function Et(e,t){const n=p(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function yt(e){const t=p(e.type)?.joinUrl;return t?t(e):void 0}function N(e,t){let n=e;for(const a of t.split(".")){if(n==null||typeof n!="object")return"";n=n[a]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function L(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return N(t,e.value)||null;const a={};for(const[r,o]of Object.entries(e.params??{}))a[r]=N(t,o);const i=n(e.key,a);return i===e.key?null:i}function Ae(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[a,i]of Object.entries(e.params??{}))n[a]=N(t,i);return{key:e.key,params:n}}const _t=e=>e;function te(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 ne(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 Ee{constructor(t=[],n=_t){this.translate=n;for(const a of t)a?.type&&(a.type in m||this.declared.has(a.type)||this.declared.set(a.type,a))}declared=new Map;get(t){if(t in m)return te(t);const n=this.declared.get(t);return n?ne(n):void 0}triggerable(){const t=Object.keys(m).filter(a=>m[a].triggerable).map(te),n=[...this.declared.values()].map(ne).filter(a=>a.triggerable);return[...t,...n]}timelineText(t,n){const a=m[t.type];if(a?.timeline)return a.timeline(t,n);const i=this.declared.get(t.type);return L(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 a=this.declared.get(t.type);return L(a?.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}get translator(){return this.translate}}const Tt=new Ee,ie=140;function bt(e){const t=e.trim();return t.length<=ie?t:t.slice(0,ie-1).trimEnd()+"…"}function It(e,t){const n=Ae(t?.text,e),a=t?L(t.text,e,i=>i):null;return{activityId:e.id,type:e.type,snippet:bt(a??he(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}function St(e,t,n=[]){const a=e.createdAt;if(!a)return[];const i=new Set(n);return e.author.type==="user"&&e.author.id&&i.add(e.author.id),Object.entries(t).filter(([r,o])=>o>=a&&!i.has(r)).map(([r])=>r)}function Mt(e){return e.createdAt??0}const Ct=[{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 Nt(e){const t=[];for(const n of Object.keys(e))for(const a of Object.keys(e[n]))t.push({lang:n,key:a,value:e[n][a]});return t}function k(e){return e<10?`0${e}`:`${e}`}function ye(e,t){const n=new Date(e),a=`${n.getUTCFullYear()}-${k(n.getUTCMonth()+1)}-${k(n.getUTCDate())}`;return t==="day"?a:`${a}T${k(n.getUTCHours())}`}function _e(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Lt=36e5,Ot=864e5;function Rt(e,t,n){const a=n==="hour"?Lt:Ot,i=[];for(let r=_e(e,n);r<=t;r+=a)i.push(ye(r,n));return i}const Te=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],be=Te.map(e=>e.id);function Ie(e,t){return`${e}.usage.${t}`}function xt(e,t){return t.map(n=>({id:Ie(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...be,...n.extraDimensions??[],"time"]}))}const Se=new Set(["info","success","warning","destructive"]),P=200,$=100,U=200,w=12,K=4,H=4e3,S=500,vt=256*1024,kt=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Me=["http:","https:","mailto:","tel:"],Dt=/^[a-z][a-z0-9+.-]*:/i;function Ce(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Dt.exec(t)?.[0];return n?Me.includes(n.toLowerCase()):!t.startsWith("//")}const Pt=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function $t(e){let t="",n=0;for(;n<e.length;){const a=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!a){t+=e[n],n+=1;continue}const i=n+(a?2:1),r=ae(e,i,"[","]");if(r<0||e[r+1]!=="("){t+=e[n],n+=1;continue}const o=ae(e,r+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(i,r),l=e.slice(r+2,o).trim().split(/\s+/)[0]??"";t+=a||!Ce(l)?s:e.slice(n,o+1),n=o+1}return t}function ae(e,t,n,a){let i=1;for(let r=t;r<e.length;r+=1){if(e[r]==="\\"){r+=1;continue}if(e[r]===n)i+=1;else if(e[r]===a&&(i-=1,i===0))return r}return-1}function Ne(e){return $t(e).replace(Pt,(t,n,a)=>Ce(a)?t:"")}function u(e,t=H){return typeof e=="string"?Ne(e).slice(0,t):""}function Ut(e,t=H){return typeof e=="string"?e.slice(0,t):""}function wt(e,t="info"){return typeof e=="string"&&Se.has(e)?e:t}function Kt(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const a of e){if(n.length>=P){t("more than "+P+" blocks; the rest was dropped");break}if(!a||typeof a!="object")continue;const i=a;if(!kt.has(i.type)){t("unknown block type "+String(i.type));continue}const r=typeof i.block_id=="string"?{block_id:i.block_id}:{};switch(i.type){case"heading":{const o=u(i.text);if(!o){t("a heading without text");continue}const s=i.level===2||i.level===3?i.level:1;n.push({...r,type:"heading",level:s,text:o});break}case"paragraph":{const o=u(i.text);if(!o){t("a paragraph without text");continue}n.push({...r,type:"paragraph",text:o});break}case"quote":{const o=u(i.text);if(!o){t("a quote without text");continue}n.push({...r,type:"quote",text:o});break}case"code":{const o=Ut(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({...r,type:"code",...s,text:o});break}case"divider":n.push({...r,type:"divider"});break;case"list":{const o=Array.isArray(i.items)?i.items:[],s=[];for(const d of o){if(s.length>=$){t("more than "+$+" list items");break}const f=u(d?.text);if(!f)continue;const c=u(d?.lead,200);s.push(c?{lead:c,text:f}:{text:f})}if(s.length===0){t("a list without usable items");continue}const l=i.style==="numbered"?"numbered":"bulleted";n.push({...r,type:"list",style:l,items:s});break}case"table":{const o=Array.isArray(i.columns)?i.columns:[],s=[];for(const c of o){if(s.length>=w){t("more than "+w+" table columns");break}const E=u(c?.label,S),R=c?.align==="right"?"right":void 0;s.push(R?{label:E,align:R}:{label:E})}if(s.length===0){t("a table without columns");continue}const l=Array.isArray(i.rows)?i.rows:[],d=[];for(const c of l){if(d.length>=U){t("more than "+U+" table rows");break}const E=Array.isArray(c)?c:[];d.push(s.map((R,lt)=>u(E[lt],S)))}const f=u(i.caption,S);n.push({...r,type:"table",columns:s,rows:d,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(i.items)?i.items:[],s=[];for(const l of o){if(s.length>=K){t("more than "+K+" kpi items");break}const d=u(l?.value,40),f=u(l?.label,80);if(!d||!f)continue;const c=l?.tone;s.push(typeof c=="string"&&Se.has(c)?{value:d,label:f,tone:c}:{value:d,label:f})}if(s.length===0){t("a kpi block without usable items");continue}n.push({...r,type:"kpi",items:s});break}case"callout":{const o=u(i.text);if(!o){t("a callout without text");continue}const s=u(i.title,200);n.push({...r,type:"callout",tone:wt(i.tone),...s?{title:s}:{},text:o});break}}}return n}function Bt(e){return JSON.stringify(e).length}function Ft(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function re(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function oe(e,t,n){const a=e.map((i,r)=>n?.[r]==="right"?"---:":"---");return[`| ${e.map(re).join(" | ")} |`,`| ${a.join(" | ")} |`,...t.map(i=>`| ${i.map(re).join(" | ")} |`)]}function Gt(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 a=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${a} **${t.lead}** ${t.text}`:`${a} ${t.text}`});case"table":{const t=oe(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 oe(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 Ht(e,t){const n=[],a=e.some(i=>i.type==="heading"&&i.level===1);t&&!a&&n.push(`# ${t}`);for(const i of e){const r=Gt(i);r.length>0&&n.push(r.join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=10,T=10,b=10,S=5,mt=new Set(["header","section","context","divider","image","list","actions","attachments"]);function x(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 gt(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=P){t("more than "+P+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const a=i;if(!mt.has(a.type)){t("unknown block type "+String(a.type));continue}switch(a.type){case"header":if(!x(a.text)){t("a header without text");continue}break;case"context":if(!x(a.text)){t("a context block without text");continue}break;case"image":if(!a.url||!a.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(a.fields)&&a.fields.length>T&&(t("more than "+T+" fields in a section"),a.fields=a.fields.slice(0,T));break;case"list":if(!Array.isArray(a.items)||a.items.length===0){t("a list without items");continue}a.items.length>b&&(t("more than "+b+" list items"),a.items=a.items.slice(0,b));break;case"actions":{const r=Array.isArray(a.elements)?a.elements:[],o=r.filter(s=>s&&s.action_id&&s.invoke&&x(s.text));if(o.length!==r.length&&t("an action without action_id, invoke or text"),o.length===0)continue;o.length>S&&t("more than "+S+" actions"),a.elements=o.slice(0,S);break}}n.push(a)}return n}function he(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function _(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function Z(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function v(e){return e?.split("@")?.[0]||e||""}function y(e){return e.map(t=>t.name).join(", ")}function ee(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 — ${v(e.payload.from)}`:`Outbound call started — ${v(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",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${Z(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${v(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",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:te},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:te},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=>`${y(e.payload.members)} toegevoegd`,timeline:e=>{const t=y(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=>`${y(e.payload.members)} verlaten`,timeline:e=>{const t=y(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=>`${ee(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=>`${ee(e.payload.callType)} ended${Z(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",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}`}};function te(e){const t=e.payload,n=t.bodySnippet?.trim()||he(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function p(e){return m[e]}function ht(e){return p(e)?.icon??"circle"}function Et(e){return p(e)?.channelKind}function At(e){const t=p(e)?.shape;return t==="message"||t==="note"}function _t(e){return p(e)?.replyable===!0}function yt(e){return p(e)?.carriesText===!0}function Tt(e){return p(e)?.countsAs}function bt(e){return p(e)?.playbookAuthored===!0}function Ee(e){const t=p(e.type)?.snippet;return t?t(e):""}function St(e,t){const n=p(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function It(e){const t=p(e.type)?.joinUrl;return t?t(e):void 0}function N(e,t){let n=e;for(const i of t.split(".")){if(n==null||typeof n!="object")return"";n=n[i]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function O(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return N(t,e.value)||null;const i={};for(const[r,o]of Object.entries(e.params??{}))i[r]=N(t,o);const a=n(e.key,i);return a===e.key?null:a}function Ae(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[i,a]of Object.entries(e.params??{}))n[i]=N(t,a);return{key:e.key,params:n}}const Mt=e=>e;function ne(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 ie(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 _e{constructor(t=[],n=Mt){this.translate=n;for(const i of t)i?.type&&(i.type in m||this.declared.has(i.type)||this.declared.set(i.type,i))}declared=new Map;get(t){if(t in m)return ne(t);const n=this.declared.get(t);return n?ie(n):void 0}triggerable(){const t=Object.keys(m).filter(i=>m[i].triggerable).map(ne),n=[...this.declared.values()].map(ie).filter(i=>i.triggerable);return[...t,...n]}timelineText(t,n){const i=m[t.type];if(i?.timeline)return i.timeline(t,n);const a=this.declared.get(t.type);return O(a?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=m[t.type];if(n?.snippet)return n.snippet(t);const i=this.declared.get(t.type);return O(i?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}get translator(){return this.translate}}const Ct=new _e,ae=140;function Nt(e){const t=e.trim();return t.length<=ae?t:t.slice(0,ae-1).trimEnd()+"…"}function Ot(e,t){const n=Ae(t?.text,e),i=t?O(t.text,e,a=>a):null;return{activityId:e.id,type:e.type,snippet:Nt(i??Ee(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}function Lt(e,t,n=[]){const i=e.createdAt;if(!i)return[];const a=new Set(n);return e.author.type==="user"&&e.author.id&&a.add(e.author.id),Object.entries(t).filter(([r,o])=>o>=i&&!a.has(r)).map(([r])=>r)}function Rt(e){return e.createdAt??0}const xt=[{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 vt(e){const t=[];for(const n of Object.keys(e))for(const i of Object.keys(e[n]))t.push({lang:n,key:i,value:e[n][i]});return t}function k(e){return e<10?`0${e}`:`${e}`}function ye(e,t){const n=new Date(e),i=`${n.getUTCFullYear()}-${k(n.getUTCMonth()+1)}-${k(n.getUTCDate())}`;return t==="day"?i:`${i}T${k(n.getUTCHours())}`}function Te(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const kt=36e5,Pt=864e5;function Dt(e,t,n){const i=n==="hour"?kt:Pt,a=[];for(let r=Te(e,n);r<=t;r+=i)a.push(ye(r,n));return a}const be=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Se=be.map(e=>e.id);function Ie(e,t){return`${e}.usage.${t}`}function $t(e,t){return t.map(n=>({id:Ie(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Se,...n.extraDimensions??[],"time"]}))}const Me=new Set(["info","success","warning","destructive"]),D=200,$=100,U=200,w=12,K=4,V=4e3,I=500,Ut=256*1024,wt=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout"]),Ce=["http:","https:","mailto:","tel:"],Kt=/^[a-z][a-z0-9+.-]*:/i;function Ne(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Kt.exec(t)?.[0];return n?Ce.includes(n.toLowerCase()):!t.startsWith("//")}const Bt=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Ft(e){let t="",n=0;for(;n<e.length;){const i=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!i){t+=e[n],n+=1;continue}const a=n+(i?2:1),r=re(e,a,"[","]");if(r<0||e[r+1]!=="("){t+=e[n],n+=1;continue}const o=re(e,r+2,"(",")");if(o<0){t+=e[n],n+=1;continue}const s=e.slice(a,r),l=e.slice(r+2,o).trim().split(/\s+/)[0]??"";t+=i||!Ne(l)?s:e.slice(n,o+1),n=o+1}return t}function re(e,t,n,i){let a=1;for(let r=t;r<e.length;r+=1){if(e[r]==="\\"){r+=1;continue}if(e[r]===n)a+=1;else if(e[r]===i&&(a-=1,a===0))return r}return-1}function Oe(e){return Ft(e).replace(Bt,(t,n,i)=>Ne(i)?t:"")}function u(e,t=V){return typeof e=="string"?Oe(e).slice(0,t):""}function Gt(e,t=V){return typeof e=="string"?e.slice(0,t):""}function Vt(e,t="info"){return typeof e=="string"&&Me.has(e)?e:t}function Ht(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const i of e){if(n.length>=D){t("more than "+D+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const a=i;if(!wt.has(a.type)){t("unknown block type "+String(a.type));continue}const r=typeof a.block_id=="string"?{block_id:a.block_id}:{};switch(a.type){case"heading":{const o=u(a.text);if(!o){t("a heading without text");continue}const s=a.level===2||a.level===3?a.level:1;n.push({...r,type:"heading",level:s,text:o});break}case"paragraph":{const o=u(a.text);if(!o){t("a paragraph without text");continue}n.push({...r,type:"paragraph",text:o});break}case"quote":{const o=u(a.text);if(!o){t("a quote without text");continue}n.push({...r,type:"quote",text:o});break}case"code":{const o=Gt(a.text);if(!o){t("a code block without text");continue}const s=typeof a.lang=="string"?{lang:a.lang.slice(0,32)}:{};n.push({...r,type:"code",...s,text:o});break}case"divider":n.push({...r,type:"divider"});break;case"list":{const o=Array.isArray(a.items)?a.items:[],s=[];for(const d of o){if(s.length>=$){t("more than "+$+" list items");break}const f=u(d?.text);if(!f)continue;const c=u(d?.lead,200);s.push(c?{lead:c,text:f}:{text:f})}if(s.length===0){t("a list without usable items");continue}const l=a.style==="numbered"?"numbered":"bulleted";n.push({...r,type:"list",style:l,items:s});break}case"table":{const o=Array.isArray(a.columns)?a.columns:[],s=[];for(const c of o){if(s.length>=w){t("more than "+w+" table columns");break}const A=u(c?.label,I),R=c?.align==="right"?"right":void 0;s.push(R?{label:A,align:R}:{label:A})}if(s.length===0){t("a table without columns");continue}const l=Array.isArray(a.rows)?a.rows:[],d=[];for(const c of l){if(d.length>=U){t("more than "+U+" table rows");break}const A=Array.isArray(c)?c:[];d.push(s.map((R,ft)=>u(A[ft],I)))}const f=u(a.caption,I);n.push({...r,type:"table",columns:s,rows:d,...f?{caption:f}:{}});break}case"kpi":{const o=Array.isArray(a.items)?a.items:[],s=[];for(const l of o){if(s.length>=K){t("more than "+K+" kpi items");break}const d=u(l?.value,40),f=u(l?.label,80);if(!d||!f)continue;const c=l?.tone;s.push(typeof c=="string"&&Me.has(c)?{value:d,label:f,tone:c}:{value:d,label:f})}if(s.length===0){t("a kpi block without usable items");continue}n.push({...r,type:"kpi",items:s});break}case"callout":{const o=u(a.text);if(!o){t("a callout without text");continue}const s=u(a.title,200);n.push({...r,type:"callout",tone:Vt(a.tone),...s?{title:s}:{},text:o});break}}}return n}function Xt(e){return JSON.stringify(e).length}function jt(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function oe(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function se(e,t,n){const i=e.map((a,r)=>n?.[r]==="right"?"---:":"---");return[`| ${e.map(oe).join(" | ")} |`,`| ${i.join(" | ")} |`,...t.map(a=>`| ${a.map(oe).join(" | ")} |`)]}function Wt(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const i=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${i} **${t.lead}** ${t.text}`:`${i} ${t.text}`});case"table":{const t=se(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 se(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 Yt(e,t){const n=[],i=e.some(a=>a.type==="heading"&&a.level===1);t&&!i&&n.push(`# ${t}`);for(const a of e){const r=Wt(a);r.length>0&&n.push(r.join(`
2
2
  `))}return`${n.join(`
3
3
 
4
4
  `)}
5
- `}const V=e=>`user:${e}`,X=e=>`team:${e}`;function Vt(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(V(n.id)),n.kind==="team"&&t.add(X(n.id)));return[...t].sort()}function Xt(e,t){return[V(e),...t.map(X)]}function jt(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}function Wt(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Yt=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"}],zt={topics:[{name:"topic",type:"string"},{name:"confidence",type:"number"}],question:[{name:"answer",type:"boolean"},{name:"confidence",type:"number"}],extract:[]};function Le(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function qt(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 a=t.slice(0,n),i=t.slice(n+1).trim();if(i){if(a==="user")return{kind:"user",userId:i};if(a==="team")return{kind:"team",teamId:i}}}function Oe(e){return Le(e)}function Jt(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function Qt(e){return Oe(e)}const Re=["done","escalated","failed","timed_out","stopped"],xe=["awaiting_approval","awaiting_reply"];function ve(e){return Re.includes(e)}function Zt(e){return ve(e)}function en(e){return xe.includes(e)}function tn(e,t){const n=e.labels??[];return n.find(a=>a.locale===t)?.label??n[0]?.label??e.url}function nn(e,t,n){const a=e.translations??[];return a.find(i=>i.locale===t)??(n?a.find(i=>i.locale===n):void 0)??{locale:t}}const B=[{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 ke(e){const t=(e??"").toLowerCase();return B.find(n=>n.code===t)??B.find(n=>n.code===t.split("-")[0])}function an(e){return ke(e)?.label??e}function rn(e){const t=ke(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const j=3;function De(e,t){const n=new Set;let a=1,i=t.get(e)?.parentId;for(;i;){if(n.has(i)||(n.add(i),a++,a>j+1))return 1/0;i=t.get(i)?.parentId}return a}function on(e,t,n){if(!e)return!0;if(e===t)return!1;const a=new Map(n.map(o=>[o.id,o]));if(!a.has(e)||t&&Pe(e,t,a))return!1;const i=De(e,a),r=t?W(t,n):1;return i+r<=j}function Pe(e,t,n){const a=new Set;let i=n.get(e)?.parentId;for(;i;){if(i===t)return!0;if(a.has(i))return!1;a.add(i),i=n.get(i)?.parentId}return!1}function W(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const a=t.filter(i=>i.parentId===e);return a.length?1+Math.max(...a.map(i=>W(i.id,t,n))):1}const $e="en";function Ue(e){return e.defaultLocale||e.locale||$e}function sn(e){const t=new Set,n=[];for(const a of[Ue(e),...e.locales??[]])!a||t.has(a)||(t.add(a),n.push(a));return n}function ln(e,t,n){const a=e.translations??[];return a.find(i=>i.locale===t)?.name??(n?a.find(i=>i.locale===n)?.name:void 0)??e.name}const we=20,Ke=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Be(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),a=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return a>M*.6?n.slice(0,a+1):`${n.trimEnd()}…`}function cn(e,t){const n=Be(t.text),a=g(n);if(!a||(e.examples??[]).some(o=>g(o)===a))return null;const i=e.exampleCandidates??[],r=i.findIndex(o=>g(o.text)===a);if(r>=0){if(i[r].corrected||!t.corrected)return null;const o=[...i];return o[r]={...o[r],corrected:!0,addedAt:t.addedAt},se(o)}return se([{...t,text:n},...i]).slice(0,Ke)}function se(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function un(e,t){const n=g(t),a=(e.examples??[]).filter(r=>r.trim());return{examples:a.some(r=>g(r)===n)?a:[...a,t].slice(-we),exampleCandidates:Fe(e,t)}}function Fe(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(a=>g(a.text)!==n)}function Ge(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function pn(e,t){return e.filter(n=>Ge(n,t))}const Y=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function A(e){return Y.find(t=>t.id===e)}function dn(e){return A(e)?.label??e}function fn(e,t="gpt-5-mini"){return A(e)?.defaultModel??t}function mn(e){return Y.filter(t=>t.capabilities.includes(e))}function gn(e){const t=A(e);return!!t&&!t.baseUrl}function hn(e,t){return t==="text"?!0:A(e)?.attachmentKinds?.includes(t)===!0}function An(e,t){if(!e.enabled)return"ok";const n=F(e.hardLimitNanos),a=F(e.softLimitNanos);return n!==void 0&&t>=n?"hard":a!==void 0&&t>=a?"soft":"ok"}function F(e){return typeof e=="number"?e:void 0}function He(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function En(e,t="month"){const n=new Date(He(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}const yn=new Set(["mail","message"]);function Ve(e,t){const n=e.settings?.signatures?.[t];return!n||!n.enabled||!n.body||n.body.trim()===""?null:n}function _n(e,t,n,a="html"){if(!e)return n;const i=Ve(e,t);return i?`${n}${a==="text"?`
5
+ `}const H=e=>`user:${e}`,X=e=>`team:${e}`;function zt(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(H(n.id)),n.kind==="team"&&t.add(X(n.id)));return[...t].sort()}function qt(e,t){return[H(e),...t.map(X)]}function Jt(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}function Qt(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Zt=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"}],en={topics:[{name:"topic",type:"string"},{name:"confidence",type:"number"}],question:[{name:"answer",type:"boolean"},{name:"confidence",type:"number"}],extract:[]};function Le(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function tn(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const i=t.slice(0,n),a=t.slice(n+1).trim();if(a){if(i==="user")return{kind:"user",userId:a};if(i==="team")return{kind:"team",teamId:a}}}function Re(e){return Le(e)}function nn(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function an(e){return Re(e)}const xe=64,ve=8e3;function rn(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),xe),ve)}const ke=["done","escalated","failed","timed_out","stopped"],Pe=["awaiting_approval","awaiting_reply"];function De(e){return ke.includes(e)}function on(e){return De(e)}function sn(e){return Pe.includes(e)}function ln(e,t){const n=e.labels??[];return n.find(i=>i.locale===t)?.label??n[0]?.label??e.url}function cn(e,t,n){const i=e.translations??[];return i.find(a=>a.locale===t)??(n?i.find(a=>a.locale===n):void 0)??{locale:t}}const B=[{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 $e(e){const t=(e??"").toLowerCase();return B.find(n=>n.code===t)??B.find(n=>n.code===t.split("-")[0])}function un(e){return $e(e)?.label??e}function pn(e){const t=$e(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const j=3;function Ue(e,t){const n=new Set;let i=1,a=t.get(e)?.parentId;for(;a;){if(n.has(a)||(n.add(a),i++,i>j+1))return 1/0;a=t.get(a)?.parentId}return i}function dn(e,t,n){if(!e)return!0;if(e===t)return!1;const i=new Map(n.map(o=>[o.id,o]));if(!i.has(e)||t&&we(e,t,i))return!1;const a=Ue(e,i),r=t?W(t,n):1;return a+r<=j}function we(e,t,n){const i=new Set;let a=n.get(e)?.parentId;for(;a;){if(a===t)return!0;if(i.has(a))return!1;i.add(a),a=n.get(a)?.parentId}return!1}function W(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const i=t.filter(a=>a.parentId===e);return i.length?1+Math.max(...i.map(a=>W(a.id,t,n))):1}const Ke="en";function Be(e){return e.defaultLocale||e.locale||Ke}function fn(e){const t=new Set,n=[];for(const i of[Be(e),...e.locales??[]])!i||t.has(i)||(t.add(i),n.push(i));return n}function mn(e,t,n){const i=e.translations??[];return i.find(a=>a.locale===t)?.name??(n?i.find(a=>a.locale===n)?.name:void 0)??e.name}const Fe=20,Ge=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Ve(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),i=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return i>M*.6?n.slice(0,i+1):`${n.trimEnd()}…`}function gn(e,t){const n=Ve(t.text),i=g(n);if(!i||(e.examples??[]).some(o=>g(o)===i))return null;const a=e.exampleCandidates??[],r=a.findIndex(o=>g(o.text)===i);if(r>=0){if(a[r].corrected||!t.corrected)return null;const o=[...a];return o[r]={...o[r],corrected:!0,addedAt:t.addedAt},le(o)}return le([{...t,text:n},...a]).slice(0,Ge)}function le(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function hn(e,t){const n=g(t),i=(e.examples??[]).filter(r=>r.trim());return{examples:i.some(r=>g(r)===n)?i:[...i,t].slice(-Fe),exampleCandidates:He(e,t)}}function He(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(i=>g(i.text)!==n)}function Xe(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function En(e,t){return e.filter(n=>Xe(n,t))}const Y=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function E(e){return Y.find(t=>t.id===e)}function An(e){return E(e)?.label??e}function _n(e,t="gpt-5-mini"){return E(e)?.defaultModel??t}function yn(e){return Y.filter(t=>t.capabilities.includes(e))}function Tn(e){const t=E(e);return!!t&&!t.baseUrl}function bn(e,t){return t==="text"?!0:E(e)?.attachmentKinds?.includes(t)===!0}function Sn(e,t){if(!e.enabled)return"ok";const n=F(e.hardLimitNanos),i=F(e.softLimitNanos);return n!==void 0&&t>=n?"hard":i!==void 0&&t>=i?"soft":"ok"}function F(e){return typeof e=="number"?e:void 0}function je(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function In(e,t="month"){const n=new Date(je(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}const Mn=new Set(["mail","message"]);function We(e,t){const n=e.settings?.signatures?.[t];return!n||!n.enabled||!n.body||n.body.trim()===""?null:n}function Cn(e,t,n,i="html"){if(!e)return n;const a=We(e,t);return a?`${n}${i==="text"?`
6
6
 
7
- `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${i.body}`:n}function Tn(e){return e.endpoints??[]}const bn=e=>!!e.assignedUserId||!!e.assignedInboxId,In=e=>e.status==="closed",Sn=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Mn=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function Cn(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Nn=1e3,Ln=2e3,On=500,Rn=12e3,xn=4e3,Xe=["contact","company"];function vn(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return Xe.includes(t)}const O={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}},je="NL",kn=15,Dn=8,Pn=Array.from(new Set(Object.values(O).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function le(e){if(e)return O[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function ce(e){if(e.length>kn)return null;for(const t of Pn){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const a of Object.values(O)){if(a.callingCode!==t)continue;const i=a.trunkPrefix,r=i&&n.startsWith(i)?n.slice(i.length):n;if(C(r,a))return`+${t}${r}`}return null}return e.length<Dn?null:`+${e}`}function $n(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const a=t.indexOf("@");return a>=0&&(t=t.slice(0,a)),t.trim()}function Un(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 G(e,t){if(!e)return null;const n=$n(e);if(!n)return null;const a=n.startsWith("+"),i=n.replace(/\D/g,"");if(!i)return null;if(a)return ce(i);if(i.startsWith("00"))return ce(i.slice(2));const r=le(t)??le(je);if(!r)return null;const o=r.trunkPrefix;if(o&&i.startsWith(o)){const s=i.slice(o.length);return C(s,r)?`+${r.callingCode}${s}`:null}if(i.startsWith(r.callingCode)){const s=i.slice(r.callingCode.length);if(C(s,r))return`+${r.callingCode}${s}`}return!o&&C(i,r)?`+${r.callingCode}${i}`:null}function wn(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function z(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const a=t.slice(0,n).split("+")[0],i=t.slice(n+1);return!a||!i.includes(".")?null:`${a}@${i}`}function Kn(e){const t=z(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Bn=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function We(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 Bn.has(n)&&t.length>=3?t.slice(-3).join("."):n}const Ye=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 Fn(e){const t=We(e);return t?Ye.has(t):!1}function Gn(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Hn(e,t,n){if(!e||!t)return null;const a=e.trim().toLowerCase();if(a==="tel"||a==="sms"||a==="whatsapp"){const r=G(t,n);return r?`tel:${r}`:null}if(a==="fax"){const r=G(t,n);return r?`fax:${r}`:null}if(a==="mailto"||a==="email"){const r=z(t);return r?`mailto:${r}`:null}const i=t.trim().toLowerCase();return i?`${a}:${i}`:null}const Vn=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,Xn=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function jn(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>"}${a.body}`:n}function Nn(e){return e.endpoints??[]}const On=e=>!!e.assignedUserId||!!e.assignedInboxId,Ln=e=>e.status==="closed",Rn=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,xn=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function vn(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const kn=1e3,Pn=2e3,Dn=500,$n=12e3,Un=4e3,Ye=["contact","company"];function wn(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return Ye.includes(t)}const L={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}},ze="NL",Kn=15,Bn=8,Fn=Array.from(new Set(Object.values(L).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function ce(e){if(e)return L[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function ue(e){if(e.length>Kn)return null;for(const t of Fn){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const i of Object.values(L)){if(i.callingCode!==t)continue;const a=i.trunkPrefix,r=a&&n.startsWith(a)?n.slice(a.length):n;if(C(r,i))return`+${t}${r}`}return null}return e.length<Bn?null:`+${e}`}function Gn(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const i=t.indexOf("@");return i>=0&&(t=t.slice(0,i)),t.trim()}function Vn(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 G(e,t){if(!e)return null;const n=Gn(e);if(!n)return null;const i=n.startsWith("+"),a=n.replace(/\D/g,"");if(!a)return null;if(i)return ue(a);if(a.startsWith("00"))return ue(a.slice(2));const r=ce(t)??ce(ze);if(!r)return null;const o=r.trunkPrefix;if(o&&a.startsWith(o)){const s=a.slice(o.length);return C(s,r)?`+${r.callingCode}${s}`:null}if(a.startsWith(r.callingCode)){const s=a.slice(r.callingCode.length);if(C(s,r))return`+${r.callingCode}${s}`}return!o&&C(a,r)?`+${r.callingCode}${a}`:null}function Hn(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function z(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const i=t.slice(0,n).split("+")[0],a=t.slice(n+1);return!i||!a.includes(".")?null:`${i}@${a}`}function Xn(e){const t=z(e);return t?t.slice(t.lastIndexOf("@")+1):null}const jn=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function qe(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 jn.has(n)&&t.length>=3?t.slice(-3).join("."):n}const Je=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 Wn(e){const t=qe(e);return t?Je.has(t):!1}function Yn(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function zn(e,t,n){if(!e||!t)return null;const i=e.trim().toLowerCase();if(i==="tel"||i==="sms"||i==="whatsapp"){const r=G(t,n);return r?`tel:${r}`:null}if(i==="fax"){const r=G(t,n);return r?`fax:${r}`:null}if(i==="mailto"||i==="email"){const r=z(t);return r?`mailto:${r}`:null}const a=t.trim().toLowerCase();return a?`${i}:${a}`:null}const qn=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,Jn=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Qn(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(Vn,"$2"),t=t.replace(Xn,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const Wn=[/<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],ue=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,Yn=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function zn(e){const t=e.split(`
10
- `);for(let n=0;n<t.length;n++)if(Yn.test(t[n])||ue.test(t[n])&&t.slice(n+1,n+4).some(a=>ue.test(a)))return t.slice(0,n).join(`
11
- `).trim();return e}function pe(e){let t=e;return t=t.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),t=t.replace(/<br\s*\/?>/gi,`
9
+ `),t=t.replace(qn,"$2"),t=t.replace(Jn,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const Zn=[/<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],pe=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,ei=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function ti(e){const t=e.split(`
10
+ `);for(let n=0;n<t.length;n++)if(ei.test(t[n])||pe.test(t[n])&&t.slice(n+1,n+4).some(i=>pe.test(i)))return t.slice(0,n).join(`
11
+ `).trim();return e}function de(e){let t=e;return t=t.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),t=t.replace(/<br\s*\/?>/gi,`
12
12
  `),t=t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
13
13
 
14
14
  `),t=t.replace(/<\/(div|li|tr)>/gi,`
15
- `),t=t.replace(/<\/(td|th)>/gi," "),t=t.replace(/<[^>]+>/g,""),t=t.replace(/<[^>]*$/,""),t}function de(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function fe(e){return e.replace(/&nbsp;/gi," ").replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>de(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>de(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function me(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
15
+ `),t=t.replace(/<\/(td|th)>/gi," "),t=t.replace(/<[^>]+>/g,""),t=t.replace(/<[^>]*$/,""),t}function fe(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function me(e){return e.replace(/&nbsp;/gi," ").replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>fe(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>fe(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function ge(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
16
16
  `).replace(/\n{3,}/g,`
17
17
 
18
- `).trim()}function qn(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const r of Wn){const o=e.search(r);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let a=me(fe(pe(n)));return a||(a=me(fe(pe(e)))),zn(a)||a}const Jn=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Qn=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Zn(e,t){return!!(e&&Jn.test(e)||t&&Qn.test(t))}const ze=3,qe=600;function ei(e,t){return e>=ze||t>=qe}const ti=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),ni=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Je(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?ti.has(t)?"image":t==="application/pdf"?"pdf":ni.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,Qe={image:5*h,pdf:20*h,text:1*h,audio:20*h},ii=25*h,ai=5;function ri(e,t){const n=Je(e);return n==="unsupported"?"unsupported":t>Qe[n]?"too-large":null}function Ze(e,t){const n=new Set(e.disabledIntents??[]),a=e.intentOverrides??{},i=t.intents.filter(o=>!n.has(o.intent)).map(o=>si(o,a[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return i;const r=new Set(i.map(o=>o.intent));for(const o of e.extraIntents)r.has(o.intent)||(i.push(o),r.add(o.intent));return i}function et(e,t){const n={};for(const a of e.intents){if(!a.togglable)continue;const i=t?.[a.intent];n[a.intent]=i??a.defaultEnabled??!0}return n}function oi(e,t){const n=et(e,t);return Object.entries(n).filter(([,a])=>!a).map(([a])=>a)}function si(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function li(e,t){const n=[];for(const a of e){if(!a.enabled)continue;const i=t[a.providerId];if(i)for(const r of Ze(a,i))n.push({channel:a,description:i,capability:r})}return n}function ci(e,t){return t.filter(n=>n.capability.intent===e)}function tt(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function ui(e,t){return tt(e.scheme,t)}function pi(e,t,n){const a=[];for(const i of e)for(const r of n)r.capability.intent===t&&r.capability.targetSchemes.includes(i.scheme)&&a.push({channelIntent:r,endpoint:i});return a}var nt=(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))(nt||{});const di={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 fi(e){return e?di[e]??"note":"note"}const mi="message_window",gi="message_templates",hi={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Ai=(e,t)=>({intent:e,...t}),Ei="folder_management",yi="remote_search",_i={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},q="auth";function J(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Ti(e){const t=J(e);return t?t!==q:typeof e=="string"&&e.startsWith("/wake")}function bi(e){return typeof e!="string"||e===""||e==="/"?!0:J(e)===q}function Ii(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function it(e){const n=e.split("/").filter(Boolean).map(a=>a.startsWith(":")?a.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":"/"+Ii(a)).join("");return new RegExp(`^${n}\\/?$`)}function at(e,t){const n=e.split("/").filter(Boolean),a=t.split("/").filter(Boolean),i={};return n.forEach((r,o)=>{if(r.startsWith(":")){const s=r.endsWith("?")?r.slice(1,-1):r.slice(1),l=a[o];l&&(i[s]=l)}}),i}function rt(e){return e.publicBasePath??`/apps/${e.name}`}function Si(e){const t=[];for(const n of e){if(!n?.name)continue;const a=rt(n);for(const i of n.routes??[]){if(!i.public)continue;const r=i.path==="/"?"":i.path;t.push({appName:n.name,resource:i.resource,pattern:`${a}${r}`,props:i.props})}}return t}function ot(e,t){const n=e.split("/").filter(Boolean),a=t.split("/").filter(Boolean);for(let i=0;i<Math.min(n.length,a.length);i++){const r=n[i].startsWith(":"),o=a[i].startsWith(":");if(r!==o)return o}return n.length>a.length}function st(e,t){if(typeof e!="string")return null;let n=null;for(const a of t)it(a.pattern).test(e)&&(!n||ot(a.pattern,n.pattern))&&(n=a);return n?{...n,params:{...n.props,...at(n.pattern,e)}}:null}function Mi(e,t){return st(e,t)!==null}const Ci=9e4,Ni="installation-id";exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=Qe;exports.AI_ATTACHMENT_MAX_PER_TURN=ai;exports.AI_ATTACHMENT_TURN_BUDGET=ii;exports.AI_VENDORS=Y;exports.ALLOWED_LINK_SCHEMES=Me;exports.ARTIFACT_MAX_BLOCKS=P;exports.ARTIFACT_MAX_BODY_BYTES=vt;exports.ARTIFACT_MAX_CELL_LEN=S;exports.ARTIFACT_MAX_KPI_ITEMS=K;exports.ARTIFACT_MAX_LIST_ITEMS=$;exports.ARTIFACT_MAX_TABLE_COLUMNS=w;exports.ARTIFACT_MAX_TABLE_ROWS=U;exports.ARTIFACT_MAX_TEXT_LEN=H;exports.AUTH_APP_NAME=q;exports.ActivityTypeRegistry=Ee;exports.BUILT_IN_ONLY=Tt;exports.CLASSIFY_VARS=zt;exports.CORE_DIMENSIONS=Ct;exports.CommunicationScheme=nt;exports.DEFAULT_MEMORY_BUDGET=xn;exports.DEFAULT_PHONE_REGION=je;exports.FEATURE_FOLDER_MANAGEMENT=Ei;exports.FEATURE_REMOTE_SEARCH=yi;exports.INSTALLATION_HEADER=Ni;exports.InteractionParticipantRole=hi;exports.KB_FALLBACK_LOCALE=$e;exports.KB_LOCALES=B;exports.MAX_ACTIONS=I;exports.MAX_BLOCKS=D;exports.MAX_COLLECTION_DEPTH=j;exports.MAX_FIELDS=T;exports.MAX_LIST_ITEMS=b;exports.MAX_MEMORY_BROWSE=Nn;exports.MAX_MEMORY_BUDGET=Rn;exports.MAX_MEMORY_CHARS=Ln;exports.MAX_TOPIC_CANDIDATES=Ke;exports.MAX_TOPIC_EXAMPLES=we;exports.MAX_TOPIC_EXAMPLE_CHARS=M;exports.MIN_MEMORY_BUDGET=On;exports.PAUSED_RUN_STATUSES=xe;exports.PHONE_REGIONS=O;exports.PRESENCE_ONLINE_WINDOW_MS=Ci;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=gi;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=mi;exports.PUBLIC_EMAIL_DOMAINS=Ye;exports.RELATED_SUBJECT_KINDS=Xe;exports.SIGNATURE_INTENTS=yn;exports.SUMMARY_MIN_LAST_CHARS=qe;exports.SUMMARY_MIN_MESSAGES=ze;exports.TERMINAL_RUN_STATUSES=Re;exports.TRIGGER_VARS=Yt;exports.UNSUPPORTED=_i;exports.USAGE_DIMENSIONS=Te;exports.USAGE_DIMENSION_IDS=be;exports.acceptExampleCandidate=un;exports.actingIdentityKey=Oe;exports.activityIconOf=pt;exports.activityJoinUrl=yt;exports.activitySnippet=he;exports.activityTextParams=Ae;exports.activityTimelineText=Et;exports.activityTimestamp=Mt;exports.activityTypeInfo=p;exports.actorKey=Qt;exports.addExampleCandidate=cn;exports.aiAttachmentKind=Je;exports.aiAttachmentRejection=ri;exports.aiBudgetLimit=F;exports.aiBudgetPeriodKey=En;exports.aiBudgetPeriodStart=He;exports.aiBudgetState=An;exports.aiVendorAcceptsAttachment=hn;exports.aiVendorDefaultModel=fn;exports.aiVendorLabel=dn;exports.aiVendorNeedsBaseUrl=gn;exports.aiVendorsWith=mn;exports.appNameFromPath=J;exports.applySignature=_n;exports.artifactBodyBytes=Bt;exports.artifactOutline=Ft;exports.artifactToMarkdown=Ht;exports.buildActivityPreview=It;exports.buildChannelIntents=li;exports.buildShareKeys=Vt;exports.canNestUnder=on;exports.carriesText=gt;exports.categoryLabel=ln;exports.channelKindForScheme=fi;exports.channelKindOf=dt;exports.cleanMessageText=qn;exports.defaultLocaleOf=Ue;exports.defineIntent=Ai;exports.depthOf=De;exports.disabledIntentsFromCapabilities=oi;exports.emailDomain=Kn;exports.endpointKey=Hn;exports.extractParams=at;exports.filterByEndpoint=ui;exports.filterByIntent=ci;exports.filterByTargetScheme=tt;exports.findAiVendor=A;exports.flattenLocales=Nt;exports.floorToPeriod=_e;exports.formatActingIdentity=Le;exports.formatPeriod=ye;exports.getActivitySeenUserIds=St;exports.getContactEndpoints=Tn;exports.getShortTitle=Mn;exports.getUrgencyScore=Sn;exports.heightOf=W;exports.helpCenterText=nn;exports.humanizeAction=Wt;exports.isAssigned=bn;exports.isClosed=In;exports.isDeepLink=Ti;exports.isDescendant=Pe;exports.isInteractionUnseen=Cn;exports.isLandingPath=bi;exports.isLikelyBulk=Zn;exports.isMessageType=ft;exports.isMoreSpecificPattern=ot;exports.isPaused=en;exports.isPlaybookAuthoredType=At;exports.isPublicEmailDomain=Fn;exports.isPublicPath=Mi;exports.isReplyableType=mt;exports.isRetryable=Zt;exports.isTerminal=ve;exports.isThreadLongEnough=ei;exports.linkLabel=tn;exports.localeInstruction=rn;exports.localeName=an;exports.localesOf=sn;exports.looksLikeEmail=Un;exports.matchContactToIntents=pi;exports.matchPublicRoute=st;exports.messageCountsAs=ht;exports.needsPhoneRegion=Gn;exports.normalizeArtifactBlocks=Kt;exports.normalizeBlocks=ut;exports.normalizeEmail=z;exports.normalizeExample=g;exports.parseActingIdentity=qt;exports.pathToRegex=it;exports.periodsInRange=Rt;exports.phoneSuffix=wn;exports.plainTextFromMarkdown=jn;exports.playbookActor=Jt;exports.publicBasePathFor=rt;exports.publicRoutePatterns=Si;exports.readPath=N;exports.registrableDomain=We;exports.rejectExampleCandidate=Fe;exports.relatedByDefault=vn;exports.resolveAccountCapabilities=et;exports.resolveActivityText=L;exports.resolveChannelIntents=Ze;exports.resolveSignature=Ve;exports.sanitizeInline=Ne;exports.shareKeyForTeam=X;exports.shareKeyForUser=V;exports.shareKeysForViewer=Xt;exports.stripHtml=ge;exports.toE164=G;exports.toolSourceKinds=jt;exports.topicOfferedForTeam=Ge;exports.topicsForTeam=pn;exports.truncateExample=Be;exports.usageMetricId=Ie;exports.usageMetrics=xt;
18
+ `).trim()}function ni(e){if(typeof e!="string"||!e)return"";let t=e.length;for(const r of Zn){const o=e.search(r);o>=0&&o<t&&(t=o)}const n=e.slice(0,t);let i=ge(me(de(n)));return i||(i=ge(me(de(e)))),ti(i)||i}const ii=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,ai=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function ri(e,t){return!!(e&&ii.test(e)||t&&ai.test(t))}const Qe=3,Ze=600;function oi(e,t){return e>=Qe||t>=Ze}const si=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),li=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function et(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?si.has(t)?"image":t==="application/pdf"?"pdf":li.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,tt={image:5*h,pdf:20*h,text:1*h,audio:20*h},ci=25*h,ui=5;function pi(e,t){const n=et(e);return n==="unsupported"?"unsupported":t>tt[n]?"too-large":null}function nt(e,t){const n=new Set(e.disabledIntents??[]),i=e.intentOverrides??{},a=t.intents.filter(o=>!n.has(o.intent)).map(o=>fi(o,i[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return a;const r=new Set(a.map(o=>o.intent));for(const o of e.extraIntents)r.has(o.intent)||(a.push(o),r.add(o.intent));return a}function it(e,t){const n={};for(const i of e.intents){if(!i.togglable)continue;const a=t?.[i.intent];n[i.intent]=a??i.defaultEnabled??!0}return n}function di(e,t){const n=it(e,t);return Object.entries(n).filter(([,i])=>!i).map(([i])=>i)}function fi(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function mi(e,t){const n=[];for(const i of e){if(!i.enabled)continue;const a=t[i.providerId];if(a)for(const r of nt(i,a))n.push({channel:i,description:a,capability:r})}return n}function gi(e,t){return t.filter(n=>n.capability.intent===e)}function at(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function hi(e,t){return at(e.scheme,t)}function Ei(e,t,n){const i=[];for(const a of e)for(const r of n)r.capability.intent===t&&r.capability.targetSchemes.includes(a.scheme)&&i.push({channelIntent:r,endpoint:a});return i}var rt=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(rt||{});const Ai={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 _i(e){return e?Ai[e]??"note":"note"}const yi="message_window",Ti="message_templates",bi={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Si=(e,t)=>({intent:e,...t}),Ii="folder_management",Mi="remote_search",Ci={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},q="auth";function J(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Ni(e){const t=J(e);return t?t!==q:typeof e=="string"&&e.startsWith("/wake")}function Oi(e){return typeof e!="string"||e===""||e==="/"?!0:J(e)===q}function Li(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ot(e){const n=e.split("/").filter(Boolean).map(i=>i.startsWith(":")?i.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":"/"+Li(i)).join("");return new RegExp(`^${n}\\/?$`)}function st(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean),a={};return n.forEach((r,o)=>{if(r.startsWith(":")){const s=r.endsWith("?")?r.slice(1,-1):r.slice(1),l=i[o];l&&(a[s]=l)}}),a}function lt(e){return e.publicBasePath??`/apps/${e.name}`}function Ri(e){const t=[];for(const n of e){if(!n?.name)continue;const i=lt(n);for(const a of n.routes??[]){if(!a.public)continue;const r=a.path==="/"?"":a.path;t.push({appName:n.name,resource:a.resource,pattern:`${i}${r}`,props:a.props})}}return t}function ct(e,t){const n=e.split("/").filter(Boolean),i=t.split("/").filter(Boolean);for(let a=0;a<Math.min(n.length,i.length);a++){const r=n[a].startsWith(":"),o=i[a].startsWith(":");if(r!==o)return o}return n.length>i.length}function ut(e,t){if(typeof e!="string")return null;let n=null;for(const i of t)ot(i.pattern).test(e)&&(!n||ct(i.pattern,n.pattern))&&(n=i);return n?{...n,params:{...n.props,...st(n.pattern,e)}}:null}function xi(e,t){return ut(e,t)!==null}const Q=9e4,pt=["out_of_office"],dt=e=>pt.includes(e);function vi(e,t,n){const i=n-e<Q,a=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!a?.status)return{online:i,status:i?"available":"offline"};const r=a.status;return!i&&!dt(r)?{online:!1,status:"offline"}:{online:i,status:r,message:a.message}}function ki(e,t){const n=t-e.lastSeenAt<Q,i=n||dt(e.status)?e.status:"offline";return n===e.online&&i===e.status?e:{...e,online:n,status:i}}const Pi="installation-id";exports.ACTIVITY_CATALOG=m;exports.AI_ATTACHMENT_LIMITS=tt;exports.AI_ATTACHMENT_MAX_PER_TURN=ui;exports.AI_ATTACHMENT_TURN_BUDGET=ci;exports.AI_VENDORS=Y;exports.ALLOWED_LINK_SCHEMES=Ce;exports.ARTIFACT_MAX_BLOCKS=D;exports.ARTIFACT_MAX_BODY_BYTES=Ut;exports.ARTIFACT_MAX_CELL_LEN=I;exports.ARTIFACT_MAX_KPI_ITEMS=K;exports.ARTIFACT_MAX_LIST_ITEMS=$;exports.ARTIFACT_MAX_TABLE_COLUMNS=w;exports.ARTIFACT_MAX_TABLE_ROWS=U;exports.ARTIFACT_MAX_TEXT_LEN=V;exports.AUTH_APP_NAME=q;exports.ActivityTypeRegistry=_e;exports.BUILT_IN_ONLY=Ct;exports.CLASSIFY_VARS=en;exports.CORE_DIMENSIONS=xt;exports.CommunicationScheme=rt;exports.DEFAULT_MEMORY_BUDGET=Un;exports.DEFAULT_PHONE_REGION=ze;exports.FEATURE_FOLDER_MANAGEMENT=Ii;exports.FEATURE_REMOTE_SEARCH=Mi;exports.INSTALLATION_HEADER=Pi;exports.InteractionParticipantRole=bi;exports.KB_FALLBACK_LOCALE=Ke;exports.KB_LOCALES=B;exports.MAX_ACTIONS=S;exports.MAX_BLOCKS=P;exports.MAX_COLLECTION_DEPTH=j;exports.MAX_FIELDS=T;exports.MAX_LIST_ITEMS=b;exports.MAX_MEMORY_BROWSE=kn;exports.MAX_MEMORY_BUDGET=$n;exports.MAX_MEMORY_CHARS=Pn;exports.MAX_TOPIC_CANDIDATES=Ge;exports.MAX_TOPIC_EXAMPLES=Fe;exports.MAX_TOPIC_EXAMPLE_CHARS=M;exports.MIN_MEMORY_BUDGET=Dn;exports.PAUSED_RUN_STATUSES=Pe;exports.PHONE_REGIONS=L;exports.PRESENCE_ONLINE_WINDOW_MS=Q;exports.PRESENCE_SURVIVES_OFFLINE=pt;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Ti;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=yi;exports.PUBLIC_EMAIL_DOMAINS=Je;exports.RELATED_SUBJECT_KINDS=Ye;exports.SIGNATURE_INTENTS=Mn;exports.STEP_MAX_TOKENS_MAX=ve;exports.STEP_MAX_TOKENS_MIN=xe;exports.SUMMARY_MIN_LAST_CHARS=Ze;exports.SUMMARY_MIN_MESSAGES=Qe;exports.TERMINAL_RUN_STATUSES=ke;exports.TRIGGER_VARS=Zt;exports.UNSUPPORTED=Ci;exports.USAGE_DIMENSIONS=be;exports.USAGE_DIMENSION_IDS=Se;exports.acceptExampleCandidate=hn;exports.actingIdentityKey=Re;exports.activityIconOf=ht;exports.activityJoinUrl=It;exports.activitySnippet=Ee;exports.activityTextParams=Ae;exports.activityTimelineText=St;exports.activityTimestamp=Rt;exports.activityTypeInfo=p;exports.actorKey=an;exports.addExampleCandidate=gn;exports.agePresenceEntry=ki;exports.aiAttachmentKind=et;exports.aiAttachmentRejection=pi;exports.aiBudgetLimit=F;exports.aiBudgetPeriodKey=In;exports.aiBudgetPeriodStart=je;exports.aiBudgetState=Sn;exports.aiVendorAcceptsAttachment=bn;exports.aiVendorDefaultModel=_n;exports.aiVendorLabel=An;exports.aiVendorNeedsBaseUrl=Tn;exports.aiVendorsWith=yn;exports.appNameFromPath=J;exports.applySignature=Cn;exports.artifactBodyBytes=Xt;exports.artifactOutline=jt;exports.artifactToMarkdown=Yt;exports.buildActivityPreview=Ot;exports.buildChannelIntents=mi;exports.buildShareKeys=zt;exports.canNestUnder=dn;exports.carriesText=yt;exports.categoryLabel=mn;exports.channelKindForScheme=_i;exports.channelKindOf=Et;exports.clampStepMaxTokens=rn;exports.cleanMessageText=ni;exports.defaultLocaleOf=Be;exports.defineIntent=Si;exports.depthOf=Ue;exports.derivePresence=vi;exports.disabledIntentsFromCapabilities=di;exports.emailDomain=Xn;exports.endpointKey=zn;exports.extractParams=st;exports.filterByEndpoint=hi;exports.filterByIntent=gi;exports.filterByTargetScheme=at;exports.findAiVendor=E;exports.flattenLocales=vt;exports.floorToPeriod=Te;exports.formatActingIdentity=Le;exports.formatPeriod=ye;exports.getActivitySeenUserIds=Lt;exports.getContactEndpoints=Nn;exports.getShortTitle=xn;exports.getUrgencyScore=Rn;exports.heightOf=W;exports.helpCenterText=cn;exports.humanizeAction=Qt;exports.isAssigned=On;exports.isClosed=Ln;exports.isDeepLink=Ni;exports.isDescendant=we;exports.isInteractionUnseen=vn;exports.isLandingPath=Oi;exports.isLikelyBulk=ri;exports.isMessageType=At;exports.isMoreSpecificPattern=ct;exports.isPaused=sn;exports.isPlaybookAuthoredType=bt;exports.isPublicEmailDomain=Wn;exports.isPublicPath=xi;exports.isReplyableType=_t;exports.isRetryable=on;exports.isTerminal=De;exports.isThreadLongEnough=oi;exports.linkLabel=ln;exports.localeInstruction=pn;exports.localeName=un;exports.localesOf=fn;exports.looksLikeEmail=Vn;exports.matchContactToIntents=Ei;exports.matchPublicRoute=ut;exports.messageCountsAs=Tt;exports.needsPhoneRegion=Yn;exports.normalizeArtifactBlocks=Ht;exports.normalizeBlocks=gt;exports.normalizeEmail=z;exports.normalizeExample=g;exports.parseActingIdentity=tn;exports.pathToRegex=ot;exports.periodsInRange=Dt;exports.phoneSuffix=Hn;exports.plainTextFromMarkdown=Qn;exports.playbookActor=nn;exports.publicBasePathFor=lt;exports.publicRoutePatterns=Ri;exports.readPath=N;exports.registrableDomain=qe;exports.rejectExampleCandidate=He;exports.relatedByDefault=wn;exports.resolveAccountCapabilities=it;exports.resolveActivityText=O;exports.resolveChannelIntents=nt;exports.resolveSignature=We;exports.sanitizeInline=Oe;exports.shareKeyForTeam=X;exports.shareKeyForUser=H;exports.shareKeysForViewer=qt;exports.stripHtml=he;exports.toE164=G;exports.toolSourceKinds=Jt;exports.topicOfferedForTeam=Xe;exports.topicsForTeam=En;exports.truncateExample=Ve;exports.usageMetricId=Ie;exports.usageMetrics=$t;