omnix-chat 2.5.9 → 3.0.2
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/CHANGELOG.md +9 -0
- package/README.md +1 -1
- package/dist/omnix-chat.es.js +775 -737
- package/dist/omnix-chat.es.js.map +1 -1
- package/dist/omnix-chat.umd.cjs +15 -15
- package/dist/omnix-chat.umd.js +15 -15
- package/dist/omnix-chat.umd.js.map +1 -1
- package/dist/react-types-4kCc9MAv.cjs.js.map +1 -1
- package/dist/react-types-D6g7_-_a.js.map +1 -1
- package/dist/react.cjs +173 -122
- package/dist/react.cjs.js +173 -122
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +518 -441
- package/dist/react.es.js.map +1 -1
- package/dist/react.legacy-types-B3OBHme4.cjs.js.map +1 -1
- package/dist/react.legacy-types-C11EZiOU.js.map +1 -1
- package/dist/react.legacy.cjs +93 -39
- package/dist/react.legacy.cjs.js +93 -39
- package/dist/react.legacy.cjs.js.map +1 -1
- package/dist/react.legacy.es.js +142 -62
- package/dist/react.legacy.es.js.map +1 -1
- package/dist/src/core/client/instance.d.ts +8 -1
- package/dist/src/core/client/instance.d.ts.map +1 -1
- package/dist/src/core/lib/errors.d.ts +1 -1
- package/dist/src/core/lib/errors.d.ts.map +1 -1
- package/dist/src/core/page/page-action-feedback-wish-response.d.ts +3 -1
- package/dist/src/core/page/page-action-feedback-wish-response.d.ts.map +1 -1
- package/dist/src/core/services/page-action.service.d.ts +6 -1
- package/dist/src/core/services/page-action.service.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/usePageAction.d.ts +16 -2
- package/dist/src/react/usePageAction.d.ts.map +1 -1
- package/dist/src/react/usePageActions.d.ts +15 -1
- package/dist/src/react/usePageActions.d.ts.map +1 -1
- package/dist/src/types.d.ts +23 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/sdk-version.d.ts +1 -1
- package/package.json +1 -1
package/dist/omnix-chat.umd.js
CHANGED
|
@@ -23,12 +23,12 @@ ${a}`,d++}else oo(e,n,i)?f=e.slice(e.charCodeAt(n+6)===no?n+7:n+6,r)||void 0:te(
|
|
|
23
23
|
`,n)}return e.slice(n)}for(;n<e.length;){let t=e.indexOf(`\r`,n),r=e.indexOf(`
|
|
24
24
|
`,n),i=-1;if(t!==-1&&r!==-1?i=t<r?t:r:t===-1?r!==-1&&(i=r):i=t===e.length-1?-1:t,i===-1)break;te(e,n,i),n=i+1,e.charCodeAt(n-1)===to&&e.charCodeAt(n)===eo&&n++}return e.slice(n)}function te(e,t,n){if(t===n){ne();return}let r=e.charCodeAt(t);if(ao(e,t,r)){let r=e.charCodeAt(t+5)===no?t+6:t+5,i=e.slice(r,n);u=d===0?i:`${u}
|
|
25
25
|
${i}`,d++;return}if(oo(e,t,r)){f=e.slice(e.charCodeAt(t+6)===no?t+7:t+6,n)||void 0;return}if(r===105&&e.charCodeAt(t+1)===100&&e.charCodeAt(t+2)===58){let r=e.slice(e.charCodeAt(t+3)===no?t+4:t+3,n);r.includes(`\0`)||(l=r);return}if(r===58){if(i){let r=e.slice(t,n);i(r.slice(e.charCodeAt(t+1)===no?2:1))}return}let a=e.slice(t,n),o=a.indexOf(`:`);if(o===-1){g(a,``,a);return}let s=a.slice(0,o),c=a.charCodeAt(o+1)===no?2:1;g(s,a.slice(o+c),a)}function g(e,t,i){switch(e){case`event`:f=t||void 0;break;case`data`:u=d===0?t:`${u}
|
|
26
|
-
${t}`,d++;break;case`id`:t.includes(`\0`)||(l=t);break;case`retry`:/^\d+$/.test(t)?r(parseInt(t,10)):n(new $a(`Invalid \`retry\` value: "${t}"`,{type:`invalid-retry`,value:t,line:i}));break;default:n(new $a(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:`unknown-field`,field:e,value:t,line:i}))}}function ne(){d>0&&t({id:l,event:f,data:u}),l=void 0,u=``,d=0,f=void 0}function _(e={}){if(e.consume&&o.length>0){let e=o.join(``);te(e,0,e.length)}c=!0,l=void 0,u=``,d=0,f=void 0,o.length=0,s=0,p=!1}return{feed:m,reset:_}}function ao(e,t,n){return n===100&&e.charCodeAt(t+1)===97&&e.charCodeAt(t+2)===116&&e.charCodeAt(t+3)===97&&e.charCodeAt(t+4)===58}function oo(e,t,n){return n===101&&e.charCodeAt(t+1)===118&&e.charCodeAt(t+2)===101&&e.charCodeAt(t+3)===110&&e.charCodeAt(t+4)===116&&e.charCodeAt(t+5)===58}function so(e,t){return`${e.replace(/\/+$/,``)}${t.startsWith(`/`)?t:`/${t}`}`}async function*co(e,t,n,r={}){let i=r.method??(r.body===void 0?`GET`:`POST`),a=new Headers(n);for(let[e,t]of Object.entries(r.headers??{}))a.set(e,t);a.set(`accept`,`text/event-stream`);let o;r.body!==void 0&&i!==`GET`&&i!==`HEAD`&&(o=typeof r.body==`string`?r.body:JSON.stringify(r.body),!a.has(`content-type`)&&typeof r.body!=`string`&&a.set(`content-type`,`application/json`));let s;try{s=await e(t,{method:i,headers:a,body:o,signal:r.signal})}catch(e){throw Za(e)}if(!s.ok)throw await Ya(s);if(!s.body)throw new m(`TRANSPORT_FAILED`,`SSE response has no body`);r.onConnected?.();let c=s.body.getReader(),l=new TextDecoder(`utf-8`),u=[],d=io({onEvent(e){let t=e.event?.trim()?e.event.trim():`message`;u.push({event:t,data:e.data,id:e.id})}}),f=()=>u.splice(0,u.length);try{for(;;){let{value:e,done:t}=await c.read();if(t){let e=l.decode();e&&d.feed(e);for(let e of f())yield e;break}d.feed(l.decode(e,{stream:!0}));for(let e of f())yield e}}finally{c.releaseLock()}}function lo(e){return e.replace(/^\//,``)}function uo(e,t){let n=new Set((t.omitDefaultHeaders??[]).map(e=>e.toLowerCase())),r={};for(let[t,i]of Object.entries(e))n.has(t.toLowerCase())||(r[t]=i);return{...r,...t.headers??{}}}function fo(e){let t=e.apiBase.replace(/\/+$/,``),n={...e.defaultHeaders??{}},r=e.fetch??(typeof fetch<`u`?fetch.bind(globalThis):void 0);if(!r)throw new m(`TRANSPORT_FAILED`,`No fetch implementation available. Provide one via HttpClientOptions.fetch.`);let i=Ka.create({prefixUrl:`${t}/`,retry:{limit:0},timeout:!1,fetch:r,hooks:{beforeError:[async e=>{throw e instanceof Ri?await Ya(e.response):Qa(e)?Xa(e):Za(e)}]}});return{setDefaultHeader(e,t){t===void 0?delete n[e]:n[e]=t},async request(e,t={}){let r=t.method??(t.body===void 0?`GET`:`POST`),a={accept:`application/json`,...uo(n,t)},o=t.searchParams?Object.fromEntries(Object.entries(t.searchParams).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])):void 0;try{let n=await i(lo(e),{method:r,headers:a,searchParams:o,json:r===`GET`||r===`HEAD`?void 0:t.body,signal:t.signal});return n.status===204?void 0:(n.headers.get(`content-type`)??``).includes(`application/json`)?await n.json():await n.text()}catch(e){throw e instanceof m?e:Qa(e)?Xa(e):Za(e)}},stream(e,i={}){let a=so(t,e);return co(r,a,n,i)}}}var po=class{constructor(e){p(this,`http`,void 0),this.http=e}async authenticate(e,t){let n=de(await this.http.request(`/app-client/auth`,{method:`POST`,headers:re(e,t)}));if(!n?.ok)throw new m(`AUTH_REQUIRED`,`App client authentication failed`);return n}async login(e,t){let n=de(await this.http.request(`/user/login`,{method:`POST`,body:{email:e,password:t}}));if(!n?.accessToken)throw new m(`LOGIN_FAILED`,`Login succeeded but accessToken is missing`);return n}};function mo(e){if(!e)return;let t=Object.entries(e).filter(([,e])=>e!==void 0&&e!==``);return t.length>0?Object.fromEntries(t):void 0}var ho=class{constructor(e,t){p(this,`http`,void 0),p(this,`resolveAuth`,void 0),this.http=e,this.resolveAuth=t}agentRequestInit(e,t){return{method:`GET`,signal:t.signal,searchParams:t.searchParams,omitDefaultHeaders:[ee],headers:oe(e)}}listAvailableAgents(e,t){let{dsn:n}=this.resolveAuth();return this.http.request(`/agent/client/available`,this.agentRequestInit(n,{signal:t,searchParams:mo(e)}))}listAllClientAgents(e){let{dsn:t}=this.resolveAuth();return this.http.request(`/agent/client/list`,this.agentRequestInit(t,{signal:e}))}listClientSkills(e,t,n){let{dsn:r}=this.resolveAuth(),i=e.trim();return this.http.request(`/agent/${i}/skills/client`,this.agentRequestInit(r,{signal:n,searchParams:mo(t)}))}};function go(e){let t={pageContext:e};return e.page&&(t.page=e.page),e.routePath&&(t.routePath=e.routePath),e.routeParams&&(t.routeParams=e.routeParams),e.flowId!=null&&(t.flowId=e.flowId),e.programName&&(t.programName=e.programName),e.entity&&(t.entity=e.entity),e.metadata&&(t.metadata=e.metadata),t}function _o(e){return!(e instanceof m)||e.code!==`TRANSPORT_FAILED`?!1:e.message.toLowerCase().includes(`property content should not exist`)}function vo(e){return e.trim().toLowerCase()}var yo=class{constructor(e){p(this,`http`,void 0),this.http=e}listSessions(e,t,n){return this.http.request(`/chat`,{method:`GET`,signal:n,searchParams:{page:e,size:t}})}getSession(e,t,n,r){return this.http.request(`/chat/${vo(e)}`,{method:`GET`,signal:r,searchParams:{page:t,size:n}})}prepareSession(e,t,n){let r=t&&Object.keys(t).length>0?go(t):void 0;return this.http.request(`/chat/${vo(e)}/prepare`,{method:`POST`,body:r,signal:n})}deleteSession(e){return this.http.request(`/chat/${vo(e)}`,{method:`DELETE`})}streamSession(e,t){return this.http.stream(`/chat/${vo(e)}/stream`,t)}getRunState(e,t){return this.http.request(`/chat/${vo(e)}/run-state`,{method:`GET`,signal:t})}createSession(e,t,n){return this.postUserPayload(`/chat`,e,t,n)}postMessage(e,t,n,r){return this.postUserPayload(`/chat/${e}/messages`,t,n,r)}postWriteGateDecision(e,t,n){let r=`/chat/${vo(e)}/messages`,i={role:`user`,content:``,writeGate:t};return this.postUserPayload(r,``,n,void 0,i)}postWriteConfirmation(e,t,n){let r=t.cancelWrite===!0?{action:`cancel`}:{action:`confirm`};return this.postWriteGateDecision(e,r,n)}async cancelRun(e,t){let n={};return t!=null&&(n.runId=t),yt(await this.http.request(`/chat/${vo(e)}/cancel-run`,{method:`POST`,body:Object.keys(n).length>0?n:void 0}))}async postUserPayload(e,t,n,r,i){let a=i??this.buildUserMessageBody(t,r);try{return await this.http.request(e,{method:`POST`,body:a,signal:n})}catch(t){if(!_o(t))throw t;let{content:r,...i}=a;return this.http.request(e,{method:`POST`,body:{...i,message:r},signal:n})}}buildUserMessageBody(e,t){let n={role:`user`,content:e},r=t?.agentId?.trim(),i=t?.skillId?.trim();r&&(n.agentId=/^\d+$/.test(r)?Number(r):r),i&&(n.skillId=/^\d+$/.test(i)?Number(i):i);let a=bo(t);return a&&Object.assign(n,go(a)),t?.entityCommit?.entityType?.trim()&&t?.entityCommit?.selectedId?.trim()&&(n.entityCommit={entityType:t.entityCommit.entityType.trim(),selectedId:t.entityCommit.selectedId.trim()}),n}};function bo(e){if(!e)return null;let t={};return e.page&&(t.page=e.page),e.routePath&&(t.routePath=e.routePath),e.routeParams&&(t.routeParams=e.routeParams),e.flowId!=null&&(t.flowId=e.flowId),e.programName&&(t.programName=e.programName),e.entity&&(t.entity=e.entity),e.metadata&&(t.metadata=e.metadata),Object.keys(t).length>0?t:null}function xo(e){return typeof e==`object`&&!!e}function So(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Co(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function I(e){if(!xo(e))throw new m(`TRANSPORT_FAILED`,`Invalid API response`);let t=Co(e.status);if(t!==void 0&&t!==200)throw new m(`TRANSPORT_FAILED`,So(e.message)??`request failed`,{details:{status:t,data:e.data}});if(`data`in e&&e.data===null)return null;let n=b(e);return n===null?e:n}function wo(e){return e.trim().toLowerCase()}var To=class{constructor(e){p(this,`http`,void 0),this.http=e}async getDownReasonTags(e){return Bt(I(await this.http.request(`/chat/feedback/down-reason-tags`,{method:`GET`,signal:e}))).items}async batchFeedbacks(e,t,n){return t.length===0?{items:[]}:Ht(I(await this.http.request(`/chat/${wo(e)}/messages/feedbacks`,{method:`GET`,signal:n,searchParams:{messageIds:t.join(`,`)}})))}async upsert(e,t,n,r){return Vt(I(await this.http.request(`/chat/${wo(e)}/messages/${t}/feedback`,{method:`PUT`,body:n,signal:r})))}async remove(e,t,n){I(await this.http.request(`/chat/${wo(e)}/messages/${t}/feedback`,{method:`DELETE`,signal:n}))}},Eo=class{constructor(e){p(this,`http`,void 0),this.http=e}async register(e){let t=I(await this.http.request(`/host-tool/client/register`,{method:`POST`,body:e}));return{created:Array.isArray(t?.created)?t.created:[],skipped:Array.isArray(t?.skipped)?t.skipped:[]}}async getCatalog(e){return I(await this.http.request(`/host-tool/client/catalog`,{method:`GET`,searchParams:e}))}},Do=class{constructor(e){p(this,`http`,void 0),this.http=e}getRun(e,t,n){return this.http.request(`/agent-run/by-app-client/${e}/${t}`,{method:`GET`,signal:n})}};function Oo(e){return!!(e&&Object.keys(e).length>0)}function ko(e){let t=e.pageContext,n=e.routeContext,r={};t?.page?.trim()&&(r.page=t.page.trim()),t?.flowId!=null&&(r.flowId=t.flowId),t?.programName?.trim()&&(r.programName=t.programName.trim()),t?.entity&&(r.entity=t.entity),t?.metadata&&Object.keys(t.metadata).length>0&&(r.metadata=t.metadata);let i=t?.routePath?.trim()||n?.routePath?.trim();i&&(r.routePath=i);let a=(Oo(t?.routeParams)?t.routeParams:void 0)??(Oo(n?.routeParams)?n.routeParams:void 0);return a&&(r.routeParams=a),Object.keys(r).length>0?r:void 0}function Ao(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e,n={};if(typeof t.page==`string`&&t.page.trim()&&(n.page=t.page.trim()),typeof t.routePath==`string`&&t.routePath.trim()&&(n.routePath=t.routePath.trim()),typeof t.programName==`string`&&t.programName.trim()&&(n.programName=t.programName.trim()),typeof t.flowId==`number`&&Number.isFinite(t.flowId)&&(n.flowId=t.flowId),t.routeParams&&typeof t.routeParams==`object`&&!Array.isArray(t.routeParams)){let e={};for(let[n,r]of Object.entries(t.routeParams))typeof r==`string`?e[n]=r:(typeof r==`number`||typeof r==`boolean`)&&(e[n]=String(r));Object.keys(e).length>0&&(n.routeParams=e)}return t.entity&&typeof t.entity==`object`&&!Array.isArray(t.entity)&&(n.entity=t.entity),t.metadata&&typeof t.metadata==`object`&&!Array.isArray(t.metadata)&&(n.metadata=t.metadata),Object.keys(n).length>0?n:null}var jo=`BRAIN_ASK_USER`,Mo=`brain:clarify`;function No(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Po(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Fo(e){if(!No(e))return null;let t=Po(e.id),n=Po(e.entityType);if(!t||!n)return null;let r={id:t,entityType:n},i=Po(e.text);i&&(r.text=i),No(e.fields)&&(r.fields=e.fields);let a=Po(e.source);a&&(r.source=a);let o=Po(e.path);return o&&(r.path=o),r}function Io(e){if(!No(e)||e.kind!==`entity_resolve`)return null;let t=Po(e.question),n=Po(e.entityType);if(!t||!n||!Array.isArray(e.candidates))return null;let r=e.candidates.map(e=>Fo(e)).filter(e=>e!=null);if(r.length===0)return null;let i=No(e.commitHint)&&Po(e.commitHint.entityType)?Po(e.commitHint.entityType):n;return{kind:`entity_resolve`,question:t,reason:Po(e.reason)??``,entityType:n,candidates:r,commitHint:{entityType:i},proposalType:Po(e.proposalType)??``}}function Lo(e){return e?.trim()===jo}function Ro(e,t){return{entityType:e.commitHint.entityType||e.entityType,selectedId:t.trim()}}function zo(e){let t=e.text?.trim();if(t)return t;if(e.fields&&Object.keys(e.fields).length>0)try{return JSON.stringify(e.fields).slice(0,80)}catch{}return e.id}function Bo(e){if(e.errorCode&&!Lo(e.errorCode)&&e.errorCode.trim().length>0)return null;if(Array.isArray(e.steps))for(let t=e.steps.length-1;t>=0;--t){let n=e.steps[t];if(!No(n))continue;let r=typeof n.name==`string`?n.name:``;if(r===`runtime:brain_clarify`||r===`brain_clarify`||r.endsWith(`:brain_clarify`)){let e=Io(n.detail);if(e)return e;let t=Io(n.output);if(t)return t}let i=No(n.detail)?n.detail:No(n.output)?n.output:null;if(r.includes(`brain_blocked`)&&i){let e=Io(i.brainClarify);if(e)return e}}let t=e.nodeOutputs;if(t){let e=Io(t[Mo]);if(e)return e}return null}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Vo(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function Ho(e){let t=R(e);if(t===`running`||t===`awaiting_approval`||t===`completed`||t===`failed`||t===`cancelled`)return t}function Uo(e){let t=R(e);if(t===`page_action`||t===`webhook`)return t}function Wo(e){if(!L(e))return null;let t=R(e.kind),n=Vo(e.id);return n==null?null:t===`page_action_run`?{kind:`page_action_run`,id:n}:t===`webhook_approval`?{kind:`webhook_approval`,id:n}:null}function Go(e){return L(e)?{preview:e.preview===null?null:R(e.preview)??null,hasFillText:e.hasFillText===!0}:{preview:null,hasFillText:!1}}function Ko(e){if(!L(e))return null;let t=Vo(e.id),n=R(e.status);return t==null||!n?null:{id:t,status:n}}function qo(e){if(!L(e))return null;let t=Vo(e.step),n=R(e.type),r=R(e.name),i=R(e.at);if(t==null||!n||!r||!i)return null;let a=R(e.status);return{step:t,type:n,name:r,at:i,...a===`ok`||a===`failed`||a===`skipped`?{status:a}:{}}}function Jo(e){if(!L(e))return null;let t=Wo(e.ref),n=Uo(e.triggerSource),r=Ho(e.taskStatus),i=R(e.title),a=R(e.createdAt);return!t||!n||!r||!i||!a?null:{ref:t,triggerSource:n,taskStatus:r,title:i,subtitle:e.subtitle===null?null:R(e.subtitle)??null,workflowKey:e.workflowKey===null?null:R(e.workflowKey)??null,workflowName:e.workflowName===null?null:R(e.workflowName)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,createdAt:a,finishedAt:e.finishedAt===null?null:R(e.finishedAt)??null,durationMs:e.durationMs===null?null:Vo(e.durationMs)??null,approval:Ko(e.approval),outputs:Go(e.outputs)}}function Yo(e,t=20){let n=L(e)?e:null,r=Vo(n?.total)??Vo(n?.totalCount)??0,i=(Array.isArray(n?.items)?n.items:[]).map(e=>Jo(e)).filter(e=>e!=null);return{items:i,total:r,hasMore:Xo(i.length,i.length,r,t)}}function Xo(e,t,n,r){return n>0?e<n:t>=r}function Zo(e,t,n){if(L(e))return{canReplay:e.canReplay===!0,hasHostAction:e.hasHostAction===!0,dslOutcome:typeof e.dslOutcome==`string`?e.dslOutcome:null};let r=!!t.outputs?.hasFillText;return{canReplay:t.taskStatus===`completed`&&r,hasHostAction:r,dslOutcome:typeof n.dslOutcome==`string`?n.dslOutcome:null}}function Qo(e){if(!L(e))return null;let t=Jo(e);if(!t)return null;let n=R(e.actionKey),r=R(e.streamUrl);if(!n||!r)return null;let i=(Array.isArray(e.timeline)?e.timeline:[]).map(e=>qo(e)).filter(e=>e!=null);return{...t,actionKey:n,instruction:e.instruction===null?null:R(e.instruction)??null,errorCode:e.errorCode===null?null:R(e.errorCode)??null,errorMessage:e.errorMessage===null?null:R(e.errorMessage)??null,streamUrl:r,timeline:i,workflowRun:e.workflowRun??null,brainClarify:Io(e.brainClarify),pageContext:e.pageContext===null||e.pageContext===void 0?null:Ao(e.pageContext),replay:Zo(e.replay,t,e)}}function $o(e){if(!L(e))throw Error(`Invalid page-action invoke response`);let t=Vo(e.runId),n=Vo(e.generation),r=R(e.streamUrl),i=Ho(e.status);if(t==null||n==null||!r||!i)throw Error(`Invalid page-action invoke response`);return{runId:t,generation:n,clientActionId:e.clientActionId===null?null:R(e.clientActionId)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,streamUrl:r,status:i}}function es(e){let t=R(e);if(t===`running`||t===`awaiting_approval`)return t}function ts(e){if(!L(e))throw Error(`Invalid page-action already-active response`);let t=R(e.code),n=R(e.pageActionKey),r=Vo(e.existingRunId),i=es(e.existingStatus),a=R(e.streamUrl);if(t!==`PAGE_ACTION_ALREADY_ACTIVE`||!n||r==null||!i||!a)throw Error(`Invalid page-action already-active response`);let o=Vo(e.approvalRequestId);return{code:`PAGE_ACTION_ALREADY_ACTIVE`,message:R(e.message)??`An active PageAction run already exists`,pageActionKey:n,existingRunId:r,existingStatus:i,approvalRequestId:o??null,streamUrl:a}}function ns(e){if(!L(e))throw Error(`Invalid page-action invoke response`);let t=Vo(e.status);if(t===409)return{kind:`already_active`,...ts(e.data)};if(t!==void 0&&t!==200)throw Error(R(e.message)??`page-action invoke failed`);return{kind:`accepted`,...$o(L(e.data)?e.data:e)}}function rs(e){if(!L(e))return null;let t=Wo(e.ref),n=Uo(e.triggerSource),r=Ho(e.taskStatus),i=R(e.title),a=R(e.createdAt);if(!t||t.kind!==`page_action_run`||!n||!r||!i||!a)return null;let o=L(e.outputs)?e.outputs:null,s=o?.preview===null?null:R(o?.preview)??null,c=o?.fillText===null?null:R(o?.fillText)??null,l=Vo(e.runUserId);return{ref:t,triggerSource:n,taskStatus:r,title:i,subtitle:e.subtitle===null?null:R(e.subtitle)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,createdAt:a,finishedAt:e.finishedAt===null?null:R(e.finishedAt)??null,outputs:{preview:s,fillText:c??void 0,hasFillText:o?.hasFillText===!0||!!c?.trim()},...e.succeeded===!0||e.succeeded===!1?{succeeded:e.succeeded}:{},...l==null?{}:{runUserId:l}}}function is(e){let t=L(e)?e:null;if(!t)throw Error(`Invalid page-action reuse-hint response`);let n=Vo(t.status);if(n!==void 0&&n!==200)throw Error(R(t.message)??`page-action reuse-hint failed (${n})`);let r=L(t.data)?t.data:t,i=R(r.pageActionKey),a=R(r.actionKey);if(!i||!a)throw Error(`Invalid page-action reuse-hint response`);let o=L(r.reusable)?r.reusable:null,s=(Array.isArray(o?.items)?o.items:[]).map(e=>rs(e)).filter(e=>e!=null);return{pageActionKey:i,actionKey:a,reusable:{total:Vo(o?.total)??s.length,items:s}}}function as(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function z(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function B(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}var os=new Set([`submitted`,`reviewing`,`planned`,`in_progress`,`done`,`rejected`,`cancelled`]);function ss(e){let t=z(e);if(t&&os.has(t))return t}function cs(e){if(e==null||!as(e))return null;let t=B(e.rating),n=z(e.updatedAt);return t==null||t<1||t>5||!n?null:{rating:t,comment:e.comment===null?null:z(e.comment)??null,updatedAt:n}}function ls(e){if(!as(e))return null;let t=z(e.actionKey),n=z(e.name),r=B(e.pageActionId);return!t||!n||r==null?null:{pageActionId:r,actionKey:t,name:n,description:e.description===null?null:z(e.description)??null,pageScope:e.pageScope===null?null:z(e.pageScope)??null,sortOrder:B(e.sortOrder)??0,myFeedback:cs(e.myFeedback)}}function us(e){if(!as(e))return null;let t=B(e.id),n=B(e.pageActionId),r=z(e.actionKey),i=z(e.pageActionName),a=B(e.appClientId),o=B(e.userId),s=B(e.rating),c=z(e.createdAt),l=z(e.updatedAt);return t==null||n==null||!r||!i||a==null||o==null||s==null||!c||!l?null:{id:t,pageActionId:n,actionKey:r,pageActionName:i,appClientId:a,userId:o,rating:s,comment:e.comment===null?null:z(e.comment)??null,createdAt:c,updatedAt:l}}function ds(){return{1:0,2:0,3:0,4:0,5:0}}function fs(e){let t=ds();if(!as(e))return t;for(let n of[`1`,`2`,`3`,`4`,`5`]){let r=B(e[n]);r!=null&&(t[n]=r)}return t}function ps(e){if(!as(e))return null;let t=B(e.pageActionId),n=z(e.actionKey),r=z(e.pageActionName),i=B(e.count);return t==null||!n||!r||i==null?null:{pageActionId:t,actionKey:n,pageActionName:r,count:i,avgRating:e.avgRating===null||e.avgRating===void 0?null:B(e.avgRating)??null,ratingDistribution:fs(e.ratingDistribution)}}function ms(e){if(!as(e))return null;let t=B(e.id),n=B(e.appClientId),r=B(e.userId),i=z(e.title),a=z(e.description),o=ss(e.status),s=z(e.createdAt),c=z(e.updatedAt);return t==null||n==null||r==null||!i||!a||!o||!s||!c?null:{id:t,appClientId:n,userId:r,title:i,description:a,pageScope:e.pageScope===null?null:z(e.pageScope)??null,relatedActionKey:e.relatedActionKey===null?null:z(e.relatedActionKey)??null,status:o,developerNote:e.developerNote===null?null:z(e.developerNote)??null,statusUpdatedAt:e.statusUpdatedAt===null?null:z(e.statusUpdatedAt)??null,createdAt:s,updatedAt:c}}function hs(e){let t=I(e),n=Array.isArray(t)?t:as(t)&&Array.isArray(t.items)?t.items:[],r=new Set,i=[];for(let e of n){let t=ls(e);!t||r.has(t.actionKey)||(r.add(t.actionKey),i.push(t))}return i}function gs(e){let t=I(e);return t==null?null:us(t)}function _s(e){let t=ps(I(e));if(!t)throw Error(`Invalid page-action feedback summary`);return t}function vs(e){let t=ms(I(e));if(!t)throw Error(`Invalid page-action wish`);return t}function ys(e){let t=I(e);if(!as(t))return{items:[],total:0,page:1,pageSize:20,hasMore:!1};let n=(Array.isArray(t.items)?t.items:[]).map(e=>ms(e)).filter(e=>e!=null),r=B(t.total)??n.length,i=B(t.page)??1,a=B(t.pageSize)??20;return{items:n,total:r,page:i,pageSize:a,hasMore:typeof t.hasMore==`boolean`?t.hasMore:i*a<r}}function bs(e){return encodeURIComponent(e.trim())}function xs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ss(e){if(!(e instanceof m)||e.code!==`TRANSPORT_FAILED`)return null;let t=e.details;if(!xs(t)||t.status!==409)return null;let n=[];t.data!=null&&n.push(t.data),xs(t.body)&&(t.body.data!=null&&n.push(t.body.data),n.push(t.body));for(let e of n)if(xs(e))try{if(e.code===`PAGE_ACTION_ALREADY_ACTIVE`)return{kind:`already_active`,...ts(e)};if(xs(e.data)&&e.data.code===`PAGE_ACTION_ALREADY_ACTIVE`)return{kind:`already_active`,...ts(e.data)}}catch{}if(t.serverCode===`PAGE_ACTION_ALREADY_ACTIVE`&&xs(t.data))try{return{kind:`already_active`,...ts(t.data)}}catch{return null}return null}var Cs=class{constructor(e){p(this,`http`,void 0),this.http=e}async invoke(e,t){try{return ns(await this.http.request(`/page-action/brain-invoke`,{method:`POST`,signal:t,body:e}))}catch(e){let t=Ss(e);if(t)return t;throw e}}async reuseHint(e,t){return is(await this.http.request(`/page-action/reuse-hint`,{method:`POST`,signal:t,body:e}))}async invokeAccepted(e,t){return this.invoke(e,t)}streamRun(e,t){return this.http.stream(`/page-action/runs/${e}/stream`,{signal:t})}async listCatalog(e={},t){let n=e.pageScope?.trim();return hs(await this.http.request(`/page-action/catalog`,{method:`GET`,signal:t,searchParams:n?{pageScope:n}:void 0}))}async upsertFeedback(e,t,n){let r=gs(await this.http.request(`/page-action/feedback/${bs(e)}`,{method:`PUT`,signal:n,body:t}));if(!r)throw new m(`TRANSPORT_FAILED`,`Invalid feedback response`);return r}async getMyFeedback(e,t){return gs(await this.http.request(`/page-action/feedback/${bs(e)}`,{method:`GET`,signal:t}))}async removeMyFeedback(e,t){await this.http.request(`/page-action/feedback/${bs(e)}`,{method:`DELETE`,signal:t})}async getFeedbackSummary(e,t){return _s(await this.http.request(`/page-action/feedback/${bs(e)}/summary`,{method:`GET`,signal:t}))}async createWish(e,t){return vs(await this.http.request(`/page-action/wishes`,{method:`POST`,signal:t,body:e}))}async listWishes(e={},t){let n={};return e.page!=null&&(n.page=e.page),e.pageSize!=null&&(n.pageSize=e.pageSize),e.status&&(n.status=e.status),e.keyword&&(n.keyword=e.keyword),e.pageScope&&(n.pageScope=e.pageScope),e.relatedActionKey&&(n.relatedActionKey=e.relatedActionKey),ys(await this.http.request(`/page-action/wishes`,{method:`GET`,signal:t,searchParams:n}))}async getWish(e,t){return vs(await this.http.request(`/page-action/wishes/${e}`,{method:`GET`,signal:t}))}async cancelWish(e,t){return vs(await this.http.request(`/page-action/wishes/${e}/cancel`,{method:`PATCH`,signal:t}))}},ws=class{constructor(e){p(this,`http`,void 0),this.http=e}async listTasks(e={}){let t=e.limit??20,n={limit:String(t),offset:String(e.offset??0)};return e.status&&(n.status=e.status),e.triggerSource&&(n.triggerSource=e.triggerSource),e.actionKey?.trim()&&(n.actionKey=e.actionKey.trim()),e.workflowKey?.trim()&&(n.workflowKey=e.workflowKey.trim()),Yo(I(await this.http.request(`/automation/tasks`,{method:`GET`,signal:e.signal,searchParams:n})),t)}async getPageActionRunTask(e,t){return Qo(I(await this.http.request(`/automation/tasks/page_action_run/${e}`,{method:`GET`,signal:t})))}};function Ts(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Es(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function Ds(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Os(e){return e==null?null:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):null}function ks(e){if(!Ts(e))return null;let t=Es(e.key),n=Es(e.label),r=Os(e.value);return!t||!n||r==null?null:{key:t,label:n,value:r}}function As(e){return Array.isArray(e)?e.map(e=>ks(e)).filter(e=>e!=null):[]}function js(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=Es(n);e&&t.push(e)}return t}function Ms(e,t,n){let r=Es(e.toolName);return n===`fetch_data`?r??t:n===`load_page_context`?`load_page_context`:n===`summarize_images`?`summarize_images`:r??(n||t)}function Ns(e){if(!Ts(e))return null;let t=Es(e.kind);if(!t)return null;let n=Es(e.title)??t,r=Array.isArray(e.fields),i=Ts(e.record)?e.record:null;return!r&&i?{kind:t,title:n,fields:[],imageUrls:[],legacyRecord:i}:{kind:t,title:n,fields:As(e.fields),imageUrls:js(e.imageUrls)}}function Ps(e){if(!Ts(e))return null;let t=Es(e.ref),n=Es(e.action);if(!t||!n)return null;let r=As(e.fields),i=js(e.imageUrls);return{ref:t,action:n,title:Es(e.title)??Ms(e,t,n),toolName:Es(e.toolName),toolId:Ds(e.toolId),data:e.data,fields:r,imageUrls:i.length>0?i:void 0}}function Fs(e){if(!Ts(e))return null;let t=Array.isArray(e.inlineRecords)?e.inlineRecords.map(e=>Ns(e)).filter(e=>e!=null):[],n=Array.isArray(e.sources)?e.sources.map(e=>Ps(e)).filter(e=>e!=null).sort((e,t)=>e.ref.localeCompare(t.ref)):[],r=t.some(e=>e.legacyRecord!=null);return{page:Es(e.page),routePath:Es(e.routePath),entityType:Es(e.entityType),entityId:Es(e.entityId),anchorLabel:Es(e.anchorLabel),inlineRecords:t,sources:n,legacy:r||void 0}}function Is(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ls(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Rs(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function zs(e){let t=Ls(e);if(t===`chat`||t===`page_action`||t===`webhook`)return t}function Bs(e){let t=Ls(e);if(t===`pending`||t===`approved`||t===`rejected`||t===`cancelled`||t===`expired`)return t}function Vs(e){if(!Is(e))return null;let t=Rs(e.id);return t==null?null:{id:t,username:Ls(e.username)??null,employeeId:Ls(e.employeeId)??null}}function Hs(e){if(!Is(e))return null;let t=Rs(e.retryCount)??0,n=e.retryMax===null?null:Rs(e.retryMax)??null;return{retryCount:t,retryMax:n,canRetry:e.canRetry===!1?!1:e.canRetry===!0||n==null||t<n}}function Us(e){if(!Is(e))return null;let t=Ls(e.tool);return t?{tool:t,riskLevel:Ls(e.riskLevel)??`L2`}:null}function Ws(e){if(!Is(e))return null;let t=Rs(e.id),n=zs(e.source),r=Bs(e.status),i=Ls(e.title),a=Ls(e.createdAt);if(t==null||!n||!r||!i||!a)return null;let o=ft({writeDraft:Ae(e.writeDraft),writeDrafts:e.writeDrafts,editPolicy:$e(e.editPolicy),editPolicies:e.editPolicies}),s=o[0];return{id:t,source:n,status:r,title:i,summary:Ls(e.summary)??null,workflowId:Rs(e.workflowId)??0,workflowVersion:Rs(e.workflowVersion)??0,workflowKey:Ls(e.workflowKey)??null,workflowName:Ls(e.workflowName)??null,nodeId:Ls(e.nodeId)??``,sessionId:Ls(e.sessionId)??null,pageActionRunId:Rs(e.pageActionRunId)??null,initiator:Vs(e.initiator),createdAt:a,decidedAt:Ls(e.decidedAt)??null,previewBlocks:e.previewBlocks??null,pendingWrite:Us(e.pendingWrite),writeDraft:s?.writeDraft??null,editPolicy:s?.editPolicy??null,writeDrafts:o.length>1?o.map(e=>e.writeDraft):null,editPolicies:o.length>1?o.map(e=>e.editPolicy):null,draftReview:Hs(e.draftReview),entityReference:Fs(e.entityReference)}}function Gs(e,t=50){let n=Is(e)?e:null,r=(Array.isArray(n?.items)?n.items:[]).map(e=>Ws(e)).filter(e=>e!=null).filter(e=>e.source!==`chat`);return{items:r,hasMore:r.length>=t}}function Ks(e){let t=Ws(e);return t?{...t,decidedAt:t.decidedAt??null}:null}function qs(e){let t=Is(e)?e:null;return{resumed:t?.resumed===!0,suspended:t?.suspended===!0||void 0}}function Js(e){return qs(e)}function Ys(e){return{ok:(Is(e)?e:null)?.ok===!0}}var Xs=class{constructor(e){p(this,`http`,void 0),this.http=e}async listInbox(e={}){let t=e.limit??50,n={limit:String(t),offset:String(e.offset??0)};return e.status&&(n.status=e.status),Gs(I(await this.http.request(`/approval/inbox`,{method:`GET`,signal:e.signal,searchParams:n})),t)}async getById(e,t){return Ks(I(await this.http.request(`/approval/${e}`,{method:`GET`,signal:t})))}async decide(e,t,n,r){let i={decision:t};return n?.trim()&&(i.reason=n.trim()),Js(I(await this.http.request(`/approval/${e}/decide`,{method:`POST`,signal:r,body:i})))}async confirm(e,t){return qs(I(await this.http.request(`/approval/${e}/confirm`,{method:`POST`,signal:t})))}async reject(e,t,n){return Ys(I(await this.http.request(`/approval/${e}/reject`,{method:`POST`,signal:n,body:t?.trim()?{reason:t.trim()}:{}})))}};function Zs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Qs(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function $s(e){if(typeof e==`number`&&Number.isFinite(e))return e}function ec(e){if(!Zs(e))return null;let t=Qs(e.definitionKey),n=Qs(e.name),r=$s(e.toolId);return!t||!n||r===void 0?null:{definitionKey:t,name:n,description:Qs(e.description)??``,riskLevel:Qs(e.riskLevel)??`L1`,method:Qs(e.method)??``,path:Qs(e.path)??``,inputSchema:e.inputSchema??null,toolId:r}}function tc(e){if(!Zs(e))throw new m(`TRANSPORT_FAILED`,`Invalid app tool invoke response`);let t=Qs(e.definitionKey),n=Qs(e.name),r=$s(e.toolId),i=$s(e.latencyMs)??0;if(!t||!n||r===void 0)throw new m(`TRANSPORT_FAILED`,`Invalid app tool invoke response shape`);return{ok:e.ok===!0,definitionKey:t,toolId:r,name:n,latencyMs:i,output:e.output,httpStatus:$s(e.httpStatus),error:Qs(e.error)}}function nc(e){if(!(e instanceof m))return null;let t=e.details?.serverCode;return typeof t==`string`&&t.trim()?t.trim():null}var rc=class{constructor(e){p(this,`http`,void 0),this.http=e}async listCallable(e){let t=I(await this.http.request(`/app/tools/callable`,{method:`GET`,signal:e}));return{items:Array.isArray(t?.items)?t.items.map(ec).filter(e=>e!=null):[]}}async invoke(e){let t=e.definitionKey.trim();if(!t)throw new m(`INVALID_OPTIONS`,`definitionKey is required`);return tc(I(await this.http.request(`/app/tools/invoke`,{method:`POST`,signal:e.signal,body:{definitionKey:t,...e.parameters===void 0?{}:{parameters:e.parameters}}})))}},ic=class{constructor(e){p(this,`context`,void 0),p(this,`sessionId`,null),p(this,`initialMessages`,[]),this.context=e.context}updateContext(e){this.context={...this.context,...e}}getSession(){return this.sessionId?{sessionId:this.sessionId,conversationId:this.sessionId}:null}getInitialMessages(){return this.initialMessages}setSession(e,t=[]){this.sessionId=e.trim().toLowerCase(),this.initialMessages=t}reset(){this.sessionId=null,this.initialMessages=[]}};function ac(e){return/^\d+$/.test(e)}function oc(e){if(!ac(e))return null;let t=Number(e);return Number.isFinite(t)?t:null}function sc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function cc(e){if(typeof e==`string`)try{return cc(JSON.parse(e))}catch{return[]}return Array.isArray(e)?e.filter(e=>sc(e)&&typeof e.type==`string`):[]}function lc(e){let t=b(e)??(sc(e)?e:null);return t?{steps:cc(t.steps),turnExecutionTimeline:cc(t.turnExecutionTimeline)}:null}function uc(e){return e.turnExecutionTimeline.length>0?e.turnExecutionTimeline:e.steps}function dc(e){if(!sc(e))return null;let t=e.status;if(t!==`none`&&t!==`aligned`&&t!==`intent_first`&&t!==`clarified`)return null;let n={status:t};typeof e.code==`string`&&(n.code=e.code);let r=e.requestedSkillId;return typeof r==`number`&&Number.isFinite(r)&&(n.requestedSkillId=r),e.droppedExplicitSkill===!0&&(n.droppedExplicitSkill=!0),n}function fc(e){return e===`explicit`||e===`page_host`||e===`llm`?e:`llm`}function pc(e){return e===`explicit_skill`||e===`intent`?e:`intent`}function mc(e){return e===`inline_answer`||e===`entity_read_detail`||e===`none`?e:`none`}function hc(e){if(!e?.length)return null;let t=e.find(e=>e.type===`route_plan`);return!t?.output||!sc(t.output)?null:t.output}function gc(e){let t=hc(e);if(!t)return null;let n=dc(t.skillAlignment);if(!n)return null;let r=typeof t.requestedSkillId==`number`&&Number.isFinite(t.requestedSkillId)?t.requestedSkillId:null;return{skillAlignment:n,skillSelect:fc(t.skillSelect),scopedToolsSource:pc(t.scopedToolsSource),pageContextPlan:mc(t.pageContextPlan),hostMutationIntent:!!t.hostMutationIntent,requestedSkillId:r}}function _c(e){return gc(e)?.skillAlignment??null}function vc(e){return e?e.scopedToolsSource===`explicit_skill`&&e.skillAlignment.status===`aligned`&&e.skillSelect===`explicit`:!1}function yc(e){return e?.skillAlignment.status===`intent_first`}function bc(e){return e?.status===`intent_first`}function xc(e){return e?.skillAlignment.status===`clarified`}function Sc(e){return e?.status===`clarified`}function Cc(e){return`skill_intent_mismatch.${e}`}function wc(e){if(!e?.length)return null;for(let t=e.length-1;t>=0;--t){let n=e[t];if(n.type!==`summarize`)continue;let r=n.output;if(!sc(r))continue;let i=r.observations;if(Array.isArray(i))for(let e of i){if(!sc(e)||e.name!==`skill_intent_mismatch`)continue;let t=e.output;if(sc(t))return{userMessage:typeof t.userMessage==`string`?t.userMessage:void 0,mismatchCode:typeof t.mismatchCode==`string`?t.mismatchCode:void 0,requestedSkillId:typeof t.requestedSkillId==`number`?t.requestedSkillId:void 0,requestedSkillName:typeof t.requestedSkillName==`string`?t.requestedSkillName:void 0,routingReason:typeof t.routingReason==`string`?t.routingReason:void 0}}}return null}var Tc=new Set([`stage`,`thought`,`evidence`,`ask`,`outcome`]),Ec=80,Dc={fetch_data:`gather`,detect_clues:`gather`,summarize_images:`gather`,generate_and_push:`produce`,summarize:`produce`,compose_mutation:`produce`,present_mutation:`produce`,write_data:`produce`,await_user_confirm:`other`};function Oc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function kc(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Ac(e){let t=V(e);return t===`planning`||t===`gather`||t===`produce`||t===`other`?t:null}function jc(e){let t=String(e??``).trim();return t?Dc[t]??null:null}function Mc(e){let t=V(e);return t&&Tc.has(t)?t:null}function Nc(e){if(!Oc(e))return null;let t=V(e.key),n=V(e.label),r=V(e.value);return!t||!n||r==null?null:{key:t,label:n,value:r??``}}function Pc(e){if(!Oc(e))return null;let t=Mc(e.kind);if(!t)return null;let n=(Array.isArray(e.fields)?e.fields:null)?.map(Nc).filter(e=>e!=null).slice(0,12),r=(Array.isArray(e.missing)?e.missing:null)?.map(e=>V(e)).filter(e=>!!e).slice(0,12),i=kc(e.turn);return{kind:t,code:V(e.code),text:V(e.text),turn:i??void 0,actionType:V(e.actionType),title:V(e.title),fields:n&&n.length>0?n:void 0,ref:V(e.ref),missing:r&&r.length>0?r:void 0}}function Fc(e){return Array.isArray(e)?e.map(Pc).filter(e=>e!=null).slice(0,8):[]}function Ic(e){return[e.kind,e.code??``,e.ref??``,e.turn==null?``:String(e.turn),e.text??``,e.title??``].join(``)}function Lc(e,t){let n=e??[],r=t??[];if(r.length===0)return n;let i=new Set(n.map(Ic)),a=[...n];for(let e of r){let t=Ic(e);i.has(t)||(i.add(t),a.push(e))}return a.length===n.length?n:a.length>Ec?a.slice(-80):a}function Rc(e){return(e??[]).some(e=>e.kind!==`stage`)}function zc(e){return(e??[]).filter(e=>e.kind!==`stage`).length}var Bc={itemCount:`相关条数`,observationCount:`观测数`,identity:`标识`,page:`页码`,rowCount:`行数`,fetchedCount:`已获取`,achieved:`已达成`},Vc={itemCount:`Items`,observationCount:`Observations`,identity:`ID`,page:`Page`,rowCount:`Rows`,fetchedCount:`Fetched`,achieved:`Achieved`};function Hc(e){let t=String(e??``).toLowerCase();return!t||t.startsWith(`zh`)}function Uc(e,t){let n=e.key.trim(),r=e.label.trim();return(Hc(t)?Bc[n]:Vc[n])||(r===n&&Bc[n]?Hc(t)?Bc[n]:Vc[n]:r||n)}function Wc(e){let t=String(e.code??``);return e.kind===`evidence`&&(t.endsWith(`_summary`)||t.endsWith(`_empty`)||t===`fetch_summary`||t===`fetch_empty`)}function Gc(e){let t=String(e.code??``);return e.kind===`evidence`&&(t.endsWith(`_entity_preview`)||t===`fetch_entity_preview`)}function Kc(e){let t=e??[],n=e=>{for(let n=t.length-1;n>=0;--n){let r=t[n];if(!e.includes(r.kind))continue;let i=r.text?.trim()||r.title?.trim();if(i)return i}return null};return n([`ask`])||n([`outcome`])||n([`evidence`])||n([`thought`])||null}function qc(e){let t=e??[],n=t.filter(e=>e.kind===`ask`),r=t.filter(e=>e.kind===`outcome`),i=t.filter(e=>e.kind!==`ask`&&e.kind!==`outcome`),a=n.map(e=>({type:`ask`,item:e})),o=[],s=null,c=[],l=()=>{o.length!==0&&(a.push({type:`stage-group`,items:o}),o=[])},u=()=>{!s&&c.length===0||((s||c.length>0)&&a.push({type:`evidence-group`,summary:s,entities:c}),s=null,c=[])};for(let e of i){if(e.kind===`stage`){u(),o.push(e);continue}if(l(),e.kind===`thought`){u(),a.push({type:`thought`,item:e});continue}if(e.kind===`evidence`){if(Wc(e)){u(),s=e;continue}if(Gc(e)){c.push(e);continue}u(),a.push({type:`evidence`,item:e})}}l(),u();for(let e of r)a.push({type:`outcome`,item:e});return a}function Jc(e){if(!Oc(e))return null;let t=V(e.phase);if(t!==`start`&&t!==`progress`&&t!==`complete`&&t!==`failed`&&t!==`awaiting_approval`)return null;let n=kc(e.actionRunId),r=kc(e.generation),i=V(e.actionKey),a=V(e.nodeId)??``;if(n==null||r==null||!i)return null;let o=V(e.action)??(e.action===null?null:void 0),s=V(e.progress)??null,c=Ac(e.stageKind)??jc(o??null)??Yc(s),l=V(e.narrative)??(e.narrative===null?null:void 0),u=e.narrativeItems,d=u==null?null:Fc(u);return{phase:t,actionRunId:n,actionKey:i,generation:r,clientActionId:V(e.clientActionId)??null,nodeId:a,action:o===void 0?void 0:o,stageKind:c,stageIndex:kc(e.stageIndex),stageTotal:kc(e.stageTotal),progress:s,narrative:l===void 0?void 0:l,narrativeItems:d,errorCode:V(e.errorCode),errorMessage:V(e.errorMessage)}}function Yc(e){let t=String(e??``).trim();return t===`planning`||t===`fetch_planning`?`planning`:t===`host_llm_waiting`||t===`fetch_tools`?`produce`:t===`fetching`||t===`fetch_data`?`gather`:null}function Xc(e,t){if(e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t)||t<=1)return null;let n=Math.trunc(e),r=Math.trunc(t);return r<=1?null:n>=0&&n<r?n===0?1:n:n===r?r:null}function Zc(e){return Hc(e)?`处理中…`:`Working…`}function Qc(e){return Hc(e)?`查可用结果…`:`Checking prior results…`}function $c(e){return Hc(e)?`已套用已有结果`:`Applied existing result`}function el(e){return Hc(e)?`套用结果…`:`Applying result…`}function tl(e){return Hc(e)?`请选择目标…`:`Pick a target…`}function nl(e){return Hc(e)?`正在执行…`:`Running…`}function rl(e){return Hc(e)?`等待审批…`:`Awaiting approval…`}function il(e){return Hc(e)?`当前任务已在执行中`:`This task is already running`}function al(e){return Hc(e)?`该操作正在等待审批,请在审批收件箱处理`:`This action is awaiting approval — open the approval inbox to continue`}function ol(e,t){if(e.phase===`complete`||e.phase===`failed`)return null;let n=Hc(t),r=e.stageKind??Yc(e.progress)??`other`;if(e.phase===`awaiting_approval`)return n?`等待审批…`:`Waiting for approval…`;if(r===`planning`)return n?`正在规划步骤…`:`Planning steps…`;if(r===`gather`){let t=Xc(e.stageIndex,e.stageTotal);return t!=null&&e.stageTotal!=null?n?`正在收集信息(${t}/${Math.trunc(e.stageTotal)})…`:`Gathering info (${t}/${Math.trunc(e.stageTotal)})…`:n?`正在收集信息…`:`Gathering info…`}return r===`produce`?n?`正在生成结果…`:`Generating results…`:n?`处理中…`:`Working…`}var sl=`page-action:`;function cl(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ll(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function ul(e){try{return JSON.parse(e)}catch{return null}}function dl(e,t){throw new m(`PAGE_ACTION_FAILED`,e,{details:t})}function fl(e){if(e instanceof m){if(e.code===`TRANSPORT_ABORTED`||e.code===`PAGE_ACTION_FAILED`)throw e;if(e.code===`TRANSPORT_FAILED`)throw new m(`PAGE_ACTION_FAILED`,e.message,{cause:e,details:e.details})}throw e}function pl(e){return e?{...e.page?{page:e.page}:{},...e.entity?{entity:e.entity}:{}}:{}}function ml(e){if(!Sn(e))return;let t=e.dsl;if(!t||t.op!==`arg.append`)return;let n=t.chunk;return typeof n==`string`?n:void 0}function hl(e){let t=ll(e.phase),n=typeof e.actionRunId==`number`?e.actionRunId:null,r=ll(e.actionKey),i=typeof e.generation==`number`?e.generation:null;return!t||n==null||!r||i==null||t!==`started`&&t!==`stream`&&t!==`completed`&&t!==`failed`&&t!==`awaiting_approval`?null:{phase:t,actionRunId:n,actionKey:r,generation:i,clientActionId:ll(e.clientActionId)??null,streamId:ll(e.streamId)??null,text:typeof e.text==`string`?e.text:void 0,dslOutcome:typeof e.dslOutcome==`string`?e.dslOutcome:e.dslOutcome===null?null:void 0,errorCode:ll(e.errorCode),errorMessage:ll(e.errorMessage),brainClarify:Io(e.brainClarify)}}async function gl(e,t){let n=0,r=``,i=null,a=!1;for await(let o of e){if(o.event===`ping`)continue;if(o.event===`page_workflow`){let e=Jc(ul(o.data));e&&t.onWorkflowProgress?.(e);continue}if(o.event===`host_action`){let e=Rn(ul(o.data));if(e){t.onHostAction(e);let n=ml(e);n&&t.onChunk?.(n)}else t.debug&&typeof console<`u`&&typeof console.warn==`function`&&console.warn(`[agent-chat] page_action: ignored malformed host_action SSE frame`);continue}if(o.event!==`page_action`)continue;let e=ul(o.data);if(!cl(e))continue;let s=hl(e);if(s&&t.onLifecycle?.(s),typeof e.actionRunId==`number`&&Number.isFinite(e.actionRunId)&&(n=e.actionRunId),e.phase===`stream`){let n=typeof e.text==`string`?e.text:``;n&&(r+=n,t.onChunk?.(n));continue}if(e.phase===`completed`&&(a=!0,r=typeof e.text==`string`?e.text:``,i=typeof e.dslOutcome==`string`?e.dslOutcome:e.dslOutcome===null?null:i),e.phase===`failed`){let t=ll(e.errorCode),r=ll(e.errorMessage)??`Page action invoke failed`,i=Io(e.brainClarify);if(Lo(t)&&i)return{actionRunId:n,text:i.question,dslOutcome:null,awaitingClarify:!0,actionKey:ll(e.actionKey),clientActionId:ll(e.clientActionId),brainClarify:i,message:i.question};dl(r,{serverCode:t,actionRunId:n||void 0,phase:`failed`,brainClarify:i??void 0})}if(e.phase===`awaiting_approval`)return{actionRunId:n,text:``,dslOutcome:null,awaitingApproval:!0,status:`awaiting_approval`,actionKey:ll(e.actionKey),clientActionId:ll(e.clientActionId)}}return a||dl(`Page action stream ended without completion`,{actionRunId:n||void 0,phase:`incomplete`}),{actionRunId:n,text:r,dslOutcome:i}}var _l=gl;function vl(e){if(!e||typeof e.getBoundingClientRect!=`function`)return null;let t=e.getBoundingClientRect();return t.width<=0&&t.height<=0?null:{left:t.left,top:t.top,width:t.width,height:t.height}}function yl(e){return JSON.stringify({actionKey:e.actionKey.trim(),pageContext:e.pageContext??null,instruction:e.instruction?.trim()||null,context:e.context&&Object.keys(e.context).length>0?e.context:null})}var bl=class{constructor(){p(this,`byBodyKey`,new Map),p(this,`bodyKeyByPageActionKey`,new Map)}get(e){return this.byBodyKey.get(yl(e))??null}set(e,t){let n=yl(e);this.byBodyKey.set(n,t);let r=t.pageActionKey.trim();r&&this.bodyKeyByPageActionKey.set(r,n)}invalidateByPageActionKey(e){let t=e?.trim();if(!t)return;let n=this.bodyKeyByPageActionKey.get(t);n&&(this.byBodyKey.delete(n),this.bodyKeyByPageActionKey.delete(t))}invalidateByBody(e){let t=yl(e),n=this.byBodyKey.get(t);this.byBodyKey.delete(t),n?.pageActionKey&&this.bodyKeyByPageActionKey.delete(n.pageActionKey.trim())}clear(){this.byBodyKey.clear(),this.bodyKeyByPageActionKey.clear()}};function xl(e){let t=e?.routePath?.trim();return t?{kind:`routePath`,path:t}:{kind:`none`}}var Sl=`omnix-chat:pending-page-action-apply:`,Cl=18e5;function wl(e){return`${Sl}${e.trim()}`}function Tl(e){let t=Date.parse(e.createdAt);return Number.isFinite(t)?Date.now()-t<=Cl:!1}function El(e){if(typeof sessionStorage>`u`)return null;try{let t=sessionStorage.getItem(wl(e));if(!t)return null;let n=JSON.parse(t);return!n||typeof n.runId!=`number`||!Number.isFinite(n.runId)||typeof n.actionKey!=`string`||!n.actionKey.trim()?null:Tl(n)?{runId:Math.trunc(n.runId),actionKey:n.actionKey.trim(),pageContext:n.pageContext??null,createdAt:typeof n.createdAt==`string`?n.createdAt:new Date().toISOString()}:(sessionStorage.removeItem(wl(e)),null)}catch{return null}}function Dl(e,t){if(!(typeof sessionStorage>`u`))try{sessionStorage.setItem(wl(e),JSON.stringify(t))}catch{}}function Ol(e){if(!(typeof sessionStorage>`u`))try{sessionStorage.removeItem(wl(e))}catch{}}function kl(e){return e==null?null:String(e).trim()||null}function Al(e,t){if(!e)return!1;let n=t.actionKey.trim();if(!n||e.actionKey!==n)return!1;let r=t.pageContext?.page?.trim()||null,i=e.pageContext?.page?.trim()||null;if(i&&r!==i)return!1;let a=kl(t.pageContext?.entity?.id),o=kl(e.pageContext?.entity?.id);return!(o&&a!==o)}var jl=6e4,Ml=18e5;function H(e){return e===`running`||e===`awaiting_approval`}function Nl(e){let t=0;for(let n of e.values())H(n.status)&&(t+=1);return t}function Pl(e){let t=new Set;for(let n of e.values()){if(!H(n.status))continue;let e=n.pageActionKey?.trim();e&&t.add(e)}return t}function Fl(e,t){let n=t.trim();if(!n)return null;for(let t of e.values()){if(t.actionKey!==n||!H(t.status))continue;let e=t.pageActionKey?.trim();if(e)return e}return null}function Il(e){let t=Date.now()-Ml;for(let[n,r]of e){if(!H(r.status))continue;let i=Date.parse(r.updatedAt);Number.isFinite(i)&&i<t&&e.delete(n)}}function Ll(e,t){switch(t){case`active`:return H(e);case`all`:return!0;default:return e===t}}function Rl(e){switch(e){case`started`:case`stream`:return`running`;case`completed`:return`completed`;case`failed`:return`failed`;case`awaiting_approval`:return`awaiting_approval`;default:return null}}function zl(e,t,n){let r=new Date().toISOString(),i=e.status===`awaiting_approval`?`awaiting_approval`:e.status===`running`?`running`:e.status,a=n?.title?.trim()||Bl(t);return{ref:{kind:`page_action_run`,id:e.runId},triggerSource:`page_action`,taskStatus:i,title:a,subtitle:n?.subtitle?.trim()||null,workflowKey:null,workflowName:null,pageActionKey:e.pageActionKey,createdAt:r,finishedAt:null,durationMs:null,approval:null,outputs:{preview:null,hasFillText:!1}}}function Bl(e,t){let n=t?.trim(),r=e.trim();return n&&n!==r&&!Vl(n)?n:!r||Vl(r)?`PageAction`:(r.includes(`.`)?r.slice(r.lastIndexOf(`.`)+1):r)||r}function Vl(e){return/^[a-f0-9]{32,}$/i.test(e.trim())}function Hl(e,t){return e.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===t)}function Ul(e,t){let n=Hl(e,t.ref.id);if(n>=0){let r=[...e];return r[n]={...r[n],...t},r}return[t,...e]}function Wl(e,t,n){let r=Hl(e,t);if(r<0)return e;let i=[...e],a=i[r];return i[r]={...a,...n,outputs:n.outputs?{...a.outputs,...n.outputs}:a.outputs,approval:n.approval===void 0?a.approval:n.approval},i}function Gl(e,t){return e.filter(e=>e.ref.kind!==`page_action_run`||e.ref.id!==t)}function Kl(e,t){let n=new Set(e.filter(e=>e.ref.kind===`page_action_run`).map(e=>e.ref.id)),r=[];for(let e of t.values())H(e.status)&&(n.has(e.runId)||r.push(zl({runId:e.runId,generation:0,clientActionId:e.clientActionId,pageActionKey:e.pageActionKey,streamUrl:``,status:e.status},e.actionKey)));if(r.length===0)return e;let i=[...r];for(let t of e)t.ref.kind===`page_action_run`&&r.some(e=>e.ref.id===t.ref.id)||i.push(t);return i}function ql(e,t,n={}){let r=new Set,i=new Date().toISOString(),a=Date.now(),o=n.fallbackActionKey?.trim()||null;for(let n of t){if(n.ref.kind!==`page_action_run`||!H(n.taskStatus))continue;r.add(n.ref.id);let t=e.get(n.ref.id),a=o||t?.actionKey||n.title;e.set(n.ref.id,{runId:n.ref.id,actionKey:a,pageActionKey:t?.pageActionKey??n.pageActionKey??null,rowKey:t?.rowKey??null,status:n.taskStatus,registeredAt:t?.registeredAt??n.createdAt??i,updatedAt:i,clientActionId:t?.clientActionId??null})}for(let t of e.keys()){if(r.has(t))continue;let n=e.get(t);if(!n)continue;let i=Date.parse(n.registeredAt);Number.isFinite(i)&&a-i<3e4||e.delete(t)}}var Jl=[`active`,`awaiting_approval`,`completed`,`failed`];function Yl(){let e=new Map;for(let t of Jl)e.set(t,Xl());return e}function Xl(){return{items:[],hasMore:!1,total:0,hydrated:!1}}function Zl(e,t){return e.get(t)??Xl()}function Ql(e,t,n){let r=Zl(e,t);e.set(t,{items:n.items??r.items,hasMore:n.hasMore??r.hasMore,total:n.total??r.total,hydrated:n.hydrated??r.hydrated})}function $l(e){let t=e===`awaiting_approval`,n=e===`awaiting_clarify`,r=!t&&!n&&e!==`awaiting_reuse`&&(e===`submitting`||e===`launched`||e===`streaming`);return{awaitingApproval:t,awaitingClarify:n,loading:r,disabled:r||t||n}}function eu(e){switch(e){case`awaiting_approval`:return`awaiting_approval`;case`running`:return`streaming`;case`completed`:return`completed`;case`failed`:return`failed`;case`cancelled`:return`idle`;default:return`idle`}}function tu(e){return e.rowKey?.trim()||(e.entityId==null?null:String(e.entityId).trim()||null)}function nu(e){return`run:${Math.trunc(e)}`}function ru(e,t={}){let n=nu(Math.trunc(e)),r=t.rowKey?.trim();return r&&r!==n?r:t.findRowKeyByRunId?.()?.trim()||tu({entityId:t.entityId??null})||r||n}function U(e){let t=$l(e.phase);return{...e,message:e.message??null,progressLabel:e.progressLabel??null,narrativeItems:e.narrativeItems??[],brainClarify:e.brainClarify??null,awaitingApproval:e.awaitingApproval??t.awaitingApproval,awaitingClarify:e.awaitingClarify??t.awaitingClarify,loading:e.loading??t.loading,disabled:e.disabled??t.disabled,updatedAt:e.updatedAt??Date.now()}}function iu(e){return`${e.actionKey.trim()}::${e.rowKey.trim()}`}function au(e){let t=e.trim();return!t||t===`*`}var ou=class{constructor(e){p(this,`slots`,new Map),p(this,`syncInflight`,new Map),p(this,`syncDirty`,new Set),p(this,`liveRestoreInflight`,new Map),p(this,`applyPhaseBySlot`,new Map),p(this,`replayInflight`,new Set),p(this,`deps`,void 0),this.deps=e}getApplyPhase(e){return this.applyPhaseBySlot.get(e)??`idle`}bind(e){let t=iu(e);return this.slots.set(t,e),this.syncSlot(t),()=>{this.slots.delete(t),this.syncInflight.delete(t),this.syncDirty.delete(t),this.applyPhaseBySlot.delete(t)}}patch(e,t){let n=this.slots.get(e);n&&(this.slots.set(e,{...n,...t}),this.syncSlot(e))}onAuthReady(){for(let e of this.slots.keys())this.syncSlot(e)}onPendingApplyChanged(){for(let[e,t]of this.slots)t.autoApplyPending&&this.syncSlot(e)}listBindings(){return[...this.slots.values()]}setApplyPhase(e,t){return this.applyPhaseBySlot.set(e,t),this.deps.onApplyPhaseChanged(e,t),{applyPhase:t}}matchesPending(e){if(au(e.rowKey))return null;let t=this.deps.getPendingPageActionApply();return t&&Al(t,{actionKey:e.actionKey,pageContext:e.pageContext})?t:null}async syncSlot(e){let t=this.syncInflight.get(e);if(t)return this.syncDirty.add(e),t;let n={current:null},r=(async()=>{let t={applyPhase:this.getApplyPhase(e)};try{do this.syncDirty.delete(e),t=await this.runSlotSync(e);while(this.syncDirty.has(e)&&this.slots.has(e));return t}finally{this.syncInflight.get(e)===n.current&&this.syncInflight.delete(e)}})();return n.current=r,this.syncInflight.set(e,r),r}async runLiveRestore(e){let t=e.trim();if(!t)return;let n=this.liveRestoreInflight.get(t);if(n){await n;return}let r=(async()=>{await this.deps.reconcileActivePageActions({actionKey:t}),await this.deps.resumeActivePageActionStreams({actionKey:t})})().finally(()=>{this.liveRestoreInflight.get(t)===r&&this.liveRestoreInflight.delete(t)});this.liveRestoreInflight.set(t,r),await r}async runSlotSync(e){if(!this.slots.get(e))return{applyPhase:`idle`};try{await this.deps.ensureLoggedIn()}catch{return this.setApplyPhase(e,`idle`)}let t=this.slots.get(e);if(!t)return{applyPhase:`idle`};if(t.autoApplyPending&&!au(t.rowKey)){let n=this.matchesPending(t);if(n){if(!t.ready)return this.setApplyPhase(e,`waiting_ready`);if(this.replayInflight.has(n.runId))return this.setApplyPhase(e,`replaying`);this.replayInflight.add(n.runId),this.setApplyPhase(e,`replaying`);try{return await this.deps.replayPageAction(n.runId),this.setApplyPhase(e,`done`)}catch{return this.setApplyPhase(e,`error`)}finally{this.replayInflight.delete(n.runId)}}this.getApplyPhase(e)!==`idle`&&this.setApplyPhase(e,`idle`)}return t.autoResume&&await this.runLiveRestore(t.actionKey),{applyPhase:this.getApplyPhase(e)}}},su=`2.4.7`;function cu(e=`id`){let t=globalThis.crypto;return t?.randomUUID?`${e}_${t.randomUUID().replace(/-/g,``).slice(0,12)}`:`${e}_${Math.random().toString(36).slice(2,14)}`}function lu(e){return e.replace(/\/+$/,``)}var uu=20,du=20,fu=20;function W(e){return e.trim().toLowerCase()}function pu(e,t){let n=new Set(e.map(e=>W(e.sessionId))),r=[...e];for(let e of t){let t=W(e.sessionId);n.has(t)||(n.add(t),r.push(e))}return r}function mu(e,t){let n=new Set(e.map(e=>String(e.id))),r=[];for(let e of t){let t=String(e.id);n.has(t)||(n.add(t),r.push(e))}return[...r,...e]}function hu(){return{phase:`thinking`,thinkText:``,resultText:``}}function gu(e,t,n={}){let r=(n.content?.type===`text`?n.content.text:void 0)??(t.resultText||e.content.text),i=n.blocks??t.resultBlocks??e.blocks,a=pe(r),o=a??S(i??[]),s=a?me(o):r;return{...e,...n,status:n.status??`sent`,content:{type:`text`,text:s},blocks:o,thinkText:void 0,stream:void 0}}function _u(){return typeof navigator<`u`&&navigator.language?navigator.language:`en`}function vu(){return typeof window<`u`&&window.location?.origin?window.location.origin:`unknown://sdk`}var yu=class{constructor(e=cu(`inst`)){p(this,`id`,void 0),p(this,`bus`,new bn),p(this,`lifecycle`,`uninitialized`),p(this,`state`,null),p(this,`stateChangeListeners`,new Set),p(this,`sessionEpoch`,0),p(this,`stateSnapshot`,null),p(this,`authStoreUnsub`,void 0),p(this,`prepareAbort`,null),p(this,`prepareTimer`,null),p(this,`lastPrepareFingerprint`,null),p(this,`skillsLoadToken`,0),p(this,`pendingStreamTargets`,new Map),p(this,`sessionStreamConnects`,new Map),p(this,`sessionStreamSuppressReconnect`,new Set),p(this,`sessionStreamReconnectTimers`,new Map),p(this,`sessionStreamReconnectAttempts`,new Map),p(this,`hostToolStreamManagers`,new Map),p(this,`pageActionInFlightKeys`,new Set),p(this,`approvalInboxRefreshPromise`,null),p(this,`approvalPendingCountRefreshPromise`,null),p(this,`pageActionAwaitingApprovalNotified`,new Set),p(this,`automationTaskRefreshPromise`,null),p(this,`automationTaskRefreshCacheKey`,null),p(this,`automationTaskListPublishSeq`,0),p(this,`pageActionRunAborts`,new Map),p(this,`pageActionRunStreamPromises`,new Map),p(this,`pendingPageActionApply`,null),p(this,`pageActionReusePromptHandler`,null),p(this,`pageActionReuseDismissEpochByRowKey`,new Map),p(this,`pageActionReuseHintCache`,new bl),p(this,`pageActionInvokeSnapshotsByRowKey`,new Map),p(this,`pageActionInvokeSnapshotsByRunId`,new Map),p(this,`pageActionFeedbackCatalogItems`,[]),p(this,`pageActionFeedbackNames`,new Map),p(this,`automationRunRegistry`,new Map),p(this,`pageActionRows`,new Map),p(this,`pageActionRunToRowKey`,new Map),p(this,`automationTasksLastSyncedAt`,0),p(this,`pendingRouteContextOverride`,void 0),p(this,`pendingPageContext`,void 0),p(this,`pendingAttachPageContext`,void 0),p(this,`pendingContextMentionRegistry`,new Map),p(this,`initGate`,void 0),p(this,`loginGate`,void 0),p(this,`pageActionCoordinator`,void 0),p(this,`pageActionRowIdleTimers`,new Map),p(this,`pageActionNarrativeClearTimers`,new Map),this.id=e,this.pageActionCoordinator=new ou({ensureLoggedIn:()=>this.ensureLoggedIn(`pageActionSlotSync`),reconcileActivePageActions:e=>this.reconcileActivePageActions(e),resumeActivePageActionStreams:e=>this.resumeActivePageActionStreams(e),replayPageAction:e=>this.replayPageAction(e),getPendingPageActionApply:()=>this.getPendingPageActionApply(),onApplyPhaseChanged:(e,t)=>{this.bus.emit(`pageActionSlotApplyPhaseChanged`,{slotKey:e,phase:t})}});let t=()=>this.notifyStateChange();this.initGate=new fn(()=>this.state!=null&&this.lifecycle===`initialized`,`init`,t),this.loginGate=new fn(()=>!!this.state?.isLoggedIn,`login`,t)}applyRuntimeOptions(e){let t=this.state;if(!t){e.attachPageContext!==void 0&&(this.pendingAttachPageContext=e.attachPageContext===!0),e.pageContext!==void 0&&(this.pendingPageContext=e.pageContext),this.notifyStateChange();return}let n=!1;if(e.attachPageContext!==void 0){let r=e.attachPageContext===!0;t.attachPageContext!==r&&(t.attachPageContext=r,n=!0)}e.pageContext!==void 0&&(t.pageContext=e.pageContext,t.options={...t.options,pageContext:e.pageContext??void 0},n=!0,this.schedulePrepareSession()),n&&this.notifyStateChange()}async init(e){if(yn(),this.state){if(this.state.options.dsn===e.dsn)return typeof console<`u`&&typeof console.warn==`function`&&console.warn(`[agent-chat] init() called twice with the same DSN — keeping existing instance state.`),this.applyRuntimeOptions({attachPageContext:e.attachPageContext,pageContext:e.pageContext}),this;throw new m(`ALREADY_INITIALIZED`,`AgentChat is already initialized with a different DSN. Call destroy() first.`)}if(!e||typeof e!=`object`)throw new m(`INVALID_OPTIONS`,`init(options): options object is required`);let t=lu((e.baseUrl?.trim()||`http://localhost:3030`).replace(/\s+/g,``)),n=te(e.dsn);await ln();let r=sn.getState().getAccessTokenForDsn(n),i=typeof e.accountToken==`string`&&e.accountToken.trim()||typeof e.userAccessToken==`string`&&e.userAccessToken.trim()||r||null,a=fo({apiBase:t,defaultHeaders:{[ee]:n,"X-Agent-Sdk-Version":su,...e.headers??{}}}),o=new po(a),s=new yo(a),c=new To(a),l=new Eo(a),u=new Do(a),d=new Cs(a),f=new Xs(a),p=new ws(a),h=new rc(a),g=null,ne=!1,_=null,re=null;try{g=await o.authenticate(n,i),ne=!0,_=g.accessToken?.trim()??null,sn.getState().setAuth(n,g),_&&v(a,_)}catch(t){re=Su(t),e.debug&&console.warn(`[agent-chat] app-client auth failed during init:`,re)}let ie=new ho(a,()=>({dsn:this.state?.dsn??n})),ae=new ic({context:{sdkVersion:su,origin:vu(),locale:e.locale??_u(),user:e.user??xu(g?.user)}});return this.state={options:e,dsn:n,apiBaseUrl:t,http:a,auth:o,chat:s,agent:ie,feedback:c,hostTool:l,agentRun:u,pageAction:d,approval:f,automation:p,appTool:h,session:ae,abortControllers:new Set,isOpen:!1,isClientAuthenticated:ne,isLoggedIn:!!_||un(n),catalogHydrated:!1,sessions:[],sessionsPage:0,sessionsPageSize:20,sessionsHasMore:!1,sessionsLoadingMore:!1,activeSessionId:null,activeSessionMessagesPage:0,activeSessionMessagesHasMore:!1,sessionMessagesLoadingMore:!1,sessionMessagesPageSize:20,sessionMessagesCache:new Map,agents:e.agents?[...e.agents]:[],skills:[],selectedAgentId:e.defaultAgentId?.trim()??null,autoAgent:null,selectedSkillId:e.defaultSkillId?.trim()??null,agentsLoading:!1,skillsLoading:!1,agentsEmptyReason:null,userJwt:_??dn(n),sessionStreams:new Map,sessionRuns:new Map,messages:[],lastError:re,writeConfirmation:null,writeConfirmationsBySession:new Map,approvalInboxLoading:!1,approvalInboxLoadingMore:!1,approvalInboxHasMore:!1,approvalInboxStatusFilter:`pending`,approvalInboxPendingCount:0,approvalInboxItems:[],automationTaskLoading:!1,automationTaskLoadingMore:!1,automationTaskHasMore:!1,automationTaskTotal:0,automationTaskStatusFilter:`active`,automationTaskActiveCount:0,automationTaskItems:[],automationTaskTabCaches:Yl(),automationRecentRunIds:[],automationTaskSelectedDetail:null,automationTaskDetailLoading:!1,skillIntentBanner:null,skillIntentClarify:null,brainClarify:null,skillTurnContract:null,skillTurnActive:null,lastTurnUserMessage:null,skillPickerOpen:!1,downReasonTagsCache:null,pageContext:e.pageContext??null,routeContextOverride:null,routeContext:null,attachPageContext:e.attachPageContext===!0,appClientId:g?.appClient?.id??null,contextMentionRegistry:new Map},this.lifecycle=`initialized`,this.stateSnapshot=null,this.initGate.reconcile(),this.authStoreUnsub=sn.subscribe(()=>{this.syncAuthFromStore()}),this.syncAuthFromStore(),this.applyPendingRuntimeConfig(this.state),this.syncRouteContextFromWindow(),this.applyStaticSkills(this.state),this.syncDefaultAgentSelection(this.state),e.onReady&&this.bus.on(`ready`,e.onReady),queueMicrotask(()=>this.bus.emit(`ready`,void 0)),this.isHostToolServerSyncReady()&&yi(this).catch(t=>{e.debug&&console.warn(`[agent-chat] flushPendingHostToolSyncs failed:`,t)}),e.autoOpen&&this.open(),this.refreshApprovalBadgeBestEffort(),this.notifyPageActionAuthReady(),this.scheduleAutomationTasksBestEffort(),this}async login(e){await this.ensureInitialized(`login`);let t=this.requireState(`login`),n=e?.email?.trim(),r=e?.password?.trim();if(!n||!r)throw new m(`INVALID_OPTIONS`,`login requires email and password`);let i;try{i=await t.auth.login(n,r)}catch(e){throw e instanceof m&&e.code===`TRANSPORT_FAILED`?new m(`LOGIN_FAILED`,e.message,{cause:e,details:e.details}):e}let a=i.accessToken?.trim();if(!a)throw new m(`LOGIN_FAILED`,`Login succeeded but no access token was returned.`);y(t.http);let o=await t.auth.authenticate(t.dsn,a);this.commitAuthSession(o),yi(this).catch(e=>{t.options.debug&&console.warn(`[agent-chat] flushPendingHostToolSyncs failed:`,e)}),t.isOpen&&this.refreshAgentCatalog().catch(()=>{}),this.refreshApprovalBadgeBestEffort(),this.scheduleAutomationTasksBestEffort()}logout(){let e=this.state;e&&(this.abortAllSessionStreams(e),this.cancelAllSessionStreamReconnects(),e.isLoggedIn=!1,y(e.http),sn.getState().clearAuth(),e.session.reset(),e.sessions=[],e.sessionsPage=0,e.sessionsHasMore=!1,e.sessionsLoadingMore=!1,e.activeSessionId=null,e.activeSessionMessagesPage=0,e.activeSessionMessagesHasMore=!1,e.sessionMessagesLoadingMore=!1,e.sessionMessagesCache.clear(),e.agents=[],e.skills=[],e.selectedAgentId=null,e.autoAgent=null,e.selectedSkillId=null,e.agentsLoading=!1,e.skillsLoading=!1,e.agentsEmptyReason=null,e.userJwt=null,e.messages=[],e.sessionStreams.clear(),e.sessionRuns.clear(),e.writeConfirmationsBySession.clear(),e.approvalInboxItems=[],e.approvalInboxLoading=!1,e.approvalInboxLoadingMore=!1,e.approvalInboxHasMore=!1,e.approvalInboxStatusFilter=`pending`,e.approvalInboxPendingCount=0,e.automationTaskItems=[],e.automationTaskLoading=!1,e.automationTaskLoadingMore=!1,e.automationTaskHasMore=!1,e.automationTaskTotal=0,e.automationTaskStatusFilter=`active`,e.automationTaskTabCaches=Yl(),e.automationTaskActiveCount=0,e.automationRecentRunIds=[],e.automationTaskSelectedDetail=null,e.automationTaskDetailLoading=!1,this.abortAllPageActionRunStreams(),this.pageActionInFlightKeys.clear(),this.pageActionAwaitingApprovalNotified.clear(),this.clearAutomationRunRegistry(),e.catalogHydrated=!1,this.pendingStreamTargets.clear(),this.sessionStreamConnects.clear(),this.hostToolStreamManagers.clear(),this.notifyStateChange())}isLoggedIn(){return this.syncAuthFromStore(),this.state?.isLoggedIn??!1}getPendingGateJobs(){return[...this.initGate.getPendingJobs(),...this.loginGate.getPendingJobs()]}snapshotPendingGateJobs(){return this.getPendingGateJobs()}syncAuthFromStore(){let e=this.state;if(!e)return;let t=sn.getState().getAccessTokenForDsn(e.dsn);if(t?.trim()){(e.userJwt!==t||!e.isLoggedIn)&&(e.userJwt=t,e.isLoggedIn=!0,v(e.http,t),this.notifyStateChange(),this.loginGate.reconcile(),this.notifyPageActionAuthReady());return}(e.isLoggedIn||e.userJwt)&&(e.userJwt=null,e.isLoggedIn=!1,y(e.http),this.notifyStateChange())}commitAuthSession(e){let t=this.requireState(`commitAuthSession`),n=e.accessToken?.trim();if(!n)throw new m(`LOGIN_FAILED`,`App client auth succeeded but accessToken is missing`);sn.getState().setAuth(t.dsn,e),v(t.http,n),t.userJwt=n,t.isLoggedIn=!0,t.isClientAuthenticated=!0,t.appClientId=e.appClient?.id??t.appClientId,this.notifyStateChange(),this.loginGate.reconcile(),this.notifyPageActionAuthReady()}notifyPageActionAuthReady(){this.state?.isLoggedIn&&this.pageActionCoordinator.onAuthReady()}bindPageActionSlot(e){let t={actionKey:e.actionKey.trim(),rowKey:e.rowKey.trim(),pageContext:e.pageContext??null,ready:e.ready!==!1,autoResume:e.autoResume!==!1,autoApplyPending:e.autoApplyPending!==!1};return this.pageActionCoordinator.bind(t)}patchPageActionSlot(e,t){this.pageActionCoordinator.patch(e,t)}listBoundPageActionSlots(){return this.pageActionCoordinator.listBindings()}destroy(){if(this.pendingRouteContextOverride=void 0,this.pendingPageContext=void 0,this.pendingAttachPageContext=void 0,this.pendingContextMentionRegistry=new Map,this.pageActionReuseHintCache.clear(),this.initGate.cancelAll(),this.loginGate.cancelAll(),this.state){this.authStoreUnsub?.(),this.authStoreUnsub=void 0,this.cancelScheduledPrepare(),this.abortAllSessionStreams(this.state),this.cancelAllSessionStreamReconnects(),this.pendingStreamTargets.clear(),this.sessionStreamConnects.clear(),this.hostToolStreamManagers.clear(),this.pageActionInFlightKeys.clear(),this.pageActionAwaitingApprovalNotified.clear(),this.abortAllPageActionRunStreams(),this.clearAutomationRunRegistry(),this.pendingPageActionApply=null;for(let e of this.state.abortControllers)try{e.abort()}catch{}this.state.abortControllers.clear(),this.state.session.reset(),this.state.isOpen=!1,this.state=null,this.lifecycle=`destroyed`,this.stateSnapshot=null,this.bus.emit(`destroyed`,void 0),this.bus.clear(),this.stateChangeListeners.clear()}}open(){let e=this.state;if(!e){typeof console<`u`&&console.warn(`[agent-chat] open() called before init() (or after destroy()) — ignoring.`);return}e.isOpen||(e.isOpen=!0,this.notifyStateChange(),this.bus.emit(`open`,void 0))}close(){let e=this.state;!e||!e.isOpen||(e.isOpen=!1,this.notifyStateChange(),this.bus.emit(`close`,void 0))}toggle(){this.isOpen()?this.close():this.open()}openApprovalInbox(e){this.bus.emit(`openApprovalInbox`,e)}openAutomationTaskCenter(e){this.bus.emit(`openAutomationTaskCenter`,e)}openPageActionFeedback(e){this.bus.emit(`openPageActionFeedback`,e)}registerPageActionFeedbackCatalog(e){for(let t of e){let e=t.actionKey?.trim(),n=t.name?.trim();!e||!n||n===e||this.pageActionFeedbackNames.set(e,n)}}async fetchPageActionFeedbackCatalog(e={},t){await this.ensureInitialized(`fetchPageActionFeedbackCatalog`,{signal:t?.signal}),await this.ensureLoggedIn(`fetchPageActionFeedbackCatalog`,{signal:t?.signal});let n=await this.requireState(`fetchPageActionFeedbackCatalog`).pageAction.listCatalog(e,t?.signal);this.pageActionFeedbackCatalogItems=n;for(let e of n)this.pageActionFeedbackNames.set(e.actionKey,e.name);return n}listPageActionFeedbackCatalog(){return this.pageActionFeedbackCatalogItems.slice()}async getPageActionFeedback(e,t){return await this.ensureInitialized(`getPageActionFeedback`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionFeedback`,{signal:t?.signal}),this.requireState(`getPageActionFeedback`).pageAction.getMyFeedback(e,t?.signal)}async upsertPageActionFeedback(e,t,n){await this.ensureInitialized(`upsertPageActionFeedback`,{signal:n?.signal}),await this.ensureLoggedIn(`upsertPageActionFeedback`,{signal:n?.signal});let r=await this.requireState(`upsertPageActionFeedback`).pageAction.upsertFeedback(e,t,n?.signal);return r.pageActionName&&this.pageActionFeedbackNames.set(r.actionKey,r.pageActionName),r}async removePageActionFeedback(e,t){await this.ensureInitialized(`removePageActionFeedback`,{signal:t?.signal}),await this.ensureLoggedIn(`removePageActionFeedback`,{signal:t?.signal}),await this.requireState(`removePageActionFeedback`).pageAction.removeMyFeedback(e,t?.signal)}async getPageActionFeedbackSummary(e,t){await this.ensureInitialized(`getPageActionFeedbackSummary`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionFeedbackSummary`,{signal:t?.signal});let n=await this.requireState(`getPageActionFeedbackSummary`).pageAction.getFeedbackSummary(e,t?.signal);return n.pageActionName&&this.pageActionFeedbackNames.set(n.actionKey,n.pageActionName),n}async createPageActionWish(e,t){return await this.ensureInitialized(`createPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`createPageActionWish`,{signal:t?.signal}),this.requireState(`createPageActionWish`).pageAction.createWish(e,t?.signal)}async listPageActionWishes(e,t){return await this.ensureInitialized(`listPageActionWishes`,{signal:t?.signal}),await this.ensureLoggedIn(`listPageActionWishes`,{signal:t?.signal}),this.requireState(`listPageActionWishes`).pageAction.listWishes(e??{},t?.signal)}async getPageActionWish(e,t){return await this.ensureInitialized(`getPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionWish`,{signal:t?.signal}),this.requireState(`getPageActionWish`).pageAction.getWish(e,t?.signal)}async cancelPageActionWish(e,t){return await this.ensureInitialized(`cancelPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`cancelPageActionWish`,{signal:t?.signal}),this.requireState(`cancelPageActionWish`).pageAction.cancelWish(e,t?.signal)}isOpen(){return this.state?.isOpen??!1}identify(e){let t=this.requireState(`identify`),n=t.session.getSession();t.session.updateContext({user:e});let r=t.options.user?.id;t.options={...t.options,user:e},n&&r&&r!==e.id&&(this.abortAllSessionStreams(t),this.sessionStreamConnects.clear(),this.pendingStreamTargets.clear(),t.session.reset(),t.sessions=[],t.sessionMessagesCache.clear(),t.sessionRuns.clear(),t.writeConfirmationsBySession.clear(),t.writeConfirmation=null,t.activeSessionId=null,t.messages=[],this.notifyStateChange())}setPageContext(e){if(!this.state){this.pendingPageContext=e,this.notifyStateChange();return}let t=this.state,n=this.getPageScope(t);t.pageContext=e,t.options={...t.options,pageContext:e??void 0};let r=this.getPageScope(t);this.notifyStateChange(),this.schedulePrepareSession(),n!==r&&!t.options.skills?.length&&(t.selectedSkillId=null,this.refreshSkills(t.selectedAgentId??void 0))}setRouteContext(e){if(!this.state){this.pendingRouteContextOverride=e,this.notifyStateChange();return}let t=this.state;t.routeContextOverride=e,this.syncRouteContextFromWindow()}registerContextMentions(e,t={}){let n=e.map(Pi);if(!this.state){this.pendingContextMentionRegistry=Ii(this.pendingContextMentionRegistry,n,t.replace===!0),this.notifyStateChange();return}let r=this.state;r.contextMentionRegistry=Ii(r.contextMentionRegistry,n,t.replace===!0),this.notifyStateChange()}unregisterContextMentions(e){if(!this.state){let t=!1;for(let n of e){let e=n.trim();e&&this.pendingContextMentionRegistry.delete(e)&&(t=!0)}t&&this.notifyStateChange();return}let t=this.state,n=!1;for(let r of e){let e=r.trim();e&&t.contextMentionRegistry.delete(e)&&(n=!0)}n&&this.notifyStateChange()}clearContextMentions(){if(!this.state){if(this.pendingContextMentionRegistry.size===0)return;this.pendingContextMentionRegistry=new Map,this.notifyStateChange();return}let e=this.state;e.contextMentionRegistry.size!==0&&(e.contextMentionRegistry=new Map,this.notifyStateChange())}syncRouteContextFromWindow(){if(!this.state)return;let e=this.state,t=wi(Ci(),e.routeContextOverride),n=JSON.stringify(e.routeContext??null),r=JSON.stringify(Object.keys(t).length>0?t:null);e.routeContext=Object.keys(t).length>0?t:null,n!==r&&(this.notifyStateChange(),this.schedulePrepareSession())}setAttachPageContext(e){if(!this.state){this.pendingAttachPageContext=e,this.notifyStateChange();return}let t=this.state;t.attachPageContext!==e&&(t.attachPageContext=e,t.options={...t.options,attachPageContext:e},this.notifyStateChange())}getPageContext(){let e=this.state;return e?e.pageContext??e.options.pageContext??null:null}getAppClientId(){return sn.getState().appClient?.id??this.state?.appClientId??null}isHostToolServerSyncReady(){let e=this.state;return!e?.isClientAuthenticated||!e.isLoggedIn||!e.userJwt?.trim()?!1:this.getAppClientId()!=null}registerHostTool(e,t,n){pr(e,t,n)}unregisterHostTool(e,t){mr(e,t)}undeclareHostTool(e,t){xr(e,t)}runHostTool(e,t,n){return _r(e,t,n)}registerHostToolsWithSync(e){return bi(this,e)}async syncHostToolsToServer(e){await this.ensureLoggedIn(`syncHostToolsToServer`);let t=this.requireState(`syncHostToolsToServer`);if(!t.isClientAuthenticated||t.appClientId==null)throw new m(`AUTH_REQUIRED`,`Host tool server sync requires app client authentication.`);return t.hostTool.register(e)}getHostToolCatalog(e){return this.requireState(`getHostToolCatalog`).hostTool.getCatalog(e)}async listCallableTools(e){return await this.ensureLoggedIn(`listCallableTools`,{signal:e}),this.requireState(`listCallableTools`).appTool.listCallable(e)}async invokeAppTool(e){return await this.ensureLoggedIn(`invokeAppTool`,{signal:e.signal}),this.requireState(`invokeAppTool`).appTool.invoke(e)}isPageActionKeyActive(e){let t=e?.trim();return t?Pl(this.automationRunRegistry).has(t):!1}getActivePageActionKeyForActionKey(e){return Fl(this.automationRunRegistry,e)}getPageActionRowState(e){let t=e.trim();return t?this.pageActionRows.get(t)??null:null}getPageActionRowsForActionKey(e){let t=e.trim();return t?[...this.pageActionRows.values()].filter(e=>e.actionKey===t):[]}isPageActionRowActive(e){let t=this.getPageActionRowState(e);return!t||t.phase===`awaiting_reuse`||t.loading&&t.phase===`idle`&&t.runId==null&&!t.awaitingApproval?!1:t.loading||t.awaitingApproval}clearPageActionRowError(e){let t=e.trim(),n=this.pageActionRows.get(t);!n?.error&&!n?.message||this.upsertPageActionRow(U({...n,error:null,message:null}))}async hydratePageActionByRunId(e,t={}){if(await this.ensureLoggedIn(`hydratePageActionByRunId`),this.requireState(`hydratePageActionByRunId`),!Number.isFinite(e))return null;let n=Math.trunc(e),r=await this.getAutomationTaskDetail(n,t.signal);if(!r)return null;let i=ru(n,{rowKey:t.rowKey,entityId:r.pageContext?.entity?.id??null,findRowKeyByRunId:()=>this.findRowKeyByRunId(n)||this.findRowKeyByPageActionKey(r.pageActionKey)}),a=t.actionKey?.trim()||r.actionKey?.trim()||this.automationRunRegistry.get(n)?.actionKey||r.title,o=r.taskStatus===`failed`&&Lo(r.errorCode)&&r.brainClarify!=null,s=o?`awaiting_clarify`:eu(r.taskStatus),c=$l(s),l=this.pageActionRows.get(i),u=c.loading?l?.progressLabel??Zc(this.state?.options.locale):s===`awaiting_clarify`?tl(this.state?.options.locale):s===`awaiting_approval`?ol({phase:`awaiting_approval`,actionRunId:n,actionKey:a,generation:n,nodeId:``,stageKind:`other`},this.state?.options.locale):null,d=U({rowKey:i,actionKey:a,runId:n,pageActionKey:r.pageActionKey,phase:s,error:o?null:r.errorMessage,message:l?.message??null,progressLabel:u,narrativeItems:l?.narrativeItems??[],approvalRequestId:r.approval?.id??null,brainClarify:o?r.brainClarify:null});this.upsertPageActionRow(d),this.bindPageActionRunToRow(n,i);let f=this.automationRunRegistry.get(n);if(f?(f.rowKey=i,f.actionKey=a,f.pageActionKey=r.pageActionKey,f.status=r.taskStatus,f.updatedAt=new Date().toISOString(),H(r.taskStatus)||this.automationRunRegistry.delete(n)):H(r.taskStatus)&&this.automationRunRegistry.set(n,{runId:n,actionKey:a,pageActionKey:r.pageActionKey,rowKey:i,status:r.taskStatus,registeredAt:r.createdAt??new Date().toISOString(),updatedAt:new Date().toISOString(),clientActionId:null}),o&&r.brainClarify){let e=this.pageActionInvokeSnapshotsByRunId.get(n)??{pageContext:r.pageContext??void 0,rowKey:i,awaitStream:!1};this.pageActionInvokeSnapshotsByRunId.has(n)||(this.pageActionInvokeSnapshotsByRunId.set(n,{...e,launchAnchor:e.launchAnchor??null}),this.pageActionInvokeSnapshotsByRowKey.set(i,{...e,launchAnchor:e.launchAnchor??null})),this.emitPageActionBrainClarifyFromPayload({actionKey:a,runId:n,brainClarify:r.brainClarify,rowKey:i})}else(s===`completed`||s===`failed`)&&this.schedulePageActionRowIdleReset(i,s===`failed`?1600:900);return d}async reconcileActivePageActions(e={}){await this.ensureLoggedIn(`reconcileActivePageActions`),this.requireState(`reconcileActivePageActions`);let t=e.actionKey?.trim();await this.refreshAutomationTasks({status:`active`,actionKey:t||void 0,offset:0,signal:e.signal});let n=[];for(let[r,i]of this.automationRunRegistry){if(!H(i.status))continue;let a=await this.hydratePageActionByRunId(r,{rowKey:i.rowKey??void 0,actionKey:i.actionKey,signal:e.signal});a&&(t&&a.actionKey!==t||n.push(a))}return n}async invokePageAction(e){await this.ensureInitialized(`invokePageAction`,{signal:e.signal});let t=this.requireState(`invokePageAction`);this.requirePageActionKey(e);let n=this.resolveInvokeRowKey(e);if(n){let t=this.pageActionRows.get(n);t&&t.phase===`idle`&&t.loading&&t.runId==null&&!t.awaitingApproval&&this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey||e.actionKey.trim(),runId:null,pageActionKey:t.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:t.approvalRequestId}))}if(n&&this.isPageActionRowActive(n))return this.finishAlreadyActiveInvoke(e,n,{source:`local`});let r=this.acquirePageActionLock(e.clientActionId);try{let r=e.preferReuse!==!1&&this.pageActionReusePromptHandler!=null,i=r?this.buildPageActionInvokeBody(t,e):null,a=i?this.pageActionReuseHintCache.get(i):null,o=a!=null,s=(a?.reusable.items.length??0)>0||(a?.reusable.total??0)>0,c=r&&!o,l=r&&(c||s);if(n&&(this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:a?.pageActionKey??this.pageActionRows.get(n)?.pageActionKey??null,phase:l?`awaiting_reuse`:`submitting`,error:null,message:null,progressLabel:c?Qc(this.state?.options.locale):l?null:Zc(this.state?.options.locale),narrativeItems:[],approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null}))),await this.ensureLoggedIn(`invokePageAction`,{signal:e.signal}),l){let r=await this.tryPageActionReusePrompt(t,e,n,{body:i,cached:a});if(r)return r}return n&&(this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:this.pageActionRows.get(n)?.pageActionKey??null,phase:`submitting`,error:null,message:null,progressLabel:Zc(this.state?.options.locale),narrativeItems:[],approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null}))),await this.invokePageActionStream(t,e,n)}catch(t){if(n&&!(t instanceof m&&t.code===`PAGE_ACTION_ALREADY_ACTIVE`)){let r=t instanceof Error?t.message:String(t);this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:this.pageActionRows.get(n)?.pageActionKey??null,phase:`failed`,error:r,message:null,progressLabel:null,approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null})),this.schedulePageActionRowIdleReset(n,1600)}throw t}finally{this.releasePageActionLock(r)}}setPageActionReusePromptHandler(e){return this.pageActionReusePromptHandler=e,()=>{this.pageActionReusePromptHandler===e&&(this.pageActionReusePromptHandler=null)}}dismissPageActionBrainClarify(e){let t=typeof e?.runId==`number`&&Number.isFinite(e.runId)?Math.trunc(e.runId):null,n=e?.rowKey?.trim()||(t==null?null:this.findRowKeyByRunId(t));if(!n)return;let r=this.pageActionRows.get(n);!r||r.phase!==`awaiting_clarify`||this.upsertPageActionRow(U({...r,phase:`idle`,loading:!1,disabled:!1,error:null,progressLabel:null,brainClarify:null}))}dismissPageActionReuse(e){let t=typeof e?.runId==`number`&&Number.isFinite(e.runId)?Math.trunc(e.runId):null,n=e?.rowKey?.trim()||(t==null?null:this.findRowKeyByRunId(t));if(!n)return;let r=this.pageActionReuseDismissEpochByRowKey.get(n)??0;this.pageActionReuseDismissEpochByRowKey.set(n,r+1);let i=this.pageActionRowIdleTimers.get(n);i!=null&&(clearTimeout(i),this.pageActionRowIdleTimers.delete(n));let a=this.pageActionRows.get(n),o=t??a?.runId??null;o!=null&&this.pageActionRunAborts.get(o)?.abort(),a&&this.upsertPageActionRow(U({rowKey:n,actionKey:a.actionKey,runId:a.runId,pageActionKey:a.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:a.approvalRequestId,brainClarify:null}))}async reusePageActionHint(e){await this.ensureInitialized(`reusePageActionHint`,{signal:e.signal});let t=this.requireState(`reusePageActionHint`);await this.ensureLoggedIn(`reusePageActionHint`,{signal:e.signal});let n=this.buildPageActionInvokeBody(t,{actionKey:e.actionKey,pageContext:e.pageContext,instruction:e.instruction,context:e.context});if(!e.refresh){let e=this.pageActionReuseHintCache.get(n);if(e)return e}let r=await t.pageAction.reuseHint(n,e.signal);return this.pageActionReuseHintCache.set(n,r),r}async prefetch(){await this.ensureLoggedIn(`prefetch`);let e=this.requireState(`prefetch`),t=this.makeAbortController();try{if(await Promise.all([this.refreshSessions(t.signal),this.refreshAgentCatalog(t.signal),this.refreshApprovalPendingCount(t.signal).catch(()=>{}),this.refreshApprovalInbox({signal:t.signal}).catch(()=>{})]),!e.sessions.length)return;let n=e.activeSessionId&&e.sessions.some(t=>t.sessionId===e.activeSessionId)?e.activeSessionId:e.sessions[0].sessionId;await this.selectSession(n,{signal:t.signal,skipAbortStream:!0})}finally{e.catalogHydrated=!0,e.abortControllers.delete(t),this.notifyStateChange()}}async selectSession(e,t={}){await this.ensureLoggedIn(`selectSession`);let n=this.requireState(`selectSession`),r=e.trim();if(!r)throw new m(`INVALID_OPTIONS`,`selectSession: sessionId is required`);this.sessionEpoch+=1;let i=this.sessionEpoch,a=W(r);n.activeSessionId&&n.activeSessionId!==r&&(this.writeSessionMessagesCache(n,n.activeSessionId),!t.skipAbortStream&&!this.sessionHasPendingAgent(n.messages)&&this.abortSessionStream(n,n.activeSessionId,{suppressReconnect:!0})),n.lastError=null,n.activeSessionId!=null&&W(n.activeSessionId)!==a&&this.clearSkillIntentUi(n);let o=n.sessionMessagesCache.get(a)??n.sessionMessagesCache.get(r);if(o){i===this.sessionEpoch&&(n.activeSessionId=r,n.messages=o.messages,n.activeSessionMessagesPage=o.page,n.activeSessionMessagesHasMore=o.hasMore,o.agentId&&this.applyAutoAgentBinding(n,{id:o.agentId,source:`session`,reason:`restored from session detail cache`}),n.session.setSession(r,o.messages),this.syncActiveWriteConfirmation(n,r),this.notifyStateChange(),this.bus.emit(`session`,n.session.getSession()),t.signal?.aborted||(await this.syncSessionRunState(n,r,t.signal),this.reconcilePendingRepliesAfterSessionSwitch(n,r,a),this.ensureSessionStream(r).catch(()=>{}),this.syncMessageFeedbacks(n,r).catch(()=>{}),this.schedulePrepareSession()));return}let s=this.makeAbortController(),c=t.signal;c&&c.addEventListener(`abort`,()=>s.abort(),{once:!0});try{let e=await this.fetchSessionMessagesPage(n,r,1,s.signal),o=e.messages.map(e=>this.toAgentMessage(e)),c={messages:o,page:e.page,hasMore:e.hasMore,agentId:e.agentId};if(n.sessionMessagesCache.set(a,c),i!==this.sessionEpoch)return;n.activeSessionId=r,n.activeSessionMessagesPage=e.page,n.activeSessionMessagesHasMore=e.hasMore,n.session.setSession(e.sessionId,o),n.messages=o,e.agentId&&this.applyAutoAgentBinding(n,{id:e.agentId,source:`session`,reason:`restored from session detail`}),this.syncActiveWriteConfirmation(n,r),this.notifyStateChange(),this.bus.emit(`session`,n.session.getSession()),t.signal?.aborted||(await this.syncSessionRunState(n,r,s.signal),this.reconcilePendingRepliesAfterSessionSwitch(n,r,a),this.ensureSessionStream(r).catch(()=>{}),this.syncMessageFeedbacks(n,r).catch(()=>{}),this.schedulePrepareSession())}finally{n.abortControllers.delete(s)}}async sendMessage(e,t={}){await this.ensureLoggedIn(`sendMessage`);let n=this.requireState(`sendMessage`),r=e.trim();if(r.length===0)throw new m(`INVALID_OPTIONS`,`sendMessage: text must not be empty`);this.settlePendingAgentReplies(n,n.activeSessionId??void 0),n.activeSessionId&&this.persistWriteConfirmation(n,n.activeSessionId,null),n.lastTurnUserMessage=r,this.clearSkillIntentUi(n),n.brainClarify=null;let i=t.contextMentions?.length?await Li(t.contextMentions,n.contextMentionRegistry):void 0,a=i?.length?Ti(this.buildOutboundPageContext(n),i):void 0,o=this.appendOptimisticUserMessage(n,r,t.id,t.contextMentions),s=this.appendAgentPlaceholder(n),c=this.makeAbortController();try{let e=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!e)return e=await this.createChatSession(n,r,c.signal,a,t.entityCommit),this.refreshSessions(c.signal).catch(()=>{}),this.setStreamTargetMessageId(n,e,s.id),await this.ensureSessionStream(e),this.applyUserMessageSent(n,o);this.setStreamTargetMessageId(n,e,s.id);let i=await this.postUserMessageAndApply(n,e,r,c.signal,o,a,t.entityCommit);return await this.ensureSessionStream(e),i}catch(e){let t=n.activeSessionId,r=n.messages.filter(e=>e.id!==s.id).map(e=>e.id===o.id?{...o,status:`failed`}:e);n.messages=r,t?this.commitSessionMessages(n,t,r):this.notifyStateChange();let i=e instanceof m?new m(`MESSAGE_FAILED`,e.message,{cause:e,details:{...e.details??{},messageId:o.id}}):new m(`MESSAGE_FAILED`,`Failed to send message`,{cause:e,details:{messageId:o.id}});throw this.reportError(i),i}finally{n.abortControllers.delete(c)}}async confirmWrite(){await this.submitWriteGate({action:`confirm`})}async confirmWriteWithEdits(e){let{editedPreviewSerialized:t,editedPendingWriteArguments:n}=e;if(!t?.trim()&&!n)throw new m(`INVALID_OPTIONS`,`confirmWriteWithEdits: editedPreviewSerialized or editedPendingWriteArguments is required`);await this.submitWriteGate({action:`confirm_with_edits`,editedPreviewSerialized:t?.trim()||void 0,editedPendingWriteArguments:n})}async retryWrite(e){let t=e.trim();if(!t)throw new m(`INVALID_OPTIONS`,`retryWrite: retryInstruction must not be empty`);await this.submitWriteGate({action:`retry`,retryInstruction:t})}async cancelWrite(){await this.submitWriteGate({action:`cancel`})}async submitWriteGate(e){let t=`submitWriteGate:${e.action}`;await this.ensureLoggedIn(t);let n=this.requireState(t),r=n.writeConfirmation;if(!r?.awaiting)throw new m(`INVALID_OPTIONS`,`No pending write confirmation`);if(e.action===`retry`&&r.canRetry===!1)throw new m(`INVALID_OPTIONS`,`Draft retry limit exceeded`);let i=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!i)throw new m(`INVALID_OPTIONS`,`${t}: no active session`);let a=e.action===`retry`;if(n.writeConfirmation={...r,awaiting:a,submitting:!0,gateError:void 0,gateErrorCode:void 0},this.persistWriteConfirmation(n,i,n.writeConfirmation),this.notifyStateChange(),e.action===`confirm`||e.action===`confirm_with_edits`){let e=this.appendAgentPlaceholder(n);this.setStreamTargetMessageId(n,i,e.id)}let o=this.makeAbortController();try{await this.postWriteGateAction(n,i,e,o.signal)}catch(e){let t=Cu(e),a=t===`DRAFT_RETRY_LIMIT_EXCEEDED`||t===`INVALID_DRAFT_REVIEW_DECISION`||t===`EDITED_WRITE_ARGS_INVALID`||t===`EDITED_LOCKED_FIELD`||t===`EDITED_FIELD_NOT_ALLOWED`||t===`MULTI_WRITE_EDIT_NOT_SUPPORTED`,o={...r,awaiting:!0,submitting:!1,gateError:e instanceof m?e.message:void 0,gateErrorCode:t,canRetry:t!==`DRAFT_RETRY_LIMIT_EXCEEDED`&&r.canRetry};if(n.writeConfirmation=o,this.persistWriteConfirmation(n,i,o),this.notifyStateChange(),a)return;let s=e instanceof m?e:new m(`MESSAGE_FAILED`,`Failed to submit write gate decision`,{cause:e});throw this.reportError(s),s}finally{n.abortControllers.delete(o)}}async refreshApprovalInbox(e={}){if(this.approvalInboxRefreshPromise&&!e.append)return this.approvalInboxRefreshPromise;let t=this.fetchApprovalInbox(e);e.append||(this.approvalInboxRefreshPromise=t);try{return await t}finally{!e.append&&this.approvalInboxRefreshPromise===t&&(this.approvalInboxRefreshPromise=null)}}setApprovalInboxStatusFilter(e){let t=this.state;!t||t.approvalInboxStatusFilter===e||(t.approvalInboxStatusFilter=e,t.approvalInboxItems=[],t.approvalInboxHasMore=!1,this.notifyStateChange())}async refreshApprovalPendingCount(e){if(this.approvalPendingCountRefreshPromise&&!e)return this.approvalPendingCountRefreshPromise;let t=this.fetchApprovalPendingCount(e);e||(this.approvalPendingCountRefreshPromise=t);try{await t}finally{!e&&this.approvalPendingCountRefreshPromise===t&&(this.approvalPendingCountRefreshPromise=null)}}async fetchApprovalPendingCount(e){await this.ensureLoggedIn(`refreshApprovalPendingCount`);let t=this.requireState(`refreshApprovalPendingCount`),n=await t.approval.listInbox({status:`pending`,limit:50,signal:e});t.approvalInboxPendingCount=n.hasMore?Math.max(t.approvalInboxPendingCount,n.items.length):n.items.length,this.notifyStateChange()}async fetchApprovalInbox(e={}){await this.ensureLoggedIn(`refreshApprovalInbox`);let t=this.requireState(`refreshApprovalInbox`),n=e.status??t.approvalInboxStatusFilter,r=e.limit??uu,i=e.offset??(e.append?t.approvalInboxItems.length:0),a=e.append===!0;a?t.approvalInboxLoadingMore=!0:t.approvalInboxLoading=!0,this.notifyStateChange();try{let o=await t.approval.listInbox({status:n,limit:r,offset:i,signal:e.signal});return t.approvalInboxStatusFilter=n,t.approvalInboxHasMore=o.hasMore,t.approvalInboxItems=a?[...t.approvalInboxItems,...o.items]:o.items,n===`pending`&&i===0&&!a&&(t.approvalInboxPendingCount=o.hasMore?Math.max(t.approvalInboxPendingCount,o.items.length):o.items.length),o}finally{a?t.approvalInboxLoadingMore=!1:t.approvalInboxLoading=!1,this.notifyStateChange()}}async getApproval(e,t){return await this.ensureLoggedIn(`getApproval`),this.requireState(`getApproval`).approval.getById(e,t)}async hydrateApprovalInboxItem(e,t){await this.ensureLoggedIn(`hydrateApprovalInboxItem`);let n=this.requireState(`hydrateApprovalInboxItem`),r=await n.approval.getById(e,t);if(!r)return n.approvalInboxItems=n.approvalInboxItems.filter(t=>t.id!==e),this.notifyStateChange(),null;let i=n.approvalInboxItems.findIndex(t=>t.id===e);if(i>=0){let e=[...n.approvalInboxItems];e[i]=r,n.approvalInboxItems=e}else n.approvalInboxItems=[r,...n.approvalInboxItems];return this.notifyStateChange(),r}async confirmApproval(e,t){await this.ensureLoggedIn(`confirmApproval`);let n=this.requireState(`confirmApproval`),r=this.resolveApprovalPageActionRunId(e),i=this.resolveApprovalIdentity(e),a=await n.approval.confirm(e,t);return this.refreshApprovalPendingCount(t).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(r,e),a.resumed?(this.syncPageActionRowAfterApprovalDecision(r,e,`resumed`),this.emitApprovalExecutionCompleted({approvalId:e,runId:r,decision:{action:`confirm`},result:a,identity:i}).catch(()=>{})):a.suspended||this.syncPageActionRowAfterApprovalDecision(r,e,`cancelled`),a}async decideApproval(e,t,n){await this.ensureLoggedIn(`decideApproval`);let r=this.requireState(`decideApproval`),i=this.resolveApprovalPageActionRunId(e),a=this.resolveApprovalIdentity(e),o=await r.approval.decide(e,t,n?.reason,n?.signal);return o.suspended?await this.hydrateApprovalInboxItem(e,n?.signal).catch(()=>{}):(this.refreshApprovalPendingCount(n?.signal).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{})),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(i,e),this.emitApprovalExecutionCompleted({approvalId:e,runId:i,decision:t,result:o,identity:a}).catch(()=>{}),o.suspended?this.syncPageActionRowAfterApprovalDecision(i,e,`suspended`):t.action===`cancel`?this.syncPageActionRowAfterApprovalDecision(i,e,`cancelled`):o.resumed&&this.syncPageActionRowAfterApprovalDecision(i,e,`resumed`),o}async rejectApproval(e,t,n){await this.ensureLoggedIn(`rejectApproval`);let r=this.requireState(`rejectApproval`),i=this.resolveApprovalPageActionRunId(e),a=this.resolveApprovalIdentity(e),o=await r.approval.reject(e,t,n);return this.refreshApprovalPendingCount(n).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(i,e),o.ok&&(this.syncPageActionRowAfterApprovalDecision(i,e,`cancelled`),this.bus.emit(`approvalExecutionCompleted`,{approvalId:e,runId:i,outcome:`cancelled`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary})),o}registerAutomationRun(e,t){if(t?.accepted){this.trackAutomationRun(t.accepted,{actionKey:t.actionKey?.trim()||t.accepted.runId.toString(),pageActionKey:t.pageActionKey??t.accepted.pageActionKey??null,rowKey:t.rowKey??null});return}if(!Number.isFinite(e))return;let n=Math.trunc(e),r=new Date().toISOString(),i=t?.rowKey?.trim()||null;this.automationRunRegistry.set(n,{runId:n,actionKey:t?.actionKey?.trim()||`Run ${n}`,pageActionKey:t?.pageActionKey??null,rowKey:i,status:`running`,registeredAt:r,updatedAt:r,clientActionId:null}),i&&this.bindPageActionRunToRow(n,i);let a=this.state;a&&(this.syncAutomationActiveCount(a),a.automationRecentRunIds=[n,...a.automationRecentRunIds.filter(e=>e!==n)].slice(0,fu),this.notifyStateChange()),this.bus.emit(`automationTaskCenterChanged`,void 0)}reconcileAutomationTasksIfNeeded(){this.state?.isLoggedIn&&(Il(this.automationRunRegistry),this.automationRunRegistry.size!==0&&Date.now()-this.automationTasksLastSyncedAt>6e4&&this.refreshAutomationTasks({status:`active`,offset:0}).catch(()=>{}))}async refreshAutomationTasks(e={}){let t=e.append?null:this.buildAutomationTaskRefreshCacheKey(e);if(this.automationTaskRefreshPromise&&t&&this.automationTaskRefreshCacheKey===t)return this.automationTaskRefreshPromise;let n=this.fetchAutomationTasks(e);e.append||(this.automationTaskRefreshCacheKey=t,this.automationTaskRefreshPromise=n);try{return await n}finally{!e.append&&this.automationTaskRefreshPromise===n&&(this.automationTaskRefreshPromise=null,this.automationTaskRefreshCacheKey=null)}}buildAutomationTaskRefreshCacheKey(e){return`${e.status??`active`}|${e.actionKey?.trim()??``}|${e.offset??0}`}setAutomationTaskStatusFilter(e){let t=this.state;!t||t.automationTaskStatusFilter===e||(this.commitAutomationTaskTabCache(t),t.automationTaskStatusFilter=e,this.restoreAutomationTaskTabView(t),t.automationTaskSelectedDetail=null,this.notifyStateChange())}async ensureAutomationTaskTabLoaded(e,t={}){await this.ensureLoggedIn(`ensureAutomationTaskTabLoaded`,{signal:t.signal});let n=this.requireState(`ensureAutomationTaskTabLoaded`),r=e??n.automationTaskStatusFilter;if(r!==n.automationTaskStatusFilter&&(this.commitAutomationTaskTabCache(n),n.automationTaskStatusFilter=r,this.restoreAutomationTaskTabView(n),n.automationTaskSelectedDetail=null),!Zl(n.automationTaskTabCaches,r).hydrated||t.refresh){await this.refreshAutomationTasks({status:r,offset:0,signal:t.signal});return}this.notifyStateChange()}async loadAutomationTaskNextPage(e={}){await this.ensureLoggedIn(`loadAutomationTaskNextPage`,{signal:e.signal});let t=this.requireState(`loadAutomationTaskNextPage`);t.automationTaskLoading||t.automationTaskLoadingMore||!t.automationTaskHasMore||await this.refreshAutomationTasks({status:t.automationTaskStatusFilter,append:!0,signal:e.signal})}commitAutomationTaskTabCache(e){Ql(e.automationTaskTabCaches,e.automationTaskStatusFilter,{items:e.automationTaskItems,hasMore:e.automationTaskHasMore,total:e.automationTaskTotal,hydrated:Zl(e.automationTaskTabCaches,e.automationTaskStatusFilter).hydrated})}restoreAutomationTaskTabView(e){let t=Zl(e.automationTaskTabCaches,e.automationTaskStatusFilter);e.automationTaskItems=[...t.items],e.automationTaskHasMore=t.hasMore,e.automationTaskTotal=t.total,e.automationTaskLoading=!1,e.automationTaskLoadingMore=!1}publishAutomationTaskTabCache(e,t,n,r,i){let a=Zl(e.automationTaskTabCaches,t),o=i??a.total;Ql(e.automationTaskTabCaches,t,{items:n,hasMore:r,total:o,hydrated:!0}),e.automationTaskStatusFilter===t&&(e.automationTaskItems=n,e.automationTaskHasMore=r,e.automationTaskTotal=o)}async refreshAutomationActiveCount(e){let t=this.state;t&&(await this.ensureLoggedIn(`refreshAutomationActiveCount`,{signal:e}),this.syncAutomationActiveCount(t),this.notifyStateChange())}async getAutomationTaskDetail(e,t){return await this.ensureLoggedIn(`getAutomationTaskDetail`),this.requireState(`getAutomationTaskDetail`).automation.getPageActionRunTask(e,t)}async hydrateAutomationTaskDetail(e,t){await this.ensureLoggedIn(`hydrateAutomationTaskDetail`);let n=this.requireState(`hydrateAutomationTaskDetail`);n.automationTaskDetailLoading=!0,this.notifyStateChange();try{let r=await n.automation.getPageActionRunTask(e,t);if(n.automationTaskSelectedDetail=r,r){let e=n.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===r.ref.id);if(e>=0){let t=[...n.automationTaskItems];t[e]=r,this.publishAutomationTaskTabCache(n,n.automationTaskStatusFilter,t,n.automationTaskHasMore)}}return r}finally{n.automationTaskDetailLoading=!1,this.notifyStateChange()}}clearAutomationTaskDetail(){let e=this.state;!e||!e.automationTaskSelectedDetail||(e.automationTaskSelectedDetail=null,this.notifyStateChange())}async applyPageActionToPage(e,t={}){await this.ensureLoggedIn(`applyPageActionToPage`,{signal:t.signal});let n=this.requireState(`applyPageActionToPage`),r=Math.trunc(e);if(!Number.isFinite(r))throw new m(`INVALID_OPTIONS`,`applyPageActionToPage requires a valid runId`);let i=await this.hydrateAutomationTaskDetail(r,t.signal)??await this.getAutomationTaskDetail(r,t.signal);if(!i||i.ref.kind!==`page_action_run`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${r} not found`);let a=i.pageContext,o=xl(a),s={runId:r,actionKey:i.actionKey,pageContext:a,target:o};if(o.kind!==`routePath`)return{...s,navigated:!1,canReplay:!1,ok:!1,reason:`missing_route_path`};if(i.taskStatus!==`completed`){let e=n.options.onNavigateForPageAction,t=!1;return e&&(await e({...s,canReplay:!1}),t=!0),{...s,navigated:t,canReplay:!1,ok:!1,reason:`not_completed`}}if(!i.replay.canReplay){let e=n.options.onNavigateForPageAction,t=!1;return e&&(await e({...s,canReplay:!1}),t=!0),{...s,navigated:t,canReplay:!1,ok:!1,reason:`no_replayable_output`}}this.setPendingPageActionApply({runId:r,actionKey:i.actionKey,pageContext:a,createdAt:new Date().toISOString()});let c=n.options.onNavigateForPageAction,l=!1;try{c&&(await c({...s,canReplay:!0}),l=!0)}catch(e){throw this.clearPendingPageActionApply(),e}return this.pageActionCoordinator.onPendingApplyChanged(),{...s,navigated:l,canReplay:!0,ok:!0,reason:`navigate_only`}}async replayPageAction(e,t={}){await this.ensureLoggedIn(`replayPageAction`,{signal:t.signal});let n=this.requireState(`replayPageAction`),r=Math.trunc(e),i=()=>{this.getPendingPageActionApply()?.runId===r&&this.clearPendingPageActionApply()},a=n.automationTaskSelectedDetail?.ref.id===r?n.automationTaskSelectedDetail:await this.getAutomationTaskDetail(r,t.signal);if(!a||a.ref.kind!==`page_action_run`)throw i(),new m(`PAGE_ACTION_FAILED`,`PageAction run ${r} not found`);if(a.taskStatus!==`completed`||!a.replay.canReplay){i();return}let o={runId:r,generation:r,clientActionId:null,pageActionKey:a.pageActionKey,streamUrl:a.streamUrl,status:`completed`},s=a.pageContext,c=pl(s),l=this.pageActionRunToRowKey.get(r)??(s?.entity?.id==null?null:String(s.entity.id).trim());try{await this.consumePageActionRunStream(n,{actionKey:a.actionKey,pageContext:s??void 0,signal:t.signal},o,c,s),i(),this.bus.emit(`pageActionApplyCompleted`,{runId:r,actionKey:a.actionKey,rowKey:l})}catch(e){throw this.bus.emit(`pageActionRunFailed`,{runId:r,actionKey:a.actionKey,rowKey:l,errorMessage:e instanceof Error?e.message:String(e)}),e}}getPendingPageActionApply(){if(this.pendingPageActionApply)return this.pendingPageActionApply;let e=this.state;if(!e?.dsn)return null;let t=El(e.dsn);return t&&(this.pendingPageActionApply=t),this.pendingPageActionApply}clearPendingPageActionApply(){let e=this.state;this.pendingPageActionApply=null,e?.dsn&&Ol(e.dsn),this.bus.emit(`pendingPageActionApplyChanged`,null),this.pageActionCoordinator.onPendingApplyChanged()}async attachPageActionStream(e,t={}){await this.ensureLoggedIn(`attachPageActionStream`,{signal:t.signal});let n=this.requireState(`attachPageActionStream`),r=Math.trunc(e);if(!Number.isFinite(r)||this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r))return!1;let i=await this.getAutomationTaskDetail(r,t.signal);if(!i||i.ref.kind!==`page_action_run`||i.taskStatus!==`running`)return!1;let a=ru(r,{rowKey:t.rowKey,entityId:i.pageContext?.entity?.id??null,findRowKeyByRunId:()=>this.findRowKeyByRunId(r)||this.findRowKeyByPageActionKey(i.pageActionKey)});if(await this.hydratePageActionByRunId(r,{rowKey:a,actionKey:i.actionKey,signal:t.signal}),this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r))return!1;let o={runId:r,generation:r,clientActionId:null,pageActionKey:i.pageActionKey,streamUrl:i.streamUrl,status:`running`},s=i.pageContext,c=pl(s);return this.consumePageActionRunStream(n,{actionKey:i.actionKey,pageContext:s??void 0,rowKey:a},o,c,s).catch(e=>{let t=c.page?.trim()??s?.page?.trim()??i.actionKey.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(r,i.actionKey),this.emitPageAgentError(t,`page_action`,`page_action`,e)}),this.bus.emit(`pageActionStreamResumed`,{runId:r,actionKey:i.actionKey,rowKey:a}),!0}async resumeActivePageActionStreams(e={}){await this.ensureLoggedIn(`resumeActivePageActionStreams`,{signal:e.signal}),this.requireState(`resumeActivePageActionStreams`);let t=e.actionKey?.trim(),n=0;for(let[r,i]of this.automationRunRegistry)if(i.status===`running`){if(t&&i.actionKey!==t){await this.hydratePageActionByRunId(r,{rowKey:i.rowKey??void 0,actionKey:i.actionKey,signal:e.signal});let n=this.automationRunRegistry.get(r);if(!n||n.actionKey!==t)continue}this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r)||await this.attachPageActionStream(r,{signal:e.signal,rowKey:i.rowKey??void 0})&&(n+=1)}return n}setPendingPageActionApply(e){let t=this.requireState(`setPendingPageActionApply`);this.pendingPageActionApply=e,Dl(t.dsn,e),this.bus.emit(`pendingPageActionApplyChanged`,e),this.pageActionCoordinator.onPendingApplyChanged()}matchesPendingPageActionApply(e){return Al(this.getPendingPageActionApply(),e)}async getDownReasonTags(){await this.ensureLoggedIn(`getDownReasonTags`);let e=this.requireState(`getDownReasonTags`);if(e.downReasonTagsCache)return e.downReasonTagsCache;let t=await e.feedback.getDownReasonTags();return e.downReasonTagsCache=t,t}async submitMessageFeedback(e,t){await this.ensureLoggedIn(`submitMessageFeedback`);let n=this.requireState(`submitMessageFeedback`),r=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!r)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: no active session`);let i=oc(e);if(i===null)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: invalid messageId`);let a=n.messages.find(t=>t.id===e);if(!a||a.role!==`agent`)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: not an assistant message`);let o=a.feedback??null,s=this.buildOptimisticFeedback(i,t);this.patchMessageFeedback(n,e,s);try{let a=await n.feedback.upsert(r,i,t);this.patchMessageFeedback(n,e,a)}catch(t){this.patchMessageFeedback(n,e,o);let r=t instanceof m?t:new m(`MESSAGE_FAILED`,`Failed to submit feedback`,{cause:t});throw this.reportError(r),r}}async removeMessageFeedback(e){await this.ensureLoggedIn(`removeMessageFeedback`);let t=this.requireState(`removeMessageFeedback`),n=t.activeSessionId??t.session.getSession()?.sessionId??null;if(!n)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: no active session`);let r=oc(e);if(r===null)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: invalid messageId`);let i=t.messages.find(t=>t.id===e);if(!i||i.role!==`agent`)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: not an assistant message`);let a=i.feedback??null;this.patchMessageFeedback(t,e,null);try{await t.feedback.remove(n,r)}catch(n){this.patchMessageFeedback(t,e,a);let r=n instanceof m?n:new m(`MESSAGE_FAILED`,`Failed to remove feedback`,{cause:n});throw this.reportError(r),r}}getOptions(){return this.state?.options??null}getState(){return this.stateSnapshot||(this.stateSnapshot=this.state?{lifecycle:this.lifecycle,dsn:this.state.dsn,isOpen:this.state.isOpen,isClientAuthenticated:this.state.isClientAuthenticated,isLoggedIn:this.state.isLoggedIn,catalogHydrated:this.state.catalogHydrated,streamingSessionIds:this.listStreamingSessionIds(this.state),pendingReplySessionIds:this.collectSessionsWithPendingReplies(this.state),session:this.state.session.getSession(),sessions:this.state.sessions,sessionsHasMore:this.state.sessionsHasMore,sessionsLoadingMore:this.state.sessionsLoadingMore,activeSessionId:this.state.activeSessionId,messages:[...this.state.messages],sessionMessagesHasMore:this.state.activeSessionMessagesHasMore,sessionMessagesLoadingMore:this.state.sessionMessagesLoadingMore,agents:[...this.state.agents],skills:[...this.state.skills],selectedAgentId:this.state.selectedAgentId,autoAgent:this.state.autoAgent,selectedSkillId:this.state.selectedSkillId,agentsLoading:this.state.agentsLoading,skillsLoading:this.state.skillsLoading,agentsEmptyReason:this.state.agentsEmptyReason,lastError:this.state.lastError,writeConfirmation:this.state.writeConfirmation,approvalInbox:{items:[...this.state.approvalInboxItems],loading:this.state.approvalInboxLoading,loadingMore:this.state.approvalInboxLoadingMore,hasMore:this.state.approvalInboxHasMore,statusFilter:this.state.approvalInboxStatusFilter,pendingCount:this.state.approvalInboxPendingCount},automationTaskCenter:{items:[...this.state.automationTaskItems],loading:this.state.automationTaskLoading,loadingMore:this.state.automationTaskLoadingMore,hasMore:this.state.automationTaskHasMore,total:this.state.automationTaskTotal,statusFilter:this.state.automationTaskStatusFilter,recentRunIds:[...this.state.automationRecentRunIds],activeCount:this.state.automationTaskActiveCount,selectedDetail:this.state.automationTaskSelectedDetail,detailLoading:this.state.automationTaskDetailLoading},skillIntentBanner:this.state.skillIntentBanner,skillIntentClarify:this.state.skillIntentClarify,brainClarify:this.state.brainClarify,skillTurnContract:this.state.skillTurnContract,skillTurnActive:this.state.skillTurnActive,skillPickerOpen:this.state.skillPickerOpen,pageContext:this.state.pageContext??this.state.options.pageContext??null,routeContext:this.state.routeContext,registeredContextMentions:this.listRegisteredContextMentions(this.state),attachPageContext:this.state.attachPageContext,activeSessionRun:this.getActiveSessionRunSnapshot(this.state),pendingGateJobs:this.snapshotPendingGateJobs()}:{lifecycle:this.lifecycle,dsn:null,isOpen:!1,isClientAuthenticated:!1,isLoggedIn:!1,catalogHydrated:!1,streamingSessionIds:[],pendingReplySessionIds:[],session:null,sessions:[],sessionsHasMore:!1,sessionsLoadingMore:!1,activeSessionId:null,messages:[],sessionMessagesHasMore:!1,sessionMessagesLoadingMore:!1,agents:[],skills:[],selectedAgentId:null,autoAgent:null,selectedSkillId:null,agentsLoading:!1,skillsLoading:!1,agentsEmptyReason:null,lastError:null,writeConfirmation:null,approvalInbox:{items:[],loading:!1,loadingMore:!1,hasMore:!1,statusFilter:`pending`,pendingCount:0},automationTaskCenter:{items:[],loading:!1,loadingMore:!1,hasMore:!1,total:0,statusFilter:`active`,recentRunIds:[],activeCount:0,selectedDetail:null,detailLoading:!1},skillIntentBanner:null,skillIntentClarify:null,brainClarify:null,skillTurnContract:null,skillTurnActive:null,skillPickerOpen:!1,pageContext:this.pendingPageContext===void 0?null:this.pendingPageContext,routeContext:this.resolvePendingRouteContext(),registeredContextMentions:this.listPendingRegisteredContextMentions(),attachPageContext:this.pendingAttachPageContext??!1,activeSessionRun:null,pendingGateJobs:this.snapshotPendingGateJobs()}),this.stateSnapshot}on(e,t){return this.bus.on(e,t)}off(e,t){this.bus.off(e,t)}subscribeStateChange(e){return this.stateChangeListeners.add(e),()=>this.stateChangeListeners.delete(e)}appendMessage(e){let t=this.state;t&&(t.messages=[...t.messages,e],this.notifyStateChange(),this.bus.emit(`message`,{message:e,source:e.role}))}applyPendingRuntimeConfig(e){this.pendingRouteContextOverride!==void 0&&(e.routeContextOverride=this.pendingRouteContextOverride,this.pendingRouteContextOverride=void 0),this.pendingPageContext!==void 0&&(e.pageContext=this.pendingPageContext,e.options={...e.options,pageContext:this.pendingPageContext??void 0},this.pendingPageContext=void 0),this.pendingAttachPageContext!==void 0&&(e.attachPageContext=this.pendingAttachPageContext,e.options={...e.options,attachPageContext:this.pendingAttachPageContext},this.pendingAttachPageContext=void 0),this.pendingContextMentionRegistry.size>0&&(e.contextMentionRegistry=Ii(e.contextMentionRegistry,[...this.pendingContextMentionRegistry.values()],!1),this.pendingContextMentionRegistry=new Map)}resolvePendingRouteContext(){if(this.pendingRouteContextOverride===void 0)return null;let e=wi(Ci(),this.pendingRouteContextOverride);return Object.keys(e).length>0?e:null}discardStaleWriteConfirmations(e,t,n,r){let i=W(t),a=e.writeConfirmationsBySession.get(i);a&&(a.generation==null?n>r:a.generation<n)&&this.persistWriteConfirmation(e,t,null)}notifyStateChange(){this.stateSnapshot=null;for(let e of Array.from(this.stateChangeListeners))try{e()}catch(e){this.state?.options.debug&&console.error(`[agent-chat] state listener threw:`,e)}}reportError(e){let t={code:e.code,message:e.message,cause:e.cause};this.state&&(this.state.lastError=t,this.notifyStateChange()),this.state?.options.debug&&typeof console<`u`&&(console.error(`[agent-chat]`,e),this.bus.listenerCount(`error`)===0&&console.warn("[agent-chat] Unhandled AgentChat error (no `error` listeners attached)")),this.bus.emit(`error`,t)}ensureInitialized(e,t){return this.initGate.wait({label:e,...t})}async ensureLoggedIn(e,t){await this.initGate.wait({label:e,...t}),this.syncAuthFromStore(),await this.loginGate.wait({label:e,...t})}requireState(e){if(!this.state)throw new m(`NOT_INITIALIZED`,`AgentChat.${e}() called before init(). Call AgentChat.init({ dsn }) first.`);return this.state}refreshApprovalBadgeBestEffort(){this.isLoggedIn()&&this.refreshApprovalPendingCount().catch(()=>{})}shouldSkipActiveAutomationReconcile(){return this.automationTasksLastSyncedAt!==0&&Date.now()-this.automationTasksLastSyncedAt<jl}refreshAutomationTasksBestEffort(){this.isLoggedIn()&&(this.shouldSkipActiveAutomationReconcile()||this.refreshAutomationTasks({status:`active`,offset:0}).catch(()=>{}))}scheduleAutomationTasksBestEffort(){let e=()=>{if(this.pageActionCoordinator.listBindings().length>0){let e=this.state;e&&this.syncAutomationActiveCount(e);return}this.refreshAutomationTasksBestEffort()};typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}makeAbortController(){let e=new AbortController;return this.state?.abortControllers.add(e),e}async prepareSession(e,t){await this.ensureLoggedIn(`prepareSession`);let n=this.requireState(`prepareSession`),r=e.trim();if(!r)return null;let i=bu(t),a=i.signal,o=this.buildPreparePageContext(n),s=this.buildPrepareFingerprint(r,o);if(!i.force&&s===this.lastPrepareFingerprint)return null;try{let e=await n.chat.prepareSession(r,o,a);return a?.aborted?null:(this.lastPrepareFingerprint=s,n.options.debug&&console.debug(`[agent-chat] prepareSession`,e.pageScope,`hostTools=${e.hostToolsCount}`,e.fromCache?`fromCache`:`warmed`),e)}catch(e){return a?.aborted||n.options.debug&&console.warn(`[agent-chat] prepareSession failed:`,e),null}}schedulePrepareSession(){let e=this.state;if(!e?.isLoggedIn)return;let t=e.activeSessionId?.trim();if(!t)return;this.cancelScheduledPrepare(),this.prepareAbort=new AbortController;let n=this.prepareAbort.signal;this.prepareTimer=setTimeout(()=>{this.prepareTimer=null,this.prepareSession(t,{signal:n})},200)}cancelScheduledPrepare(){if(this.prepareTimer!=null&&(clearTimeout(this.prepareTimer),this.prepareTimer=null),this.prepareAbort){try{this.prepareAbort.abort()}catch{}this.prepareAbort=null}}buildPreparePageContext(e){let t={},n=e.routeContext;n?.routePath&&(t.routePath=n.routePath),n?.routeParams&&Object.keys(n.routeParams).length>0&&(t.routeParams=n.routeParams);let r=e.pageContext??e.options.pageContext??null;return r?.page&&(t.page=r.page),r?.flowId!=null&&(t.flowId=r.flowId),r?.programName&&(t.programName=r.programName),r?.entity&&(t.entity=r.entity),r?.metadata&&(t.metadata=r.metadata),Object.keys(t).length>0?t:null}buildPrepareFingerprint(e,t){return JSON.stringify({sessionId:e.trim().toLowerCase(),page:t?.page??``,entityId:t?.entity?.id??``,entityType:t?.entity?.type??``,routePath:t?.routePath??``,routeParams:t?.routeParams??null})}async deleteSession(e){await this.ensureLoggedIn(`deleteSession`);let t=this.requireState(`deleteSession`),n=e.trim();if(!n)throw new m(`INVALID_OPTIONS`,`deleteSession: sessionId is required`);let r=W(n),i=t.activeSessionId!=null&&W(t.activeSessionId)===r;try{await t.chat.deleteSession(n)}catch(e){let t=e instanceof m?e:new m(`TRANSPORT_FAILED`,`Failed to delete session`,{cause:e});throw this.reportError(t),t}this.abortSessionStream(t,r),t.writeConfirmationsBySession.delete(r),t.sessionRuns.delete(r);for(let e of[...t.sessionMessagesCache.keys()])W(e)===r&&t.sessionMessagesCache.delete(e);if(t.sessions=t.sessions.filter(e=>W(e.sessionId)!==r),this.notifyStateChange(),this.bus.emit(`sessions`,{sessions:t.sessions}),i){this.sessionEpoch+=1,t.activeSessionId=null,t.activeSessionMessagesPage=0,t.activeSessionMessagesHasMore=!1,t.session.reset(),t.messages=[],t.writeConfirmation=null;let e=t.sessions[0];e&&await this.selectSession(e.sessionId)}}async refreshSessions(e){await this.ensureLoggedIn(`refreshSessions`);let t=this.requireState(`refreshSessions`),n=await this.fetchSessionsPage(t,1,e);t.sessions=n.sessions,t.sessionsPage=n.page,t.sessionsHasMore=n.hasMore,t.sessionsLoadingMore=!1,this.notifyStateChange(),this.bus.emit(`sessions`,{sessions:t.sessions})}async loadMoreSessions(e){await this.ensureLoggedIn(`loadMoreSessions`);let t=this.requireState(`loadMoreSessions`);if(!(!t.sessionsHasMore||t.sessionsLoadingMore)){t.sessionsLoadingMore=!0,this.notifyStateChange();try{let n=await this.fetchSessionsPage(t,t.sessionsPage+1,e);t.sessions=pu(t.sessions,n.sessions),t.sessionsPage=n.page,t.sessionsHasMore=n.hasMore,this.bus.emit(`sessions`,{sessions:t.sessions})}finally{t.sessionsLoadingMore=!1,this.notifyStateChange()}}}async fetchSessionsPage(e,t,n){return Tt(await e.chat.listSessions(t,e.sessionsPageSize,n),t,e.sessionsPageSize)}async loadMoreSessionMessages(e){await this.ensureLoggedIn(`loadMoreSessionMessages`);let t=this.requireState(`loadMoreSessionMessages`),n=t.activeSessionId;if(!(!n||!t.activeSessionMessagesHasMore||t.sessionMessagesLoadingMore)){t.sessionMessagesLoadingMore=!0,this.notifyStateChange();try{let r=await this.fetchSessionMessagesPage(t,n,t.activeSessionMessagesPage+1,e),i=r.messages.map(e=>this.toAgentMessage(e)),a=mu(t.messages,i);t.messages=a,t.activeSessionMessagesPage=r.page,t.activeSessionMessagesHasMore=r.hasMore,t.session.setSession(n,a),this.writeSessionMessagesCache(t,n,a,r.page,r.hasMore),this.notifyStateChange(),this.syncMessageFeedbacks(t,n).catch(()=>{})}finally{t.sessionMessagesLoadingMore=!1,this.notifyStateChange()}}}async selectAgent(e){await this.ensureLoggedIn(`selectAgent`);let t=this.requireState(`selectAgent`),n=e.trim();if(!n){if(!t.selectedAgentId&&!t.autoAgent&&!t.selectedSkillId)return;t.selectedAgentId=null,t.autoAgent=null,t.selectedSkillId=null,t.skills=[],t.skillsLoading=!1,this.notifyStateChange();return}(t.selectedAgentId!==n||t.autoAgent?.source!==`requested`)&&(t.selectedAgentId=n,t.autoAgent={id:n,source:`requested`,reason:`selected in UI`},t.selectedSkillId=null,this.notifyStateChange(),await this.refreshSkills(n))}selectSkill(e){let t=this.requireState(`selectSkill`),n=e.trim();if(!n){if(t.selectedSkillId==null)return;t.selectedSkillId=null,t.skillPickerOpen=!1,this.notifyStateChange();return}t.selectedSkillId!==n&&(t.selectedSkillId=n,t.skillPickerOpen=!1,t.skillIntentClarify=null,this.notifyStateChange())}dismissSkillIntentBanner(){let e=this.state;e?.skillIntentBanner&&(e.skillIntentBanner=null,this.notifyStateChange())}clearSkillFromIntentBanner(){this.selectSkill(``);let e=this.state;e&&(e.skillIntentBanner=null,this.notifyStateChange())}dismissSkillIntentClarify(){let e=this.state;e?.skillIntentClarify&&(e.skillIntentClarify=null,this.notifyStateChange())}dismissBrainClarify(){let e=this.state;e?.brainClarify&&(e.brainClarify=null,this.notifyStateChange())}async commitBrainClarify(e){await this.ensureLoggedIn(`commitBrainClarify`);let t=this.requireState(`commitBrainClarify`),n=t.brainClarify;if(!n)return;let r=e.trim();if(!r)throw new m(`INVALID_OPTIONS`,`commitBrainClarify: selectedId required`);let i=n.brainClarify.candidates.find(e=>e.id===r)??null,a=i?zo(i):r,o=Ro(n.brainClarify,r);t.brainClarify=null,this.notifyStateChange();try{await this.sendMessage(a,{entityCommit:o})}catch(e){throw this.state===t&&!t.brainClarify&&(t.brainClarify=n,this.notifyStateChange()),e}}async followSkillIntentClarify(){await this.ensureLoggedIn(`followSkillIntentClarify`);let e=this.requireState(`followSkillIntentClarify`),t=e.skillIntentClarify?.userMessage?.trim()??e.lastTurnUserMessage?.trim()??``;if(!t)throw new m(`INVALID_OPTIONS`,`No user message to resend`);e.skillIntentClarify=null,this.selectSkill(``),await this.sendMessage(t)}openSkillPicker(){let e=this.state;e&&(e.skillPickerOpen=!0,e.skillIntentClarify=null,this.notifyStateChange())}closeSkillPicker(){let e=this.state;e?.skillPickerOpen&&(e.skillPickerOpen=!1,this.notifyStateChange())}resolveSkillName(e,t){if(t==null)return;let n=String(t);return e.skills.find(e=>e.id===n)?.name}clearSkillIntentUi(e){e.skillIntentBanner=null,e.skillIntentClarify=null,e.brainClarify=null,e.skillTurnActive=null}applySkillTurnContract(e,t,n){let r=t.skillAlignment,i=wc(n.steps),a=t.requestedSkillId??r.requestedSkillId??i?.requestedSkillId;if(xc(t)&&r.code){let t=e.lastTurnUserMessage?.trim()??i?.userMessage?.trim()??``;if(!t)return;e.skillIntentClarify={code:r.code,requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a),userMessage:t,messageId:n.assistantMessageId,runId:n.runId},e.skillIntentBanner=null,e.skillTurnActive=null;return}if(yc(t)){e.skillIntentBanner={code:r.code??i?.mismatchCode,requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a)},e.skillIntentClarify=null,e.skillTurnActive=null;return}if(vc(t)){e.skillTurnActive={requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a)},e.skillIntentBanner=null,e.skillIntentClarify=null;return}e.skillTurnActive=null}applySkillIntentAlignment(e,t){this.isViewingSession(e,t.sessionId)&&this.loadSkillIntentAlignment(e,t).catch(()=>{})}async loadSkillIntentAlignment(e,t){let n=e.appClientId;if(n==null)return;let r=lc(await e.agentRun.getRun(n,t.runId));if(!r)return;let i=uc(r),a=Bo({steps:i});a&&this.isViewingSession(e,t.sessionId)?e.brainClarify={messageId:t.assistantMessageId,runId:t.runId,brainClarify:a}:(e.brainClarify?.runId===t.runId||e.brainClarify?.messageId===t.assistantMessageId)&&(e.brainClarify=null);let o=gc(i);if(!o){a&&this.notifyStateChange();return}e.skillTurnContract=o,this.applySkillTurnContract(e,o,{assistantMessageId:t.assistantMessageId,runId:t.runId,steps:i}),this.notifyStateChange()}async refreshAgentCatalog(e){await this.ensureInitialized(`refreshAgentCatalog`,{signal:e});let t=this.requireState(`refreshAgentCatalog`);if(t.options.agents?.length){t.agents=[...t.options.agents],t.agentsEmptyReason=null,this.syncDefaultAgentSelection(t),t.options.skills?.length||await this.refreshSkills(t.selectedAgentId??void 0,e);return}await this.ensureLoggedIn(`refreshAgentCatalog`,{signal:e}),t.agentsLoading=!0,t.agentsEmptyReason=null,this.notifyStateChange();try{let n=Lt(await t.agent.listAvailableAgents(t.options.agentListQuery,e));t.agents=n,n.length===0&&(t.agentsEmptyReason=await this.resolveAgentsEmptyReason(t,e)),this.syncDefaultAgentSelection(t),await this.refreshSkills(t.selectedAgentId??void 0,e)}catch{t.agents=[],t.agentsEmptyReason=null,this.applyStaticSkills(t)}finally{t.agentsLoading=!1,this.notifyStateChange()}}async resolveAgentsEmptyReason(e,t){try{return Lt(await e.agent.listAllClientAgents(t)).length>0?`permission`:`not_configured`}catch{return null}}async refreshSkills(e,t){let n=this.requireState(`refreshSkills`),r=e?.trim()||n.selectedAgentId||void 0,i=++this.skillsLoadToken;if(n.options.skills?.length){n.skills=r?n.options.skills.filter(e=>!e.agentId||e.agentId===r):[...n.options.skills],this.syncDefaultSkillSelection(n),this.notifyStateChange();return}if(!r){n.skills=[],n.selectedSkillId=null,this.notifyStateChange();return}n.skillsLoading=!0,this.notifyStateChange();let a=()=>i===this.skillsLoadToken;try{let e=n.pageContext??n.options.pageContext??null,i=ar(n.options.skillListQuery,e),o=await n.agent.listClientSkills(r,i,t);if(!a())return;n.skills=Ut(o),this.syncDefaultSkillSelection(n)}catch{a()&&(n.skills=[],n.selectedSkillId=null)}finally{a()&&(n.skillsLoading=!1,this.notifyStateChange())}}applyStaticSkills(e){let t=e.options.skills;if(!t?.length)return;let n=e.selectedAgentId;e.skills=n?t.filter(e=>!e.agentId||e.agentId===n):[...t],this.syncDefaultSkillSelection(e)}syncDefaultAgentSelection(e){let t=e.options.defaultAgentId?.trim();e.selectedAgentId&&e.agents.length>0?e.agents.some(t=>t.id===e.selectedAgentId)||(e.selectedAgentId=t&&e.agents.some(e=>e.id===t)?t:null,e.selectedAgentId||(e.selectedSkillId=null)):t&&e.agents.some(e=>e.id===t)&&(e.selectedAgentId=t),this.applyStaticSkills(e)}applyAutoAgentBinding(e,t){if(!t?.id)return;let n=e.selectedAgentId;e.autoAgent=t,e.selectedAgentId=t.id,n!==t.id&&(e.selectedSkillId=null,this.refreshSkills(t.id).catch(()=>{}))}syncDefaultSkillSelection(e){let t=e.options.defaultSkillId?.trim();if(!(e.selectedSkillId&&e.skills.some(t=>t.id===e.selectedSkillId))){if(t&&e.skills.some(e=>e.id===t)){e.selectedSkillId=t;return}if(this.getPageScope(e)){e.selectedSkillId=or(e.skills)??null;return}e.selectedSkillId=e.skills[0]?.id??null}}getPageScope(e){return(e.pageContext?.page??e.options.pageContext?.page??``).trim()}syncActiveWriteConfirmation(e,t){let n=W(t);e.writeConfirmation=e.writeConfirmationsBySession.get(n)??null}persistWriteConfirmation(e,t,n){let r=W(t);n?e.writeConfirmationsBySession.set(r,n):e.writeConfirmationsBySession.delete(r),this.isViewingSession(e,t)&&(e.writeConfirmation=n)}maybeNotifyBackgroundReply(e,t){if(e.isOpen&&this.isViewingSession(e,t))return;let n=W(t),r=e.sessions.find(e=>W(e.sessionId)===n);this.bus.emit(`backgroundReplyReady`,{sessionId:n,sessionTitle:r?.title??null})}emitHostAction(e,t,n=`complete`,r){if(n===`streaming`||!Fn(t))return;let i={...t,sessionId:t.sessionId??e.activeSessionId??void 0,streamPhase:t.streamPhase??n};this.bus.emit(`hostAction`,{action:i,phase:`complete`}),(async()=>{await jr(i),r?.skipToolExecution||await yr(i)})().catch(t=>{e.options.debug&&console.warn(`[agent-chat] hostAction dispatch failed:`,t)})}emitPageAgentLifecycle(e){this.bus.emit(`pageAgentLifecycle`,e)}emitPageAgentCompleteFromAction(e,t){let n=e.scope?.trim();n&&this.emitPageAgentLifecycle({type:`complete`,context:{scope:n,source:t,hostTools:e.hostTools,action:e,entity:e.entity,reason:e.reason}})}emitPageAgentError(e,t,n,r){let i=r instanceof m||r instanceof Error?r.message:String(r),a=r instanceof m?r.code:void 0;this.emitPageAgentLifecycle({type:`error`,context:{scope:e,source:t,phase:n,code:a,message:i}})}buildHostActionPageGate(e){let t=e.pageContext??e.options.pageContext??null;return{...t?.page?{page:t.page}:{},...t?.entity?{entity:t.entity}:{}}}getHostToolStreamManager(e,t,n){let r=W(t),i=n??this.buildHostActionPageGate(e),a=this.hostToolStreamManagers.get(r);return a?a.updateOptions({pageContext:i,sessionId:t,debug:e.options.debug}):(a=new ui({pageContext:i,sessionId:t,debug:e.options.debug}),this.hostToolStreamManagers.set(r,a)),a}ingestHostActionSse(e,t,n,r,i=`chat`){if(!di(e.options.hostToolStream,n)){let r=zn(n,t);r&&(this.emitHostAction(e,r),this.emitPageAgentCompleteFromAction(r,i));return}if(!Sn(n)){let a=zn(n,t);a&&(this.getHostToolStreamManager(e,t,r).reset(),this.emitHostAction(e,a),this.emitPageAgentCompleteFromAction(a,i));return}this.getHostToolStreamManager(e,t,r).ingest(n,{source:i,emitLifecycle:e=>this.emitPageAgentLifecycle(e),emitHostAction:(t,n,r)=>{this.emitHostAction(e,t,n,r)}})}acquirePageActionLock(e){let t=e?.trim();if(!t)return null;if(this.pageActionInFlightKeys.has(t))throw new m(`INVALID_OPTIONS`,`Page action invoke already in flight for clientActionId: ${t}`);return this.pageActionInFlightKeys.add(t),t}releasePageActionLock(e){e&&this.pageActionInFlightKeys.delete(e)}requirePageActionKey(e){let t=e.actionKey?.trim();if(!t)throw new m(`INVALID_OPTIONS`,`Page action: actionKey is required`);return t}resolvePageActionStreamSessionKey(e,t){let n=e.clientActionId?.trim();return n?`${sl}${n}`:t==null?`${sl}${cu()}`:`${sl}${t}`}releasePageActionStreamManager(e){this.hostToolStreamManagers.delete(W(e))}resolvePageActionContext(e,t){let n=e.pageContext??e.options.pageContext??null,r=t.pageContext;return r&&n?{...n,...r}:r??n??void 0}buildPageActionInvokeBody(e,t){let n=this.requirePageActionKey(t),r=ko({pageContext:this.resolvePageActionContext(e,t),routeContext:e.routeContext}),i={actionKey:n};return r&&(i.pageContext=r),t.instruction?.trim()&&(i.instruction=t.instruction.trim()),t.context&&Object.keys(t.context).length>0&&(i.context=t.context),t.idempotencyKey?.trim()&&(i.idempotencyKey=t.idempotencyKey.trim()),t.clientActionId?.trim()&&(i.clientActionId=t.clientActionId.trim()),t.entityCommit?.entityType?.trim()&&t.entityCommit?.selectedId?.trim()&&(i.entityCommit={entityType:t.entityCommit.entityType.trim(),selectedId:t.entityCommit.selectedId.trim()}),i}async tryPageActionReusePrompt(e,t,n,r){let i=this.pageActionReusePromptHandler;if(!i)return null;let a=r.cached;if(!a)try{a=await e.pageAction.reuseHint(r.body,t.signal),this.pageActionReuseHintCache.set(r.body,a)}catch{return null}if(a.reusable.total<=0||a.reusable.items.length===0)return null;if(n){let e=this.pageActionRows.get(n);this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:a.pageActionKey,phase:`awaiting_reuse`,error:null,message:null,progressLabel:null,approvalRequestId:e?.approvalRequestId??null}))}let o=await i({actionKey:a.actionKey,pageActionKey:a.pageActionKey,items:a.reusable.items,sourceRect:vl(t.launchAnchor),launchAnchor:t.launchAnchor??null,invokeSnapshot:{pageContext:t.pageContext,instruction:t.instruction,context:t.context,clientActionId:t.clientActionId,idempotencyKey:t.idempotencyKey,rowKey:n??t.rowKey,awaitStream:t.awaitStream}});if(o.type===`rerun`){if(this.pageActionReuseHintCache.invalidateByBody(r.body),n){let e=this.pageActionRows.get(n);this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:e?.pageActionKey??a.pageActionKey,phase:`submitting`,error:null,message:null,progressLabel:Zc(this.state?.options.locale),narrativeItems:[],approvalRequestId:e?.approvalRequestId??null}))}return null}if(o.type===`cancel`){if(n){let e=this.pageActionRows.get(n);this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:e?.pageActionKey??a.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:e?.approvalRequestId??null}))}return{actionRunId:0,text:``,dslOutcome:null,actionKey:t.actionKey.trim(),clientActionId:t.clientActionId,cancelled:!0}}let s=a.reusable.items.find(e=>e.ref.id===o.runId)??a.reusable.items[0];return s?this.applyPageActionReuse(t,n,a,s):null}async applyPageActionReuse(e,t,n,r){let i=r.ref.id,a=this.state?.options.locale,o=$c(a),s=e.actionKey.trim(),c=t?this.pageActionReuseDismissEpochByRowKey.get(t)??0:0,l=()=>t!=null&&(this.pageActionReuseDismissEpochByRowKey.get(t)??0)!==c,u=e=>{if(!t||l())return;let r=this.pageActionRows.get(t);this.upsertPageActionRow(U({rowKey:t,actionKey:s,runId:i,pageActionKey:n.pageActionKey,phase:e.phase,loading:e.loading,disabled:e.disabled,error:e.error??null,message:e.message??null,progressLabel:e.progressLabel??null,approvalRequestId:r?.approvalRequestId??null}))};u({phase:`streaming`,loading:!0,disabled:!0,progressLabel:el(a),message:null,error:null}),this.bus.emit(`pageActionApplyStarted`,{runId:i,actionKey:s,rowKey:t});let d=r.outputs.fillText?.trim()||r.outputs.preview?.trim()||``;try{let n=await this.getAutomationTaskDetail(i,e.signal);if(l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};if(!n||n.ref.kind!==`page_action_run`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${i} not found`);if(n.taskStatus!==`completed`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${i} is not completed`);let r=n.outputs.preview?.trim()||d;if(r&&(d=r),(n.replay.canReplay||n.outputs.hasFillText===!0||d)&&(n.replay.canReplay||n.outputs.hasFillText)){if(await this.replayPageAction(i,{signal:e.signal}),l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};if(d&&e.onChunk)try{e.onChunk(d)}catch{}}else d&&e.onChunk?(e.onChunk(d),this.bus.emit(`pageActionApplyCompleted`,{runId:i,actionKey:s,rowKey:t})):(this.openAutomationTaskCenter({runId:i}),this.bus.emit(`pageActionApplyCompleted`,{runId:i,actionKey:s,rowKey:t}));return u({phase:`completed`,loading:!1,disabled:!1,message:o,progressLabel:null,error:null}),t&&!l()&&this.schedulePageActionRowIdleReset(t,1800),{actionRunId:i,text:d,dslOutcome:n.replay.dslOutcome,actionKey:s,clientActionId:e.clientActionId,message:o,reused:!0}}catch(n){if(l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};let r=n instanceof Error?n.message:String(n);throw u({phase:`failed`,loading:!1,disabled:!1,error:r,message:null,progressLabel:null}),t&&this.schedulePageActionRowIdleReset(t,1600),this.bus.emit(`pageActionRunFailed`,{runId:i,actionKey:s,rowKey:t,errorMessage:r}),n instanceof m?n:new m(`PAGE_ACTION_FAILED`,r)}}async invokePageActionStream(e,t,n=null){let r=this.resolvePageActionContext(e,t),i=pl(r),a=this.buildPageActionInvokeBody(e,t),o=n??this.resolveInvokeRowKey(t),s;try{s=await e.pageAction.invoke(a,t.signal)}catch(e){let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.emitPageAgentError(n,`page_action`,`page_action`,e),fl(e)}if(s.kind===`already_active`){let n=s,a={runId:n.existingRunId,generation:n.existingRunId,clientActionId:t.clientActionId?.trim()??null,pageActionKey:n.pageActionKey,streamUrl:n.streamUrl,status:n.existingStatus};this.registerAutomationRun(a.runId,{actionKey:t.actionKey,accepted:a,pageActionKey:n.pageActionKey,rowKey:o});let c=n.existingStatus===`awaiting_approval`?al(this.state?.options.locale):il(this.state?.options.locale);if(o&&this.syncPageActionRowFromAccepted(o,t.actionKey,a,{approvalRequestId:n.approvalRequestId,message:c}),this.bus.emit(`pageActionSoftNotice`,{kind:n.existingStatus===`awaiting_approval`?`already_awaiting_approval`:`already_running`,message:c,runId:a.runId,actionKey:t.actionKey,approvalRequestId:n.approvalRequestId}),n.existingStatus===`awaiting_approval`){let e=this.buildEarlyPageActionResult(a,{actionKey:t.actionKey,approvalRequestId:n.approvalRequestId,message:c,alreadyActive:!0});return this.notifyPageActionAwaitingApproval(i,r,t,e),e}return this.consumePageActionRunStream(e,t,a,i,r).then(e=>{e?.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,{...e,approvalRequestId:e.approvalRequestId??n.approvalRequestId})}).catch(e=>{let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(a.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e)}),this.buildEarlyPageActionResult(a,{actionKey:t.actionKey,approvalRequestId:n.approvalRequestId,message:c,alreadyActive:!0})}let c=s;this.registerAutomationRun(c.runId,{actionKey:t.actionKey,accepted:c,pageActionKey:c.pageActionKey,rowKey:o}),o&&this.syncPageActionRowFromAccepted(o,t.actionKey,c),this.rememberPageActionInvokeSnapshot(t,o,c.runId);let l={...c,sourceRect:vl(t.launchAnchor),launchAnchor:t.launchAnchor??null,rowKey:o,actionKey:t.actionKey.trim()};this.bus.emit(`pageActionSubmitted`,l);let u=t.awaitStream!==!1,d=this.consumePageActionRunStream(e,t,c,i,r);if(!u){d.then(e=>{e?.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,e)}).catch(e=>{let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(c.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e)});let e=this.buildEarlyPageActionResult(c,{actionKey:t.actionKey});return e.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,e),e}try{return await d}catch(e){let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(c.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e),fl(e)}}buildEarlyPageActionResult(e,t){let n=e.status===`awaiting_approval`;return{actionRunId:e.runId,text:``,dslOutcome:null,awaitingApproval:n?!0:void 0,status:n?`awaiting_approval`:void 0,actionKey:t?.actionKey,clientActionId:e.clientActionId??void 0,approvalRequestId:t?.approvalRequestId??null,message:t?.message??null,alreadyActive:t?.alreadyActive===!0||void 0}}finishAlreadyActiveInvoke(e,t,n){let r=this.pageActionRows.get(t),i=r?.awaitingApproval===!0||r?.phase===`awaiting_approval`,a=i?al(this.state?.options.locale):il(this.state?.options.locale);if(r){let{loading:e,disabled:t,...n}=r;this.upsertPageActionRow(U({...n,error:null,message:a}))}return this.bus.emit(`pageActionSoftNotice`,{kind:i?`already_awaiting_approval`:`already_running`,message:a,runId:r?.runId??null,actionKey:e.actionKey.trim(),approvalRequestId:r?.approvalRequestId??null}),i&&r?.runId!=null&&(this.pageActionAwaitingApprovalNotified.has(r.runId)||(this.pageActionAwaitingApprovalNotified.add(r.runId),this.bus.emit(`pageActionAwaitingApproval`,{actionRunId:r.runId,actionKey:e.actionKey.trim(),approvalRequestId:r.approvalRequestId??null}))),{actionRunId:r?.runId??0,text:``,dslOutcome:null,awaitingApproval:i?!0:void 0,status:i?`awaiting_approval`:void 0,actionKey:e.actionKey.trim(),clientActionId:e.clientActionId?.trim()||void 0,approvalRequestId:r?.approvalRequestId??null,message:a,alreadyActive:!0}}async consumePageActionRunStream(e,t,n,r,i){let a=this.pageActionRunStreamPromises.get(n.runId);if(a)return a;let o=this.runPageActionConsumeStream(e,t,n,r,i).finally(()=>{this.pageActionRunStreamPromises.get(n.runId)===o&&this.pageActionRunStreamPromises.delete(n.runId)});return this.pageActionRunStreamPromises.set(n.runId,o),o}async runPageActionConsumeStream(e,t,n,r,i){let a=this.resolvePageActionStreamSessionKey(t,n.runId);this.getHostToolStreamManager(e,a,r).reset();let o=new AbortController;this.pageActionRunAborts.set(n.runId,o),t.signal&&(t.signal.aborted?o.abort():t.signal.addEventListener(`abort`,()=>o.abort(),{once:!0}));try{let s=await gl(e.pageAction.streamRun(n.runId,o.signal),{onHostAction:t=>{this.ingestHostActionSse(e,a,t,r,`page_action`)},onChunk:t.onChunk,onLifecycle:t=>{this.applyPageActionRunLifecycle(e,t)},onWorkflowProgress:e=>{this.syncPageActionRowFromWorkflow(e)},debug:e.options.debug});return s.awaitingApproval&&this.notifyPageActionAwaitingApproval(r,i,t,s),this.bus.emit(`automationTaskCenterChanged`,void 0),s}finally{this.pageActionRunAborts.delete(n.runId),this.releasePageActionStreamManager(a)}}notifyPageActionAwaitingApproval(e,t,n,r){let i=r.actionRunId;if(typeof i==`number`&&Number.isFinite(i)){if(this.pageActionAwaitingApprovalNotified.has(i))return;this.pageActionAwaitingApprovalNotified.add(i)}this.emitPageActionAwaitingApproval(e,t,n,r);let a=n.rowKey?.trim()||tu({rowKey:n.rowKey,entityId:t?.entity?.id??null})||(typeof r.actionRunId==`number`?this.pageActionRunToRowKey.get(r.actionRunId):null);if(a){let e=this.pageActionRows.get(a);this.upsertPageActionRow(U({rowKey:a,actionKey:r.actionKey??n.actionKey,runId:r.actionRunId??e?.runId??null,pageActionKey:e?.pageActionKey??null,phase:`awaiting_approval`,error:null,message:e?.message??null,progressLabel:e?.progressLabel??ol({phase:`awaiting_approval`,actionRunId:r.actionRunId??e?.runId??0,actionKey:(r.actionKey??n.actionKey).trim(),generation:0,nodeId:``,stageKind:`other`},this.state?.options.locale),narrativeItems:e?.narrativeItems??[],approvalRequestId:r.approvalRequestId??null,brainClarify:e?.brainClarify??null}))}this.bus.emit(`pageActionAwaitingApproval`,{actionRunId:r.actionRunId,actionKey:r.actionKey??n.actionKey,approvalRequestId:r.approvalRequestId??null})}rememberPageActionInvokeSnapshot(e,t,n){let r={pageContext:e.pageContext,instruction:e.instruction,context:e.context,clientActionId:e.clientActionId,idempotencyKey:e.idempotencyKey,rowKey:e.rowKey??t??void 0,awaitStream:e.awaitStream,launchAnchor:e.launchAnchor??null};t&&this.pageActionInvokeSnapshotsByRowKey.set(t,r),typeof n==`number`&&Number.isFinite(n)&&this.pageActionInvokeSnapshotsByRunId.set(Math.trunc(n),r)}emitPageActionBrainClarify(e,t,n){t.brainClarify&&this.emitPageActionBrainClarifyFromPayload({actionKey:t.actionKey,runId:t.actionRunId,brainClarify:t.brainClarify,rowKey:n})}emitPageActionBrainClarifyFromPayload(e){let t=e.runId,n=e.rowKey,r=this.pageActionInvokeSnapshotsByRunId.get(t)??(n?this.pageActionInvokeSnapshotsByRowKey.get(n):void 0)??null,i={actionKey:e.actionKey,runId:t,brainClarify:e.brainClarify,sourceRect:vl(r?.launchAnchor??null),launchAnchor:r?.launchAnchor??null,invokeSnapshot:r?{pageContext:r.pageContext,instruction:r.instruction,context:r.context,clientActionId:r.clientActionId,rowKey:r.rowKey,awaitStream:r.awaitStream}:void 0};this.bus.emit(`pageActionBrainClarify`,i)}syncPageActionRowAfterApprovalDecision(e,t,n){let r=this.resolvePageActionRunIdForApproval(e,t);r!=null&&this.pageActionAwaitingApprovalNotified.delete(r);let i=this.findRowKeyForApproval(r,t);if(!i)return;let a=this.pageActionRows.get(i),o=t!=null&&Number.isFinite(t)?Math.trunc(t):null,s=a?.awaitingApproval||a?.phase===`awaiting_approval`||r!=null&&a?.runId===r||o!=null&&a?.approvalRequestId===o;if(!(!a||!s)){if(n===`resumed`){this.upsertPageActionRow(U({...a,rowKey:i,runId:r??a.runId,phase:`streaming`,error:null,approvalRequestId:null}));return}if(n===`suspended`){this.upsertPageActionRow(U({...a,rowKey:i,runId:r??a.runId,phase:`awaiting_approval`,error:null,approvalRequestId:t??a.approvalRequestId}));return}r!=null&&this.automationRunRegistry.delete(r),this.upsertPageActionRow(U({...a,rowKey:i,runId:null,phase:`idle`,error:null,approvalRequestId:null}))}}findRowKeyByRunId(e){let t=Math.trunc(e),n=this.pageActionRunToRowKey.get(t)?.trim()||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(n)return n;for(let e of this.pageActionRows.values())if(e.runId===t)return e.rowKey;return null}findRowKeyForApproval(e,t){if(e!=null&&Number.isFinite(e)){let t=this.findRowKeyByRunId(Math.trunc(e));if(t)return t}if(t!=null&&Number.isFinite(t)){let e=Math.trunc(t);for(let t of this.pageActionRows.values())if(t.approvalRequestId===e)return t.rowKey}return null}resolvePageActionRunIdForApproval(e,t){return typeof e==`number`&&Number.isFinite(e)?Math.trunc(e):t!=null&&Number.isFinite(t)?this.resolveApprovalPageActionRunId(Math.trunc(t)):null}refreshPageActionRowsAfterApprovalDecision(e,t){(async()=>{try{this.automationRunRegistry.size>0&&await this.refreshAutomationTasks({status:`active`,offset:0});let n=this.resolvePageActionRunIdForApproval(e,t);if(n!=null){await this.hydratePageActionByRunId(n);return}let r=[...this.pageActionRows.values()].filter(e=>e.awaitingApproval||e.phase===`awaiting_approval`);await Promise.all(r.filter(e=>e.runId!=null).map(e=>this.hydratePageActionByRunId(e.runId)))}catch{}})()}emitPageActionAwaitingApproval(e,t,n,r){let i=e.page?.trim()??t?.page?.trim()??n.actionKey?.split(`.`)[0]?.trim()??``;i&&this.bus.emit(`pageAgentAwaitingApproval`,{scope:i,actionRunId:r.actionRunId,actionKey:r.actionKey,clientActionId:r.clientActionId,approvalRequestId:r.approvalRequestId??null}),this.refreshApprovalPendingCount().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0)}clearAutomationRunRegistry(){this.automationRunRegistry.clear(),this.automationTasksLastSyncedAt=0,this.pageActionRows.clear(),this.pageActionRunToRowKey.clear(),this.pageActionReuseHintCache.clear(),this.clearPageActionRowIdleTimers()}syncAutomationActiveCount(e){Il(this.automationRunRegistry),e.automationTaskActiveCount=Nl(this.automationRunRegistry)}resolveInvokeRowKey(e){let t=this.state;if(!t)return tu({rowKey:e.rowKey,entityId:e.pageContext?.entity?.id??null});let n=this.resolvePageActionContext(t,e);return tu({rowKey:e.rowKey,entityId:n?.entity?.id??null})}bindPageActionRunToRow(e,t){let n=t.trim();!n||!Number.isFinite(e)||this.pageActionRunToRowKey.set(Math.trunc(e),n)}findRowKeyByPageActionKey(e){let t=e?.trim();if(!t)return null;for(let e of this.pageActionRows.values())if(e.pageActionKey?.trim()===t)return e.rowKey;for(let e of this.automationRunRegistry.values())if(e.pageActionKey?.trim()===t&&e.rowKey?.trim())return e.rowKey.trim();return null}upsertPageActionRow(e){let t=this.pageActionRowIdleTimers.get(e.rowKey);t!=null&&e.phase!==`completed`&&e.phase!==`failed`&&(clearTimeout(t),this.pageActionRowIdleTimers.delete(e.rowKey));let n=this.pageActionRows.get(e.rowKey),r=n&&e.updatedAt<=n.updatedAt?{...e,updatedAt:n.updatedAt+1}:e;this.pageActionRows.set(r.rowKey,r),r.runId!=null&&this.bindPageActionRunToRow(r.runId,r.rowKey),this.bus.emit(`pageActionRowChanged`,{rowKey:r.rowKey,state:r})}syncPageActionRowFromAccepted(e,t,n,r={}){let i=n.status===`awaiting_approval`?`awaiting_approval`:n.status===`running`?`launched`:eu(n.status);this.upsertPageActionRow(U({rowKey:e,actionKey:t.trim(),runId:n.runId,pageActionKey:n.pageActionKey,phase:i,error:r.error??null,message:r.message??null,progressLabel:i===`awaiting_approval`?ol({phase:`awaiting_approval`,actionRunId:n.runId,actionKey:t.trim(),generation:n.generation,nodeId:``,stageKind:`other`},this.state?.options.locale):i===`launched`||i===`streaming`?this.pageActionRows.get(e)?.progressLabel??Zc(this.state?.options.locale):null,narrativeItems:this.pageActionRows.get(e)?.narrativeItems??[],approvalRequestId:r.approvalRequestId??null}))}syncPageActionRowFromWorkflow(e){let t=e.actionRunId,n=this.pageActionRunToRowKey.get(t)||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(!n)return;let r=this.pageActionRows.get(n);if(!r||e.phase===`failed`||r.phase===`idle`||r.phase===`completed`||r.phase===`failed`||r.phase===`awaiting_reuse`)return;let i=Lc(r.narrativeItems,e.narrativeItems),a=ol(e,this.state?.options.locale),o=a==null||a===r.progressLabel,s=i===r.narrativeItems;if(o&&s)return;let c=e.phase===`awaiting_approval`?`awaiting_approval`:r.phase===`submitting`||r.phase===`launched`||r.loading||r.phase===`streaming`?`streaming`:r.phase;this.upsertPageActionRow(U({...r,phase:c,progressLabel:a??r.progressLabel,narrativeItems:i,message:null}))}syncPageActionRowFromLifecycle(e){let t=e.actionRunId,n=this.pageActionRunToRowKey.get(t)||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(!n)return;let r=this.pageActionRows.get(n);if((e.phase===`started`||e.phase===`stream`)&&(r?.phase===`idle`||r?.phase===`completed`||r?.phase===`failed`||r?.phase===`awaiting_reuse`))return;let i=e.phase===`failed`&&Lo(e.errorCode)&&e.brainClarify!=null,a=e.phase===`started`||e.phase===`stream`?`streaming`:e.phase===`awaiting_approval`?`awaiting_approval`:e.phase===`completed`?`completed`:i?`awaiting_clarify`:e.phase===`failed`?`failed`:`idle`;if(e.phase===`stream`&&r?.phase===`streaming`&&r.progressLabel)return;let o=a===`completed`||a===`failed`?null:a===`awaiting_clarify`?tl(this.state?.options.locale):a===`awaiting_approval`?ol({phase:`awaiting_approval`,actionRunId:t,actionKey:e.actionKey||r?.actionKey||``,generation:e.generation,nodeId:``,stageKind:`other`},this.state?.options.locale):r?.progressLabel??Zc(this.state?.options.locale);this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey||r?.actionKey||`Run ${t}`,runId:t,pageActionKey:r?.pageActionKey??this.automationRunRegistry.get(t)?.pageActionKey??null,phase:a,error:i?null:e.errorMessage??(a===`failed`?`Page action failed`:null),message:a===`failed`||a===`completed`||a===`awaiting_clarify`||e.phase===`started`?null:r?.message??null,progressLabel:o,narrativeItems:r?.narrativeItems??[],approvalRequestId:r?.approvalRequestId??null,brainClarify:i?e.brainClarify??null:null})),(a===`completed`||a===`failed`)&&this.schedulePageActionRowIdleReset(n,a===`failed`?1600:900)}schedulePageActionRowIdleReset(e,t,n=[`completed`,`failed`]){let r=e.trim();if(!r)return;let i=this.pageActionRowIdleTimers.get(r);i!=null&&clearTimeout(i);let a=new Set(n),o=setTimeout(()=>{this.pageActionRowIdleTimers.delete(r);let e=this.pageActionRows.get(r);if(e&&a.has(e.phase)){if(e.phase===`launched`&&e.runId!=null){let t=this.automationRunRegistry.get(e.runId);if(t&&H(t.status)){this.upsertPageActionRow(U({...e,phase:`streaming`}));return}}this.upsertPageActionRow(U({...e,phase:`idle`,runId:e.runId,loading:!1,disabled:!1,error:e.phase===`failed`?e.error:null,message:e.phase===`failed`?e.message:null,progressLabel:null,narrativeItems:e.narrativeItems??[]})),(e.narrativeItems?.length??0)>0&&this.schedulePageActionNarrativeClear(r,12e3)}},t);this.pageActionRowIdleTimers.set(r,o)}schedulePageActionNarrativeClear(e,t){let n=e.trim();if(!n)return;let r=this.pageActionNarrativeClearTimers.get(n);r!=null&&clearTimeout(r);let i=setTimeout(()=>{this.pageActionNarrativeClearTimers.delete(n);let e=this.pageActionRows.get(n);e&&e.phase===`idle`&&(e.narrativeItems?.length??0)!==0&&this.upsertPageActionRow(U({...e,narrativeItems:[]}))},t);this.pageActionNarrativeClearTimers.set(n,i)}clearPageActionNarrativeClearTimer(e){let t=e.trim();if(!t)return;let n=this.pageActionNarrativeClearTimers.get(t);n!=null&&(clearTimeout(n),this.pageActionNarrativeClearTimers.delete(t))}clearPageActionRowIdleTimers(){for(let e of this.pageActionRowIdleTimers.values())clearTimeout(e);this.pageActionRowIdleTimers.clear();for(let e of this.pageActionNarrativeClearTimers.values())clearTimeout(e);this.pageActionNarrativeClearTimers.clear(),this.pageActionReuseDismissEpochByRowKey.clear()}trackAutomationRun(e,t){let n=this.state;if(!n)return;let r=new Date().toISOString(),i=this.pageActionFeedbackNames.get(t.actionKey.trim()),a=n.options.locale,o=e.status===`awaiting_approval`?rl(a):nl(a),s=zl(e,t.actionKey,{title:Bl(t.actionKey,i),subtitle:o}),c=t.rowKey?.trim()||null;if(H(e.status)&&(this.automationRunRegistry.set(e.runId,{runId:e.runId,actionKey:t.actionKey,pageActionKey:t.pageActionKey,rowKey:c,status:e.status,registeredAt:r,updatedAt:r,clientActionId:e.clientActionId}),c&&this.bindPageActionRunToRow(e.runId,c)),Ll(s.taskStatus,n.automationTaskStatusFilter)){let e=Ul(n.automationTaskItems,s);this.publishAutomationTaskTabCache(n,n.automationTaskStatusFilter,e,n.automationTaskHasMore)}n.automationRecentRunIds=[e.runId,...n.automationRecentRunIds.filter(t=>t!==e.runId)].slice(0,fu),this.syncAutomationActiveCount(n),this.notifyStateChange(),this.bus.emit(`automationTaskCenterChanged`,void 0)}applyPageActionRunLifecycle(e,t){let n=Rl(t.phase);if(!n)return;let r=t.actionRunId,i=new Date().toISOString(),a=this.automationRunRegistry.get(r);if(t.phase===`stream`&&a?.status===`running`){this.syncPageActionRowFromLifecycle(t);return}a?(a.status=n,a.updatedAt=i,t.actionKey&&(a.actionKey=t.actionKey),H(n)||this.automationRunRegistry.delete(r)):H(n)&&this.automationRunRegistry.set(r,{runId:r,actionKey:t.actionKey,pageActionKey:null,rowKey:this.pageActionRunToRowKey.get(r)??null,status:n,registeredAt:i,updatedAt:i,clientActionId:t.clientActionId??null}),this.syncPageActionRowFromLifecycle(t);let o=this.pageActionRunToRowKey.get(r)??this.automationRunRegistry.get(r)?.rowKey?.trim()??null;if(t.phase===`completed`){let e=a?.pageActionKey??(o?this.pageActionRows.get(o)?.pageActionKey:null)??null;this.pageActionReuseHintCache.invalidateByPageActionKey(e),this.bus.emit(`pageActionRunCompleted`,{runId:r,actionKey:t.actionKey,rowKey:o})}else t.phase===`failed`&&(Lo(t.errorCode)&&t.brainClarify?this.emitPageActionBrainClarify(e,t,o):this.bus.emit(`pageActionRunFailed`,{runId:r,actionKey:t.actionKey,rowKey:o,errorMessage:t.errorMessage??null,errorCode:t.errorCode??null}));let s=t.phase===`completed`&&typeof t.text==`string`?t.text.trim().slice(0,120)||null:void 0,c={taskStatus:n,...H(n)?{finishedAt:null}:{finishedAt:i},...s?{outputs:{preview:s,hasFillText:s.length>0}}:{}};if(e.automationTaskStatusFilter===`active`&&!H(n)){let t=Gl(e.automationTaskItems,r);this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,t,e.automationTaskHasMore)}else if(Ll(n,e.automationTaskStatusFilter)){if(e.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===r)>=0){let t=Wl(e.automationTaskItems,r,c);this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,t,e.automationTaskHasMore)}else{let i=Ul(e.automationTaskItems,{...zl({runId:r,generation:t.generation,clientActionId:t.clientActionId??null,pageActionKey:a?.pageActionKey??null,streamUrl:``,status:n},t.actionKey,{title:Bl(t.actionKey,this.pageActionFeedbackNames.get(t.actionKey.trim()))}),...c});this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,i,e.automationTaskHasMore)}}e.automationTaskSelectedDetail?.ref.kind===`page_action_run`&&e.automationTaskSelectedDetail.ref.id===r&&(e.automationTaskSelectedDetail={...e.automationTaskSelectedDetail,...c,outputs:c.outputs?{...e.automationTaskSelectedDetail.outputs,...c.outputs}:e.automationTaskSelectedDetail.outputs}),this.syncAutomationActiveCount(e),this.notifyStateChange(),!H(n)&&e.automationTaskSelectedDetail?.ref.kind===`page_action_run`&&e.automationTaskSelectedDetail.ref.id===r&&this.hydrateAutomationTaskDetail(r).catch(()=>{})}markTrackedAutomationRunFailed(e,t){let n=this.state;n&&this.applyPageActionRunLifecycle(n,{phase:`failed`,actionRunId:e,actionKey:t?.trim()||this.automationRunRegistry.get(e)?.actionKey||`Run ${e}`,generation:0,clientActionId:this.automationRunRegistry.get(e)?.clientActionId??null})}resolveApprovalPageActionRunId(e){let t=this.state;if(!t)return null;let n=t.approvalInboxItems.find(t=>t.id===e);if(n?.pageActionRunId!=null&&Number.isFinite(n.pageActionRunId))return Math.trunc(n.pageActionRunId);for(let t of this.pageActionRows.values())if(t.approvalRequestId===e&&t.runId!=null)return t.runId;return null}taskStatusToExecutionOutcome(e){switch(e){case`completed`:return`completed`;case`failed`:return`failed`;case`running`:return`running`;case`awaiting_approval`:return`awaiting_approval`;case`cancelled`:return`cancelled`;default:return`completed`}}resolveApprovalIdentity(e){let t=this.state?.approvalInboxItems.find(t=>t.id===e);return{approvalTitle:t?.title?.trim()||null,approvalSummary:t?.summary?.trim()||null}}async emitApprovalExecutionCompleted(e){let{approvalId:t,runId:n,decision:r,result:i}=e,a=e.identity??this.resolveApprovalIdentity(t);if(r.action===`cancel`){this.bus.emit(`approvalExecutionCompleted`,{approvalId:t,runId:n,outcome:`cancelled`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary});return}if(r.action===`retry`){if(!i.resumed)return;i.suspended?this.bus.emit(`approvalExecutionCompleted`,{approvalId:t,runId:n,outcome:`awaiting_approval`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary}):await this.emitApprovalRunExecutionOutcome(t,n,a);return}(r.action===`confirm`||r.action===`confirm_with_edits`)&&i.resumed&&await this.emitApprovalRunExecutionOutcome(t,n,a)}async emitApprovalRunExecutionOutcome(e,t,n={approvalTitle:null,approvalSummary:null}){let r=this.state;if(!t){this.bus.emit(`approvalExecutionCompleted`,{approvalId:e,runId:null,outcome:`completed`,title:n.approvalTitle,approvalTitle:n.approvalTitle,approvalSummary:n.approvalSummary});return}let i=await this.getAutomationTaskDetail(t).catch(()=>null);if(i&&r){let e=r.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===t);if(e>=0){let t=[...r.automationTaskItems];t[e]=i,this.publishAutomationTaskTabCache(r,r.automationTaskStatusFilter,t,r.automationTaskHasMore)}H(i.taskStatus)||this.automationRunRegistry.delete(t),this.syncAutomationActiveCount(r),this.notifyStateChange(),await this.hydratePageActionByRunId(t).catch(()=>{})}let a=i?.title?.trim()||null,o=n.approvalTitle||a,s=i?.outputs.preview?.trim()||n.approvalSummary||null,c={approvalId:e,runId:t,outcome:i?this.taskStatusToExecutionOutcome(i.taskStatus):`completed`,title:o,approvalTitle:n.approvalTitle,approvalSummary:n.approvalSummary,preview:s,...i?{taskStatus:i.taskStatus}:{}};this.bus.emit(`approvalExecutionCompleted`,c)}abortAllPageActionRunStreams(){for(let e of this.pageActionRunAborts.values())try{e.abort()}catch{}this.pageActionRunAborts.clear(),this.pageActionRunStreamPromises.clear()}async fetchAutomationTasks(e={}){await this.ensureLoggedIn(`refreshAutomationTasks`);let t=this.requireState(`refreshAutomationTasks`),n=e.status??t.automationTaskStatusFilter,r=e.limit??du,i=Zl(t.automationTaskTabCaches,n),a=e.offset??(e.append?i.items.length:0),o=e.append===!0;if(o&&t.automationTaskLoading)return{items:i.items,total:i.total,hasMore:i.hasMore};let s=o?this.automationTaskListPublishSeq:++this.automationTaskListPublishSeq;o?t.automationTaskLoadingMore=!0:t.automationTaskLoading=!0,this.notifyStateChange();try{let c=await t.automation.listTasks({status:n,triggerSource:`page_action`,actionKey:e.actionKey,limit:r,offset:a,signal:e.signal});if(s!==this.automationTaskListPublishSeq)return c;t.automationTaskStatusFilter=n;let l=o?[...i.items,...c.items]:n===`active`&&a===0?Kl(c.items,this.automationRunRegistry):c.items,u=Xo(l.length,c.items.length,c.total,r);return this.publishAutomationTaskTabCache(t,n,l,u,c.total),n===`active`&&a===0&&!o&&(ql(this.automationRunRegistry,c.items,{fallbackActionKey:e.actionKey}),this.automationTasksLastSyncedAt=Date.now()),this.syncAutomationActiveCount(t),c}finally{o?t.automationTaskLoadingMore=!1:t.automationTaskLoading=!1,this.notifyStateChange()}}getMessageSendContext(e,t,n){let r={},i=e.selectedAgentId?.trim(),a=e.selectedSkillId?.trim(),o=i&&e.autoAgent?.id===i&&e.autoAgent.source!==`requested`;i&&!o&&(r.agentId=i),a&&(r.skillId=a);let s=t??this.buildOutboundPageContext(e);return s?.page&&(r.page=s.page),s?.routePath&&(r.routePath=s.routePath),s?.routeParams&&(r.routeParams=s.routeParams),s?.flowId!=null&&(r.flowId=s.flowId),s?.programName&&(r.programName=s.programName),s?.entity&&(r.entity=s.entity),s?.metadata&&(r.metadata=s.metadata),n?.entityType?.trim()&&n?.selectedId?.trim()&&(r.entityCommit={entityType:n.entityType.trim(),selectedId:n.selectedId.trim()}),Object.keys(r).length>0?r:void 0}buildOutboundPageContext(e){return this.buildPreparePageContext(e)}listRegisteredContextMentions(e){return[...e.contextMentionRegistry.values()].map(Fi)}listPendingRegisteredContextMentions(){return[...this.pendingContextMentionRegistry.values()].map(Fi)}async fetchSessionMessagesPage(e,t,n,r){let i=jt(await e.chat.getSession(t,n,e.sessionMessagesPageSize,r),t,n,e.sessionMessagesPageSize);if(!i)throw new m(`TRANSPORT_FAILED`,`Invalid session detail response`,{details:{sessionId:t,page:n}});return i}async startNewChat(){await this.ensureLoggedIn(`startNewChat`);let e=this.requireState(`startNewChat`);this.sessionEpoch+=1,e.activeSessionId&&(this.abortSessionStream(e,e.activeSessionId),this.writeSessionMessagesCache(e,e.activeSessionId)),e.activeSessionId=null,e.activeSessionMessagesPage=0,e.activeSessionMessagesHasMore=!1,e.session.reset(),e.messages=[],e.writeConfirmation=null,e.autoAgent=null,e.selectedAgentId=e.options.defaultAgentId?.trim()??null,e.selectedSkillId=null,e.options.skills?.length?this.applyStaticSkills(e):(e.skills=[],e.skillsLoading=!1),this.notifyStateChange()}async cancelGeneration(){let e=this.state;if(!e?.activeSessionId)return;await this.ensureLoggedIn(`cancelGeneration`);let t=e.activeSessionId,n=this.resolveActiveRunIdForCancel(e,t);try{let r=await e.chat.cancelRun(t,n);if(!r.superseded)return;this.applySessionRunGeneration(e,t,r.generation),this.finalizeStreamingTarget(e,t,{cancelled:!0,systemHint:`已停止生成。`})}catch(e){let t=e instanceof m?e:new m(`MESSAGE_FAILED`,`Failed to cancel generation`,{cause:e});throw this.reportError(t),t}}isViewingSession(e,t){return e.activeSessionId!=null&&W(e.activeSessionId)===W(t)}getSessionRunState(e,t){let n=W(t),r=e.sessionRuns.get(n);return r||(r={sessionGeneration:0,activeRunId:null,activeTurnId:null,pendingJobCount:0,redisBacked:!1},e.sessionRuns.set(n,r)),r}applySessionRunGeneration(e,t,n,r={}){let i=this.getSessionRunState(e,t),a=i.sessionGeneration;i.sessionGeneration=n,n>a&&this.discardStaleWriteConfirmations(e,t,n,a),r.clearActiveRun!==!1&&(i.activeRunId=null,i.activeTurnId=null)}applySessionRunSnapshot(e,t,n){let r=this.getSessionRunState(e,t),i=r.sessionGeneration;r.sessionGeneration=n.generation,n.generation>i&&this.discardStaleWriteConfirmations(e,t,n.generation,i),r.activeRunId=n.activeRunId,r.activeTurnId=n.activeTurnId,r.pendingJobCount=n.pendingJobCount,r.redisBacked=n.redisBacked,this.syncWriteGateFromRunState(e,t,n.generation,n.pendingWriteGate)}syncWriteGateFromRunState(e,t,n,r){let i=W(t),a=e.writeConfirmationsBySession.get(i);if(a?.submitting)return;if(!r){a?.awaiting&&this.persistWriteConfirmation(e,t,null);return}let o=r.writeDraft?.presentation.summaryText?.trim()||`即将执行写操作,请确认。`;this.persistWriteConfirmation(e,t,{awaiting:!0,submitting:!1,runId:r.runId,turnId:r.turnId,message:o,generation:n,draftRetryCount:r.draftRetryCount,draftRetryMax:r.draftRetryMax,canRetry:r.canRetry,writeDraft:r.writeDraft,writeDrafts:r.writeDrafts,editPolicy:r.editPolicy,editPolicies:r.editPolicies})}async syncSessionRunState(e,t,n){try{let r=vt(await e.chat.getRunState(t,n));if(!r)return;this.applySessionRunSnapshot(e,t,r),this.notifyStateChange()}catch(t){if(n?.aborted)return;e.options.debug&&console.warn(`[agent-chat] syncSessionRunState failed:`,t)}}getActiveSessionRunSnapshot(e){let t=e.activeSessionId;if(!t)return null;let n=e.sessionRuns.get(W(t));return n?{generation:n.sessionGeneration,activeRunId:n.activeRunId,pendingJobCount:n.pendingJobCount,redisBacked:n.redisBacked}:null}noteActiveRunId(e,t,n){this.getSessionRunState(e,t).activeRunId=n}isStaleSseGeneration(e,t,n){return D(this.getSessionRunState(e,t).sessionGeneration,n)}resolveActiveRunIdForCancel(e,t){let n=this.getSessionRunState(e,t);if(n.activeRunId!=null)return n.activeRunId;let r=W(t),i=e.writeConfirmationsBySession.get(r);if(i?.runId!=null)return i.runId;let a=this.getSessionMessagesList(e,t);for(let e=a.length-1;e>=0;--e){let t=a[e];if(t?.role===`agent`&&t.status===`pending`){let e=t.stream?.runId;if(e!=null)return e}}}shouldFilterAgentRunSse(e){switch(e.type){case`think`:case`result`:case`message-blocks`:case`complete`:case`error`:case`host-action`:case`write-confirmation-required`:case`write-confirmation-cancelled`:return!0;default:return!1}}applySseRunGate(e,t,n){if(!this.shouldFilterAgentRunSse(n))return`proceed`;let r=`generation`in n?n.generation:void 0,i=`runId`in n?n.runId:void 0;if(n.type===`error`&&n.code===`RUN_CANCELLED`){if(!this.isStaleSseGeneration(e,t,r)){let r=this.resolveStreamTargetMessageId(e,t);this.finalizeStreamingTarget(e,t,{cancelled:!0,systemHint:r?n.message:void 0}),this.hostToolStreamManagers.get(W(t))?.reset()}return`skip`}return this.isStaleSseGeneration(e,t,r)?`skip`:(i!=null&&this.noteActiveRunId(e,t,i),`proceed`)}finalizeStreamingTarget(e,t,n={}){let r=this.resolveStreamTargetMessageId(e,t);if(!r){n.systemHint&&this.appendSystemMessageInSession(e,t,n.systemHint),this.getSessionRunState(e,t).activeRunId=null;return}let i=this.getSessionMessagesList(e,t).find(e=>e.id===r);if(!i||i.role!==`agent`)return;let a=i.stream;(a?.resultText||i.content.text||``).trim()?this.replaceMessageInSession(e,t,gu(i,{...a??hu(),phase:`complete`},{status:`sent`}),r):this.removeAgentMessageInSession(e,t,r),this.setStreamTargetMessageId(e,t,null),this.getSessionRunState(e,t).activeRunId=null,n.systemHint&&this.appendSystemMessageInSession(e,t,n.systemHint),this.notifyStateChange()}getStreamHandle(e,t){return e.sessionStreams.get(W(t))}setStreamTargetMessageId(e,t,n){let r=W(t),i=e.sessionStreams.get(r);if(i){i.targetMessageId=n;return}n?this.pendingStreamTargets.set(r,n):this.pendingStreamTargets.delete(r)}abortSessionStream(e,t,n={}){let r=W(t);n.suppressReconnect!==!1&&(this.sessionStreamSuppressReconnect.add(r),this.cancelSessionStreamReconnect(r));let i=e.sessionStreams.get(r);if(i){try{i.abort.abort()}catch{}e.sessionStreams.delete(r)}}abortAllSessionStreams(e){for(let t of[...e.sessionStreams.keys()])this.abortSessionStream(e,t,{suppressReconnect:!0})}listStreamingSessionIds(e){return[...e.sessionStreams.keys()]}collectSessionsWithPendingReplies(e){let t=new Set;e.activeSessionId&&this.sessionHasPendingAgent(e.messages)&&t.add(W(e.activeSessionId));for(let[n,r]of e.sessionMessagesCache)this.sessionHasPendingAgent(r.messages)&&t.add(W(n));return[...t]}sessionHasPendingAgent(e){return e.some(e=>e.role===`agent`&&e.status===`pending`&&e.stream!=null)}sessionNeedsLiveStream(e,t){let n=W(t);return this.sessionStreamSuppressReconnect.has(n)?!1:this.isViewingSession(e,t)?!0:this.sessionHasPendingAgent(this.getSessionMessagesList(e,t))}reconcilePendingRepliesAfterSessionSwitch(e,t,n){this.sessionHasPendingAgent(e.messages)&&e.sessionRuns.get(n)?.activeRunId==null&&this.settlePendingAgentReplies(e,t)}cancelSessionStreamReconnect(e){let t=W(e),n=this.sessionStreamReconnectTimers.get(t);n!=null&&(clearTimeout(n),this.sessionStreamReconnectTimers.delete(t))}cancelAllSessionStreamReconnects(){for(let e of this.sessionStreamReconnectTimers.values())clearTimeout(e);this.sessionStreamReconnectTimers.clear(),this.sessionStreamReconnectAttempts.clear(),this.sessionStreamSuppressReconnect.clear()}scheduleSessionStreamReconnect(e,t){let n=W(t);if(!this.sessionNeedsLiveStream(e,t)){this.sessionStreamReconnectAttempts.delete(n);return}if(e.sessionStreams.has(n)||this.sessionStreamConnects.has(n)||this.sessionStreamReconnectTimers.has(n))return;let r=(this.sessionStreamReconnectAttempts.get(n)??0)+1;if(r>5){this.sessionStreamReconnectAttempts.delete(n),e.options.debug&&typeof console<`u`&&console.warn(`[agent-chat] Session stream reconnect gave up for ${t}`);return}this.sessionStreamReconnectAttempts.set(n,r);let i=Math.min(500*2**(r-1),8e3),a=setTimeout(()=>{if(this.sessionStreamReconnectTimers.delete(n),!(!this.state||this.state!==e)){if(!this.sessionNeedsLiveStream(e,t)){this.sessionStreamReconnectAttempts.delete(n);return}this.ensureSessionStream(t,{clearReconnectSuppress:!1}).catch(()=>{})}},i);this.sessionStreamReconnectTimers.set(n,a)}getSessionMessagesList(e,t){if(this.isViewingSession(e,t))return e.messages;let n=W(t);return e.sessionMessagesCache.get(n)?.messages??e.sessionMessagesCache.get(t)?.messages??[]}getSessionCacheMeta(e,t){if(this.isViewingSession(e,t))return{page:e.activeSessionMessagesPage,hasMore:e.activeSessionMessagesHasMore};let n=W(t),r=e.sessionMessagesCache.get(n)??e.sessionMessagesCache.get(t);return{page:r?.page??1,hasMore:r?.hasMore??!1}}commitSessionMessages(e,t,n,r){let i=W(t),a=this.getSessionCacheMeta(e,t),o=r?.page??a.page,s=r?.hasMore??a.hasMore;e.sessionMessagesCache.set(i,{messages:n,page:o,hasMore:s}),this.isViewingSession(e,t)&&(e.messages=n,e.activeSessionMessagesPage=o,e.activeSessionMessagesHasMore=s,e.session.setSession(t,n)),this.notifyStateChange()}patchMessageInSession(e,t,n,r){let i=this.getSessionMessagesList(e,t),a=i.find(e=>e.id===n);if(!a)return null;let o=r(a),s=i.map(e=>e.id===n?o:e);return this.commitSessionMessages(e,t,s),this.bus.emit(`message`,{message:o,source:o.role===`user`?`user`:`agent`}),o}replaceMessageInSession(e,t,n,r){let i=this.getSessionMessagesList(e,t).map(e=>e.id===r?n:e);this.syncWriteConfirmationMessageId(e,r,n.id),this.commitSessionMessages(e,t,i),this.bus.emit(`message`,{message:n,source:`agent`})}removeAgentMessageInSession(e,t,n){let r=this.getSessionMessagesList(e,t),i=r.filter(e=>e.id!==n);i.length!==r.length&&this.commitSessionMessages(e,t,i)}appendAgentPlaceholderInSession(e,t){let n={id:cu(`msg`),role:`agent`,content:{type:`text`,text:``},createdAt:Date.now(),status:`pending`},r=[...this.getSessionMessagesList(e,t),n];return this.commitSessionMessages(e,t,r),this.bus.emit(`message`,{message:n,source:`agent`}),n}appendSystemMessageInSession(e,t,n){let r={id:cu(`msg`),role:`system`,content:{type:`text`,text:n},createdAt:Date.now(),status:`sent`},i=[...this.getSessionMessagesList(e,t),r];this.commitSessionMessages(e,t,i),this.bus.emit(`message`,{message:r,source:`agent`})}async ensureSessionStream(e,t={}){let n=this.requireState(`ensureSessionStream`),r=W(e);if(t.clearReconnectSuppress!==!1&&(this.sessionStreamSuppressReconnect.delete(r),this.cancelSessionStreamReconnect(r)),n.sessionStreams.has(r))return;let i=this.sessionStreamConnects.get(r);if(i){await i;return}let a=new AbortController,o=(async()=>{await this.syncSessionRunState(n,e,a.signal),await this.connectSessionStream(e,a)})().finally(()=>{this.sessionStreamConnects.delete(r)});this.sessionStreamConnects.set(r,o),await o,this.sessionStreamReconnectAttempts.delete(r)}writeSessionMessagesCache(e,t,n=e.messages,r=e.activeSessionMessagesPage,i=e.activeSessionMessagesHasMore){e.sessionMessagesCache.set(W(t),{messages:n,page:r,hasMore:i})}cacheActiveSessionMessages(e){e.activeSessionId&&this.writeSessionMessagesCache(e,e.activeSessionId)}settlePendingAgentReplies(e,t){let n=t??e.activeSessionId;if(!n)return;let r=this.getSessionMessagesList(e,n),i=[],a=!1;for(let e of r){if(e.role!==`agent`||e.status!==`pending`){i.push(e);continue}a=!0;let t=e.stream??hu();(t.resultText||e.content.text).trim()&&i.push(gu(e,t,{status:`sent`}))}a&&this.commitSessionMessages(e,n,i)}isExistingSentAssistantText(e,t,n,r){let i=n.trim();return i?this.getSessionMessagesList(e,t).some(e=>e.role===`agent`&&e.id!==r&&e.status===`sent`&&e.content.text.trim()===i):!1}resolveStreamTargetMessageId(e,t,n){if(n)return n;let r=W(t),i=e.sessionStreams.get(r)?.targetMessageId??this.pendingStreamTargets.get(r)??null,a=this.getSessionMessagesList(e,t);if(i&&a.some(e=>e.id===i))return i;for(let n=a.length-1;n>=0;--n){let r=a[n];if(r?.role===`agent`&&(r.status??`pending`)===`pending`)return this.setStreamTargetMessageId(e,t,r.id),r.id}return null}appendAgentPlaceholder(e){let t={id:cu(`msg`),role:`agent`,content:{type:`text`,text:``},createdAt:Date.now(),status:`pending`};return e.messages=[...e.messages,t],this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:t,source:`agent`}),t}appendOptimisticUserMessage(e,t,n,r){let i={id:n??cu(`msg`),role:`user`,content:{type:`text`,text:t},createdAt:Date.now(),status:`pending`,contextMentions:r&&r.length>0?[...r]:void 0};return e.messages=[...e.messages,i],this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:i,source:`user`}),i}async createChatSession(e,t,n,r,i){let a=await e.chat.createSession(t,n,this.getMessageSendContext(e,r,i)),o=Mt(a);if(!o?.sessionId)throw new m(`TRANSPORT_FAILED`,`POST /chat did not return sessionId`,{details:{body:a}});e.activeSessionId=o.sessionId,this.applyAutoAgentBinding(e,o.agent);let s=gt(a);return s!=null&&this.applySessionRunGeneration(e,o.sessionId,s),e.activeSessionMessagesPage=1,e.activeSessionMessagesHasMore=!1,e.session.setSession(o.sessionId,e.messages),this.writeSessionMessagesCache(e,o.sessionId),this.bus.emit(`session`,e.session.getSession()),this.schedulePrepareSession(),o.sessionId}applyUserMessageSent(e,t){let n={...t,status:`sent`};return e.messages=e.messages.map(e=>e.id===t.id?n:e),this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:n,source:`user`}),n}async postUserMessageAndApply(e,t,n,r,i,a,o){let s=Nt(await e.chat.postMessage(t,n,r,this.getMessageSendContext(e,a,o))),c=s?{...this.toAgentMessage(s),status:`sent`,contextMentions:i.contextMentions}:{...i,status:`sent`};return s?.runGeneration!=null&&this.applySessionRunGeneration(e,t,s.runGeneration),e.messages=e.messages.map(e=>e.id===i.id?c:e),this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:c,source:c.role}),c}syncWriteConfirmationMessageId(e,t,n){if(t!==n){for(let[r,i]of e.writeConfirmationsBySession){if(i.messageId!==t)continue;let a={...i,messageId:n};e.writeConfirmationsBySession.set(r,a),e.activeSessionId&&W(e.activeSessionId)===r&&(e.writeConfirmation=a);return}e.writeConfirmation?.messageId===t&&(e.writeConfirmation={...e.writeConfirmation,messageId:n})}}async postWriteGateAction(e,t,n,r){let i=Nt(await e.chat.postWriteGateDecision(t,n,r));i?.runGeneration!=null&&this.applySessionRunGeneration(e,t,i.runGeneration,{clearActiveRun:!1})}connectSessionStream(e,t){let n=this.requireState(`connectSessionStream`),r=W(e);return n.sessionStreams.set(r,{abort:t,targetMessageId:this.pendingStreamTargets.get(r)??null}),this.pendingStreamTargets.delete(r),n.abortControllers.add(t),new Promise((i,a)=>{let o=!1,s=()=>{o||(o=!0,i())},c=e=>{o||(o=!0,a(e))};this.consumeSessionStream(e,t,s).catch(e=>{o||c(e)}).finally(()=>{n.abortControllers.delete(t),n.sessionStreams.delete(r),this.scheduleSessionStreamReconnect(n,e)})})}async consumeSessionStream(e,t,n){let r=this.requireState(`consumeSessionStream`),i=t=>{if(t)return this.getSessionMessagesList(r,e).find(e=>e.id===t)},a=(t,n)=>{this.replaceMessageInSession(r,e,t,n)};try{for await(let o of r.chat.streamSession(e,{signal:t.signal,onConnected:n})){r.options.debug&&console.debug(`[agent-chat] SSE`,o.event,o.data.slice(0,120));let t=ir(o.event,o.data);if(this.applySseRunGate(r,e,t)===`skip`)continue;let n=t.type===`think`||t.type===`result`||t.type===`message-blocks`||t.type===`complete`?this.resolveStreamTargetMessageId(r,e,t.messageId):null;switch(n=this.maybeRebindStreamMessageId(r,e,n,t.type===`think`||t.type===`result`||t.type===`message-blocks`||t.type===`complete`?t.messageId:void 0),t.type){case`think`:if(!n)break;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??hu()},r=t.mode===`append`?`${n.thinkText}${t.text}`:t.text,i=!!n.resultText?.trim()||!!(n.resultBlocks??e.blocks??[]).length;return{...e,status:`pending`,content:i?e.content:{type:`text`,text:``},stream:{...n,thinkText:r,runId:t.runId??n.runId,phase:i?`result`:`thinking`}}});break;case`result`:if(!n||t.mode===`replace`&&this.isExistingSentAssistantText(r,e,t.text,n))break;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??hu()},r=t.mode===`append`?`${n.resultText}${t.text}`:t.text;return{...e,status:`pending`,content:{type:`text`,text:r},stream:{...n,resultText:r,runId:t.runId??n.runId,phase:`result`}}});break;case`message-blocks`:{let i=r.writeConfirmationsBySession.get(W(e));if(!n&&t.runId!=null&&i?.submitting){let t=this.appendAgentPlaceholderInSession(r,e);this.setStreamTargetMessageId(r,e,t.id),n=t.id}if(!n)break;let a=t.seq;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??hu()},r=new Set(n.seenSeq??[]);if(a!=null&&r.has(a))return e;a!=null&&r.add(a);let i=n.resultBlocks??e.blocks??[],o=i;t.action===`stream`?o=t.streamMode===`full`?xe(i,t.blocks??[]):Se(i,t.blocks??[]):t.action===`patch`&&(o=De(i,(t.patches??[]).map(e=>({replaceId:e.replaceId,block:e.block})))),o=S(o);let s=me(o);return{...e,status:`pending`,content:{type:`text`,text:s},blocks:o,stream:{...n,runId:t.runId??n.runId,resultBlocks:o,resultText:s,phase:`result`,seenSeq:[...r]}}});break}case`write-confirmation-required`:{let n=this.getSessionMessagesList(r,e),i=this.getStreamHandle(r,e)?.targetMessageId??[...n].reverse().find(e=>e.role===`agent`)?.id;this.persistWriteConfirmation(r,e,{awaiting:!0,submitting:!1,runId:t.runId,turnId:t.turnId,message:t.message,messageId:i,generation:t.generation,draftRetryCount:t.draftRetryCount,draftRetryMax:t.draftRetryMax,canRetry:t.canRetry,writeDraft:t.writeDraft??null,writeDrafts:t.writeDrafts??null,editPolicy:t.editPolicy??null,editPolicies:t.editPolicies??null}),this.notifyStateChange();break}case`write-confirmation-cancelled`:this.persistWriteConfirmation(r,e,null),this.appendSystemMessageInSession(r,e,t.message);break;case`host-action`:t.ssePayload?this.ingestHostActionSse(r,e,t.ssePayload,void 0,`chat`):t.action&&(this.emitHostAction(r,t.action),this.emitPageAgentCompleteFromAction(t.action,`chat`));break;case`complete`:{if(t.status===`cancelled`){n?this.finalizeStreamingTarget(r,e):this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset();break}if(t.status===`failed`){if(n){let e=i(n);if(e){let r=e.stream??hu();a({...e,status:`failed`,stream:{...r,phase:`error`,errorMessage:t.reason??`Generation failed`}},n)}}this.setStreamTargetMessageId(r,e,null),this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset();break}if(!n)break;let o=i(n);if(!o)break;let s=W(e),c=r.writeConfirmationsBySession.get(s)?.awaiting,l={...o.stream??hu(),phase:`complete`},u;if(t.serverMessage){let e=this.toAgentMessage(t.serverMessage);u=gu({...o,content:e.content,blocks:e.blocks??o.blocks},{...l,resultText:e.content.text,resultBlocks:e.blocks??l.resultBlocks},{status:`sent`})}else u=gu(o,l,{status:`sent`});let d=this.resolveCompleteServerMessageId(t);d&&d!==n&&!this.getSessionMessagesList(r,e).some(e=>e.id===d)?a({...u,id:d},n):a(u,n),this.setStreamTargetMessageId(r,e,null),this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset(),c||this.persistWriteConfirmation(r,e,null),this.alignPersistedMessageIds(r,e,{preferLocalId:n,preferServerId:d}).catch(()=>{});let f=d&&d!==n?d:n;t.runId!=null&&this.applySkillIntentAlignment(r,{sessionId:e,runId:t.runId,assistantMessageId:f}),this.maybeNotifyBackgroundReply(r,e);break}case`error`:if(t.code===`WRITE_CONFIRMATION_EXPIRED`)this.persistWriteConfirmation(r,e,null),this.notifyStateChange();else if(t.code===`EDITED_WRITE_ARGS_INVALID`||t.code===`EDITED_LOCKED_FIELD`||t.code===`EDITED_FIELD_NOT_ALLOWED`||t.code===`MULTI_WRITE_EDIT_NOT_SUPPORTED`||t.code===`DRAFT_RETRY_LIMIT_EXCEEDED`){let n=W(e),i=r.writeConfirmationsBySession.get(n);if(i){let n={...i,awaiting:!0,submitting:!1,gateError:t.message,gateErrorCode:t.code,canRetry:t.code!==`DRAFT_RETRY_LIMIT_EXCEEDED`&&i.canRetry};this.persistWriteConfirmation(r,e,n),this.notifyStateChange();break}}throw new m(`MESSAGE_FAILED`,t.message,{details:t.code?{code:t.code}:void 0})}}let o=i(this.resolveStreamTargetMessageId(r,e));if(o&&(o.status??`pending`)===`pending`){let t=o.stream;(t?.resultText||o.content.text||``).trim()?a(gu(o,{...t??hu(),phase:`complete`},{status:`sent`}),o.id):this.removeAgentMessageInSession(r,e,o.id),this.maybeNotifyBackgroundReply(r,e)}this.alignPersistedMessageIds(r,e).catch(()=>{})}catch(t){if(t?.name===`AbortError`){let t=i(this.resolveStreamTargetMessageId(r,e));if(!t)return;let n=t.stream??hu();(n.resultText||t.content.text).trim()?a(gu(t,{...n,phase:`complete`},{status:`sent`}),t.id):this.removeAgentMessageInSession(r,e,t.id);return}let n=i(this.resolveStreamTargetMessageId(r,e));if(n){let e=n.stream??hu();a({...n,status:`failed`,stream:{...e,phase:`error`,errorMessage:t instanceof Error?t.message:`Stream failed`}},n.id)}let o=t instanceof m?t:new m(`MESSAGE_FAILED`,`Failed to receive assistant reply`,{cause:t});this.isViewingSession(r,e)?this.reportError(o):r.options.debug&&typeof console<`u`&&console.warn(`[agent-chat] Background stream error for session ${e} (suppressed from UI):`,o)}}toAgentMessage(e){let t=e.role===`assistant`?`agent`:e.role===`user`?`user`:`system`,n=e.createdAt,r=typeof n==`number`?n:new Date(n).getTime(),i=pe(e.content),a=i?me(i):e.content??``;return{id:String(e.id),role:t,content:{type:`text`,text:a},blocks:i,createdAt:Number.isFinite(r)?r:Date.now(),status:`sent`}}resolveCompleteServerMessageId(e){if(e.serverMessage?.id!=null)return String(e.serverMessage.id);if(e.messageId&&ac(e.messageId))return e.messageId}async alignPersistedMessageIds(e,t,n={}){let r=n.preferLocalId?.trim(),i=n.preferServerId&&ac(n.preferServerId)?n.preferServerId:void 0;if(r&&i){let n=this.getSessionMessagesList(e,t),a=n.find(e=>e.id===r);if(a&&!ac(a.id)&&!n.some(e=>e.id===i)){let a=n.map(e=>e.id===r?{...e,id:i}:e);this.syncWriteConfirmationMessageId(e,r,i);let o=this.getStreamHandle(e,t);o?.targetMessageId===r&&(o.targetMessageId=i),this.commitSessionMessages(e,t,a),this.syncMessageFeedbacks(e,t).catch(()=>{});return}}let a=this.getSessionMessagesList(e,t),o=a.filter(e=>e.role===`agent`&&e.status===`sent`&&!e.stream&&!ac(e.id));if(o.length===0)return;let s=(await this.fetchSessionMessagesPage(e,t,1)).messages.map(e=>this.toAgentMessage(e)).filter(e=>e.role===`agent`),c=new Set(a.filter(e=>e.role===`agent`&&ac(e.id)).map(e=>e.id)),l=s.filter(e=>!c.has(e.id));if(l.length===0)return;let u=Math.max(0,l.length-o.length),d=!1,f=a.map(t=>{let n=o.findIndex(e=>e.id===t.id);if(n<0)return t;let r=l[u+n];return!r||!ac(r.id)?t:(d=!0,this.syncWriteConfirmationMessageId(e,t.id,r.id),{...t,id:r.id,createdAt:r.createdAt})});d&&(this.commitSessionMessages(e,t,f),this.syncMessageFeedbacks(e,t).catch(()=>{}))}maybeRebindStreamMessageId(e,t,n,r){if(!n||!r||!ac(r)||n===r||ac(n))return n;let i=this.getSessionMessagesList(e,t);if(i.some(e=>e.id===r))return n;if(!i.find(e=>e.id===n))return r;let a=i.map(e=>e.id===n?{...e,id:r}:e),o=this.getStreamHandle(e,t);return o?.targetMessageId===n&&(o.targetMessageId=r),this.commitSessionMessages(e,t,a),r}buildOptimisticFeedback(e,t){let n=new Date().toISOString();return t.rating===`up`?{messageId:e,rating:`up`,reasonTags:[],comment:null,createdAt:n,updatedAt:n}:{messageId:e,rating:`down`,reasonTags:t.reasonTags??[],comment:t.comment?.trim()||null,createdAt:n,updatedAt:n}}patchMessageFeedback(e,t,n){let r=e.messages.map(e=>e.id===t?{...e,feedback:n}:e);r.every((t,n)=>t===e.messages[n])||(e.messages=r,this.cacheActiveSessionMessages(e),this.notifyStateChange())}collectFeedbackMessageIds(e){let t=[];for(let n of e){if(n.role!==`agent`||n.status!==`sent`||n.stream)continue;let e=oc(n.id);e!==null&&t.push(e)}return t}async syncMessageFeedbacks(e,t){let n=this.getSessionMessagesList(e,t),r=this.collectFeedbackMessageIds(n);if(r.length===0)return;let i=await e.feedback.batchFeedbacks(t,r),a=new Map(i.items.map(e=>[String(e.messageId),e])),o=!1,s=n.map(e=>{if(e.role!==`agent`||!ac(e.id))return e;let t=a.get(e.id)??null,n=e.feedback??null;return n===null&&t===null||n&&t&&n.rating===t.rating&&n.updatedAt===t.updatedAt?e:(o=!0,{...e,feedback:t})});o&&this.commitSessionMessages(e,t,s)}};function bu(e){return e==null?{}:typeof e==`object`&&`aborted`in e&&typeof e.addEventListener==`function`?{signal:e}:e}function xu(e){if(e)return{id:String(e.id),email:e.email,name:e.username}}function Su(e){return e instanceof m?{code:e.code,message:e.message,cause:e.cause}:{code:`TRANSPORT_FAILED`,message:e instanceof Error?e.message:`Unknown error`,cause:e}}function Cu(e){if(!(e instanceof m))return;let t=e.details;if(t){if(typeof t.serverCode==`string`)return t.serverCode;if(typeof t.code==`string`)return t.code}}function wu(){return new yu}function Tu(){if(typeof window>`u`)return null;let e=window.OmnixExtension;return e&&typeof e.ping==`function`?e:null}function Eu(){return Tu()!=null}function Du(){if(!(typeof window>`u`))try{window.dispatchEvent(new CustomEvent(mn))}catch{}}function Ou(e=8e3){return Eu()?Promise.resolve(!0):typeof window>`u`?Promise.resolve(!1):(Du(),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,window.removeEventListener(pn,i),clearInterval(a),clearTimeout(o),t(e))},i=()=>r(Eu());window.addEventListener(pn,i);let a=window.setInterval(()=>{Du(),Eu()&&r(!0)},500),o=window.setTimeout(()=>r(Eu()),e)}))}async function ku(e=3e3){let t=Tu()??(await Ou(e)?Tu():null);if(!t)throw Error(`未检测到 Omnix 浏览器插件。请安装 omnix-token-sync 并刷新页面。`);return t}async function Au(e,t){return t?.requireAuth!==!1&&_n(),e(await ku(t?.waitMs))}async function ju(e){return Au(e=>e.ping(),{...e,requireAuth:!1})}async function Mu(e){return Au(e=>e.getStatus(),{...e,requireAuth:!1})}async function Nu(e){return Au(e=>e.syncPmsIntegration(),e)}async function Pu(e,t){return Au(t=>t.gofo.track(e),{...t,requireAuth:!1})}async function Fu(e,t){return Au(t=>t.gofo.start(e),{...t,requireAuth:!1})}async function Iu(e,t){return Au(t=>t.gofo.getJob(e),{...t,requireAuth:!1})}async function Lu(e,t,n){return Au(n=>n.gofo.waitForJob(e,t),{...n,requireAuth:!1})}function Ru(e){return e===`submitting`||e===`launched`||e===`streaming`||e===`awaiting_approval`||e===`awaiting_clarify`}function zu(e){let t=e.narrativeItems??[],n=Rc(t),r=Ru(e.phase);return{phase:e.phase,loading:e.loading,awaitingApproval:e.awaitingApproval,awaitingClarify:e.awaitingClarify,progressLabel:e.progressLabel,narrativeItems:t,hasProcess:n,interestingCount:zc(t),isLive:r,headline:Kc(t),showProcessAffordance:n&&r}}function Bu(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Vu(e){if(Array.isArray(e))return e}function Hu(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Uu(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
27
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wu(e,t){return Vu(e)||Hu(e,t)||Gu(e,t)||Uu()}function Gu(e,t){if(e){if(typeof e==`string`)return Bu(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bu(e,t):void 0}}var Ku=Object.entries,qu=Object.setPrototypeOf,Ju=Object.isFrozen,Yu=Object.getPrototypeOf,Xu=Object.getOwnPropertyDescriptor,G=Object.freeze,K=Object.seal,Zu=Object.create,Qu=typeof Reflect<`u`&&Reflect,$u=Qu.apply,ed=Qu.construct;G||(G=function(e){return e}),K||(K=function(e){return e}),$u||($u=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)}),ed||(ed=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)});var td=q(Array.prototype.forEach),nd=q(Array.prototype.lastIndexOf),rd=q(Array.prototype.pop),id=q(Array.prototype.push),ad=q(Array.prototype.splice),od=Array.isArray,sd=q(String.prototype.toLowerCase),cd=q(String.prototype.toString),ld=q(String.prototype.match),ud=q(String.prototype.replace),dd=q(String.prototype.indexOf),fd=q(String.prototype.trim),pd=q(Number.prototype.toString),md=q(Boolean.prototype.toString),hd=typeof BigInt>`u`?null:q(BigInt.prototype.toString),gd=typeof Symbol>`u`?null:q(Symbol.prototype.toString),_d=q(Object.prototype.hasOwnProperty),vd=q(Object.prototype.toString),yd=q(RegExp.prototype.test),bd=xd(TypeError);function q(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return $u(e,t,r)}}function xd(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return ed(e,n)}}function J(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:sd;if(qu&&qu(e,null),!od(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Ju(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Sd(e){for(let t=0;t<e.length;t++)_d(e,t)||(e[t]=null);return e}function Cd(e){let t=Zu(null);for(let r of Ku(e)){var n=Wu(r,2);let i=n[0],a=n[1];_d(e,i)&&(t[i]=od(a)?Sd(a):a&&typeof a==`object`&&a.constructor===Object?Cd(a):a)}return t}function wd(e){switch(typeof e){case`string`:return e;case`number`:return pd(e);case`boolean`:return md(e);case`bigint`:return hd?hd(e):`0`;case`symbol`:return gd?gd(e):`Symbol()`;case`undefined`:return vd(e);case`function`:case`object`:{if(e===null)return vd(e);let t=e,n=Td(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:vd(e)}return vd(e)}default:return vd(e)}}function Td(e,t){for(;e!==null;){let n=Xu(e,t);if(n){if(n.get)return q(n.get);if(typeof n.value==`function`)return q(n.value)}e=Yu(e)}function n(){return null}return n}function Ed(e){try{return yd(e,``),!0}catch{return!1}}var Dd=G(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Od=G(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),kd=G([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Ad=G([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),jd=G(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Md=G([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Nd=G([`#text`]),Pd=G(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Fd=G(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Id=G(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Ld=G([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Rd=K(/{{[\w\W]*|^[\w\W]*}}/g),zd=K(/<%[\w\W]*|^[\w\W]*%>/g),Bd=K(/\${[\w\W]*/g),Vd=K(/^data-[\-\w.\u00B7-\uFFFF]+$/),Hd=K(/^aria-[\-\w]+$/),Ud=K(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Wd=K(/^(?:\w+script|data):/i),Gd=K(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Kd=K(/^html$/i),qd=K(/^[a-z][.\w]*(-[.\w]+)+$/i),Jd=K(/<[/\w!]/g),Yd=K(/<[/\w]/g),Xd=K(/<\/no(script|embed|frames)/i),Zd=K(/\/>/i),Qd={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},$d=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],ef=G(J({},$d)),tf=function(){let e={};return td($d,t=>{e[t]=K(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),G(e)}(),nf=function(){return typeof window>`u`?null:window},rf=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},af=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},of=function(e,t,n,r){return _d(e,t)&&od(e[t])?J(r.base?Cd(r.base):{},e[t],r.transform):n},sf=function(e,t,n){let r=_d(e,t)?e[t]:void 0;return r&&typeof r==`object`?Cd(r):n()};function cf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nf(),t=e=>cf(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==Qd.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Td(d,`cloneNode`),p=Td(d,`remove`),m=Td(d,`nextSibling`),h=Td(d,`childNodes`),ee=Td(d,`parentNode`),te=Td(d,`shadowRoot`),g=Td(d,`attributes`),ne=o&&o.prototype?Td(o.prototype,`nodeType`):null,_=o&&o.prototype?Td(o.prototype,`nodeName`):null,re=o&&o.prototype?Td(o.prototype,`ownerDocument`):null,ie=function(e){return ne?ne(e):e.nodeType},ae=function(e){return _?_(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let v,y=``,oe,se=!1,b=0,ce=function(){if(b>0)throw bd(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},le=function(e){ce(),b++;try{return v.createHTML(e)}finally{b--}},ue=function(e){ce(),b++;try{return v.createScriptURL(e)}finally{b--}},de=function(){return se||(oe=rf(u,i),se=!0),oe},fe=n,pe=fe.implementation,me=fe.createNodeIterator,he=fe.createDocumentFragment,ge=fe.getElementsByTagName,_e=r.importNode,x=af();t.isSupported=typeof Ku==`function`&&typeof ee==`function`&&pe&&pe.createHTMLDocument!==void 0;let ve=Rd,ye=zd,be=Bd,xe=Vd,Se=Hd,Ce=Wd,we=Gd,Te=qd,Ee=Ud,S=null,De=J({},[...Dd,...Od,...kd,...jd,...Nd]),C=null,Oe=J({},[...Pd,...Fd,...Id,...Ld]),w=Object.seal(Zu(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ke=null,Ae=null,T=Object.seal(Zu(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),je=!0,Me=!0,Ne=!1,Pe=!0,Fe=!1,Ie=!0,Le=!1,Re=!1,ze=null,Be=null,Ve=!1,He=!1,Ue=!1,We=!1,Ge=!0,Ke=!1,qe=`user-content-`,Je=!0,Ye=!1,Xe={},Ze=null,Qe=J({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),$e=null,et=J({},[`audio`,`video`,`img`,`source`,`image`,`track`]),tt=null,nt=J({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),rt=`http://www.w3.org/1998/Math/MathML`,it=`http://www.w3.org/2000/svg`,at=`http://www.w3.org/1999/xhtml`,ot=at,st=!1,ct=null,lt=J({},[rt,it,at],cd),ut=G([`mi`,`mo`,`mn`,`ms`,`mtext`]),dt=J({},ut),ft=G([`annotation-xml`]),pt=J({},ft),mt=J({},[`title`,`style`,`font`,`a`,`script`]),ht=null,E=[`application/xhtml+xml`,`text/html`],D=null,gt=null,_t=n.createElement(`form`),vt=function(e){return e instanceof RegExp||e instanceof Function},yt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gt&>===e)return;(!e||typeof e!=`object`)&&(e={}),e=Cd(e),ht=E.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,D=ht===`application/xhtml+xml`?cd:sd,S=of(e,`ALLOWED_TAGS`,De,{transform:D}),C=of(e,`ALLOWED_ATTR`,Oe,{transform:D}),ct=of(e,`ALLOWED_NAMESPACES`,lt,{transform:cd}),tt=of(e,`ADD_URI_SAFE_ATTR`,nt,{transform:D,base:nt}),$e=of(e,`ADD_DATA_URI_TAGS`,et,{transform:D,base:et}),Ze=of(e,`FORBID_CONTENTS`,Qe,{transform:D}),ke=of(e,`FORBID_TAGS`,Cd({}),{transform:D}),Ae=of(e,`FORBID_ATTR`,Cd({}),{transform:D}),Xe=_d(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?Cd(e.USE_PROFILES):e.USE_PROFILES:!1,je=e.ALLOW_ARIA_ATTR!==!1,Me=e.ALLOW_DATA_ATTR!==!1,Ne=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Pe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Fe=e.SAFE_FOR_TEMPLATES||!1,Ie=e.SAFE_FOR_XML!==!1,Le=e.WHOLE_DOCUMENT||!1,He=e.RETURN_DOM||!1,Ue=e.RETURN_DOM_FRAGMENT||!1,We=e.RETURN_TRUSTED_TYPE||!1,Ve=e.FORCE_BODY||!1,Ge=e.SANITIZE_DOM!==!1,Ke=e.SANITIZE_NAMED_PROPS||!1,Je=e.KEEP_CONTENT!==!1,Ye=e.IN_PLACE||!1,Ee=Ed(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Ud,ot=typeof e.NAMESPACE==`string`?e.NAMESPACE:at,dt=sf(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>J({},ut)),pt=sf(e,`HTML_INTEGRATION_POINTS`,()=>J({},ft));let t=sf(e,`CUSTOM_ELEMENT_HANDLING`,()=>Zu(null));if(w=Zu(null),_d(t,`tagNameCheck`)&&vt(t.tagNameCheck)&&(w.tagNameCheck=t.tagNameCheck),_d(t,`attributeNameCheck`)&&vt(t.attributeNameCheck)&&(w.attributeNameCheck=t.attributeNameCheck),_d(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(w.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),K(w),Fe&&(Me=!1),Ue&&(He=!0),Xe&&(S=J({},Nd),C=Zu(null),Xe.html===!0&&(J(S,Dd),J(C,Pd)),Xe.svg===!0&&(J(S,Od),J(C,Fd),J(C,Ld)),Xe.svgFilters===!0&&(J(S,kd),J(C,Fd),J(C,Ld)),Xe.mathMl===!0&&(J(S,jd),J(C,Id),J(C,Ld))),T.tagCheck=null,T.attributeCheck=null,_d(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?T.tagCheck=e.ADD_TAGS:od(e.ADD_TAGS)&&(S===De&&(S=Cd(S)),J(S,e.ADD_TAGS,D))),_d(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?T.attributeCheck=e.ADD_ATTR:od(e.ADD_ATTR)&&(C===Oe&&(C=Cd(C)),J(C,e.ADD_ATTR,D))),_d(e,`ADD_FORBID_CONTENTS`)&&od(e.ADD_FORBID_CONTENTS)&&(Ze===Qe&&(Ze=Cd(Ze)),J(Ze,e.ADD_FORBID_CONTENTS,D)),Je&&(S[`#text`]=!0),Le&&J(S,[`html`,`head`,`body`]),S.table&&(J(S,[`tbody`]),delete ke.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw bd(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw bd(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=v;v=e.TRUSTED_TYPES_POLICY;try{y=le(``)}catch(e){throw v=t,e}}else e.TRUSTED_TYPES_POLICY===null?(v=void 0,y=``):(v===void 0&&(v=de()),v&&typeof y==`string`&&(y=le(``)));G&&G(e),gt=e},O=J({},[...Od,...kd,...Ad]),k=J({},[...jd,...Md]),bt=function(e,t,n){return t.namespaceURI===at?e===`svg`:t.namespaceURI===rt?e===`svg`&&(n===`annotation-xml`||dt[n]):!!O[e]},xt=function(e,t,n){return t.namespaceURI===at?e===`math`:t.namespaceURI===it?e===`math`&&pt[n]:!!k[e]},St=function(e,t,n){return t.namespaceURI===it&&!pt[n]||t.namespaceURI===rt&&!dt[n]?!1:!k[e]&&(mt[e]||!O[e])},A=function(e){let t=ee(e);(!t||!t.tagName)&&(t={namespaceURI:ot,tagName:`template`});let n=sd(e.tagName),r=sd(t.tagName);return ct[e.namespaceURI]?e.namespaceURI===it?bt(n,t,r):e.namespaceURI===rt?xt(n,t,r):e.namespaceURI===at?St(n,t,r):!!(ht===`application/xhtml+xml`&&ct[e.namespaceURI]):!1},Ct=function(e){id(t.removed,{element:e});try{ee(e).removeChild(e)}catch{if(p(e),!ee(e))throw bd(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},wt=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},Tt=function(e){Ot(e);let t=h(e);if(t){let e=[];td(t,t=>{id(e,t)}),td(e,e=>{try{p(e)}catch{}})}let n=g(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&wt(e,r,i)}},Et=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}id(t.removed,{attribute:r||null,from:n});try{r?n.removeAttributeNode(r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(He||Ue)try{Ct(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},Dt=function(e){let t=g(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||C[D(i)]||wt(e,r,i)}},Ot=function(e){let t=[e];for(;t.length>0;){let e=t.pop();ie(e)===Qd.element&&Dt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},kt=function(e,t){return Ie?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},At=function(e){if(!Ie)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=ie(e);if(n===Qd.processingInstruction||n===Qd.comment&&yd(Yd,e.data)){try{p(e)}catch{}continue}if(n===Qd.element){let t=e,n=D(ae(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&kt(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},jt=function(e){let t=null,r=null;if(Ve)e=`<remove></remove>`+e;else{let t=ld(e,/^[\r\n\t ]+/);r=t&&t[0]}ht===`application/xhtml+xml`&&ot===at&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=v?le(e):e;if(ot===at)try{t=new l().parseFromString(i,ht)}catch{}if(!t||!t.documentElement){t=pe.createDocument(ot,`template`,null);try{t.documentElement.innerHTML=st?y:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),ot===at?ge.call(t,Le?`html`:`body`)[0]:Le?t.documentElement:a},Mt=function(e){let t=re?re(e):e.ownerDocument;return me.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Nt=function(e){return e=ud(e,ve,` `),e=ud(e,ye,` `),e=ud(e,be,` `),e},Pt=function(e){e.normalize();let t=re?re(e):e.ownerDocument,n=me.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Nt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&td(i,e=>{It(e.content)&&Pt(e.content)})},Ft=function(e){let t=_?_(e):null;return typeof t!=`string`||D(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==g(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==ne(e)||e.childNodes!==h(e)},It=function(e){if(!ne||typeof e!=`object`||!e)return!1;try{return ne(e)===Qd.documentFragment}catch{return!1}},Lt=function(e){if(!ne||typeof e!=`object`||!e)return!1;try{return typeof ne(e)==`number`}catch{return!1}};function Rt(e,n,r){e.length!==0&&td(e,e=>{e.call(t,n,r,gt)})}let zt=function(e,t){return!!(Ie&&e.hasChildNodes()&&!Lt(e.firstElementChild)&&yd(Jd,e.textContent)&&yd(Jd,e.innerHTML)||Ie&&e.namespaceURI===at&&ef[t]&&(Lt(e.firstElementChild)||typeof e.textContent==`string`&&yd(tf[t],e.textContent))||e.nodeType===Qd.processingInstruction||Ie&&e.nodeType===Qd.comment&&yd(Yd,e.data))},Bt=function(e,t){if(e instanceof RegExp)return yd(e,t);if(e instanceof Function){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return!!e(t,...r)}return!1},Vt=function(e,t,n){if(!ke[t]&&qt(t)&&Bt(w.tagNameCheck,t))return!1;if(Je&&!Ze[t]){let t=ee(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return Ct(e),!0},Ht=function(e,t,n,r){return e.length===0?t:t===n||t===r?Cd(t):t},Ut=function(e,t){return e===t||ee(e)!==null?!1:(Ye&&Ot(e),!0)},Wt=function(e,n){if(Rt(x.beforeSanitizeElements,e,null),Ut(e,n))return!0;if(Ft(e))return Ct(e),!0;let r=D(ae(e));if(S=Ht(x.uponSanitizeElement,S,De,ze),Rt(x.uponSanitizeElement,e,{tagName:r,allowedTags:S}),Ut(e,n))return!0;if(zt(e,r))return Ct(e),!0;if(ke[r]||!(T.tagCheck instanceof Function&&T.tagCheck(r))&&!S[r]){let t=Vt(e,r,n);return t===!1&&Rt(x.afterSanitizeElements,e,null),t}if(ie(e)===Qd.element&&!A(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&yd(Xd,e.innerHTML))return Ct(e),!0;if(Fe&&e.nodeType===Qd.text){let n=Nt(e.textContent);e.textContent!==n&&(id(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Rt(x.afterSanitizeElements,e,null),!1},Gt=function(e,t,r){if(Ae[t]||kt(t,e)||Ge&&(t===`id`||t===`name`)&&(r in n||r in _t))return!1;let i=C[t]||T.attributeCheck instanceof Function&&T.attributeCheck(t,e);return Me&&yd(xe,t)||je&&yd(Se,t)?!0:i?tt[t]||yd(Ee,ud(r,we,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&dd(r,`data:`)===0&&$e[e]||Ne&&!yd(Ce,ud(r,we,``))?!0:!r:qt(e)&&Bt(w.tagNameCheck,e)&&Bt(w.attributeNameCheck,t,e)||t===`is`&&w.allowCustomizedBuiltInElements&&Bt(w.tagNameCheck,r)},Kt=J({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),qt=function(e){return!Kt[sd(e)]&&yd(Te,e)},Jt=function(e,t,n,r){if(v&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return le(r);case`TrustedScriptURL`:return ue(r)}return r},Yt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Ft(e)?Ct(e):rd(t.removed)}catch{Et(n,e)}},Xt=function(e){Rt(x.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Ft(e))return;C=Ht(x.uponSanitizeAttribute,C,Oe,Be);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:C,forceKeepAttr:void 0},r=t.length,i=D(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=D(o),u=c,d=o===`value`?u:fd(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,Rt(x.uponSanitizeAttribute,e,n),d=n.attrValue,Ke&&(l===`id`||l===`name`)&&dd(d,qe)!==0&&(Et(o,e,a),d=qe+d),Ie&&yd(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){Et(o,e,a);continue}if(l===`attributename`&&ld(d,`href`)){Et(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){Et(o,e,a);continue}if(!Pe&&yd(Zd,d)){Et(o,e,a);continue}if(Fe&&(d=Nt(d)),!Gt(i,l,d)){Et(o,e,a);continue}d=Jt(i,l,s,d),d!==u&&Yt(e,o,s,d)}}Rt(x.afterSanitizeAttributes,e,null)},Zt=function(e){let t=null,n=Mt(e);for(Rt(x.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Rt(x.uponSanitizeShadowNode,t,null),Wt(t,e),Xt(t),It(t.content)&&Zt(t.content),ie(t)===Qd.element){let e=te(t);It(e)&&(Qt(e),Zt(e))}Rt(x.afterSanitizeShadowDOM,e,null)},Qt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Zt(e.shadow);continue}let n=e.node,r=ie(n)===Qd.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=_?_(n):null;if(typeof e==`string`&&D(e)===`template`){let e=n.content;It(e)&&t.push({node:e,shadow:null})}}if(r){let e=te(n);It(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(st=!e,st&&(e=`<!-->`),typeof e!=`string`&&!Lt(e)&&(e=wd(e),typeof e!=`string`))throw bd(`dirty is not a string, aborting`);if(!t.isSupported)return e;Re?(S=ze,C=Be):yt(n),(x.uponSanitizeElement.length>0||x.uponSanitizeAttribute.length>0)&&(S=Cd(S)),x.uponSanitizeAttribute.length>0&&(C=Cd(C)),t.removed=[];let c=Ye&&typeof e!=`string`&&Lt(e);if(c){At(e);let t=ae(e);if(typeof t==`string`){let n=D(t);if(!S[n]||ke[n])throw Tt(e),bd(`root node is forbidden and cannot be sanitized in-place`)}if(Ft(e))throw Tt(e),bd(`root node is clobbered and cannot be sanitized in-place`);try{Qt(e)}catch(t){throw Tt(e),t}}else if(Lt(e))i=jt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===Qd.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Qt(a);else{if(!He&&!Fe&&!Le&&e.indexOf(`<`)===-1)return v&&We?le(e):e;if(i=jt(e),!i)return He?null:We?y:``}i&&Ve&&Ct(i.firstChild);let l=c?e:i;try{let e=Mt(l);for(;o=e.nextNode();)Wt(o,l),Xt(o),It(o.content)&&Zt(o.content)}catch(n){throw c&&(Tt(e),td(t.removed,e=>{e.element&&Ot(e.element)})),n}if(c)return td(t.removed,e=>{e.element&&Ot(e.element)}),Fe&&Pt(e),e;if(He){if(Fe&&Pt(i),Ue)for(s=he.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(C.shadowroot||C.shadowrootmode)&&(s=_e.call(r,s,!0)),s}let u=Le?i.outerHTML:i.innerHTML;return Le&&S[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&yd(Kd,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
28
|
-
`+u),Fe&&(u=Nt(u)),v&&We?le(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};yt(e),Re=!0,ze=S,Be=C},t.clearConfig=function(){gt=null,Re=!1,ze=null,Be=null,v=oe,y=``},t.isValidAttribute=function(e,t,n){gt||yt({});let r=D(e),i=D(t);return Gt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&
|
|
26
|
+
${t}`,d++;break;case`id`:t.includes(`\0`)||(l=t);break;case`retry`:/^\d+$/.test(t)?r(parseInt(t,10)):n(new $a(`Invalid \`retry\` value: "${t}"`,{type:`invalid-retry`,value:t,line:i}));break;default:n(new $a(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:`unknown-field`,field:e,value:t,line:i}))}}function ne(){d>0&&t({id:l,event:f,data:u}),l=void 0,u=``,d=0,f=void 0}function _(e={}){if(e.consume&&o.length>0){let e=o.join(``);te(e,0,e.length)}c=!0,l=void 0,u=``,d=0,f=void 0,o.length=0,s=0,p=!1}return{feed:m,reset:_}}function ao(e,t,n){return n===100&&e.charCodeAt(t+1)===97&&e.charCodeAt(t+2)===116&&e.charCodeAt(t+3)===97&&e.charCodeAt(t+4)===58}function oo(e,t,n){return n===101&&e.charCodeAt(t+1)===118&&e.charCodeAt(t+2)===101&&e.charCodeAt(t+3)===110&&e.charCodeAt(t+4)===116&&e.charCodeAt(t+5)===58}function so(e,t){return`${e.replace(/\/+$/,``)}${t.startsWith(`/`)?t:`/${t}`}`}async function*co(e,t,n,r={}){let i=r.method??(r.body===void 0?`GET`:`POST`),a=new Headers(n);for(let[e,t]of Object.entries(r.headers??{}))a.set(e,t);a.set(`accept`,`text/event-stream`);let o;r.body!==void 0&&i!==`GET`&&i!==`HEAD`&&(o=typeof r.body==`string`?r.body:JSON.stringify(r.body),!a.has(`content-type`)&&typeof r.body!=`string`&&a.set(`content-type`,`application/json`));let s;try{s=await e(t,{method:i,headers:a,body:o,signal:r.signal})}catch(e){throw Za(e)}if(!s.ok)throw await Ya(s);if(!s.body)throw new m(`TRANSPORT_FAILED`,`SSE response has no body`);r.onConnected?.();let c=s.body.getReader(),l=new TextDecoder(`utf-8`),u=[],d=io({onEvent(e){let t=e.event?.trim()?e.event.trim():`message`;u.push({event:t,data:e.data,id:e.id})}}),f=()=>u.splice(0,u.length);try{for(;;){let{value:e,done:t}=await c.read();if(t){let e=l.decode();e&&d.feed(e);for(let e of f())yield e;break}d.feed(l.decode(e,{stream:!0}));for(let e of f())yield e}}finally{c.releaseLock()}}function lo(e){return e.replace(/^\//,``)}function uo(e,t){let n=new Set((t.omitDefaultHeaders??[]).map(e=>e.toLowerCase())),r={};for(let[t,i]of Object.entries(e))n.has(t.toLowerCase())||(r[t]=i);return{...r,...t.headers??{}}}function fo(e){let t=e.apiBase.replace(/\/+$/,``),n={...e.defaultHeaders??{}},r=e.fetch??(typeof fetch<`u`?fetch.bind(globalThis):void 0);if(!r)throw new m(`TRANSPORT_FAILED`,`No fetch implementation available. Provide one via HttpClientOptions.fetch.`);let i=Ka.create({prefixUrl:`${t}/`,retry:{limit:0},timeout:!1,fetch:r,hooks:{beforeError:[async e=>{throw e instanceof Ri?await Ya(e.response):Qa(e)?Xa(e):Za(e)}]}});return{setDefaultHeader(e,t){t===void 0?delete n[e]:n[e]=t},async request(e,t={}){let r=t.method??(t.body===void 0?`GET`:`POST`),a={accept:`application/json`,...uo(n,t)},o=t.searchParams?Object.fromEntries(Object.entries(t.searchParams).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])):void 0;try{let n=await i(lo(e),{method:r,headers:a,searchParams:o,json:r===`GET`||r===`HEAD`?void 0:t.body,signal:t.signal});return n.status===204?void 0:(n.headers.get(`content-type`)??``).includes(`application/json`)?await n.json():await n.text()}catch(e){throw e instanceof m?e:Qa(e)?Xa(e):Za(e)}},stream(e,i={}){let a=so(t,e);return co(r,a,n,i)}}}var po=class{constructor(e){p(this,`http`,void 0),this.http=e}async authenticate(e,t){let n=de(await this.http.request(`/app-client/auth`,{method:`POST`,headers:re(e,t)}));if(!n?.ok)throw new m(`AUTH_REQUIRED`,`App client authentication failed`);return n}async login(e,t){let n=de(await this.http.request(`/user/login`,{method:`POST`,body:{email:e,password:t}}));if(!n?.accessToken)throw new m(`LOGIN_FAILED`,`Login succeeded but accessToken is missing`);return n}};function mo(e){if(!e)return;let t=Object.entries(e).filter(([,e])=>e!==void 0&&e!==``);return t.length>0?Object.fromEntries(t):void 0}var ho=class{constructor(e,t){p(this,`http`,void 0),p(this,`resolveAuth`,void 0),this.http=e,this.resolveAuth=t}agentRequestInit(e,t){return{method:`GET`,signal:t.signal,searchParams:t.searchParams,omitDefaultHeaders:[ee],headers:oe(e)}}listAvailableAgents(e,t){let{dsn:n}=this.resolveAuth();return this.http.request(`/agent/client/available`,this.agentRequestInit(n,{signal:t,searchParams:mo(e)}))}listAllClientAgents(e){let{dsn:t}=this.resolveAuth();return this.http.request(`/agent/client/list`,this.agentRequestInit(t,{signal:e}))}listClientSkills(e,t,n){let{dsn:r}=this.resolveAuth(),i=e.trim();return this.http.request(`/agent/${i}/skills/client`,this.agentRequestInit(r,{signal:n,searchParams:mo(t)}))}};function go(e){let t={pageContext:e};return e.page&&(t.page=e.page),e.routePath&&(t.routePath=e.routePath),e.routeParams&&(t.routeParams=e.routeParams),e.flowId!=null&&(t.flowId=e.flowId),e.programName&&(t.programName=e.programName),e.entity&&(t.entity=e.entity),e.metadata&&(t.metadata=e.metadata),t}function _o(e){return!(e instanceof m)||e.code!==`TRANSPORT_FAILED`?!1:e.message.toLowerCase().includes(`property content should not exist`)}function vo(e){return e.trim().toLowerCase()}var yo=class{constructor(e){p(this,`http`,void 0),this.http=e}listSessions(e,t,n){return this.http.request(`/chat`,{method:`GET`,signal:n,searchParams:{page:e,size:t}})}getSession(e,t,n,r){return this.http.request(`/chat/${vo(e)}`,{method:`GET`,signal:r,searchParams:{page:t,size:n}})}prepareSession(e,t,n){let r=t&&Object.keys(t).length>0?go(t):void 0;return this.http.request(`/chat/${vo(e)}/prepare`,{method:`POST`,body:r,signal:n})}deleteSession(e){return this.http.request(`/chat/${vo(e)}`,{method:`DELETE`})}streamSession(e,t){return this.http.stream(`/chat/${vo(e)}/stream`,t)}getRunState(e,t){return this.http.request(`/chat/${vo(e)}/run-state`,{method:`GET`,signal:t})}createSession(e,t,n){return this.postUserPayload(`/chat`,e,t,n)}postMessage(e,t,n,r){return this.postUserPayload(`/chat/${e}/messages`,t,n,r)}postWriteGateDecision(e,t,n){let r=`/chat/${vo(e)}/messages`,i={role:`user`,content:``,writeGate:t};return this.postUserPayload(r,``,n,void 0,i)}postWriteConfirmation(e,t,n){let r=t.cancelWrite===!0?{action:`cancel`}:{action:`confirm`};return this.postWriteGateDecision(e,r,n)}async cancelRun(e,t){let n={};return t!=null&&(n.runId=t),yt(await this.http.request(`/chat/${vo(e)}/cancel-run`,{method:`POST`,body:Object.keys(n).length>0?n:void 0}))}async postUserPayload(e,t,n,r,i){let a=i??this.buildUserMessageBody(t,r);try{return await this.http.request(e,{method:`POST`,body:a,signal:n})}catch(t){if(!_o(t))throw t;let{content:r,...i}=a;return this.http.request(e,{method:`POST`,body:{...i,message:r},signal:n})}}buildUserMessageBody(e,t){let n={role:`user`,content:e},r=t?.agentId?.trim(),i=t?.skillId?.trim();r&&(n.agentId=/^\d+$/.test(r)?Number(r):r),i&&(n.skillId=/^\d+$/.test(i)?Number(i):i);let a=bo(t);return a&&Object.assign(n,go(a)),t?.entityCommit?.entityType?.trim()&&t?.entityCommit?.selectedId?.trim()&&(n.entityCommit={entityType:t.entityCommit.entityType.trim(),selectedId:t.entityCommit.selectedId.trim()}),n}};function bo(e){if(!e)return null;let t={};return e.page&&(t.page=e.page),e.routePath&&(t.routePath=e.routePath),e.routeParams&&(t.routeParams=e.routeParams),e.flowId!=null&&(t.flowId=e.flowId),e.programName&&(t.programName=e.programName),e.entity&&(t.entity=e.entity),e.metadata&&(t.metadata=e.metadata),Object.keys(t).length>0?t:null}function xo(e){return typeof e==`object`&&!!e}function So(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Co(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function I(e){if(!xo(e))throw new m(`TRANSPORT_FAILED`,`Invalid API response`);let t=Co(e.status);if(t!==void 0&&t!==200)throw new m(`TRANSPORT_FAILED`,So(e.message)??`request failed`,{details:{status:t,data:e.data}});if(`data`in e&&e.data===null)return null;let n=b(e);return n===null?e:n}function wo(e){return e.trim().toLowerCase()}var To=class{constructor(e){p(this,`http`,void 0),this.http=e}async getDownReasonTags(e){return Bt(I(await this.http.request(`/chat/feedback/down-reason-tags`,{method:`GET`,signal:e}))).items}async batchFeedbacks(e,t,n){return t.length===0?{items:[]}:Ht(I(await this.http.request(`/chat/${wo(e)}/messages/feedbacks`,{method:`GET`,signal:n,searchParams:{messageIds:t.join(`,`)}})))}async upsert(e,t,n,r){return Vt(I(await this.http.request(`/chat/${wo(e)}/messages/${t}/feedback`,{method:`PUT`,body:n,signal:r})))}async remove(e,t,n){I(await this.http.request(`/chat/${wo(e)}/messages/${t}/feedback`,{method:`DELETE`,signal:n}))}},Eo=class{constructor(e){p(this,`http`,void 0),this.http=e}async register(e){let t=I(await this.http.request(`/host-tool/client/register`,{method:`POST`,body:e}));return{created:Array.isArray(t?.created)?t.created:[],skipped:Array.isArray(t?.skipped)?t.skipped:[]}}async getCatalog(e){return I(await this.http.request(`/host-tool/client/catalog`,{method:`GET`,searchParams:e}))}},Do=class{constructor(e){p(this,`http`,void 0),this.http=e}getRun(e,t,n){return this.http.request(`/agent-run/by-app-client/${e}/${t}`,{method:`GET`,signal:n})}};function Oo(e){return!!(e&&Object.keys(e).length>0)}function ko(e){let t=e.pageContext,n=e.routeContext,r={};t?.page?.trim()&&(r.page=t.page.trim()),t?.flowId!=null&&(r.flowId=t.flowId),t?.programName?.trim()&&(r.programName=t.programName.trim()),t?.entity&&(r.entity=t.entity),t?.metadata&&Object.keys(t.metadata).length>0&&(r.metadata=t.metadata);let i=t?.routePath?.trim()||n?.routePath?.trim();i&&(r.routePath=i);let a=(Oo(t?.routeParams)?t.routeParams:void 0)??(Oo(n?.routeParams)?n.routeParams:void 0);return a&&(r.routeParams=a),Object.keys(r).length>0?r:void 0}function Ao(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e,n={};if(typeof t.page==`string`&&t.page.trim()&&(n.page=t.page.trim()),typeof t.routePath==`string`&&t.routePath.trim()&&(n.routePath=t.routePath.trim()),typeof t.programName==`string`&&t.programName.trim()&&(n.programName=t.programName.trim()),typeof t.flowId==`number`&&Number.isFinite(t.flowId)&&(n.flowId=t.flowId),t.routeParams&&typeof t.routeParams==`object`&&!Array.isArray(t.routeParams)){let e={};for(let[n,r]of Object.entries(t.routeParams))typeof r==`string`?e[n]=r:(typeof r==`number`||typeof r==`boolean`)&&(e[n]=String(r));Object.keys(e).length>0&&(n.routeParams=e)}return t.entity&&typeof t.entity==`object`&&!Array.isArray(t.entity)&&(n.entity=t.entity),t.metadata&&typeof t.metadata==`object`&&!Array.isArray(t.metadata)&&(n.metadata=t.metadata),Object.keys(n).length>0?n:null}var jo=`BRAIN_ASK_USER`,Mo=`brain:clarify`;function No(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Po(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Fo(e){if(!No(e))return null;let t=Po(e.id),n=Po(e.entityType);if(!t||!n)return null;let r={id:t,entityType:n},i=Po(e.text);i&&(r.text=i),No(e.fields)&&(r.fields=e.fields);let a=Po(e.source);a&&(r.source=a);let o=Po(e.path);return o&&(r.path=o),r}function Io(e){if(!No(e)||e.kind!==`entity_resolve`)return null;let t=Po(e.question),n=Po(e.entityType);if(!t||!n||!Array.isArray(e.candidates))return null;let r=e.candidates.map(e=>Fo(e)).filter(e=>e!=null);if(r.length===0)return null;let i=No(e.commitHint)&&Po(e.commitHint.entityType)?Po(e.commitHint.entityType):n;return{kind:`entity_resolve`,question:t,reason:Po(e.reason)??``,entityType:n,candidates:r,commitHint:{entityType:i},proposalType:Po(e.proposalType)??``}}function Lo(e){return e?.trim()===jo}function Ro(e,t){return{entityType:e.commitHint.entityType||e.entityType,selectedId:t.trim()}}function zo(e){let t=e.text?.trim();if(t)return t;if(e.fields&&Object.keys(e.fields).length>0)try{return JSON.stringify(e.fields).slice(0,80)}catch{}return e.id}function Bo(e){if(e.errorCode&&!Lo(e.errorCode)&&e.errorCode.trim().length>0)return null;if(Array.isArray(e.steps))for(let t=e.steps.length-1;t>=0;--t){let n=e.steps[t];if(!No(n))continue;let r=typeof n.name==`string`?n.name:``;if(r===`runtime:brain_clarify`||r===`brain_clarify`||r.endsWith(`:brain_clarify`)){let e=Io(n.detail);if(e)return e;let t=Io(n.output);if(t)return t}let i=No(n.detail)?n.detail:No(n.output)?n.output:null;if(r.includes(`brain_blocked`)&&i){let e=Io(i.brainClarify);if(e)return e}}let t=e.nodeOutputs;if(t){let e=Io(t[Mo]);if(e)return e}return null}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Vo(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function Ho(e){let t=R(e);if(t===`running`||t===`awaiting_approval`||t===`completed`||t===`failed`||t===`cancelled`)return t}function Uo(e){let t=R(e);if(t===`page_action`||t===`webhook`)return t}function Wo(e){if(!L(e))return null;let t=R(e.kind),n=Vo(e.id);return n==null?null:t===`page_action_run`?{kind:`page_action_run`,id:n}:t===`webhook_approval`?{kind:`webhook_approval`,id:n}:null}function Go(e){return L(e)?{preview:e.preview===null?null:R(e.preview)??null,hasFillText:e.hasFillText===!0}:{preview:null,hasFillText:!1}}function Ko(e){if(!L(e))return null;let t=Vo(e.id),n=R(e.status);return t==null||!n?null:{id:t,status:n}}function qo(e){if(!L(e))return null;let t=Vo(e.step),n=R(e.type),r=R(e.name),i=R(e.at);if(t==null||!n||!r||!i)return null;let a=R(e.status);return{step:t,type:n,name:r,at:i,...a===`ok`||a===`failed`||a===`skipped`?{status:a}:{}}}function Jo(e){if(!L(e))return null;let t=Wo(e.ref),n=Uo(e.triggerSource),r=Ho(e.taskStatus),i=R(e.title),a=R(e.createdAt);return!t||!n||!r||!i||!a?null:{ref:t,triggerSource:n,taskStatus:r,title:i,subtitle:e.subtitle===null?null:R(e.subtitle)??null,workflowKey:e.workflowKey===null?null:R(e.workflowKey)??null,workflowName:e.workflowName===null?null:R(e.workflowName)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,createdAt:a,finishedAt:e.finishedAt===null?null:R(e.finishedAt)??null,durationMs:e.durationMs===null?null:Vo(e.durationMs)??null,approval:Ko(e.approval),outputs:Go(e.outputs)}}function Yo(e,t=20){let n=L(e)?e:null,r=Vo(n?.total)??Vo(n?.totalCount)??0,i=(Array.isArray(n?.items)?n.items:[]).map(e=>Jo(e)).filter(e=>e!=null);return{items:i,total:r,hasMore:Xo(i.length,i.length,r,t)}}function Xo(e,t,n,r){return n>0?e<n:t>=r}function Zo(e,t,n){if(L(e))return{canReplay:e.canReplay===!0,hasHostAction:e.hasHostAction===!0,dslOutcome:typeof e.dslOutcome==`string`?e.dslOutcome:null};let r=!!t.outputs?.hasFillText;return{canReplay:t.taskStatus===`completed`&&r,hasHostAction:r,dslOutcome:typeof n.dslOutcome==`string`?n.dslOutcome:null}}function Qo(e){if(!L(e))return null;let t=Jo(e);if(!t)return null;let n=R(e.actionKey),r=R(e.streamUrl);if(!n||!r)return null;let i=(Array.isArray(e.timeline)?e.timeline:[]).map(e=>qo(e)).filter(e=>e!=null);return{...t,actionKey:n,instruction:e.instruction===null?null:R(e.instruction)??null,errorCode:e.errorCode===null?null:R(e.errorCode)??null,errorMessage:e.errorMessage===null?null:R(e.errorMessage)??null,streamUrl:r,timeline:i,workflowRun:e.workflowRun??null,brainClarify:Io(e.brainClarify),pageContext:e.pageContext===null||e.pageContext===void 0?null:Ao(e.pageContext),replay:Zo(e.replay,t,e)}}function $o(e){if(!L(e))throw Error(`Invalid page-action invoke response`);let t=Vo(e.runId),n=Vo(e.generation),r=R(e.streamUrl),i=Ho(e.status);if(t==null||n==null||!r||!i)throw Error(`Invalid page-action invoke response`);return{runId:t,generation:n,clientActionId:e.clientActionId===null?null:R(e.clientActionId)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,streamUrl:r,status:i}}function es(e){let t=R(e);if(t===`running`||t===`awaiting_approval`)return t}function ts(e){if(!L(e))throw Error(`Invalid page-action already-active response`);let t=R(e.code),n=R(e.pageActionKey),r=Vo(e.existingRunId),i=es(e.existingStatus),a=R(e.streamUrl);if(t!==`PAGE_ACTION_ALREADY_ACTIVE`||!n||r==null||!i||!a)throw Error(`Invalid page-action already-active response`);let o=Vo(e.approvalRequestId);return{code:`PAGE_ACTION_ALREADY_ACTIVE`,message:R(e.message)??`An active PageAction run already exists`,pageActionKey:n,existingRunId:r,existingStatus:i,approvalRequestId:o??null,streamUrl:a}}function ns(e){if(!L(e))throw Error(`Invalid page-action invoke response`);let t=Vo(e.status);if(t===409)return{kind:`already_active`,...ts(e.data)};if(t!==void 0&&t!==200)throw Error(R(e.message)??`page-action invoke failed`);return{kind:`accepted`,...$o(L(e.data)?e.data:e)}}function rs(e){if(!L(e))return null;let t=Wo(e.ref),n=Uo(e.triggerSource),r=Ho(e.taskStatus),i=R(e.title),a=R(e.createdAt);if(!t||t.kind!==`page_action_run`||!n||!r||!i||!a)return null;let o=L(e.outputs)?e.outputs:null,s=o?.preview===null?null:R(o?.preview)??null,c=o?.fillText===null?null:R(o?.fillText)??null,l=Vo(e.runUserId);return{ref:t,triggerSource:n,taskStatus:r,title:i,subtitle:e.subtitle===null?null:R(e.subtitle)??null,pageActionKey:e.pageActionKey===null?null:R(e.pageActionKey)??null,createdAt:a,finishedAt:e.finishedAt===null?null:R(e.finishedAt)??null,outputs:{preview:s,fillText:c??void 0,hasFillText:o?.hasFillText===!0||!!c?.trim()},...e.succeeded===!0||e.succeeded===!1?{succeeded:e.succeeded}:{},...l==null?{}:{runUserId:l}}}function is(e){let t=L(e)?e:null;if(!t)throw Error(`Invalid page-action reuse-hint response`);let n=Vo(t.status);if(n!==void 0&&n!==200)throw Error(R(t.message)??`page-action reuse-hint failed (${n})`);let r=L(t.data)?t.data:t,i=R(r.pageActionKey),a=R(r.actionKey);if(!i||!a)throw Error(`Invalid page-action reuse-hint response`);let o=L(r.reusable)?r.reusable:null,s=(Array.isArray(o?.items)?o.items:[]).map(e=>rs(e)).filter(e=>e!=null);return{pageActionKey:i,actionKey:a,reusable:{total:Vo(o?.total)??s.length,items:s}}}function as(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function z(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function B(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}var os=new Set([`submitted`,`reviewing`,`planned`,`in_progress`,`done`,`rejected`,`cancelled`]);function ss(e){let t=z(e);if(t&&os.has(t))return t}function cs(e){if(e==null||!as(e))return null;let t=B(e.rating),n=z(e.updatedAt);return t==null||t<1||t>5||!n?null:{rating:t,comment:e.comment===null?null:z(e.comment)??null,updatedAt:n}}function ls(e){if(!as(e))return null;let t=z(e.actionKey),n=z(e.name),r=B(e.pageActionId);return!t||!n||r==null?null:{pageActionId:r,actionKey:t,name:n,description:e.description===null?null:z(e.description)??null,pageScope:e.pageScope===null?null:z(e.pageScope)??null,sortOrder:B(e.sortOrder)??0,rolloutRestricted:e.rolloutRestricted===!0,myFeedback:cs(e.myFeedback)}}function us(e){if(!as(e))return null;let t=z(e.actionKey);if(!t||typeof e.allowed!=`boolean`)return null;let n=z(e.reason)??(e.allowed?`open`:`denied`);return{actionKey:t,allowed:e.allowed,reason:n}}function ds(e){let t=I(e),n=Array.isArray(t)?t:as(t)&&Array.isArray(t.items)?t.items:[],r=new Set,i=[];for(let e of n){let t=us(e);!t||r.has(t.actionKey)||(r.add(t.actionKey),i.push(t))}return i}function fs(e){if(!as(e))return null;let t=B(e.id),n=B(e.pageActionId),r=z(e.actionKey),i=z(e.pageActionName),a=B(e.appClientId),o=B(e.userId),s=B(e.rating),c=z(e.createdAt),l=z(e.updatedAt);return t==null||n==null||!r||!i||a==null||o==null||s==null||!c||!l?null:{id:t,pageActionId:n,actionKey:r,pageActionName:i,appClientId:a,userId:o,rating:s,comment:e.comment===null?null:z(e.comment)??null,createdAt:c,updatedAt:l}}function ps(){return{1:0,2:0,3:0,4:0,5:0}}function ms(e){let t=ps();if(!as(e))return t;for(let n of[`1`,`2`,`3`,`4`,`5`]){let r=B(e[n]);r!=null&&(t[n]=r)}return t}function hs(e){if(!as(e))return null;let t=B(e.pageActionId),n=z(e.actionKey),r=z(e.pageActionName),i=B(e.count);return t==null||!n||!r||i==null?null:{pageActionId:t,actionKey:n,pageActionName:r,count:i,avgRating:e.avgRating===null||e.avgRating===void 0?null:B(e.avgRating)??null,ratingDistribution:ms(e.ratingDistribution)}}function gs(e){if(!as(e))return null;let t=B(e.id),n=B(e.appClientId),r=B(e.userId),i=z(e.title),a=z(e.description),o=ss(e.status),s=z(e.createdAt),c=z(e.updatedAt);return t==null||n==null||r==null||!i||!a||!o||!s||!c?null:{id:t,appClientId:n,userId:r,title:i,description:a,pageScope:e.pageScope===null?null:z(e.pageScope)??null,relatedActionKey:e.relatedActionKey===null?null:z(e.relatedActionKey)??null,status:o,developerNote:e.developerNote===null?null:z(e.developerNote)??null,statusUpdatedAt:e.statusUpdatedAt===null?null:z(e.statusUpdatedAt)??null,createdAt:s,updatedAt:c}}function _s(e){let t=I(e),n=Array.isArray(t)?t:as(t)&&Array.isArray(t.items)?t.items:[],r=new Set,i=[];for(let e of n){let t=ls(e);!t||r.has(t.actionKey)||(r.add(t.actionKey),i.push(t))}return i}function vs(e){let t=I(e);return t==null?null:fs(t)}function ys(e){let t=hs(I(e));if(!t)throw Error(`Invalid page-action feedback summary`);return t}function bs(e){let t=gs(I(e));if(!t)throw Error(`Invalid page-action wish`);return t}function xs(e){let t=I(e);if(!as(t))return{items:[],total:0,page:1,pageSize:20,hasMore:!1};let n=(Array.isArray(t.items)?t.items:[]).map(e=>gs(e)).filter(e=>e!=null),r=B(t.total)??n.length,i=B(t.page)??1,a=B(t.pageSize)??20;return{items:n,total:r,page:i,pageSize:a,hasMore:typeof t.hasMore==`boolean`?t.hasMore:i*a<r}}function Ss(e){return encodeURIComponent(e.trim())}function Cs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ws(e){if(!(e instanceof m)||e.code!==`TRANSPORT_FAILED`)return null;let t=e.details;if(!Cs(t)||t.status!==409)return null;let n=[];t.data!=null&&n.push(t.data),Cs(t.body)&&(t.body.data!=null&&n.push(t.body.data),n.push(t.body));for(let e of n)if(Cs(e))try{if(e.code===`PAGE_ACTION_ALREADY_ACTIVE`)return{kind:`already_active`,...ts(e)};if(Cs(e.data)&&e.data.code===`PAGE_ACTION_ALREADY_ACTIVE`)return{kind:`already_active`,...ts(e.data)}}catch{}if(t.serverCode===`PAGE_ACTION_ALREADY_ACTIVE`&&Cs(t.data))try{return{kind:`already_active`,...ts(t.data)}}catch{return null}return null}var Ts=class{constructor(e){p(this,`http`,void 0),this.http=e}async invoke(e,t){try{return ns(await this.http.request(`/page-action/brain-invoke`,{method:`POST`,signal:t,body:e}))}catch(e){let t=ws(e);if(t)return t;throw e}}async reuseHint(e,t){return is(await this.http.request(`/page-action/reuse-hint`,{method:`POST`,signal:t,body:e}))}async invokeAccepted(e,t){return this.invoke(e,t)}streamRun(e,t){return this.http.stream(`/page-action/runs/${e}/stream`,{signal:t})}async listCatalog(e={},t){let n=e.pageScope?.trim();return _s(await this.http.request(`/page-action/catalog`,{method:`GET`,signal:t,searchParams:n?{pageScope:n}:void 0}))}async checkRollout(e,t){let n=Array.from(new Set(e.map(e=>e.trim()).filter(e=>e.length>0)));return n.length===0?[]:ds(await this.http.request(`/page-action/rollout-check`,{method:`POST`,signal:t,body:{actionKeys:n}}))}async upsertFeedback(e,t,n){let r=vs(await this.http.request(`/page-action/feedback/${Ss(e)}`,{method:`PUT`,signal:n,body:t}));if(!r)throw new m(`TRANSPORT_FAILED`,`Invalid feedback response`);return r}async getMyFeedback(e,t){return vs(await this.http.request(`/page-action/feedback/${Ss(e)}`,{method:`GET`,signal:t}))}async removeMyFeedback(e,t){await this.http.request(`/page-action/feedback/${Ss(e)}`,{method:`DELETE`,signal:t})}async getFeedbackSummary(e,t){return ys(await this.http.request(`/page-action/feedback/${Ss(e)}/summary`,{method:`GET`,signal:t}))}async createWish(e,t){return bs(await this.http.request(`/page-action/wishes`,{method:`POST`,signal:t,body:e}))}async listWishes(e={},t){let n={};return e.page!=null&&(n.page=e.page),e.pageSize!=null&&(n.pageSize=e.pageSize),e.status&&(n.status=e.status),e.keyword&&(n.keyword=e.keyword),e.pageScope&&(n.pageScope=e.pageScope),e.relatedActionKey&&(n.relatedActionKey=e.relatedActionKey),xs(await this.http.request(`/page-action/wishes`,{method:`GET`,signal:t,searchParams:n}))}async getWish(e,t){return bs(await this.http.request(`/page-action/wishes/${e}`,{method:`GET`,signal:t}))}async cancelWish(e,t){return bs(await this.http.request(`/page-action/wishes/${e}/cancel`,{method:`PATCH`,signal:t}))}},Es=class{constructor(e){p(this,`http`,void 0),this.http=e}async listTasks(e={}){let t=e.limit??20,n={limit:String(t),offset:String(e.offset??0)};return e.status&&(n.status=e.status),e.triggerSource&&(n.triggerSource=e.triggerSource),e.actionKey?.trim()&&(n.actionKey=e.actionKey.trim()),e.workflowKey?.trim()&&(n.workflowKey=e.workflowKey.trim()),Yo(I(await this.http.request(`/automation/tasks`,{method:`GET`,signal:e.signal,searchParams:n})),t)}async getPageActionRunTask(e,t){return Qo(I(await this.http.request(`/automation/tasks/page_action_run/${e}`,{method:`GET`,signal:t})))}};function Ds(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Os(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ks(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:null}return null}function As(e){return e==null?null:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):null}function js(e){if(!Ds(e))return null;let t=Os(e.key),n=Os(e.label),r=As(e.value);return!t||!n||r==null?null:{key:t,label:n,value:r}}function Ms(e){return Array.isArray(e)?e.map(e=>js(e)).filter(e=>e!=null):[]}function Ns(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=Os(n);e&&t.push(e)}return t}function Ps(e,t,n){let r=Os(e.toolName);return n===`fetch_data`?r??t:n===`load_page_context`?`load_page_context`:n===`summarize_images`?`summarize_images`:r??(n||t)}function Fs(e){if(!Ds(e))return null;let t=Os(e.kind);if(!t)return null;let n=Os(e.title)??t,r=Array.isArray(e.fields),i=Ds(e.record)?e.record:null;return!r&&i?{kind:t,title:n,fields:[],imageUrls:[],legacyRecord:i}:{kind:t,title:n,fields:Ms(e.fields),imageUrls:Ns(e.imageUrls)}}function Is(e){if(!Ds(e))return null;let t=Os(e.ref),n=Os(e.action);if(!t||!n)return null;let r=Ms(e.fields),i=Ns(e.imageUrls);return{ref:t,action:n,title:Os(e.title)??Ps(e,t,n),toolName:Os(e.toolName),toolId:ks(e.toolId),data:e.data,fields:r,imageUrls:i.length>0?i:void 0}}function Ls(e){if(!Ds(e))return null;let t=Array.isArray(e.inlineRecords)?e.inlineRecords.map(e=>Fs(e)).filter(e=>e!=null):[],n=Array.isArray(e.sources)?e.sources.map(e=>Is(e)).filter(e=>e!=null).sort((e,t)=>e.ref.localeCompare(t.ref)):[],r=t.some(e=>e.legacyRecord!=null);return{page:Os(e.page),routePath:Os(e.routePath),entityType:Os(e.entityType),entityId:Os(e.entityId),anchorLabel:Os(e.anchorLabel),inlineRecords:t,sources:n,legacy:r||void 0}}function Rs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zs(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function Bs(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);return Number.isFinite(t)?t:void 0}}function Vs(e){let t=zs(e);if(t===`chat`||t===`page_action`||t===`webhook`)return t}function Hs(e){let t=zs(e);if(t===`pending`||t===`approved`||t===`rejected`||t===`cancelled`||t===`expired`)return t}function Us(e){if(!Rs(e))return null;let t=Bs(e.id);return t==null?null:{id:t,username:zs(e.username)??null,employeeId:zs(e.employeeId)??null}}function Ws(e){if(!Rs(e))return null;let t=Bs(e.retryCount)??0,n=e.retryMax===null?null:Bs(e.retryMax)??null;return{retryCount:t,retryMax:n,canRetry:e.canRetry===!1?!1:e.canRetry===!0||n==null||t<n}}function Gs(e){if(!Rs(e))return null;let t=zs(e.tool);return t?{tool:t,riskLevel:zs(e.riskLevel)??`L2`}:null}function Ks(e){if(!Rs(e))return null;let t=Bs(e.id),n=Vs(e.source),r=Hs(e.status),i=zs(e.title),a=zs(e.createdAt);if(t==null||!n||!r||!i||!a)return null;let o=ft({writeDraft:Ae(e.writeDraft),writeDrafts:e.writeDrafts,editPolicy:$e(e.editPolicy),editPolicies:e.editPolicies}),s=o[0];return{id:t,source:n,status:r,title:i,summary:zs(e.summary)??null,workflowId:Bs(e.workflowId)??0,workflowVersion:Bs(e.workflowVersion)??0,workflowKey:zs(e.workflowKey)??null,workflowName:zs(e.workflowName)??null,nodeId:zs(e.nodeId)??``,sessionId:zs(e.sessionId)??null,pageActionRunId:Bs(e.pageActionRunId)??null,initiator:Us(e.initiator),createdAt:a,decidedAt:zs(e.decidedAt)??null,previewBlocks:e.previewBlocks??null,pendingWrite:Gs(e.pendingWrite),writeDraft:s?.writeDraft??null,editPolicy:s?.editPolicy??null,writeDrafts:o.length>1?o.map(e=>e.writeDraft):null,editPolicies:o.length>1?o.map(e=>e.editPolicy):null,draftReview:Ws(e.draftReview),entityReference:Ls(e.entityReference)}}function qs(e,t=50){let n=Rs(e)?e:null,r=(Array.isArray(n?.items)?n.items:[]).map(e=>Ks(e)).filter(e=>e!=null).filter(e=>e.source!==`chat`);return{items:r,hasMore:r.length>=t}}function Js(e){let t=Ks(e);return t?{...t,decidedAt:t.decidedAt??null}:null}function Ys(e){let t=Rs(e)?e:null;return{resumed:t?.resumed===!0,suspended:t?.suspended===!0||void 0}}function Xs(e){return Ys(e)}function Zs(e){return{ok:(Rs(e)?e:null)?.ok===!0}}var Qs=class{constructor(e){p(this,`http`,void 0),this.http=e}async listInbox(e={}){let t=e.limit??50,n={limit:String(t),offset:String(e.offset??0)};return e.status&&(n.status=e.status),qs(I(await this.http.request(`/approval/inbox`,{method:`GET`,signal:e.signal,searchParams:n})),t)}async getById(e,t){return Js(I(await this.http.request(`/approval/${e}`,{method:`GET`,signal:t})))}async decide(e,t,n,r){let i={decision:t};return n?.trim()&&(i.reason=n.trim()),Xs(I(await this.http.request(`/approval/${e}/decide`,{method:`POST`,signal:r,body:i})))}async confirm(e,t){return Ys(I(await this.http.request(`/approval/${e}/confirm`,{method:`POST`,signal:t})))}async reject(e,t,n){return Zs(I(await this.http.request(`/approval/${e}/reject`,{method:`POST`,signal:n,body:t?.trim()?{reason:t.trim()}:{}})))}};function $s(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ec(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function tc(e){if(typeof e==`number`&&Number.isFinite(e))return e}function nc(e){if(!$s(e))return null;let t=ec(e.definitionKey),n=ec(e.name),r=tc(e.toolId);return!t||!n||r===void 0?null:{definitionKey:t,name:n,description:ec(e.description)??``,riskLevel:ec(e.riskLevel)??`L1`,method:ec(e.method)??``,path:ec(e.path)??``,inputSchema:e.inputSchema??null,toolId:r}}function rc(e){if(!$s(e))throw new m(`TRANSPORT_FAILED`,`Invalid app tool invoke response`);let t=ec(e.definitionKey),n=ec(e.name),r=tc(e.toolId),i=tc(e.latencyMs)??0;if(!t||!n||r===void 0)throw new m(`TRANSPORT_FAILED`,`Invalid app tool invoke response shape`);return{ok:e.ok===!0,definitionKey:t,toolId:r,name:n,latencyMs:i,output:e.output,httpStatus:tc(e.httpStatus),error:ec(e.error)}}function ic(e){if(!(e instanceof m))return null;let t=e.details?.serverCode;return typeof t==`string`&&t.trim()?t.trim():null}var ac=class{constructor(e){p(this,`http`,void 0),this.http=e}async listCallable(e){let t=I(await this.http.request(`/app/tools/callable`,{method:`GET`,signal:e}));return{items:Array.isArray(t?.items)?t.items.map(nc).filter(e=>e!=null):[]}}async invoke(e){let t=e.definitionKey.trim();if(!t)throw new m(`INVALID_OPTIONS`,`definitionKey is required`);return rc(I(await this.http.request(`/app/tools/invoke`,{method:`POST`,signal:e.signal,body:{definitionKey:t,...e.parameters===void 0?{}:{parameters:e.parameters}}})))}},oc=class{constructor(e){p(this,`context`,void 0),p(this,`sessionId`,null),p(this,`initialMessages`,[]),this.context=e.context}updateContext(e){this.context={...this.context,...e}}getSession(){return this.sessionId?{sessionId:this.sessionId,conversationId:this.sessionId}:null}getInitialMessages(){return this.initialMessages}setSession(e,t=[]){this.sessionId=e.trim().toLowerCase(),this.initialMessages=t}reset(){this.sessionId=null,this.initialMessages=[]}};function sc(e){return/^\d+$/.test(e)}function cc(e){if(!sc(e))return null;let t=Number(e);return Number.isFinite(t)?t:null}function lc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function uc(e){if(typeof e==`string`)try{return uc(JSON.parse(e))}catch{return[]}return Array.isArray(e)?e.filter(e=>lc(e)&&typeof e.type==`string`):[]}function dc(e){let t=b(e)??(lc(e)?e:null);return t?{steps:uc(t.steps),turnExecutionTimeline:uc(t.turnExecutionTimeline)}:null}function fc(e){return e.turnExecutionTimeline.length>0?e.turnExecutionTimeline:e.steps}function pc(e){if(!lc(e))return null;let t=e.status;if(t!==`none`&&t!==`aligned`&&t!==`intent_first`&&t!==`clarified`)return null;let n={status:t};typeof e.code==`string`&&(n.code=e.code);let r=e.requestedSkillId;return typeof r==`number`&&Number.isFinite(r)&&(n.requestedSkillId=r),e.droppedExplicitSkill===!0&&(n.droppedExplicitSkill=!0),n}function mc(e){return e===`explicit`||e===`page_host`||e===`llm`?e:`llm`}function hc(e){return e===`explicit_skill`||e===`intent`?e:`intent`}function gc(e){return e===`inline_answer`||e===`entity_read_detail`||e===`none`?e:`none`}function _c(e){if(!e?.length)return null;let t=e.find(e=>e.type===`route_plan`);return!t?.output||!lc(t.output)?null:t.output}function vc(e){let t=_c(e);if(!t)return null;let n=pc(t.skillAlignment);if(!n)return null;let r=typeof t.requestedSkillId==`number`&&Number.isFinite(t.requestedSkillId)?t.requestedSkillId:null;return{skillAlignment:n,skillSelect:mc(t.skillSelect),scopedToolsSource:hc(t.scopedToolsSource),pageContextPlan:gc(t.pageContextPlan),hostMutationIntent:!!t.hostMutationIntent,requestedSkillId:r}}function yc(e){return vc(e)?.skillAlignment??null}function bc(e){return e?e.scopedToolsSource===`explicit_skill`&&e.skillAlignment.status===`aligned`&&e.skillSelect===`explicit`:!1}function xc(e){return e?.skillAlignment.status===`intent_first`}function Sc(e){return e?.status===`intent_first`}function Cc(e){return e?.skillAlignment.status===`clarified`}function wc(e){return e?.status===`clarified`}function Tc(e){return`skill_intent_mismatch.${e}`}function Ec(e){if(!e?.length)return null;for(let t=e.length-1;t>=0;--t){let n=e[t];if(n.type!==`summarize`)continue;let r=n.output;if(!lc(r))continue;let i=r.observations;if(Array.isArray(i))for(let e of i){if(!lc(e)||e.name!==`skill_intent_mismatch`)continue;let t=e.output;if(lc(t))return{userMessage:typeof t.userMessage==`string`?t.userMessage:void 0,mismatchCode:typeof t.mismatchCode==`string`?t.mismatchCode:void 0,requestedSkillId:typeof t.requestedSkillId==`number`?t.requestedSkillId:void 0,requestedSkillName:typeof t.requestedSkillName==`string`?t.requestedSkillName:void 0,routingReason:typeof t.routingReason==`string`?t.routingReason:void 0}}}return null}var Dc=new Set([`stage`,`thought`,`evidence`,`ask`,`outcome`]),Oc=80,kc={fetch_data:`gather`,detect_clues:`gather`,summarize_images:`gather`,generate_and_push:`produce`,summarize:`produce`,compose_mutation:`produce`,present_mutation:`produce`,write_data:`produce`,await_user_confirm:`other`};function Ac(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function jc(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Mc(e){let t=V(e);return t===`planning`||t===`gather`||t===`produce`||t===`other`?t:null}function Nc(e){let t=String(e??``).trim();return t?kc[t]??null:null}function Pc(e){let t=V(e);return t&&Dc.has(t)?t:null}function Fc(e){if(!Ac(e))return null;let t=V(e.key),n=V(e.label),r=V(e.value);return!t||!n||r==null?null:{key:t,label:n,value:r??``}}function Ic(e){if(!Ac(e))return null;let t=Pc(e.kind);if(!t)return null;let n=(Array.isArray(e.fields)?e.fields:null)?.map(Fc).filter(e=>e!=null).slice(0,12),r=(Array.isArray(e.missing)?e.missing:null)?.map(e=>V(e)).filter(e=>!!e).slice(0,12),i=jc(e.turn);return{kind:t,code:V(e.code),text:V(e.text),turn:i??void 0,actionType:V(e.actionType),title:V(e.title),fields:n&&n.length>0?n:void 0,ref:V(e.ref),missing:r&&r.length>0?r:void 0}}function Lc(e){return Array.isArray(e)?e.map(Ic).filter(e=>e!=null).slice(0,8):[]}function Rc(e){return[e.kind,e.code??``,e.ref??``,e.turn==null?``:String(e.turn),e.text??``,e.title??``].join(``)}function zc(e,t){let n=e??[],r=t??[];if(r.length===0)return n;let i=new Set(n.map(Rc)),a=[...n];for(let e of r){let t=Rc(e);i.has(t)||(i.add(t),a.push(e))}return a.length===n.length?n:a.length>Oc?a.slice(-80):a}function Bc(e){return(e??[]).some(e=>e.kind!==`stage`)}function Vc(e){return(e??[]).filter(e=>e.kind!==`stage`).length}var Hc={itemCount:`相关条数`,observationCount:`观测数`,identity:`标识`,page:`页码`,rowCount:`行数`,fetchedCount:`已获取`,achieved:`已达成`},Uc={itemCount:`Items`,observationCount:`Observations`,identity:`ID`,page:`Page`,rowCount:`Rows`,fetchedCount:`Fetched`,achieved:`Achieved`};function Wc(e){let t=String(e??``).toLowerCase();return!t||t.startsWith(`zh`)}function Gc(e,t){let n=e.key.trim(),r=e.label.trim();return(Wc(t)?Hc[n]:Uc[n])||(r===n&&Hc[n]?Wc(t)?Hc[n]:Uc[n]:r||n)}function Kc(e){let t=String(e.code??``);return e.kind===`evidence`&&(t.endsWith(`_summary`)||t.endsWith(`_empty`)||t===`fetch_summary`||t===`fetch_empty`)}function qc(e){let t=String(e.code??``);return e.kind===`evidence`&&(t.endsWith(`_entity_preview`)||t===`fetch_entity_preview`)}function Jc(e){let t=e??[],n=e=>{for(let n=t.length-1;n>=0;--n){let r=t[n];if(!e.includes(r.kind))continue;let i=r.text?.trim()||r.title?.trim();if(i)return i}return null};return n([`ask`])||n([`outcome`])||n([`evidence`])||n([`thought`])||null}function Yc(e){let t=e??[],n=t.filter(e=>e.kind===`ask`),r=t.filter(e=>e.kind===`outcome`),i=t.filter(e=>e.kind!==`ask`&&e.kind!==`outcome`),a=n.map(e=>({type:`ask`,item:e})),o=[],s=null,c=[],l=()=>{o.length!==0&&(a.push({type:`stage-group`,items:o}),o=[])},u=()=>{!s&&c.length===0||((s||c.length>0)&&a.push({type:`evidence-group`,summary:s,entities:c}),s=null,c=[])};for(let e of i){if(e.kind===`stage`){u(),o.push(e);continue}if(l(),e.kind===`thought`){u(),a.push({type:`thought`,item:e});continue}if(e.kind===`evidence`){if(Kc(e)){u(),s=e;continue}if(qc(e)){c.push(e);continue}u(),a.push({type:`evidence`,item:e})}}l(),u();for(let e of r)a.push({type:`outcome`,item:e});return a}function Xc(e){if(!Ac(e))return null;let t=V(e.phase);if(t!==`start`&&t!==`progress`&&t!==`complete`&&t!==`failed`&&t!==`awaiting_approval`)return null;let n=jc(e.actionRunId),r=jc(e.generation),i=V(e.actionKey),a=V(e.nodeId)??``;if(n==null||r==null||!i)return null;let o=V(e.action)??(e.action===null?null:void 0),s=V(e.progress)??null,c=Mc(e.stageKind)??Nc(o??null)??Zc(s),l=V(e.narrative)??(e.narrative===null?null:void 0),u=e.narrativeItems,d=u==null?null:Lc(u);return{phase:t,actionRunId:n,actionKey:i,generation:r,clientActionId:V(e.clientActionId)??null,nodeId:a,action:o===void 0?void 0:o,stageKind:c,stageIndex:jc(e.stageIndex),stageTotal:jc(e.stageTotal),progress:s,narrative:l===void 0?void 0:l,narrativeItems:d,errorCode:V(e.errorCode),errorMessage:V(e.errorMessage)}}function Zc(e){let t=String(e??``).trim();return t===`planning`||t===`fetch_planning`?`planning`:t===`host_llm_waiting`||t===`fetch_tools`?`produce`:t===`fetching`||t===`fetch_data`?`gather`:null}function Qc(e,t){if(e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t)||t<=1)return null;let n=Math.trunc(e),r=Math.trunc(t);return r<=1?null:n>=0&&n<r?n===0?1:n:n===r?r:null}function $c(e){return Wc(e)?`处理中…`:`Working…`}function el(e){return Wc(e)?`查可用结果…`:`Checking prior results…`}function tl(e){return Wc(e)?`已套用已有结果`:`Applied existing result`}function nl(e){return Wc(e)?`套用结果…`:`Applying result…`}function rl(e){return Wc(e)?`请选择目标…`:`Pick a target…`}function il(e){return Wc(e)?`正在执行…`:`Running…`}function al(e){return Wc(e)?`等待审批…`:`Awaiting approval…`}function ol(e){return Wc(e)?`当前任务已在执行中`:`This task is already running`}function sl(e){return Wc(e)?`该操作正在等待审批,请在审批收件箱处理`:`This action is awaiting approval — open the approval inbox to continue`}function cl(e,t){if(e.phase===`complete`||e.phase===`failed`)return null;let n=Wc(t),r=e.stageKind??Zc(e.progress)??`other`;if(e.phase===`awaiting_approval`)return n?`等待审批…`:`Waiting for approval…`;if(r===`planning`)return n?`正在规划步骤…`:`Planning steps…`;if(r===`gather`){let t=Qc(e.stageIndex,e.stageTotal);return t!=null&&e.stageTotal!=null?n?`正在收集信息(${t}/${Math.trunc(e.stageTotal)})…`:`Gathering info (${t}/${Math.trunc(e.stageTotal)})…`:n?`正在收集信息…`:`Gathering info…`}return r===`produce`?n?`正在生成结果…`:`Generating results…`:n?`处理中…`:`Working…`}var ll=`page-action:`;function ul(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function dl(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function fl(e){try{return JSON.parse(e)}catch{return null}}function pl(e,t){throw new m(`PAGE_ACTION_FAILED`,e,{details:t})}function ml(e){if(e instanceof m){if(e.code===`TRANSPORT_ABORTED`||e.code===`PAGE_ACTION_FAILED`)throw e;if(e.code===`TRANSPORT_FAILED`)throw new m(`PAGE_ACTION_FAILED`,e.message,{cause:e,details:e.details})}throw e}function hl(e){return e?{...e.page?{page:e.page}:{},...e.entity?{entity:e.entity}:{}}:{}}function gl(e){if(!Sn(e))return;let t=e.dsl;if(!t||t.op!==`arg.append`)return;let n=t.chunk;return typeof n==`string`?n:void 0}function _l(e){let t=dl(e.phase),n=typeof e.actionRunId==`number`?e.actionRunId:null,r=dl(e.actionKey),i=typeof e.generation==`number`?e.generation:null;return!t||n==null||!r||i==null||t!==`started`&&t!==`stream`&&t!==`completed`&&t!==`failed`&&t!==`awaiting_approval`?null:{phase:t,actionRunId:n,actionKey:r,generation:i,clientActionId:dl(e.clientActionId)??null,streamId:dl(e.streamId)??null,text:typeof e.text==`string`?e.text:void 0,dslOutcome:typeof e.dslOutcome==`string`?e.dslOutcome:e.dslOutcome===null?null:void 0,errorCode:dl(e.errorCode),errorMessage:dl(e.errorMessage),brainClarify:Io(e.brainClarify)}}async function vl(e,t){let n=0,r=``,i=null,a=!1;for await(let o of e){if(o.event===`ping`)continue;if(o.event===`page_workflow`){let e=Xc(fl(o.data));e&&t.onWorkflowProgress?.(e);continue}if(o.event===`host_action`){let e=Rn(fl(o.data));if(e){t.onHostAction(e);let n=gl(e);n&&t.onChunk?.(n)}else t.debug&&typeof console<`u`&&typeof console.warn==`function`&&console.warn(`[agent-chat] page_action: ignored malformed host_action SSE frame`);continue}if(o.event!==`page_action`)continue;let e=fl(o.data);if(!ul(e))continue;let s=_l(e);if(s&&t.onLifecycle?.(s),typeof e.actionRunId==`number`&&Number.isFinite(e.actionRunId)&&(n=e.actionRunId),e.phase===`stream`){let n=typeof e.text==`string`?e.text:``;n&&(r+=n,t.onChunk?.(n));continue}if(e.phase===`completed`&&(a=!0,r=typeof e.text==`string`?e.text:``,i=typeof e.dslOutcome==`string`?e.dslOutcome:e.dslOutcome===null?null:i),e.phase===`failed`){let t=dl(e.errorCode),r=dl(e.errorMessage)??`Page action invoke failed`,i=Io(e.brainClarify);if(Lo(t)&&i)return{actionRunId:n,text:i.question,dslOutcome:null,awaitingClarify:!0,actionKey:dl(e.actionKey),clientActionId:dl(e.clientActionId),brainClarify:i,message:i.question};pl(r,{serverCode:t,actionRunId:n||void 0,phase:`failed`,brainClarify:i??void 0})}if(e.phase===`awaiting_approval`)return{actionRunId:n,text:``,dslOutcome:null,awaitingApproval:!0,status:`awaiting_approval`,actionKey:dl(e.actionKey),clientActionId:dl(e.clientActionId)}}return a||pl(`Page action stream ended without completion`,{actionRunId:n||void 0,phase:`incomplete`}),{actionRunId:n,text:r,dslOutcome:i}}var yl=vl;function bl(e){if(!e||typeof e.getBoundingClientRect!=`function`)return null;let t=e.getBoundingClientRect();return t.width<=0&&t.height<=0?null:{left:t.left,top:t.top,width:t.width,height:t.height}}function xl(e){return JSON.stringify({actionKey:e.actionKey.trim(),pageContext:e.pageContext??null,instruction:e.instruction?.trim()||null,context:e.context&&Object.keys(e.context).length>0?e.context:null})}var Sl=class{constructor(){p(this,`byBodyKey`,new Map),p(this,`bodyKeyByPageActionKey`,new Map)}get(e){return this.byBodyKey.get(xl(e))??null}set(e,t){let n=xl(e);this.byBodyKey.set(n,t);let r=t.pageActionKey.trim();r&&this.bodyKeyByPageActionKey.set(r,n)}invalidateByPageActionKey(e){let t=e?.trim();if(!t)return;let n=this.bodyKeyByPageActionKey.get(t);n&&(this.byBodyKey.delete(n),this.bodyKeyByPageActionKey.delete(t))}invalidateByBody(e){let t=xl(e),n=this.byBodyKey.get(t);this.byBodyKey.delete(t),n?.pageActionKey&&this.bodyKeyByPageActionKey.delete(n.pageActionKey.trim())}clear(){this.byBodyKey.clear(),this.bodyKeyByPageActionKey.clear()}};function Cl(e){let t=e?.routePath?.trim();return t?{kind:`routePath`,path:t}:{kind:`none`}}var wl=`omnix-chat:pending-page-action-apply:`,Tl=18e5;function El(e){return`${wl}${e.trim()}`}function Dl(e){let t=Date.parse(e.createdAt);return Number.isFinite(t)?Date.now()-t<=Tl:!1}function Ol(e){if(typeof sessionStorage>`u`)return null;try{let t=sessionStorage.getItem(El(e));if(!t)return null;let n=JSON.parse(t);return!n||typeof n.runId!=`number`||!Number.isFinite(n.runId)||typeof n.actionKey!=`string`||!n.actionKey.trim()?null:Dl(n)?{runId:Math.trunc(n.runId),actionKey:n.actionKey.trim(),pageContext:n.pageContext??null,createdAt:typeof n.createdAt==`string`?n.createdAt:new Date().toISOString()}:(sessionStorage.removeItem(El(e)),null)}catch{return null}}function kl(e,t){if(!(typeof sessionStorage>`u`))try{sessionStorage.setItem(El(e),JSON.stringify(t))}catch{}}function Al(e){if(!(typeof sessionStorage>`u`))try{sessionStorage.removeItem(El(e))}catch{}}function jl(e){return e==null?null:String(e).trim()||null}function Ml(e,t){if(!e)return!1;let n=t.actionKey.trim();if(!n||e.actionKey!==n)return!1;let r=t.pageContext?.page?.trim()||null,i=e.pageContext?.page?.trim()||null;if(i&&r!==i)return!1;let a=jl(t.pageContext?.entity?.id),o=jl(e.pageContext?.entity?.id);return!(o&&a!==o)}var Nl=6e4,Pl=18e5;function H(e){return e===`running`||e===`awaiting_approval`}function Fl(e){let t=0;for(let n of e.values())H(n.status)&&(t+=1);return t}function Il(e){let t=new Set;for(let n of e.values()){if(!H(n.status))continue;let e=n.pageActionKey?.trim();e&&t.add(e)}return t}function Ll(e,t){let n=t.trim();if(!n)return null;for(let t of e.values()){if(t.actionKey!==n||!H(t.status))continue;let e=t.pageActionKey?.trim();if(e)return e}return null}function Rl(e){let t=Date.now()-Pl;for(let[n,r]of e){if(!H(r.status))continue;let i=Date.parse(r.updatedAt);Number.isFinite(i)&&i<t&&e.delete(n)}}function zl(e,t){switch(t){case`active`:return H(e);case`all`:return!0;default:return e===t}}function Bl(e){switch(e){case`started`:case`stream`:return`running`;case`completed`:return`completed`;case`failed`:return`failed`;case`awaiting_approval`:return`awaiting_approval`;default:return null}}function Vl(e,t,n){let r=new Date().toISOString(),i=e.status===`awaiting_approval`?`awaiting_approval`:e.status===`running`?`running`:e.status,a=n?.title?.trim()||Hl(t);return{ref:{kind:`page_action_run`,id:e.runId},triggerSource:`page_action`,taskStatus:i,title:a,subtitle:n?.subtitle?.trim()||null,workflowKey:null,workflowName:null,pageActionKey:e.pageActionKey,createdAt:r,finishedAt:null,durationMs:null,approval:null,outputs:{preview:null,hasFillText:!1}}}function Hl(e,t){let n=t?.trim(),r=e.trim();return n&&n!==r&&!Ul(n)?n:!r||Ul(r)?`PageAction`:(r.includes(`.`)?r.slice(r.lastIndexOf(`.`)+1):r)||r}function Ul(e){return/^[a-f0-9]{32,}$/i.test(e.trim())}function Wl(e,t){return e.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===t)}function Gl(e,t){let n=Wl(e,t.ref.id);if(n>=0){let r=[...e];return r[n]={...r[n],...t},r}return[t,...e]}function Kl(e,t,n){let r=Wl(e,t);if(r<0)return e;let i=[...e],a=i[r];return i[r]={...a,...n,outputs:n.outputs?{...a.outputs,...n.outputs}:a.outputs,approval:n.approval===void 0?a.approval:n.approval},i}function ql(e,t){return e.filter(e=>e.ref.kind!==`page_action_run`||e.ref.id!==t)}function Jl(e,t){let n=new Set(e.filter(e=>e.ref.kind===`page_action_run`).map(e=>e.ref.id)),r=[];for(let e of t.values())H(e.status)&&(n.has(e.runId)||r.push(Vl({runId:e.runId,generation:0,clientActionId:e.clientActionId,pageActionKey:e.pageActionKey,streamUrl:``,status:e.status},e.actionKey)));if(r.length===0)return e;let i=[...r];for(let t of e)t.ref.kind===`page_action_run`&&r.some(e=>e.ref.id===t.ref.id)||i.push(t);return i}function Yl(e,t,n={}){let r=new Set,i=new Date().toISOString(),a=Date.now(),o=n.fallbackActionKey?.trim()||null;for(let n of t){if(n.ref.kind!==`page_action_run`||!H(n.taskStatus))continue;r.add(n.ref.id);let t=e.get(n.ref.id),a=o||t?.actionKey||n.title;e.set(n.ref.id,{runId:n.ref.id,actionKey:a,pageActionKey:t?.pageActionKey??n.pageActionKey??null,rowKey:t?.rowKey??null,status:n.taskStatus,registeredAt:t?.registeredAt??n.createdAt??i,updatedAt:i,clientActionId:t?.clientActionId??null})}for(let t of e.keys()){if(r.has(t))continue;let n=e.get(t);if(!n)continue;let i=Date.parse(n.registeredAt);Number.isFinite(i)&&a-i<3e4||e.delete(t)}}var Xl=[`active`,`awaiting_approval`,`completed`,`failed`];function Zl(){let e=new Map;for(let t of Xl)e.set(t,Ql());return e}function Ql(){return{items:[],hasMore:!1,total:0,hydrated:!1}}function $l(e,t){return e.get(t)??Ql()}function eu(e,t,n){let r=$l(e,t);e.set(t,{items:n.items??r.items,hasMore:n.hasMore??r.hasMore,total:n.total??r.total,hydrated:n.hydrated??r.hydrated})}function tu(e){let t=e===`awaiting_approval`,n=e===`awaiting_clarify`,r=!t&&!n&&e!==`awaiting_reuse`&&(e===`submitting`||e===`launched`||e===`streaming`);return{awaitingApproval:t,awaitingClarify:n,loading:r,disabled:r||t||n}}function nu(e){switch(e){case`awaiting_approval`:return`awaiting_approval`;case`running`:return`streaming`;case`completed`:return`completed`;case`failed`:return`failed`;case`cancelled`:return`idle`;default:return`idle`}}function ru(e){return e.rowKey?.trim()||(e.entityId==null?null:String(e.entityId).trim()||null)}function iu(e){return`run:${Math.trunc(e)}`}function au(e,t={}){let n=iu(Math.trunc(e)),r=t.rowKey?.trim();return r&&r!==n?r:t.findRowKeyByRunId?.()?.trim()||ru({entityId:t.entityId??null})||r||n}function U(e){let t=tu(e.phase);return{...e,message:e.message??null,progressLabel:e.progressLabel??null,narrativeItems:e.narrativeItems??[],brainClarify:e.brainClarify??null,awaitingApproval:e.awaitingApproval??t.awaitingApproval,awaitingClarify:e.awaitingClarify??t.awaitingClarify,loading:e.loading??t.loading,disabled:e.disabled??t.disabled,updatedAt:e.updatedAt??Date.now()}}function ou(e){return`${e.actionKey.trim()}::${e.rowKey.trim()}`}function su(e){let t=e.trim();return!t||t===`*`}var cu=class{constructor(e){p(this,`slots`,new Map),p(this,`syncInflight`,new Map),p(this,`syncDirty`,new Set),p(this,`liveRestoreInflight`,new Map),p(this,`applyPhaseBySlot`,new Map),p(this,`replayInflight`,new Set),p(this,`deps`,void 0),this.deps=e}getApplyPhase(e){return this.applyPhaseBySlot.get(e)??`idle`}bind(e){let t=ou(e);return this.slots.set(t,e),this.syncSlot(t),()=>{this.slots.delete(t),this.syncInflight.delete(t),this.syncDirty.delete(t),this.applyPhaseBySlot.delete(t)}}patch(e,t){let n=this.slots.get(e);n&&(this.slots.set(e,{...n,...t}),this.syncSlot(e))}onAuthReady(){for(let e of this.slots.keys())this.syncSlot(e)}onPendingApplyChanged(){for(let[e,t]of this.slots)t.autoApplyPending&&this.syncSlot(e)}listBindings(){return[...this.slots.values()]}setApplyPhase(e,t){return this.applyPhaseBySlot.set(e,t),this.deps.onApplyPhaseChanged(e,t),{applyPhase:t}}matchesPending(e){if(su(e.rowKey))return null;let t=this.deps.getPendingPageActionApply();return t&&Ml(t,{actionKey:e.actionKey,pageContext:e.pageContext})?t:null}async syncSlot(e){let t=this.syncInflight.get(e);if(t)return this.syncDirty.add(e),t;let n={current:null},r=(async()=>{let t={applyPhase:this.getApplyPhase(e)};try{do this.syncDirty.delete(e),t=await this.runSlotSync(e);while(this.syncDirty.has(e)&&this.slots.has(e));return t}finally{this.syncInflight.get(e)===n.current&&this.syncInflight.delete(e)}})();return n.current=r,this.syncInflight.set(e,r),r}async runLiveRestore(e){let t=e.trim();if(!t)return;let n=this.liveRestoreInflight.get(t);if(n){await n;return}let r=(async()=>{await this.deps.reconcileActivePageActions({actionKey:t}),await this.deps.resumeActivePageActionStreams({actionKey:t})})().finally(()=>{this.liveRestoreInflight.get(t)===r&&this.liveRestoreInflight.delete(t)});this.liveRestoreInflight.set(t,r),await r}async runSlotSync(e){if(!this.slots.get(e))return{applyPhase:`idle`};try{await this.deps.ensureLoggedIn()}catch{return this.setApplyPhase(e,`idle`)}let t=this.slots.get(e);if(!t)return{applyPhase:`idle`};if(t.autoApplyPending&&!su(t.rowKey)){let n=this.matchesPending(t);if(n){if(!t.ready)return this.setApplyPhase(e,`waiting_ready`);if(this.replayInflight.has(n.runId))return this.setApplyPhase(e,`replaying`);this.replayInflight.add(n.runId),this.setApplyPhase(e,`replaying`);try{return await this.deps.replayPageAction(n.runId),this.setApplyPhase(e,`done`)}catch{return this.setApplyPhase(e,`error`)}finally{this.replayInflight.delete(n.runId)}}this.getApplyPhase(e)!==`idle`&&this.setApplyPhase(e,`idle`)}return t.autoResume&&await this.runLiveRestore(t.actionKey),{applyPhase:this.getApplyPhase(e)}}},lu=`3.0.2`;function uu(e=`id`){let t=globalThis.crypto;return t?.randomUUID?`${e}_${t.randomUUID().replace(/-/g,``).slice(0,12)}`:`${e}_${Math.random().toString(36).slice(2,14)}`}function du(e){return e.replace(/\/+$/,``)}var fu=20,pu=20,mu=20;function W(e){return e.trim().toLowerCase()}function hu(e,t){let n=new Set(e.map(e=>W(e.sessionId))),r=[...e];for(let e of t){let t=W(e.sessionId);n.has(t)||(n.add(t),r.push(e))}return r}function gu(e,t){let n=new Set(e.map(e=>String(e.id))),r=[];for(let e of t){let t=String(e.id);n.has(t)||(n.add(t),r.push(e))}return[...r,...e]}function _u(){return{phase:`thinking`,thinkText:``,resultText:``}}function vu(e,t,n={}){let r=(n.content?.type===`text`?n.content.text:void 0)??(t.resultText||e.content.text),i=n.blocks??t.resultBlocks??e.blocks,a=pe(r),o=a??S(i??[]),s=a?me(o):r;return{...e,...n,status:n.status??`sent`,content:{type:`text`,text:s},blocks:o,thinkText:void 0,stream:void 0}}function yu(){return typeof navigator<`u`&&navigator.language?navigator.language:`en`}function bu(){return typeof window<`u`&&window.location?.origin?window.location.origin:`unknown://sdk`}var xu=class{constructor(e=uu(`inst`)){p(this,`id`,void 0),p(this,`bus`,new bn),p(this,`lifecycle`,`uninitialized`),p(this,`state`,null),p(this,`stateChangeListeners`,new Set),p(this,`sessionEpoch`,0),p(this,`stateSnapshot`,null),p(this,`authStoreUnsub`,void 0),p(this,`prepareAbort`,null),p(this,`prepareTimer`,null),p(this,`lastPrepareFingerprint`,null),p(this,`skillsLoadToken`,0),p(this,`pendingStreamTargets`,new Map),p(this,`sessionStreamConnects`,new Map),p(this,`sessionStreamSuppressReconnect`,new Set),p(this,`sessionStreamReconnectTimers`,new Map),p(this,`sessionStreamReconnectAttempts`,new Map),p(this,`hostToolStreamManagers`,new Map),p(this,`pageActionInFlightKeys`,new Set),p(this,`approvalInboxRefreshPromise`,null),p(this,`approvalPendingCountRefreshPromise`,null),p(this,`pageActionAwaitingApprovalNotified`,new Set),p(this,`automationTaskRefreshPromise`,null),p(this,`automationTaskRefreshCacheKey`,null),p(this,`automationTaskListPublishSeq`,0),p(this,`pageActionRunAborts`,new Map),p(this,`pageActionRunStreamPromises`,new Map),p(this,`pendingPageActionApply`,null),p(this,`pageActionReusePromptHandler`,null),p(this,`pageActionReuseDismissEpochByRowKey`,new Map),p(this,`pageActionReuseHintCache`,new Sl),p(this,`pageActionInvokeSnapshotsByRowKey`,new Map),p(this,`pageActionInvokeSnapshotsByRunId`,new Map),p(this,`pageActionFeedbackCatalogItems`,[]),p(this,`pageActionFeedbackNames`,new Map),p(this,`automationRunRegistry`,new Map),p(this,`pageActionRows`,new Map),p(this,`pageActionRunToRowKey`,new Map),p(this,`automationTasksLastSyncedAt`,0),p(this,`pendingRouteContextOverride`,void 0),p(this,`pendingPageContext`,void 0),p(this,`pendingAttachPageContext`,void 0),p(this,`pendingContextMentionRegistry`,new Map),p(this,`initGate`,void 0),p(this,`loginGate`,void 0),p(this,`pageActionCoordinator`,void 0),p(this,`pageActionRowIdleTimers`,new Map),p(this,`pageActionNarrativeClearTimers`,new Map),this.id=e,this.pageActionCoordinator=new cu({ensureLoggedIn:()=>this.ensureLoggedIn(`pageActionSlotSync`),reconcileActivePageActions:e=>this.reconcileActivePageActions(e),resumeActivePageActionStreams:e=>this.resumeActivePageActionStreams(e),replayPageAction:e=>this.replayPageAction(e),getPendingPageActionApply:()=>this.getPendingPageActionApply(),onApplyPhaseChanged:(e,t)=>{this.bus.emit(`pageActionSlotApplyPhaseChanged`,{slotKey:e,phase:t})}});let t=()=>this.notifyStateChange();this.initGate=new fn(()=>this.state!=null&&this.lifecycle===`initialized`,`init`,t),this.loginGate=new fn(()=>!!this.state?.isLoggedIn,`login`,t)}applyRuntimeOptions(e){let t=this.state;if(!t){e.attachPageContext!==void 0&&(this.pendingAttachPageContext=e.attachPageContext===!0),e.pageContext!==void 0&&(this.pendingPageContext=e.pageContext),this.notifyStateChange();return}let n=!1;if(e.attachPageContext!==void 0){let r=e.attachPageContext===!0;t.attachPageContext!==r&&(t.attachPageContext=r,n=!0)}e.pageContext!==void 0&&(t.pageContext=e.pageContext,t.options={...t.options,pageContext:e.pageContext??void 0},n=!0,this.schedulePrepareSession()),n&&this.notifyStateChange()}async init(e){if(yn(),this.state){if(this.state.options.dsn===e.dsn)return typeof console<`u`&&typeof console.warn==`function`&&console.warn(`[agent-chat] init() called twice with the same DSN — keeping existing instance state.`),this.applyRuntimeOptions({attachPageContext:e.attachPageContext,pageContext:e.pageContext}),this;throw new m(`ALREADY_INITIALIZED`,`AgentChat is already initialized with a different DSN. Call destroy() first.`)}if(!e||typeof e!=`object`)throw new m(`INVALID_OPTIONS`,`init(options): options object is required`);let t=du((e.baseUrl?.trim()||`http://localhost:3030`).replace(/\s+/g,``)),n=te(e.dsn);await ln();let r=sn.getState().getAccessTokenForDsn(n),i=typeof e.accountToken==`string`&&e.accountToken.trim()||typeof e.userAccessToken==`string`&&e.userAccessToken.trim()||r||null,a=fo({apiBase:t,defaultHeaders:{[ee]:n,"X-Agent-Sdk-Version":lu,...e.headers??{}}}),o=new po(a),s=new yo(a),c=new To(a),l=new Eo(a),u=new Do(a),d=new Ts(a),f=new Qs(a),p=new Es(a),h=new ac(a),g=null,ne=!1,_=null,re=null;try{g=await o.authenticate(n,i),ne=!0,_=g.accessToken?.trim()??null,sn.getState().setAuth(n,g),_&&v(a,_)}catch(t){re=wu(t),e.debug&&console.warn(`[agent-chat] app-client auth failed during init:`,re)}let ie=new ho(a,()=>({dsn:this.state?.dsn??n})),ae=new oc({context:{sdkVersion:lu,origin:bu(),locale:e.locale??yu(),user:e.user??Cu(g?.user)}});return this.state={options:e,dsn:n,apiBaseUrl:t,http:a,auth:o,chat:s,agent:ie,feedback:c,hostTool:l,agentRun:u,pageAction:d,approval:f,automation:p,appTool:h,session:ae,abortControllers:new Set,isOpen:!1,isClientAuthenticated:ne,isLoggedIn:!!_||un(n),catalogHydrated:!1,sessions:[],sessionsPage:0,sessionsPageSize:20,sessionsHasMore:!1,sessionsLoadingMore:!1,activeSessionId:null,activeSessionMessagesPage:0,activeSessionMessagesHasMore:!1,sessionMessagesLoadingMore:!1,sessionMessagesPageSize:20,sessionMessagesCache:new Map,agents:e.agents?[...e.agents]:[],skills:[],selectedAgentId:e.defaultAgentId?.trim()??null,autoAgent:null,selectedSkillId:e.defaultSkillId?.trim()??null,agentsLoading:!1,skillsLoading:!1,agentsEmptyReason:null,userJwt:_??dn(n),sessionStreams:new Map,sessionRuns:new Map,messages:[],lastError:re,writeConfirmation:null,writeConfirmationsBySession:new Map,approvalInboxLoading:!1,approvalInboxLoadingMore:!1,approvalInboxHasMore:!1,approvalInboxStatusFilter:`pending`,approvalInboxPendingCount:0,approvalInboxItems:[],automationTaskLoading:!1,automationTaskLoadingMore:!1,automationTaskHasMore:!1,automationTaskTotal:0,automationTaskStatusFilter:`active`,automationTaskActiveCount:0,automationTaskItems:[],automationTaskTabCaches:Zl(),automationRecentRunIds:[],automationTaskSelectedDetail:null,automationTaskDetailLoading:!1,skillIntentBanner:null,skillIntentClarify:null,brainClarify:null,skillTurnContract:null,skillTurnActive:null,lastTurnUserMessage:null,skillPickerOpen:!1,downReasonTagsCache:null,pageContext:e.pageContext??null,routeContextOverride:null,routeContext:null,attachPageContext:e.attachPageContext===!0,appClientId:g?.appClient?.id??null,contextMentionRegistry:new Map},this.lifecycle=`initialized`,this.stateSnapshot=null,this.initGate.reconcile(),this.authStoreUnsub=sn.subscribe(()=>{this.syncAuthFromStore()}),this.syncAuthFromStore(),this.applyPendingRuntimeConfig(this.state),this.syncRouteContextFromWindow(),this.applyStaticSkills(this.state),this.syncDefaultAgentSelection(this.state),e.onReady&&this.bus.on(`ready`,e.onReady),queueMicrotask(()=>this.bus.emit(`ready`,void 0)),this.isHostToolServerSyncReady()&&yi(this).catch(t=>{e.debug&&console.warn(`[agent-chat] flushPendingHostToolSyncs failed:`,t)}),e.autoOpen&&this.open(),this.refreshApprovalBadgeBestEffort(),this.notifyPageActionAuthReady(),this.scheduleAutomationTasksBestEffort(),this}async login(e){await this.ensureInitialized(`login`);let t=this.requireState(`login`),n=e?.email?.trim(),r=e?.password?.trim();if(!n||!r)throw new m(`INVALID_OPTIONS`,`login requires email and password`);let i;try{i=await t.auth.login(n,r)}catch(e){throw e instanceof m&&e.code===`TRANSPORT_FAILED`?new m(`LOGIN_FAILED`,e.message,{cause:e,details:e.details}):e}let a=i.accessToken?.trim();if(!a)throw new m(`LOGIN_FAILED`,`Login succeeded but no access token was returned.`);y(t.http);let o=await t.auth.authenticate(t.dsn,a);this.commitAuthSession(o),yi(this).catch(e=>{t.options.debug&&console.warn(`[agent-chat] flushPendingHostToolSyncs failed:`,e)}),t.isOpen&&this.refreshAgentCatalog().catch(()=>{}),this.refreshApprovalBadgeBestEffort(),this.scheduleAutomationTasksBestEffort()}logout(){let e=this.state;e&&(this.abortAllSessionStreams(e),this.cancelAllSessionStreamReconnects(),e.isLoggedIn=!1,y(e.http),sn.getState().clearAuth(),e.session.reset(),e.sessions=[],e.sessionsPage=0,e.sessionsHasMore=!1,e.sessionsLoadingMore=!1,e.activeSessionId=null,e.activeSessionMessagesPage=0,e.activeSessionMessagesHasMore=!1,e.sessionMessagesLoadingMore=!1,e.sessionMessagesCache.clear(),e.agents=[],e.skills=[],e.selectedAgentId=null,e.autoAgent=null,e.selectedSkillId=null,e.agentsLoading=!1,e.skillsLoading=!1,e.agentsEmptyReason=null,e.userJwt=null,e.messages=[],e.sessionStreams.clear(),e.sessionRuns.clear(),e.writeConfirmationsBySession.clear(),e.approvalInboxItems=[],e.approvalInboxLoading=!1,e.approvalInboxLoadingMore=!1,e.approvalInboxHasMore=!1,e.approvalInboxStatusFilter=`pending`,e.approvalInboxPendingCount=0,e.automationTaskItems=[],e.automationTaskLoading=!1,e.automationTaskLoadingMore=!1,e.automationTaskHasMore=!1,e.automationTaskTotal=0,e.automationTaskStatusFilter=`active`,e.automationTaskTabCaches=Zl(),e.automationTaskActiveCount=0,e.automationRecentRunIds=[],e.automationTaskSelectedDetail=null,e.automationTaskDetailLoading=!1,this.abortAllPageActionRunStreams(),this.pageActionInFlightKeys.clear(),this.pageActionAwaitingApprovalNotified.clear(),this.clearAutomationRunRegistry(),e.catalogHydrated=!1,this.pendingStreamTargets.clear(),this.sessionStreamConnects.clear(),this.hostToolStreamManagers.clear(),this.notifyStateChange())}isLoggedIn(){return this.syncAuthFromStore(),this.state?.isLoggedIn??!1}getPendingGateJobs(){return[...this.initGate.getPendingJobs(),...this.loginGate.getPendingJobs()]}snapshotPendingGateJobs(){return this.getPendingGateJobs()}syncAuthFromStore(){let e=this.state;if(!e)return;let t=sn.getState().getAccessTokenForDsn(e.dsn);if(t?.trim()){(e.userJwt!==t||!e.isLoggedIn)&&(e.userJwt=t,e.isLoggedIn=!0,v(e.http,t),this.notifyStateChange(),this.loginGate.reconcile(),this.notifyPageActionAuthReady());return}(e.isLoggedIn||e.userJwt)&&(e.userJwt=null,e.isLoggedIn=!1,y(e.http),this.notifyStateChange())}commitAuthSession(e){let t=this.requireState(`commitAuthSession`),n=e.accessToken?.trim();if(!n)throw new m(`LOGIN_FAILED`,`App client auth succeeded but accessToken is missing`);sn.getState().setAuth(t.dsn,e),v(t.http,n),t.userJwt=n,t.isLoggedIn=!0,t.isClientAuthenticated=!0,t.appClientId=e.appClient?.id??t.appClientId,this.notifyStateChange(),this.loginGate.reconcile(),this.notifyPageActionAuthReady()}notifyPageActionAuthReady(){this.state?.isLoggedIn&&this.pageActionCoordinator.onAuthReady()}bindPageActionSlot(e){let t={actionKey:e.actionKey.trim(),rowKey:e.rowKey.trim(),pageContext:e.pageContext??null,ready:e.ready!==!1,autoResume:e.autoResume!==!1,autoApplyPending:e.autoApplyPending!==!1};return this.pageActionCoordinator.bind(t)}patchPageActionSlot(e,t){this.pageActionCoordinator.patch(e,t)}listBoundPageActionSlots(){return this.pageActionCoordinator.listBindings()}destroy(){if(this.pendingRouteContextOverride=void 0,this.pendingPageContext=void 0,this.pendingAttachPageContext=void 0,this.pendingContextMentionRegistry=new Map,this.pageActionReuseHintCache.clear(),this.initGate.cancelAll(),this.loginGate.cancelAll(),this.state){this.authStoreUnsub?.(),this.authStoreUnsub=void 0,this.cancelScheduledPrepare(),this.abortAllSessionStreams(this.state),this.cancelAllSessionStreamReconnects(),this.pendingStreamTargets.clear(),this.sessionStreamConnects.clear(),this.hostToolStreamManagers.clear(),this.pageActionInFlightKeys.clear(),this.pageActionAwaitingApprovalNotified.clear(),this.abortAllPageActionRunStreams(),this.clearAutomationRunRegistry(),this.pendingPageActionApply=null;for(let e of this.state.abortControllers)try{e.abort()}catch{}this.state.abortControllers.clear(),this.state.session.reset(),this.state.isOpen=!1,this.state=null,this.lifecycle=`destroyed`,this.stateSnapshot=null,this.bus.emit(`destroyed`,void 0),this.bus.clear(),this.stateChangeListeners.clear()}}open(){let e=this.state;if(!e){typeof console<`u`&&console.warn(`[agent-chat] open() called before init() (or after destroy()) — ignoring.`);return}e.isOpen||(e.isOpen=!0,this.notifyStateChange(),this.bus.emit(`open`,void 0))}close(){let e=this.state;!e||!e.isOpen||(e.isOpen=!1,this.notifyStateChange(),this.bus.emit(`close`,void 0))}toggle(){this.isOpen()?this.close():this.open()}openApprovalInbox(e){this.bus.emit(`openApprovalInbox`,e)}openAutomationTaskCenter(e){this.bus.emit(`openAutomationTaskCenter`,e)}openPageActionFeedback(e){this.bus.emit(`openPageActionFeedback`,e)}registerPageActionFeedbackCatalog(e){for(let t of e){let e=t.actionKey?.trim(),n=t.name?.trim();!e||!n||n===e||this.pageActionFeedbackNames.set(e,n)}}async fetchPageActionFeedbackCatalog(e={},t){await this.ensureInitialized(`fetchPageActionFeedbackCatalog`,{signal:t?.signal}),await this.ensureLoggedIn(`fetchPageActionFeedbackCatalog`,{signal:t?.signal});let n=await this.requireState(`fetchPageActionFeedbackCatalog`).pageAction.listCatalog(e,t?.signal);this.pageActionFeedbackCatalogItems=n;for(let e of n)this.pageActionFeedbackNames.set(e.actionKey,e.name);return n}listPageActionFeedbackCatalog(){return this.pageActionFeedbackCatalogItems.slice()}async checkPageActionRollout(e,t){return await this.ensureInitialized(`checkPageActionRollout`,{signal:t?.signal}),await this.ensureLoggedIn(`checkPageActionRollout`,{signal:t?.signal}),this.requireState(`checkPageActionRollout`).pageAction.checkRollout(e,t?.signal)}async getPageActionFeedback(e,t){return await this.ensureInitialized(`getPageActionFeedback`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionFeedback`,{signal:t?.signal}),this.requireState(`getPageActionFeedback`).pageAction.getMyFeedback(e,t?.signal)}async upsertPageActionFeedback(e,t,n){await this.ensureInitialized(`upsertPageActionFeedback`,{signal:n?.signal}),await this.ensureLoggedIn(`upsertPageActionFeedback`,{signal:n?.signal});let r=await this.requireState(`upsertPageActionFeedback`).pageAction.upsertFeedback(e,t,n?.signal);return r.pageActionName&&this.pageActionFeedbackNames.set(r.actionKey,r.pageActionName),r}async removePageActionFeedback(e,t){await this.ensureInitialized(`removePageActionFeedback`,{signal:t?.signal}),await this.ensureLoggedIn(`removePageActionFeedback`,{signal:t?.signal}),await this.requireState(`removePageActionFeedback`).pageAction.removeMyFeedback(e,t?.signal)}async getPageActionFeedbackSummary(e,t){await this.ensureInitialized(`getPageActionFeedbackSummary`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionFeedbackSummary`,{signal:t?.signal});let n=await this.requireState(`getPageActionFeedbackSummary`).pageAction.getFeedbackSummary(e,t?.signal);return n.pageActionName&&this.pageActionFeedbackNames.set(n.actionKey,n.pageActionName),n}async createPageActionWish(e,t){return await this.ensureInitialized(`createPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`createPageActionWish`,{signal:t?.signal}),this.requireState(`createPageActionWish`).pageAction.createWish(e,t?.signal)}async listPageActionWishes(e,t){return await this.ensureInitialized(`listPageActionWishes`,{signal:t?.signal}),await this.ensureLoggedIn(`listPageActionWishes`,{signal:t?.signal}),this.requireState(`listPageActionWishes`).pageAction.listWishes(e??{},t?.signal)}async getPageActionWish(e,t){return await this.ensureInitialized(`getPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`getPageActionWish`,{signal:t?.signal}),this.requireState(`getPageActionWish`).pageAction.getWish(e,t?.signal)}async cancelPageActionWish(e,t){return await this.ensureInitialized(`cancelPageActionWish`,{signal:t?.signal}),await this.ensureLoggedIn(`cancelPageActionWish`,{signal:t?.signal}),this.requireState(`cancelPageActionWish`).pageAction.cancelWish(e,t?.signal)}isOpen(){return this.state?.isOpen??!1}identify(e){let t=this.requireState(`identify`),n=t.session.getSession();t.session.updateContext({user:e});let r=t.options.user?.id;t.options={...t.options,user:e},n&&r&&r!==e.id&&(this.abortAllSessionStreams(t),this.sessionStreamConnects.clear(),this.pendingStreamTargets.clear(),t.session.reset(),t.sessions=[],t.sessionMessagesCache.clear(),t.sessionRuns.clear(),t.writeConfirmationsBySession.clear(),t.writeConfirmation=null,t.activeSessionId=null,t.messages=[],this.notifyStateChange())}setPageContext(e){if(!this.state){this.pendingPageContext=e,this.notifyStateChange();return}let t=this.state,n=this.getPageScope(t);t.pageContext=e,t.options={...t.options,pageContext:e??void 0};let r=this.getPageScope(t);this.notifyStateChange(),this.schedulePrepareSession(),n!==r&&!t.options.skills?.length&&(t.selectedSkillId=null,this.refreshSkills(t.selectedAgentId??void 0))}setRouteContext(e){if(!this.state){this.pendingRouteContextOverride=e,this.notifyStateChange();return}let t=this.state;t.routeContextOverride=e,this.syncRouteContextFromWindow()}registerContextMentions(e,t={}){let n=e.map(Pi);if(!this.state){this.pendingContextMentionRegistry=Ii(this.pendingContextMentionRegistry,n,t.replace===!0),this.notifyStateChange();return}let r=this.state;r.contextMentionRegistry=Ii(r.contextMentionRegistry,n,t.replace===!0),this.notifyStateChange()}unregisterContextMentions(e){if(!this.state){let t=!1;for(let n of e){let e=n.trim();e&&this.pendingContextMentionRegistry.delete(e)&&(t=!0)}t&&this.notifyStateChange();return}let t=this.state,n=!1;for(let r of e){let e=r.trim();e&&t.contextMentionRegistry.delete(e)&&(n=!0)}n&&this.notifyStateChange()}clearContextMentions(){if(!this.state){if(this.pendingContextMentionRegistry.size===0)return;this.pendingContextMentionRegistry=new Map,this.notifyStateChange();return}let e=this.state;e.contextMentionRegistry.size!==0&&(e.contextMentionRegistry=new Map,this.notifyStateChange())}syncRouteContextFromWindow(){if(!this.state)return;let e=this.state,t=wi(Ci(),e.routeContextOverride),n=JSON.stringify(e.routeContext??null),r=JSON.stringify(Object.keys(t).length>0?t:null);e.routeContext=Object.keys(t).length>0?t:null,n!==r&&(this.notifyStateChange(),this.schedulePrepareSession())}setAttachPageContext(e){if(!this.state){this.pendingAttachPageContext=e,this.notifyStateChange();return}let t=this.state;t.attachPageContext!==e&&(t.attachPageContext=e,t.options={...t.options,attachPageContext:e},this.notifyStateChange())}getPageContext(){let e=this.state;return e?e.pageContext??e.options.pageContext??null:null}getAppClientId(){return sn.getState().appClient?.id??this.state?.appClientId??null}isHostToolServerSyncReady(){let e=this.state;return!e?.isClientAuthenticated||!e.isLoggedIn||!e.userJwt?.trim()?!1:this.getAppClientId()!=null}registerHostTool(e,t,n){pr(e,t,n)}unregisterHostTool(e,t){mr(e,t)}undeclareHostTool(e,t){xr(e,t)}runHostTool(e,t,n){return _r(e,t,n)}registerHostToolsWithSync(e){return bi(this,e)}async syncHostToolsToServer(e){await this.ensureLoggedIn(`syncHostToolsToServer`);let t=this.requireState(`syncHostToolsToServer`);if(!t.isClientAuthenticated||t.appClientId==null)throw new m(`AUTH_REQUIRED`,`Host tool server sync requires app client authentication.`);return t.hostTool.register(e)}getHostToolCatalog(e){return this.requireState(`getHostToolCatalog`).hostTool.getCatalog(e)}async listCallableTools(e){return await this.ensureLoggedIn(`listCallableTools`,{signal:e}),this.requireState(`listCallableTools`).appTool.listCallable(e)}async invokeAppTool(e){return await this.ensureLoggedIn(`invokeAppTool`,{signal:e.signal}),this.requireState(`invokeAppTool`).appTool.invoke(e)}isPageActionKeyActive(e){let t=e?.trim();return t?Il(this.automationRunRegistry).has(t):!1}getActivePageActionKeyForActionKey(e){return Ll(this.automationRunRegistry,e)}getPageActionRowState(e){let t=e.trim();return t?this.pageActionRows.get(t)??null:null}getPageActionRowsForActionKey(e){let t=e.trim();return t?[...this.pageActionRows.values()].filter(e=>e.actionKey===t):[]}isPageActionRowActive(e){let t=this.getPageActionRowState(e);return!t||t.phase===`awaiting_reuse`||t.loading&&t.phase===`idle`&&t.runId==null&&!t.awaitingApproval?!1:t.loading||t.awaitingApproval}clearPageActionRowError(e){let t=e.trim(),n=this.pageActionRows.get(t);!n?.error&&!n?.message||this.upsertPageActionRow(U({...n,error:null,message:null}))}async hydratePageActionByRunId(e,t={}){if(await this.ensureLoggedIn(`hydratePageActionByRunId`),this.requireState(`hydratePageActionByRunId`),!Number.isFinite(e))return null;let n=Math.trunc(e),r=await this.getAutomationTaskDetail(n,t.signal);if(!r)return null;let i=au(n,{rowKey:t.rowKey,entityId:r.pageContext?.entity?.id??null,findRowKeyByRunId:()=>this.findRowKeyByRunId(n)||this.findRowKeyByPageActionKey(r.pageActionKey)}),a=t.actionKey?.trim()||r.actionKey?.trim()||this.automationRunRegistry.get(n)?.actionKey||r.title,o=r.taskStatus===`failed`&&Lo(r.errorCode)&&r.brainClarify!=null,s=o?`awaiting_clarify`:nu(r.taskStatus),c=tu(s),l=this.pageActionRows.get(i),u=c.loading?l?.progressLabel??$c(this.state?.options.locale):s===`awaiting_clarify`?rl(this.state?.options.locale):s===`awaiting_approval`?cl({phase:`awaiting_approval`,actionRunId:n,actionKey:a,generation:n,nodeId:``,stageKind:`other`},this.state?.options.locale):null,d=U({rowKey:i,actionKey:a,runId:n,pageActionKey:r.pageActionKey,phase:s,error:o?null:r.errorMessage,message:l?.message??null,progressLabel:u,narrativeItems:l?.narrativeItems??[],approvalRequestId:r.approval?.id??null,brainClarify:o?r.brainClarify:null});this.upsertPageActionRow(d),this.bindPageActionRunToRow(n,i);let f=this.automationRunRegistry.get(n);if(f?(f.rowKey=i,f.actionKey=a,f.pageActionKey=r.pageActionKey,f.status=r.taskStatus,f.updatedAt=new Date().toISOString(),H(r.taskStatus)||this.automationRunRegistry.delete(n)):H(r.taskStatus)&&this.automationRunRegistry.set(n,{runId:n,actionKey:a,pageActionKey:r.pageActionKey,rowKey:i,status:r.taskStatus,registeredAt:r.createdAt??new Date().toISOString(),updatedAt:new Date().toISOString(),clientActionId:null}),o&&r.brainClarify){let e=this.pageActionInvokeSnapshotsByRunId.get(n)??{pageContext:r.pageContext??void 0,rowKey:i,awaitStream:!1};this.pageActionInvokeSnapshotsByRunId.has(n)||(this.pageActionInvokeSnapshotsByRunId.set(n,{...e,launchAnchor:e.launchAnchor??null}),this.pageActionInvokeSnapshotsByRowKey.set(i,{...e,launchAnchor:e.launchAnchor??null})),this.emitPageActionBrainClarifyFromPayload({actionKey:a,runId:n,brainClarify:r.brainClarify,rowKey:i})}else(s===`completed`||s===`failed`)&&this.schedulePageActionRowIdleReset(i,s===`failed`?1600:900);return d}async reconcileActivePageActions(e={}){await this.ensureLoggedIn(`reconcileActivePageActions`),this.requireState(`reconcileActivePageActions`);let t=e.actionKey?.trim();await this.refreshAutomationTasks({status:`active`,actionKey:t||void 0,offset:0,signal:e.signal});let n=[];for(let[r,i]of this.automationRunRegistry){if(!H(i.status))continue;let a=await this.hydratePageActionByRunId(r,{rowKey:i.rowKey??void 0,actionKey:i.actionKey,signal:e.signal});a&&(t&&a.actionKey!==t||n.push(a))}return n}async invokePageAction(e){await this.ensureInitialized(`invokePageAction`,{signal:e.signal});let t=this.requireState(`invokePageAction`);this.requirePageActionKey(e);let n=this.resolveInvokeRowKey(e);if(n){let t=this.pageActionRows.get(n);t&&t.phase===`idle`&&t.loading&&t.runId==null&&!t.awaitingApproval&&this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey||e.actionKey.trim(),runId:null,pageActionKey:t.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:t.approvalRequestId}))}if(n&&this.isPageActionRowActive(n))return this.finishAlreadyActiveInvoke(e,n,{source:`local`});let r=this.acquirePageActionLock(e.clientActionId);try{let r=e.preferReuse!==!1&&this.pageActionReusePromptHandler!=null,i=r?this.buildPageActionInvokeBody(t,e):null,a=i?this.pageActionReuseHintCache.get(i):null,o=a!=null,s=(a?.reusable.items.length??0)>0||(a?.reusable.total??0)>0,c=r&&!o,l=r&&(c||s);if(n&&(this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:a?.pageActionKey??this.pageActionRows.get(n)?.pageActionKey??null,phase:l?`awaiting_reuse`:`submitting`,error:null,message:null,progressLabel:c?el(this.state?.options.locale):l?null:$c(this.state?.options.locale),narrativeItems:[],approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null}))),await this.ensureLoggedIn(`invokePageAction`,{signal:e.signal}),l){let r=await this.tryPageActionReusePrompt(t,e,n,{body:i,cached:a});if(r)return r}return n&&(this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:this.pageActionRows.get(n)?.pageActionKey??null,phase:`submitting`,error:null,message:null,progressLabel:$c(this.state?.options.locale),narrativeItems:[],approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null}))),await this.invokePageActionStream(t,e,n)}catch(t){let r=Eu(t);if(n&&!(r instanceof m&&r.code===`PAGE_ACTION_ALREADY_ACTIVE`)){let t=r instanceof Error?r.message:String(r);this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey.trim(),runId:this.pageActionRows.get(n)?.runId??null,pageActionKey:this.pageActionRows.get(n)?.pageActionKey??null,phase:`failed`,error:t,message:null,progressLabel:null,approvalRequestId:this.pageActionRows.get(n)?.approvalRequestId??null})),this.schedulePageActionRowIdleReset(n,1600)}throw r}finally{this.releasePageActionLock(r)}}setPageActionReusePromptHandler(e){return this.pageActionReusePromptHandler=e,()=>{this.pageActionReusePromptHandler===e&&(this.pageActionReusePromptHandler=null)}}dismissPageActionBrainClarify(e){let t=typeof e?.runId==`number`&&Number.isFinite(e.runId)?Math.trunc(e.runId):null,n=e?.rowKey?.trim()||(t==null?null:this.findRowKeyByRunId(t));if(!n)return;let r=this.pageActionRows.get(n);!r||r.phase!==`awaiting_clarify`||this.upsertPageActionRow(U({...r,phase:`idle`,loading:!1,disabled:!1,error:null,progressLabel:null,brainClarify:null}))}dismissPageActionReuse(e){let t=typeof e?.runId==`number`&&Number.isFinite(e.runId)?Math.trunc(e.runId):null,n=e?.rowKey?.trim()||(t==null?null:this.findRowKeyByRunId(t));if(!n)return;let r=this.pageActionReuseDismissEpochByRowKey.get(n)??0;this.pageActionReuseDismissEpochByRowKey.set(n,r+1);let i=this.pageActionRowIdleTimers.get(n);i!=null&&(clearTimeout(i),this.pageActionRowIdleTimers.delete(n));let a=this.pageActionRows.get(n),o=t??a?.runId??null;o!=null&&this.pageActionRunAborts.get(o)?.abort(),a&&this.upsertPageActionRow(U({rowKey:n,actionKey:a.actionKey,runId:a.runId,pageActionKey:a.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:a.approvalRequestId,brainClarify:null}))}async reusePageActionHint(e){await this.ensureInitialized(`reusePageActionHint`,{signal:e.signal});let t=this.requireState(`reusePageActionHint`);await this.ensureLoggedIn(`reusePageActionHint`,{signal:e.signal});let n=this.buildPageActionInvokeBody(t,{actionKey:e.actionKey,pageContext:e.pageContext,instruction:e.instruction,context:e.context});if(!e.refresh){let e=this.pageActionReuseHintCache.get(n);if(e)return e}let r=await t.pageAction.reuseHint(n,e.signal);return this.pageActionReuseHintCache.set(n,r),r}async prefetch(){await this.ensureLoggedIn(`prefetch`);let e=this.requireState(`prefetch`),t=this.makeAbortController();try{if(await Promise.all([this.refreshSessions(t.signal),this.refreshAgentCatalog(t.signal),this.refreshApprovalPendingCount(t.signal).catch(()=>{}),this.refreshApprovalInbox({signal:t.signal}).catch(()=>{})]),!e.sessions.length)return;let n=e.activeSessionId&&e.sessions.some(t=>t.sessionId===e.activeSessionId)?e.activeSessionId:e.sessions[0].sessionId;await this.selectSession(n,{signal:t.signal,skipAbortStream:!0})}finally{e.catalogHydrated=!0,e.abortControllers.delete(t),this.notifyStateChange()}}async selectSession(e,t={}){await this.ensureLoggedIn(`selectSession`);let n=this.requireState(`selectSession`),r=e.trim();if(!r)throw new m(`INVALID_OPTIONS`,`selectSession: sessionId is required`);this.sessionEpoch+=1;let i=this.sessionEpoch,a=W(r);n.activeSessionId&&n.activeSessionId!==r&&(this.writeSessionMessagesCache(n,n.activeSessionId),!t.skipAbortStream&&!this.sessionHasPendingAgent(n.messages)&&this.abortSessionStream(n,n.activeSessionId,{suppressReconnect:!0})),n.lastError=null,n.activeSessionId!=null&&W(n.activeSessionId)!==a&&this.clearSkillIntentUi(n);let o=n.sessionMessagesCache.get(a)??n.sessionMessagesCache.get(r);if(o){i===this.sessionEpoch&&(n.activeSessionId=r,n.messages=o.messages,n.activeSessionMessagesPage=o.page,n.activeSessionMessagesHasMore=o.hasMore,o.agentId&&this.applyAutoAgentBinding(n,{id:o.agentId,source:`session`,reason:`restored from session detail cache`}),n.session.setSession(r,o.messages),this.syncActiveWriteConfirmation(n,r),this.notifyStateChange(),this.bus.emit(`session`,n.session.getSession()),t.signal?.aborted||(await this.syncSessionRunState(n,r,t.signal),this.reconcilePendingRepliesAfterSessionSwitch(n,r,a),this.ensureSessionStream(r).catch(()=>{}),this.syncMessageFeedbacks(n,r).catch(()=>{}),this.schedulePrepareSession()));return}let s=this.makeAbortController(),c=t.signal;c&&c.addEventListener(`abort`,()=>s.abort(),{once:!0});try{let e=await this.fetchSessionMessagesPage(n,r,1,s.signal),o=e.messages.map(e=>this.toAgentMessage(e)),c={messages:o,page:e.page,hasMore:e.hasMore,agentId:e.agentId};if(n.sessionMessagesCache.set(a,c),i!==this.sessionEpoch)return;n.activeSessionId=r,n.activeSessionMessagesPage=e.page,n.activeSessionMessagesHasMore=e.hasMore,n.session.setSession(e.sessionId,o),n.messages=o,e.agentId&&this.applyAutoAgentBinding(n,{id:e.agentId,source:`session`,reason:`restored from session detail`}),this.syncActiveWriteConfirmation(n,r),this.notifyStateChange(),this.bus.emit(`session`,n.session.getSession()),t.signal?.aborted||(await this.syncSessionRunState(n,r,s.signal),this.reconcilePendingRepliesAfterSessionSwitch(n,r,a),this.ensureSessionStream(r).catch(()=>{}),this.syncMessageFeedbacks(n,r).catch(()=>{}),this.schedulePrepareSession())}finally{n.abortControllers.delete(s)}}async sendMessage(e,t={}){await this.ensureLoggedIn(`sendMessage`);let n=this.requireState(`sendMessage`),r=e.trim();if(r.length===0)throw new m(`INVALID_OPTIONS`,`sendMessage: text must not be empty`);this.settlePendingAgentReplies(n,n.activeSessionId??void 0),n.activeSessionId&&this.persistWriteConfirmation(n,n.activeSessionId,null),n.lastTurnUserMessage=r,this.clearSkillIntentUi(n),n.brainClarify=null;let i=t.contextMentions?.length?await Li(t.contextMentions,n.contextMentionRegistry):void 0,a=i?.length?Ti(this.buildOutboundPageContext(n),i):void 0,o=this.appendOptimisticUserMessage(n,r,t.id,t.contextMentions),s=this.appendAgentPlaceholder(n),c=this.makeAbortController();try{let e=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!e)return e=await this.createChatSession(n,r,c.signal,a,t.entityCommit),this.refreshSessions(c.signal).catch(()=>{}),this.setStreamTargetMessageId(n,e,s.id),await this.ensureSessionStream(e),this.applyUserMessageSent(n,o);this.setStreamTargetMessageId(n,e,s.id);let i=await this.postUserMessageAndApply(n,e,r,c.signal,o,a,t.entityCommit);return await this.ensureSessionStream(e),i}catch(e){let t=n.activeSessionId,r=n.messages.filter(e=>e.id!==s.id).map(e=>e.id===o.id?{...o,status:`failed`}:e);n.messages=r,t?this.commitSessionMessages(n,t,r):this.notifyStateChange();let i=e instanceof m?new m(`MESSAGE_FAILED`,e.message,{cause:e,details:{...e.details??{},messageId:o.id}}):new m(`MESSAGE_FAILED`,`Failed to send message`,{cause:e,details:{messageId:o.id}});throw this.reportError(i),i}finally{n.abortControllers.delete(c)}}async confirmWrite(){await this.submitWriteGate({action:`confirm`})}async confirmWriteWithEdits(e){let{editedPreviewSerialized:t,editedPendingWriteArguments:n}=e;if(!t?.trim()&&!n)throw new m(`INVALID_OPTIONS`,`confirmWriteWithEdits: editedPreviewSerialized or editedPendingWriteArguments is required`);await this.submitWriteGate({action:`confirm_with_edits`,editedPreviewSerialized:t?.trim()||void 0,editedPendingWriteArguments:n})}async retryWrite(e){let t=e.trim();if(!t)throw new m(`INVALID_OPTIONS`,`retryWrite: retryInstruction must not be empty`);await this.submitWriteGate({action:`retry`,retryInstruction:t})}async cancelWrite(){await this.submitWriteGate({action:`cancel`})}async submitWriteGate(e){let t=`submitWriteGate:${e.action}`;await this.ensureLoggedIn(t);let n=this.requireState(t),r=n.writeConfirmation;if(!r?.awaiting)throw new m(`INVALID_OPTIONS`,`No pending write confirmation`);if(e.action===`retry`&&r.canRetry===!1)throw new m(`INVALID_OPTIONS`,`Draft retry limit exceeded`);let i=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!i)throw new m(`INVALID_OPTIONS`,`${t}: no active session`);let a=e.action===`retry`;if(n.writeConfirmation={...r,awaiting:a,submitting:!0,gateError:void 0,gateErrorCode:void 0},this.persistWriteConfirmation(n,i,n.writeConfirmation),this.notifyStateChange(),e.action===`confirm`||e.action===`confirm_with_edits`){let e=this.appendAgentPlaceholder(n);this.setStreamTargetMessageId(n,i,e.id)}let o=this.makeAbortController();try{await this.postWriteGateAction(n,i,e,o.signal)}catch(e){let t=Tu(e),a=t===`DRAFT_RETRY_LIMIT_EXCEEDED`||t===`INVALID_DRAFT_REVIEW_DECISION`||t===`EDITED_WRITE_ARGS_INVALID`||t===`EDITED_LOCKED_FIELD`||t===`EDITED_FIELD_NOT_ALLOWED`||t===`MULTI_WRITE_EDIT_NOT_SUPPORTED`,o={...r,awaiting:!0,submitting:!1,gateError:e instanceof m?e.message:void 0,gateErrorCode:t,canRetry:t!==`DRAFT_RETRY_LIMIT_EXCEEDED`&&r.canRetry};if(n.writeConfirmation=o,this.persistWriteConfirmation(n,i,o),this.notifyStateChange(),a)return;let s=e instanceof m?e:new m(`MESSAGE_FAILED`,`Failed to submit write gate decision`,{cause:e});throw this.reportError(s),s}finally{n.abortControllers.delete(o)}}async refreshApprovalInbox(e={}){if(this.approvalInboxRefreshPromise&&!e.append)return this.approvalInboxRefreshPromise;let t=this.fetchApprovalInbox(e);e.append||(this.approvalInboxRefreshPromise=t);try{return await t}finally{!e.append&&this.approvalInboxRefreshPromise===t&&(this.approvalInboxRefreshPromise=null)}}setApprovalInboxStatusFilter(e){let t=this.state;!t||t.approvalInboxStatusFilter===e||(t.approvalInboxStatusFilter=e,t.approvalInboxItems=[],t.approvalInboxHasMore=!1,this.notifyStateChange())}async refreshApprovalPendingCount(e){if(this.approvalPendingCountRefreshPromise&&!e)return this.approvalPendingCountRefreshPromise;let t=this.fetchApprovalPendingCount(e);e||(this.approvalPendingCountRefreshPromise=t);try{await t}finally{!e&&this.approvalPendingCountRefreshPromise===t&&(this.approvalPendingCountRefreshPromise=null)}}async fetchApprovalPendingCount(e){await this.ensureLoggedIn(`refreshApprovalPendingCount`);let t=this.requireState(`refreshApprovalPendingCount`),n=await t.approval.listInbox({status:`pending`,limit:50,signal:e});t.approvalInboxPendingCount=n.hasMore?Math.max(t.approvalInboxPendingCount,n.items.length):n.items.length,this.notifyStateChange()}async fetchApprovalInbox(e={}){await this.ensureLoggedIn(`refreshApprovalInbox`);let t=this.requireState(`refreshApprovalInbox`),n=e.status??t.approvalInboxStatusFilter,r=e.limit??fu,i=e.offset??(e.append?t.approvalInboxItems.length:0),a=e.append===!0;a?t.approvalInboxLoadingMore=!0:t.approvalInboxLoading=!0,this.notifyStateChange();try{let o=await t.approval.listInbox({status:n,limit:r,offset:i,signal:e.signal});return t.approvalInboxStatusFilter=n,t.approvalInboxHasMore=o.hasMore,t.approvalInboxItems=a?[...t.approvalInboxItems,...o.items]:o.items,n===`pending`&&i===0&&!a&&(t.approvalInboxPendingCount=o.hasMore?Math.max(t.approvalInboxPendingCount,o.items.length):o.items.length),o}finally{a?t.approvalInboxLoadingMore=!1:t.approvalInboxLoading=!1,this.notifyStateChange()}}async getApproval(e,t){return await this.ensureLoggedIn(`getApproval`),this.requireState(`getApproval`).approval.getById(e,t)}async hydrateApprovalInboxItem(e,t){await this.ensureLoggedIn(`hydrateApprovalInboxItem`);let n=this.requireState(`hydrateApprovalInboxItem`),r=await n.approval.getById(e,t);if(!r)return n.approvalInboxItems=n.approvalInboxItems.filter(t=>t.id!==e),this.notifyStateChange(),null;let i=n.approvalInboxItems.findIndex(t=>t.id===e);if(i>=0){let e=[...n.approvalInboxItems];e[i]=r,n.approvalInboxItems=e}else n.approvalInboxItems=[r,...n.approvalInboxItems];return this.notifyStateChange(),r}async confirmApproval(e,t){await this.ensureLoggedIn(`confirmApproval`);let n=this.requireState(`confirmApproval`),r=this.resolveApprovalPageActionRunId(e),i=this.resolveApprovalIdentity(e),a=await n.approval.confirm(e,t);return this.refreshApprovalPendingCount(t).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(r,e),a.resumed?(this.syncPageActionRowAfterApprovalDecision(r,e,`resumed`),this.emitApprovalExecutionCompleted({approvalId:e,runId:r,decision:{action:`confirm`},result:a,identity:i}).catch(()=>{})):a.suspended||this.syncPageActionRowAfterApprovalDecision(r,e,`cancelled`),a}async decideApproval(e,t,n){await this.ensureLoggedIn(`decideApproval`);let r=this.requireState(`decideApproval`),i=this.resolveApprovalPageActionRunId(e),a=this.resolveApprovalIdentity(e),o=await r.approval.decide(e,t,n?.reason,n?.signal);return o.suspended?await this.hydrateApprovalInboxItem(e,n?.signal).catch(()=>{}):(this.refreshApprovalPendingCount(n?.signal).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{})),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(i,e),this.emitApprovalExecutionCompleted({approvalId:e,runId:i,decision:t,result:o,identity:a}).catch(()=>{}),o.suspended?this.syncPageActionRowAfterApprovalDecision(i,e,`suspended`):t.action===`cancel`?this.syncPageActionRowAfterApprovalDecision(i,e,`cancelled`):o.resumed&&this.syncPageActionRowAfterApprovalDecision(i,e,`resumed`),o}async rejectApproval(e,t,n){await this.ensureLoggedIn(`rejectApproval`);let r=this.requireState(`rejectApproval`),i=this.resolveApprovalPageActionRunId(e),a=this.resolveApprovalIdentity(e),o=await r.approval.reject(e,t,n);return this.refreshApprovalPendingCount(n).catch(()=>{}),this.refreshApprovalInbox().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0),this.refreshPageActionRowsAfterApprovalDecision(i,e),o.ok&&(this.syncPageActionRowAfterApprovalDecision(i,e,`cancelled`),this.bus.emit(`approvalExecutionCompleted`,{approvalId:e,runId:i,outcome:`cancelled`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary})),o}registerAutomationRun(e,t){if(t?.accepted){this.trackAutomationRun(t.accepted,{actionKey:t.actionKey?.trim()||t.accepted.runId.toString(),pageActionKey:t.pageActionKey??t.accepted.pageActionKey??null,rowKey:t.rowKey??null});return}if(!Number.isFinite(e))return;let n=Math.trunc(e),r=new Date().toISOString(),i=t?.rowKey?.trim()||null;this.automationRunRegistry.set(n,{runId:n,actionKey:t?.actionKey?.trim()||`Run ${n}`,pageActionKey:t?.pageActionKey??null,rowKey:i,status:`running`,registeredAt:r,updatedAt:r,clientActionId:null}),i&&this.bindPageActionRunToRow(n,i);let a=this.state;a&&(this.syncAutomationActiveCount(a),a.automationRecentRunIds=[n,...a.automationRecentRunIds.filter(e=>e!==n)].slice(0,mu),this.notifyStateChange()),this.bus.emit(`automationTaskCenterChanged`,void 0)}reconcileAutomationTasksIfNeeded(){this.state?.isLoggedIn&&(Rl(this.automationRunRegistry),this.automationRunRegistry.size!==0&&Date.now()-this.automationTasksLastSyncedAt>6e4&&this.refreshAutomationTasks({status:`active`,offset:0}).catch(()=>{}))}async refreshAutomationTasks(e={}){let t=e.append?null:this.buildAutomationTaskRefreshCacheKey(e);if(this.automationTaskRefreshPromise&&t&&this.automationTaskRefreshCacheKey===t)return this.automationTaskRefreshPromise;let n=this.fetchAutomationTasks(e);e.append||(this.automationTaskRefreshCacheKey=t,this.automationTaskRefreshPromise=n);try{return await n}finally{!e.append&&this.automationTaskRefreshPromise===n&&(this.automationTaskRefreshPromise=null,this.automationTaskRefreshCacheKey=null)}}buildAutomationTaskRefreshCacheKey(e){return`${e.status??`active`}|${e.actionKey?.trim()??``}|${e.offset??0}`}setAutomationTaskStatusFilter(e){let t=this.state;!t||t.automationTaskStatusFilter===e||(this.commitAutomationTaskTabCache(t),t.automationTaskStatusFilter=e,this.restoreAutomationTaskTabView(t),t.automationTaskSelectedDetail=null,this.notifyStateChange())}async ensureAutomationTaskTabLoaded(e,t={}){await this.ensureLoggedIn(`ensureAutomationTaskTabLoaded`,{signal:t.signal});let n=this.requireState(`ensureAutomationTaskTabLoaded`),r=e??n.automationTaskStatusFilter;if(r!==n.automationTaskStatusFilter&&(this.commitAutomationTaskTabCache(n),n.automationTaskStatusFilter=r,this.restoreAutomationTaskTabView(n),n.automationTaskSelectedDetail=null),!$l(n.automationTaskTabCaches,r).hydrated||t.refresh){await this.refreshAutomationTasks({status:r,offset:0,signal:t.signal});return}this.notifyStateChange()}async loadAutomationTaskNextPage(e={}){await this.ensureLoggedIn(`loadAutomationTaskNextPage`,{signal:e.signal});let t=this.requireState(`loadAutomationTaskNextPage`);t.automationTaskLoading||t.automationTaskLoadingMore||!t.automationTaskHasMore||await this.refreshAutomationTasks({status:t.automationTaskStatusFilter,append:!0,signal:e.signal})}commitAutomationTaskTabCache(e){eu(e.automationTaskTabCaches,e.automationTaskStatusFilter,{items:e.automationTaskItems,hasMore:e.automationTaskHasMore,total:e.automationTaskTotal,hydrated:$l(e.automationTaskTabCaches,e.automationTaskStatusFilter).hydrated})}restoreAutomationTaskTabView(e){let t=$l(e.automationTaskTabCaches,e.automationTaskStatusFilter);e.automationTaskItems=[...t.items],e.automationTaskHasMore=t.hasMore,e.automationTaskTotal=t.total,e.automationTaskLoading=!1,e.automationTaskLoadingMore=!1}publishAutomationTaskTabCache(e,t,n,r,i){let a=$l(e.automationTaskTabCaches,t),o=i??a.total;eu(e.automationTaskTabCaches,t,{items:n,hasMore:r,total:o,hydrated:!0}),e.automationTaskStatusFilter===t&&(e.automationTaskItems=n,e.automationTaskHasMore=r,e.automationTaskTotal=o)}async refreshAutomationActiveCount(e){let t=this.state;t&&(await this.ensureLoggedIn(`refreshAutomationActiveCount`,{signal:e}),this.syncAutomationActiveCount(t),this.notifyStateChange())}async getAutomationTaskDetail(e,t){return await this.ensureLoggedIn(`getAutomationTaskDetail`),this.requireState(`getAutomationTaskDetail`).automation.getPageActionRunTask(e,t)}async hydrateAutomationTaskDetail(e,t){await this.ensureLoggedIn(`hydrateAutomationTaskDetail`);let n=this.requireState(`hydrateAutomationTaskDetail`);n.automationTaskDetailLoading=!0,this.notifyStateChange();try{let r=await n.automation.getPageActionRunTask(e,t);if(n.automationTaskSelectedDetail=r,r){let e=n.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===r.ref.id);if(e>=0){let t=[...n.automationTaskItems];t[e]=r,this.publishAutomationTaskTabCache(n,n.automationTaskStatusFilter,t,n.automationTaskHasMore)}}return r}finally{n.automationTaskDetailLoading=!1,this.notifyStateChange()}}clearAutomationTaskDetail(){let e=this.state;!e||!e.automationTaskSelectedDetail||(e.automationTaskSelectedDetail=null,this.notifyStateChange())}async applyPageActionToPage(e,t={}){await this.ensureLoggedIn(`applyPageActionToPage`,{signal:t.signal});let n=this.requireState(`applyPageActionToPage`),r=Math.trunc(e);if(!Number.isFinite(r))throw new m(`INVALID_OPTIONS`,`applyPageActionToPage requires a valid runId`);let i=await this.hydrateAutomationTaskDetail(r,t.signal)??await this.getAutomationTaskDetail(r,t.signal);if(!i||i.ref.kind!==`page_action_run`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${r} not found`);let a=i.pageContext,o=Cl(a),s={runId:r,actionKey:i.actionKey,pageContext:a,target:o};if(o.kind!==`routePath`)return{...s,navigated:!1,canReplay:!1,ok:!1,reason:`missing_route_path`};if(i.taskStatus!==`completed`){let e=n.options.onNavigateForPageAction,t=!1;return e&&(await e({...s,canReplay:!1}),t=!0),{...s,navigated:t,canReplay:!1,ok:!1,reason:`not_completed`}}if(!i.replay.canReplay){let e=n.options.onNavigateForPageAction,t=!1;return e&&(await e({...s,canReplay:!1}),t=!0),{...s,navigated:t,canReplay:!1,ok:!1,reason:`no_replayable_output`}}this.setPendingPageActionApply({runId:r,actionKey:i.actionKey,pageContext:a,createdAt:new Date().toISOString()});let c=n.options.onNavigateForPageAction,l=!1;try{c&&(await c({...s,canReplay:!0}),l=!0)}catch(e){throw this.clearPendingPageActionApply(),e}return this.pageActionCoordinator.onPendingApplyChanged(),{...s,navigated:l,canReplay:!0,ok:!0,reason:`navigate_only`}}async replayPageAction(e,t={}){await this.ensureLoggedIn(`replayPageAction`,{signal:t.signal});let n=this.requireState(`replayPageAction`),r=Math.trunc(e),i=()=>{this.getPendingPageActionApply()?.runId===r&&this.clearPendingPageActionApply()},a=n.automationTaskSelectedDetail?.ref.id===r?n.automationTaskSelectedDetail:await this.getAutomationTaskDetail(r,t.signal);if(!a||a.ref.kind!==`page_action_run`)throw i(),new m(`PAGE_ACTION_FAILED`,`PageAction run ${r} not found`);if(a.taskStatus!==`completed`||!a.replay.canReplay){i();return}let o={runId:r,generation:r,clientActionId:null,pageActionKey:a.pageActionKey,streamUrl:a.streamUrl,status:`completed`},s=a.pageContext,c=hl(s),l=this.pageActionRunToRowKey.get(r)??(s?.entity?.id==null?null:String(s.entity.id).trim());try{await this.consumePageActionRunStream(n,{actionKey:a.actionKey,pageContext:s??void 0,signal:t.signal},o,c,s),i(),this.bus.emit(`pageActionApplyCompleted`,{runId:r,actionKey:a.actionKey,rowKey:l})}catch(e){throw this.bus.emit(`pageActionRunFailed`,{runId:r,actionKey:a.actionKey,rowKey:l,errorMessage:e instanceof Error?e.message:String(e)}),e}}getPendingPageActionApply(){if(this.pendingPageActionApply)return this.pendingPageActionApply;let e=this.state;if(!e?.dsn)return null;let t=Ol(e.dsn);return t&&(this.pendingPageActionApply=t),this.pendingPageActionApply}clearPendingPageActionApply(){let e=this.state;this.pendingPageActionApply=null,e?.dsn&&Al(e.dsn),this.bus.emit(`pendingPageActionApplyChanged`,null),this.pageActionCoordinator.onPendingApplyChanged()}async attachPageActionStream(e,t={}){await this.ensureLoggedIn(`attachPageActionStream`,{signal:t.signal});let n=this.requireState(`attachPageActionStream`),r=Math.trunc(e);if(!Number.isFinite(r)||this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r))return!1;let i=await this.getAutomationTaskDetail(r,t.signal);if(!i||i.ref.kind!==`page_action_run`||i.taskStatus!==`running`)return!1;let a=au(r,{rowKey:t.rowKey,entityId:i.pageContext?.entity?.id??null,findRowKeyByRunId:()=>this.findRowKeyByRunId(r)||this.findRowKeyByPageActionKey(i.pageActionKey)});if(await this.hydratePageActionByRunId(r,{rowKey:a,actionKey:i.actionKey,signal:t.signal}),this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r))return!1;let o={runId:r,generation:r,clientActionId:null,pageActionKey:i.pageActionKey,streamUrl:i.streamUrl,status:`running`},s=i.pageContext,c=hl(s);return this.consumePageActionRunStream(n,{actionKey:i.actionKey,pageContext:s??void 0,rowKey:a},o,c,s).catch(e=>{let t=c.page?.trim()??s?.page?.trim()??i.actionKey.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(r,i.actionKey),this.emitPageAgentError(t,`page_action`,`page_action`,e)}),this.bus.emit(`pageActionStreamResumed`,{runId:r,actionKey:i.actionKey,rowKey:a}),!0}async resumeActivePageActionStreams(e={}){await this.ensureLoggedIn(`resumeActivePageActionStreams`,{signal:e.signal}),this.requireState(`resumeActivePageActionStreams`);let t=e.actionKey?.trim(),n=0;for(let[r,i]of this.automationRunRegistry)if(i.status===`running`){if(t&&i.actionKey!==t){await this.hydratePageActionByRunId(r,{rowKey:i.rowKey??void 0,actionKey:i.actionKey,signal:e.signal});let n=this.automationRunRegistry.get(r);if(!n||n.actionKey!==t)continue}this.pageActionRunAborts.has(r)||this.pageActionRunStreamPromises.has(r)||await this.attachPageActionStream(r,{signal:e.signal,rowKey:i.rowKey??void 0})&&(n+=1)}return n}setPendingPageActionApply(e){let t=this.requireState(`setPendingPageActionApply`);this.pendingPageActionApply=e,kl(t.dsn,e),this.bus.emit(`pendingPageActionApplyChanged`,e),this.pageActionCoordinator.onPendingApplyChanged()}matchesPendingPageActionApply(e){return Ml(this.getPendingPageActionApply(),e)}async getDownReasonTags(){await this.ensureLoggedIn(`getDownReasonTags`);let e=this.requireState(`getDownReasonTags`);if(e.downReasonTagsCache)return e.downReasonTagsCache;let t=await e.feedback.getDownReasonTags();return e.downReasonTagsCache=t,t}async submitMessageFeedback(e,t){await this.ensureLoggedIn(`submitMessageFeedback`);let n=this.requireState(`submitMessageFeedback`),r=n.activeSessionId??n.session.getSession()?.sessionId??null;if(!r)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: no active session`);let i=cc(e);if(i===null)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: invalid messageId`);let a=n.messages.find(t=>t.id===e);if(!a||a.role!==`agent`)throw new m(`INVALID_OPTIONS`,`submitMessageFeedback: not an assistant message`);let o=a.feedback??null,s=this.buildOptimisticFeedback(i,t);this.patchMessageFeedback(n,e,s);try{let a=await n.feedback.upsert(r,i,t);this.patchMessageFeedback(n,e,a)}catch(t){this.patchMessageFeedback(n,e,o);let r=t instanceof m?t:new m(`MESSAGE_FAILED`,`Failed to submit feedback`,{cause:t});throw this.reportError(r),r}}async removeMessageFeedback(e){await this.ensureLoggedIn(`removeMessageFeedback`);let t=this.requireState(`removeMessageFeedback`),n=t.activeSessionId??t.session.getSession()?.sessionId??null;if(!n)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: no active session`);let r=cc(e);if(r===null)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: invalid messageId`);let i=t.messages.find(t=>t.id===e);if(!i||i.role!==`agent`)throw new m(`INVALID_OPTIONS`,`removeMessageFeedback: not an assistant message`);let a=i.feedback??null;this.patchMessageFeedback(t,e,null);try{await t.feedback.remove(n,r)}catch(n){this.patchMessageFeedback(t,e,a);let r=n instanceof m?n:new m(`MESSAGE_FAILED`,`Failed to remove feedback`,{cause:n});throw this.reportError(r),r}}getOptions(){return this.state?.options??null}getState(){return this.stateSnapshot||(this.stateSnapshot=this.state?{lifecycle:this.lifecycle,dsn:this.state.dsn,isOpen:this.state.isOpen,isClientAuthenticated:this.state.isClientAuthenticated,isLoggedIn:this.state.isLoggedIn,catalogHydrated:this.state.catalogHydrated,streamingSessionIds:this.listStreamingSessionIds(this.state),pendingReplySessionIds:this.collectSessionsWithPendingReplies(this.state),session:this.state.session.getSession(),sessions:this.state.sessions,sessionsHasMore:this.state.sessionsHasMore,sessionsLoadingMore:this.state.sessionsLoadingMore,activeSessionId:this.state.activeSessionId,messages:[...this.state.messages],sessionMessagesHasMore:this.state.activeSessionMessagesHasMore,sessionMessagesLoadingMore:this.state.sessionMessagesLoadingMore,agents:[...this.state.agents],skills:[...this.state.skills],selectedAgentId:this.state.selectedAgentId,autoAgent:this.state.autoAgent,selectedSkillId:this.state.selectedSkillId,agentsLoading:this.state.agentsLoading,skillsLoading:this.state.skillsLoading,agentsEmptyReason:this.state.agentsEmptyReason,lastError:this.state.lastError,writeConfirmation:this.state.writeConfirmation,approvalInbox:{items:[...this.state.approvalInboxItems],loading:this.state.approvalInboxLoading,loadingMore:this.state.approvalInboxLoadingMore,hasMore:this.state.approvalInboxHasMore,statusFilter:this.state.approvalInboxStatusFilter,pendingCount:this.state.approvalInboxPendingCount},automationTaskCenter:{items:[...this.state.automationTaskItems],loading:this.state.automationTaskLoading,loadingMore:this.state.automationTaskLoadingMore,hasMore:this.state.automationTaskHasMore,total:this.state.automationTaskTotal,statusFilter:this.state.automationTaskStatusFilter,recentRunIds:[...this.state.automationRecentRunIds],activeCount:this.state.automationTaskActiveCount,selectedDetail:this.state.automationTaskSelectedDetail,detailLoading:this.state.automationTaskDetailLoading},skillIntentBanner:this.state.skillIntentBanner,skillIntentClarify:this.state.skillIntentClarify,brainClarify:this.state.brainClarify,skillTurnContract:this.state.skillTurnContract,skillTurnActive:this.state.skillTurnActive,skillPickerOpen:this.state.skillPickerOpen,pageContext:this.state.pageContext??this.state.options.pageContext??null,routeContext:this.state.routeContext,registeredContextMentions:this.listRegisteredContextMentions(this.state),attachPageContext:this.state.attachPageContext,activeSessionRun:this.getActiveSessionRunSnapshot(this.state),pendingGateJobs:this.snapshotPendingGateJobs()}:{lifecycle:this.lifecycle,dsn:null,isOpen:!1,isClientAuthenticated:!1,isLoggedIn:!1,catalogHydrated:!1,streamingSessionIds:[],pendingReplySessionIds:[],session:null,sessions:[],sessionsHasMore:!1,sessionsLoadingMore:!1,activeSessionId:null,messages:[],sessionMessagesHasMore:!1,sessionMessagesLoadingMore:!1,agents:[],skills:[],selectedAgentId:null,autoAgent:null,selectedSkillId:null,agentsLoading:!1,skillsLoading:!1,agentsEmptyReason:null,lastError:null,writeConfirmation:null,approvalInbox:{items:[],loading:!1,loadingMore:!1,hasMore:!1,statusFilter:`pending`,pendingCount:0},automationTaskCenter:{items:[],loading:!1,loadingMore:!1,hasMore:!1,total:0,statusFilter:`active`,recentRunIds:[],activeCount:0,selectedDetail:null,detailLoading:!1},skillIntentBanner:null,skillIntentClarify:null,brainClarify:null,skillTurnContract:null,skillTurnActive:null,skillPickerOpen:!1,pageContext:this.pendingPageContext===void 0?null:this.pendingPageContext,routeContext:this.resolvePendingRouteContext(),registeredContextMentions:this.listPendingRegisteredContextMentions(),attachPageContext:this.pendingAttachPageContext??!1,activeSessionRun:null,pendingGateJobs:this.snapshotPendingGateJobs()}),this.stateSnapshot}on(e,t){return this.bus.on(e,t)}off(e,t){this.bus.off(e,t)}subscribeStateChange(e){return this.stateChangeListeners.add(e),()=>this.stateChangeListeners.delete(e)}appendMessage(e){let t=this.state;t&&(t.messages=[...t.messages,e],this.notifyStateChange(),this.bus.emit(`message`,{message:e,source:e.role}))}applyPendingRuntimeConfig(e){this.pendingRouteContextOverride!==void 0&&(e.routeContextOverride=this.pendingRouteContextOverride,this.pendingRouteContextOverride=void 0),this.pendingPageContext!==void 0&&(e.pageContext=this.pendingPageContext,e.options={...e.options,pageContext:this.pendingPageContext??void 0},this.pendingPageContext=void 0),this.pendingAttachPageContext!==void 0&&(e.attachPageContext=this.pendingAttachPageContext,e.options={...e.options,attachPageContext:this.pendingAttachPageContext},this.pendingAttachPageContext=void 0),this.pendingContextMentionRegistry.size>0&&(e.contextMentionRegistry=Ii(e.contextMentionRegistry,[...this.pendingContextMentionRegistry.values()],!1),this.pendingContextMentionRegistry=new Map)}resolvePendingRouteContext(){if(this.pendingRouteContextOverride===void 0)return null;let e=wi(Ci(),this.pendingRouteContextOverride);return Object.keys(e).length>0?e:null}discardStaleWriteConfirmations(e,t,n,r){let i=W(t),a=e.writeConfirmationsBySession.get(i);a&&(a.generation==null?n>r:a.generation<n)&&this.persistWriteConfirmation(e,t,null)}notifyStateChange(){this.stateSnapshot=null;for(let e of Array.from(this.stateChangeListeners))try{e()}catch(e){this.state?.options.debug&&console.error(`[agent-chat] state listener threw:`,e)}}reportError(e){let t={code:e.code,message:e.message,cause:e.cause};this.state&&(this.state.lastError=t,this.notifyStateChange()),this.state?.options.debug&&typeof console<`u`&&(console.error(`[agent-chat]`,e),this.bus.listenerCount(`error`)===0&&console.warn("[agent-chat] Unhandled AgentChat error (no `error` listeners attached)")),this.bus.emit(`error`,t)}ensureInitialized(e,t){return this.initGate.wait({label:e,...t})}async ensureLoggedIn(e,t){await this.initGate.wait({label:e,...t}),this.syncAuthFromStore(),await this.loginGate.wait({label:e,...t})}requireState(e){if(!this.state)throw new m(`NOT_INITIALIZED`,`AgentChat.${e}() called before init(). Call AgentChat.init({ dsn }) first.`);return this.state}refreshApprovalBadgeBestEffort(){this.isLoggedIn()&&this.refreshApprovalPendingCount().catch(()=>{})}shouldSkipActiveAutomationReconcile(){return this.automationTasksLastSyncedAt!==0&&Date.now()-this.automationTasksLastSyncedAt<Nl}refreshAutomationTasksBestEffort(){this.isLoggedIn()&&(this.shouldSkipActiveAutomationReconcile()||this.refreshAutomationTasks({status:`active`,offset:0}).catch(()=>{}))}scheduleAutomationTasksBestEffort(){let e=()=>{if(this.pageActionCoordinator.listBindings().length>0){let e=this.state;e&&this.syncAutomationActiveCount(e);return}this.refreshAutomationTasksBestEffort()};typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}makeAbortController(){let e=new AbortController;return this.state?.abortControllers.add(e),e}async prepareSession(e,t){await this.ensureLoggedIn(`prepareSession`);let n=this.requireState(`prepareSession`),r=e.trim();if(!r)return null;let i=Su(t),a=i.signal,o=this.buildPreparePageContext(n),s=this.buildPrepareFingerprint(r,o);if(!i.force&&s===this.lastPrepareFingerprint)return null;try{let e=await n.chat.prepareSession(r,o,a);return a?.aborted?null:(this.lastPrepareFingerprint=s,n.options.debug&&console.debug(`[agent-chat] prepareSession`,e.pageScope,`hostTools=${e.hostToolsCount}`,e.fromCache?`fromCache`:`warmed`),e)}catch(e){return a?.aborted||n.options.debug&&console.warn(`[agent-chat] prepareSession failed:`,e),null}}schedulePrepareSession(){let e=this.state;if(!e?.isLoggedIn)return;let t=e.activeSessionId?.trim();if(!t)return;this.cancelScheduledPrepare(),this.prepareAbort=new AbortController;let n=this.prepareAbort.signal;this.prepareTimer=setTimeout(()=>{this.prepareTimer=null,this.prepareSession(t,{signal:n})},200)}cancelScheduledPrepare(){if(this.prepareTimer!=null&&(clearTimeout(this.prepareTimer),this.prepareTimer=null),this.prepareAbort){try{this.prepareAbort.abort()}catch{}this.prepareAbort=null}}buildPreparePageContext(e){let t={},n=e.routeContext;n?.routePath&&(t.routePath=n.routePath),n?.routeParams&&Object.keys(n.routeParams).length>0&&(t.routeParams=n.routeParams);let r=e.pageContext??e.options.pageContext??null;return r?.page&&(t.page=r.page),r?.flowId!=null&&(t.flowId=r.flowId),r?.programName&&(t.programName=r.programName),r?.entity&&(t.entity=r.entity),r?.metadata&&(t.metadata=r.metadata),Object.keys(t).length>0?t:null}buildPrepareFingerprint(e,t){return JSON.stringify({sessionId:e.trim().toLowerCase(),page:t?.page??``,entityId:t?.entity?.id??``,entityType:t?.entity?.type??``,routePath:t?.routePath??``,routeParams:t?.routeParams??null})}async deleteSession(e){await this.ensureLoggedIn(`deleteSession`);let t=this.requireState(`deleteSession`),n=e.trim();if(!n)throw new m(`INVALID_OPTIONS`,`deleteSession: sessionId is required`);let r=W(n),i=t.activeSessionId!=null&&W(t.activeSessionId)===r;try{await t.chat.deleteSession(n)}catch(e){let t=e instanceof m?e:new m(`TRANSPORT_FAILED`,`Failed to delete session`,{cause:e});throw this.reportError(t),t}this.abortSessionStream(t,r),t.writeConfirmationsBySession.delete(r),t.sessionRuns.delete(r);for(let e of[...t.sessionMessagesCache.keys()])W(e)===r&&t.sessionMessagesCache.delete(e);if(t.sessions=t.sessions.filter(e=>W(e.sessionId)!==r),this.notifyStateChange(),this.bus.emit(`sessions`,{sessions:t.sessions}),i){this.sessionEpoch+=1,t.activeSessionId=null,t.activeSessionMessagesPage=0,t.activeSessionMessagesHasMore=!1,t.session.reset(),t.messages=[],t.writeConfirmation=null;let e=t.sessions[0];e&&await this.selectSession(e.sessionId)}}async refreshSessions(e){await this.ensureLoggedIn(`refreshSessions`);let t=this.requireState(`refreshSessions`),n=await this.fetchSessionsPage(t,1,e);t.sessions=n.sessions,t.sessionsPage=n.page,t.sessionsHasMore=n.hasMore,t.sessionsLoadingMore=!1,this.notifyStateChange(),this.bus.emit(`sessions`,{sessions:t.sessions})}async loadMoreSessions(e){await this.ensureLoggedIn(`loadMoreSessions`);let t=this.requireState(`loadMoreSessions`);if(!(!t.sessionsHasMore||t.sessionsLoadingMore)){t.sessionsLoadingMore=!0,this.notifyStateChange();try{let n=await this.fetchSessionsPage(t,t.sessionsPage+1,e);t.sessions=hu(t.sessions,n.sessions),t.sessionsPage=n.page,t.sessionsHasMore=n.hasMore,this.bus.emit(`sessions`,{sessions:t.sessions})}finally{t.sessionsLoadingMore=!1,this.notifyStateChange()}}}async fetchSessionsPage(e,t,n){return Tt(await e.chat.listSessions(t,e.sessionsPageSize,n),t,e.sessionsPageSize)}async loadMoreSessionMessages(e){await this.ensureLoggedIn(`loadMoreSessionMessages`);let t=this.requireState(`loadMoreSessionMessages`),n=t.activeSessionId;if(!(!n||!t.activeSessionMessagesHasMore||t.sessionMessagesLoadingMore)){t.sessionMessagesLoadingMore=!0,this.notifyStateChange();try{let r=await this.fetchSessionMessagesPage(t,n,t.activeSessionMessagesPage+1,e),i=r.messages.map(e=>this.toAgentMessage(e)),a=gu(t.messages,i);t.messages=a,t.activeSessionMessagesPage=r.page,t.activeSessionMessagesHasMore=r.hasMore,t.session.setSession(n,a),this.writeSessionMessagesCache(t,n,a,r.page,r.hasMore),this.notifyStateChange(),this.syncMessageFeedbacks(t,n).catch(()=>{})}finally{t.sessionMessagesLoadingMore=!1,this.notifyStateChange()}}}async selectAgent(e){await this.ensureLoggedIn(`selectAgent`);let t=this.requireState(`selectAgent`),n=e.trim();if(!n){if(!t.selectedAgentId&&!t.autoAgent&&!t.selectedSkillId)return;t.selectedAgentId=null,t.autoAgent=null,t.selectedSkillId=null,t.skills=[],t.skillsLoading=!1,this.notifyStateChange();return}(t.selectedAgentId!==n||t.autoAgent?.source!==`requested`)&&(t.selectedAgentId=n,t.autoAgent={id:n,source:`requested`,reason:`selected in UI`},t.selectedSkillId=null,this.notifyStateChange(),await this.refreshSkills(n))}selectSkill(e){let t=this.requireState(`selectSkill`),n=e.trim();if(!n){if(t.selectedSkillId==null)return;t.selectedSkillId=null,t.skillPickerOpen=!1,this.notifyStateChange();return}t.selectedSkillId!==n&&(t.selectedSkillId=n,t.skillPickerOpen=!1,t.skillIntentClarify=null,this.notifyStateChange())}dismissSkillIntentBanner(){let e=this.state;e?.skillIntentBanner&&(e.skillIntentBanner=null,this.notifyStateChange())}clearSkillFromIntentBanner(){this.selectSkill(``);let e=this.state;e&&(e.skillIntentBanner=null,this.notifyStateChange())}dismissSkillIntentClarify(){let e=this.state;e?.skillIntentClarify&&(e.skillIntentClarify=null,this.notifyStateChange())}dismissBrainClarify(){let e=this.state;e?.brainClarify&&(e.brainClarify=null,this.notifyStateChange())}async commitBrainClarify(e){await this.ensureLoggedIn(`commitBrainClarify`);let t=this.requireState(`commitBrainClarify`),n=t.brainClarify;if(!n)return;let r=e.trim();if(!r)throw new m(`INVALID_OPTIONS`,`commitBrainClarify: selectedId required`);let i=n.brainClarify.candidates.find(e=>e.id===r)??null,a=i?zo(i):r,o=Ro(n.brainClarify,r);t.brainClarify=null,this.notifyStateChange();try{await this.sendMessage(a,{entityCommit:o})}catch(e){throw this.state===t&&!t.brainClarify&&(t.brainClarify=n,this.notifyStateChange()),e}}async followSkillIntentClarify(){await this.ensureLoggedIn(`followSkillIntentClarify`);let e=this.requireState(`followSkillIntentClarify`),t=e.skillIntentClarify?.userMessage?.trim()??e.lastTurnUserMessage?.trim()??``;if(!t)throw new m(`INVALID_OPTIONS`,`No user message to resend`);e.skillIntentClarify=null,this.selectSkill(``),await this.sendMessage(t)}openSkillPicker(){let e=this.state;e&&(e.skillPickerOpen=!0,e.skillIntentClarify=null,this.notifyStateChange())}closeSkillPicker(){let e=this.state;e?.skillPickerOpen&&(e.skillPickerOpen=!1,this.notifyStateChange())}resolveSkillName(e,t){if(t==null)return;let n=String(t);return e.skills.find(e=>e.id===n)?.name}clearSkillIntentUi(e){e.skillIntentBanner=null,e.skillIntentClarify=null,e.brainClarify=null,e.skillTurnActive=null}applySkillTurnContract(e,t,n){let r=t.skillAlignment,i=Ec(n.steps),a=t.requestedSkillId??r.requestedSkillId??i?.requestedSkillId;if(Cc(t)&&r.code){let t=e.lastTurnUserMessage?.trim()??i?.userMessage?.trim()??``;if(!t)return;e.skillIntentClarify={code:r.code,requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a),userMessage:t,messageId:n.assistantMessageId,runId:n.runId},e.skillIntentBanner=null,e.skillTurnActive=null;return}if(xc(t)){e.skillIntentBanner={code:r.code??i?.mismatchCode,requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a)},e.skillIntentClarify=null,e.skillTurnActive=null;return}if(bc(t)){e.skillTurnActive={requestedSkillId:a??void 0,requestedSkillName:i?.requestedSkillName??this.resolveSkillName(e,a)},e.skillIntentBanner=null,e.skillIntentClarify=null;return}e.skillTurnActive=null}applySkillIntentAlignment(e,t){this.isViewingSession(e,t.sessionId)&&this.loadSkillIntentAlignment(e,t).catch(()=>{})}async loadSkillIntentAlignment(e,t){let n=e.appClientId;if(n==null)return;let r=dc(await e.agentRun.getRun(n,t.runId));if(!r)return;let i=fc(r),a=Bo({steps:i});a&&this.isViewingSession(e,t.sessionId)?e.brainClarify={messageId:t.assistantMessageId,runId:t.runId,brainClarify:a}:(e.brainClarify?.runId===t.runId||e.brainClarify?.messageId===t.assistantMessageId)&&(e.brainClarify=null);let o=vc(i);if(!o){a&&this.notifyStateChange();return}e.skillTurnContract=o,this.applySkillTurnContract(e,o,{assistantMessageId:t.assistantMessageId,runId:t.runId,steps:i}),this.notifyStateChange()}async refreshAgentCatalog(e){await this.ensureInitialized(`refreshAgentCatalog`,{signal:e});let t=this.requireState(`refreshAgentCatalog`);if(t.options.agents?.length){t.agents=[...t.options.agents],t.agentsEmptyReason=null,this.syncDefaultAgentSelection(t),t.options.skills?.length||await this.refreshSkills(t.selectedAgentId??void 0,e);return}await this.ensureLoggedIn(`refreshAgentCatalog`,{signal:e}),t.agentsLoading=!0,t.agentsEmptyReason=null,this.notifyStateChange();try{let n=Lt(await t.agent.listAvailableAgents(t.options.agentListQuery,e));t.agents=n,n.length===0&&(t.agentsEmptyReason=await this.resolveAgentsEmptyReason(t,e)),this.syncDefaultAgentSelection(t),await this.refreshSkills(t.selectedAgentId??void 0,e)}catch{t.agents=[],t.agentsEmptyReason=null,this.applyStaticSkills(t)}finally{t.agentsLoading=!1,this.notifyStateChange()}}async resolveAgentsEmptyReason(e,t){try{return Lt(await e.agent.listAllClientAgents(t)).length>0?`permission`:`not_configured`}catch{return null}}async refreshSkills(e,t){let n=this.requireState(`refreshSkills`),r=e?.trim()||n.selectedAgentId||void 0,i=++this.skillsLoadToken;if(n.options.skills?.length){n.skills=r?n.options.skills.filter(e=>!e.agentId||e.agentId===r):[...n.options.skills],this.syncDefaultSkillSelection(n),this.notifyStateChange();return}if(!r){n.skills=[],n.selectedSkillId=null,this.notifyStateChange();return}n.skillsLoading=!0,this.notifyStateChange();let a=()=>i===this.skillsLoadToken;try{let e=n.pageContext??n.options.pageContext??null,i=ar(n.options.skillListQuery,e),o=await n.agent.listClientSkills(r,i,t);if(!a())return;n.skills=Ut(o),this.syncDefaultSkillSelection(n)}catch{a()&&(n.skills=[],n.selectedSkillId=null)}finally{a()&&(n.skillsLoading=!1,this.notifyStateChange())}}applyStaticSkills(e){let t=e.options.skills;if(!t?.length)return;let n=e.selectedAgentId;e.skills=n?t.filter(e=>!e.agentId||e.agentId===n):[...t],this.syncDefaultSkillSelection(e)}syncDefaultAgentSelection(e){let t=e.options.defaultAgentId?.trim();e.selectedAgentId&&e.agents.length>0?e.agents.some(t=>t.id===e.selectedAgentId)||(e.selectedAgentId=t&&e.agents.some(e=>e.id===t)?t:null,e.selectedAgentId||(e.selectedSkillId=null)):t&&e.agents.some(e=>e.id===t)&&(e.selectedAgentId=t),this.applyStaticSkills(e)}applyAutoAgentBinding(e,t){if(!t?.id)return;let n=e.selectedAgentId;e.autoAgent=t,e.selectedAgentId=t.id,n!==t.id&&(e.selectedSkillId=null,this.refreshSkills(t.id).catch(()=>{}))}syncDefaultSkillSelection(e){let t=e.options.defaultSkillId?.trim();if(!(e.selectedSkillId&&e.skills.some(t=>t.id===e.selectedSkillId))){if(t&&e.skills.some(e=>e.id===t)){e.selectedSkillId=t;return}if(this.getPageScope(e)){e.selectedSkillId=or(e.skills)??null;return}e.selectedSkillId=e.skills[0]?.id??null}}getPageScope(e){return(e.pageContext?.page??e.options.pageContext?.page??``).trim()}syncActiveWriteConfirmation(e,t){let n=W(t);e.writeConfirmation=e.writeConfirmationsBySession.get(n)??null}persistWriteConfirmation(e,t,n){let r=W(t);n?e.writeConfirmationsBySession.set(r,n):e.writeConfirmationsBySession.delete(r),this.isViewingSession(e,t)&&(e.writeConfirmation=n)}maybeNotifyBackgroundReply(e,t){if(e.isOpen&&this.isViewingSession(e,t))return;let n=W(t),r=e.sessions.find(e=>W(e.sessionId)===n);this.bus.emit(`backgroundReplyReady`,{sessionId:n,sessionTitle:r?.title??null})}emitHostAction(e,t,n=`complete`,r){if(n===`streaming`||!Fn(t))return;let i={...t,sessionId:t.sessionId??e.activeSessionId??void 0,streamPhase:t.streamPhase??n};this.bus.emit(`hostAction`,{action:i,phase:`complete`}),(async()=>{await jr(i),r?.skipToolExecution||await yr(i)})().catch(t=>{e.options.debug&&console.warn(`[agent-chat] hostAction dispatch failed:`,t)})}emitPageAgentLifecycle(e){this.bus.emit(`pageAgentLifecycle`,e)}emitPageAgentCompleteFromAction(e,t){let n=e.scope?.trim();n&&this.emitPageAgentLifecycle({type:`complete`,context:{scope:n,source:t,hostTools:e.hostTools,action:e,entity:e.entity,reason:e.reason}})}emitPageAgentError(e,t,n,r){let i=r instanceof m||r instanceof Error?r.message:String(r),a=r instanceof m?r.code:void 0;this.emitPageAgentLifecycle({type:`error`,context:{scope:e,source:t,phase:n,code:a,message:i}})}buildHostActionPageGate(e){let t=e.pageContext??e.options.pageContext??null;return{...t?.page?{page:t.page}:{},...t?.entity?{entity:t.entity}:{}}}getHostToolStreamManager(e,t,n){let r=W(t),i=n??this.buildHostActionPageGate(e),a=this.hostToolStreamManagers.get(r);return a?a.updateOptions({pageContext:i,sessionId:t,debug:e.options.debug}):(a=new ui({pageContext:i,sessionId:t,debug:e.options.debug}),this.hostToolStreamManagers.set(r,a)),a}ingestHostActionSse(e,t,n,r,i=`chat`){if(!di(e.options.hostToolStream,n)){let r=zn(n,t);r&&(this.emitHostAction(e,r),this.emitPageAgentCompleteFromAction(r,i));return}if(!Sn(n)){let a=zn(n,t);a&&(this.getHostToolStreamManager(e,t,r).reset(),this.emitHostAction(e,a),this.emitPageAgentCompleteFromAction(a,i));return}this.getHostToolStreamManager(e,t,r).ingest(n,{source:i,emitLifecycle:e=>this.emitPageAgentLifecycle(e),emitHostAction:(t,n,r)=>{this.emitHostAction(e,t,n,r)}})}acquirePageActionLock(e){let t=e?.trim();if(!t)return null;if(this.pageActionInFlightKeys.has(t))throw new m(`INVALID_OPTIONS`,`Page action invoke already in flight for clientActionId: ${t}`);return this.pageActionInFlightKeys.add(t),t}releasePageActionLock(e){e&&this.pageActionInFlightKeys.delete(e)}requirePageActionKey(e){let t=e.actionKey?.trim();if(!t)throw new m(`INVALID_OPTIONS`,`Page action: actionKey is required`);return t}resolvePageActionStreamSessionKey(e,t){let n=e.clientActionId?.trim();return n?`${ll}${n}`:t==null?`${ll}${uu()}`:`${ll}${t}`}releasePageActionStreamManager(e){this.hostToolStreamManagers.delete(W(e))}resolvePageActionContext(e,t){let n=e.pageContext??e.options.pageContext??null,r=t.pageContext;return r&&n?{...n,...r}:r??n??void 0}buildPageActionInvokeBody(e,t){let n=this.requirePageActionKey(t),r=ko({pageContext:this.resolvePageActionContext(e,t),routeContext:e.routeContext}),i={actionKey:n};return r&&(i.pageContext=r),t.instruction?.trim()&&(i.instruction=t.instruction.trim()),t.context&&Object.keys(t.context).length>0&&(i.context=t.context),t.idempotencyKey?.trim()&&(i.idempotencyKey=t.idempotencyKey.trim()),t.clientActionId?.trim()&&(i.clientActionId=t.clientActionId.trim()),t.entityCommit?.entityType?.trim()&&t.entityCommit?.selectedId?.trim()&&(i.entityCommit={entityType:t.entityCommit.entityType.trim(),selectedId:t.entityCommit.selectedId.trim()}),i}async tryPageActionReusePrompt(e,t,n,r){let i=this.pageActionReusePromptHandler;if(!i)return null;let a=r.cached;if(!a)try{a=await e.pageAction.reuseHint(r.body,t.signal),this.pageActionReuseHintCache.set(r.body,a)}catch{return null}if(a.reusable.total<=0||a.reusable.items.length===0)return null;if(n){let e=this.pageActionRows.get(n);this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:a.pageActionKey,phase:`awaiting_reuse`,error:null,message:null,progressLabel:null,approvalRequestId:e?.approvalRequestId??null}))}let o=await i({actionKey:a.actionKey,pageActionKey:a.pageActionKey,items:a.reusable.items,sourceRect:bl(t.launchAnchor),launchAnchor:t.launchAnchor??null,invokeSnapshot:{pageContext:t.pageContext,instruction:t.instruction,context:t.context,clientActionId:t.clientActionId,idempotencyKey:t.idempotencyKey,rowKey:n??t.rowKey,awaitStream:t.awaitStream}});if(o.type===`rerun`){if(this.pageActionReuseHintCache.invalidateByBody(r.body),n){let e=this.pageActionRows.get(n);this.clearPageActionNarrativeClearTimer(n),this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:e?.pageActionKey??a.pageActionKey,phase:`submitting`,error:null,message:null,progressLabel:$c(this.state?.options.locale),narrativeItems:[],approvalRequestId:e?.approvalRequestId??null}))}return null}if(o.type===`cancel`){if(n){let e=this.pageActionRows.get(n);this.upsertPageActionRow(U({rowKey:n,actionKey:t.actionKey.trim(),runId:e?.runId??null,pageActionKey:e?.pageActionKey??a.pageActionKey,phase:`idle`,loading:!1,disabled:!1,error:null,message:null,progressLabel:null,approvalRequestId:e?.approvalRequestId??null}))}return{actionRunId:0,text:``,dslOutcome:null,actionKey:t.actionKey.trim(),clientActionId:t.clientActionId,cancelled:!0}}let s=a.reusable.items.find(e=>e.ref.id===o.runId)??a.reusable.items[0];return s?this.applyPageActionReuse(t,n,a,s):null}async applyPageActionReuse(e,t,n,r){let i=r.ref.id,a=this.state?.options.locale,o=tl(a),s=e.actionKey.trim(),c=t?this.pageActionReuseDismissEpochByRowKey.get(t)??0:0,l=()=>t!=null&&(this.pageActionReuseDismissEpochByRowKey.get(t)??0)!==c,u=e=>{if(!t||l())return;let r=this.pageActionRows.get(t);this.upsertPageActionRow(U({rowKey:t,actionKey:s,runId:i,pageActionKey:n.pageActionKey,phase:e.phase,loading:e.loading,disabled:e.disabled,error:e.error??null,message:e.message??null,progressLabel:e.progressLabel??null,approvalRequestId:r?.approvalRequestId??null}))};u({phase:`streaming`,loading:!0,disabled:!0,progressLabel:nl(a),message:null,error:null}),this.bus.emit(`pageActionApplyStarted`,{runId:i,actionKey:s,rowKey:t});let d=r.outputs.fillText?.trim()||r.outputs.preview?.trim()||``;try{let n=await this.getAutomationTaskDetail(i,e.signal);if(l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};if(!n||n.ref.kind!==`page_action_run`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${i} not found`);if(n.taskStatus!==`completed`)throw new m(`PAGE_ACTION_FAILED`,`PageAction run ${i} is not completed`);let r=n.outputs.preview?.trim()||d;if(r&&(d=r),(n.replay.canReplay||n.outputs.hasFillText===!0||d)&&(n.replay.canReplay||n.outputs.hasFillText)){if(await this.replayPageAction(i,{signal:e.signal}),l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};if(d&&e.onChunk)try{e.onChunk(d)}catch{}}else d&&e.onChunk?(e.onChunk(d),this.bus.emit(`pageActionApplyCompleted`,{runId:i,actionKey:s,rowKey:t})):(this.openAutomationTaskCenter({runId:i}),this.bus.emit(`pageActionApplyCompleted`,{runId:i,actionKey:s,rowKey:t}));return u({phase:`completed`,loading:!1,disabled:!1,message:o,progressLabel:null,error:null}),t&&!l()&&this.schedulePageActionRowIdleReset(t,1800),{actionRunId:i,text:d,dslOutcome:n.replay.dslOutcome,actionKey:s,clientActionId:e.clientActionId,message:o,reused:!0}}catch(n){if(l())return{actionRunId:i,text:``,dslOutcome:null,actionKey:s,clientActionId:e.clientActionId,cancelled:!0,reused:!0};let r=n instanceof Error?n.message:String(n);throw u({phase:`failed`,loading:!1,disabled:!1,error:r,message:null,progressLabel:null}),t&&this.schedulePageActionRowIdleReset(t,1600),this.bus.emit(`pageActionRunFailed`,{runId:i,actionKey:s,rowKey:t,errorMessage:r}),n instanceof m?n:new m(`PAGE_ACTION_FAILED`,r)}}async invokePageActionStream(e,t,n=null){let r=this.resolvePageActionContext(e,t),i=hl(r),a=this.buildPageActionInvokeBody(e,t),o=n??this.resolveInvokeRowKey(t),s;try{s=await e.pageAction.invoke(a,t.signal)}catch(e){let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.emitPageAgentError(n,`page_action`,`page_action`,e),ml(e)}if(s.kind===`already_active`){let n=s,a={runId:n.existingRunId,generation:n.existingRunId,clientActionId:t.clientActionId?.trim()??null,pageActionKey:n.pageActionKey,streamUrl:n.streamUrl,status:n.existingStatus};this.registerAutomationRun(a.runId,{actionKey:t.actionKey,accepted:a,pageActionKey:n.pageActionKey,rowKey:o});let c=n.existingStatus===`awaiting_approval`?sl(this.state?.options.locale):ol(this.state?.options.locale);if(o&&this.syncPageActionRowFromAccepted(o,t.actionKey,a,{approvalRequestId:n.approvalRequestId,message:c}),this.bus.emit(`pageActionSoftNotice`,{kind:n.existingStatus===`awaiting_approval`?`already_awaiting_approval`:`already_running`,message:c,runId:a.runId,actionKey:t.actionKey,approvalRequestId:n.approvalRequestId}),n.existingStatus===`awaiting_approval`){let e=this.buildEarlyPageActionResult(a,{actionKey:t.actionKey,approvalRequestId:n.approvalRequestId,message:c,alreadyActive:!0});return this.notifyPageActionAwaitingApproval(i,r,t,e),e}return this.consumePageActionRunStream(e,t,a,i,r).then(e=>{e?.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,{...e,approvalRequestId:e.approvalRequestId??n.approvalRequestId})}).catch(e=>{let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(a.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e)}),this.buildEarlyPageActionResult(a,{actionKey:t.actionKey,approvalRequestId:n.approvalRequestId,message:c,alreadyActive:!0})}let c=s;this.registerAutomationRun(c.runId,{actionKey:t.actionKey,accepted:c,pageActionKey:c.pageActionKey,rowKey:o}),o&&this.syncPageActionRowFromAccepted(o,t.actionKey,c),this.rememberPageActionInvokeSnapshot(t,o,c.runId);let l={...c,sourceRect:bl(t.launchAnchor),launchAnchor:t.launchAnchor??null,rowKey:o,actionKey:t.actionKey.trim()};this.bus.emit(`pageActionSubmitted`,l);let u=t.awaitStream!==!1,d=this.consumePageActionRunStream(e,t,c,i,r);if(!u){d.then(e=>{e?.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,e)}).catch(e=>{let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(c.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e)});let e=this.buildEarlyPageActionResult(c,{actionKey:t.actionKey});return e.awaitingApproval&&this.notifyPageActionAwaitingApproval(i,r,t,e),e}try{return await d}catch(e){let n=i.page?.trim()??r?.page?.trim()??t.actionKey?.split(`.`)[0]?.trim();this.markTrackedAutomationRunFailed(c.runId,t.actionKey),this.emitPageAgentError(n,`page_action`,`page_action`,e),ml(e)}}buildEarlyPageActionResult(e,t){let n=e.status===`awaiting_approval`;return{actionRunId:e.runId,text:``,dslOutcome:null,awaitingApproval:n?!0:void 0,status:n?`awaiting_approval`:void 0,actionKey:t?.actionKey,clientActionId:e.clientActionId??void 0,approvalRequestId:t?.approvalRequestId??null,message:t?.message??null,alreadyActive:t?.alreadyActive===!0||void 0}}finishAlreadyActiveInvoke(e,t,n){let r=this.pageActionRows.get(t),i=r?.awaitingApproval===!0||r?.phase===`awaiting_approval`,a=i?sl(this.state?.options.locale):ol(this.state?.options.locale);if(r){let{loading:e,disabled:t,...n}=r;this.upsertPageActionRow(U({...n,error:null,message:a}))}return this.bus.emit(`pageActionSoftNotice`,{kind:i?`already_awaiting_approval`:`already_running`,message:a,runId:r?.runId??null,actionKey:e.actionKey.trim(),approvalRequestId:r?.approvalRequestId??null}),i&&r?.runId!=null&&(this.pageActionAwaitingApprovalNotified.has(r.runId)||(this.pageActionAwaitingApprovalNotified.add(r.runId),this.bus.emit(`pageActionAwaitingApproval`,{actionRunId:r.runId,actionKey:e.actionKey.trim(),approvalRequestId:r.approvalRequestId??null}))),{actionRunId:r?.runId??0,text:``,dslOutcome:null,awaitingApproval:i?!0:void 0,status:i?`awaiting_approval`:void 0,actionKey:e.actionKey.trim(),clientActionId:e.clientActionId?.trim()||void 0,approvalRequestId:r?.approvalRequestId??null,message:a,alreadyActive:!0}}async consumePageActionRunStream(e,t,n,r,i){let a=this.pageActionRunStreamPromises.get(n.runId);if(a)return a;let o=this.runPageActionConsumeStream(e,t,n,r,i).finally(()=>{this.pageActionRunStreamPromises.get(n.runId)===o&&this.pageActionRunStreamPromises.delete(n.runId)});return this.pageActionRunStreamPromises.set(n.runId,o),o}async runPageActionConsumeStream(e,t,n,r,i){let a=this.resolvePageActionStreamSessionKey(t,n.runId);this.getHostToolStreamManager(e,a,r).reset();let o=new AbortController;this.pageActionRunAborts.set(n.runId,o),t.signal&&(t.signal.aborted?o.abort():t.signal.addEventListener(`abort`,()=>o.abort(),{once:!0}));try{let s=await vl(e.pageAction.streamRun(n.runId,o.signal),{onHostAction:t=>{this.ingestHostActionSse(e,a,t,r,`page_action`)},onChunk:t.onChunk,onLifecycle:t=>{this.applyPageActionRunLifecycle(e,t)},onWorkflowProgress:e=>{this.syncPageActionRowFromWorkflow(e)},debug:e.options.debug});return s.awaitingApproval&&this.notifyPageActionAwaitingApproval(r,i,t,s),this.bus.emit(`automationTaskCenterChanged`,void 0),s}finally{this.pageActionRunAborts.delete(n.runId),this.releasePageActionStreamManager(a)}}notifyPageActionAwaitingApproval(e,t,n,r){let i=r.actionRunId;if(typeof i==`number`&&Number.isFinite(i)){if(this.pageActionAwaitingApprovalNotified.has(i))return;this.pageActionAwaitingApprovalNotified.add(i)}this.emitPageActionAwaitingApproval(e,t,n,r);let a=n.rowKey?.trim()||ru({rowKey:n.rowKey,entityId:t?.entity?.id??null})||(typeof r.actionRunId==`number`?this.pageActionRunToRowKey.get(r.actionRunId):null);if(a){let e=this.pageActionRows.get(a);this.upsertPageActionRow(U({rowKey:a,actionKey:r.actionKey??n.actionKey,runId:r.actionRunId??e?.runId??null,pageActionKey:e?.pageActionKey??null,phase:`awaiting_approval`,error:null,message:e?.message??null,progressLabel:e?.progressLabel??cl({phase:`awaiting_approval`,actionRunId:r.actionRunId??e?.runId??0,actionKey:(r.actionKey??n.actionKey).trim(),generation:0,nodeId:``,stageKind:`other`},this.state?.options.locale),narrativeItems:e?.narrativeItems??[],approvalRequestId:r.approvalRequestId??null,brainClarify:e?.brainClarify??null}))}this.bus.emit(`pageActionAwaitingApproval`,{actionRunId:r.actionRunId,actionKey:r.actionKey??n.actionKey,approvalRequestId:r.approvalRequestId??null})}rememberPageActionInvokeSnapshot(e,t,n){let r={pageContext:e.pageContext,instruction:e.instruction,context:e.context,clientActionId:e.clientActionId,idempotencyKey:e.idempotencyKey,rowKey:e.rowKey??t??void 0,awaitStream:e.awaitStream,launchAnchor:e.launchAnchor??null};t&&this.pageActionInvokeSnapshotsByRowKey.set(t,r),typeof n==`number`&&Number.isFinite(n)&&this.pageActionInvokeSnapshotsByRunId.set(Math.trunc(n),r)}emitPageActionBrainClarify(e,t,n){t.brainClarify&&this.emitPageActionBrainClarifyFromPayload({actionKey:t.actionKey,runId:t.actionRunId,brainClarify:t.brainClarify,rowKey:n})}emitPageActionBrainClarifyFromPayload(e){let t=e.runId,n=e.rowKey,r=this.pageActionInvokeSnapshotsByRunId.get(t)??(n?this.pageActionInvokeSnapshotsByRowKey.get(n):void 0)??null,i={actionKey:e.actionKey,runId:t,brainClarify:e.brainClarify,sourceRect:bl(r?.launchAnchor??null),launchAnchor:r?.launchAnchor??null,invokeSnapshot:r?{pageContext:r.pageContext,instruction:r.instruction,context:r.context,clientActionId:r.clientActionId,rowKey:r.rowKey,awaitStream:r.awaitStream}:void 0};this.bus.emit(`pageActionBrainClarify`,i)}syncPageActionRowAfterApprovalDecision(e,t,n){let r=this.resolvePageActionRunIdForApproval(e,t);r!=null&&this.pageActionAwaitingApprovalNotified.delete(r);let i=this.findRowKeyForApproval(r,t);if(!i)return;let a=this.pageActionRows.get(i),o=t!=null&&Number.isFinite(t)?Math.trunc(t):null,s=a?.awaitingApproval||a?.phase===`awaiting_approval`||r!=null&&a?.runId===r||o!=null&&a?.approvalRequestId===o;if(!(!a||!s)){if(n===`resumed`){this.upsertPageActionRow(U({...a,rowKey:i,runId:r??a.runId,phase:`streaming`,error:null,approvalRequestId:null}));return}if(n===`suspended`){this.upsertPageActionRow(U({...a,rowKey:i,runId:r??a.runId,phase:`awaiting_approval`,error:null,approvalRequestId:t??a.approvalRequestId}));return}r!=null&&this.automationRunRegistry.delete(r),this.upsertPageActionRow(U({...a,rowKey:i,runId:null,phase:`idle`,error:null,approvalRequestId:null}))}}findRowKeyByRunId(e){let t=Math.trunc(e),n=this.pageActionRunToRowKey.get(t)?.trim()||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(n)return n;for(let e of this.pageActionRows.values())if(e.runId===t)return e.rowKey;return null}findRowKeyForApproval(e,t){if(e!=null&&Number.isFinite(e)){let t=this.findRowKeyByRunId(Math.trunc(e));if(t)return t}if(t!=null&&Number.isFinite(t)){let e=Math.trunc(t);for(let t of this.pageActionRows.values())if(t.approvalRequestId===e)return t.rowKey}return null}resolvePageActionRunIdForApproval(e,t){return typeof e==`number`&&Number.isFinite(e)?Math.trunc(e):t!=null&&Number.isFinite(t)?this.resolveApprovalPageActionRunId(Math.trunc(t)):null}refreshPageActionRowsAfterApprovalDecision(e,t){(async()=>{try{this.automationRunRegistry.size>0&&await this.refreshAutomationTasks({status:`active`,offset:0});let n=this.resolvePageActionRunIdForApproval(e,t);if(n!=null){await this.hydratePageActionByRunId(n);return}let r=[...this.pageActionRows.values()].filter(e=>e.awaitingApproval||e.phase===`awaiting_approval`);await Promise.all(r.filter(e=>e.runId!=null).map(e=>this.hydratePageActionByRunId(e.runId)))}catch{}})()}emitPageActionAwaitingApproval(e,t,n,r){let i=e.page?.trim()??t?.page?.trim()??n.actionKey?.split(`.`)[0]?.trim()??``;i&&this.bus.emit(`pageAgentAwaitingApproval`,{scope:i,actionRunId:r.actionRunId,actionKey:r.actionKey,clientActionId:r.clientActionId,approvalRequestId:r.approvalRequestId??null}),this.refreshApprovalPendingCount().catch(()=>{}),this.bus.emit(`approvalInboxChanged`,void 0)}clearAutomationRunRegistry(){this.automationRunRegistry.clear(),this.automationTasksLastSyncedAt=0,this.pageActionRows.clear(),this.pageActionRunToRowKey.clear(),this.pageActionReuseHintCache.clear(),this.clearPageActionRowIdleTimers()}syncAutomationActiveCount(e){Rl(this.automationRunRegistry),e.automationTaskActiveCount=Fl(this.automationRunRegistry)}resolveInvokeRowKey(e){let t=this.state;if(!t)return ru({rowKey:e.rowKey,entityId:e.pageContext?.entity?.id??null});let n=this.resolvePageActionContext(t,e);return ru({rowKey:e.rowKey,entityId:n?.entity?.id??null})}bindPageActionRunToRow(e,t){let n=t.trim();!n||!Number.isFinite(e)||this.pageActionRunToRowKey.set(Math.trunc(e),n)}findRowKeyByPageActionKey(e){let t=e?.trim();if(!t)return null;for(let e of this.pageActionRows.values())if(e.pageActionKey?.trim()===t)return e.rowKey;for(let e of this.automationRunRegistry.values())if(e.pageActionKey?.trim()===t&&e.rowKey?.trim())return e.rowKey.trim();return null}upsertPageActionRow(e){let t=this.pageActionRowIdleTimers.get(e.rowKey);t!=null&&e.phase!==`completed`&&e.phase!==`failed`&&(clearTimeout(t),this.pageActionRowIdleTimers.delete(e.rowKey));let n=this.pageActionRows.get(e.rowKey),r=n&&e.updatedAt<=n.updatedAt?{...e,updatedAt:n.updatedAt+1}:e;this.pageActionRows.set(r.rowKey,r),r.runId!=null&&this.bindPageActionRunToRow(r.runId,r.rowKey),this.bus.emit(`pageActionRowChanged`,{rowKey:r.rowKey,state:r})}syncPageActionRowFromAccepted(e,t,n,r={}){let i=n.status===`awaiting_approval`?`awaiting_approval`:n.status===`running`?`launched`:nu(n.status);this.upsertPageActionRow(U({rowKey:e,actionKey:t.trim(),runId:n.runId,pageActionKey:n.pageActionKey,phase:i,error:r.error??null,message:r.message??null,progressLabel:i===`awaiting_approval`?cl({phase:`awaiting_approval`,actionRunId:n.runId,actionKey:t.trim(),generation:n.generation,nodeId:``,stageKind:`other`},this.state?.options.locale):i===`launched`||i===`streaming`?this.pageActionRows.get(e)?.progressLabel??$c(this.state?.options.locale):null,narrativeItems:this.pageActionRows.get(e)?.narrativeItems??[],approvalRequestId:r.approvalRequestId??null}))}syncPageActionRowFromWorkflow(e){let t=e.actionRunId,n=this.pageActionRunToRowKey.get(t)||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(!n)return;let r=this.pageActionRows.get(n);if(!r||e.phase===`failed`||r.phase===`idle`||r.phase===`completed`||r.phase===`failed`||r.phase===`awaiting_reuse`)return;let i=zc(r.narrativeItems,e.narrativeItems),a=cl(e,this.state?.options.locale),o=a==null||a===r.progressLabel,s=i===r.narrativeItems;if(o&&s)return;let c=e.phase===`awaiting_approval`?`awaiting_approval`:r.phase===`submitting`||r.phase===`launched`||r.loading||r.phase===`streaming`?`streaming`:r.phase;this.upsertPageActionRow(U({...r,phase:c,progressLabel:a??r.progressLabel,narrativeItems:i,message:null}))}syncPageActionRowFromLifecycle(e){let t=e.actionRunId,n=this.pageActionRunToRowKey.get(t)||this.automationRunRegistry.get(t)?.rowKey?.trim()||null;if(!n)return;let r=this.pageActionRows.get(n);if((e.phase===`started`||e.phase===`stream`)&&(r?.phase===`idle`||r?.phase===`completed`||r?.phase===`failed`||r?.phase===`awaiting_reuse`))return;let i=e.phase===`failed`&&Lo(e.errorCode)&&e.brainClarify!=null,a=e.phase===`started`||e.phase===`stream`?`streaming`:e.phase===`awaiting_approval`?`awaiting_approval`:e.phase===`completed`?`completed`:i?`awaiting_clarify`:e.phase===`failed`?`failed`:`idle`;if(e.phase===`stream`&&r?.phase===`streaming`&&r.progressLabel)return;let o=a===`completed`||a===`failed`?null:a===`awaiting_clarify`?rl(this.state?.options.locale):a===`awaiting_approval`?cl({phase:`awaiting_approval`,actionRunId:t,actionKey:e.actionKey||r?.actionKey||``,generation:e.generation,nodeId:``,stageKind:`other`},this.state?.options.locale):r?.progressLabel??$c(this.state?.options.locale);this.upsertPageActionRow(U({rowKey:n,actionKey:e.actionKey||r?.actionKey||`Run ${t}`,runId:t,pageActionKey:r?.pageActionKey??this.automationRunRegistry.get(t)?.pageActionKey??null,phase:a,error:i?null:e.errorMessage??(a===`failed`?`Page action failed`:null),message:a===`failed`||a===`completed`||a===`awaiting_clarify`||e.phase===`started`?null:r?.message??null,progressLabel:o,narrativeItems:r?.narrativeItems??[],approvalRequestId:r?.approvalRequestId??null,brainClarify:i?e.brainClarify??null:null})),(a===`completed`||a===`failed`)&&this.schedulePageActionRowIdleReset(n,a===`failed`?1600:900)}schedulePageActionRowIdleReset(e,t,n=[`completed`,`failed`]){let r=e.trim();if(!r)return;let i=this.pageActionRowIdleTimers.get(r);i!=null&&clearTimeout(i);let a=new Set(n),o=setTimeout(()=>{this.pageActionRowIdleTimers.delete(r);let e=this.pageActionRows.get(r);if(e&&a.has(e.phase)){if(e.phase===`launched`&&e.runId!=null){let t=this.automationRunRegistry.get(e.runId);if(t&&H(t.status)){this.upsertPageActionRow(U({...e,phase:`streaming`}));return}}this.upsertPageActionRow(U({...e,phase:`idle`,runId:e.runId,loading:!1,disabled:!1,error:e.phase===`failed`?e.error:null,message:e.phase===`failed`?e.message:null,progressLabel:null,narrativeItems:e.narrativeItems??[]})),(e.narrativeItems?.length??0)>0&&this.schedulePageActionNarrativeClear(r,12e3)}},t);this.pageActionRowIdleTimers.set(r,o)}schedulePageActionNarrativeClear(e,t){let n=e.trim();if(!n)return;let r=this.pageActionNarrativeClearTimers.get(n);r!=null&&clearTimeout(r);let i=setTimeout(()=>{this.pageActionNarrativeClearTimers.delete(n);let e=this.pageActionRows.get(n);e&&e.phase===`idle`&&(e.narrativeItems?.length??0)!==0&&this.upsertPageActionRow(U({...e,narrativeItems:[]}))},t);this.pageActionNarrativeClearTimers.set(n,i)}clearPageActionNarrativeClearTimer(e){let t=e.trim();if(!t)return;let n=this.pageActionNarrativeClearTimers.get(t);n!=null&&(clearTimeout(n),this.pageActionNarrativeClearTimers.delete(t))}clearPageActionRowIdleTimers(){for(let e of this.pageActionRowIdleTimers.values())clearTimeout(e);this.pageActionRowIdleTimers.clear();for(let e of this.pageActionNarrativeClearTimers.values())clearTimeout(e);this.pageActionNarrativeClearTimers.clear(),this.pageActionReuseDismissEpochByRowKey.clear()}trackAutomationRun(e,t){let n=this.state;if(!n)return;let r=new Date().toISOString(),i=this.pageActionFeedbackNames.get(t.actionKey.trim()),a=n.options.locale,o=e.status===`awaiting_approval`?al(a):il(a),s=Vl(e,t.actionKey,{title:Hl(t.actionKey,i),subtitle:o}),c=t.rowKey?.trim()||null;if(H(e.status)&&(this.automationRunRegistry.set(e.runId,{runId:e.runId,actionKey:t.actionKey,pageActionKey:t.pageActionKey,rowKey:c,status:e.status,registeredAt:r,updatedAt:r,clientActionId:e.clientActionId}),c&&this.bindPageActionRunToRow(e.runId,c)),zl(s.taskStatus,n.automationTaskStatusFilter)){let e=Gl(n.automationTaskItems,s);this.publishAutomationTaskTabCache(n,n.automationTaskStatusFilter,e,n.automationTaskHasMore)}n.automationRecentRunIds=[e.runId,...n.automationRecentRunIds.filter(t=>t!==e.runId)].slice(0,mu),this.syncAutomationActiveCount(n),this.notifyStateChange(),this.bus.emit(`automationTaskCenterChanged`,void 0)}applyPageActionRunLifecycle(e,t){let n=Bl(t.phase);if(!n)return;let r=t.actionRunId,i=new Date().toISOString(),a=this.automationRunRegistry.get(r);if(t.phase===`stream`&&a?.status===`running`){this.syncPageActionRowFromLifecycle(t);return}a?(a.status=n,a.updatedAt=i,t.actionKey&&(a.actionKey=t.actionKey),H(n)||this.automationRunRegistry.delete(r)):H(n)&&this.automationRunRegistry.set(r,{runId:r,actionKey:t.actionKey,pageActionKey:null,rowKey:this.pageActionRunToRowKey.get(r)??null,status:n,registeredAt:i,updatedAt:i,clientActionId:t.clientActionId??null}),this.syncPageActionRowFromLifecycle(t);let o=this.pageActionRunToRowKey.get(r)??this.automationRunRegistry.get(r)?.rowKey?.trim()??null;if(t.phase===`completed`){let e=a?.pageActionKey??(o?this.pageActionRows.get(o)?.pageActionKey:null)??null;this.pageActionReuseHintCache.invalidateByPageActionKey(e),this.bus.emit(`pageActionRunCompleted`,{runId:r,actionKey:t.actionKey,rowKey:o})}else t.phase===`failed`&&(Lo(t.errorCode)&&t.brainClarify?this.emitPageActionBrainClarify(e,t,o):this.bus.emit(`pageActionRunFailed`,{runId:r,actionKey:t.actionKey,rowKey:o,errorMessage:t.errorMessage??null,errorCode:t.errorCode??null}));let s=t.phase===`completed`&&typeof t.text==`string`?t.text.trim().slice(0,120)||null:void 0,c={taskStatus:n,...H(n)?{finishedAt:null}:{finishedAt:i},...s?{outputs:{preview:s,hasFillText:s.length>0}}:{}};if(e.automationTaskStatusFilter===`active`&&!H(n)){let t=ql(e.automationTaskItems,r);this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,t,e.automationTaskHasMore)}else if(zl(n,e.automationTaskStatusFilter)){if(e.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===r)>=0){let t=Kl(e.automationTaskItems,r,c);this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,t,e.automationTaskHasMore)}else{let i=Gl(e.automationTaskItems,{...Vl({runId:r,generation:t.generation,clientActionId:t.clientActionId??null,pageActionKey:a?.pageActionKey??null,streamUrl:``,status:n},t.actionKey,{title:Hl(t.actionKey,this.pageActionFeedbackNames.get(t.actionKey.trim()))}),...c});this.publishAutomationTaskTabCache(e,e.automationTaskStatusFilter,i,e.automationTaskHasMore)}}e.automationTaskSelectedDetail?.ref.kind===`page_action_run`&&e.automationTaskSelectedDetail.ref.id===r&&(e.automationTaskSelectedDetail={...e.automationTaskSelectedDetail,...c,outputs:c.outputs?{...e.automationTaskSelectedDetail.outputs,...c.outputs}:e.automationTaskSelectedDetail.outputs}),this.syncAutomationActiveCount(e),this.notifyStateChange(),!H(n)&&e.automationTaskSelectedDetail?.ref.kind===`page_action_run`&&e.automationTaskSelectedDetail.ref.id===r&&this.hydrateAutomationTaskDetail(r).catch(()=>{})}markTrackedAutomationRunFailed(e,t){let n=this.state;n&&this.applyPageActionRunLifecycle(n,{phase:`failed`,actionRunId:e,actionKey:t?.trim()||this.automationRunRegistry.get(e)?.actionKey||`Run ${e}`,generation:0,clientActionId:this.automationRunRegistry.get(e)?.clientActionId??null})}resolveApprovalPageActionRunId(e){let t=this.state;if(!t)return null;let n=t.approvalInboxItems.find(t=>t.id===e);if(n?.pageActionRunId!=null&&Number.isFinite(n.pageActionRunId))return Math.trunc(n.pageActionRunId);for(let t of this.pageActionRows.values())if(t.approvalRequestId===e&&t.runId!=null)return t.runId;return null}taskStatusToExecutionOutcome(e){switch(e){case`completed`:return`completed`;case`failed`:return`failed`;case`running`:return`running`;case`awaiting_approval`:return`awaiting_approval`;case`cancelled`:return`cancelled`;default:return`completed`}}resolveApprovalIdentity(e){let t=this.state?.approvalInboxItems.find(t=>t.id===e);return{approvalTitle:t?.title?.trim()||null,approvalSummary:t?.summary?.trim()||null}}async emitApprovalExecutionCompleted(e){let{approvalId:t,runId:n,decision:r,result:i}=e,a=e.identity??this.resolveApprovalIdentity(t);if(r.action===`cancel`){this.bus.emit(`approvalExecutionCompleted`,{approvalId:t,runId:n,outcome:`cancelled`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary});return}if(r.action===`retry`){if(!i.resumed)return;i.suspended?this.bus.emit(`approvalExecutionCompleted`,{approvalId:t,runId:n,outcome:`awaiting_approval`,title:a.approvalTitle,approvalTitle:a.approvalTitle,approvalSummary:a.approvalSummary}):await this.emitApprovalRunExecutionOutcome(t,n,a);return}(r.action===`confirm`||r.action===`confirm_with_edits`)&&i.resumed&&await this.emitApprovalRunExecutionOutcome(t,n,a)}async emitApprovalRunExecutionOutcome(e,t,n={approvalTitle:null,approvalSummary:null}){let r=this.state;if(!t){this.bus.emit(`approvalExecutionCompleted`,{approvalId:e,runId:null,outcome:`completed`,title:n.approvalTitle,approvalTitle:n.approvalTitle,approvalSummary:n.approvalSummary});return}let i=await this.getAutomationTaskDetail(t).catch(()=>null);if(i&&r){let e=r.automationTaskItems.findIndex(e=>e.ref.kind===`page_action_run`&&e.ref.id===t);if(e>=0){let t=[...r.automationTaskItems];t[e]=i,this.publishAutomationTaskTabCache(r,r.automationTaskStatusFilter,t,r.automationTaskHasMore)}H(i.taskStatus)||this.automationRunRegistry.delete(t),this.syncAutomationActiveCount(r),this.notifyStateChange(),await this.hydratePageActionByRunId(t).catch(()=>{})}let a=i?.title?.trim()||null,o=n.approvalTitle||a,s=i?.outputs.preview?.trim()||n.approvalSummary||null,c={approvalId:e,runId:t,outcome:i?this.taskStatusToExecutionOutcome(i.taskStatus):`completed`,title:o,approvalTitle:n.approvalTitle,approvalSummary:n.approvalSummary,preview:s,...i?{taskStatus:i.taskStatus}:{}};this.bus.emit(`approvalExecutionCompleted`,c)}abortAllPageActionRunStreams(){for(let e of this.pageActionRunAborts.values())try{e.abort()}catch{}this.pageActionRunAborts.clear(),this.pageActionRunStreamPromises.clear()}async fetchAutomationTasks(e={}){await this.ensureLoggedIn(`refreshAutomationTasks`);let t=this.requireState(`refreshAutomationTasks`),n=e.status??t.automationTaskStatusFilter,r=e.limit??pu,i=$l(t.automationTaskTabCaches,n),a=e.offset??(e.append?i.items.length:0),o=e.append===!0;if(o&&t.automationTaskLoading)return{items:i.items,total:i.total,hasMore:i.hasMore};let s=o?this.automationTaskListPublishSeq:++this.automationTaskListPublishSeq;o?t.automationTaskLoadingMore=!0:t.automationTaskLoading=!0,this.notifyStateChange();try{let c=await t.automation.listTasks({status:n,triggerSource:`page_action`,actionKey:e.actionKey,limit:r,offset:a,signal:e.signal});if(s!==this.automationTaskListPublishSeq)return c;t.automationTaskStatusFilter=n;let l=o?[...i.items,...c.items]:n===`active`&&a===0?Jl(c.items,this.automationRunRegistry):c.items,u=Xo(l.length,c.items.length,c.total,r);return this.publishAutomationTaskTabCache(t,n,l,u,c.total),n===`active`&&a===0&&!o&&(Yl(this.automationRunRegistry,c.items,{fallbackActionKey:e.actionKey}),this.automationTasksLastSyncedAt=Date.now()),this.syncAutomationActiveCount(t),c}finally{o?t.automationTaskLoadingMore=!1:t.automationTaskLoading=!1,this.notifyStateChange()}}getMessageSendContext(e,t,n){let r={},i=e.selectedAgentId?.trim(),a=e.selectedSkillId?.trim(),o=i&&e.autoAgent?.id===i&&e.autoAgent.source!==`requested`;i&&!o&&(r.agentId=i),a&&(r.skillId=a);let s=t??this.buildOutboundPageContext(e);return s?.page&&(r.page=s.page),s?.routePath&&(r.routePath=s.routePath),s?.routeParams&&(r.routeParams=s.routeParams),s?.flowId!=null&&(r.flowId=s.flowId),s?.programName&&(r.programName=s.programName),s?.entity&&(r.entity=s.entity),s?.metadata&&(r.metadata=s.metadata),n?.entityType?.trim()&&n?.selectedId?.trim()&&(r.entityCommit={entityType:n.entityType.trim(),selectedId:n.selectedId.trim()}),Object.keys(r).length>0?r:void 0}buildOutboundPageContext(e){return this.buildPreparePageContext(e)}listRegisteredContextMentions(e){return[...e.contextMentionRegistry.values()].map(Fi)}listPendingRegisteredContextMentions(){return[...this.pendingContextMentionRegistry.values()].map(Fi)}async fetchSessionMessagesPage(e,t,n,r){let i=jt(await e.chat.getSession(t,n,e.sessionMessagesPageSize,r),t,n,e.sessionMessagesPageSize);if(!i)throw new m(`TRANSPORT_FAILED`,`Invalid session detail response`,{details:{sessionId:t,page:n}});return i}async startNewChat(){await this.ensureLoggedIn(`startNewChat`);let e=this.requireState(`startNewChat`);this.sessionEpoch+=1,e.activeSessionId&&(this.abortSessionStream(e,e.activeSessionId),this.writeSessionMessagesCache(e,e.activeSessionId)),e.activeSessionId=null,e.activeSessionMessagesPage=0,e.activeSessionMessagesHasMore=!1,e.session.reset(),e.messages=[],e.writeConfirmation=null,e.autoAgent=null,e.selectedAgentId=e.options.defaultAgentId?.trim()??null,e.selectedSkillId=null,e.options.skills?.length?this.applyStaticSkills(e):(e.skills=[],e.skillsLoading=!1),this.notifyStateChange()}async cancelGeneration(){let e=this.state;if(!e?.activeSessionId)return;await this.ensureLoggedIn(`cancelGeneration`);let t=e.activeSessionId,n=this.resolveActiveRunIdForCancel(e,t);try{let r=await e.chat.cancelRun(t,n);if(!r.superseded)return;this.applySessionRunGeneration(e,t,r.generation),this.finalizeStreamingTarget(e,t,{cancelled:!0,systemHint:`已停止生成。`})}catch(e){let t=e instanceof m?e:new m(`MESSAGE_FAILED`,`Failed to cancel generation`,{cause:e});throw this.reportError(t),t}}isViewingSession(e,t){return e.activeSessionId!=null&&W(e.activeSessionId)===W(t)}getSessionRunState(e,t){let n=W(t),r=e.sessionRuns.get(n);return r||(r={sessionGeneration:0,activeRunId:null,activeTurnId:null,pendingJobCount:0,redisBacked:!1},e.sessionRuns.set(n,r)),r}applySessionRunGeneration(e,t,n,r={}){let i=this.getSessionRunState(e,t),a=i.sessionGeneration;i.sessionGeneration=n,n>a&&this.discardStaleWriteConfirmations(e,t,n,a),r.clearActiveRun!==!1&&(i.activeRunId=null,i.activeTurnId=null)}applySessionRunSnapshot(e,t,n){let r=this.getSessionRunState(e,t),i=r.sessionGeneration;r.sessionGeneration=n.generation,n.generation>i&&this.discardStaleWriteConfirmations(e,t,n.generation,i),r.activeRunId=n.activeRunId,r.activeTurnId=n.activeTurnId,r.pendingJobCount=n.pendingJobCount,r.redisBacked=n.redisBacked,this.syncWriteGateFromRunState(e,t,n.generation,n.pendingWriteGate)}syncWriteGateFromRunState(e,t,n,r){let i=W(t),a=e.writeConfirmationsBySession.get(i);if(a?.submitting)return;if(!r){a?.awaiting&&this.persistWriteConfirmation(e,t,null);return}let o=r.writeDraft?.presentation.summaryText?.trim()||`即将执行写操作,请确认。`;this.persistWriteConfirmation(e,t,{awaiting:!0,submitting:!1,runId:r.runId,turnId:r.turnId,message:o,generation:n,draftRetryCount:r.draftRetryCount,draftRetryMax:r.draftRetryMax,canRetry:r.canRetry,writeDraft:r.writeDraft,writeDrafts:r.writeDrafts,editPolicy:r.editPolicy,editPolicies:r.editPolicies})}async syncSessionRunState(e,t,n){try{let r=vt(await e.chat.getRunState(t,n));if(!r)return;this.applySessionRunSnapshot(e,t,r),this.notifyStateChange()}catch(t){if(n?.aborted)return;e.options.debug&&console.warn(`[agent-chat] syncSessionRunState failed:`,t)}}getActiveSessionRunSnapshot(e){let t=e.activeSessionId;if(!t)return null;let n=e.sessionRuns.get(W(t));return n?{generation:n.sessionGeneration,activeRunId:n.activeRunId,pendingJobCount:n.pendingJobCount,redisBacked:n.redisBacked}:null}noteActiveRunId(e,t,n){this.getSessionRunState(e,t).activeRunId=n}isStaleSseGeneration(e,t,n){return D(this.getSessionRunState(e,t).sessionGeneration,n)}resolveActiveRunIdForCancel(e,t){let n=this.getSessionRunState(e,t);if(n.activeRunId!=null)return n.activeRunId;let r=W(t),i=e.writeConfirmationsBySession.get(r);if(i?.runId!=null)return i.runId;let a=this.getSessionMessagesList(e,t);for(let e=a.length-1;e>=0;--e){let t=a[e];if(t?.role===`agent`&&t.status===`pending`){let e=t.stream?.runId;if(e!=null)return e}}}shouldFilterAgentRunSse(e){switch(e.type){case`think`:case`result`:case`message-blocks`:case`complete`:case`error`:case`host-action`:case`write-confirmation-required`:case`write-confirmation-cancelled`:return!0;default:return!1}}applySseRunGate(e,t,n){if(!this.shouldFilterAgentRunSse(n))return`proceed`;let r=`generation`in n?n.generation:void 0,i=`runId`in n?n.runId:void 0;if(n.type===`error`&&n.code===`RUN_CANCELLED`){if(!this.isStaleSseGeneration(e,t,r)){let r=this.resolveStreamTargetMessageId(e,t);this.finalizeStreamingTarget(e,t,{cancelled:!0,systemHint:r?n.message:void 0}),this.hostToolStreamManagers.get(W(t))?.reset()}return`skip`}return this.isStaleSseGeneration(e,t,r)?`skip`:(i!=null&&this.noteActiveRunId(e,t,i),`proceed`)}finalizeStreamingTarget(e,t,n={}){let r=this.resolveStreamTargetMessageId(e,t);if(!r){n.systemHint&&this.appendSystemMessageInSession(e,t,n.systemHint),this.getSessionRunState(e,t).activeRunId=null;return}let i=this.getSessionMessagesList(e,t).find(e=>e.id===r);if(!i||i.role!==`agent`)return;let a=i.stream;(a?.resultText||i.content.text||``).trim()?this.replaceMessageInSession(e,t,vu(i,{...a??_u(),phase:`complete`},{status:`sent`}),r):this.removeAgentMessageInSession(e,t,r),this.setStreamTargetMessageId(e,t,null),this.getSessionRunState(e,t).activeRunId=null,n.systemHint&&this.appendSystemMessageInSession(e,t,n.systemHint),this.notifyStateChange()}getStreamHandle(e,t){return e.sessionStreams.get(W(t))}setStreamTargetMessageId(e,t,n){let r=W(t),i=e.sessionStreams.get(r);if(i){i.targetMessageId=n;return}n?this.pendingStreamTargets.set(r,n):this.pendingStreamTargets.delete(r)}abortSessionStream(e,t,n={}){let r=W(t);n.suppressReconnect!==!1&&(this.sessionStreamSuppressReconnect.add(r),this.cancelSessionStreamReconnect(r));let i=e.sessionStreams.get(r);if(i){try{i.abort.abort()}catch{}e.sessionStreams.delete(r)}}abortAllSessionStreams(e){for(let t of[...e.sessionStreams.keys()])this.abortSessionStream(e,t,{suppressReconnect:!0})}listStreamingSessionIds(e){return[...e.sessionStreams.keys()]}collectSessionsWithPendingReplies(e){let t=new Set;e.activeSessionId&&this.sessionHasPendingAgent(e.messages)&&t.add(W(e.activeSessionId));for(let[n,r]of e.sessionMessagesCache)this.sessionHasPendingAgent(r.messages)&&t.add(W(n));return[...t]}sessionHasPendingAgent(e){return e.some(e=>e.role===`agent`&&e.status===`pending`&&e.stream!=null)}sessionNeedsLiveStream(e,t){let n=W(t);return this.sessionStreamSuppressReconnect.has(n)?!1:this.isViewingSession(e,t)?!0:this.sessionHasPendingAgent(this.getSessionMessagesList(e,t))}reconcilePendingRepliesAfterSessionSwitch(e,t,n){this.sessionHasPendingAgent(e.messages)&&e.sessionRuns.get(n)?.activeRunId==null&&this.settlePendingAgentReplies(e,t)}cancelSessionStreamReconnect(e){let t=W(e),n=this.sessionStreamReconnectTimers.get(t);n!=null&&(clearTimeout(n),this.sessionStreamReconnectTimers.delete(t))}cancelAllSessionStreamReconnects(){for(let e of this.sessionStreamReconnectTimers.values())clearTimeout(e);this.sessionStreamReconnectTimers.clear(),this.sessionStreamReconnectAttempts.clear(),this.sessionStreamSuppressReconnect.clear()}scheduleSessionStreamReconnect(e,t){let n=W(t);if(!this.sessionNeedsLiveStream(e,t)){this.sessionStreamReconnectAttempts.delete(n);return}if(e.sessionStreams.has(n)||this.sessionStreamConnects.has(n)||this.sessionStreamReconnectTimers.has(n))return;let r=(this.sessionStreamReconnectAttempts.get(n)??0)+1;if(r>5){this.sessionStreamReconnectAttempts.delete(n),e.options.debug&&typeof console<`u`&&console.warn(`[agent-chat] Session stream reconnect gave up for ${t}`);return}this.sessionStreamReconnectAttempts.set(n,r);let i=Math.min(500*2**(r-1),8e3),a=setTimeout(()=>{if(this.sessionStreamReconnectTimers.delete(n),!(!this.state||this.state!==e)){if(!this.sessionNeedsLiveStream(e,t)){this.sessionStreamReconnectAttempts.delete(n);return}this.ensureSessionStream(t,{clearReconnectSuppress:!1}).catch(()=>{})}},i);this.sessionStreamReconnectTimers.set(n,a)}getSessionMessagesList(e,t){if(this.isViewingSession(e,t))return e.messages;let n=W(t);return e.sessionMessagesCache.get(n)?.messages??e.sessionMessagesCache.get(t)?.messages??[]}getSessionCacheMeta(e,t){if(this.isViewingSession(e,t))return{page:e.activeSessionMessagesPage,hasMore:e.activeSessionMessagesHasMore};let n=W(t),r=e.sessionMessagesCache.get(n)??e.sessionMessagesCache.get(t);return{page:r?.page??1,hasMore:r?.hasMore??!1}}commitSessionMessages(e,t,n,r){let i=W(t),a=this.getSessionCacheMeta(e,t),o=r?.page??a.page,s=r?.hasMore??a.hasMore;e.sessionMessagesCache.set(i,{messages:n,page:o,hasMore:s}),this.isViewingSession(e,t)&&(e.messages=n,e.activeSessionMessagesPage=o,e.activeSessionMessagesHasMore=s,e.session.setSession(t,n)),this.notifyStateChange()}patchMessageInSession(e,t,n,r){let i=this.getSessionMessagesList(e,t),a=i.find(e=>e.id===n);if(!a)return null;let o=r(a),s=i.map(e=>e.id===n?o:e);return this.commitSessionMessages(e,t,s),this.bus.emit(`message`,{message:o,source:o.role===`user`?`user`:`agent`}),o}replaceMessageInSession(e,t,n,r){let i=this.getSessionMessagesList(e,t).map(e=>e.id===r?n:e);this.syncWriteConfirmationMessageId(e,r,n.id),this.commitSessionMessages(e,t,i),this.bus.emit(`message`,{message:n,source:`agent`})}removeAgentMessageInSession(e,t,n){let r=this.getSessionMessagesList(e,t),i=r.filter(e=>e.id!==n);i.length!==r.length&&this.commitSessionMessages(e,t,i)}appendAgentPlaceholderInSession(e,t){let n={id:uu(`msg`),role:`agent`,content:{type:`text`,text:``},createdAt:Date.now(),status:`pending`},r=[...this.getSessionMessagesList(e,t),n];return this.commitSessionMessages(e,t,r),this.bus.emit(`message`,{message:n,source:`agent`}),n}appendSystemMessageInSession(e,t,n){let r={id:uu(`msg`),role:`system`,content:{type:`text`,text:n},createdAt:Date.now(),status:`sent`},i=[...this.getSessionMessagesList(e,t),r];this.commitSessionMessages(e,t,i),this.bus.emit(`message`,{message:r,source:`agent`})}async ensureSessionStream(e,t={}){let n=this.requireState(`ensureSessionStream`),r=W(e);if(t.clearReconnectSuppress!==!1&&(this.sessionStreamSuppressReconnect.delete(r),this.cancelSessionStreamReconnect(r)),n.sessionStreams.has(r))return;let i=this.sessionStreamConnects.get(r);if(i){await i;return}let a=new AbortController,o=(async()=>{await this.syncSessionRunState(n,e,a.signal),await this.connectSessionStream(e,a)})().finally(()=>{this.sessionStreamConnects.delete(r)});this.sessionStreamConnects.set(r,o),await o,this.sessionStreamReconnectAttempts.delete(r)}writeSessionMessagesCache(e,t,n=e.messages,r=e.activeSessionMessagesPage,i=e.activeSessionMessagesHasMore){e.sessionMessagesCache.set(W(t),{messages:n,page:r,hasMore:i})}cacheActiveSessionMessages(e){e.activeSessionId&&this.writeSessionMessagesCache(e,e.activeSessionId)}settlePendingAgentReplies(e,t){let n=t??e.activeSessionId;if(!n)return;let r=this.getSessionMessagesList(e,n),i=[],a=!1;for(let e of r){if(e.role!==`agent`||e.status!==`pending`){i.push(e);continue}a=!0;let t=e.stream??_u();(t.resultText||e.content.text).trim()&&i.push(vu(e,t,{status:`sent`}))}a&&this.commitSessionMessages(e,n,i)}isExistingSentAssistantText(e,t,n,r){let i=n.trim();return i?this.getSessionMessagesList(e,t).some(e=>e.role===`agent`&&e.id!==r&&e.status===`sent`&&e.content.text.trim()===i):!1}resolveStreamTargetMessageId(e,t,n){if(n)return n;let r=W(t),i=e.sessionStreams.get(r)?.targetMessageId??this.pendingStreamTargets.get(r)??null,a=this.getSessionMessagesList(e,t);if(i&&a.some(e=>e.id===i))return i;for(let n=a.length-1;n>=0;--n){let r=a[n];if(r?.role===`agent`&&(r.status??`pending`)===`pending`)return this.setStreamTargetMessageId(e,t,r.id),r.id}return null}appendAgentPlaceholder(e){let t={id:uu(`msg`),role:`agent`,content:{type:`text`,text:``},createdAt:Date.now(),status:`pending`};return e.messages=[...e.messages,t],this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:t,source:`agent`}),t}appendOptimisticUserMessage(e,t,n,r){let i={id:n??uu(`msg`),role:`user`,content:{type:`text`,text:t},createdAt:Date.now(),status:`pending`,contextMentions:r&&r.length>0?[...r]:void 0};return e.messages=[...e.messages,i],this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:i,source:`user`}),i}async createChatSession(e,t,n,r,i){let a=await e.chat.createSession(t,n,this.getMessageSendContext(e,r,i)),o=Mt(a);if(!o?.sessionId)throw new m(`TRANSPORT_FAILED`,`POST /chat did not return sessionId`,{details:{body:a}});e.activeSessionId=o.sessionId,this.applyAutoAgentBinding(e,o.agent);let s=gt(a);return s!=null&&this.applySessionRunGeneration(e,o.sessionId,s),e.activeSessionMessagesPage=1,e.activeSessionMessagesHasMore=!1,e.session.setSession(o.sessionId,e.messages),this.writeSessionMessagesCache(e,o.sessionId),this.bus.emit(`session`,e.session.getSession()),this.schedulePrepareSession(),o.sessionId}applyUserMessageSent(e,t){let n={...t,status:`sent`};return e.messages=e.messages.map(e=>e.id===t.id?n:e),this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:n,source:`user`}),n}async postUserMessageAndApply(e,t,n,r,i,a,o){let s=Nt(await e.chat.postMessage(t,n,r,this.getMessageSendContext(e,a,o))),c=s?{...this.toAgentMessage(s),status:`sent`,contextMentions:i.contextMentions}:{...i,status:`sent`};return s?.runGeneration!=null&&this.applySessionRunGeneration(e,t,s.runGeneration),e.messages=e.messages.map(e=>e.id===i.id?c:e),this.cacheActiveSessionMessages(e),this.notifyStateChange(),this.bus.emit(`message`,{message:c,source:c.role}),c}syncWriteConfirmationMessageId(e,t,n){if(t!==n){for(let[r,i]of e.writeConfirmationsBySession){if(i.messageId!==t)continue;let a={...i,messageId:n};e.writeConfirmationsBySession.set(r,a),e.activeSessionId&&W(e.activeSessionId)===r&&(e.writeConfirmation=a);return}e.writeConfirmation?.messageId===t&&(e.writeConfirmation={...e.writeConfirmation,messageId:n})}}async postWriteGateAction(e,t,n,r){let i=Nt(await e.chat.postWriteGateDecision(t,n,r));i?.runGeneration!=null&&this.applySessionRunGeneration(e,t,i.runGeneration,{clearActiveRun:!1})}connectSessionStream(e,t){let n=this.requireState(`connectSessionStream`),r=W(e);return n.sessionStreams.set(r,{abort:t,targetMessageId:this.pendingStreamTargets.get(r)??null}),this.pendingStreamTargets.delete(r),n.abortControllers.add(t),new Promise((i,a)=>{let o=!1,s=()=>{o||(o=!0,i())},c=e=>{o||(o=!0,a(e))};this.consumeSessionStream(e,t,s).catch(e=>{o||c(e)}).finally(()=>{n.abortControllers.delete(t),n.sessionStreams.delete(r),this.scheduleSessionStreamReconnect(n,e)})})}async consumeSessionStream(e,t,n){let r=this.requireState(`consumeSessionStream`),i=t=>{if(t)return this.getSessionMessagesList(r,e).find(e=>e.id===t)},a=(t,n)=>{this.replaceMessageInSession(r,e,t,n)};try{for await(let o of r.chat.streamSession(e,{signal:t.signal,onConnected:n})){r.options.debug&&console.debug(`[agent-chat] SSE`,o.event,o.data.slice(0,120));let t=ir(o.event,o.data);if(this.applySseRunGate(r,e,t)===`skip`)continue;let n=t.type===`think`||t.type===`result`||t.type===`message-blocks`||t.type===`complete`?this.resolveStreamTargetMessageId(r,e,t.messageId):null;switch(n=this.maybeRebindStreamMessageId(r,e,n,t.type===`think`||t.type===`result`||t.type===`message-blocks`||t.type===`complete`?t.messageId:void 0),t.type){case`think`:if(!n)break;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??_u()},r=t.mode===`append`?`${n.thinkText}${t.text}`:t.text,i=!!n.resultText?.trim()||!!(n.resultBlocks??e.blocks??[]).length;return{...e,status:`pending`,content:i?e.content:{type:`text`,text:``},stream:{...n,thinkText:r,runId:t.runId??n.runId,phase:i?`result`:`thinking`}}});break;case`result`:if(!n||t.mode===`replace`&&this.isExistingSentAssistantText(r,e,t.text,n))break;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??_u()},r=t.mode===`append`?`${n.resultText}${t.text}`:t.text;return{...e,status:`pending`,content:{type:`text`,text:r},stream:{...n,resultText:r,runId:t.runId??n.runId,phase:`result`}}});break;case`message-blocks`:{let i=r.writeConfirmationsBySession.get(W(e));if(!n&&t.runId!=null&&i?.submitting){let t=this.appendAgentPlaceholderInSession(r,e);this.setStreamTargetMessageId(r,e,t.id),n=t.id}if(!n)break;let a=t.seq;this.patchMessageInSession(r,e,n,e=>{let n={...e.stream??_u()},r=new Set(n.seenSeq??[]);if(a!=null&&r.has(a))return e;a!=null&&r.add(a);let i=n.resultBlocks??e.blocks??[],o=i;t.action===`stream`?o=t.streamMode===`full`?xe(i,t.blocks??[]):Se(i,t.blocks??[]):t.action===`patch`&&(o=De(i,(t.patches??[]).map(e=>({replaceId:e.replaceId,block:e.block})))),o=S(o);let s=me(o);return{...e,status:`pending`,content:{type:`text`,text:s},blocks:o,stream:{...n,runId:t.runId??n.runId,resultBlocks:o,resultText:s,phase:`result`,seenSeq:[...r]}}});break}case`write-confirmation-required`:{let n=this.getSessionMessagesList(r,e),i=this.getStreamHandle(r,e)?.targetMessageId??[...n].reverse().find(e=>e.role===`agent`)?.id;this.persistWriteConfirmation(r,e,{awaiting:!0,submitting:!1,runId:t.runId,turnId:t.turnId,message:t.message,messageId:i,generation:t.generation,draftRetryCount:t.draftRetryCount,draftRetryMax:t.draftRetryMax,canRetry:t.canRetry,writeDraft:t.writeDraft??null,writeDrafts:t.writeDrafts??null,editPolicy:t.editPolicy??null,editPolicies:t.editPolicies??null}),this.notifyStateChange();break}case`write-confirmation-cancelled`:this.persistWriteConfirmation(r,e,null),this.appendSystemMessageInSession(r,e,t.message);break;case`host-action`:t.ssePayload?this.ingestHostActionSse(r,e,t.ssePayload,void 0,`chat`):t.action&&(this.emitHostAction(r,t.action),this.emitPageAgentCompleteFromAction(t.action,`chat`));break;case`complete`:{if(t.status===`cancelled`){n?this.finalizeStreamingTarget(r,e):this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset();break}if(t.status===`failed`){if(n){let e=i(n);if(e){let r=e.stream??_u();a({...e,status:`failed`,stream:{...r,phase:`error`,errorMessage:t.reason??`Generation failed`}},n)}}this.setStreamTargetMessageId(r,e,null),this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset();break}if(!n)break;let o=i(n);if(!o)break;let s=W(e),c=r.writeConfirmationsBySession.get(s)?.awaiting,l={...o.stream??_u(),phase:`complete`},u;if(t.serverMessage){let e=this.toAgentMessage(t.serverMessage);u=vu({...o,content:e.content,blocks:e.blocks??o.blocks},{...l,resultText:e.content.text,resultBlocks:e.blocks??l.resultBlocks},{status:`sent`})}else u=vu(o,l,{status:`sent`});let d=this.resolveCompleteServerMessageId(t);d&&d!==n&&!this.getSessionMessagesList(r,e).some(e=>e.id===d)?a({...u,id:d},n):a(u,n),this.setStreamTargetMessageId(r,e,null),this.getSessionRunState(r,e).activeRunId=null,this.hostToolStreamManagers.get(W(e))?.reset(),c||this.persistWriteConfirmation(r,e,null),this.alignPersistedMessageIds(r,e,{preferLocalId:n,preferServerId:d}).catch(()=>{});let f=d&&d!==n?d:n;t.runId!=null&&this.applySkillIntentAlignment(r,{sessionId:e,runId:t.runId,assistantMessageId:f}),this.maybeNotifyBackgroundReply(r,e);break}case`error`:if(t.code===`WRITE_CONFIRMATION_EXPIRED`)this.persistWriteConfirmation(r,e,null),this.notifyStateChange();else if(t.code===`EDITED_WRITE_ARGS_INVALID`||t.code===`EDITED_LOCKED_FIELD`||t.code===`EDITED_FIELD_NOT_ALLOWED`||t.code===`MULTI_WRITE_EDIT_NOT_SUPPORTED`||t.code===`DRAFT_RETRY_LIMIT_EXCEEDED`){let n=W(e),i=r.writeConfirmationsBySession.get(n);if(i){let n={...i,awaiting:!0,submitting:!1,gateError:t.message,gateErrorCode:t.code,canRetry:t.code!==`DRAFT_RETRY_LIMIT_EXCEEDED`&&i.canRetry};this.persistWriteConfirmation(r,e,n),this.notifyStateChange();break}}throw new m(`MESSAGE_FAILED`,t.message,{details:t.code?{code:t.code}:void 0})}}let o=i(this.resolveStreamTargetMessageId(r,e));if(o&&(o.status??`pending`)===`pending`){let t=o.stream;(t?.resultText||o.content.text||``).trim()?a(vu(o,{...t??_u(),phase:`complete`},{status:`sent`}),o.id):this.removeAgentMessageInSession(r,e,o.id),this.maybeNotifyBackgroundReply(r,e)}this.alignPersistedMessageIds(r,e).catch(()=>{})}catch(t){if(t?.name===`AbortError`){let t=i(this.resolveStreamTargetMessageId(r,e));if(!t)return;let n=t.stream??_u();(n.resultText||t.content.text).trim()?a(vu(t,{...n,phase:`complete`},{status:`sent`}),t.id):this.removeAgentMessageInSession(r,e,t.id);return}let n=i(this.resolveStreamTargetMessageId(r,e));if(n){let e=n.stream??_u();a({...n,status:`failed`,stream:{...e,phase:`error`,errorMessage:t instanceof Error?t.message:`Stream failed`}},n.id)}let o=t instanceof m?t:new m(`MESSAGE_FAILED`,`Failed to receive assistant reply`,{cause:t});this.isViewingSession(r,e)?this.reportError(o):r.options.debug&&typeof console<`u`&&console.warn(`[agent-chat] Background stream error for session ${e} (suppressed from UI):`,o)}}toAgentMessage(e){let t=e.role===`assistant`?`agent`:e.role===`user`?`user`:`system`,n=e.createdAt,r=typeof n==`number`?n:new Date(n).getTime(),i=pe(e.content),a=i?me(i):e.content??``;return{id:String(e.id),role:t,content:{type:`text`,text:a},blocks:i,createdAt:Number.isFinite(r)?r:Date.now(),status:`sent`}}resolveCompleteServerMessageId(e){if(e.serverMessage?.id!=null)return String(e.serverMessage.id);if(e.messageId&&sc(e.messageId))return e.messageId}async alignPersistedMessageIds(e,t,n={}){let r=n.preferLocalId?.trim(),i=n.preferServerId&&sc(n.preferServerId)?n.preferServerId:void 0;if(r&&i){let n=this.getSessionMessagesList(e,t),a=n.find(e=>e.id===r);if(a&&!sc(a.id)&&!n.some(e=>e.id===i)){let a=n.map(e=>e.id===r?{...e,id:i}:e);this.syncWriteConfirmationMessageId(e,r,i);let o=this.getStreamHandle(e,t);o?.targetMessageId===r&&(o.targetMessageId=i),this.commitSessionMessages(e,t,a),this.syncMessageFeedbacks(e,t).catch(()=>{});return}}let a=this.getSessionMessagesList(e,t),o=a.filter(e=>e.role===`agent`&&e.status===`sent`&&!e.stream&&!sc(e.id));if(o.length===0)return;let s=(await this.fetchSessionMessagesPage(e,t,1)).messages.map(e=>this.toAgentMessage(e)).filter(e=>e.role===`agent`),c=new Set(a.filter(e=>e.role===`agent`&&sc(e.id)).map(e=>e.id)),l=s.filter(e=>!c.has(e.id));if(l.length===0)return;let u=Math.max(0,l.length-o.length),d=!1,f=a.map(t=>{let n=o.findIndex(e=>e.id===t.id);if(n<0)return t;let r=l[u+n];return!r||!sc(r.id)?t:(d=!0,this.syncWriteConfirmationMessageId(e,t.id,r.id),{...t,id:r.id,createdAt:r.createdAt})});d&&(this.commitSessionMessages(e,t,f),this.syncMessageFeedbacks(e,t).catch(()=>{}))}maybeRebindStreamMessageId(e,t,n,r){if(!n||!r||!sc(r)||n===r||sc(n))return n;let i=this.getSessionMessagesList(e,t);if(i.some(e=>e.id===r))return n;if(!i.find(e=>e.id===n))return r;let a=i.map(e=>e.id===n?{...e,id:r}:e),o=this.getStreamHandle(e,t);return o?.targetMessageId===n&&(o.targetMessageId=r),this.commitSessionMessages(e,t,a),r}buildOptimisticFeedback(e,t){let n=new Date().toISOString();return t.rating===`up`?{messageId:e,rating:`up`,reasonTags:[],comment:null,createdAt:n,updatedAt:n}:{messageId:e,rating:`down`,reasonTags:t.reasonTags??[],comment:t.comment?.trim()||null,createdAt:n,updatedAt:n}}patchMessageFeedback(e,t,n){let r=e.messages.map(e=>e.id===t?{...e,feedback:n}:e);r.every((t,n)=>t===e.messages[n])||(e.messages=r,this.cacheActiveSessionMessages(e),this.notifyStateChange())}collectFeedbackMessageIds(e){let t=[];for(let n of e){if(n.role!==`agent`||n.status!==`sent`||n.stream)continue;let e=cc(n.id);e!==null&&t.push(e)}return t}async syncMessageFeedbacks(e,t){let n=this.getSessionMessagesList(e,t),r=this.collectFeedbackMessageIds(n);if(r.length===0)return;let i=await e.feedback.batchFeedbacks(t,r),a=new Map(i.items.map(e=>[String(e.messageId),e])),o=!1,s=n.map(e=>{if(e.role!==`agent`||!sc(e.id))return e;let t=a.get(e.id)??null,n=e.feedback??null;return n===null&&t===null||n&&t&&n.rating===t.rating&&n.updatedAt===t.updatedAt?e:(o=!0,{...e,feedback:t})});o&&this.commitSessionMessages(e,t,s)}};function Su(e){return e==null?{}:typeof e==`object`&&`aborted`in e&&typeof e.addEventListener==`function`?{signal:e}:e}function Cu(e){if(e)return{id:String(e.id),email:e.email,name:e.username}}function wu(e){return e instanceof m?{code:e.code,message:e.message,cause:e.cause}:{code:`TRANSPORT_FAILED`,message:e instanceof Error?e.message:`Unknown error`,cause:e}}function Tu(e){if(!(e instanceof m))return;let t=e.details;if(t){if(typeof t.serverCode==`string`)return t.serverCode;if(typeof t.code==`string`)return t.code}}function Eu(e){return!(e instanceof m)||e.code!==`TRANSPORT_FAILED`||e.details?.serverCode!==`PAGE_ACTION_ROLLOUT_DENIED`?e:new m(`PAGE_ACTION_ROLLOUT_DENIED`,e.message||`PageAction not available for this user`,{cause:e,details:e.details})}function Du(){return new xu}function Ou(){if(typeof window>`u`)return null;let e=window.OmnixExtension;return e&&typeof e.ping==`function`?e:null}function ku(){return Ou()!=null}function Au(){if(!(typeof window>`u`))try{window.dispatchEvent(new CustomEvent(mn))}catch{}}function ju(e=8e3){return ku()?Promise.resolve(!0):typeof window>`u`?Promise.resolve(!1):(Au(),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,window.removeEventListener(pn,i),clearInterval(a),clearTimeout(o),t(e))},i=()=>r(ku());window.addEventListener(pn,i);let a=window.setInterval(()=>{Au(),ku()&&r(!0)},500),o=window.setTimeout(()=>r(ku()),e)}))}async function Mu(e=3e3){let t=Ou()??(await ju(e)?Ou():null);if(!t)throw Error(`未检测到 Omnix 浏览器插件。请安装 omnix-token-sync 并刷新页面。`);return t}async function Nu(e,t){return t?.requireAuth!==!1&&_n(),e(await Mu(t?.waitMs))}async function Pu(e){return Nu(e=>e.ping(),{...e,requireAuth:!1})}async function Fu(e){return Nu(e=>e.getStatus(),{...e,requireAuth:!1})}async function Iu(e){return Nu(e=>e.syncPmsIntegration(),e)}async function Lu(e,t){return Nu(t=>t.gofo.track(e),{...t,requireAuth:!1})}async function Ru(e,t){return Nu(t=>t.gofo.start(e),{...t,requireAuth:!1})}async function zu(e,t){return Nu(t=>t.gofo.getJob(e),{...t,requireAuth:!1})}async function Bu(e,t,n){return Nu(n=>n.gofo.waitForJob(e,t),{...n,requireAuth:!1})}function Vu(e){return e===`submitting`||e===`launched`||e===`streaming`||e===`awaiting_approval`||e===`awaiting_clarify`}function Hu(e){let t=e.narrativeItems??[],n=Bc(t),r=Vu(e.phase);return{phase:e.phase,loading:e.loading,awaitingApproval:e.awaitingApproval,awaitingClarify:e.awaitingClarify,progressLabel:e.progressLabel,narrativeItems:t,hasProcess:n,interestingCount:Vc(t),isLive:r,headline:Jc(t),showProcessAffordance:n&&r}}function Uu(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Wu(e){if(Array.isArray(e))return e}function Gu(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Ku(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
27
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qu(e,t){return Wu(e)||Gu(e,t)||Ju(e,t)||Ku()}function Ju(e,t){if(e){if(typeof e==`string`)return Uu(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Uu(e,t):void 0}}var Yu=Object.entries,Xu=Object.setPrototypeOf,Zu=Object.isFrozen,Qu=Object.getPrototypeOf,$u=Object.getOwnPropertyDescriptor,G=Object.freeze,K=Object.seal,ed=Object.create,td=typeof Reflect<`u`&&Reflect,nd=td.apply,rd=td.construct;G||(G=function(e){return e}),K||(K=function(e){return e}),nd||(nd=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)}),rd||(rd=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)});var id=q(Array.prototype.forEach),ad=q(Array.prototype.lastIndexOf),od=q(Array.prototype.pop),sd=q(Array.prototype.push),cd=q(Array.prototype.splice),ld=Array.isArray,ud=q(String.prototype.toLowerCase),dd=q(String.prototype.toString),fd=q(String.prototype.match),pd=q(String.prototype.replace),md=q(String.prototype.indexOf),hd=q(String.prototype.trim),gd=q(Number.prototype.toString),_d=q(Boolean.prototype.toString),vd=typeof BigInt>`u`?null:q(BigInt.prototype.toString),yd=typeof Symbol>`u`?null:q(Symbol.prototype.toString),bd=q(Object.prototype.hasOwnProperty),xd=q(Object.prototype.toString),Sd=q(RegExp.prototype.test),Cd=wd(TypeError);function q(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return nd(e,t,r)}}function wd(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return rd(e,n)}}function J(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ud;if(Xu&&Xu(e,null),!ld(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Zu(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Td(e){for(let t=0;t<e.length;t++)bd(e,t)||(e[t]=null);return e}function Ed(e){let t=ed(null);for(let r of Yu(e)){var n=qu(r,2);let i=n[0],a=n[1];bd(e,i)&&(t[i]=ld(a)?Td(a):a&&typeof a==`object`&&a.constructor===Object?Ed(a):a)}return t}function Dd(e){switch(typeof e){case`string`:return e;case`number`:return gd(e);case`boolean`:return _d(e);case`bigint`:return vd?vd(e):`0`;case`symbol`:return yd?yd(e):`Symbol()`;case`undefined`:return xd(e);case`function`:case`object`:{if(e===null)return xd(e);let t=e,n=Od(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:xd(e)}return xd(e)}default:return xd(e)}}function Od(e,t){for(;e!==null;){let n=$u(e,t);if(n){if(n.get)return q(n.get);if(typeof n.value==`function`)return q(n.value)}e=Qu(e)}function n(){return null}return n}function kd(e){try{return Sd(e,``),!0}catch{return!1}}var Ad=G(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),jd=G(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Md=G([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Nd=G([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Pd=G(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Fd=G([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Id=G([`#text`]),Ld=G(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Rd=G(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),zd=G(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Bd=G([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Vd=K(/{{[\w\W]*|^[\w\W]*}}/g),Hd=K(/<%[\w\W]*|^[\w\W]*%>/g),Ud=K(/\${[\w\W]*/g),Wd=K(/^data-[\-\w.\u00B7-\uFFFF]+$/),Gd=K(/^aria-[\-\w]+$/),Kd=K(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),qd=K(/^(?:\w+script|data):/i),Jd=K(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Yd=K(/^html$/i),Xd=K(/^[a-z][.\w]*(-[.\w]+)+$/i),Zd=K(/<[/\w!]/g),Qd=K(/<[/\w]/g),$d=K(/<\/no(script|embed|frames)/i),ef=K(/\/>/i),tf={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},nf=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],rf=G(J({},nf)),af=function(){let e={};return id(nf,t=>{e[t]=K(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),G(e)}(),of=function(){return typeof window>`u`?null:window},sf=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},cf=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},lf=function(e,t,n,r){return bd(e,t)&&ld(e[t])?J(r.base?Ed(r.base):{},e[t],r.transform):n},uf=function(e,t,n){let r=bd(e,t)?e[t]:void 0;return r&&typeof r==`object`?Ed(r):n()};function df(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:of(),t=e=>df(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==tf.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Od(d,`cloneNode`),p=Od(d,`remove`),m=Od(d,`nextSibling`),h=Od(d,`childNodes`),ee=Od(d,`parentNode`),te=Od(d,`shadowRoot`),g=Od(d,`attributes`),ne=o&&o.prototype?Od(o.prototype,`nodeType`):null,_=o&&o.prototype?Od(o.prototype,`nodeName`):null,re=o&&o.prototype?Od(o.prototype,`ownerDocument`):null,ie=function(e){return ne?ne(e):e.nodeType},ae=function(e){return _?_(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let v,y=``,oe,se=!1,b=0,ce=function(){if(b>0)throw Cd(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},le=function(e){ce(),b++;try{return v.createHTML(e)}finally{b--}},ue=function(e){ce(),b++;try{return v.createScriptURL(e)}finally{b--}},de=function(){return se||(oe=sf(u,i),se=!0),oe},fe=n,pe=fe.implementation,me=fe.createNodeIterator,he=fe.createDocumentFragment,ge=fe.getElementsByTagName,_e=r.importNode,x=cf();t.isSupported=typeof Yu==`function`&&typeof ee==`function`&&pe&&pe.createHTMLDocument!==void 0;let ve=Vd,ye=Hd,be=Ud,xe=Wd,Se=Gd,Ce=qd,we=Jd,Te=Xd,Ee=Kd,S=null,De=J({},[...Ad,...jd,...Md,...Pd,...Id]),C=null,Oe=J({},[...Ld,...Rd,...zd,...Bd]),w=Object.seal(ed(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ke=null,Ae=null,T=Object.seal(ed(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),je=!0,Me=!0,Ne=!1,Pe=!0,Fe=!1,Ie=!0,Le=!1,Re=!1,ze=null,Be=null,Ve=!1,He=!1,Ue=!1,We=!1,Ge=!0,Ke=!1,qe=`user-content-`,Je=!0,Ye=!1,Xe={},Ze=null,Qe=J({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),$e=null,et=J({},[`audio`,`video`,`img`,`source`,`image`,`track`]),tt=null,nt=J({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),rt=`http://www.w3.org/1998/Math/MathML`,it=`http://www.w3.org/2000/svg`,at=`http://www.w3.org/1999/xhtml`,ot=at,st=!1,ct=null,lt=J({},[rt,it,at],dd),ut=G([`mi`,`mo`,`mn`,`ms`,`mtext`]),dt=J({},ut),ft=G([`annotation-xml`]),pt=J({},ft),mt=J({},[`title`,`style`,`font`,`a`,`script`]),ht=null,E=[`application/xhtml+xml`,`text/html`],D=null,gt=null,_t=n.createElement(`form`),vt=function(e){return e instanceof RegExp||e instanceof Function},yt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gt&>===e)return;(!e||typeof e!=`object`)&&(e={}),e=Ed(e),ht=E.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,D=ht===`application/xhtml+xml`?dd:ud,S=lf(e,`ALLOWED_TAGS`,De,{transform:D}),C=lf(e,`ALLOWED_ATTR`,Oe,{transform:D}),ct=lf(e,`ALLOWED_NAMESPACES`,lt,{transform:dd}),tt=lf(e,`ADD_URI_SAFE_ATTR`,nt,{transform:D,base:nt}),$e=lf(e,`ADD_DATA_URI_TAGS`,et,{transform:D,base:et}),Ze=lf(e,`FORBID_CONTENTS`,Qe,{transform:D}),ke=lf(e,`FORBID_TAGS`,Ed({}),{transform:D}),Ae=lf(e,`FORBID_ATTR`,Ed({}),{transform:D}),Xe=bd(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?Ed(e.USE_PROFILES):e.USE_PROFILES:!1,je=e.ALLOW_ARIA_ATTR!==!1,Me=e.ALLOW_DATA_ATTR!==!1,Ne=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Pe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Fe=e.SAFE_FOR_TEMPLATES||!1,Ie=e.SAFE_FOR_XML!==!1,Le=e.WHOLE_DOCUMENT||!1,He=e.RETURN_DOM||!1,Ue=e.RETURN_DOM_FRAGMENT||!1,We=e.RETURN_TRUSTED_TYPE||!1,Ve=e.FORCE_BODY||!1,Ge=e.SANITIZE_DOM!==!1,Ke=e.SANITIZE_NAMED_PROPS||!1,Je=e.KEEP_CONTENT!==!1,Ye=e.IN_PLACE||!1,Ee=kd(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Kd,ot=typeof e.NAMESPACE==`string`?e.NAMESPACE:at,dt=uf(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>J({},ut)),pt=uf(e,`HTML_INTEGRATION_POINTS`,()=>J({},ft));let t=uf(e,`CUSTOM_ELEMENT_HANDLING`,()=>ed(null));if(w=ed(null),bd(t,`tagNameCheck`)&&vt(t.tagNameCheck)&&(w.tagNameCheck=t.tagNameCheck),bd(t,`attributeNameCheck`)&&vt(t.attributeNameCheck)&&(w.attributeNameCheck=t.attributeNameCheck),bd(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(w.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),K(w),Fe&&(Me=!1),Ue&&(He=!0),Xe&&(S=J({},Id),C=ed(null),Xe.html===!0&&(J(S,Ad),J(C,Ld)),Xe.svg===!0&&(J(S,jd),J(C,Rd),J(C,Bd)),Xe.svgFilters===!0&&(J(S,Md),J(C,Rd),J(C,Bd)),Xe.mathMl===!0&&(J(S,Pd),J(C,zd),J(C,Bd))),T.tagCheck=null,T.attributeCheck=null,bd(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?T.tagCheck=e.ADD_TAGS:ld(e.ADD_TAGS)&&(S===De&&(S=Ed(S)),J(S,e.ADD_TAGS,D))),bd(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?T.attributeCheck=e.ADD_ATTR:ld(e.ADD_ATTR)&&(C===Oe&&(C=Ed(C)),J(C,e.ADD_ATTR,D))),bd(e,`ADD_FORBID_CONTENTS`)&&ld(e.ADD_FORBID_CONTENTS)&&(Ze===Qe&&(Ze=Ed(Ze)),J(Ze,e.ADD_FORBID_CONTENTS,D)),Je&&(S[`#text`]=!0),Le&&J(S,[`html`,`head`,`body`]),S.table&&(J(S,[`tbody`]),delete ke.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Cd(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Cd(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=v;v=e.TRUSTED_TYPES_POLICY;try{y=le(``)}catch(e){throw v=t,e}}else e.TRUSTED_TYPES_POLICY===null?(v=void 0,y=``):(v===void 0&&(v=de()),v&&typeof y==`string`&&(y=le(``)));G&&G(e),gt=e},O=J({},[...jd,...Md,...Nd]),k=J({},[...Pd,...Fd]),bt=function(e,t,n){return t.namespaceURI===at?e===`svg`:t.namespaceURI===rt?e===`svg`&&(n===`annotation-xml`||dt[n]):!!O[e]},xt=function(e,t,n){return t.namespaceURI===at?e===`math`:t.namespaceURI===it?e===`math`&&pt[n]:!!k[e]},St=function(e,t,n){return t.namespaceURI===it&&!pt[n]||t.namespaceURI===rt&&!dt[n]?!1:!k[e]&&(mt[e]||!O[e])},A=function(e){let t=ee(e);(!t||!t.tagName)&&(t={namespaceURI:ot,tagName:`template`});let n=ud(e.tagName),r=ud(t.tagName);return ct[e.namespaceURI]?e.namespaceURI===it?bt(n,t,r):e.namespaceURI===rt?xt(n,t,r):e.namespaceURI===at?St(n,t,r):!!(ht===`application/xhtml+xml`&&ct[e.namespaceURI]):!1},Ct=function(e){sd(t.removed,{element:e});try{ee(e).removeChild(e)}catch{if(p(e),!ee(e))throw Cd(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},wt=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},Tt=function(e){Ot(e);let t=h(e);if(t){let e=[];id(t,t=>{sd(e,t)}),id(e,e=>{try{p(e)}catch{}})}let n=g(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&wt(e,r,i)}},Et=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}sd(t.removed,{attribute:r||null,from:n});try{r?n.removeAttributeNode(r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(He||Ue)try{Ct(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},Dt=function(e){let t=g(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||C[D(i)]||wt(e,r,i)}},Ot=function(e){let t=[e];for(;t.length>0;){let e=t.pop();ie(e)===tf.element&&Dt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},kt=function(e,t){return Ie?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},At=function(e){if(!Ie)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=ie(e);if(n===tf.processingInstruction||n===tf.comment&&Sd(Qd,e.data)){try{p(e)}catch{}continue}if(n===tf.element){let t=e,n=D(ae(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&kt(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},jt=function(e){let t=null,r=null;if(Ve)e=`<remove></remove>`+e;else{let t=fd(e,/^[\r\n\t ]+/);r=t&&t[0]}ht===`application/xhtml+xml`&&ot===at&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=v?le(e):e;if(ot===at)try{t=new l().parseFromString(i,ht)}catch{}if(!t||!t.documentElement){t=pe.createDocument(ot,`template`,null);try{t.documentElement.innerHTML=st?y:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),ot===at?ge.call(t,Le?`html`:`body`)[0]:Le?t.documentElement:a},Mt=function(e){let t=re?re(e):e.ownerDocument;return me.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Nt=function(e){return e=pd(e,ve,` `),e=pd(e,ye,` `),e=pd(e,be,` `),e},Pt=function(e){e.normalize();let t=re?re(e):e.ownerDocument,n=me.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Nt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&id(i,e=>{It(e.content)&&Pt(e.content)})},Ft=function(e){let t=_?_(e):null;return typeof t!=`string`||D(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==g(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==ne(e)||e.childNodes!==h(e)},It=function(e){if(!ne||typeof e!=`object`||!e)return!1;try{return ne(e)===tf.documentFragment}catch{return!1}},Lt=function(e){if(!ne||typeof e!=`object`||!e)return!1;try{return typeof ne(e)==`number`}catch{return!1}};function Rt(e,n,r){e.length!==0&&id(e,e=>{e.call(t,n,r,gt)})}let zt=function(e,t){return!!(Ie&&e.hasChildNodes()&&!Lt(e.firstElementChild)&&Sd(Zd,e.textContent)&&Sd(Zd,e.innerHTML)||Ie&&e.namespaceURI===at&&rf[t]&&(Lt(e.firstElementChild)||typeof e.textContent==`string`&&Sd(af[t],e.textContent))||e.nodeType===tf.processingInstruction||Ie&&e.nodeType===tf.comment&&Sd(Qd,e.data))},Bt=function(e,t){if(e instanceof RegExp)return Sd(e,t);if(e instanceof Function){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return!!e(t,...r)}return!1},Vt=function(e,t,n){if(!ke[t]&&qt(t)&&Bt(w.tagNameCheck,t))return!1;if(Je&&!Ze[t]){let t=ee(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return Ct(e),!0},Ht=function(e,t,n,r){return e.length===0?t:t===n||t===r?Ed(t):t},Ut=function(e,t){return e===t||ee(e)!==null?!1:(Ye&&Ot(e),!0)},Wt=function(e,n){if(Rt(x.beforeSanitizeElements,e,null),Ut(e,n))return!0;if(Ft(e))return Ct(e),!0;let r=D(ae(e));if(S=Ht(x.uponSanitizeElement,S,De,ze),Rt(x.uponSanitizeElement,e,{tagName:r,allowedTags:S}),Ut(e,n))return!0;if(zt(e,r))return Ct(e),!0;if(ke[r]||!(T.tagCheck instanceof Function&&T.tagCheck(r))&&!S[r]){let t=Vt(e,r,n);return t===!1&&Rt(x.afterSanitizeElements,e,null),t}if(ie(e)===tf.element&&!A(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&Sd($d,e.innerHTML))return Ct(e),!0;if(Fe&&e.nodeType===tf.text){let n=Nt(e.textContent);e.textContent!==n&&(sd(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Rt(x.afterSanitizeElements,e,null),!1},Gt=function(e,t,r){if(Ae[t]||kt(t,e)||Ge&&(t===`id`||t===`name`)&&(r in n||r in _t))return!1;let i=C[t]||T.attributeCheck instanceof Function&&T.attributeCheck(t,e);return Me&&Sd(xe,t)||je&&Sd(Se,t)?!0:i?tt[t]||Sd(Ee,pd(r,we,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&md(r,`data:`)===0&&$e[e]||Ne&&!Sd(Ce,pd(r,we,``))?!0:!r:qt(e)&&Bt(w.tagNameCheck,e)&&Bt(w.attributeNameCheck,t,e)||t===`is`&&w.allowCustomizedBuiltInElements&&Bt(w.tagNameCheck,r)},Kt=J({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),qt=function(e){return!Kt[ud(e)]&&Sd(Te,e)},Jt=function(e,t,n,r){if(v&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return le(r);case`TrustedScriptURL`:return ue(r)}return r},Yt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Ft(e)?Ct(e):od(t.removed)}catch{Et(n,e)}},Xt=function(e){Rt(x.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Ft(e))return;C=Ht(x.uponSanitizeAttribute,C,Oe,Be);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:C,forceKeepAttr:void 0},r=t.length,i=D(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=D(o),u=c,d=o===`value`?u:hd(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,Rt(x.uponSanitizeAttribute,e,n),d=n.attrValue,Ke&&(l===`id`||l===`name`)&&md(d,qe)!==0&&(Et(o,e,a),d=qe+d),Ie&&Sd(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){Et(o,e,a);continue}if(l===`attributename`&&fd(d,`href`)){Et(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){Et(o,e,a);continue}if(!Pe&&Sd(ef,d)){Et(o,e,a);continue}if(Fe&&(d=Nt(d)),!Gt(i,l,d)){Et(o,e,a);continue}d=Jt(i,l,s,d),d!==u&&Yt(e,o,s,d)}}Rt(x.afterSanitizeAttributes,e,null)},Zt=function(e){let t=null,n=Mt(e);for(Rt(x.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Rt(x.uponSanitizeShadowNode,t,null),Wt(t,e),Xt(t),It(t.content)&&Zt(t.content),ie(t)===tf.element){let e=te(t);It(e)&&(Qt(e),Zt(e))}Rt(x.afterSanitizeShadowDOM,e,null)},Qt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Zt(e.shadow);continue}let n=e.node,r=ie(n)===tf.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=_?_(n):null;if(typeof e==`string`&&D(e)===`template`){let e=n.content;It(e)&&t.push({node:e,shadow:null})}}if(r){let e=te(n);It(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(st=!e,st&&(e=`<!-->`),typeof e!=`string`&&!Lt(e)&&(e=Dd(e),typeof e!=`string`))throw Cd(`dirty is not a string, aborting`);if(!t.isSupported)return e;Re?(S=ze,C=Be):yt(n),(x.uponSanitizeElement.length>0||x.uponSanitizeAttribute.length>0)&&(S=Ed(S)),x.uponSanitizeAttribute.length>0&&(C=Ed(C)),t.removed=[];let c=Ye&&typeof e!=`string`&&Lt(e);if(c){At(e);let t=ae(e);if(typeof t==`string`){let n=D(t);if(!S[n]||ke[n])throw Tt(e),Cd(`root node is forbidden and cannot be sanitized in-place`)}if(Ft(e))throw Tt(e),Cd(`root node is clobbered and cannot be sanitized in-place`);try{Qt(e)}catch(t){throw Tt(e),t}}else if(Lt(e))i=jt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===tf.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Qt(a);else{if(!He&&!Fe&&!Le&&e.indexOf(`<`)===-1)return v&&We?le(e):e;if(i=jt(e),!i)return He?null:We?y:``}i&&Ve&&Ct(i.firstChild);let l=c?e:i;try{let e=Mt(l);for(;o=e.nextNode();)Wt(o,l),Xt(o),It(o.content)&&Zt(o.content)}catch(n){throw c&&(Tt(e),id(t.removed,e=>{e.element&&Ot(e.element)})),n}if(c)return id(t.removed,e=>{e.element&&Ot(e.element)}),Fe&&Pt(e),e;if(He){if(Fe&&Pt(i),Ue)for(s=he.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(C.shadowroot||C.shadowrootmode)&&(s=_e.call(r,s,!0)),s}let u=Le?i.outerHTML:i.innerHTML;return Le&&S[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&Sd(Yd,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
28
|
+
`+u),Fe&&(u=Nt(u)),v&&We?le(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};yt(e),Re=!0,ze=S,Be=C},t.clearConfig=function(){gt=null,Re=!1,ze=null,Be=null,v=oe,y=``},t.isValidAttribute=function(e,t,n){gt||yt({});let r=D(e),i=D(t);return Gt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&bd(x,e)&&sd(x[e],t)},t.removeHook=function(e,t){if(bd(x,e)){if(t!==void 0){let n=ad(x[e],t);return n===-1?void 0:cd(x[e],n,1)[0]}return od(x[e])}},t.removeHooks=function(e){bd(x,e)&&(x[e]=[])},t.removeAllHooks=function(){x=cf()},t}var ff=df(),pf=Object.defineProperty,mf=e=>{throw TypeError(e)},hf=(e,t,n)=>t in e?pf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t,n)=>hf(e,typeof t==`symbol`?t:t+``,n),gf=(e,t,n)=>t.has(e)||mf(`Cannot `+n),_f=(e,t,n)=>t.has(e)?mf(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),vf=(e,t,n)=>(gf(e,t,`access private method`),n),yf,bf,xf;function Sf(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Cf=Sf();function wf(e){Cf=e}var Tf=/[&<>"']/,Ef=new RegExp(Tf.source,`g`),Df=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Of=new RegExp(Df.source,`g`),kf={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Af=e=>kf[e];function jf(e,t){if(t){if(Tf.test(e))return e.replace(Ef,Af)}else if(Df.test(e))return e.replace(Of,Af);return e}var Mf=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Nf(e){return e.replace(Mf,(e,t)=>(t=t.toLowerCase(),t===`colon`?`:`:t.charAt(0)===`#`?t.charAt(1)===`x`?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):``))}var Pf=/(^|[^\[])\^/g;function X(e,t){e=typeof e==`string`?e:e.source,t=t||``;let n={replace:(t,r)=>(r=typeof r==`object`&&`source`in r?r.source:r,r=r.replace(Pf,`$1`),e=e.replace(t,r),n),getRegex:()=>new RegExp(e,t)};return n}function Ff(e){try{e=encodeURI(e).replace(/%25/g,`%`)}catch{return null}return e}var If={exec:()=>null};function Lf(e,t){let n=e.replace(/\|/g,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,`|`);return n}function Rf(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function zf(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}function Bf(e,t,n,r){let i=t.href,a=t.title?jf(t.title):null,o=e[1].replace(/\\([\[\]])/g,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;let e={type:`link`,raw:n,href:i,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,e}return{type:`image`,raw:n,href:i,title:a,text:jf(o)}}function Vf(e,t){let n=e.match(/^(\s+)(?:```)/);if(n===null)return t;let r=n[1];return t.split(`
|
|
29
29
|
`).map(e=>{let t=e.match(/^\s+/);if(t===null)return e;let[n]=t;return n.length>=r.length?e.slice(r.length):e}).join(`
|
|
30
|
-
`)}var
|
|
31
|
-
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=
|
|
30
|
+
`)}var Hf=class{constructor(e){Y(this,`options`),Y(this,`rules`),Y(this,`lexer`),this.options=e||Cf}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(/^ {1,4}/gm,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:Rf(e,`
|
|
31
|
+
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=Vf(e,t[3]||``);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){let t=Rf(e,`#`);(this.options.pedantic||!t||/ $/.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:t[0]}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=Rf(t[0].replace(/^ *>[ \t]?/gm,``),`
|
|
32
32
|
`),n=this.lexer.state.top;this.lexer.state.top=!0;let r=this.lexer.blockTokens(e);return this.lexer.state.top=n,{type:`blockquote`,raw:t[0],tokens:r,text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),o=``,s=``,c=!1;for(;e;){let n=!1;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;o=t[0],e=e.substring(o.length);let r=t[2].split(`
|
|
33
33
|
`,1)[0].replace(/^\t+/,e=>` `.repeat(3*e.length)),l=e.split(`
|
|
34
34
|
`,1)[0],u=0;this.options.pedantic?(u=2,s=r.trimStart()):(u=t[2].search(/[^ ]/),u=u>4?1:u,s=r.slice(u),u+=t[1].length);let d=!1;if(!r&&/^ *$/.test(l)&&(o+=l+`
|
|
@@ -36,10 +36,10 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
36
36
|
`,1)[0];if(l=c,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g,` `)),i.test(l)||a.test(l)||t.test(l)||n.test(e))break;if(l.search(/[^ ]/)>=u||!l.trim())s+=`
|
|
37
37
|
`+l.slice(u);else{if(d||r.search(/[^ ]/)>=4||i.test(r)||a.test(r)||n.test(r))break;s+=`
|
|
38
38
|
`+l}!d&&!l.trim()&&(d=!0),o+=c+`
|
|
39
|
-
`,e=e.substring(c.length+1),r=l.slice(u)}}i.loose||(c?i.loose=!0:/\n *\n *$/.test(o)&&(c=!0));let f=null,p;this.options.gfm&&(f=/^\[[ xX]\] /.exec(s),f&&(p=f[0]!==`[ ] `,s=s.replace(/^\[[ xX]\] +/,``))),i.items.push({type:`list_item`,raw:o,task:!!f,checked:p,loose:!1,text:s,tokens:[]}),i.raw+=o}i.items[i.items.length-1].raw=o.trimEnd(),i.items[i.items.length-1].text=s.trimEnd(),i.raw=i.raw.trimEnd();for(let e=0;e<i.items.length;e++)if(this.lexer.state.top=!1,i.items[e].tokens=this.lexer.blockTokens(i.items[e].text,[]),!i.loose){let t=i.items[e].tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>/\n.*\n/.test(e.raw))}if(i.loose)for(let e=0;e<i.items.length;e++)i.items[e].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(/\s+/g,` `),n=t[2]?t[2].replace(/^<(.*)>$/,`$1`).replace(this.rules.inline._escapes,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(t){if(!/[:|]/.test(t[2]))return;let e={type:`table`,raw:t[0],header:
|
|
40
|
-
`):[]};if(e.header.length===e.align.length){let t=e.align.length,n,r,i,a;for(n=0;n<t;n++){let t=e.align[n];t&&(/^ *-+: *$/.test(t)?e.align[n]=`right`:/^ *:-+: *$/.test(t)?e.align[n]=`center`:/^ *:-+ *$/.test(t)?e.align[n]=`left`:e.align[n]=null)}for(t=e.rows.length,n=0;n<t;n++)e.rows[n]=
|
|
41
|
-
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:
|
|
42
|
-
]`).replace(`lheading`,Z.lheading).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).getRegex()};var Q={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:
|
|
39
|
+
`,e=e.substring(c.length+1),r=l.slice(u)}}i.loose||(c?i.loose=!0:/\n *\n *$/.test(o)&&(c=!0));let f=null,p;this.options.gfm&&(f=/^\[[ xX]\] /.exec(s),f&&(p=f[0]!==`[ ] `,s=s.replace(/^\[[ xX]\] +/,``))),i.items.push({type:`list_item`,raw:o,task:!!f,checked:p,loose:!1,text:s,tokens:[]}),i.raw+=o}i.items[i.items.length-1].raw=o.trimEnd(),i.items[i.items.length-1].text=s.trimEnd(),i.raw=i.raw.trimEnd();for(let e=0;e<i.items.length;e++)if(this.lexer.state.top=!1,i.items[e].tokens=this.lexer.blockTokens(i.items[e].text,[]),!i.loose){let t=i.items[e].tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>/\n.*\n/.test(e.raw))}if(i.loose)for(let e=0;e<i.items.length;e++)i.items[e].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(/\s+/g,` `),n=t[2]?t[2].replace(/^<(.*)>$/,`$1`).replace(this.rules.inline._escapes,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(t){if(!/[:|]/.test(t[2]))return;let e={type:`table`,raw:t[0],header:Lf(t[1]).map(e=>({text:e,tokens:[]})),align:t[2].replace(/^\||\| *$/g,``).split(`|`),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,``).split(`
|
|
40
|
+
`):[]};if(e.header.length===e.align.length){let t=e.align.length,n,r,i,a;for(n=0;n<t;n++){let t=e.align[n];t&&(/^ *-+: *$/.test(t)?e.align[n]=`right`:/^ *:-+: *$/.test(t)?e.align[n]=`center`:/^ *:-+ *$/.test(t)?e.align[n]=`left`:e.align[n]=null)}for(t=e.rows.length,n=0;n<t;n++)e.rows[n]=Lf(e.rows[n],e.header.length).map(e=>({text:e,tokens:[]}));for(t=e.header.length,r=0;r<t;r++)e.header[r].tokens=this.lexer.inline(e.header[r].text);for(t=e.rows.length,r=0;r<t;r++)for(a=e.rows[r],i=0;i<a.length;i++)a[i].tokens=this.lexer.inline(a[i].text);return e}}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
41
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:jf(t[1])}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&/^</.test(e)){if(!/>$/.test(e))return;let t=Rf(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=zf(t[2],`()`);if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),/^</.test(n)&&(n=this.options.pedantic&&!/>$/.test(e)?n.slice(1):n.slice(1,-1)),Bf(t,{href:n&&n.replace(this.rules.inline._escapes,`$1`),title:r&&r.replace(this.rules.inline._escapes,`$1`)},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=(n[2]||n[1]).replace(/\s+/g,` `);if(e=t[e.toLowerCase()],!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return Bf(n,e,n[0],this.lexer)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&!(r[3]&&n.match(/[\p{L}\p{N}]/u))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g,` `),n=/[^ ]/.test(e),r=/^ /.test(e)&&/ $/.test(e);return n&&r&&(e=e.substring(1,e.length-1)),e=jf(e,!0),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=jf(t[1]),n=`mailto:`+e):(e=jf(t[1]),n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=jf(t[0]),n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])[0];while(r!==t[0]);e=jf(t[0]),n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e;return e=this.lexer.state.inRawBlock?t[0]:jf(t[0]),{type:`text`,raw:t[0],text:e}}}},Z={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))`,def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:If,lheading:/^(?!bull )((?:.|\n(?!\s*?\n|bull ))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};Z._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Z._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,Z.def=X(Z.def).replace(`label`,Z._label).replace(`title`,Z._title).getRegex(),Z.bullet=/(?:[*+-]|\d{1,9}[.)])/,Z.listItemStart=X(/^( *)(bull) */).replace(`bull`,Z.bullet).getRegex(),Z.list=X(Z.list).replace(/bull/g,Z.bullet).replace(`hr`,`\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))`).replace(`def`,`\\n+(?=`+Z.def.source+`)`).getRegex(),Z._tag=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Z._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,Z.html=X(Z.html,`i`).replace(`comment`,Z._comment).replace(`tag`,Z._tag).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Z.lheading=X(Z.lheading).replace(/bull/g,Z.bullet).getRegex(),Z.paragraph=X(Z._paragraph).replace(`hr`,Z.hr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Z._tag).getRegex(),Z.blockquote=X(Z.blockquote).replace(`paragraph`,Z.paragraph).getRegex(),Z.normal={...Z},Z.gfm={...Z.normal,table:`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`},Z.gfm.table=X(Z.gfm.table).replace(`hr`,Z.hr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,` {4}[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Z._tag).getRegex(),Z.gfm.paragraph=X(Z._paragraph).replace(`hr`,Z.hr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Z.gfm.table).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Z._tag).getRegex(),Z.pedantic={...Z.normal,html:X(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Z._comment).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:If,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:X(Z.normal._paragraph).replace(`hr`,Z.hr).replace(`heading`,` *#{1,6} *[^
|
|
42
|
+
]`).replace(`lheading`,Z.lheading).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).getRegex()};var Q={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:If,tag:`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`,link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:`reflink|nolink(?!\\()`,emStrong:{lDelim:/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,rDelimAst:/^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:If,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^((?![*_])[\spunctuation])/};Q._punctuation="\\p{P}$+<=>`^|~",Q.punctuation=X(Q.punctuation,`u`).replace(/punctuation/g,Q._punctuation).getRegex(),Q.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,Q.anyPunctuation=/\\[punct]/g,Q._escapes=/\\([punct])/g,Q._comment=X(Z._comment).replace(`(?:-->|$)`,`-->`).getRegex(),Q.emStrong.lDelim=X(Q.emStrong.lDelim,`u`).replace(/punct/g,Q._punctuation).getRegex(),Q.emStrong.rDelimAst=X(Q.emStrong.rDelimAst,`gu`).replace(/punct/g,Q._punctuation).getRegex(),Q.emStrong.rDelimUnd=X(Q.emStrong.rDelimUnd,`gu`).replace(/punct/g,Q._punctuation).getRegex(),Q.anyPunctuation=X(Q.anyPunctuation,`gu`).replace(/punct/g,Q._punctuation).getRegex(),Q._escapes=X(Q._escapes,`gu`).replace(/punct/g,Q._punctuation).getRegex(),Q._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Q._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Q.autolink=X(Q.autolink).replace(`scheme`,Q._scheme).replace(`email`,Q._email).getRegex(),Q._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Q.tag=X(Q.tag).replace(`comment`,Q._comment).replace(`attribute`,Q._attribute).getRegex(),Q._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Q._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Q._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Q.link=X(Q.link).replace(`label`,Q._label).replace(`href`,Q._href).replace(`title`,Q._title).getRegex(),Q.reflink=X(Q.reflink).replace(`label`,Q._label).replace(`ref`,Z._label).getRegex(),Q.nolink=X(Q.nolink).replace(`ref`,Z._label).getRegex(),Q.reflinkSearch=X(Q.reflinkSearch,`g`).replace(`reflink`,Q.reflink).replace(`nolink`,Q.nolink).getRegex(),Q.normal={...Q},Q.pedantic={...Q.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:X(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Q._label).getRegex(),reflink:X(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Q._label).getRegex()},Q.gfm={...Q.normal,escape:X(Q.escape).replace(`])`,`~|])`).getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},Q.gfm.url=X(Q.gfm.url,`i`).replace(`email`,Q.gfm._extended_email).getRegex(),Q.breaks={...Q.gfm,br:X(Q.br).replace(`{2,}`,`*`).getRegex(),text:X(Q.gfm.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()};var Uf=class e{constructor(e){Y(this,`tokens`),Y(this,`options`),Y(this,`state`),Y(this,`tokenizer`),Y(this,`inlineQueue`),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Cf,this.options.tokenizer=this.options.tokenizer||new Hf,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={block:Z.normal,inline:Q.normal};this.options.pedantic?(t.block=Z.pedantic,t.inline=Q.pedantic):this.options.gfm&&(t.block=Z.gfm,t.inline=this.options.breaks?Q.breaks:Q.gfm),this.tokenizer.rules=t}static get rules(){return{block:Z,inline:Q}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(/\r\n|\r/g,`
|
|
43
43
|
`),this.blockTokens(e,this.tokens);let t;for(;t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){e=this.options.pedantic?e.replace(/\t/g,` `).replace(/^ +$/gm,``):e.replace(/^( *)(\t+)/gm,(e,t,n)=>t+` `.repeat(n.length));let n,r,i,a;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(r=>(n=r.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length),n.raw.length===1&&t.length>0?t[t.length-1].raw+=`
|
|
44
44
|
`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&(r.type===`paragraph`||r.type===`text`)?(r.raw+=`
|
|
45
45
|
`+n.raw,r.text+=`
|
|
@@ -49,9 +49,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
49
49
|
`+n.raw,r.text+=`
|
|
50
50
|
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n),a=i.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&r.type===`text`?(r.raw+=`
|
|
51
51
|
`+n.raw,r.text+=`
|
|
52
|
-
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,r,i,a=e,o,s,c;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)e.includes(o[0].slice(o[0].lastIndexOf(`[`)+1,-1))&&(a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,o.index)+`++`+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(s||(c=``),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(r=>(n=r.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.emStrong(e,a,c)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),t.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),t.push(n);continue}if(i=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(i)){e=e.substring(n.raw.length),n.raw.slice(-1)!==`_`&&(c=n.raw.slice(-1)),s=!0,r=t[t.length-1],r&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},
|
|
53
|
-
`,r?`<pre><code class="language-`+
|
|
54
|
-
`:`<pre><code>`+(n?e:
|
|
52
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,r,i,a=e,o,s,c;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)e.includes(o[0].slice(o[0].lastIndexOf(`[`)+1,-1))&&(a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,o.index)+`++`+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(s||(c=``),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(r=>(n=r.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.emStrong(e,a,c)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),t.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),t.push(n);continue}if(i=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(i)){e=e.substring(n.raw.length),n.raw.slice(-1)!==`_`&&(c=n.raw.slice(-1)),s=!0,r=t[t.length-1],r&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},Wf=class{constructor(e){Y(this,`options`),this.options=e||Cf}code(e,t,n){let r=(t||``).match(/^\S*/)?.[0];return e=e.replace(/\n$/,``)+`
|
|
53
|
+
`,r?`<pre><code class="language-`+jf(r)+`">`+(n?e:jf(e,!0))+`</code></pre>
|
|
54
|
+
`:`<pre><code>`+(n?e:jf(e,!0))+`</code></pre>
|
|
55
55
|
`}blockquote(e){return`<blockquote>
|
|
56
56
|
${e}</blockquote>
|
|
57
57
|
`}html(e,t){return e}heading(e,t,n){return`<h${t}>${e}</h${t}>
|
|
@@ -67,7 +67,7 @@ ${e}</blockquote>
|
|
|
67
67
|
`}tablerow(e){return`<tr>
|
|
68
68
|
${e}</tr>
|
|
69
69
|
`}tablecell(e,t){let n=t.header?`th`:`td`;return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
|
|
70
|
-
`}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return`<br>`}del(e){return`<del>${e}</del>`}link(e,t,n){let r=
|
|
71
|
-
`+(a.tokens?this.parseInline(a.tokens):a.text);n+=t?this.renderer.paragraph(o):o;continue}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t){t=t||this.renderer;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}switch(i.type){case`escape`:{let e=i;n+=t.text(e.text);break}case`html`:{let e=i;n+=t.html(e.text);break}case`link`:{let e=i;n+=t.link(e.href,e.title,this.parseInline(e.tokens,t));break}case`image`:{let e=i;n+=t.image(e.href,e.title,e.text);break}case`strong`:{let e=i;n+=t.strong(this.parseInline(e.tokens,t));break}case`em`:{let e=i;n+=t.em(this.parseInline(e.tokens,t));break}case`codespan`:{let e=i;n+=t.codespan(e.text);break}case`br`:n+=t.br();break;case`del`:{let e=i;n+=t.del(this.parseInline(e.tokens,t));break}case`text`:{let e=i;n+=t.text(e.text);break}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},
|
|
72
|
-
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+
|
|
70
|
+
`}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return`<br>`}del(e){return`<del>${e}</del>`}link(e,t,n){let r=Ff(e);if(r===null)return n;e=r;let i=`<a href="`+e+`"`;return t&&(i+=` title="`+t+`"`),i+=`>`+n+`</a>`,i}image(e,t,n){let r=Ff(e);if(r===null)return n;e=r;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${t}"`),i+=`>`,i}text(e){return e}},Gf=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,n){return``+n}image(e,t,n){return``+n}br(){return``}},Kf=class e{constructor(e){Y(this,`options`),Y(this,`renderer`),Y(this,`textRenderer`),this.options=e||Cf,this.options.renderer=this.options.renderer||new Wf,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Gf}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}switch(i.type){case`space`:continue;case`hr`:n+=this.renderer.hr();continue;case`heading`:{let e=i;n+=this.renderer.heading(this.parseInline(e.tokens),e.depth,Nf(this.parseInline(e.tokens,this.textRenderer)));continue}case`code`:{let e=i;n+=this.renderer.code(e.text,e.lang,!!e.escaped);continue}case`table`:{let e=i,t=``,r=``;for(let t=0;t<e.header.length;t++)r+=this.renderer.tablecell(this.parseInline(e.header[t].tokens),{header:!0,align:e.align[t]});t+=this.renderer.tablerow(r);let a=``;for(let t=0;t<e.rows.length;t++){let n=e.rows[t];r=``;for(let t=0;t<n.length;t++)r+=this.renderer.tablecell(this.parseInline(n[t].tokens),{header:!1,align:e.align[t]});a+=this.renderer.tablerow(r)}n+=this.renderer.table(t,a);continue}case`blockquote`:{let e=i,t=this.parse(e.tokens);n+=this.renderer.blockquote(t);continue}case`list`:{let e=i,t=e.ordered,r=e.start,a=e.loose,o=``;for(let t=0;t<e.items.length;t++){let n=e.items[t],r=n.checked,i=n.task,s=``;if(n.task){let e=this.renderer.checkbox(!!r);a?n.tokens.length>0&&n.tokens[0].type===`paragraph`?(n.tokens[0].text=e+` `+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&n.tokens[0].tokens[0].type===`text`&&(n.tokens[0].tokens[0].text=e+` `+n.tokens[0].tokens[0].text)):n.tokens.unshift({type:`text`,text:e+` `}):s+=e+` `}s+=this.parse(n.tokens,a),o+=this.renderer.listitem(s,i,!!r)}n+=this.renderer.list(o,t,r);continue}case`html`:{let e=i;n+=this.renderer.html(e.text,e.block);continue}case`paragraph`:{let e=i;n+=this.renderer.paragraph(this.parseInline(e.tokens));continue}case`text`:{let a=i,o=a.tokens?this.parseInline(a.tokens):a.text;for(;r+1<e.length&&e[r+1].type===`text`;)a=e[++r],o+=`
|
|
71
|
+
`+(a.tokens?this.parseInline(a.tokens):a.text);n+=t?this.renderer.paragraph(o):o;continue}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t){t=t||this.renderer;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}switch(i.type){case`escape`:{let e=i;n+=t.text(e.text);break}case`html`:{let e=i;n+=t.html(e.text);break}case`link`:{let e=i;n+=t.link(e.href,e.title,this.parseInline(e.tokens,t));break}case`image`:{let e=i;n+=t.image(e.href,e.title,e.text);break}case`strong`:{let e=i;n+=t.strong(this.parseInline(e.tokens,t));break}case`em`:{let e=i;n+=t.em(this.parseInline(e.tokens,t));break}case`codespan`:{let e=i;n+=t.codespan(e.text);break}case`br`:n+=t.br();break;case`del`:{let e=i;n+=t.del(this.parseInline(e.tokens,t));break}case`text`:{let e=i;n+=t.text(e.text);break}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},qf=class{constructor(e){Y(this,`options`),this.options=e||Cf}preprocess(e){return e}postprocess(e){return e}};Y(qf,`passThroughHooks`,new Set([`preprocess`,`postprocess`]));var Jf=class{constructor(...e){_f(this,yf),Y(this,`defaults`,Sf()),Y(this,`options`,this.setOptions),Y(this,`parse`,vf(this,yf,bf).call(this,Uf.lex,Kf.parse)),Y(this,`parseInline`,vf(this,yf,bf).call(this,Uf.lexInline,Kf.parseInline)),Y(this,`Parser`,Kf),Y(this,`Renderer`,Wf),Y(this,`TextRenderer`,Gf),Y(this,`Lexer`,Uf),Y(this,`Tokenizer`,Hf),Y(this,`Hooks`,qf),this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{n=n.concat(this.walkTokens(e[r],t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new Wf(this.defaults);for(let n in e.renderer){let r=e.renderer[n],i=n,a=t[i];t[i]=(...e)=>{let n=r.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Hf(this.defaults);for(let n in e.tokenizer){let r=e.tokenizer[n],i=n,a=t[i];t[i]=(...e)=>{let n=r.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new qf;for(let n in e.hooks){let r=e.hooks[n],i=n,a=t[i];t[i]=qf.passThroughHooks.has(n)?e=>{if(this.defaults.async)return Promise.resolve(r.call(t,e)).then(e=>a.call(t,e));let n=r.call(t,e);return a.call(t,n)}:(...e)=>{let n=r.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Uf.lex(e,t??this.defaults)}parser(e,t){return Kf.parse(e,t??this.defaults)}};yf=new WeakSet,bf=function(e,t){return(n,r)=>{let i={...r},a={...this.defaults,...i};this.defaults.async===!0&&i.async===!1&&(a.silent||console.warn(`marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.`),a.async=!0);let o=vf(this,yf,xf).call(this,!!a.silent,!!a.async);if(n==null)return o(Error(`marked(): input parameter is undefined or null`));if(typeof n!=`string`)return o(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(n)+`, string expected`));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(n):n).then(t=>e(t,a)).then(e=>a.walkTokens?Promise.all(this.walkTokens(e,a.walkTokens)).then(()=>e):e).then(e=>t(e,a)).then(e=>a.hooks?a.hooks.postprocess(e):e).catch(o);try{a.hooks&&(n=a.hooks.preprocess(n));let r=e(n,a);a.walkTokens&&this.walkTokens(r,a.walkTokens);let i=t(r,a);return a.hooks&&(i=a.hooks.postprocess(i)),i}catch(e){return o(e)}}},xf=function(e,t){return n=>{if(n.message+=`
|
|
72
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+jf(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}};var Yf=new Jf;function $(e,t){return Yf.parse(e,t)}$.options=$.setOptions=function(e){return Yf.setOptions(e),$.defaults=Yf.defaults,wf($.defaults),$},$.getDefaults=Sf,$.defaults=Cf,$.use=function(...e){return Yf.use(...e),$.defaults=Yf.defaults,wf($.defaults),$},$.walkTokens=function(e,t){return Yf.walkTokens(e,t)},$.parseInline=Yf.parseInline,$.Parser=Kf,$.parser=Kf.parse,$.Renderer=Wf,$.TextRenderer=Gf,$.Lexer=Uf,$.lexer=Uf.lex,$.Tokenizer=Hf,$.Hooks=qf,$.parse=$,$.options,$.setOptions,$.use,$.walkTokens,$.parseInline,Kf.parse,Uf.lex;var Xf={USE_PROFILES:{html:!0}},Zf=!1;function Qf(){Zf||($.setOptions({gfm:!0,breaks:!0}),Zf=!0)}function $f(e){return typeof e!=`string`||!e.trim()?``:String(ff.sanitize(e,Xf))}var ep=128,tp=new Map;function np(e){if(typeof e!=`string`||!e.trim())return``;let t=tp.get(e);if(t!==void 0)return t;Qf();let n=$.parse(e,{async:!1});if(typeof n!=`string`)return``;let r=$f(n);if(tp.size>=ep){let e=tp.keys().next().value;e!==void 0&&tp.delete(e)}return tp.set(e,r),r}var rp={PLAN_HOST_TOOL_STREAM:`plan_host_tool_stream`,PLAN_HOST_TOOL:`plan_host_tool`,AGENT_MUTATION_SUCCESS:`agent_mutation_success`,HOST_TOOL_DISPATCH:`host_tool_dispatch`,PAGE_ACTION_HOST_FILL:`page_action_host_fill`},ip=Du();e.AUTH_CHANGED_EVENT=rn,e.AUTH_REQUIRED_USER_MESSAGE=cn,e.AUTH_STORAGE_KEY=nn,e.AgentChat=ip,e.default=ip,e.AgentChatClient=xu,e.AgentChatError=m,e.AppToolService=ac,e.BRAIN_ASK_USER_ERROR_CODE=jo,e.DEFAULT_BASE_URL=h,e.DSN_AUTH_HEADER=ee,e.EXTENSION_READY_EVENT=pn,e.HOST_ACTION_REASON=rp,e.HOST_TOOL_STREAM_PROTOCOL_VERSION=xn,e.HostToolStreamManager=ui,e.HostToolStreamRound=ri,e.SDK_AUTH_STORAGE_KEY=hn,e.appendByDotPath=Fr,e.appendPageActionNarrativeItems=zc,e.argumentsToEditorText=je,e.buildClientSkillListQuery=ar,e.buildConfirmWithEdits=Ne,e.buildConfirmWithEditsFromArguments=Pe,e.buildDraftReviewDecisionPayload=ct,e.buildDraftReviewEditorStates=pt,e.buildEntityCommit=Ro,e.buildNarrativeDisplayBlocks=Yc,e.buildPageActionInvokePageContextSnapshot=ko,e.canEditDraftReview=at,e.clearHostActionHandlers=Nr,e.clearHostToolServerSyncKeys=Si,e.clearHostTools=Cr,e.clearPendingPageActionApplyStorage=Al,e.cloneWriteDraftArguments=T,e.coerceContextMentionPayload=Oi,e.consumePageActionInvokeStream=yl,e.consumePageActionRunStream=vl,e.countInterestingNarrativeItems=Vc,e.createAgentChat=Du,e.createInitialHostToolStreamState=Lr,e.defaultPageActionProgressLabel=$c,e.defineContextMention=ji,e.definePageContextMentions=Mi,e.deriveEditPolicyFromDraft=nt,e.detectHostToolStreamProfile=wn,e.dispatchHostAction=jr,e.draftReviewBundleLabel=mt,e.draftReviewHasEdits=st,e.editorTextToArguments=Me,e.executeBatchPlan=ci,e.executeHostToolsFromAction=yr,e.extractBrainClarifyFromRunSteps=Bo,e.flushPendingHostToolSyncs=yi,e.formatBrainClarifyCandidateLabel=zo,e.getAppToolServerErrorCode=ic,e.getByDotPath=Ir,e.getGofoTrackJob=zu,e.getHostToolStreamConfig=gr,e.getOmnixExtensionStatus=Fu,e.hostActionSseToAgentAction=zn,e.initialPreviewEditorText=ot,e.isBrainAskUserErrorCode=Lo,e.isDispatchableHostAction=Fn,e.isDraftReviewGateErrorCode=lt,e.isHostActionBatchPayload=Cn,e.isHostActionEnvelope=Bn,e.isHostActionStreamPayload=Sn,e.isHostToolRegisteredGlobally=Tr,e.isHostToolRegisteredInScope=wr,e.isHostToolStreamEnabled=di,e.isOmnixExtensionAvailable=ku,e.isOmnixSdkAuthenticated=gn,e.isPageActionProcessLivePhase=Vu,e.isRequestedSkillActuallyUsed=bc,e.isSdkAuthenticatedForDsn=un,e.isStaleAgentRunEvent=D,e.localizeNarrativeFieldLabel=Gc,e.markdownToSafeHtml=np,e.matchesPendingPageActionApply=Ml,e.mismatchI18nKey=Tc,e.normalizeDsn=te,e.normalizeHostAction=Ln,e.onHostAction=Mr,e.pageActionAwaitingClarifyLabel=rl,e.parseAgentChatPageContext=Ao,e.parseAgentRunDetail=dc,e.parseBrainClarifyPayload=Io,e.parseCancelRunResponse=yt,e.parseDraftReviewBundles=ft,e.parseEditPolicyPublic=$e,e.parseHostActionPayload=In,e.parseHostActionSsePayload=Rn,e.parseNarrativeItems=Lc,e.parsePageWorkflowEvent=Xc,e.parseRunGeneration=gt,e.parseSessionRunState=vt,e.parseWriteDraftPublic=Ae,e.passesHostActionGate=ei,e.pickNarrativeHeadline=Jc,e.pingOmnixExtension=Pu,e.planBatchExecution=ai,e.readPendingPageActionApply=Ol,e.readRoutePlanStep=_c,e.readSkillAlignment=yc,e.readSkillIntentMismatchObservation=Ec,e.readSkillTurnContract=vc,e.reduceHostToolStream=Yr,e.registerHostAction=Ar,e.registerHostTool=pr,e.registerHostToolsWithSync=bi,e.requireOmnixSdkAuthentication=_n,e.resolveAlignmentSteps=fc,e.resolveDefaultSkillId=or,e.resolveEditPolicy=rt,e.resolvePageContextNavigateTarget=Cl,e.resolvePageWorkflowProgressLabel=cl,e.rethrowPageActionError=ml,e.runHostTool=_r,e.runHostToolPreview=vr,e.sanitizeRichHtml=$f,e.setByDotPath=Pr,e.shouldIngestHostActionStreamFrame=ni,e.shouldOfferNarrativeProcess=Bc,e.shouldShowClarifyCard=wc,e.shouldShowIntentFirstBanner=xc,e.shouldShowIntentFirstHint=Sc,e.shouldShowSkillClarifyCard=Cc,e.skillListHasPageFilter=sr,e.slugContextMentionKey=Di,e.startGofoTrack=Ru,e.syncOmnixPmsIntegration=Iu,e.toPageActionProcessView=Hu,e.toStreamSessionGate=Xr,e.trackGofoWaybill=Lu,e.undeclareHostTool=xr,e.undeclareHostTools=Sr,e.unregisterHostTool=mr,e.unregisterHostTools=hr,e.useAuthStore=sn,e.waitForAuthStoreRehydration=ln,e.waitForGofoTrackJob=Bu,e.waitForOmnixExtensionAvailable=ju,e.warnAccumulatorMismatch=si,e.writePendingPageActionApply=kl});
|
|
73
73
|
//# sourceMappingURL=omnix-chat.umd.js.map
|