@opencxh/domain 1.134.6 → 1.134.9
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/index.cjs +6 -6
- package/dist/index.js +235 -232
- package/dist/platform/ui.d.ts +10 -0
- package/dist/text/message.test.d.ts +1 -0
- package/package.json +10 -1
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=10,d=10,m=10,f=5,pe=new Set(["header","section","context","divider","image","list","actions","attachments"]);function b(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const n=e;return typeof n.key=="string"||typeof n.value=="string"}function ue(e,n=()=>{}){if(!Array.isArray(e))return[];const t=[];for(const i of e){if(t.length>=T){n("more than "+T+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const a=i;if(!pe.has(a.type)){n("unknown block type "+String(a.type));continue}switch(a.type){case"header":if(!b(a.text)){n("a header without text");continue}break;case"context":if(!b(a.text)){n("a context block without text");continue}break;case"image":if(!a.url||!a.alt){n("an image without url or alt");continue}break;case"section":Array.isArray(a.fields)&&a.fields.length>d&&(n("more than "+d+" fields in a section"),a.fields=a.fields.slice(0,d));break;case"list":if(!Array.isArray(a.items)||a.items.length===0){n("a list without items");continue}a.items.length>m&&(n("more than "+m+" list items"),a.items=a.items.slice(0,m));break;case"actions":{const r=Array.isArray(a.elements)?a.elements:[],o=r.filter(l=>l&&l.action_id&&l.invoke&&b(l.text));if(o.length!==r.length&&n("an action without action_id, invoke or text"),o.length===0)continue;o.length>f&&n("more than "+f+" actions"),a.elements=o.slice(0,f);break}}t.push(a)}return t}function K(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 p(e){if(!e||e<0)return"";const n=Math.floor(e/60),t=Math.floor(e%60);return`${n}:${t.toString().padStart(2,"0")}`}function v(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function _(e){return e?.split("@")?.[0]||e||""}function u(e){return e.map(n=>n.name).join(", ")}function C(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const c={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${_(e.payload.from)}`:`Outbound call started — ${_(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek aangenomen",timeline:(e,n)=>`Call answered — ${n}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,n)=>`Call on hold — ${n}`},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?` (${p(e.payload.duration)})`:""}`,timeline:e=>`Call ended${v(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${_(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?` (${p(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:O},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:O},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=>`${u(e.payload.members)} toegevoegd`,timeline:e=>{const n=u(e.payload.members)||"Someone",t=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${n} joined the chat${t}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${u(e.payload.members)} verlaten`,timeline:e=>{const n=u(e.payload.members)||"Someone",t=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${n} left the chat${t}`}},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=>`${C(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?` (${p(e.payload.duration)})`:""}`,timeline:e=>`${C(e.payload.callType)} ended${v(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(n=>n.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?` (${p(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,n)=>`${n} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,n)=>`${n} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,n)=>`Interaction started by ${n}`},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,n)=>`Status changed to ${e.payload.toStatus} by ${n}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,n)=>`Assigned by ${n}`}};function O(e){const n=e.payload,t=n.bodySnippet?.trim()||K(n.body??"");return n.subject?`${n.subject} — ${t}`:t}function s(e){return c[e]}function de(e){return s(e)?.icon??"circle"}function me(e){return s(e)?.channelKind}function fe(e){const n=s(e)?.shape;return n==="message"||n==="note"}function ge(e){return s(e)?.replyable===!0}function Ee(e){return s(e)?.carriesText===!0}function he(e){return s(e)?.countsAs}function ye(e){return s(e)?.playbookAuthored===!0}function w(e){const n=s(e.type)?.snippet;return n?n(e):""}function Ae(e,n){const t=s(e.type)?.timeline;return t?t(e,n):e.type.replace(/_/g," ").toLowerCase()}function be(e){const n=s(e.type)?.joinUrl;return n?n(e):void 0}function E(e,n){let t=e;for(const i of n.split(".")){if(t==null||typeof t!="object")return"";t=t[i]}return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):""}function h(e,n,t){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return E(n,e.value)||null;const i={};for(const[r,o]of Object.entries(e.params??{}))i[r]=E(n,o);const a=t(e.key,i);return a===e.key?null:a}function V(e,n){if(!e||typeof e=="string"||"value"in e)return null;const t={};for(const[i,a]of Object.entries(e.params??{}))t[i]=E(n,a);return{key:e.key,params:t}}const _e=e=>e;function R(e){const n=c[e];return{type:e,shape:n.shape,channelKind:n.channelKind,icon:n.icon,replyable:n.replyable===!0,countsAs:n.countsAs,carriesText:n.carriesText===!0,triggerable:n.triggerable===!0,component:n.component,builtIn:!0,displayNameKey:n.displayNameKey}}function D(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 B{constructor(n=[],t=_e){this.translate=t;for(const i of n)i?.type&&(i.type in c||this.declared.has(i.type)||this.declared.set(i.type,i))}declared=new Map;get(n){if(n in c)return R(n);const t=this.declared.get(n);return t?D(t):void 0}triggerable(){const n=Object.keys(c).filter(i=>c[i].triggerable).map(R),t=[...this.declared.values()].map(D).filter(i=>i.triggerable);return[...n,...t]}timelineText(n,t){const i=c[n.type];if(i?.timeline)return i.timeline(n,t);const a=this.declared.get(n.type);return h(a?.text,n,this.translate)??n.type.replace(/_/g," ").toLowerCase()}snippet(n){const t=c[n.type];if(t?.snippet)return t.snippet(n);const i=this.declared.get(n.type);return h(i?.text,n,this.translate)??""}descriptor(n){return this.declared.get(n)}blocks(n){const t=this.declared.get(n)?.render;return t?.length?t:void 0}get translator(){return this.translate}}const Ie=new B,L=140;function Te(e){const n=e.trim();return n.length<=L?n:n.slice(0,L-1).trimEnd()+"…"}function Se(e,n){const t=V(n?.text,e),i=n?h(n.text,e,a=>a):null;return{activityId:e.id,type:e.type,snippet:Te(i??w(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...t?{snippetKey:t.key,snippetParams:t.params}:{}}}function Me(e,n,t=[]){const i=e.createdAt;if(!i)return[];const a=new Set(t);return e.author.type==="user"&&e.author.id&&a.add(e.author.id),Object.entries(n).filter(([r,o])=>o>=i&&!a.has(r)).map(([r])=>r)}function Ne(e){return e.createdAt??0}const ve=[{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 Ce(e){const n=[];for(const t of Object.keys(e))for(const i of Object.keys(e[t]))n.push({lang:t,key:i,value:e[t][i]});return n}function I(e){return e<10?`0${e}`:`${e}`}function H(e,n){const t=new Date(e),i=`${t.getUTCFullYear()}-${I(t.getUTCMonth()+1)}-${I(t.getUTCDate())}`;return n==="day"?i:`${i}T${I(t.getUTCHours())}`}function j(e,n){const t=new Date(e);return t.setUTCMinutes(0,0,0),n==="day"&&t.setUTCHours(0),t.getTime()}const Oe=36e5,Re=864e5;function De(e,n,t){const i=t==="hour"?Oe:Re,a=[];for(let r=j(e,t);r<=n;r+=i)a.push(H(r,t));return a}const F=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],W=F.map(e=>e.id);function Y(e,n){return`${e}.usage.${n}`}function Le(e,n){return n.map(t=>({id:Y(e,t.unit),label:t.label,category:"Verbruik",valueType:t.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...W,...t.extraDimensions??[],"time"]}))}function ke(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Ue=[{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"}],$e={topics:[{name:"topic",type:"string"},{name:"confidence",type:"number"}],question:[{name:"answer",type:"boolean"},{name:"confidence",type:"number"}],extract:[]};function z(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function xe(e){if(typeof e!="string")return;const n=e.trim();if(n==="org")return{kind:"org"};const t=n.indexOf(":");if(t<=0)return;const i=n.slice(0,t),a=n.slice(t+1).trim();if(a){if(i==="user")return{kind:"user",userId:a};if(i==="team")return{kind:"team",teamId:a}}}function X(e){return z(e)}function Pe(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 Ge(e){return X(e)}const q=["done","escalated","failed","timed_out","stopped"],J=["awaiting_approval","awaiting_reply"];function Q(e){return q.includes(e)}function Ke(e){return Q(e)}function we(e){return J.includes(e)}const M=[{id:"openai",label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",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 M.find(n=>n.id===e)}function Ve(e){return y(e)?.label??e}function Be(e,n="gpt-5-mini"){return y(e)?.defaultModel??n}function He(e){return M.filter(n=>n.capabilities.includes(e))}function je(e){const n=y(e);return!!n&&!n.baseUrl}const Fe=new Set(["mail","message"]);function Z(e,n){const t=e.settings?.signatures?.[n];return!t||!t.enabled||!t.body||t.body.trim()===""?null:t}function We(e,n,t,i="html"){if(!e)return t;const a=Z(e,n);return a?`${t}${i==="text"?`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=10,d=10,m=10,f=5,ue=new Set(["header","section","context","divider","image","list","actions","attachments"]);function b(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const n=e;return typeof n.key=="string"||typeof n.value=="string"}function de(e,n=()=>{}){if(!Array.isArray(e))return[];const t=[];for(const i of e){if(t.length>=T){n("more than "+T+" blocks; the rest was dropped");break}if(!i||typeof i!="object")continue;const a=i;if(!ue.has(a.type)){n("unknown block type "+String(a.type));continue}switch(a.type){case"header":if(!b(a.text)){n("a header without text");continue}break;case"context":if(!b(a.text)){n("a context block without text");continue}break;case"image":if(!a.url||!a.alt){n("an image without url or alt");continue}break;case"section":Array.isArray(a.fields)&&a.fields.length>d&&(n("more than "+d+" fields in a section"),a.fields=a.fields.slice(0,d));break;case"list":if(!Array.isArray(a.items)||a.items.length===0){n("a list without items");continue}a.items.length>m&&(n("more than "+m+" list items"),a.items=a.items.slice(0,m));break;case"actions":{const r=Array.isArray(a.elements)?a.elements:[],o=r.filter(l=>l&&l.action_id&&l.invoke&&b(l.text));if(o.length!==r.length&&n("an action without action_id, invoke or text"),o.length===0)continue;o.length>f&&n("more than "+f+" actions"),a.elements=o.slice(0,f);break}}t.push(a)}return t}function w(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 p(e){if(!e||e<0)return"";const n=Math.floor(e/60),t=Math.floor(e%60);return`${n}:${t.toString().padStart(2,"0")}`}function C(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function I(e){return e?.split("@")?.[0]||e||""}function u(e){return e.map(n=>n.name).join(", ")}function v(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const c={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${I(e.payload.from)}`:`Outbound call started — ${I(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek aangenomen",timeline:(e,n)=>`Call answered — ${n}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,n)=>`Call on hold — ${n}`},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?` (${p(e.payload.duration)})`:""}`,timeline:e=>`Call ended${C(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${I(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?` (${p(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:O},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:O},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=>`${u(e.payload.members)} toegevoegd`,timeline:e=>{const n=u(e.payload.members)||"Someone",t=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${n} joined the chat${t}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${u(e.payload.members)} verlaten`,timeline:e=>{const n=u(e.payload.members)||"Someone",t=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${n} left the chat${t}`}},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=>`${v(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?` (${p(e.payload.duration)})`:""}`,timeline:e=>`${v(e.payload.callType)} ended${C(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(n=>n.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?` (${p(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,n)=>`${n} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,n)=>`${n} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,n)=>`Interaction started by ${n}`},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,n)=>`Status changed to ${e.payload.toStatus} by ${n}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,n)=>`Assigned by ${n}`}};function O(e){const n=e.payload,t=n.bodySnippet?.trim()||w(n.body??"");return n.subject?`${n.subject} — ${t}`:t}function s(e){return c[e]}function me(e){return s(e)?.icon??"circle"}function fe(e){return s(e)?.channelKind}function ge(e){const n=s(e)?.shape;return n==="message"||n==="note"}function Ee(e){return s(e)?.replyable===!0}function he(e){return s(e)?.carriesText===!0}function ye(e){return s(e)?.countsAs}function Ae(e){return s(e)?.playbookAuthored===!0}function V(e){const n=s(e.type)?.snippet;return n?n(e):""}function be(e,n){const t=s(e.type)?.timeline;return t?t(e,n):e.type.replace(/_/g," ").toLowerCase()}function Ie(e){const n=s(e.type)?.joinUrl;return n?n(e):void 0}function E(e,n){let t=e;for(const i of n.split(".")){if(t==null||typeof t!="object")return"";t=t[i]}return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):""}function h(e,n,t){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return E(n,e.value)||null;const i={};for(const[r,o]of Object.entries(e.params??{}))i[r]=E(n,o);const a=t(e.key,i);return a===e.key?null:a}function B(e,n){if(!e||typeof e=="string"||"value"in e)return null;const t={};for(const[i,a]of Object.entries(e.params??{}))t[i]=E(n,a);return{key:e.key,params:t}}const _e=e=>e;function R(e){const n=c[e];return{type:e,shape:n.shape,channelKind:n.channelKind,icon:n.icon,replyable:n.replyable===!0,countsAs:n.countsAs,carriesText:n.carriesText===!0,triggerable:n.triggerable===!0,component:n.component,builtIn:!0,displayNameKey:n.displayNameKey}}function D(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 H{constructor(n=[],t=_e){this.translate=t;for(const i of n)i?.type&&(i.type in c||this.declared.has(i.type)||this.declared.set(i.type,i))}declared=new Map;get(n){if(n in c)return R(n);const t=this.declared.get(n);return t?D(t):void 0}triggerable(){const n=Object.keys(c).filter(i=>c[i].triggerable).map(R),t=[...this.declared.values()].map(D).filter(i=>i.triggerable);return[...n,...t]}timelineText(n,t){const i=c[n.type];if(i?.timeline)return i.timeline(n,t);const a=this.declared.get(n.type);return h(a?.text,n,this.translate)??n.type.replace(/_/g," ").toLowerCase()}snippet(n){const t=c[n.type];if(t?.snippet)return t.snippet(n);const i=this.declared.get(n.type);return h(i?.text,n,this.translate)??""}descriptor(n){return this.declared.get(n)}blocks(n){const t=this.declared.get(n)?.render;return t?.length?t:void 0}get translator(){return this.translate}}const Te=new H,L=140;function Se(e){const n=e.trim();return n.length<=L?n:n.slice(0,L-1).trimEnd()+"…"}function Me(e,n){const t=B(n?.text,e),i=n?h(n.text,e,a=>a):null;return{activityId:e.id,type:e.type,snippet:Se(i??V(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...t?{snippetKey:t.key,snippetParams:t.params}:{}}}function Ne(e,n,t=[]){const i=e.createdAt;if(!i)return[];const a=new Set(t);return e.author.type==="user"&&e.author.id&&a.add(e.author.id),Object.entries(n).filter(([r,o])=>o>=i&&!a.has(r)).map(([r])=>r)}function Ce(e){return e.createdAt??0}const ve=[{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 Oe(e){const n=[];for(const t of Object.keys(e))for(const i of Object.keys(e[t]))n.push({lang:t,key:i,value:e[t][i]});return n}function _(e){return e<10?`0${e}`:`${e}`}function j(e,n){const t=new Date(e),i=`${t.getUTCFullYear()}-${_(t.getUTCMonth()+1)}-${_(t.getUTCDate())}`;return n==="day"?i:`${i}T${_(t.getUTCHours())}`}function F(e,n){const t=new Date(e);return t.setUTCMinutes(0,0,0),n==="day"&&t.setUTCHours(0),t.getTime()}const Re=36e5,De=864e5;function Le(e,n,t){const i=t==="hour"?Re:De,a=[];for(let r=F(e,t);r<=n;r+=i)a.push(j(r,t));return a}const W=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Y=W.map(e=>e.id);function z(e,n){return`${e}.usage.${n}`}function ke(e,n){return n.map(t=>({id:z(e,t.unit),label:t.label,category:"Verbruik",valueType:t.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Y,...t.extraDimensions??[],"time"]}))}function Ue(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const $e=[{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"}],xe={topics:[{name:"topic",type:"string"},{name:"confidence",type:"number"}],question:[{name:"answer",type:"boolean"},{name:"confidence",type:"number"}],extract:[]};function X(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Pe(e){if(typeof e!="string")return;const n=e.trim();if(n==="org")return{kind:"org"};const t=n.indexOf(":");if(t<=0)return;const i=n.slice(0,t),a=n.slice(t+1).trim();if(a){if(i==="user")return{kind:"user",userId:a};if(i==="team")return{kind:"team",teamId:a}}}function q(e){return X(e)}function Ge(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 Ke(e){return q(e)}const J=["done","escalated","failed","timed_out","stopped"],Q=["awaiting_approval","awaiting_reply"];function Z(e){return J.includes(e)}function we(e){return Z(e)}function Ve(e){return Q.includes(e)}const M=[{id:"openai",label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",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 M.find(n=>n.id===e)}function Be(e){return y(e)?.label??e}function He(e,n="gpt-5-mini"){return y(e)?.defaultModel??n}function je(e){return M.filter(n=>n.capabilities.includes(e))}function Fe(e){const n=y(e);return!!n&&!n.baseUrl}const We=new Set(["mail","message"]);function ee(e,n){const t=e.settings?.signatures?.[n];return!t||!t.enabled||!t.body||t.body.trim()===""?null:t}function Ye(e,n,t,i="html"){if(!e)return t;const a=ee(e,n);return a?`${t}${i==="text"?`
|
|
2
2
|
|
|
3
|
-
`:n==="mail"?"<br><br>-- <br>":"<br><br>"}${a.body}`:t}function
|
|
3
|
+
`:n==="mail"?"<br><br>-- <br>":"<br><br>"}${a.body}`:t}function ze(e){return e.endpoints??[]}const Xe=e=>!!e.assignedUserId||!!e.assignedInboxId,qe=e=>e.status==="closed",Je=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Qe=(e,n=30)=>e.title?.length<=n?e.title:`${e.title.substring(0,n)}...`;function Ze(e,n){return e.lastActivityAt?!(e.seenBy??[]).includes(n):!1}const en=2e3,nn=500,tn=12e3,an=4e3,ne=["contact","company"];function rn(e){if(!e)return!1;const n=e.slice(0,e.indexOf(":"));return ne.includes(n)}const A={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}},te="NL",on=15,sn=8,ln=Array.from(new Set(Object.values(A).map(e=>e.callingCode))).sort((e,n)=>n.length-e.length);function k(e){if(e)return A[e.trim().toUpperCase()]}function g(e,n){return e.length>=n.nsnMin&&e.length<=n.nsnMax}function U(e){if(e.length>on)return null;for(const n of ln){if(!e.startsWith(n))continue;const t=e.slice(n.length);for(const i of Object.values(A)){if(i.callingCode!==n)continue;const a=i.trunkPrefix,r=a&&t.startsWith(a)?t.slice(a.length):t;if(g(r,i))return`+${n}${r}`}return null}return e.length<sn?null:`+${e}`}function cn(e){let n=e.trim();const t=n.match(/^(sips?|tel|whatsapp):/i);t&&(n=n.slice(t[0].length));const i=n.indexOf("@");return i>=0&&(n=n.slice(0,i)),n.trim()}function pn(e){if(!e)return!1;const n=e.indexOf("@");if(n<=0)return!1;const t=e.slice(0,n).trim();return!/^[+\d\s().-]+$/.test(t)}function S(e,n){if(!e)return null;const t=cn(e);if(!t)return null;const i=t.startsWith("+"),a=t.replace(/\D/g,"");if(!a)return null;if(i)return U(a);if(a.startsWith("00"))return U(a.slice(2));const r=k(n)??k(te);if(!r)return null;const o=r.trunkPrefix;if(o&&a.startsWith(o)){const l=a.slice(o.length);return g(l,r)?`+${r.callingCode}${l}`:null}if(a.startsWith(r.callingCode)){const l=a.slice(r.callingCode.length);if(g(l,r))return`+${r.callingCode}${l}`}return!o&&g(a,r)?`+${r.callingCode}${a}`:null}function un(e,n=9){const t=(e??"").replace(/\D/g,"");return t.length<n?null:t.slice(-n)}function N(e){if(!e)return null;const n=e.trim().toLowerCase(),t=n.lastIndexOf("@");if(t<=0||t===n.length-1)return null;const i=n.slice(0,t).split("+")[0],a=n.slice(t+1);return!i||!a.includes(".")?null:`${i}@${a}`}function dn(e){const n=N(e);return n?n.slice(n.lastIndexOf("@")+1):null}const mn=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function ie(e){if(!e)return null;const n=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(n.length<2)return null;const t=n.slice(-2).join(".");return mn.has(t)&&n.length>=3?n.slice(-3).join("."):t}const ae=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 n=ie(e);return n?ae.has(n):!1}function gn(e){if(!e)return!1;const n=e.trim().toLowerCase();return n==="tel"||n==="sms"||n==="whatsapp"||n==="fax"}function En(e,n,t){if(!e||!n)return null;const i=e.trim().toLowerCase();if(i==="tel"||i==="sms"||i==="whatsapp"){const r=S(n,t);return r?`tel:${r}`:null}if(i==="fax"){const r=S(n,t);return r?`fax:${r}`:null}if(i==="mailto"||i==="email"){const r=N(n);return r?`mailto:${r}`:null}const a=n.trim().toLowerCase();return a?`${i}:${a}`:null}const hn=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,yn=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function An(e){if(typeof e!="string"||!e)return"";let n=e;return n=n.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),n=n.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),n=n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),n=n.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),n=n.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),n=n.split(`
|
|
4
4
|
`).map(t=>t.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s{0,3}>\s?/,"").replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").replace(/^\s*(?:[-*_]\s*){3,}$/,"")).join(`
|
|
5
|
-
`),n=n.replace(
|
|
6
|
-
`);for(let t=0;t<n.length;t++)if(
|
|
5
|
+
`),n=n.replace(hn,"$2"),n=n.replace(yn,"$2"),n=n.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),n=n.replace(/`([^`\n]+)`/g,"$1"),n.replace(/\s+/g," ").trim()}const bn=[/<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],$=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,In=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function _n(e){const n=e.split(`
|
|
6
|
+
`);for(let t=0;t<n.length;t++)if(In.test(n[t])||$.test(n[t])&&n.slice(t+1,t+4).some(i=>$.test(i)))return n.slice(0,t).join(`
|
|
7
7
|
`).trim();return e}function x(e){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<br\s*\/?>/gi,`
|
|
8
8
|
`),n=n.replace(/<\/(p|div|li|tr|h[1-6]|ul|ol|table)>/gi,`
|
|
9
|
-
`),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function P(e){return e.replace(/ /gi," ").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#
|
|
9
|
+
`),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function P(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}function G(e){return e.replace(/ /gi," ").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(n,t)=>P(Number(t))??n).replace(/&#x([0-9a-f]+);/gi,(n,t)=>P(parseInt(t,16))??n).replace(/&/gi,"&")}function K(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
10
10
|
`).replace(/\n{3,}/g,`
|
|
11
11
|
|
|
12
|
-
`).trim()}function
|
|
12
|
+
`).trim()}function Tn(e){if(typeof e!="string"||!e)return"";let n=e.length;for(const r of bn){const o=e.search(r);o>=0&&o<n&&(n=o)}const t=e.slice(0,n);let i=K(G(x(t)));return i||(i=K(G(x(e)))),_n(i)||i}const Sn=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Mn=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Nn(e,n){return!!(e&&Sn.test(e)||n&&Mn.test(n))}const re=3,oe=600;function Cn(e,n){return e>=re||n>=oe}function se(e,n){const t=new Set(e.disabledIntents??[]),i=e.intentOverrides??{},a=n.intents.filter(o=>!t.has(o.intent)).map(o=>On(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 le(e,n){const t={};for(const i of e.intents){if(!i.togglable)continue;const a=n?.[i.intent];t[i.intent]=a??i.defaultEnabled??!0}return t}function vn(e,n){const t=le(e,n);return Object.entries(t).filter(([,i])=>!i).map(([i])=>i)}function On(e,n){return n?{intent:n.intent??e.intent,targetSchemes:n.targetSchemes??e.targetSchemes,transport:n.transport??e.transport}:e}function Rn(e,n){const t=[];for(const i of e){if(!i.enabled)continue;const a=n[i.providerId];if(a)for(const r of se(i,a))t.push({channel:i,description:a,capability:r})}return t}function Dn(e,n){return n.filter(t=>t.capability.intent===e)}function ce(e,n){return n.filter(t=>t.capability.targetSchemes.includes(e))}function Ln(e,n){return ce(e.scheme,n)}function kn(e,n,t){const i=[];for(const a of e)for(const r of t)r.capability.intent===n&&r.capability.targetSchemes.includes(a.scheme)&&i.push({channelIntent:r,endpoint:a});return i}var pe=(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))(pe||{});const Un="message_window",$n="message_templates",xn={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Pn=(e,n)=>({intent:e,...n}),Gn="folder_management",Kn="remote_search",wn={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},Vn=9e4,Bn="installation-id";exports.ACTIVITY_CATALOG=c;exports.AI_VENDORS=M;exports.ActivityTypeRegistry=H;exports.BUILT_IN_ONLY=Te;exports.CLASSIFY_VARS=xe;exports.CORE_DIMENSIONS=ve;exports.CommunicationScheme=pe;exports.DEFAULT_MEMORY_BUDGET=an;exports.DEFAULT_PHONE_REGION=te;exports.FEATURE_FOLDER_MANAGEMENT=Gn;exports.FEATURE_REMOTE_SEARCH=Kn;exports.INSTALLATION_HEADER=Bn;exports.InteractionParticipantRole=xn;exports.MAX_ACTIONS=f;exports.MAX_BLOCKS=T;exports.MAX_FIELDS=d;exports.MAX_LIST_ITEMS=m;exports.MAX_MEMORY_BUDGET=tn;exports.MAX_MEMORY_CHARS=en;exports.MIN_MEMORY_BUDGET=nn;exports.PAUSED_RUN_STATUSES=Q;exports.PHONE_REGIONS=A;exports.PRESENCE_ONLINE_WINDOW_MS=Vn;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=$n;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Un;exports.PUBLIC_EMAIL_DOMAINS=ae;exports.RELATED_SUBJECT_KINDS=ne;exports.SIGNATURE_INTENTS=We;exports.SUMMARY_MIN_LAST_CHARS=oe;exports.SUMMARY_MIN_MESSAGES=re;exports.TERMINAL_RUN_STATUSES=J;exports.TRIGGER_VARS=$e;exports.UNSUPPORTED=wn;exports.USAGE_DIMENSIONS=W;exports.USAGE_DIMENSION_IDS=Y;exports.actingIdentityKey=q;exports.activityIconOf=me;exports.activityJoinUrl=Ie;exports.activitySnippet=V;exports.activityTextParams=B;exports.activityTimelineText=be;exports.activityTimestamp=Ce;exports.activityTypeInfo=s;exports.actorKey=Ke;exports.aiVendorDefaultModel=He;exports.aiVendorLabel=Be;exports.aiVendorNeedsBaseUrl=Fe;exports.aiVendorsWith=je;exports.applySignature=Ye;exports.buildActivityPreview=Me;exports.buildChannelIntents=Rn;exports.carriesText=he;exports.channelKindOf=fe;exports.cleanMessageText=Tn;exports.defineIntent=Pn;exports.disabledIntentsFromCapabilities=vn;exports.emailDomain=dn;exports.endpointKey=En;exports.filterByEndpoint=Ln;exports.filterByIntent=Dn;exports.filterByTargetScheme=ce;exports.findAiVendor=y;exports.flattenLocales=Oe;exports.floorToPeriod=F;exports.formatActingIdentity=X;exports.formatPeriod=j;exports.getActivitySeenUserIds=Ne;exports.getContactEndpoints=ze;exports.getShortTitle=Qe;exports.getUrgencyScore=Je;exports.humanizeAction=Ue;exports.isAssigned=Xe;exports.isClosed=qe;exports.isInteractionUnseen=Ze;exports.isLikelyBulk=Nn;exports.isMessageType=ge;exports.isPaused=Ve;exports.isPlaybookAuthoredType=Ae;exports.isPublicEmailDomain=fn;exports.isReplyableType=Ee;exports.isRetryable=we;exports.isTerminal=Z;exports.isThreadLongEnough=Cn;exports.looksLikeEmail=pn;exports.matchContactToIntents=kn;exports.messageCountsAs=ye;exports.needsPhoneRegion=gn;exports.normalizeBlocks=de;exports.normalizeEmail=N;exports.parseActingIdentity=Pe;exports.periodsInRange=Le;exports.phoneSuffix=un;exports.plainTextFromMarkdown=An;exports.playbookActor=Ge;exports.readPath=E;exports.registrableDomain=ie;exports.relatedByDefault=rn;exports.resolveAccountCapabilities=le;exports.resolveActivityText=h;exports.resolveChannelIntents=se;exports.resolveSignature=ee;exports.stripHtml=w;exports.toE164=S;exports.usageMetricId=z;exports.usageMetrics=ke;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const Me = 10, Ce = 10, ve = 10, Ne = 5, U = /* @__PURE__ */ new Set([
|
|
2
2
|
"header",
|
|
3
3
|
"section",
|
|
4
4
|
"context",
|
|
@@ -14,7 +14,7 @@ function m(e) {
|
|
|
14
14
|
const n = e;
|
|
15
15
|
return typeof n.key == "string" || typeof n.value == "string";
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function Oe(e, n = () => {
|
|
18
18
|
}) {
|
|
19
19
|
if (!Array.isArray(e)) return [];
|
|
20
20
|
const t = [];
|
|
@@ -25,7 +25,7 @@ function Ne(e, n = () => {
|
|
|
25
25
|
}
|
|
26
26
|
if (!i || typeof i != "object") continue;
|
|
27
27
|
const a = i;
|
|
28
|
-
if (!
|
|
28
|
+
if (!U.has(a.type)) {
|
|
29
29
|
n("unknown block type " + String(a.type));
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
@@ -69,7 +69,7 @@ function Ne(e, n = () => {
|
|
|
69
69
|
}
|
|
70
70
|
return t;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
72
|
+
function P(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 p(e) {
|
|
@@ -86,7 +86,7 @@ function f(e) {
|
|
|
86
86
|
function u(e) {
|
|
87
87
|
return e.map((n) => n.name).join(", ");
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function I(e) {
|
|
90
90
|
return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
|
|
91
91
|
}
|
|
92
92
|
const c = {
|
|
@@ -204,7 +204,7 @@ const c = {
|
|
|
204
204
|
replyable: !0,
|
|
205
205
|
carriesText: !0,
|
|
206
206
|
countsAs: "inbound_message",
|
|
207
|
-
snippet:
|
|
207
|
+
snippet: _
|
|
208
208
|
},
|
|
209
209
|
EMAIL_SENT: {
|
|
210
210
|
shape: "message",
|
|
@@ -214,7 +214,7 @@ const c = {
|
|
|
214
214
|
replyable: !0,
|
|
215
215
|
carriesText: !0,
|
|
216
216
|
countsAs: "outbound_message",
|
|
217
|
-
snippet:
|
|
217
|
+
snippet: _
|
|
218
218
|
},
|
|
219
219
|
/* ---- chat ---- */
|
|
220
220
|
CHAT_MESSAGE_SENT: {
|
|
@@ -271,7 +271,7 @@ const c = {
|
|
|
271
271
|
channelKind: "chat",
|
|
272
272
|
icon: "message-circle",
|
|
273
273
|
snippet: () => "Gesprek gestart",
|
|
274
|
-
timeline: (e) => `${
|
|
274
|
+
timeline: (e) => `${I(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
|
|
275
275
|
joinUrl: (e) => e.payload.joinUrl
|
|
276
276
|
},
|
|
277
277
|
CHAT_CALL_ENDED: {
|
|
@@ -279,7 +279,7 @@ const c = {
|
|
|
279
279
|
channelKind: "chat",
|
|
280
280
|
icon: "message-circle",
|
|
281
281
|
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${p(e.payload.duration)})` : ""}`,
|
|
282
|
-
timeline: (e) => `${
|
|
282
|
+
timeline: (e) => `${I(e.payload.callType)} ended${A(e.payload.duration)}`,
|
|
283
283
|
joinUrl: (e) => e.payload.joinUrl
|
|
284
284
|
},
|
|
285
285
|
CHAT_EVENT: {
|
|
@@ -404,44 +404,44 @@ const c = {
|
|
|
404
404
|
timeline: (e, n) => `Assigned by ${n}`
|
|
405
405
|
}
|
|
406
406
|
};
|
|
407
|
-
function
|
|
408
|
-
const n = e.payload, t = n.bodySnippet?.trim() ||
|
|
407
|
+
function _(e) {
|
|
408
|
+
const n = e.payload, t = n.bodySnippet?.trim() || P(n.body ?? "");
|
|
409
409
|
return n.subject ? `${n.subject} — ${t}` : t;
|
|
410
410
|
}
|
|
411
411
|
function l(e) {
|
|
412
412
|
return c[e];
|
|
413
413
|
}
|
|
414
|
-
function
|
|
414
|
+
function ke(e) {
|
|
415
415
|
return l(e)?.icon ?? "circle";
|
|
416
416
|
}
|
|
417
|
-
function
|
|
417
|
+
function De(e) {
|
|
418
418
|
return l(e)?.channelKind;
|
|
419
419
|
}
|
|
420
|
-
function
|
|
420
|
+
function Le(e) {
|
|
421
421
|
const n = l(e)?.shape;
|
|
422
422
|
return n === "message" || n === "note";
|
|
423
423
|
}
|
|
424
|
-
function
|
|
424
|
+
function $e(e) {
|
|
425
425
|
return l(e)?.replyable === !0;
|
|
426
426
|
}
|
|
427
|
-
function
|
|
427
|
+
function Re(e) {
|
|
428
428
|
return l(e)?.carriesText === !0;
|
|
429
429
|
}
|
|
430
|
-
function
|
|
430
|
+
function xe(e) {
|
|
431
431
|
return l(e)?.countsAs;
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function Ue(e) {
|
|
434
434
|
return l(e)?.playbookAuthored === !0;
|
|
435
435
|
}
|
|
436
|
-
function
|
|
436
|
+
function w(e) {
|
|
437
437
|
const n = l(e.type)?.snippet;
|
|
438
438
|
return n ? n(e) : "";
|
|
439
439
|
}
|
|
440
|
-
function
|
|
440
|
+
function Pe(e, n) {
|
|
441
441
|
const t = l(e.type)?.timeline;
|
|
442
442
|
return t ? t(e, n) : e.type.replace(/_/g, " ").toLowerCase();
|
|
443
443
|
}
|
|
444
|
-
function
|
|
444
|
+
function we(e) {
|
|
445
445
|
const n = l(e.type)?.joinUrl;
|
|
446
446
|
return n ? n(e) : void 0;
|
|
447
447
|
}
|
|
@@ -464,14 +464,14 @@ function y(e, n, t) {
|
|
|
464
464
|
const a = t(e.key, i);
|
|
465
465
|
return a === e.key ? null : a;
|
|
466
466
|
}
|
|
467
|
-
function
|
|
467
|
+
function K(e, n) {
|
|
468
468
|
if (!e || typeof e == "string" || "value" in e) return null;
|
|
469
469
|
const t = {};
|
|
470
470
|
for (const [i, a] of Object.entries(e.params ?? {}))
|
|
471
471
|
t[i] = h(n, a);
|
|
472
472
|
return { key: e.key, params: t };
|
|
473
473
|
}
|
|
474
|
-
const
|
|
474
|
+
const G = (e) => e;
|
|
475
475
|
function T(e) {
|
|
476
476
|
const n = c[e];
|
|
477
477
|
return {
|
|
@@ -503,8 +503,8 @@ function S(e) {
|
|
|
503
503
|
displayNameKey: e.displayNameKey
|
|
504
504
|
};
|
|
505
505
|
}
|
|
506
|
-
class
|
|
507
|
-
constructor(n = [], t =
|
|
506
|
+
class V {
|
|
507
|
+
constructor(n = [], t = G) {
|
|
508
508
|
this.translate = t;
|
|
509
509
|
for (const i of n)
|
|
510
510
|
i?.type && (i.type in c || this.declared.has(i.type) || this.declared.set(i.type, i));
|
|
@@ -552,33 +552,33 @@ class G {
|
|
|
552
552
|
return this.translate;
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
|
-
const
|
|
556
|
-
function
|
|
555
|
+
const Ke = new V(), M = 140;
|
|
556
|
+
function H(e) {
|
|
557
557
|
const n = e.trim();
|
|
558
558
|
return n.length <= M ? n : n.slice(0, M - 1).trimEnd() + "…";
|
|
559
559
|
}
|
|
560
|
-
function
|
|
561
|
-
const t =
|
|
560
|
+
function Ge(e, n) {
|
|
561
|
+
const t = K(n?.text, e), i = n ? y(n.text, e, (a) => a) : null;
|
|
562
562
|
return {
|
|
563
563
|
activityId: e.id,
|
|
564
564
|
type: e.type,
|
|
565
|
-
snippet:
|
|
565
|
+
snippet: H(i ?? w(e)),
|
|
566
566
|
authorName: e.author?.name ?? "",
|
|
567
567
|
direction: e.direction,
|
|
568
568
|
createdAt: e.createdAt ?? Date.now(),
|
|
569
569
|
...t ? { snippetKey: t.key, snippetParams: t.params } : {}
|
|
570
570
|
};
|
|
571
571
|
}
|
|
572
|
-
function
|
|
572
|
+
function Ve(e, n, t = []) {
|
|
573
573
|
const i = e.createdAt;
|
|
574
574
|
if (!i) return [];
|
|
575
575
|
const a = new Set(t);
|
|
576
576
|
return e.author.type === "user" && e.author.id && a.add(e.author.id), Object.entries(n).filter(([r, o]) => o >= i && !a.has(r)).map(([r]) => r);
|
|
577
577
|
}
|
|
578
|
-
function
|
|
578
|
+
function He(e) {
|
|
579
579
|
return e.createdAt ?? 0;
|
|
580
580
|
}
|
|
581
|
-
const
|
|
581
|
+
const je = [
|
|
582
582
|
{ id: "agent", label: "Agent", labelSource: "user" },
|
|
583
583
|
{ id: "team", label: "Team", labelSource: "team" },
|
|
584
584
|
{ id: "inbox", label: "Inbox", labelSource: "inbox" },
|
|
@@ -588,7 +588,7 @@ const He = [
|
|
|
588
588
|
{ id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
|
|
589
589
|
{ id: "time", label: "Tijd", labelSource: "raw" }
|
|
590
590
|
];
|
|
591
|
-
function
|
|
591
|
+
function Be(e) {
|
|
592
592
|
const n = [];
|
|
593
593
|
for (const t of Object.keys(e))
|
|
594
594
|
for (const i of Object.keys(e[t]))
|
|
@@ -598,47 +598,47 @@ function je(e) {
|
|
|
598
598
|
function g(e) {
|
|
599
599
|
return e < 10 ? `0${e}` : `${e}`;
|
|
600
600
|
}
|
|
601
|
-
function
|
|
601
|
+
function j(e, n) {
|
|
602
602
|
const t = new Date(e), i = `${t.getUTCFullYear()}-${g(t.getUTCMonth() + 1)}-${g(t.getUTCDate())}`;
|
|
603
603
|
return n === "day" ? i : `${i}T${g(t.getUTCHours())}`;
|
|
604
604
|
}
|
|
605
|
-
function
|
|
605
|
+
function B(e, n) {
|
|
606
606
|
const t = new Date(e);
|
|
607
607
|
return t.setUTCMinutes(0, 0, 0), n === "day" && t.setUTCHours(0), t.getTime();
|
|
608
608
|
}
|
|
609
|
-
const
|
|
610
|
-
function
|
|
611
|
-
const i = t === "hour" ?
|
|
612
|
-
for (let r =
|
|
613
|
-
a.push(
|
|
609
|
+
const F = 36e5, X = 864e5;
|
|
610
|
+
function Fe(e, n, t) {
|
|
611
|
+
const i = t === "hour" ? F : X, a = [];
|
|
612
|
+
for (let r = B(e, t); r <= n; r += i)
|
|
613
|
+
a.push(j(r, t));
|
|
614
614
|
return a;
|
|
615
615
|
}
|
|
616
|
-
const
|
|
616
|
+
const W = [
|
|
617
617
|
{ id: "resource", label: "Resource", labelSource: "raw" },
|
|
618
618
|
{ id: "origin", label: "Herkomst", labelSource: "raw" }
|
|
619
|
-
],
|
|
620
|
-
function
|
|
619
|
+
], Y = W.map((e) => e.id);
|
|
620
|
+
function z(e, n) {
|
|
621
621
|
return `${e}.usage.${n}`;
|
|
622
622
|
}
|
|
623
|
-
function
|
|
623
|
+
function Xe(e, n) {
|
|
624
624
|
return n.map((t) => ({
|
|
625
|
-
id:
|
|
625
|
+
id: z(e, t.unit),
|
|
626
626
|
label: t.label,
|
|
627
627
|
category: "Verbruik",
|
|
628
628
|
valueType: t.valueType ?? "count",
|
|
629
629
|
aggregation: "sum",
|
|
630
630
|
supportedDimensions: [
|
|
631
631
|
"provider",
|
|
632
|
-
...
|
|
632
|
+
...Y,
|
|
633
633
|
...t.extraDimensions ?? [],
|
|
634
634
|
"time"
|
|
635
635
|
]
|
|
636
636
|
}));
|
|
637
637
|
}
|
|
638
|
-
function
|
|
638
|
+
function We(e) {
|
|
639
639
|
return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
|
|
640
640
|
}
|
|
641
|
-
const
|
|
641
|
+
const Ye = [
|
|
642
642
|
{ name: "text", type: "string" },
|
|
643
643
|
{ name: "subject", type: "string" },
|
|
644
644
|
{ name: "from", type: "string" },
|
|
@@ -661,7 +661,7 @@ const We = [
|
|
|
661
661
|
// een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
|
|
662
662
|
{ name: "contactId", type: "string" },
|
|
663
663
|
{ name: "companyId", type: "string" }
|
|
664
|
-
],
|
|
664
|
+
], ze = {
|
|
665
665
|
topics: [
|
|
666
666
|
{ name: "topic", type: "string" },
|
|
667
667
|
{ name: "confidence", type: "number" }
|
|
@@ -672,7 +672,7 @@ const We = [
|
|
|
672
672
|
],
|
|
673
673
|
extract: []
|
|
674
674
|
};
|
|
675
|
-
function
|
|
675
|
+
function q(e) {
|
|
676
676
|
switch (e.kind) {
|
|
677
677
|
case "user":
|
|
678
678
|
return `user:${e.userId}`;
|
|
@@ -682,7 +682,7 @@ function z(e) {
|
|
|
682
682
|
return "org";
|
|
683
683
|
}
|
|
684
684
|
}
|
|
685
|
-
function
|
|
685
|
+
function qe(e) {
|
|
686
686
|
if (typeof e != "string") return;
|
|
687
687
|
const n = e.trim();
|
|
688
688
|
if (n === "org") return { kind: "org" };
|
|
@@ -694,10 +694,10 @@ function ze(e) {
|
|
|
694
694
|
if (i === "team") return { kind: "team", teamId: a };
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
|
-
function
|
|
698
|
-
return
|
|
697
|
+
function J(e) {
|
|
698
|
+
return q(e);
|
|
699
699
|
}
|
|
700
|
-
function
|
|
700
|
+
function Je(e) {
|
|
701
701
|
switch (e.kind) {
|
|
702
702
|
case "personal":
|
|
703
703
|
return { kind: "user", userId: e.userId };
|
|
@@ -707,20 +707,20 @@ function qe(e) {
|
|
|
707
707
|
return { kind: "org" };
|
|
708
708
|
}
|
|
709
709
|
}
|
|
710
|
-
function Je(e) {
|
|
711
|
-
return q(e);
|
|
712
|
-
}
|
|
713
|
-
const J = ["done", "escalated", "failed", "timed_out", "stopped"], Q = ["awaiting_approval", "awaiting_reply"];
|
|
714
|
-
function Z(e) {
|
|
715
|
-
return J.includes(e);
|
|
716
|
-
}
|
|
717
710
|
function Qe(e) {
|
|
718
|
-
return
|
|
711
|
+
return J(e);
|
|
719
712
|
}
|
|
720
|
-
|
|
713
|
+
const Q = ["done", "escalated", "failed", "timed_out", "stopped"], Z = ["awaiting_approval", "awaiting_reply"];
|
|
714
|
+
function ee(e) {
|
|
721
715
|
return Q.includes(e);
|
|
722
716
|
}
|
|
723
|
-
|
|
717
|
+
function Ze(e) {
|
|
718
|
+
return ee(e);
|
|
719
|
+
}
|
|
720
|
+
function en(e) {
|
|
721
|
+
return Z.includes(e);
|
|
722
|
+
}
|
|
723
|
+
const R = [
|
|
724
724
|
{
|
|
725
725
|
id: "openai",
|
|
726
726
|
label: "OpenAI",
|
|
@@ -809,50 +809,50 @@ const $ = [
|
|
|
809
809
|
}
|
|
810
810
|
];
|
|
811
811
|
function E(e) {
|
|
812
|
-
return
|
|
812
|
+
return R.find((n) => n.id === e);
|
|
813
813
|
}
|
|
814
|
-
function
|
|
814
|
+
function nn(e) {
|
|
815
815
|
return E(e)?.label ?? e;
|
|
816
816
|
}
|
|
817
|
-
function
|
|
817
|
+
function tn(e, n = "gpt-5-mini") {
|
|
818
818
|
return E(e)?.defaultModel ?? n;
|
|
819
819
|
}
|
|
820
|
-
function tn(e) {
|
|
821
|
-
return $.filter((n) => n.capabilities.includes(e));
|
|
822
|
-
}
|
|
823
820
|
function an(e) {
|
|
821
|
+
return R.filter((n) => n.capabilities.includes(e));
|
|
822
|
+
}
|
|
823
|
+
function rn(e) {
|
|
824
824
|
const n = E(e);
|
|
825
825
|
return !!n && !n.baseUrl;
|
|
826
826
|
}
|
|
827
|
-
const
|
|
828
|
-
function
|
|
827
|
+
const on = /* @__PURE__ */ new Set(["mail", "message"]);
|
|
828
|
+
function ne(e, n) {
|
|
829
829
|
const t = e.settings?.signatures?.[n];
|
|
830
830
|
return !t || !t.enabled || !t.body || t.body.trim() === "" ? null : t;
|
|
831
831
|
}
|
|
832
|
-
function
|
|
832
|
+
function sn(e, n, t, i = "html") {
|
|
833
833
|
if (!e) return t;
|
|
834
|
-
const a =
|
|
834
|
+
const a = ne(e, n);
|
|
835
835
|
return a ? `${t}${i === "text" ? `
|
|
836
836
|
|
|
837
837
|
` : n === "mail" ? "<br><br>-- <br>" : "<br><br>"}${a.body}` : t;
|
|
838
838
|
}
|
|
839
|
-
function
|
|
839
|
+
function ln(e) {
|
|
840
840
|
return e.endpoints ?? [];
|
|
841
841
|
}
|
|
842
|
-
const
|
|
842
|
+
const cn = (e) => !!e.assignedUserId || !!e.assignedInboxId, pn = (e) => e.status === "closed", un = (e) => ({
|
|
843
843
|
urgent: 10,
|
|
844
844
|
high: 5,
|
|
845
845
|
normal: 2,
|
|
846
846
|
low: 1
|
|
847
|
-
})[e.priority] || 0,
|
|
848
|
-
function
|
|
847
|
+
})[e.priority] || 0, dn = (e, n = 30) => e.title?.length <= n ? e.title : `${e.title.substring(0, n)}...`;
|
|
848
|
+
function mn(e, n) {
|
|
849
849
|
return e.lastActivityAt ? !(e.seenBy ?? []).includes(n) : !1;
|
|
850
850
|
}
|
|
851
|
-
const
|
|
852
|
-
function
|
|
851
|
+
const fn = 2e3, gn = 500, hn = 12e3, yn = 4e3, te = ["contact", "company"];
|
|
852
|
+
function En(e) {
|
|
853
853
|
if (!e) return !1;
|
|
854
854
|
const n = e.slice(0, e.indexOf(":"));
|
|
855
|
-
return
|
|
855
|
+
return te.includes(n);
|
|
856
856
|
}
|
|
857
857
|
const b = {
|
|
858
858
|
// The lower bounds are deliberately generous: service ranges (0800/0900) are
|
|
@@ -877,7 +877,7 @@ const b = {
|
|
|
877
877
|
PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
|
|
878
878
|
US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
|
|
879
879
|
CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
|
|
880
|
-
},
|
|
880
|
+
}, ie = "NL", ae = 15, re = 8, oe = Array.from(
|
|
881
881
|
new Set(Object.values(b).map((e) => e.callingCode))
|
|
882
882
|
).sort((e, n) => n.length - e.length);
|
|
883
883
|
function C(e) {
|
|
@@ -888,8 +888,8 @@ function d(e, n) {
|
|
|
888
888
|
return e.length >= n.nsnMin && e.length <= n.nsnMax;
|
|
889
889
|
}
|
|
890
890
|
function v(e) {
|
|
891
|
-
if (e.length >
|
|
892
|
-
for (const n of
|
|
891
|
+
if (e.length > ae) return null;
|
|
892
|
+
for (const n of oe) {
|
|
893
893
|
if (!e.startsWith(n)) continue;
|
|
894
894
|
const t = e.slice(n.length);
|
|
895
895
|
for (const i of Object.values(b)) {
|
|
@@ -899,16 +899,16 @@ function v(e) {
|
|
|
899
899
|
}
|
|
900
900
|
return null;
|
|
901
901
|
}
|
|
902
|
-
return e.length <
|
|
902
|
+
return e.length < re ? null : `+${e}`;
|
|
903
903
|
}
|
|
904
|
-
function
|
|
904
|
+
function se(e) {
|
|
905
905
|
let n = e.trim();
|
|
906
906
|
const t = n.match(/^(sips?|tel|whatsapp):/i);
|
|
907
907
|
t && (n = n.slice(t[0].length));
|
|
908
908
|
const i = n.indexOf("@");
|
|
909
909
|
return i >= 0 && (n = n.slice(0, i)), n.trim();
|
|
910
910
|
}
|
|
911
|
-
function
|
|
911
|
+
function bn(e) {
|
|
912
912
|
if (!e) return !1;
|
|
913
913
|
const n = e.indexOf("@");
|
|
914
914
|
if (n <= 0) return !1;
|
|
@@ -917,13 +917,13 @@ function En(e) {
|
|
|
917
917
|
}
|
|
918
918
|
function N(e, n) {
|
|
919
919
|
if (!e) return null;
|
|
920
|
-
const t =
|
|
920
|
+
const t = se(e);
|
|
921
921
|
if (!t) return null;
|
|
922
922
|
const i = t.startsWith("+"), a = t.replace(/\D/g, "");
|
|
923
923
|
if (!a) return null;
|
|
924
924
|
if (i) return v(a);
|
|
925
925
|
if (a.startsWith("00")) return v(a.slice(2));
|
|
926
|
-
const r = C(n) ?? C(
|
|
926
|
+
const r = C(n) ?? C(ie);
|
|
927
927
|
if (!r) return null;
|
|
928
928
|
const o = r.trunkPrefix;
|
|
929
929
|
if (o && a.startsWith(o)) {
|
|
@@ -936,22 +936,22 @@ function N(e, n) {
|
|
|
936
936
|
}
|
|
937
937
|
return !o && d(a, r) ? `+${r.callingCode}${a}` : null;
|
|
938
938
|
}
|
|
939
|
-
function
|
|
939
|
+
function An(e, n = 9) {
|
|
940
940
|
const t = (e ?? "").replace(/\D/g, "");
|
|
941
941
|
return t.length < n ? null : t.slice(-n);
|
|
942
942
|
}
|
|
943
|
-
function
|
|
943
|
+
function x(e) {
|
|
944
944
|
if (!e) return null;
|
|
945
945
|
const n = e.trim().toLowerCase(), t = n.lastIndexOf("@");
|
|
946
946
|
if (t <= 0 || t === n.length - 1) return null;
|
|
947
947
|
const i = n.slice(0, t).split("+")[0], a = n.slice(t + 1);
|
|
948
948
|
return !i || !a.includes(".") ? null : `${i}@${a}`;
|
|
949
949
|
}
|
|
950
|
-
function
|
|
951
|
-
const n =
|
|
950
|
+
function In(e) {
|
|
951
|
+
const n = x(e);
|
|
952
952
|
return n ? n.slice(n.lastIndexOf("@") + 1) : null;
|
|
953
953
|
}
|
|
954
|
-
const
|
|
954
|
+
const le = /* @__PURE__ */ new Set([
|
|
955
955
|
"co.uk",
|
|
956
956
|
"org.uk",
|
|
957
957
|
"gov.uk",
|
|
@@ -961,14 +961,14 @@ const se = /* @__PURE__ */ new Set([
|
|
|
961
961
|
"com.br",
|
|
962
962
|
"co.za"
|
|
963
963
|
]);
|
|
964
|
-
function
|
|
964
|
+
function ce(e) {
|
|
965
965
|
if (!e) return null;
|
|
966
966
|
const n = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
|
|
967
967
|
if (n.length < 2) return null;
|
|
968
968
|
const t = n.slice(-2).join(".");
|
|
969
|
-
return
|
|
969
|
+
return le.has(t) && n.length >= 3 ? n.slice(-3).join(".") : t;
|
|
970
970
|
}
|
|
971
|
-
const
|
|
971
|
+
const pe = /* @__PURE__ */ new Set([
|
|
972
972
|
"gmail.com",
|
|
973
973
|
"googlemail.com",
|
|
974
974
|
"outlook.com",
|
|
@@ -1014,15 +1014,15 @@ const ce = /* @__PURE__ */ new Set([
|
|
|
1014
1014
|
"scarlet.be"
|
|
1015
1015
|
]);
|
|
1016
1016
|
function _n(e) {
|
|
1017
|
-
const n =
|
|
1018
|
-
return n ?
|
|
1017
|
+
const n = ce(e);
|
|
1018
|
+
return n ? pe.has(n) : !1;
|
|
1019
1019
|
}
|
|
1020
|
-
function
|
|
1020
|
+
function Tn(e) {
|
|
1021
1021
|
if (!e) return !1;
|
|
1022
1022
|
const n = e.trim().toLowerCase();
|
|
1023
1023
|
return n === "tel" || n === "sms" || n === "whatsapp" || n === "fax";
|
|
1024
1024
|
}
|
|
1025
|
-
function
|
|
1025
|
+
function Sn(e, n, t) {
|
|
1026
1026
|
if (!e || !n) return null;
|
|
1027
1027
|
const i = e.trim().toLowerCase();
|
|
1028
1028
|
if (i === "tel" || i === "sms" || i === "whatsapp") {
|
|
@@ -1034,23 +1034,23 @@ function Tn(e, n, t) {
|
|
|
1034
1034
|
return r ? `fax:${r}` : null;
|
|
1035
1035
|
}
|
|
1036
1036
|
if (i === "mailto" || i === "email") {
|
|
1037
|
-
const r =
|
|
1037
|
+
const r = x(n);
|
|
1038
1038
|
return r ? `mailto:${r}` : null;
|
|
1039
1039
|
}
|
|
1040
1040
|
const a = n.trim().toLowerCase();
|
|
1041
1041
|
return a ? `${i}:${a}` : null;
|
|
1042
1042
|
}
|
|
1043
|
-
const
|
|
1044
|
-
function
|
|
1043
|
+
const ue = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, de = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
|
|
1044
|
+
function Mn(e) {
|
|
1045
1045
|
if (typeof e != "string" || !e) return "";
|
|
1046
1046
|
let n = e;
|
|
1047
1047
|
return n = n.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), n = n.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), n = n.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), n = n.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), n = n.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), n = n.split(`
|
|
1048
1048
|
`).map(
|
|
1049
1049
|
(t) => t.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
|
|
1050
1050
|
).join(`
|
|
1051
|
-
`), n = n.replace(
|
|
1051
|
+
`), n = n.replace(ue, "$2"), n = n.replace(de, "$2"), n = n.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), n = n.replace(/`([^`\n]+)`/g, "$1"), n.replace(/\s+/g, " ").trim();
|
|
1052
1052
|
}
|
|
1053
|
-
const
|
|
1053
|
+
const me = [
|
|
1054
1054
|
/<blockquote/i,
|
|
1055
1055
|
/class="?gmail_quote/i,
|
|
1056
1056
|
// Gmail quote container
|
|
@@ -1063,12 +1063,12 @@ const de = [
|
|
|
1063
1063
|
// Outlook underscore separator before "From:"
|
|
1064
1064
|
/\bOn\b[\s\S]{0,200}?\bwrote:/i
|
|
1065
1065
|
// Gmail "On <date> <name> wrote:"
|
|
1066
|
-
], O = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,
|
|
1067
|
-
function
|
|
1066
|
+
], O = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, fe = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
|
|
1067
|
+
function ge(e) {
|
|
1068
1068
|
const n = e.split(`
|
|
1069
1069
|
`);
|
|
1070
1070
|
for (let t = 0; t < n.length; t++)
|
|
1071
|
-
if (
|
|
1071
|
+
if (fe.test(n[t]) || O.test(n[t]) && n.slice(t + 1, t + 4).some((i) => O.test(i)))
|
|
1072
1072
|
return n.slice(0, t).join(`
|
|
1073
1073
|
`).trim();
|
|
1074
1074
|
return e;
|
|
@@ -1080,34 +1080,37 @@ function k(e) {
|
|
|
1080
1080
|
`), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
|
|
1081
1081
|
}
|
|
1082
1082
|
function D(e) {
|
|
1083
|
-
return
|
|
1083
|
+
return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
|
|
1084
1084
|
}
|
|
1085
1085
|
function L(e) {
|
|
1086
|
+
return e.replace(/ /gi, " ").replace(/</gi, "<").replace(/>/gi, ">").replace(/"/gi, '"').replace(/&#(\d+);/g, (n, t) => D(Number(t)) ?? n).replace(/&#x([0-9a-f]+);/gi, (n, t) => D(parseInt(t, 16)) ?? n).replace(/&/gi, "&");
|
|
1087
|
+
}
|
|
1088
|
+
function $(e) {
|
|
1086
1089
|
return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
|
|
1087
1090
|
`).replace(/\n{3,}/g, `
|
|
1088
1091
|
|
|
1089
1092
|
`).trim();
|
|
1090
1093
|
}
|
|
1091
|
-
function
|
|
1094
|
+
function Cn(e) {
|
|
1092
1095
|
if (typeof e != "string" || !e) return "";
|
|
1093
1096
|
let n = e.length;
|
|
1094
|
-
for (const r of
|
|
1097
|
+
for (const r of me) {
|
|
1095
1098
|
const o = e.search(r);
|
|
1096
1099
|
o >= 0 && o < n && (n = o);
|
|
1097
1100
|
}
|
|
1098
1101
|
const t = e.slice(0, n);
|
|
1099
|
-
let i = L(
|
|
1100
|
-
return i || (i = L(
|
|
1102
|
+
let i = $(L(k(t)));
|
|
1103
|
+
return i || (i = $(L(k(e)))), ge(i) || i;
|
|
1101
1104
|
}
|
|
1102
|
-
const
|
|
1103
|
-
function Cn(e, n) {
|
|
1104
|
-
return !!(e && ge.test(e) || n && he.test(n));
|
|
1105
|
-
}
|
|
1106
|
-
const ye = 3, Ee = 600;
|
|
1105
|
+
const he = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ye = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
|
|
1107
1106
|
function vn(e, n) {
|
|
1108
|
-
return e
|
|
1107
|
+
return !!(e && he.test(e) || n && ye.test(n));
|
|
1108
|
+
}
|
|
1109
|
+
const Ee = 3, be = 600;
|
|
1110
|
+
function Nn(e, n) {
|
|
1111
|
+
return e >= Ee || n >= be;
|
|
1109
1112
|
}
|
|
1110
|
-
function
|
|
1113
|
+
function Ae(e, n) {
|
|
1111
1114
|
const t = new Set(e.disabledIntents ?? []), i = e.intentOverrides ?? {}, a = n.intents.filter((o) => !t.has(o.intent)).map((o) => _e(o, i[o.intent]));
|
|
1112
1115
|
if (!e.extraIntents || e.extraIntents.length === 0) return a;
|
|
1113
1116
|
const r = new Set(a.map((o) => o.intent));
|
|
@@ -1115,7 +1118,7 @@ function be(e, n) {
|
|
|
1115
1118
|
r.has(o.intent) || (a.push(o), r.add(o.intent));
|
|
1116
1119
|
return a;
|
|
1117
1120
|
}
|
|
1118
|
-
function
|
|
1121
|
+
function Ie(e, n) {
|
|
1119
1122
|
const t = {};
|
|
1120
1123
|
for (const i of e.intents) {
|
|
1121
1124
|
if (!i.togglable) continue;
|
|
@@ -1124,8 +1127,8 @@ function Ae(e, n) {
|
|
|
1124
1127
|
}
|
|
1125
1128
|
return t;
|
|
1126
1129
|
}
|
|
1127
|
-
function
|
|
1128
|
-
const t =
|
|
1130
|
+
function On(e, n) {
|
|
1131
|
+
const t = Ie(e, n);
|
|
1129
1132
|
return Object.entries(t).filter(([, i]) => !i).map(([i]) => i);
|
|
1130
1133
|
}
|
|
1131
1134
|
function _e(e, n) {
|
|
@@ -1135,35 +1138,35 @@ function _e(e, n) {
|
|
|
1135
1138
|
transport: n.transport ?? e.transport
|
|
1136
1139
|
} : e;
|
|
1137
1140
|
}
|
|
1138
|
-
function
|
|
1141
|
+
function kn(e, n) {
|
|
1139
1142
|
const t = [];
|
|
1140
1143
|
for (const i of e) {
|
|
1141
1144
|
if (!i.enabled) continue;
|
|
1142
1145
|
const a = n[i.providerId];
|
|
1143
1146
|
if (a)
|
|
1144
|
-
for (const r of
|
|
1147
|
+
for (const r of Ae(i, a))
|
|
1145
1148
|
t.push({ channel: i, description: a, capability: r });
|
|
1146
1149
|
}
|
|
1147
1150
|
return t;
|
|
1148
1151
|
}
|
|
1149
|
-
function
|
|
1152
|
+
function Dn(e, n) {
|
|
1150
1153
|
return n.filter((t) => t.capability.intent === e);
|
|
1151
1154
|
}
|
|
1152
|
-
function
|
|
1155
|
+
function Te(e, n) {
|
|
1153
1156
|
return n.filter((t) => t.capability.targetSchemes.includes(e));
|
|
1154
1157
|
}
|
|
1155
|
-
function
|
|
1156
|
-
return
|
|
1158
|
+
function Ln(e, n) {
|
|
1159
|
+
return Te(e.scheme, n);
|
|
1157
1160
|
}
|
|
1158
|
-
function
|
|
1161
|
+
function $n(e, n, t) {
|
|
1159
1162
|
const i = [];
|
|
1160
1163
|
for (const a of e)
|
|
1161
1164
|
for (const r of t)
|
|
1162
1165
|
r.capability.intent === n && r.capability.targetSchemes.includes(a.scheme) && i.push({ channelIntent: r, endpoint: a });
|
|
1163
1166
|
return i;
|
|
1164
1167
|
}
|
|
1165
|
-
var
|
|
1166
|
-
const
|
|
1168
|
+
var Se = /* @__PURE__ */ ((e) => (e.MAILTO = "mailto", e.SIP = "sip", e.TEL = "tel", e.WEBHOOK = "webhook", e.USERNAME = "username", e.ID = "id", e.CUSTOM = "custom", e.URL = "url", e.TELEGRAM = "telegram", e.WHATSAPP = "whatsapp", e.MESSENGER = "messenger", e.INSTAGRAM = "instagram", e.VIBER = "viber", e.SMS = "sms", e.FAX = "fax", e.TEAMS = "teams", e.CALENDAR = "calendar", e))(Se || {});
|
|
1169
|
+
const Rn = "message_window", xn = "message_templates", Un = {
|
|
1167
1170
|
// E-mail
|
|
1168
1171
|
FROM: "from",
|
|
1169
1172
|
TO: "to",
|
|
@@ -1180,111 +1183,111 @@ const $n = "message_window", Rn = "message_templates", xn = {
|
|
|
1180
1183
|
// Voice/conference
|
|
1181
1184
|
HOST: "host",
|
|
1182
1185
|
PARTICIPANT: "participant"
|
|
1183
|
-
},
|
|
1186
|
+
}, Pn = (e, n) => ({ intent: e, ...n }), wn = "folder_management", Kn = "remote_search", Gn = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, Vn = 9e4, Hn = "installation-id";
|
|
1184
1187
|
export {
|
|
1185
1188
|
c as ACTIVITY_CATALOG,
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1189
|
+
R as AI_VENDORS,
|
|
1190
|
+
V as ActivityTypeRegistry,
|
|
1191
|
+
Ke as BUILT_IN_ONLY,
|
|
1192
|
+
ze as CLASSIFY_VARS,
|
|
1193
|
+
je as CORE_DIMENSIONS,
|
|
1194
|
+
Se as CommunicationScheme,
|
|
1195
|
+
yn as DEFAULT_MEMORY_BUDGET,
|
|
1196
|
+
ie as DEFAULT_PHONE_REGION,
|
|
1197
|
+
wn as FEATURE_FOLDER_MANAGEMENT,
|
|
1198
|
+
Kn as FEATURE_REMOTE_SEARCH,
|
|
1199
|
+
Hn as INSTALLATION_HEADER,
|
|
1200
|
+
Un as InteractionParticipantRole,
|
|
1201
|
+
Ne as MAX_ACTIONS,
|
|
1202
|
+
Me as MAX_BLOCKS,
|
|
1203
|
+
Ce as MAX_FIELDS,
|
|
1204
|
+
ve as MAX_LIST_ITEMS,
|
|
1205
|
+
hn as MAX_MEMORY_BUDGET,
|
|
1206
|
+
fn as MAX_MEMORY_CHARS,
|
|
1207
|
+
gn as MIN_MEMORY_BUDGET,
|
|
1208
|
+
Z as PAUSED_RUN_STATUSES,
|
|
1206
1209
|
b as PHONE_REGIONS,
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1210
|
+
Vn as PRESENCE_ONLINE_WINDOW_MS,
|
|
1211
|
+
xn as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
|
|
1212
|
+
Rn as PROVIDER_FEATURE_MESSAGE_WINDOW,
|
|
1213
|
+
pe as PUBLIC_EMAIL_DOMAINS,
|
|
1214
|
+
te as RELATED_SUBJECT_KINDS,
|
|
1215
|
+
on as SIGNATURE_INTENTS,
|
|
1216
|
+
be as SUMMARY_MIN_LAST_CHARS,
|
|
1217
|
+
Ee as SUMMARY_MIN_MESSAGES,
|
|
1218
|
+
Q as TERMINAL_RUN_STATUSES,
|
|
1219
|
+
Ye as TRIGGER_VARS,
|
|
1220
|
+
Gn as UNSUPPORTED,
|
|
1221
|
+
W as USAGE_DIMENSIONS,
|
|
1222
|
+
Y as USAGE_DIMENSION_IDS,
|
|
1223
|
+
J as actingIdentityKey,
|
|
1224
|
+
ke as activityIconOf,
|
|
1225
|
+
we as activityJoinUrl,
|
|
1226
|
+
w as activitySnippet,
|
|
1227
|
+
K as activityTextParams,
|
|
1228
|
+
Pe as activityTimelineText,
|
|
1229
|
+
He as activityTimestamp,
|
|
1227
1230
|
l as activityTypeInfo,
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1231
|
+
Qe as actorKey,
|
|
1232
|
+
tn as aiVendorDefaultModel,
|
|
1233
|
+
nn as aiVendorLabel,
|
|
1234
|
+
rn as aiVendorNeedsBaseUrl,
|
|
1235
|
+
an as aiVendorsWith,
|
|
1236
|
+
sn as applySignature,
|
|
1237
|
+
Ge as buildActivityPreview,
|
|
1238
|
+
kn as buildChannelIntents,
|
|
1239
|
+
Re as carriesText,
|
|
1240
|
+
De as channelKindOf,
|
|
1241
|
+
Cn as cleanMessageText,
|
|
1242
|
+
Pn as defineIntent,
|
|
1243
|
+
On as disabledIntentsFromCapabilities,
|
|
1244
|
+
In as emailDomain,
|
|
1245
|
+
Sn as endpointKey,
|
|
1246
|
+
Ln as filterByEndpoint,
|
|
1247
|
+
Dn as filterByIntent,
|
|
1248
|
+
Te as filterByTargetScheme,
|
|
1246
1249
|
E as findAiVendor,
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1250
|
+
Be as flattenLocales,
|
|
1251
|
+
B as floorToPeriod,
|
|
1252
|
+
q as formatActingIdentity,
|
|
1253
|
+
j as formatPeriod,
|
|
1254
|
+
Ve as getActivitySeenUserIds,
|
|
1255
|
+
ln as getContactEndpoints,
|
|
1256
|
+
dn as getShortTitle,
|
|
1257
|
+
un as getUrgencyScore,
|
|
1258
|
+
We as humanizeAction,
|
|
1259
|
+
cn as isAssigned,
|
|
1260
|
+
pn as isClosed,
|
|
1261
|
+
mn as isInteractionUnseen,
|
|
1262
|
+
vn as isLikelyBulk,
|
|
1263
|
+
Le as isMessageType,
|
|
1264
|
+
en as isPaused,
|
|
1265
|
+
Ue as isPlaybookAuthoredType,
|
|
1263
1266
|
_n as isPublicEmailDomain,
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1267
|
+
$e as isReplyableType,
|
|
1268
|
+
Ze as isRetryable,
|
|
1269
|
+
ee as isTerminal,
|
|
1270
|
+
Nn as isThreadLongEnough,
|
|
1271
|
+
bn as looksLikeEmail,
|
|
1272
|
+
$n as matchContactToIntents,
|
|
1273
|
+
xe as messageCountsAs,
|
|
1274
|
+
Tn as needsPhoneRegion,
|
|
1275
|
+
Oe as normalizeBlocks,
|
|
1276
|
+
x as normalizeEmail,
|
|
1277
|
+
qe as parseActingIdentity,
|
|
1278
|
+
Fe as periodsInRange,
|
|
1279
|
+
An as phoneSuffix,
|
|
1280
|
+
Mn as plainTextFromMarkdown,
|
|
1281
|
+
Je as playbookActor,
|
|
1279
1282
|
h as readPath,
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
+
ce as registrableDomain,
|
|
1284
|
+
En as relatedByDefault,
|
|
1285
|
+
Ie as resolveAccountCapabilities,
|
|
1283
1286
|
y as resolveActivityText,
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
+
Ae as resolveChannelIntents,
|
|
1288
|
+
ne as resolveSignature,
|
|
1289
|
+
P as stripHtml,
|
|
1287
1290
|
N as toE164,
|
|
1288
|
-
|
|
1289
|
-
|
|
1291
|
+
z as usageMetricId,
|
|
1292
|
+
Xe as usageMetrics
|
|
1290
1293
|
};
|
package/dist/platform/ui.d.ts
CHANGED
|
@@ -141,6 +141,16 @@ export interface ExtensionConfig {
|
|
|
141
141
|
* does not have to know which extension is special.
|
|
142
142
|
*/
|
|
143
143
|
pinned?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Paint this tool's glyph in the assistant hue. Declared by the app — like
|
|
146
|
+
* `pinned` — so the host does not have to know which extension is the AI.
|
|
147
|
+
*
|
|
148
|
+
* Deliberately the only value there is: violet is reserved for the
|
|
149
|
+
* assistant, and an open colour field here would give us a rainbow of tool
|
|
150
|
+
* headers. The shell used to hardcode this tint on *every* tool, which is
|
|
151
|
+
* how the storage and task panels ended up wearing the assistant's colour.
|
|
152
|
+
*/
|
|
153
|
+
tone?: "assistant";
|
|
144
154
|
conditions?: {
|
|
145
155
|
[key: string]: any;
|
|
146
156
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencxh/domain",
|
|
3
|
-
"version": "1.134.
|
|
3
|
+
"version": "1.134.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"source": "./src/index.ts",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
8
17
|
"files": [
|
|
9
18
|
"dist"
|
|
10
19
|
],
|