@opencxh/domain 1.184.0 → 1.186.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.
@@ -79,6 +79,14 @@ export interface OnboardingAction {
79
79
  link?: OnboardingLink;
80
80
  /** Overrides the hub's house copy for this verb. Usually absent. */
81
81
  label?: OnboardingText;
82
+ /**
83
+ * `apply` only: ask before doing it, in the owning app's own words.
84
+ *
85
+ * The hub cannot judge what an apply costs — one puts down a draft you can throw away, another
86
+ * switches on something that starts acting on live conversations org-wide. So the app that knows
87
+ * says what it is about to do; omitting this means "just do it".
88
+ */
89
+ confirm?: OnboardingText;
82
90
  }
83
91
  export interface OnboardingItem {
84
92
  /**
@@ -9,16 +9,20 @@ import { WorkProject, WorkStatus, WorkStatusCategory } from './types';
9
9
  /**
10
10
  * The fixed ladder for work *without* a project.
11
11
  *
12
- * These three keys are **reserved**: a project may not claim them, because then the same key could
12
+ * These four keys are **reserved**: a project may not claim them, because then the same key could
13
13
  * have a different category in two ladders and the org-wide "what is open" query would silently go
14
14
  * wrong. `validateStatuses` guards that.
15
15
  *
16
+ * `cancelled` sits in category `done` and not in one of its own: "abandoned" and "finished" differ
17
+ * in *why*, never in whether the work is still waiting. A project expresses that difference through
18
+ * a `WorkResolution`; a loose item has none, and needing one has not come up.
19
+ *
16
20
  * The labels are **i18n keys, not text** — a literal string here would fix the language at module
17
21
  * level for every consumer, exactly what the i18n rule in `DESIGN_SYSTEM.md` §11 forbids. They
18
22
  * carry no app prefix because the app-sdk adds that on lookup; a `work:` prefix here would double
19
23
  * up to `work:work:status_open` inside the app itself.
20
24
  *
21
- * A project status has no key but a name an admin typed. Only these three are translatable,
25
+ * A project status has no key but a name an admin typed. Only these four are translatable,
22
26
  * because only these are ours.
23
27
  */
24
28
  export declare const LOOSE_STATUSES: readonly WorkStatus[];
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
  `)}
5
5
  `}const Y=e=>`user:${e}`,q=e=>`team:${e}`;function Wn(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Y(n.id)),n.kind==="team"&&t.add(q(n.id)));return[...t].sort()}function Vn(e,t){return[Y(e),...t.map(q)]}function jn(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const $e=["done","escalated"];function Hn(e){return $e.includes(e)}const Ke="assignment";function Xn(e){return`${Ke}:${e}`}function zn(e,t,n){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const r=e.payload?.mentions;return Array.isArray(r)&&r.includes(t)?!0:n==="reply"}function Yn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Ue=12;function qn(e,t,n=Ue){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Jn=new Set(["mail","message"]);function Ge(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function Zn(e,t,n,r="html"){if(!e)return n;const i=Ge(e,t);return i?`${n}${r==="text"?`
6
6
 
7
- `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${i.body}`:n}function Qn(e){return e.endpoints??[]}const er=e=>!!e.assignedUserId||!!e.assignedInboxId,tr=e=>e.status==="closed",nr=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,rr=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function ir(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}function ar(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function or(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)??(n?r.find(i=>i.locale===n):void 0)??{locale:t}}const F=[{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 Be(e){const t=(e??"").toLowerCase();return F.find(n=>n.code===t)??F.find(n=>n.code===t.split("-")[0])}function sr(e){return Be(e)?.label??e}function cr(e){const t=Be(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const J=3;function Fe(e,t){const n=new Set;let r=1,i=t.get(e)?.parentId;for(;i;){if(n.has(i)||(n.add(i),r++,r>J+1))return 1/0;i=t.get(i)?.parentId}return r}function lr(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(o=>[o.id,o]));if(!r.has(e)||t&&We(e,t,r))return!1;const i=Fe(e,r),a=t?Z(t,n):1;return i+a<=J}function We(e,t,n){const r=new Set;let i=n.get(e)?.parentId;for(;i;){if(i===t)return!0;if(r.has(i))return!1;r.add(i),i=n.get(i)?.parentId}return!1}function Z(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(i=>i.parentId===e);return r.length?1+Math.max(...r.map(i=>Z(i.id,t,n))):1}const Ve="en";function je(e){return e.defaultLocale||e.locale||Ve}function ur(e){const t=new Set,n=[];for(const r of[je(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function dr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)?.name??(n?r.find(i=>i.locale===n)?.name:void 0)??e.name}const W=["lookup","condition","parallel","for-each"];function V(e){for(const t of e){if(!W.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${W.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=V(n);if(r)return r}if(t.type==="for-each"){const n=V(t.body??[]);if(n)return n}}return null}function pr(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function fr(e,t){return e.filter(n=>n.enabled&&pr(n.ownerScope,t))}function mr(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function gr(e){return`mcp__${e}__`}const hr=1e3,Er=2e3,Ar=500,yr=12e3,Sr=4e3,He=["contact","company","work_item"];function _r(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return He.includes(t)}const Tr="onboarding-source",br=["support","billing","availability","sales","onboarding"],Ir=["keep","replace"];function Xe(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Mr(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),i=t.slice(n+1).trim();if(i){if(r==="user")return{kind:"user",userId:i};if(r==="team")return{kind:"team",teamId:i}}}function ze(e){return Xe(e)}function Ye(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}const qe=Ye;function Cr(e){return e.agentId?{kind:"user",userId:e.agentId}:qe(e.ownerScope)}function Or(e){return ze(e)}function Nr(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function wr(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Rr(e,t){if(t)return e.targets.find(n=>n.id===t)}function Je(e){return e?.kind==="assignment"}function kr(e){const{trigger:t,agentId:n,target:r,activityType:i,assigneeUserId:a,authorUserId:o}=e;return Je(t)?n?r?r.activityTypes.includes(i)?a?a!==n?"assigned to someone else":o&&o===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${i} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}function vr(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Lr=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"toCategory",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],Dr={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Ze(e){return`${e.type}:${e.id}`}const Qe="interaction";function et(e){return e?.type===Qe?e.id:void 0}const tt=64,nt=8e3;function xr(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),tt),nt)}const Pr={kind:"workflow",steps:[]};function $r(e){return e?.kind==="workflow"?e.steps:[]}function Kr(e){return e?.kind==="procedure"?e.procedure:void 0}const rt=["done","escalated","failed","stopped"];function Ur(e){return rt.includes(e)}function it(e){return e==="waiting"}function Gr(e){return e==="running"||it(e)}function Q(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Br(e){const t=Q(e);return t?Ze(t):void 0}function Fr(e){return et(Q(e))}function Wr(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Vr(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function jr(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Hr(e){const t=Math.max(0,Math.floor(e)),n=a=>String(a).padStart(2,"0"),r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function at(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Xr(e,t){const n=at(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function zr(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Yr(e){return e.filter(t=>!t.archived).sort(ot)}function ot(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const st=20,ct=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function lt(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>M*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function qr(e,t){const n=lt(t.text),r=g(n);if(!r||(e.examples??[]).some(o=>g(o)===r))return null;const i=e.exampleCandidates??[],a=i.findIndex(o=>g(o.text)===r);if(a>=0){if(i[a].corrected||!t.corrected)return null;const o=[...i];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},ge(o)}return ge([{...t,text:n},...i]).slice(0,ct)}function ge(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Jr(e,t){const n=g(t),r=(e.examples??[]).filter(a=>a.trim());return{examples:r.some(a=>g(a)===n)?r:[...r,t].slice(-st),exampleCandidates:ut(e,t)}}function ut(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(r=>g(r.text)!==n)}function dt(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Zr(e,t){return e.filter(n=>dt(n,t))}function Qr(e){return e.type==="agent"}const ei="WORK_COMMENT_ADDED",ti="WORK_ITEM_ASSIGNED",ni="WORK_ITEM_STATUS_CHANGED",pt="work_item",ft="work_project";function mt(e){return`${pt}:${e}`}function ee(e){return`${ft}:${e}`}function ri(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ii(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function ai(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function oi(e,t=25){const n=new Set([mt(e.id)]);e.projectId&&n.add(ee(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function si(e){return[ee(e.id)]}const w=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2}],te=w.map(e=>e.key);function gt(e){return e?.statuses?.length?e.statuses:w}function ht(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ci(e,t){return t.find(n=>n.key===e)}function li(e){const t=gt(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Et(t)[0]?.key??w[0].key}function Et(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function ui(e,t){return ht(e,t)==="done"}function At(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function di(e,t){const n=At(e)||"status",r=new Set([...t,...te]);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function pi(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,i)=>{if(!r.key){t.push({index:i,reason:"missing_key"});return}te.includes(r.key)&&t.push({index:i,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:i,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}const fi=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),mi=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function yt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?fi.has(t)?"image":t==="application/pdf"?"pdf":mi.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,St={image:5*h,pdf:20*h,text:1*h,audio:20*h},gi=25*h,hi=5;function Ei(e,t){const n=yt(e);return n==="unsupported"?"unsupported":t>St[n]?"too-large":null}function _t(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ai(e,t=[]){const n=new Set(t),r=[],i=[];for(const a of e){const o=_t(a);n.has(o)||(n.add(o),r.push(a),i.push(o))}return{sources:r,keys:i}}function yi(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Si(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function _i(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Tt(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},i=t.intents.filter(o=>!n.has(o.intent)).map(o=>bi(o,r[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return i;const a=new Set(i.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(i.push(o),a.add(o.intent));return i}function bt(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const i=t?.[r.intent];n[r.intent]=i??r.defaultEnabled??!0}return n}function Ti(e,t){const n=bt(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function bi(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Ii(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const i=t[r.providerId];if(i)for(const a of Tt(r,i))n.push({channel:r,description:i,capability:a})}return n}function Mi(e,t){return t.filter(n=>n.capability.intent===e)}function It(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Ci(e,t){return It(e.scheme,t)}function Oi(e,t,n){const r=[];for(const i of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(i.scheme)&&r.push({channelIntent:a,endpoint:i});return r}var Mt=(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))(Mt||{});const Ni={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 wi(e){return e?Ni[e]??"note":"note"}const Ri="message_window",ki="message_templates",vi={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Li=(e,t)=>({intent:e,...t}),Di="folder_management",xi="remote_search",Pi={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},$i="installation-id",Ki={ai:["account.read","account.write","agent.read","agent.write","assignment.read","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","attribute.read","attribute.write","calendar.read","calendar.write","channel.read","channel.write","custom-field.read","custom-field.write","folder.read","folder.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","task.read","task.write","template.read","template.write","topic.read","topic.write"],context:["kind.read","kind.write","memory.read","memory.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},ne=9e4,Ct=["out_of_office"],Ot=e=>Ct.includes(e);function Ui(e,t,n){const r=n-e<ne,i=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!i?.status)return{online:r,status:r?"available":"offline"};const a=i.status;return!r&&!Ot(a)?{online:!1,status:"offline"}:{online:r,status:a,message:i.message}}function Gi(e,t){const n=t-e.lastSeenAt<ne,r=n||Ot(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Bi(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function Fi(e){return e.providerAvailable&&e.allowed}const Wi="resources.describe",Vi="resources.search",ji="resources.resolve";function Hi(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const re="auth";function ie(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Xi(e){const t=ie(e);return t?t!==re:typeof e=="string"&&e.startsWith("/wake")}function zi(e){return typeof e!="string"||e===""||e==="/"?!0:ie(e)===re}function Yi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Nt(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Yi(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function wt(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),i={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),l=r[o];l&&(i[s]=l)}}),i}function Rt(e){return e.publicBasePath??`/apps/${e.name}`}function qi(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Rt(n);for(const i of n.routes??[]){if(!i.public)continue;const a=i.path==="/"?"":i.path;t.push({appName:n.name,resource:i.resource,pattern:`${r}${a}`,props:i.props})}}return t}function kt(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let i=0;i<Math.min(n.length,r.length);i++){const a=n[i].startsWith(":"),o=r[i].startsWith(":");if(a!==o)return o}return n.length>r.length}function vt(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Nt(r.pattern).test(e)&&(!n||kt(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...wt(n.pattern,e)}}:null}function Ji(e,t){return vt(e,t)!==null}const Zi="sync-source",Qi="sync-target",ea=20,ta={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},Lt=e=>{let t=e;return Object.values(ta).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Dt=6e4,xt=8e3,Pt=2,$t=.4,na=3,ra=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function Kt(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<na||ra.has(n)||t.add(n);return[...t]}function Ut(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let i=0;for(const a of r)n.has(a)||(i+=1);return i/r.size}function Gt(e,t=Dt){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const i=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=i).map(o=>Lt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Bt=60;function ia(e,t,n=Bt){const r=new Set(e),i=[...e];for(const a of t)!a||r.has(a)||(r.add(a),i.push(a));return i.slice(-n)}function aa(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<xt)return{trigger:!1,reason:"too_soon"};const i=Gt(t,e.windowMs);if(!i.text)return{trigger:!1,reason:"no_speech"};const a=i.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&a<Pt)return{trigger:!1,reason:"too_few_new"};const o=Kt(i.text);return o.length?r.lastQueryTerms?.length&&Ut(o,r.lastQueryTerms)<$t?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:i.text,terms:o,segmentCount:i.segmentCount}:{trigger:!1,reason:"no_speech"}}const oa="navNotice",R={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}},Ft="NL",sa=15,ca=8,la=Array.from(new Set(Object.values(R).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function he(e){if(e)return R[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Ee(e){if(e.length>sa)return null;for(const t of la){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(R)){if(r.callingCode!==t)continue;const i=r.trunkPrefix,a=i&&n.startsWith(i)?n.slice(i.length):n;if(C(a,r))return`+${t}${a}`}return null}return e.length<ca?null:`+${e}`}function ua(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function da(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 j(e,t){if(!e)return null;const n=ua(e);if(!n)return null;const r=n.startsWith("+"),i=n.replace(/\D/g,"");if(!i)return null;if(r)return Ee(i);if(i.startsWith("00"))return Ee(i.slice(2));const a=he(t)??he(Ft);if(!a)return null;const o=a.trunkPrefix;if(o&&i.startsWith(o)){const s=i.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(i.startsWith(a.callingCode)){const s=i.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(i,a)?`+${a.callingCode}${i}`:null}function pa(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ae(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],i=t.slice(n+1);return!r||!i.includes(".")?null:`${r}@${i}`}function fa(e){const t=ae(e);return t?t.slice(t.lastIndexOf("@")+1):null}const ma=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Wt(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 ma.has(n)&&t.length>=3?t.slice(-3).join("."):n}const Vt=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 ga(e){const t=Wt(e);return t?Vt.has(t):!1}function ha(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Ea(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const a=j(t,n);return a?`tel:${a}`:null}if(r==="fax"){const a=j(t,n);return a?`fax:${a}`:null}if(r==="mailto"||r==="email"){const a=ae(t);return a?`mailto:${a}`:null}const i=t.trim().toLowerCase();return i?`${r}:${i}`:null}const Aa=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,ya=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Sa(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
7
+ `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${i.body}`:n}function Qn(e){return e.endpoints??[]}const er=e=>!!e.assignedUserId||!!e.assignedInboxId,tr=e=>e.status==="closed",nr=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,rr=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`;function ir(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}function ar(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function or(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)??(n?r.find(i=>i.locale===n):void 0)??{locale:t}}const F=[{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 Be(e){const t=(e??"").toLowerCase();return F.find(n=>n.code===t)??F.find(n=>n.code===t.split("-")[0])}function sr(e){return Be(e)?.label??e}function cr(e){const t=Be(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const J=3;function Fe(e,t){const n=new Set;let r=1,i=t.get(e)?.parentId;for(;i;){if(n.has(i)||(n.add(i),r++,r>J+1))return 1/0;i=t.get(i)?.parentId}return r}function lr(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(o=>[o.id,o]));if(!r.has(e)||t&&We(e,t,r))return!1;const i=Fe(e,r),a=t?Z(t,n):1;return i+a<=J}function We(e,t,n){const r=new Set;let i=n.get(e)?.parentId;for(;i;){if(i===t)return!0;if(r.has(i))return!1;r.add(i),i=n.get(i)?.parentId}return!1}function Z(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(i=>i.parentId===e);return r.length?1+Math.max(...r.map(i=>Z(i.id,t,n))):1}const Ve="en";function je(e){return e.defaultLocale||e.locale||Ve}function ur(e){const t=new Set,n=[];for(const r of[je(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function dr(e,t,n){const r=e.translations??[];return r.find(i=>i.locale===t)?.name??(n?r.find(i=>i.locale===n)?.name:void 0)??e.name}const W=["lookup","condition","parallel","for-each"];function V(e){for(const t of e){if(!W.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${W.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=V(n);if(r)return r}if(t.type==="for-each"){const n=V(t.body??[]);if(n)return n}}return null}function pr(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function fr(e,t){return e.filter(n=>n.enabled&&pr(n.ownerScope,t))}function mr(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function gr(e){return`mcp__${e}__`}const hr=1e3,Er=2e3,Ar=500,yr=12e3,Sr=4e3,He=["contact","company","work_item"];function _r(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return He.includes(t)}const Tr="onboarding-source",br=["support","billing","availability","sales","onboarding"],Ir=["keep","replace"];function Xe(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Mr(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),i=t.slice(n+1).trim();if(i){if(r==="user")return{kind:"user",userId:i};if(r==="team")return{kind:"team",teamId:i}}}function ze(e){return Xe(e)}function Ye(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}const qe=Ye;function Cr(e){return e.agentId?{kind:"user",userId:e.agentId}:qe(e.ownerScope)}function Or(e){return ze(e)}function Nr(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function wr(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Rr(e,t){if(t)return e.targets.find(n=>n.id===t)}function Je(e){return e?.kind==="assignment"}function kr(e){const{trigger:t,agentId:n,target:r,activityType:i,assigneeUserId:a,authorUserId:o}=e;return Je(t)?n?r?r.activityTypes.includes(i)?a?a!==n?"assigned to someone else":o&&o===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${i} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}function vr(e){return(e.startsWith("tool:")?e.slice(5):e).replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}const Lr=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string"},{name:"toStatus",type:"string"},{name:"toCategory",type:"string"},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"assigneeUserId",type:"string"}],Dr={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Ze(e){return`${e.type}:${e.id}`}const Qe="interaction";function et(e){return e?.type===Qe?e.id:void 0}const tt=64,nt=8e3;function xr(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),tt),nt)}const Pr={kind:"workflow",steps:[]};function $r(e){return e?.kind==="workflow"?e.steps:[]}function Kr(e){return e?.kind==="procedure"?e.procedure:void 0}const rt=["done","escalated","failed","stopped"];function Ur(e){return rt.includes(e)}function it(e){return e==="waiting"}function Gr(e){return e==="running"||it(e)}function Q(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Br(e){const t=Q(e);return t?Ze(t):void 0}function Fr(e){return et(Q(e))}function Wr(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Vr(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function jr(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Hr(e){const t=Math.max(0,Math.floor(e)),n=a=>String(a).padStart(2,"0"),r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function at(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Xr(e,t){const n=at(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function zr(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Yr(e){return e.filter(t=>!t.archived).sort(ot)}function ot(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const st=20,ct=20,M=300;function g(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function lt(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=M)return t;const n=t.slice(0,M),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>M*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function qr(e,t){const n=lt(t.text),r=g(n);if(!r||(e.examples??[]).some(o=>g(o)===r))return null;const i=e.exampleCandidates??[],a=i.findIndex(o=>g(o.text)===r);if(a>=0){if(i[a].corrected||!t.corrected)return null;const o=[...i];return o[a]={...o[a],corrected:!0,addedAt:t.addedAt},ge(o)}return ge([{...t,text:n},...i]).slice(0,ct)}function ge(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Jr(e,t){const n=g(t),r=(e.examples??[]).filter(a=>a.trim());return{examples:r.some(a=>g(a)===n)?r:[...r,t].slice(-st),exampleCandidates:ut(e,t)}}function ut(e,t){const n=g(t);return(e.exampleCandidates??[]).filter(r=>g(r.text)!==n)}function dt(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Zr(e,t){return e.filter(n=>dt(n,t))}function Qr(e){return e.type==="agent"}const ei="WORK_COMMENT_ADDED",ti="WORK_ITEM_ASSIGNED",ni="WORK_ITEM_STATUS_CHANGED",pt="work_item",ft="work_project";function mt(e){return`${pt}:${e}`}function ee(e){return`${ft}:${e}`}function ri(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ii(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function ai(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function oi(e,t=25){const n=new Set([mt(e.id)]);e.projectId&&n.add(ee(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function si(e){return[ee(e.id)]}const w=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],te=w.map(e=>e.key);function gt(e){return e?.statuses?.length?e.statuses:w}function ht(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ci(e,t){return t.find(n=>n.key===e)}function li(e){const t=gt(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Et(t)[0]?.key??w[0].key}function Et(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function ui(e,t){return ht(e,t)==="done"}function At(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function di(e,t){const n=At(e)||"status",r=new Set([...t,...te]);if(!r.has(n))return n;for(let i=2;i<500;i++){const a=`${n}-${i}`;if(!r.has(a))return a}return`${n}-${r.size+1}`}function pi(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,i)=>{if(!r.key){t.push({index:i,reason:"missing_key"});return}te.includes(r.key)&&t.push({index:i,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:i,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}const fi=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),mi=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function yt(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?fi.has(t)?"image":t==="application/pdf"?"pdf":mi.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const h=1024*1024,St={image:5*h,pdf:20*h,text:1*h,audio:20*h},gi=25*h,hi=5;function Ei(e,t){const n=yt(e);return n==="unsupported"?"unsupported":t>St[n]?"too-large":null}function _t(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ai(e,t=[]){const n=new Set(t),r=[],i=[];for(const a of e){const o=_t(a);n.has(o)||(n.add(o),r.push(a),i.push(o))}return{sources:r,keys:i}}function yi(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Si(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function _i(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Tt(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},i=t.intents.filter(o=>!n.has(o.intent)).map(o=>bi(o,r[o.intent]));if(!e.extraIntents||e.extraIntents.length===0)return i;const a=new Set(i.map(o=>o.intent));for(const o of e.extraIntents)a.has(o.intent)||(i.push(o),a.add(o.intent));return i}function bt(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const i=t?.[r.intent];n[r.intent]=i??r.defaultEnabled??!0}return n}function Ti(e,t){const n=bt(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function bi(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Ii(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const i=t[r.providerId];if(i)for(const a of Tt(r,i))n.push({channel:r,description:i,capability:a})}return n}function Mi(e,t){return t.filter(n=>n.capability.intent===e)}function It(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Ci(e,t){return It(e.scheme,t)}function Oi(e,t,n){const r=[];for(const i of e)for(const a of n)a.capability.intent===t&&a.capability.targetSchemes.includes(i.scheme)&&r.push({channelIntent:a,endpoint:i});return r}var Mt=(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))(Mt||{});const Ni={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 wi(e){return e?Ni[e]??"note":"note"}const Ri="message_window",ki="message_templates",vi={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Li=(e,t)=>({intent:e,...t}),Di="folder_management",xi="remote_search",Pi={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},$i="installation-id",Ki={ai:["account.read","account.write","agent.read","agent.write","assignment.read","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","attribute.read","attribute.write","calendar.read","calendar.write","channel.read","channel.write","custom-field.read","custom-field.write","folder.read","folder.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write","topic.read","topic.write"],context:["kind.read","kind.write","memory.read","memory.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},ne=9e4,Ct=["out_of_office"],Ot=e=>Ct.includes(e);function Ui(e,t,n){const r=n-e<ne,i=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!i?.status)return{online:r,status:r?"available":"offline"};const a=i.status;return!r&&!Ot(a)?{online:!1,status:"offline"}:{online:r,status:a,message:i.message}}function Gi(e,t){const n=t-e.lastSeenAt<ne,r=n||Ot(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Bi(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function Fi(e){return e.providerAvailable&&e.allowed}const Wi="resources.describe",Vi="resources.search",ji="resources.resolve";function Hi(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const re="auth";function ie(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function Xi(e){const t=ie(e);return t?t!==re:typeof e=="string"&&e.startsWith("/wake")}function zi(e){return typeof e!="string"||e===""||e==="/"?!0:ie(e)===re}function Yi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Nt(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Yi(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function wt(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),i={};return n.forEach((a,o)=>{if(a.startsWith(":")){const s=a.endsWith("?")?a.slice(1,-1):a.slice(1),l=r[o];l&&(i[s]=l)}}),i}function Rt(e){return e.publicBasePath??`/apps/${e.name}`}function qi(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Rt(n);for(const i of n.routes??[]){if(!i.public)continue;const a=i.path==="/"?"":i.path;t.push({appName:n.name,resource:i.resource,pattern:`${r}${a}`,props:i.props})}}return t}function kt(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let i=0;i<Math.min(n.length,r.length);i++){const a=n[i].startsWith(":"),o=r[i].startsWith(":");if(a!==o)return o}return n.length>r.length}function vt(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Nt(r.pattern).test(e)&&(!n||kt(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...wt(n.pattern,e)}}:null}function Ji(e,t){return vt(e,t)!==null}const Zi="sync-source",Qi="sync-target",ea=20,ta={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},Lt=e=>{let t=e;return Object.values(ta).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Dt=6e4,xt=8e3,Pt=2,$t=.4,na=3,ra=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function Kt(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<na||ra.has(n)||t.add(n);return[...t]}function Ut(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let i=0;for(const a of r)n.has(a)||(i+=1);return i/r.size}function Gt(e,t=Dt){const n=e.filter(o=>!o.partial&&typeof o.text=="string");if(!n.length)return{text:"",segmentCount:0};const i=n.reduce((o,s)=>Math.max(o,s.endedAt??0),0)-t;return{text:n.filter(o=>(o.endedAt??0)>=i).map(o=>Lt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Bt=60;function ia(e,t,n=Bt){const r=new Set(e),i=[...e];for(const a of t)!a||r.has(a)||(r.add(a),i.push(a));return i.slice(-n)}function aa(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<xt)return{trigger:!1,reason:"too_soon"};const i=Gt(t,e.windowMs);if(!i.text)return{trigger:!1,reason:"no_speech"};const a=i.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&a<Pt)return{trigger:!1,reason:"too_few_new"};const o=Kt(i.text);return o.length?r.lastQueryTerms?.length&&Ut(o,r.lastQueryTerms)<$t?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:i.text,terms:o,segmentCount:i.segmentCount}:{trigger:!1,reason:"no_speech"}}const oa="navNotice",R={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}},Ft="NL",sa=15,ca=8,la=Array.from(new Set(Object.values(R).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function he(e){if(e)return R[e.trim().toUpperCase()]}function C(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Ee(e){if(e.length>sa)return null;for(const t of la){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(R)){if(r.callingCode!==t)continue;const i=r.trunkPrefix,a=i&&n.startsWith(i)?n.slice(i.length):n;if(C(a,r))return`+${t}${a}`}return null}return e.length<ca?null:`+${e}`}function ua(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function da(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 j(e,t){if(!e)return null;const n=ua(e);if(!n)return null;const r=n.startsWith("+"),i=n.replace(/\D/g,"");if(!i)return null;if(r)return Ee(i);if(i.startsWith("00"))return Ee(i.slice(2));const a=he(t)??he(Ft);if(!a)return null;const o=a.trunkPrefix;if(o&&i.startsWith(o)){const s=i.slice(o.length);return C(s,a)?`+${a.callingCode}${s}`:null}if(i.startsWith(a.callingCode)){const s=i.slice(a.callingCode.length);if(C(s,a))return`+${a.callingCode}${s}`}return!o&&C(i,a)?`+${a.callingCode}${i}`:null}function pa(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ae(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],i=t.slice(n+1);return!r||!i.includes(".")?null:`${r}@${i}`}function fa(e){const t=ae(e);return t?t.slice(t.lastIndexOf("@")+1):null}const ma=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Wt(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 ma.has(n)&&t.length>=3?t.slice(-3).join("."):n}const Vt=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 ga(e){const t=Wt(e);return t?Vt.has(t):!1}function ha(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Ea(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const a=j(t,n);return a?`tel:${a}`:null}if(r==="fax"){const a=j(t,n);return a?`fax:${a}`:null}if(r==="mailto"||r==="email"){const a=ae(t);return a?`mailto:${a}`:null}const i=t.trim().toLowerCase();return i?`${r}:${i}`:null}const Aa=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,ya=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Sa(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
9
  `),t=t.replace(Aa,"$2"),t=t.replace(ya,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}const _a=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],Ae=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,Ta=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function ba(e){const t=e.split(`
10
10
  `);for(let n=0;n<t.length;n++)if(Ta.test(t[n])||Ae.test(t[n])&&t.slice(n+1,n+4).some(r=>Ae.test(r)))return t.slice(0,n).join(`
package/dist/index.d.ts CHANGED
@@ -31,7 +31,6 @@ export * from './entities/playbook';
31
31
  export * from './entities/read-state';
32
32
  export * from './entities/resource-reminder';
33
33
  export * from './entities/scope';
34
- export * from './entities/task';
35
34
  export * from './entities/team';
36
35
  export * from './entities/time-entry';
37
36
  export * from './entities/topic';
package/dist/index.js CHANGED
@@ -1612,7 +1612,8 @@ function ki(e) {
1612
1612
  const O = [
1613
1613
  { key: "open", label: "status_open", category: "todo", order: 0 },
1614
1614
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1615
- { key: "done", label: "status_done", category: "done", order: 2 }
1615
+ { key: "done", label: "status_done", category: "done", order: 2 },
1616
+ { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
1616
1617
  ], ye = O.map((e) => e.key);
1617
1618
  function Mt(e) {
1618
1619
  return e?.statuses?.length ? e.statuses : O;
@@ -1866,8 +1867,6 @@ const Vi = "message_window", zi = "message_templates", Xi = {
1866
1867
  "interaction.read",
1867
1868
  "interaction.write",
1868
1869
  "reminder.read",
1869
- "task.read",
1870
- "task.write",
1871
1870
  "template.read",
1872
1871
  "template.write",
1873
1872
  "topic.read",
@@ -17,7 +17,7 @@ export declare const APP_PERMISSIONS: {
17
17
  readonly analytics: readonly ["report.read"];
18
18
  readonly "app-store": readonly ["app.publish", "app.read", "app.write", "setting.read", "setting.write"];
19
19
  readonly automations: readonly ["sync.read", "sync.write", "webhook.read", "webhook.write"];
20
- readonly communication: readonly ["account.read", "account.write", "activity-type.read", "activity.read", "activity.write", "attachment.read", "attribute.read", "attribute.write", "calendar.read", "calendar.write", "channel.read", "channel.write", "custom-field.read", "custom-field.write", "folder.read", "folder.write", "inbox.read", "inbox.write", "interaction.read", "interaction.write", "reminder.read", "task.read", "task.write", "template.read", "template.write", "topic.read", "topic.write"];
20
+ readonly communication: readonly ["account.read", "account.write", "activity-type.read", "activity.read", "activity.write", "attachment.read", "attribute.read", "attribute.write", "calendar.read", "calendar.write", "channel.read", "channel.write", "custom-field.read", "custom-field.write", "folder.read", "folder.write", "inbox.read", "inbox.write", "interaction.read", "interaction.write", "reminder.read", "template.read", "template.write", "topic.read", "topic.write"];
21
21
  readonly context: readonly ["kind.read", "kind.write", "memory.read", "memory.write"];
22
22
  readonly crm: readonly ["company.read", "company.write", "contact.read", "contact.write"];
23
23
  readonly "eylo-voip": readonly ["account.read", "account.write", "callflow.read", "callflow.write", "channel.read", "channel.write", "contact.read", "contact.write", "device.read", "device.write", "group.read", "group.write", "interaction.read", "interaction.write", "media.read", "media.write", "menu.read", "menu.write", "phone-number.read", "phone-number.write", "recording.read", "recording.write", "sip.read", "temporal-rule.read", "temporal-rule.write", "user.read", "user.write", "vmbox.read", "vmbox.write", "webhook.read", "webhook.write"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencxh/domain",
3
- "version": "1.184.0",
3
+ "version": "1.186.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -1 +0,0 @@
1
- export * from './types';
@@ -1,39 +0,0 @@
1
- import { OwnerScope } from '../scope/types';
2
- export type TaskStatus = "open" | "in_progress" | "done" | "cancelled";
3
- export type TaskPriority = "low" | "normal" | "high" | "urgent";
4
- export type TaskInitiator = "user" | "system";
5
- export interface TaskSource {
6
- initiator: TaskInitiator;
7
- /** Free-form reason when initiator is "system" (e.g. "missed_call", "stale_interaction"). */
8
- systemReason?: string;
9
- }
10
- export interface Task {
11
- id: string;
12
- organizationId: string;
13
- ownerScope: OwnerScope;
14
- /** Parent task id when this is a subtask. Subtasks are exactly one level deep. */
15
- parentId?: string;
16
- title: string;
17
- description?: string;
18
- status: TaskStatus;
19
- priority?: TaskPriority;
20
- /** Epoch ms. */
21
- dueDate?: number;
22
- /** Epoch ms — set when status moves to "done". */
23
- completedAt?: number;
24
- /** Link to a communication Interaction (follow-up on a call/message). */
25
- interactionId?: string;
26
- /** Link to a contact. */
27
- contactId?: string;
28
- /** UserIds assigned to act on this task. Empty = team pool. */
29
- assignees?: string[];
30
- /** Origin of the task — user-created or system-generated. */
31
- source: TaskSource;
32
- /** Channel used for external sync (provider-resolved). */
33
- channelId?: string;
34
- /** Provider-side IDs for dedupe (Google Tasks id, MS To Do id, …). */
35
- externalIds?: string[];
36
- createdBy: string;
37
- createdAt?: number;
38
- updatedAt?: number;
39
- }