page-agent-sdk 3.36.0 → 3.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -334,7 +334,7 @@ ${`- 输出形态:完整、自包含的 HTML 页面(.${r},可独立成页)`}
334
334
  `)}\n请用 vfs_edit 修正后重新调用 validate_code 复查。`:`✅ 格式校验通过(${o.map(e=>e.path).join(`, `)}:标签闭合等结构合法)。`},{name:`validate_code`,description:`校验 HTML 代码格式(标签闭合等结构合法性;DOCTYPE/html/head/body/script 均允许 —— 完整页面级)。生成/修改代码后必调;报错修正后复查直到通过。`,schema:B({jsonPath:R().optional().describe(`首选。从 data 读代码校验(传代码字段的 jsonPath;新建组件 write 后用,零重传 content)`),path:R().optional().describe(`修改已有组件时校验 vfs 工作副本文件(如 `+e+`hero.html)`),content:R().optional().describe(`兜底。仅当 jsonPath/path 均不便时直传代码`)})})]};return r._setGetController=e=>{n=e},r}var mue=2;function A2(e={}){let{writablePaths:t,codeVfsPrefix:n=`html/`,id:r=`html`,description:i,planning:a=!0,summarization:o=!0,maxToolRounds:s=12,temperature:c=.4,skills:l,extraTools:u,formatCheck:d=!0,codeField:f=`code`,orchestratorPrompt:p=!0,craftNotes:m=!0,llm:h,thinkingMode:g}=e;if(t!==void 0&&!Array.isArray(t))throw Error(`[page-agent-sdk][createHtmlSubagent] writablePaths 须为字符串数组(代码组件 data 区,如 ["components"])/ 省略以从 schema 自动推断`);let _=[];a&&_.push(VW()),d&&(_.push(pue(n)),_.push(sJ({check:k2({vfsPrefix:n})})));let v=u??[],y=t?.[0]??`components`,b=l===void 0,x={id:r,description:i??`生成/修改纯代码组件(代码作为 data 资产,代码字段 ${f} 随 data 持久化;vfs 作工作副本;能规划(write_todos)+ 执行)。需写代码组件或灵活定制时委派`,systemPrompt:D2(n,f,y),...h?{llm:h}:{},...g?{thinkingMode:g}:{},writablePaths:t??[],allowedTools:[`vfs_write`,`vfs_edit`,`vfs_rm`,`vfs_grep`,`vfs_read`],middleware:_.length?_:void 0,summarization:o===!1?void 0:o,maxVerifyAttempts:d?mue:void 0,temperature:c,skills:b?[O2(y,f)]:l,maxToolRounds:s,tools:v.length?v:void 0,_codeAsset:{writablePaths:t??[],codeVfsPrefix:n,ext:`html`,codeField:f,craftNotes:m,...p?{orchestratorPrompt:BG(r,f)}:{}}};return x._rebuildCodeAssetPaths=e=>{x.systemPrompt=D2(n,f,e),b&&(x.skills=[O2(e,f)])},x}function j2(e){return wL(async t=>{let n=await e.handler(t);return typeof n==`string`?n:JSON.stringify(n)},{name:e.name,description:e.description,schema:e.schema})}hm();var hue=B({path:R().optional().describe(`分类 key 过滤(如 toolResults/history/systemPrompt/dataHint);不传=全部分类`),role:df([`user`,`assistant`,`system`,`tool`]).optional().describe(`聚焦每轮首句的角色(assistant→回复摘要,user→问题摘要);不影响工具列表`),limit:Nd().int().min(1).max(50).optional().describe(`返回最近 N 轮(默认全部;超 50 自动截最近 50 防返回过大)`)});function gue(e){return j2({name:`inspect_context`,description:`查看当前对话上下文的构成(供压缩决策)。返回:totalTokens(历史轮次 token 总和,与触发判断同口径)、occupancy(窗口占用比)、contextWindow、categories(分类占用)、rounds(每轮 token/工具/首句)。先调用本工具查看构成,再决定压缩策略。`,schema:hue,handler:t=>{let n=vq(e.getMessages()),r=n.length>50?n.slice(n.length-50):n,i=(t.limit&&r.length>t.limit?r.slice(r.length-t.limit):r).map(e=>{let n=Aq(e),r=bq(e),i=t.role===`assistant`?e.assistantMsgs[0]??e.userMsg:e.userMsg,a=yq(typeof i.content==`string`?i.content:``,60);return{round:e.round,tokens:n,tools:r,head:a}}),a=i.reduce((e,t)=>e+t.tokens,0),o=e.contextWindow,s=o?a/o:0,c=e.getSnapshot?.()?.categories??[];return{totalTokens:a,occupancy:s,contextWindow:o,categories:t.path?c.filter(e=>e.key===t.path):c,rounds:i}}})}hm();var M2=B({keepRounds:Nd().int().min(0).max(50).optional(),windowRatio:Nd().min(0).max(1).optional(),summarize:B({mode:df([`index`,`llm`])}),recallTopK:Nd().int().min(0).max(10).optional(),preserveTools:z(R()).max(10).optional(),reason:R().max(200).optional()}).refine(e=>e.keepRounds!==void 0||e.windowRatio!==void 0,{message:`keepRounds 与 windowRatio 至少填一个(按当前触发模式)`});function N2(e){let t=e.find(e=>e.role===`user`);if(!t)return;let n=t.content,r=(typeof n==`string`?n:Array.isArray(n)?n.map(e=>typeof e==`string`?e:e?.text??``).join(``):String(n??``)).trim().replace(/[\n\r]+/g,` `);if(r)return r.length>30?r.slice(0,30)+`…`:r}function P2(e){return!!e&&typeof e==`object`&&typeof e.invoke==`function`&&typeof e.stream==`function`}function F2(e){let t=e.content;return typeof t==`string`?t:Array.isArray(t)?t.map(e=>typeof e==`string`?e:e?.text??``).join(``):String(t??``)}function _ue(e){let t=e.summaryLlm??e.llm;if(!t)return;let n=e.summaryTemperature??.3,r=e.summaryMaxTokens??1024,i=e.summaryTimeoutMs??15e3,a=P2(t)?t:null,o=P2(t)?null:t;if(o&&!o.apiKey){e.summaryLlm&&console.warn(`[page-agent-sdk][summarization] summaryLlm 已配置但缺 apiKey,摘要回退主 agent 模型或零成本索引摘要`);return}let s=a;return async e=>{let t=new AbortController,a=setTimeout(()=>t.abort(),i);try{return!s&&o&&(s=await OL(o,{temperature:n,maxTokens:r})),F2(await s.invoke([new Dx(`你是对话历史压缩助手。把下面按轮次索引的对话要点,改写成一段连贯、紧凑的中文摘要,保留关键事实、用户意图与已用工具,不要编造。直接输出摘要正文。`),new wx(e)],{signal:t.signal})).trim()}finally{clearTimeout(a)}}}function vue(e){let t=e.titleLlm??e.summaryLlm??e.llm;if(!t)return;let n=P2(t)?t:null,r=P2(t)?null:t;if(r&&!r.apiKey)return;let i=n;return async t=>{let n=t.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>`${e.role===`user`?`用户`:`助手`}: ${e.content}`).join(`
335
335
  `).slice(0,800),a=new AbortController,o=setTimeout(()=>a.abort(),1e4);try{!i&&r&&(i=await OL(r,{temperature:0,maxTokens:30}));let t=await i.invoke([new Dx(e.i18n?.locale===`en-US`?`Generate a short English title (max 10 words) summarizing the conversation below. Output the title text only, no quotes or punctuation.`:`根据以下对话的主旨,生成一个简短的中文标题(不超过15个字,不要标点和引号,直接输出标题文字)。`),new wx(n)],{signal:a.signal}),o=e.i18n?.locale===`en-US`?60:20;return F2(t).trim().replace(/^["'""「『]|["'""」』]$/g,``).split(`
336
336
  `)[0].slice(0,o)}catch{return``}finally{clearTimeout(o)}}}function yue(){return`call_dec_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function bue(e){let t=e.match(/```(?:json)?\s*([\s\S]*?)```/),n=t?t[1]:e,r=n.indexOf(`{`),i=n.lastIndexOf(`}`);if(r<0||i<0||i<=r)return null;try{return JSON.parse(n.slice(r,i+1))}catch{return null}}function I2(e){if(!e)return null;let t=bue(e);if(t==null)return null;let n=M2.safeParse(t);return n.success?n.data:null}async function L2(e,t,n,r){let i=[...n];for(let n=0;n<3;n++){let n=await e.invoke(i,{signal:r}),a=n?.tool_calls??[];if(!a.length)return F2(n).trim();i=[...i,n];for(let e of a){let n=e.id??yue();try{let r=await t.invoke(e.args??{}),a=typeof r==`string`?r:r?.content??JSON.stringify(r);i=[...i,new rx({content:a,tool_call_id:n})]}catch(e){i=[...i,new rx({content:`工具执行失败: ${e.message}`,tool_call_id:n})]}}}return``}function xue(e){let t=e.summaryLlm??e.llm;if(!t)return;let n=P2(t)?t:null,r=P2(t)?null:t;if(r&&!r.apiKey)return;let i=e.decisionTimeoutMs??6e3,a=e.decisionMaxTokens??2048,o=n;return async e=>{let t=new AbortController,n=setTimeout(()=>t.abort(),i);try{!o&&r&&(o=await OL(r,{temperature:0,maxTokens:a}));let n=o;if(typeof n.bindTools!=`function`)return null;let i=gue({getMessages:e.getMessages,getSnapshot:e.getSnapshot,contextWindow:e.contextWindow}),s=n.bindTools([i]),c=e.triggerMode===`token`?`token 模式:必填 windowRatio(0~1 保留窗口预算比例,如 0.4);keepRounds 可选`:`轮数模式:必填 keepRounds(保留最近几轮,如 6);windowRatio 可选`,l=[new Dx(`你是对话历史压缩决策助手。当前触发模式 = ${e.triggerMode}(${e.triggerReason})。先调用 inspect_context 查看上下文构成,再输出压缩决策 JSON。${c}。仅输出 JSON,不要多余文字/markdown。schema:{keepRounds?(int 0-50), windowRatio?(0-1), summarize:{mode:"index"|"llm"}, recallTopK?(int 0-10), preserveTools?(string[]≤10), reason?(≤200字)}。keepRounds/windowRatio 至少填一个。`),new wx(`触发原因:${e.triggerReason}\n上下文窗口:${e.contextWindow??`未知`} tokens\n阈值比例:${e.thresholdRatio??`未知`}\n\n请决策压缩策略(先 inspect_context 查看,再输出 JSON)。`)];return I2(await L2(s,i,l,t.signal))||I2(await L2(s,i,[...l,new wx(`上一次输出无效(JSON 解析失败或 schema 校验不通过)。请只输出符合 schema 的压缩决策 JSON,不要多余文字/markdown 代码块。`)],t.signal))}catch{return null}finally{clearTimeout(n)}}}function R2(e){let t=e.llm,n=P2(e.llm)?void 0:e.llm;return{modelCaps:yW({model:n?.model??t?.model??t?.modelName,contextWindow:e.contextWindow??n?.contextWindow??t?.contextWindow,maxOutputTokens:e.maxOutputTokens??n?.maxOutputTokens??t?.maxOutputTokens,vision:n?.vision??t?.vision}),summaryLlmInvoke:_ue(e),titleLlmInvoke:vue(e),compressDecisionInvoke:xue(e)}}function z2(e,t){let n=Tz(null),r=0;function i(i){let a=t?.()??`ask`;if(a!==`ask`){let t={...i,id:++r,resolve:()=>{},autoResolved:a},n=e?.();return n?.({type:`conflict`,conflict:t}),Promise.resolve({action:a})}return new Promise(t=>{let a=n.value;a&&a.resolve({action:`keep_external`});let o={...i,id:++r,resolve:t};n.value=o;let s=e?.();s?.({type:`conflict`,conflict:o})})}function a(e){let t=n.value;t&&(n.value=null,t.resolve({action:e}))}return{pendingConflict:n,set:i,resolve:a}}function B2(){try{if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID()}catch{}return Date.now().toString(36)+Math.random().toString(36).slice(2,10)}var Sue=`chat-sdk`,Cue=50*1024*1024,wue=4*1024*1024,Tue=10*1024*1024,Eue=.9,Due=500,Oue=300,V2=`__meta__`,H2=`v:1`,U2=[`messages`,`vfs`,`todos`,`memory`,`checkpoints`,`usage`,`mission`,`workingMemory`,`focus`];function kue(e){return e===`local`||e===`session`?wue:Cue}function W2(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`QuotaExceededError`||t.name===`NS_ERROR_DOM_QUOTA_REACHED`||t.code===22||t.code===1014}function G2(e,t,n,r){return[H2,e,t,n,r].join(`::`)}function K2(e,t,n){return[H2,e,t,n].join(`::`)+`::`}function Aue(e,t){return[H2,e,t].join(`::`)+`::`}function jue(e){return[H2,e].join(`::`)+`::`}var q2=null;function J2(e){q2||=new TextEncoder;try{return q2.encode(JSON.stringify(e)).length}catch{return 0}}function Mue(e,t,n){let r=e.reduce((e,t)=>e+t.bytes,0);if(r<=t)return[];let i=t*n,a=[...e].sort((e,t)=>e.lastAccessed-t.lastAccessed),o=[];for(let e of a){if(r<=i)break;o.push(e),r-=e.bytes}return o}function Y2(){let e=new Map;return{async get(t){return e.has(t)?e.get(t):void 0},async set(t,n){e.set(t,n)},async del(t){e.delete(t)},async scan(t,n){for(let r of Array.from(e.keys()).sort())if(r.startsWith(t)&&n(r,e.get(r))===!1)return},async clearPrefix(t){for(let n of Array.from(e.keys()))n.startsWith(t)&&e.delete(n)}}}function X2(e){return new Promise((t,n)=>{if(typeof indexedDB>`u`){n(Error(`indexedDB 不可用`));return}let r=indexedDB.open(e,1);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(`kv`)||e.createObjectStore(`kv`)},r.onblocked=()=>n(Error(`indexedDB 升级被阻塞,请关闭其他标签页后重试`)),r.onsuccess=()=>{let e=r.result;e.onversionchange=()=>{e.close()},t({get(t){return new Promise((n,r)=>{let i=e.transaction(`kv`,`readonly`).objectStore(`kv`).get(t);i.onsuccess=()=>n(i.result),i.onerror=()=>r(i.error)})},set(t,n){return new Promise((r,i)=>{let a=e.transaction(`kv`,`readwrite`);a.objectStore(`kv`).put(n,t),a.oncomplete=()=>r(),a.onerror=()=>i(a.error),a.onabort=()=>i(a.error)})},del(t){return new Promise((n,r)=>{let i=e.transaction(`kv`,`readwrite`);i.objectStore(`kv`).delete(t),i.oncomplete=()=>n(),i.onerror=()=>r(i.error),i.onabort=()=>r(i.error)})},scan(t,n){return new Promise((r,i)=>{let a=!1,o=e.transaction(`kv`,`readonly`),s=IDBKeyRange.bound(t,t+`￿`),c=o.objectStore(`kv`).openCursor(s);c.onsuccess=()=>{let e=c.result;if(!e||a)return;let r=e.key;if(r.startsWith(t)&&n(r,e.value)===!1){a=!0;return}e.continue()},c.onerror=()=>i(c.error),o.oncomplete=()=>r(),o.onerror=()=>i(o.error),o.onabort=()=>i(o.error)})},clearPrefix(t){return new Promise((n,r)=>{let i=e.transaction(`kv`,`readwrite`),a=IDBKeyRange.bound(t,t+`￿`),o=i.objectStore(`kv`).openCursor(a);o.onsuccess=()=>{let e=o.result;e&&(e.key.startsWith(t)&&e.delete(),e.continue())},o.onerror=()=>r(o.error),i.oncomplete=()=>n(),i.onerror=()=>r(i.error),i.onabort=()=>r(i.error)})}})},r.onerror=()=>n(r.error)})}function Z2(e){return{async get(t){let n=e.getItem(t);if(n!=null)try{return JSON.parse(n)}catch{return}},async set(t,n){e.setItem(t,JSON.stringify(n))},async del(t){e.removeItem(t)},async scan(t,n){let r=[];for(let n=0;n<e.length;n++){let i=e.key(n);i&&i.startsWith(t)&&r.push(i)}r.sort();for(let t of r){let r=e.getItem(t);if(r==null)continue;let i;try{i=JSON.parse(r)}catch{continue}if(n(t,i)===!1)return}},async clearPrefix(t){let n=[];for(let r=0;r<e.length;r++){let i=e.key(r);i&&i.startsWith(t)&&n.push(i)}for(let t of n)e.removeItem(t)}}}function Q2(e,t,n){let r=(e.get(t)??Promise.resolve()).then(n,n);return e.set(t,r.then(()=>void 0,()=>void 0)),r}function $2(e={}){let t=e.dbName??Sue,n=e.backend??`indexed`,r=e.maxBytes??kue(n),i=e.maxBytesPerSession??Tue,a=e.evictionWatermark??Eue,o=e.debounceMs??Due,s=new Set;function c(e){for(let t of s)try{t(e)}catch{}}let l,u=!1,d,f=new Promise(e=>{d=e});(async()=>{try{if(n===`indexed`){if(typeof indexedDB>`u`)throw Error(`indexedDB 不可用`);l=await X2(t),d(!0)}else if(n===`session`){if(typeof sessionStorage>`u`)throw Error(`sessionStorage 不可用`);l=Z2(sessionStorage),d(!0)}else if(n===`local`){if(typeof localStorage>`u`)throw Error(`localStorage 不可用`);l=Z2(localStorage),d(!0)}else l=Y2(),d(!1)}catch(e){l=Y2();let t=e instanceof Error?e.message:String(e);d(!1),Promise.resolve().then(()=>c({type:`degraded`,reason:t}))}})();let p=new Map,m=new Map,h=new Map;function g(e,n,r,a){let o=G2(t,r,a,V2);return Q2(h,o,async()=>{let t=async()=>{let t=await l.get(o),s=await l.get(e),u=s==null?0:J2(s),d=J2(n),f=(t?.bytes??0)+(d-u);if(f>i){c({type:`quota`,sessionBytes:f,limit:i});return}await l.set(e,n);let p=Date.now(),m=t??{agentId:r,sessionId:a,createdAt:p,lastAccessed:p,bytes:0};m.bytes+=d-u,m.lastAccessed=p,await l.set(o,m),y()};try{await t()}catch(e){if(W2(e)&&!u){u=!0;try{await b()}catch{}l=Y2(),Promise.resolve().then(()=>c({type:`degraded`,reason:`存储配额超限(QuotaExceededError),已淘汰最旧会话并降级内存`}));try{await t()}catch{}}}})}function _(e,n,r,i){let a=G2(t,e,n,r),s=p.get(a);s&&s.resolve();let c=m.get(a);return c&&clearTimeout(c),new Promise(t=>{p.set(a,{value:i,agentId:e,sessionId:n,kind:r,resolve:t});let s=setTimeout(()=>{m.delete(a);let e=p.get(a);if(p.delete(a),!e){t();return}g(a,e.value,e.agentId,e.sessionId).then(t,t)},o);m.set(a,s)})}let v=null;function y(){v||=setTimeout(()=>{v=null,b()},Oue)}async function b(){let e=[];await l.scan(jue(t),(t,n)=>{t.endsWith(`::__meta__`)&&e.push(n)});let n=Mue(e,r,a);for(let e of n)await l.clearPrefix(K2(t,e.agentId,e.sessionId)),c({type:`evicted`,agentId:e.agentId,sessionId:e.sessionId,bytes:e.bytes})}return{ready:f,async listSessions(e){let n=[];return await l.scan(Aue(t,e),(e,t)=>{e.endsWith(`::__meta__`)&&n.push(t)}),n.sort((e,t)=>t.lastAccessed-e.lastAccessed)},async load(e,n){let r=G2(t,e,n,V2);return await Q2(h,r,async()=>{let i=await l.get(r);if(!i)return;let a={messages:[],vfs:{},todos:[],memory:``};for(let r of U2){let i=await l.get(G2(t,e,n,r));i!=null&&(a[r]=i)}return i.lastAccessed=Date.now(),await l.set(r,i),a})},async save(e,t,n){let r=[];for(let i of U2)n[i]!==void 0&&r.push(_(e,t,i,n[i]));await Promise.all(r)},async updateTitle(e,n,r){let i=G2(t,e,n,V2);return Q2(h,i,async()=>{let e=await l.get(i);e&&(e.title=r,e.lastAccessed=Date.now(),await l.set(i,e))})},async flush(){for(let e of Array.from(m.keys())){let t=m.get(e);t&&(clearTimeout(t),m.delete(e))}let e=Array.from(p.entries());p.clear(),await Promise.all(e.map(async([e,t])=>{await g(e,t.value,t.agentId,t.sessionId),t.resolve()})),c({type:`flush`}),await b()},async deleteSession(e,n){let r=K2(t,e,n);for(let[e,t]of p.entries())e.startsWith(r)&&(t.resolve(),p.delete(e));for(let[e,t]of m.entries())e.startsWith(r)&&(clearTimeout(t),m.delete(e));await l.clearPrefix(r)},async createSession(e,n,r){let i=r??B2(),a=Date.now(),o={agentId:e,sessionId:i,createdAt:a,lastAccessed:a,bytes:0,title:n};return await l.set(G2(t,e,i,V2),o),i},onEvent(e){s.add(e)},dispose(){for(let e of m.values())clearTimeout(e);m.clear();for(let e of p.values())e.resolve();p.clear(),v&&=(clearTimeout(v),null),h.clear(),s.clear()}}}function e4(e){return e===void 0?$2({backend:`memory`}):e===!1?null:typeof e==`string`?$2({backend:e}):e.enabled===!1?null:$2(e)}function t4(e){return e.dialog??{}}var n4=[{name:`dataOps`,defaultOn:!0},{name:`fetch`,defaultOn:!0},{name:`planning`,defaultOn:!0},{name:`missionAnchor`,defaultOn:!0},{name:`workingMemory`,defaultOn:!0},{name:`focus`,defaultOn:!0},{name:`skills`,defaultOn:!0},{name:`vfs`,defaultOn:!0},{name:`summarization`,defaultOn:!0},{name:`memory`,defaultOn:!0},{name:`subagent`,defaultOn:!0},{name:`inspectEnv`,defaultOn:!0},{name:`contextInspector`,defaultOn:!0},{name:`verify`,defaultOn:!1},{name:`domInspect`,defaultOn:!1},{name:`draftWrite`,defaultOn:!1,requires:[`dataOps`,`vfs`]},{name:`tracing`,defaultOn:!1},{name:`todoDeps`,defaultOn:!1},{name:`skillHostScript`,defaultOn:!1,requires:[`skills`]},{name:`automation`,defaultOn:!1},{name:`agentCompression`,defaultOn:!1,requires:[`summarization`]},{name:`preferences`,defaultOn:!1}];function r4(e){let t={};for(let n of n4){let r=e?.[n.name];t[n.name]=n.defaultOn?r!==!1:r===!0}for(let e of n4)if(e.requires&&t[e.name]){for(let n of e.requires)if(!t[n]){t[e.name]=!1;break}}return t}function i4(e){let t=new Set,n=n=>{if(n.type!==`approval_request`){if(e)try{e(n)}catch(e){console.warn(`[page-agent-sdk] onEvent 回调出错(observable,已忽略):`,qU(e,`observable`).message)}for(let e of t)try{e(n)}catch(e){console.warn(`[page-agent-sdk] 事件监听器出错(observable,已忽略):`,qU(e,`observable`).message)}}};function r(e){return t.add(e),()=>t.delete(e)}return{listeners:t,emit:n,hook:r}}var a4={auto:{summaryThresholdRatio:.5,windowRatio:.4,recallTopK:3,enableRecall:!0},conservative:{summaryThresholdRatio:.7,windowRatio:.5,recallTopK:2,enableRecall:!0,enableLLMSummary:!1},aggressive:{summaryThresholdRatio:.3,windowRatio:.3,recallTopK:5,enableRecall:!0,enableLLMSummary:!0},complex:{summaryThresholdRatio:.7,windowRatio:.6,recallTopK:5,enableRecall:!0,enableLLMSummary:!0}},Nue={auto:[`describe_data`,`read`],conservative:[`describe_data`],aggressive:[`describe_data`,`read`],complex:[`describe_data`,`read`,`query_data`,`search_data`]};function o4(e,t){let n=a4[e.contextPreset??`auto`]??{},r=e.contextOptions===!1?{}:e.contextOptions??{};return{...n,...r,contextWindow:r.contextWindow??t,enableLLMSummary:r.enableLLMSummary??n.enableLLMSummary??!0}}var Pue={dataHint:10,usageHints:20,todos:30,skills:40,vfs:50,summarization:60,memory:70,permissions:80,checkpoint:90,humanConfirm:100,approval:110,verify:120,subagent:130,subagents:140,augmentSystem:150};function Fue(e){return e.map((e,t)=>({m:e,i:t,p:Pue[e.name]??1/0})).sort((e,t)=>e.p-t.p||e.i-t.i).map(e=>e.m)}var s4=/[\w$-]/;function Iue(e){let t=[],n=e.trim(),r=+(n[0]===`$`);for(;r<n.length;){let e=n[r];if(e===`.`){if(n[r+1]===`.`){if(r+=2,n[r]===`*`){t.push({type:`descendAll`}),r++;continue}let e=``;for(;r<n.length&&s4.test(n[r]);)e+=n[r++];if(!e)throw Error(`JSONPath: .. 后缺属性名`);t.push({type:`descendKey`,key:e});continue}if(r++,n[r]===`*`){t.push({type:`wildcard`}),r++;continue}let e=``;for(;r<n.length&&s4.test(n[r]);)e+=n[r++];if(!e)throw Error(`JSONPath: . 后缺属性名`);t.push({type:`key`,key:e});continue}if(e===`[`){r++;let e=n[r];if(e===`*`){t.push({type:`wildcard`}),r+=2;continue}if(e===`?`&&n[r+1]===`(`){r+=2;let e=1,i=``;for(;r<n.length&&e>0;){if(n[r]===`(`)e++;else if(n[r]===`)`&&(e--,e===0))break;i+=n[r++]}if(e!==0)throw Error(`JSONPath: 过滤表达式括号不匹配`);if(r++,n[r]!==`]`)throw Error(`JSONPath: 过滤表达式后缺 ]`);r++,t.push({type:`filter`,filter:i});continue}if(e===`'`||e===`"`){let i=e;r++;let a=``;for(;r<n.length&&n[r]!==i;)a+=n[r++];if(r++,n[r]!==`]`)throw Error(`JSONPath: 字符串索引后缺 ]`);r++,t.push({type:`key`,key:a});continue}let i=``;for(;r<n.length&&/[\d-]/.test(n[r]);)i+=n[r++];if(n[r]!==`]`)throw Error(`JSONPath: 索引后缺 ]`);r++,t.push({type:`index`,index:parseInt(i,10)});continue}throw Error(`JSONPath: 语法错误,意外字符 '${e}' @${r}`)}return t}function Lue(e){let t=[],n=0,r=e.trim();for(;n<r.length;){let e=r[n];if(e===` `||e===` `||e===`
337
- `){n++;continue}if(e===`@`||e===`.`){let e=``;for(;n<r.length&&/[@.\w$-]/.test(r[n]);)e+=r[n++];t.push(e);continue}if(e===`'`||e===`"`){let i=e,a=e;for(n++;n<r.length&&r[n]!==i;)a+=r[n++];a+=r[n]||``,n++,t.push(a);continue}if(/[\d-]/.test(e)){let e=``;for(;n<r.length&&/[\d.eE+-]/.test(r[n]);)e+=r[n++];t.push(e);continue}let i=r.slice(n,n+2);if(i===`==`||i===`!=`||i===`<=`||i===`>=`||i===`&&`||i===`||`){t.push(i),n+=2;continue}if(e===`<`||e===`>`||e===`(`||e===`)`){t.push(e),n++;continue}if(/[a-zA-Z_$]/.test(e)){let e=``;for(;n<r.length&&/[\w$]/.test(r[n]);)e+=r[n++];t.push(e);continue}throw Error(`过滤表达式:意外字符 '${e}'`)}return t}var Rue=class{toks;item;pos=0;constructor(e,t){this.toks=e,this.item=t}parse(){let e=this.or();if(this.pos<this.toks.length)throw Error(`过滤表达式:尾部多余 token`);return e}peek(){return this.toks[this.pos]}next(){return this.toks[this.pos++]}or(){let e=this.and();for(;this.peek()===`||`;)this.next(),e=this.and()||e;return e}and(){let e=this.cmp();for(;this.peek()===`&&`;)this.next(),e=this.cmp()&&e;return e}cmp(){if(this.peek()===`(`){this.next();let e=this.or();if(this.peek()!==`)`)throw Error(`过滤表达式:缺 )`);return this.next(),e}let e=this.operand(),t=this.peek();return t===`==`||t===`!=`||t===`<`||t===`<=`||t===`>`||t===`>=`?(this.next(),Vue(t,e,this.operand())):zue(e)}operand(){let e=this.next();if(e===void 0)throw Error(`过滤表达式:缺操作数`);if(e.startsWith(`@`))return Bue(e,this.item);if(e[0]===`'`||e[0]===`"`)return e.slice(1,-1);if(e===`true`)return!0;if(e===`false`)return!1;if(e===`null`)return null;let t=Number(e);if(!Number.isNaN(t))return t;throw Error(`过滤表达式:未知操作数 '${e}'`)}};function zue(e){return!!e&&e!==0&&e!==``&&e!==null}function Bue(e,t){let n=e.split(`.`).filter(e=>e&&e!==`@`),r=t;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function Vue(e,t,n){switch(e){case`==`:return t===n;case`!=`:return t!==n;case`<`:return t<n;case`<=`:return t<=n;case`>`:return t>n;case`>=`:return t>=n;default:return!1}}function c4(e,t){return new Rue(Lue(e),t).parse()}function l4(e,t){return e?`${e}.${t}`:String(t)}function u4(e,t){let n=[{path:``,value:e}];for(let e of Iue(t)){let t=[];if(e.type===`key`)for(let r of n)r.value!=null&&typeof r.value==`object`&&e.key in r.value&&t.push({path:l4(r.path,e.key),value:r.value[e.key]});else if(e.type===`index`){for(let r of n)if(Array.isArray(r.value)){let n=r.value[e.index];e.index>=0&&e.index<r.value.length&&t.push({path:l4(r.path,e.index),value:n,index:e.index})}}else if(e.type===`wildcard`){for(let e of n)if(Array.isArray(e.value))e.value.forEach((n,r)=>t.push({path:l4(e.path,r),value:n,index:r}));else if(e.value!=null&&typeof e.value==`object`)for(let n of Object.keys(e.value))t.push({path:l4(e.path,n),value:e.value[n]})}else if(e.type===`descendKey`){let r=e.key,i=e=>{if(!(e.value==null||typeof e.value!=`object`))for(let n of Object.keys(e.value)){let a={path:l4(e.path,n),value:e.value[n]};n===r&&t.push(a),i(a)}};for(let e of n)i(e)}else if(e.type===`descendAll`){let e=n=>{if(!(n.value==null||typeof n.value!=`object`))for(let r of Object.keys(n.value)){let i={path:l4(n.path,r),value:n.value[r]};t.push(i),e(i)}};for(let t of n)e(t)}else if(e.type===`filter`){for(let r of n)if(Array.isArray(r.value))r.value.forEach((n,i)=>{c4(e.filter,n)&&t.push({path:l4(r.path,i),value:n,index:i})});else if(r.value!=null&&typeof r.value==`object`)for(let n of Object.keys(r.value)){let i=r.value[n];c4(e.filter,i)&&t.push({path:l4(r.path,n),value:i})}}n=t}return n}function Hue(e,t){let n=e.length,r=t.length;if(!n)return r;if(!r)return n;let i=Array(r+1);for(let e=0;e<=r;e++)i[e]=e;for(let a=1;a<=n;a++){let n=i[0];i[0]=a;for(let o=1;o<=r;o++){let r=i[o];i[o]=Math.min(i[o]+1,i[o-1]+1,n+(e[a-1]===t[o-1]?0:1)),n=r}}return i[r]}function d4(e,t,n={}){let r=n.mode||`substring`,i=n.limit??50,a=n.matchKey!==!1,o=[],s=null;if(r===`regex`)try{s=new RegExp(t,`i`)}catch(e){throw Error(`正则表达式无效: ${e.message}`)}let c=(e,l,u)=>{if(o.length>=i||e==null)return;if(typeof e==`object`){if(Array.isArray(e))e.forEach((e,t)=>c(e,l4(l,t),String(t)));else for(let t of Object.keys(e))c(e[t],l4(l,t),t);return}let d=String(e),f=f4(d,t,r,n.fuzzyThreshold??2,s);if(f){o.push({path:l,key:u,value:d.length>200?d.slice(0,200)+`…`:d,score:f});return}if(a&&u){let e=f4(u,t,r,n.fuzzyThreshold??2,s);e&&o.push({path:l,key:u,value:d.length>200?d.slice(0,200)+`…`:d,score:e})}};return c(e,``),o}function f4(e,t,n,r,i){let a=e.toLowerCase(),o=t.toLowerCase();if(n===`substring`)return a.includes(o)?1:null;if(n===`regex`)return i&&i.test(e)?1:null;if(n===`fuzzy`){if(a.includes(o))return 2;let e=Hue(a,o);return e<=r?r-e+1:null}return null}function p4(e,t,n=3e3){return IK(t,n)(e)}var m4=`⟦frozen:`,h4=`⟦res:`,g4=`⟧`;function _4(e){return`${m4}${e}${g4}`}function v4(e){return`${h4}${e}${g4}`}function Uue(e){return typeof e==`string`?e.startsWith(m4)&&e.endsWith(g4)?{type:`frozen`,path:e.slice(8,e.length-1)}:e.startsWith(h4)&&e.endsWith(g4)?{type:`res`,handle:e.slice(5,e.length-1)}:null:null}function y4(e){return String(e??``).trim().replace(/^\.+/,``)}function b4(e){let t=5381;for(let n=0;n<e.length;n++)t=(t*33^e.charCodeAt(n))>>>0;return(t>>>0).toString(16).padStart(8,`0`).slice(0,8)}function x4(e,t){return e===t?!0:e&&t&&typeof e==`object`&&typeof t==`object`?JSON.stringify(e)===JSON.stringify(t):!1}function S4(e,t){let n=y4(e);if(!n)return;let r=t.get(n);if(r)return{spec:r,relation:`exact`,protectedPath:n};let i;for(let[e,r]of t)n!==e&&(n.startsWith(e+`.`)?(!i||e.length>i.protectedPath.length)&&(i={spec:r,protectedPath:e,relation:`descendant`}):e.startsWith(n+`.`)&&(!i||e.length<i.protectedPath.length)&&(i={spec:r,protectedPath:e,relation:`ancestor`}));return i}var Wue=class{vfs;constructor(e){this.vfs=e}key(e){return`resources/${e}.json`}ensure(e,t,n){let r=b4(e),i={path:e,mode:n,value:t,handle:r};return this.vfs.files[this.key(r)]={content:JSON.stringify(i),updatedAt:Date.now()},r}get(e){return this.readEntry(this.key(e))||this.readEntry(this.key(b4(e)))}readEntry(e){let t=this.vfs.files[e];if(t)try{let e=JSON.parse(t.content);return e&&typeof e.path==`string`?e:void 0}catch{return}}update(e,t){let n=this.get(e);this.ensure(e,t,n?.mode??`verbatim`)}delete(e){let t=this.get(e)?.handle??b4(e),n=this.key(t),r=!!this.vfs.files[n];return r&&delete this.vfs.files[n],r}list(){let e=[];for(let[t,n]of Object.entries(this.vfs.files))if(t.startsWith(`resources/`))try{let t=JSON.parse(n.content);t&&typeof t.path==`string`&&e.push({path:t.path,mode:t.mode,handle:t.handle,bytes:n.content.length})}catch{}return e}clear(){for(let e of Object.keys(this.vfs.files))e.startsWith(`resources/`)&&delete this.vfs.files[e]}};function C4(e){let{jp:t,resolved:n,resourcesByPath:r,resourceStore:i}=e;if(!r.size)return n;let a=!1;for(let e of r.keys())if(t===``||e===t||e.startsWith(t+`.`)){a=!0;break}if(!a)return n;let o=lK(n);for(let[e,n]of r){if(t!==``&&e!==t&&!e.startsWith(t+`.`))continue;if(e===t){if(o===void 0)continue;return n.mode===`freeze`?_4(e):i?v4(i.ensure(e,o,`verbatim`)):o}let r=t===``?e:e.slice(t.length+1),a=oK(o,r);a!==void 0&&(n.mode===`freeze`?sK(o,r,_4(e)):i&&sK(o,r,v4(i.ensure(e,a,`verbatim`))))}return o}function Gue(e,t,n,r){if(!r)return{code:`RESOURCE_NOT_FOUND`,message:`句柄 "${e}" 无法展开(资源池未启用)`,hint:`verbatim 保护需启用 vfs(capabilities.vfs 默认开);集成方经 createChatSdk 配 data.resources 时自动提供 vfsStore`};let i=r.get(e);return i?n===void 0?{code:`RESOURCE_NOT_FOUND`,message:`字段 "${t}" 在 bind 中已不存在,无法展开句柄 "${e}"`,hint:`该字段可能已被删除或 restore 到不含此字段的快照;重新 read 确认当前结构`}:x4(i.value,n)?{value:i.value}:(r.update(t,n),{value:n}):n===void 0?{code:`RESOURCE_NOT_FOUND`,message:`句柄 "${e}" 不存在(字段 "${t}" 可能未注册或已被删除)`,hint:`重新 read 该字段触发懒注册`}:{code:`RESOURCE_EVICTED`,message:`字段 "${t}" 的 verbatim 资源已被淘汰(资源池 LRU)`,hint:`重新 read 该字段触发懒注册重建句柄,再写回新句柄 ⟦res:<handle>⟧`}}function w4(e,t){let n=t.getBind();for(let[r,i]of t.resourcesByPath){let a=oK(n,r),o=oK(e,r);if(o===void 0){a!==void 0&&sK(e,r,a);continue}if(i.mode===`freeze`){if(o===_4(r)){sK(e,r,a);continue}if(!x4(o,a))return{ok:!1,code:`FROZEN_FIELD`,path:r,message:`字段 "${r}" 已冻结(freeze 保护),不可修改`,hint:`该字段由系统/集成方维护,LLM 不得改动。如需展示其值用 resource_get({path}) 取真值`}}else{let n=Uue(o);if(n&&n.type===`res`){let i=Gue(n.handle,r,a,t.resourceStore);if(`value`in i){sK(e,r,i.value);continue}return{ok:!1,code:i.code,path:r,message:i.message,hint:i.hint}}if(!x4(o,a))return{ok:!1,code:`VERBATIM_MISMATCH`,path:r,message:`字段 "${r}" 为 verbatim 保护(精确原样保留),写入值与原值不符`,hint:`要改该值请先 resource_update({path, value}) 更新资源池,再写回句柄 ⟦res:<handle>⟧;或写回原值(经 resource_get 取到的值)保持不变`}}}return{ok:!0}}function T4(e,t,n){let r=t===void 0?e.message:`patches[${t}]${n?` @ "${n}"`:``}: ${e.message}`;return HU({code:e.code,path:e.path,message:r,hint:e.hint,...t===void 0?{}:{details:{patchIndex:t,patchJsonPath:n??null}}})}function E4(e){let{value:t,ctx:n}=e;if(!n||!n.resourcesByPath.size)return{ok:!0,value:t};let r=lK(t),i=w4(r,n);return i.ok?{ok:!0,value:r}:{ok:!1,error:T4(i)}}function Kue(e){let{patches:t,clone:n,ctx:r}=e;if(!r||!r.resourcesByPath.size)return{ok:!0};for(let e=0;e<t.length;e++){let n=t[e];if(n.op===`remove`){let t=S4(n.jsonPath||``,r.resourcesByPath);if(t){let r=t.spec.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,i=t.spec.mode===`freeze`?`冻结字段不可删。如需移除请联系集成方调整 data.resources 配置`:`verbatim 字段不可直接删;先 resource_delete({path}) 释放资源保护后再删`;return{ok:!1,error:HU({code:r,path:t.protectedPath,message:`patches[${e}] @ "${n.jsonPath}" 命中受保护字段 "${t.protectedPath}"(${t.spec.mode}),不可删除`,hint:i,details:{patchIndex:e,patchJsonPath:n.jsonPath??``}})}}}}let i=w4(n,r);if(!i.ok){let e=que(i.path,t);return{ok:!1,error:T4(i,e>=0?e:void 0,e>=0?t[e].jsonPath:void 0)}}return{ok:!0}}function que(e,t){let n=y4(e);for(let e=0;e<t.length;e++){let r=y4(t[e].jsonPath||``);if(r&&(r===n||n.startsWith(r+`.`)||r.startsWith(n+`.`)))return e}return-1}hm();function D4(e){let{bindRef:t,schema:n,allowKeys:r,snapshots:i,maxSnapshots:a,audit:o,dryRun:s,op:c=`set`,protectedCtx:l}=e,u=e.value,d=e.internalAfterWrite?lK(t):null;if(l){let e=E4({value:u,ctx:l});if(!e.ok)return{ok:!1,error:e.error};u=e.value}let f=n.safeParse(u);if(!f.success)return{ok:!1,error:WU(``,f.error.issues)};let p=CK(t,u,f.data);if(p.length)return{ok:!1,error:HU({code:`SCHEMA_STRIP`,message:`字段 ${p.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:p[0],details:{stripped:p}})};if(s)return{ok:!0,hash:``,data:f.data};if(typeof t!=`object`||!t)return{ok:!1,error:HU({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${t===null?`null`:typeof t}),无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹(如 {value:"x"})或集成方通过 sdk.setData 替换 bind`})};let m=lK(t),h=i.length?i[i.length-1].id+1:1;for(i.push({id:h,ts:Date.now(),op:c,value:m});i.length>a;)i.shift();return f.data!==null&&typeof f.data==`object`&&(r?aK(t,f.data):SK(t,f.data)),o({op:c,value:f.data,timestamp:Date.now()}),e.onWrite?.(),e.internalAfterWrite?.(t,d),{ok:!0,hash:e.hashFn?e.hashFn():hK(t),data:f.data}}function O4(e){let{bindRef:t,patches:n,schema:r,allowKeys:i,snapshots:a,maxSnapshots:o,markDataDirty:s,schemaErrorMode:c=`zod`,snapshotLabel:l,dryRun:u,protectedCtx:d}=e,f=e.internalAfterWrite?lK(t):null,p=lK(t),m=[];for(let e=0;e<n.length;e++){let t=n[e],a=t.jsonPath||``;if(iK(a))return{ok:!1,error:HU({code:`PATH_UNSAFE`,message:`patches[${e}] jsonPath "${a}" 含非法段`,hint:`使用正常属性路径,如 components.0.text`})};if(!_G(a,r,i))return{ok:!1,error:HU({code:`PATH_DENIED`,message:`patches[${e}] @ "${a}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可写`})};let o=t.op??`set`,s;if(o!==`remove`){if(t.value===void 0||t.value===``)return{ok:!1,error:HU({code:`MISSING_VALUE`,message:`patches[${e}] ${o} 操作需要 value`,hint:`op 为 ${o} 时 value 必填;删除请用 op:'remove'`})};let n=uK(t.value);if(n.parseError)return{ok:!1,error:GU(`patches[${e}]`,t.value,n.parseError)};if(s=n.parsed,o===`move`&&typeof s==`string`&&!_G(s,r,i))return{ok:!1,error:HU({code:`PATH_DENIED`,message:`patches[${e}] move 目标 "${s}" 不在 schema 声明字段内`,hint:`move 的 value(目标路径)也须在 schema 声明字段内`})}}let c=_K(p,o,a,s);if(c)return{ok:!1,error:HU({code:`PATCH_FAILED`,message:`patches[${e}]: ${c}`,hint:`检查 op 与目标类型:merge 需对象,append 需数组`})};m.push({op:o,jp:a,value:s})}if(d){let e=Kue({patches:n,clone:p,ctx:d});if(!e.ok)return{ok:!1,error:e.error}}let h=r.safeParse(p);if(!h.success)return{ok:!1,error:c===`schema_invalid`?HU({code:`SCHEMA_INVALID`,message:`patches 应用后整体校验失败,未写入`,hint:`确认 patches 合并后整体仍符合 schema`,details:UU(h.error.issues)}):WU(``,h.error.issues)};let g=CK(t,p,h.data);if(g.length)return{ok:!1,error:HU({code:`SCHEMA_STRIP`,message:`字段 ${g.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:g[0],details:{stripped:g}})};if(u)return{ok:!0,applied:m,clone:p};let _=a.length?a[a.length-1].id+1:1;for(a.push({id:_,ts:Date.now(),op:`edit`,value:f??lK(t),...l?{label:l}:{}});a.length>o;)a.shift();for(let e of m)e.op===`remove`&&cK(t,e.jp);return h.data!==null&&typeof h.data==`object`&&(i?aK(t,h.data):SK(t,h.data)),e.internalAfterWrite?.(t,f),s?.(),{ok:!0,applied:m,clone:p}}function Jue(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function k4(e,t,n,r){if(!t||!n.length||typeof e!=`object`||!e)return e;let i=new Set(n.map(e=>e.field)),a=lK(e);return(function e(t){if(Array.isArray(t))for(let n of t)e(n);else if(t&&typeof t==`object`)for(let n of Object.keys(t)){let a=t[n];typeof a==`string`&&i.has(n)&&a.length>=r?t[n]=`<${n} ${Jue(a.length)}>`:e(a)}})(a),a}var A4=0;function Yue(){return A4++,`c_`+Math.random().toString(36).slice(2,8)+A4.toString(36)}function Xue(e,t){if(!(!e||typeof e!=`object`))for(let n of t){let t=oK(e,n);if(Array.isArray(t))for(let e of t)e&&typeof e==`object`&&!(`__pgId`in e)&&(e.__pgId=Yue())}}function j4(e){(function e(t){if(Array.isArray(t))t.forEach(e);else if(t&&typeof t==`object`)for(let n of Object.keys(t))n.startsWith(`__pg`)?delete t[n]:e(t[n])})(e)}function M4(e,t={}){let n=t.pgIdPaths??[],r=n.length?(e,t)=>{if(t&&typeof t==`object`)for(let r of n){let n=oK(t,r),i=oK(e,r);if(!Array.isArray(n)||!Array.isArray(i))continue;let a=e=>{if(!e||typeof e!=`object`)return e;let t={...e};return delete t.__pgId,t},o=new Set;for(let e=0;e<i.length;e++){let t=i[e];if(!(!t||typeof t!=`object`||`__pgId`in t))for(let e=0;e<n.length;e++){if(o.has(e))continue;let r=n[e];if(!(!r||typeof r!=`object`||!r.__pgId)&&x4(a(r),a(t))){t.__pgId=r.__pgId,o.add(e);break}}}for(let e=0;e<n.length&&e<i.length;e++){if(o.has(e))continue;let t=n[e]?.__pgId,r=i[e];t&&r&&typeof r==`object`&&!(`__pgId`in r)&&(r.__pgId=t,o.add(e))}}Xue(e,n)}:void 0,i=n.length?LG(e.schema,n).schema:e.schema,a=e.bind,o=e.description??`主数据对象`,s=gG(i),c=new Map,l=t.vfsStore?new Wue(t.vfsStore):void 0;function u(e){if(c.clear(),e)for(let t of e){let e=y4(t.path);c.set(e,{path:e,mode:t.mode})}}u(e.resources);let d=c.size?{resourcesByPath:c,resourceStore:l,getBind:()=>a}:void 0,f=[],p=t.maxSnapshots??20,m=new Map,h=``,g=e=>e?.configurable?.__pgDataScope??h,_=e=>m.get(e??h),v=(e,t)=>{let n=t??h;e===void 0?m.delete(n):m.set(n,e)},y=t.conflictWatchFields??[],b=!y.includes(`*`)&&y.length?new Set(y):void 0,x=y.length>0,S=()=>b?gK(a,b):hK(a),C=e=>{let t=S();return v(t,e),t},w=t.largeTextThreshold??200,T=(t.largeTextPaths??[]).map(e=>{let t=e.lastIndexOf(`.`);return t>0?{arrayPath:e.slice(0,t),field:e.slice(t+1)}:null}).filter(e=>e!==null),E=!0;function D(){E=!0}let ee={get:()=>({schema:i,bind:a,description:o}),set:e=>{i=n.length?LG(e.schema,n).schema:e.schema,a=e.bind,o=e.description??`主数据对象`,s=gG(i),f.length=0,m.clear(),u(e.resources),l?.clear(),D()},update:e=>{a=e,f.length=0,m.clear(),D()},markDataDirty:D,consumeDataDirty:()=>{let e=E;return E=!1,e},enterScope:e=>{let t=h;return h=e,()=>{h=t}},exitScope:e=>{m.delete(e)},recomputeBaseline:e=>{m.set(e??``,S())},recomputeAllBaselines:()=>{let e=S();for(let t of m.keys())m.set(t,e)},hasBaselines:()=>m.size>0,getResourcesSnapshot:()=>{let e=[];for(let[t,n]of c)if(n.mode===`verbatim`){let r=l?.get(t);e.push(r?.handle?{path:t,mode:n.mode,handle:r.handle}:{path:t,mode:n.mode})}else e.push({path:t,mode:n.mode});return e},createResource:l?(e,t)=>{let n=y4(e),r=c.get(n),i=t===void 0?oK(a,n):t;return l.ensure(n,i,r?.mode??`verbatim`)}:void 0,getResource:l?e=>{let t=l.get(e);return t?{path:t.path,mode:t.mode,value:t.value,handle:t.handle}:void 0}:void 0,updateResource:l?(e,t)=>{let n=y4(e);l.update(n,t),sK(a,n,t),D()}:void 0,deleteResource:l?e=>l.delete(e):void 0,listResources:l?()=>l.list():void 0},te=e=>{t.onAudit?.(e)};function O(e,t){let n=lK(a),r=f.length?f[f.length-1].id+1:1;for(f.push({id:r,ts:Date.now(),op:e,label:t,value:n});f.length>p;)f.shift();return r}async function ne(e,n,r){if(!n||n===``)return null;let i=S();if(i===n)return null;if(!t.onConflict)return HU({code:`VERSION_CONFLICT`,message:`乐观锁冲突:expectedHash=${n} 但当前 hash=${i}。主数据在你 read 之后已被修改(外部代码/其他 agent/用户手动改)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入。当前值:${pK(a,400)}`});let o=await t.onConflict({op:e,agentValue:r,currentValue:a,currentHash:i,expectedHash:n,snapshotId:0});if(o.action===`keep_external`)return`已保留外部修改(未写入)。当前值:${pK(a,400)} (hash=${i})。请重新 read 拿最新值与 hash 再改。`;if(o.action===`restore`){if(!f.length)return`无历史快照可回退(本次为首次操作)。当前值:${pK(a,400)} (hash=${i})。请重新 read 再改或选「强制覆盖」。`;let e=f[f.length-1];return xK(a,lK(e.value)),D(),`已回退主数据到历史快照 #${e.id}[${e.op}]。当前值:${pK(a,400)} (hash=${S()})。请基于回退后的值重写或停止。`}return null}let k=(e,t=!0)=>{e.writeCapable=t},re=wL(async()=>[`说明: ${o}`,`格式: 写入值需为 JSON,且通过声明的 schema 校验(校验失败时 set_data/edit_data 会返回结构化错误,含具体字段与期望类型)。`].join(`
337
+ `){n++;continue}if(e===`@`||e===`.`){let e=``;for(;n<r.length&&/[@.\w$-]/.test(r[n]);)e+=r[n++];t.push(e);continue}if(e===`'`||e===`"`){let i=e,a=e;for(n++;n<r.length&&r[n]!==i;)a+=r[n++];a+=r[n]||``,n++,t.push(a);continue}if(/[\d-]/.test(e)){let e=``;for(;n<r.length&&/[\d.eE+-]/.test(r[n]);)e+=r[n++];t.push(e);continue}let i=r.slice(n,n+2);if(i===`==`||i===`!=`||i===`<=`||i===`>=`||i===`&&`||i===`||`){t.push(i),n+=2;continue}if(e===`<`||e===`>`||e===`(`||e===`)`){t.push(e),n++;continue}if(/[a-zA-Z_$]/.test(e)){let e=``;for(;n<r.length&&/[\w$]/.test(r[n]);)e+=r[n++];t.push(e);continue}throw Error(`过滤表达式:意外字符 '${e}'`)}return t}var Rue=class{toks;item;pos=0;constructor(e,t){this.toks=e,this.item=t}parse(){let e=this.or();if(this.pos<this.toks.length)throw Error(`过滤表达式:尾部多余 token`);return e}peek(){return this.toks[this.pos]}next(){return this.toks[this.pos++]}or(){let e=this.and();for(;this.peek()===`||`;)this.next(),e=this.and()||e;return e}and(){let e=this.cmp();for(;this.peek()===`&&`;)this.next(),e=this.cmp()&&e;return e}cmp(){if(this.peek()===`(`){this.next();let e=this.or();if(this.peek()!==`)`)throw Error(`过滤表达式:缺 )`);return this.next(),e}let e=this.operand(),t=this.peek();return t===`==`||t===`!=`||t===`<`||t===`<=`||t===`>`||t===`>=`?(this.next(),Vue(t,e,this.operand())):zue(e)}operand(){let e=this.next();if(e===void 0)throw Error(`过滤表达式:缺操作数`);if(e.startsWith(`@`))return Bue(e,this.item);if(e[0]===`'`||e[0]===`"`)return e.slice(1,-1);if(e===`true`)return!0;if(e===`false`)return!1;if(e===`null`)return null;let t=Number(e);if(!Number.isNaN(t))return t;throw Error(`过滤表达式:未知操作数 '${e}'`)}};function zue(e){return!!e&&e!==0&&e!==``&&e!==null}function Bue(e,t){let n=e.split(`.`).filter(e=>e&&e!==`@`),r=t;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function Vue(e,t,n){switch(e){case`==`:return t===n;case`!=`:return t!==n;case`<`:return t<n;case`<=`:return t<=n;case`>`:return t>n;case`>=`:return t>=n;default:return!1}}function c4(e,t){return new Rue(Lue(e),t).parse()}function l4(e,t){return e?`${e}.${t}`:String(t)}function u4(e,t){let n=[{path:``,value:e}];for(let e of Iue(t)){let t=[];if(e.type===`key`)for(let r of n)r.value!=null&&typeof r.value==`object`&&e.key in r.value&&t.push({path:l4(r.path,e.key),value:r.value[e.key]});else if(e.type===`index`){for(let r of n)if(Array.isArray(r.value)){let n=r.value[e.index];e.index>=0&&e.index<r.value.length&&t.push({path:l4(r.path,e.index),value:n,index:e.index})}}else if(e.type===`wildcard`){for(let e of n)if(Array.isArray(e.value))e.value.forEach((n,r)=>t.push({path:l4(e.path,r),value:n,index:r}));else if(e.value!=null&&typeof e.value==`object`)for(let n of Object.keys(e.value))t.push({path:l4(e.path,n),value:e.value[n]})}else if(e.type===`descendKey`){let r=e.key,i=e=>{if(!(e.value==null||typeof e.value!=`object`))for(let n of Object.keys(e.value)){let a={path:l4(e.path,n),value:e.value[n]};n===r&&t.push(a),i(a)}};for(let e of n)i(e)}else if(e.type===`descendAll`){let e=n=>{if(!(n.value==null||typeof n.value!=`object`))for(let r of Object.keys(n.value)){let i={path:l4(n.path,r),value:n.value[r]};t.push(i),e(i)}};for(let t of n)e(t)}else if(e.type===`filter`){for(let r of n)if(Array.isArray(r.value))r.value.forEach((n,i)=>{c4(e.filter,n)&&t.push({path:l4(r.path,i),value:n,index:i})});else if(r.value!=null&&typeof r.value==`object`)for(let n of Object.keys(r.value)){let i=r.value[n];c4(e.filter,i)&&t.push({path:l4(r.path,n),value:i})}}n=t}return n}function Hue(e,t){let n=e.length,r=t.length;if(!n)return r;if(!r)return n;let i=Array(r+1);for(let e=0;e<=r;e++)i[e]=e;for(let a=1;a<=n;a++){let n=i[0];i[0]=a;for(let o=1;o<=r;o++){let r=i[o];i[o]=Math.min(i[o]+1,i[o-1]+1,n+(e[a-1]===t[o-1]?0:1)),n=r}}return i[r]}function d4(e,t,n={}){let r=n.mode||`substring`,i=n.limit??50,a=n.matchKey!==!1,o=[],s=null;if(r===`regex`)try{s=new RegExp(t,`i`)}catch(e){throw Error(`正则表达式无效: ${e.message}`)}let c=(e,l,u)=>{if(o.length>=i||e==null)return;if(typeof e==`object`){if(Array.isArray(e))e.forEach((e,t)=>c(e,l4(l,t),String(t)));else for(let t of Object.keys(e))c(e[t],l4(l,t),t);return}let d=String(e),f=f4(d,t,r,n.fuzzyThreshold??2,s);if(f){o.push({path:l,key:u,value:d.length>200?d.slice(0,200)+`…`:d,score:f});return}if(a&&u){let e=f4(u,t,r,n.fuzzyThreshold??2,s);e&&o.push({path:l,key:u,value:d.length>200?d.slice(0,200)+`…`:d,score:e})}};return c(e,``),o}function f4(e,t,n,r,i){let a=e.toLowerCase(),o=t.toLowerCase();if(n===`substring`)return a.includes(o)?1:null;if(n===`regex`)return i&&i.test(e)?1:null;if(n===`fuzzy`){if(a.includes(o))return 2;let e=Hue(a,o);return e<=r?r-e+1:null}return null}function p4(e,t,n=3e3){return IK(t,n)(e)}var m4=`⟦frozen:`,h4=`⟦res:`,g4=`⟧`;function _4(e){return`${m4}${e}${g4}`}function v4(e){return`${h4}${e}${g4}`}function Uue(e){return typeof e==`string`?e.startsWith(m4)&&e.endsWith(g4)?{type:`frozen`,path:e.slice(8,e.length-1)}:e.startsWith(h4)&&e.endsWith(g4)?{type:`res`,handle:e.slice(5,e.length-1)}:null:null}function y4(e){return String(e??``).trim().replace(/^\.+/,``)}function b4(e){let t=5381;for(let n=0;n<e.length;n++)t=(t*33^e.charCodeAt(n))>>>0;return(t>>>0).toString(16).padStart(8,`0`).slice(0,8)}function x4(e,t){return e===t?!0:e&&t&&typeof e==`object`&&typeof t==`object`?JSON.stringify(e)===JSON.stringify(t):!1}function S4(e,t){let n=y4(e);if(!n)return;let r=t.get(n);if(r)return{spec:r,relation:`exact`,protectedPath:n};let i;for(let[e,r]of t)n!==e&&(n.startsWith(e+`.`)?(!i||e.length>i.protectedPath.length)&&(i={spec:r,protectedPath:e,relation:`descendant`}):e.startsWith(n+`.`)&&(!i||e.length<i.protectedPath.length)&&(i={spec:r,protectedPath:e,relation:`ancestor`}));return i}var Wue=class{vfs;constructor(e){this.vfs=e}key(e){return`resources/${e}.json`}ensure(e,t,n){let r=b4(e),i={path:e,mode:n,value:t,handle:r};return this.vfs.files[this.key(r)]={content:JSON.stringify(i),updatedAt:Date.now()},r}get(e){return this.readEntry(this.key(e))||this.readEntry(this.key(b4(e)))}readEntry(e){let t=this.vfs.files[e];if(t)try{let e=JSON.parse(t.content);return e&&typeof e.path==`string`?e:void 0}catch{return}}update(e,t){let n=this.get(e);this.ensure(e,t,n?.mode??`verbatim`)}delete(e){let t=this.get(e)?.handle??b4(e),n=this.key(t),r=!!this.vfs.files[n];return r&&delete this.vfs.files[n],r}list(){let e=[];for(let[t,n]of Object.entries(this.vfs.files))if(t.startsWith(`resources/`))try{let t=JSON.parse(n.content);t&&typeof t.path==`string`&&e.push({path:t.path,mode:t.mode,handle:t.handle,bytes:n.content.length})}catch{}return e}clear(){for(let e of Object.keys(this.vfs.files))e.startsWith(`resources/`)&&delete this.vfs.files[e]}};function C4(e){let{jp:t,resolved:n,resourcesByPath:r,resourceStore:i}=e;if(!r.size)return n;let a=!1;for(let e of r.keys())if(t===``||e===t||e.startsWith(t+`.`)){a=!0;break}if(!a)return n;let o=lK(n);for(let[e,n]of r){if(t!==``&&e!==t&&!e.startsWith(t+`.`))continue;if(e===t){if(o===void 0)continue;return n.mode===`freeze`?_4(e):i?v4(i.ensure(e,o,`verbatim`)):o}let r=t===``?e:e.slice(t.length+1),a=oK(o,r);a!==void 0&&(n.mode===`freeze`?sK(o,r,_4(e)):i&&sK(o,r,v4(i.ensure(e,a,`verbatim`))))}return o}function Gue(e,t,n,r){if(!r)return{code:`RESOURCE_NOT_FOUND`,message:`句柄 "${e}" 无法展开(资源池未启用)`,hint:`verbatim 保护需启用 vfs(capabilities.vfs 默认开);集成方经 createChatSdk 配 data.resources 时自动提供 vfsStore`};let i=r.get(e);return i?n===void 0?{code:`RESOURCE_NOT_FOUND`,message:`字段 "${t}" 在 bind 中已不存在,无法展开句柄 "${e}"`,hint:`该字段可能已被删除或 restore 到不含此字段的快照;重新 read 确认当前结构`}:x4(i.value,n)?{value:i.value}:(r.update(t,n),{value:n}):n===void 0?{code:`RESOURCE_NOT_FOUND`,message:`句柄 "${e}" 不存在(字段 "${t}" 可能未注册或已被删除)`,hint:`重新 read 该字段触发懒注册`}:{code:`RESOURCE_EVICTED`,message:`字段 "${t}" 的 verbatim 资源已被淘汰(资源池 LRU)`,hint:`重新 read 该字段触发懒注册重建句柄,再写回新句柄 ⟦res:<handle>⟧`}}function w4(e,t){let n=t.getBind();for(let[r,i]of t.resourcesByPath){let a=oK(n,r),o=oK(e,r);if(o===void 0){a!==void 0&&sK(e,r,a);continue}if(i.mode===`freeze`){if(o===_4(r)){sK(e,r,a);continue}if(!x4(o,a))return{ok:!1,code:`FROZEN_FIELD`,path:r,message:`字段 "${r}" 已冻结(freeze 保护),不可修改`,hint:`该字段由系统/集成方维护,LLM 不得改动。如需展示其值用 resource_get({path}) 取真值`}}else{let n=Uue(o);if(n&&n.type===`res`){let i=Gue(n.handle,r,a,t.resourceStore);if(`value`in i){sK(e,r,i.value);continue}return{ok:!1,code:i.code,path:r,message:i.message,hint:i.hint}}if(!x4(o,a))return{ok:!1,code:`VERBATIM_MISMATCH`,path:r,message:`字段 "${r}" 为 verbatim 保护(精确原样保留),写入值与原值不符`,hint:`要改该值请先 resource_update({path, value}) 更新资源池,再写回句柄 ⟦res:<handle>⟧;或写回原值(经 resource_get 取到的值)保持不变`}}}return{ok:!0}}function T4(e,t,n){let r=t===void 0?e.message:`patches[${t}]${n?` @ "${n}"`:``}: ${e.message}`;return HU({code:e.code,path:e.path,message:r,hint:e.hint,...t===void 0?{}:{details:{patchIndex:t,patchJsonPath:n??null}}})}function E4(e){let{value:t,ctx:n}=e;if(!n||!n.resourcesByPath.size)return{ok:!0,value:t};let r=lK(t),i=w4(r,n);return i.ok?{ok:!0,value:r}:{ok:!1,error:T4(i)}}function Kue(e){let{patches:t,clone:n,ctx:r}=e;if(!r||!r.resourcesByPath.size)return{ok:!0};for(let e=0;e<t.length;e++){let n=t[e];if(n.op===`remove`){let t=S4(n.jsonPath||``,r.resourcesByPath);if(t){let r=t.spec.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,i=t.spec.mode===`freeze`?`冻结字段不可删。如需移除请联系集成方调整 data.resources 配置`:`verbatim 字段不可直接删;先 resource_delete({path}) 释放资源保护后再删`;return{ok:!1,error:HU({code:r,path:t.protectedPath,message:`patches[${e}] @ "${n.jsonPath}" 命中受保护字段 "${t.protectedPath}"(${t.spec.mode}),不可删除`,hint:i,details:{patchIndex:e,patchJsonPath:n.jsonPath??``}})}}}}let i=w4(n,r);if(!i.ok){let e=que(i.path,t);return{ok:!1,error:T4(i,e>=0?e:void 0,e>=0?t[e].jsonPath:void 0)}}return{ok:!0}}function que(e,t){let n=y4(e);for(let e=0;e<t.length;e++){let r=y4(t[e].jsonPath||``);if(r&&(r===n||n.startsWith(r+`.`)||r.startsWith(n+`.`)))return e}return-1}hm();function D4(e){let{bindRef:t,schema:n,allowKeys:r,snapshots:i,maxSnapshots:a,audit:o,dryRun:s,op:c=`set`,protectedCtx:l}=e,u=e.value,d=e.internalAfterWrite?lK(t):null;if(l){let e=E4({value:u,ctx:l});if(!e.ok)return{ok:!1,error:e.error};u=e.value}let f=n.safeParse(u);if(!f.success)return{ok:!1,error:WU(``,f.error.issues)};let p=CK(t,u,f.data);if(p.length)return{ok:!1,error:HU({code:`SCHEMA_STRIP`,message:`字段 ${p.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:p[0],details:{stripped:p}})};if(s)return{ok:!0,hash:``,data:f.data};if(typeof t!=`object`||!t)return{ok:!1,error:HU({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${t===null?`null`:typeof t}),无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹(如 {value:"x"})或集成方通过 sdk.setData 替换 bind`})};let m=lK(t),h=i.length?i[i.length-1].id+1:1;for(i.push({id:h,ts:Date.now(),op:c,value:m});i.length>a;)i.shift();return f.data!==null&&typeof f.data==`object`&&(r?aK(t,f.data):SK(t,f.data)),o({op:c,value:f.data,timestamp:Date.now()}),e.onWrite?.(),e.internalAfterWrite?.(t,d),{ok:!0,hash:e.hashFn?e.hashFn():hK(t),data:f.data}}function O4(e){let{bindRef:t,patches:n,schema:r,allowKeys:i,snapshots:a,maxSnapshots:o,markDataDirty:s,schemaErrorMode:c=`zod`,snapshotLabel:l,dryRun:u,protectedCtx:d}=e,f=e.internalAfterWrite?lK(t):null,p=lK(t),m=[];for(let e=0;e<n.length;e++){let t=n[e],a=t.jsonPath||``;if(iK(a))return{ok:!1,error:HU({code:`PATH_UNSAFE`,message:`patches[${e}] jsonPath "${a}" 含非法段`,hint:`使用正常属性路径,如 components.0.text`})};if(!_G(a,r,i))return{ok:!1,error:HU({code:`PATH_DENIED`,message:`patches[${e}] @ "${a}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可写`})};let o=t.op??`set`,s;if(o!==`remove`){if(t.value===void 0||t.value===``&&o===`move`)return{ok:!1,error:HU({code:`MISSING_VALUE`,message:`patches[${e}] ${o} 操作需要 value`,hint:`op 为 ${o} 时 value 必填;删除请用 op:'remove'`})};let n=uK(t.value);if(n.parseError)return{ok:!1,error:GU(`patches[${e}]`,t.value,n.parseError)};if(s=n.parsed,o===`move`&&typeof s==`string`&&!_G(s,r,i))return{ok:!1,error:HU({code:`PATH_DENIED`,message:`patches[${e}] move 目标 "${s}" 不在 schema 声明字段内`,hint:`move 的 value(目标路径)也须在 schema 声明字段内`})}}let c=_K(p,o,a,s);if(c)return{ok:!1,error:HU({code:`PATCH_FAILED`,message:`patches[${e}]: ${c}`,hint:`检查 op 与目标类型:merge 需对象,append 需数组`})};m.push({op:o,jp:a,value:s})}if(d){let e=Kue({patches:n,clone:p,ctx:d});if(!e.ok)return{ok:!1,error:e.error}}let h=r.safeParse(p);if(!h.success)return{ok:!1,error:c===`schema_invalid`?HU({code:`SCHEMA_INVALID`,message:`patches 应用后整体校验失败,未写入`,hint:`确认 patches 合并后整体仍符合 schema`,details:UU(h.error.issues)}):WU(``,h.error.issues)};let g=CK(t,p,h.data);if(g.length)return{ok:!1,error:HU({code:`SCHEMA_STRIP`,message:`字段 ${g.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:g[0],details:{stripped:g}})};if(u)return{ok:!0,applied:m,clone:p};let _=a.length?a[a.length-1].id+1:1;for(a.push({id:_,ts:Date.now(),op:`edit`,value:f??lK(t),...l?{label:l}:{}});a.length>o;)a.shift();for(let e of m)e.op===`remove`&&cK(t,e.jp);return h.data!==null&&typeof h.data==`object`&&(i?aK(t,h.data):SK(t,h.data)),e.internalAfterWrite?.(t,f),s?.(),{ok:!0,applied:m,clone:p}}function Jue(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function k4(e,t,n,r){if(!t||!n.length||typeof e!=`object`||!e)return e;let i=new Set(n.map(e=>e.field)),a=lK(e);return(function e(t){if(Array.isArray(t))for(let n of t)e(n);else if(t&&typeof t==`object`)for(let n of Object.keys(t)){let a=t[n];typeof a==`string`&&i.has(n)&&a.length>=r?t[n]=`<${n} ${Jue(a.length)}>`:e(a)}})(a),a}var A4=0;function Yue(){return A4++,`c_`+Math.random().toString(36).slice(2,8)+A4.toString(36)}function Xue(e,t){if(!(!e||typeof e!=`object`))for(let n of t){let t=oK(e,n);if(Array.isArray(t))for(let e of t)e&&typeof e==`object`&&!(`__pgId`in e)&&(e.__pgId=Yue())}}function j4(e){(function e(t){if(Array.isArray(t))t.forEach(e);else if(t&&typeof t==`object`)for(let n of Object.keys(t))n.startsWith(`__pg`)?delete t[n]:e(t[n])})(e)}function M4(e,t={}){let n=t.pgIdPaths??[],r=n.length?(e,t)=>{if(t&&typeof t==`object`)for(let r of n){let n=oK(t,r),i=oK(e,r);if(!Array.isArray(n)||!Array.isArray(i))continue;let a=e=>{if(!e||typeof e!=`object`)return e;let t={...e};return delete t.__pgId,t},o=new Set;for(let e=0;e<i.length;e++){let t=i[e];if(!(!t||typeof t!=`object`||`__pgId`in t))for(let e=0;e<n.length;e++){if(o.has(e))continue;let r=n[e];if(!(!r||typeof r!=`object`||!r.__pgId)&&x4(a(r),a(t))){t.__pgId=r.__pgId,o.add(e);break}}}for(let e=0;e<n.length&&e<i.length;e++){if(o.has(e))continue;let t=n[e]?.__pgId,r=i[e];t&&r&&typeof r==`object`&&!(`__pgId`in r)&&(r.__pgId=t,o.add(e))}}Xue(e,n)}:void 0,i=n.length?LG(e.schema,n).schema:e.schema,a=e.bind,o=e.description??`主数据对象`,s=gG(i),c=new Map,l=t.vfsStore?new Wue(t.vfsStore):void 0;function u(e){if(c.clear(),e)for(let t of e){let e=y4(t.path);c.set(e,{path:e,mode:t.mode})}}u(e.resources);let d=c.size?{resourcesByPath:c,resourceStore:l,getBind:()=>a}:void 0,f=[],p=t.maxSnapshots??20,m=new Map,h=``,g=e=>e?.configurable?.__pgDataScope??h,_=e=>m.get(e??h),v=(e,t)=>{let n=t??h;e===void 0?m.delete(n):m.set(n,e)},y=t.conflictWatchFields??[],b=!y.includes(`*`)&&y.length?new Set(y):void 0,x=y.length>0,S=()=>b?gK(a,b):hK(a),C=e=>{let t=S();return v(t,e),t},w=t.largeTextThreshold??200,T=(t.largeTextPaths??[]).map(e=>{let t=e.lastIndexOf(`.`);return t>0?{arrayPath:e.slice(0,t),field:e.slice(t+1)}:null}).filter(e=>e!==null),E=!0;function D(){E=!0}let ee={get:()=>({schema:i,bind:a,description:o}),set:e=>{i=n.length?LG(e.schema,n).schema:e.schema,a=e.bind,o=e.description??`主数据对象`,s=gG(i),f.length=0,m.clear(),u(e.resources),l?.clear(),D()},update:e=>{a=e,f.length=0,m.clear(),D()},markDataDirty:D,consumeDataDirty:()=>{let e=E;return E=!1,e},enterScope:e=>{let t=h;return h=e,()=>{h=t}},exitScope:e=>{m.delete(e)},recomputeBaseline:e=>{m.set(e??``,S())},recomputeAllBaselines:()=>{let e=S();for(let t of m.keys())m.set(t,e)},hasBaselines:()=>m.size>0,getResourcesSnapshot:()=>{let e=[];for(let[t,n]of c)if(n.mode===`verbatim`){let r=l?.get(t);e.push(r?.handle?{path:t,mode:n.mode,handle:r.handle}:{path:t,mode:n.mode})}else e.push({path:t,mode:n.mode});return e},createResource:l?(e,t)=>{let n=y4(e),r=c.get(n),i=t===void 0?oK(a,n):t;return l.ensure(n,i,r?.mode??`verbatim`)}:void 0,getResource:l?e=>{let t=l.get(e);return t?{path:t.path,mode:t.mode,value:t.value,handle:t.handle}:void 0}:void 0,updateResource:l?(e,t)=>{let n=y4(e);l.update(n,t),sK(a,n,t),D()}:void 0,deleteResource:l?e=>l.delete(e):void 0,listResources:l?()=>l.list():void 0},te=e=>{t.onAudit?.(e)};function O(e,t){let n=lK(a),r=f.length?f[f.length-1].id+1:1;for(f.push({id:r,ts:Date.now(),op:e,label:t,value:n});f.length>p;)f.shift();return r}async function ne(e,n,r){if(!n||n===``)return null;let i=S();if(i===n)return null;if(!t.onConflict)return HU({code:`VERSION_CONFLICT`,message:`乐观锁冲突:expectedHash=${n} 但当前 hash=${i}。主数据在你 read 之后已被修改(外部代码/其他 agent/用户手动改)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入。当前值:${pK(a,400)}`});let o=await t.onConflict({op:e,agentValue:r,currentValue:a,currentHash:i,expectedHash:n,snapshotId:0});if(o.action===`keep_external`)return`已保留外部修改(未写入)。当前值:${pK(a,400)} (hash=${i})。请重新 read 拿最新值与 hash 再改。`;if(o.action===`restore`){if(!f.length)return`无历史快照可回退(本次为首次操作)。当前值:${pK(a,400)} (hash=${i})。请重新 read 再改或选「强制覆盖」。`;let e=f[f.length-1];return xK(a,lK(e.value)),D(),`已回退主数据到历史快照 #${e.id}[${e.op}]。当前值:${pK(a,400)} (hash=${S()})。请基于回退后的值重写或停止。`}return null}let k=(e,t=!0)=>{e.writeCapable=t},re=wL(async()=>[`说明: ${o}`,`格式: 写入值需为 JSON,且通过声明的 schema 校验(校验失败时 set_data/edit_data 会返回结构化错误,含具体字段与期望类型)。`].join(`
338
338
  `),{name:`describe_data`,description:`获取主数据的说明与格式要求。`,schema:B({})}),ie=wL(async({jsonPath:e},t)=>{let n=g(t),r=e||``;if(iK(r))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${r}" 含非法段(__proto__/constructor/prototype)`,hint:`使用正常属性路径,如 components.0.text(数组索引用数字)`});if(!_G(r,i,s))return HU({code:`PATH_DENIED`,message:`get_data @ "${r}" 不在 schema 声明字段内(仅 schema 声明的 key 可读)`,hint:`主数据仅暴露 schema 声明的字段;若需操作该字段,集成方需在 schema 中声明它`});let o=r?oK(a,r):a;!r&&s&&(o=TG(o,i)),d&&(o=C4({jp:r,resolved:o,resourcesByPath:d.resourcesByPath,resourceStore:d.resourceStore}));let c=S();return v(c,n),o===void 0?`主数据${r?` @ ${r}`:``} = (undefined) (hash=${c})`:(o=k4(o,n===``,T,w),`主数据${r?` @ ${r}`:``} = ${pK(o)} (hash=${c})`)},{name:`get_data`,description:`@deprecated(改用 read,等价且支持 fields/depth/分页)。读取主数据当前值(返回含 hash 供乐观锁);jsonPath 可选读子路径。大结果自动外存 vfs。`,schema:B({jsonPath:R().optional().describe(`相对主数据根的点号路径(如 components.0.text);不传则读整个主数据`)})}),ae=wL(async({value:e},t)=>{let n=g(t),o=await ne(`set`,x?_(n):void 0);if(o!==null)return o;let c=uK(e);if(c.parseError)return GU(``,e,c.parseError);let l=D4({bindRef:a,value:c.parsed,schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,audit:te,onWrite:D,internalAfterWrite:r,protectedCtx:d,hashFn:S});return l.ok?(v(l.hash,n),`已设置主数据 = ${pK(l.data,600)} (新 hash=${l.hash})${s?`(白名单模式:仅更新 schema 声明字段,未声明字段保留)`:``}`):l.error},{name:`set_data`,description:`@deprecated(改用 write,等价)。整体设置主数据(value 需过 schema 校验)。白名单模式:set 为根级浅合并,深层整体替换(未传字段丢失);保留深层字段用 edit_data({op:"merge"})。`,schema:B({value:qd().describe(`JSON 对象(推荐直传,如 {title:"x"}),或 JSON 字符串;需符合 schema`)})});k(ae);let A=wL(async(e,t)=>{let n=g(t),o=e.op??e.patch?.op,c=e.jsonPath??e.patch?.jsonPath,l=e.value??e.patch?.value;if(!o)return HU({code:`MISSING_VALUE`,message:`edit_data 需要 op(set/remove/merge/append)`,hint:`顶层 op 或 patch.op 至少传一个`});let u=c||``;if(iK(u))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${u}" 含非法段(__proto__/constructor/prototype)`,hint:`使用正常的属性路径,如 components.0.text(数组索引用数字)`});if(!_G(u,i,s))return HU({code:`PATH_DENIED`,message:`edit_data @ "${u}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可写;若需操作该字段,集成方需在 schema 中声明它`});let m=await ne(`edit`,x?_(n):void 0);if(m!==null)return m;if(typeof a!=`object`||!a)return HU({code:`NOT_OBJECT`,message:`edit 仅适用于对象/数组主数据,当前是 ${a===void 0?`undefined`:typeof a}`,hint:`叶子(原始类型)请用 set_data 整体设置`});let h=O4({bindRef:a,patches:[{op:o,jsonPath:u,value:l}],schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,markDataDirty:D,schemaErrorMode:`zod`,internalAfterWrite:r,protectedCtx:d});if(!h.ok)return h.error;let v=h.applied[0];te({op:`edit`,detail:`${v.op}${u?`@`+u:``}`,value:v.value,timestamp:Date.now()});let y=C(n);return`已 edit 主数据(${v.op}${u?` @ `+u:``})。当前值:${pK(a,600)} (新 hash=${y})`},{name:`edit_data`,description:`增量编辑主数据(advanced;simple 用 write 等价)。op:set/remove/merge/append/move;jsonPath 相对根(数组索引用数字);value 对象或 JSON 字符串。schema 校验失败不写。大对象优先增量改。`,schema:B({op:df([`set`,`remove`,`merge`,`append`,`move`]).optional().describe(`增量操作(顶层或 patch.op 至少一个):set 设值/remove 删/merge 合并/append 追加/move 移动数组元素(value=目标路径字符串,数组本身=追加/数组内下标=插入;同数组即重排,目标下标按移除源后解释)`),jsonPath:R().optional().describe(`相对主数据根的点号路径(如 components.0.text);顶层或 patch.jsonPath。set/remove 必填,merge/append 不填则作用于根`),value:qd().optional().describe(`JSON 对象(推荐直传,如 {text:"x"})或 JSON 字符串;顶层或 patch.value(set/merge/append 必填)`),patch:B({op:df([`set`,`remove`,`merge`,`append`]).optional(),jsonPath:R().optional(),value:qd().optional()}).optional().describe(`容错:误传 write 的 {patch:{op,jsonPath,value}} 形式时从此取值(顶层优先)。正常用顶层 op/jsonPath/value 即可`)})});k(A);let j=wL(async({jsonPath:e},t)=>{let n=g(t);if(!e)return HU({code:`MISSING_VALUE`,message:`delete_data 需要 jsonPath 指定要删的子路径(主数据整体不可删,用 set_data 整体替换)`,hint:`如 jsonPath:"components.0" 删数组首项`});if(iK(e))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${e}" 含非法段`,hint:`使用正常属性路径`});if(!_G(e,i,s))return HU({code:`PATH_DENIED`,message:`delete_data @ "${e}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可删`});if(d){let t=S4(e,d.resourcesByPath);if(t)return HU({code:t.spec.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,message:`delete_data @ "${e}" 命中受保护字段 "${t.protectedPath}"(${t.spec.mode}),不可删除`,hint:t.spec.mode===`freeze`?`冻结字段不可删;如需移除请联系集成方调整 data.resources`:`verbatim 字段不可直接删;先 resource_delete({path}) 释放资源保护后再删`})}let r=await ne(`delete`,x?_(n):void 0);if(r!==null)return r;O(`delete`);let o=cK(a,e);return D(),te({op:`delete`,detail:e,timestamp:Date.now()}),v(S(),n),o?`已删除主数据 @ ${e}`:`主数据 @ ${e} 不存在(无需删除)`},{name:`delete_data`,description:`删除主数据的某个子路径(jsonPath)。主数据整体不可删(用 set_data 整体替换)。`,schema:B({jsonPath:R().describe(`要删除的子路径(相对主数据根,如 components.0)`)})});k(j);let oe=wL(async({id:e},t)=>{let n=g(t);if(!f.length)return HU({code:`NO_SNAPSHOT`,message:`无快照可回退`,hint:`set/edit/delete 会自动存快照;或 history_data({list:true}) 查看可用快照`});let r=e===void 0?f[f.length-1]:f.find(t=>t.id===e);if(!r)return HU({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`用 history_data({list:true}) 查看可用快照序号`});let o=i.safeParse(r.value);return o.success?(xK(a,lK(r.value)),D(),te({op:`restore`,detail:`#${r.id}`,timestamp:Date.now()}),v(S(),n),`已回退主数据到快照 #${r.id}[${r.op}]${r.label?`(${r.label})`:``}。`):HU({code:`SNAPSHOT_SCHEMA_INVALID`,message:`快照 #${r.id} 的值不符合当前 schema,无法回退`,hint:`schema 可能已变更;该快照已过期,选其他快照或重新设置`,details:UU(o.error.issues)})},{name:`restore_data`,description:`把主数据回退到某个快照(就地还原,保留响应式)。不传 id 则回退最近一次(快速回退)。可用 history_data({list:true}) 查看快照列表。`,schema:B({id:Nd().int().optional().describe(`指定快照序号;不传则回退最近一次`)})});k(oe);let se=wL(async({id:e,jsonPath:t,list:n})=>{if(n){if(!f.length)return`无快照。set/edit/delete 会自动存快照。`;let e=f.map(e=>{let t=JSON.stringify(e.value??``).length,n=new Date(e.ts).toLocaleTimeString(`zh-CN`,{hour12:!1});return` #${e.id} [${e.op}]${e.label?` "${e.label}"`:``} ${n} 修改前≈${t}字符`});return`主数据快照时间线(共 ${f.length} 条,默认最近一次):\n${e.join(`
339
339
  `)}\n用 history_data({id}) 查看某条快照内容;restore_data({id}) 回退;diff_data({snapshotId}) 对比差异。`}if(!f.length)return HU({code:`NO_SNAPSHOT`,message:`无历史快照可查看`,hint:`set/edit/delete 会自动存快照;或 history_data({list:true}) 查看可用序号`});let r=e===void 0?f[f.length-1]:f.find(t=>t.id===e);if(!r)return HU({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`不传 id 查看最近一次;或 history_data({list:true}) 查看可用序号`});let a=lK(r.value),o=t||``;if(o){if(iK(o))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${o}" 含非法段`,hint:`使用正常属性路径`});if(!_G(o,i,s))return HU({code:`PATH_DENIED`,message:`history_data @ "${o}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可读`});a=oK(a,o);let e=yG(i,o);e&&(a=TG(a,e))}else s&&(a=TG(a,i));return`快照 #${r.id}[${r.op}]${r.label?`(${r.label})`:``}${o?` @ ${o}`:``} = ${pK(a)}`},{name:`history_data`,description:`查看主数据快照(只读不回退当前)。list:true 列时间线;传 id 看某次快照内容(默认最近),jsonPath 可只看子路径。冲突诊断/看上一版用;对比差异用 diff_data;回退用 restore_data。`,schema:B({id:Nd().int().optional().describe(`快照序号;不传则最近一次(list:true 时忽略)`),jsonPath:R().optional().describe(`只看快照的某子路径(相对主数据根);不传则整个快照`),list:zd().optional().describe(`true 则列出快照时间线元信息(序号/操作/标签/时间/大小);不传则查看单条快照内容`)})}),ce=wL(async({expr:e,limit:t},n)=>{let r=g(n);if(typeof a!=`object`||!a)return HU({code:`NOT_OBJECT`,message:`主数据不是对象/数组,无法查询(当前为 ${a===void 0?`undefined`:typeof a})`,hint:`query 仅适用于对象/数组;叶子用 get_data 读`});let o=s?TG(a,i):a,c;try{c=u4(o,e)}catch(t){return HU({code:`JSONPATH_SYNTAX`,message:`JSONPath 解析错误: ${t.message}`,hint:`语法子集:$ .key [n] ["key"] [*] [?(filter)] ..key ..*;filter:@.field op literal,&&/||/();对象根需先点出数组字段再过滤,如 $.components[?(@.x>1)]`,details:{expr:e}})}let l=t??50,u=c.slice(0,l),d=u.map(e=>`{"path":${JSON.stringify(e.path)},"index":${e.index===void 0?`null`:e.index},"value":${pK(k4(e.value,r===``,T,w))}}`);return`{"matched":${c.length},"returned":${u.length},"truncated":${c.length>l},"results":[${d.join(`,`)}]}`},{name:`query_data`,description:`用 JSONPath 查询主数据(只读):$ 根/.key/[n]/[*]/[?(==/!=/</<=/>/>=,&&/||)]/..key 递归。返回匹配元素 path/index/value(path 可作 write patch 的 jsonPath);大数组筛选定位用它。`,schema:B({expr:R().describe(`JSONPath 表达式,如 $.components[?(@.type=="card" && @.price<100)] 或 $..title(递归找所有 title)`),limit:Nd().int().min(1).max(200).optional().describe(`返回结果上限,默认 50`)})}),le=wL(async({query:e,mode:t,fuzzyThreshold:n,matchKey:r,limit:o})=>{if(a==null)return HU({code:`EMPTY`,message:`主数据为空,无可搜索内容`});try{let c=d4(s?TG(a,i):a,e,{mode:t,fuzzyThreshold:n,matchKey:r,limit:o??50});return pK({matched:c.length,results:c})}catch(t){return HU({code:`REGEX_INVALID`,message:`搜索错误: ${t.message}`,hint:`regex 模式下 query 须为合法正则;改 mode 为 substring/fuzzy 可避免正则语法问题`,details:{query:e}})}},{name:`search_data`,description:`主数据内文本搜索(只读)。mode:substring(默认,不区分大小写)/regex(i 标志)/fuzzy(Levenshtein ≤ fuzzyThreshold)。递归遍历叶子值返回命中 path+value(超 200 字符截断);找名字记不清的元素用它。`,schema:B({query:R().describe(`搜索词(substring/regex/fuzzy 共用)`),mode:df([`substring`,`regex`,`fuzzy`]).optional().describe(`匹配模式,默认 substring`),fuzzyThreshold:Nd().int().min(0).max(5).optional().describe(`fuzzy 模式最大编辑距离,默认 2`),matchKey:zd().optional().describe(`是否同时匹配 key 名,默认 true`),limit:Nd().int().min(1).max(200).optional().describe(`返回上限,默认 50`)})}),ue=wL(async({script:e,mode:t,jsonPath:n},o)=>{let c=g(o);if(e.length>8e3)return HU({code:`SCRIPT_TOO_LARGE`,message:`脚本过长(${e.length} 字符,上限 8000)`,hint:`精简脚本;复杂逻辑可分步(先 query 探查再 transform 改),或拆成多次 eval`});let l=n||``,u;if(l){if(!_G(l,i,s))return HU({code:`PATH_DENIED`,message:`eval_script @ "${l}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可作为子树`});if(u=oK(a,l),s){let e=yG(i,l);e&&(u=TG(u,e))}}else u=s?TG(a,i):a;let m=lK(u),h=await p4(m,e,l&&JSON.stringify(m).length>1e5?8e3:3e3);if(!h.ok){let t=/超时/.test(h.error||``);return HU({code:t?`SCRIPT_TIMEOUT`:`SCRIPT_ERROR`,message:`脚本执行失败: ${h.error}`,hint:t?`脚本可能有死循环或过重计算;加边界检查/分批;transform 返回完整新值勿返回巨大中间结果`:`检查脚本语法与运行时错误;入参为 data(主数据深拷贝),沙箱内禁用 fetch/XHR/WebSocket`,details:{elapsedMs:h.elapsedMs,scriptLen:e.length}})}if(t===`transform`){let e=h.result;if(l){let t=O4({bindRef:a,patches:[{op:`set`,jsonPath:l,value:e}],schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,markDataDirty:D,schemaErrorMode:`schema_invalid`,snapshotLabel:`eval_transform_subtree`,internalAfterWrite:r,protectedCtx:d});return t.ok?(te({op:`edit`,detail:`eval_transform_subtree @ ${l}`,timestamp:Date.now()}),v(S(),c),`已通过脚本 transform 子树 @ ${l} 更新(耗时 ${h.elapsedMs}ms)。当前值: ${pK(a,600)}`):t.error}if(e&&typeof e==`object`&&!Array.isArray(e)&&`patches`in e&&Array.isArray(e.patches)){if(typeof a!=`object`||!a)return HU({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${a===null?`null`:typeof a}),eval transform(patches) 无法就地替换`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹或集成方通过 sdk.setData 替换 bind`});let t=O4({bindRef:a,patches:e.patches,schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,markDataDirty:D,schemaErrorMode:`schema_invalid`,snapshotLabel:`eval_transform`,internalAfterWrite:r,protectedCtx:d});return t.ok?(te({op:`edit`,detail:`eval_transform(${t.applied.length} patches)`,timestamp:Date.now()}),v(S(),c),`已通过脚本 transform(patches) 更新主数据(${t.applied.length} 个 patch,耗时 ${h.elapsedMs}ms)。当前值: ${pK(a,600)}`):t.error}let t=e;if(d){let e=E4({value:t,ctx:d});if(!e.ok)return e.error;t=e.value}let n=i.safeParse(t);return n.success?typeof a!=`object`||!a?HU({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${a===null?`null`:typeof a}),eval transform 无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹或集成方通过 sdk.setData 替换 bind`}):(O(`edit`,`eval_transform`),n.data!==null&&typeof n.data==`object`&&(s?aK(a,n.data):SK(a,n.data)),D(),te({op:`edit`,detail:`eval_transform`,timestamp:Date.now()}),v(S(),c),`已通过脚本 transform 更新主数据(耗时 ${h.elapsedMs}ms)。当前值: ${pK(a,600)}`):HU({code:`SCHEMA_INVALID`,message:`脚本返回值校验失败,未写入(transform 模式要求返回主数据的完整新值且符合 schema)`,hint:`确认脚本 return 了完整新值(非部分);或返回 {patches:[...]} 走增量模式;按 describe_data() 查看格式`,details:UU(n.error.issues)})}return pK({ok:!0,result:h.result,elapsedMs:h.elapsedMs})},{name:`eval_script`,description:`在 Worker 沙箱对主数据跑自定义 JS(无 window/fetch,超时 3s)。入参 data(深拷贝),返回值即结果。mode:query 只读回给 LLM(过滤/映射/聚合)/transform 落地(返回完整新值或 {patches:[...]} 增量)。jsonPath 可只对子树执行。`,schema:B({script:R().describe(`JS 脚本体,如 data.filter(c=>c.stock>0).map(c=>c.id);入参名 data;末尾表达式或 return 即返回值`),mode:df([`query`,`transform`]).optional().describe(`query=只读返回结果(默认),transform=校验后落地为新值`),jsonPath:R().optional().describe(`子树模式:仅对 jsonPath 指向的子树执行(降低大 JSON 成本);transform 时返回值作为该子树新值`)})});k(ue,e=>e?.mode===`transform`);let de=wL(async({jsonPath:e,jsonPaths:t,fields:n,depth:r,offset:c,limit:l},u)=>{let f=g(u),p=S();if(t&&t.length){let e=!1,o=t.map(t=>{let o=t||``;if(!_G(o,i,s))return`- ${o||`(根)`}: [PATH_DENIED: 不在 schema 声明字段内]`;e=!0;let c=o?oK(a,o):a;if(!o&&s)c=TG(c,i);else if(s){let e=yG(i,o);e&&(c=TG(c,e))}let l=c;return d&&(l=C4({jp:o,resolved:l,resourcesByPath:d.resourcesByPath,resourceStore:d.resourceStore})),n&&n.length&&(l=dK(l,n)),r!=null&&(l=fK(l,r)),l=k4(l,f===``,T,w),l===void 0?`- ${o} = (undefined)`:`- ${o} = ${pK(l)}`});return e&&v(p,f),`多路径读取(共 ${t.length} 项,hash=${p}):\n${o.join(`
340
340
  `)}`}let m=e||``;if(iK(m))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${m}" 含非法段(__proto__/constructor/prototype)`,hint:`使用正常属性路径,如 components.0.text(数组索引数字)`});if(!_G(m,i,s))return HU({code:`PATH_DENIED`,message:`read @ "${m}" 不在 schema 声明字段内`,hint:`主数据仅暴露 schema 声明的字段;若需操作该字段,集成方需在 schema 中声明它`});let h=m?oK(a,m):a;if(!m&&s)h=TG(h,i);else if(s){let e=yG(i,m);e&&(h=TG(h,e))}let _=h;d&&(_=C4({jp:m,resolved:_,resourcesByPath:d.resourcesByPath,resourceStore:d.resourceStore})),v(p,f),n&&n.length&&(_=dK(_,n)),r!=null&&(_=fK(_,r)),_=k4(_,f===``,T,w);let y=e?``:`主数据说明: ${o}\n格式: 写入值需为 JSON,且通过声明的 schema 校验(校验失败时 write 会返回结构化错误)。字段约束(类型/min/max/enum/必填/默认)见 systemPrompt「可操作数据」段,或用 schema_data({ jsonPath }) 按需查。\n\n`,b=n&&n.length?`(字段裁剪:${n.join(`,`)})`:``,x=r==null?``:`(深度≤${r})`,C=b||x?` ${b}${x}`:``;if((c!==void 0||l!==void 0)&&Array.isArray(_)){let e=_.length,t=Math.max(0,c??0),n=Math.min(200,Math.max(1,l??50)),r=_.slice(t,t+n),i=t+n<e;return`${y}主数据${m?` @ ${m}`:``} 数组分页[offset=${t},limit=${n}]${C} = ${pK(r)} (total=${e}, hasMore=${i}) (hash=${p})`}return _===void 0?`${y}主数据${m?` @ ${m}`:``}${C} = (undefined) (hash=${p})`:`${y}主数据${m?` @ ${m}`:``}${C} = ${pK(_)} (hash=${p})`},{name:`read`,description:`读取主数据(高层入口,合并 describe/get)。不传 jsonPath → 返回主数据说明 + 格式提示(含字段约束);传 jsonPath → 返回该子路径当前值 + hash;传 jsonPaths → 一次读多个不相关子路径(省多轮往返)。hash 用于乐观锁(声明 conflictWatchFields 后 write 自动比对;未声明不自动校验)。fields(字段裁剪)/depth(深度截断)减体积;offset+limit 对数组目标分页(返回切片 + total/hasMore)。`,schema:B({jsonPath:R().optional().describe(`要读的子路径(相对主数据根,如 components.0.text);不传则读整个主数据并返回说明`),jsonPaths:z(R()).optional().describe(`多路径读取:一次读多个不相关子路径(与 jsonPath 互斥,优先于 jsonPath);返回各路径值,非法路径单项标错不整批失败`),fields:z(R()).optional().describe(`字段裁剪:只返回指定字段(对对象/数组元素投影),减少返回体积,如 ["id","title"]`),depth:Nd().int().min(0).optional().describe(`嵌套深度限制:0=只根占位,1=根+子,递归到 depth 层后用 {...}/[...] 占位截断,减少深层返回体积`),offset:Nd().int().min(0).optional().describe(`数组分页起始偏移(仅当读取目标是数组时生效,默认 0),配合 limit 分页读大数组`),limit:Nd().int().min(1).max(200).optional().describe(`数组分页每页条数(默认 50,上限 200;仅数组时生效),返回切片 + total/hasMore`)})}),fe=wL(async({value:e,patch:t,patches:n,del:o,dryRun:c},l)=>{let u=g(l),m=`set`;o?m=`delete`:(n&&n.length||t)&&(m=`edit`);let h=t?.value===void 0?e:t.value,y=x?_(u):void 0;if(c&&y!==void 0){let e=S();if(e!==y)return HU({code:`VERSION_CONFLICT`,message:`dryRun 预检发现乐观锁冲突: expectedHash=${y} 当前 hash=${e}(主数据在你 read 后被改)`,hint:`重新 read 拿最新 hash 再预检/写`})}if(m===`delete`){if(!t?.jsonPath)return HU({code:`MISSING_VALUE`,message:`delete 需要 patch.jsonPath 指定要删的子路径(主数据整体不可删,用 write(value) 整体替换)`,hint:`如 patch:{jsonPath:"components.0"}, del:true`});if(iK(t.jsonPath))return HU({code:`PATH_UNSAFE`,message:`jsonPath "${t.jsonPath}" 含非法段`,hint:`使用正常属性路径`});if(!_G(t.jsonPath,i,s))return HU({code:`PATH_DENIED`,message:`write delete @ "${t.jsonPath}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可删`});if(d){let e=S4(t.jsonPath,d.resourcesByPath);if(e)return HU({code:e.spec.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,message:`write delete @ "${t.jsonPath}" 命中受保护字段 "${e.protectedPath}"(${e.spec.mode}),不可删除`,hint:e.spec.mode===`freeze`?`冻结字段不可删`:`verbatim 字段不可直接删;先 resource_delete 释放`})}let e=await ne(`delete`,y);if(e!==null)return e;if(c){let e=lK(a);return cK(e,t.jsonPath)?`dryRun(delete): 将删除 @ ${t.jsonPath}。预览剩余:${pK(e,600)}。未实际写入、未入快照。`:`dryRun(delete): @ ${t.jsonPath} 不存在(无需删除)。未实际写入。`}O(`delete`);let n=cK(a,t.jsonPath);return D(),te({op:`delete`,detail:t.jsonPath,timestamp:Date.now()}),r&&(r(a,null),D()),v(S(),u),n?`已删除主数据 @ ${t.jsonPath}`:`主数据 @ ${t.jsonPath} 不存在(无需删除)`}if(m===`edit`){if(typeof a!=`object`||!a)return HU({code:`NOT_OBJECT`,message:`edit 仅适用于对象/数组主数据,当前是 ${a===void 0?`undefined`:typeof a}`,hint:`叶子用 write(value) 整体设置`});let e=await ne(`edit`,y);if(e!==null)return e;let o=n&&n.length?n:[{op:t.op??`set`,jsonPath:t.jsonPath||``,value:h}],l=O4({bindRef:a,patches:o,schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,markDataDirty:D,schemaErrorMode:`zod`,dryRun:c,internalAfterWrite:r,protectedCtx:d});if(!l.ok)return l.error;if(c)return`dryRun(edit): ${l.applied.length} 个 patch 预检通过(schema 校验 OK)。预览结果:${pK(l.clone,600)}。未实际写入、未入快照。`;te({op:`edit`,detail:`${l.applied.length} 个 patch${l.applied.length>1?`(批量)`:``}`,value:l.applied.map(e=>`${e.op}@${e.jp}`),timestamp:Date.now()});let m=C(u);return j4(l.clone),`已 write(edit) 主数据(${l.applied.length} 个 patch)。当前值:${pK(l.clone,600)} (新 hash=${m})`}let b=uK(h);if(b.parseError)return GU(``,h,b.parseError);let w=await ne(`set`,y);if(w!==null)return w;let T=D4({bindRef:a,value:b.parsed,schema:i,allowKeys:s,snapshots:f,maxSnapshots:p,audit:te,dryRun:c,onWrite:D,internalAfterWrite:r,protectedCtx:d,hashFn:S});if(!T.ok)return T.error;if(c)return`dryRun(set): schema 校验通过。预览新值:${pK(T.data,600)}。未实际写入、未入快照。`;let E=S();return v(E,u),j4(T.data),`已 write(set) 主数据 = ${pK(T.data,600)} (新 hash=${E})${s?`(白名单模式:仅更新 schema 声明字段,未声明字段保留)`:``}`},{name:`write`,description:`写入主数据(高层入口,合并 set/edit/delete + 自动乐观锁 + 自动快照)。四意图:① 整体替换 write({value:整个对象});② 增量 write({patch:{op,jsonPath,value}}) op=set/remove/merge/append/move(move 的 value=目标路径字符串);③ 批量原子 write({patches:[...]})(任一失败整批回滚);④ 删子路径 write({patch:{jsonPath},del:true})。dryRun:true 预检不落盘。写入自动 schema 校验(失败不写,按错误修正重试)+ 自动快照。详细用法见系统提示「能力使用提示」。`,schema:B({value:qd().optional().describe(`JSON 对象(推荐,如 {title:"x"})或 JSON 字符串;set 整体或单个 patch 的 set/merge/append 必填`),patch:B({op:df([`set`,`remove`,`merge`,`append`,`move`]).optional().describe(`增量操作:set 设值/remove 删/merge 合并对象/append 追加数组/move 移动数组元素(value=目标路径字符串)。单 patch edit 缺省按 set;del 模式(write({patch:{jsonPath},del:true}))不读 op 可省略`),jsonPath:R().optional().describe(`相对主数据根的点号路径(如 components.0.text);set/remove 必填,merge/append 不填则作用于根`),value:qd().optional().describe(`该 patch 的值(JSON 直传或 JSON 字符串);set/merge/append 必填,remove 不需。与顶层 value 二选一:优先 patch.value,未填则回退顶层 value(向后兼容)。推荐用 patch.value(自带,与 patches 元素一致,无歧义)`)}).optional().describe(`单个增量编辑(自带 value,与 patches 元素一致);传 patch(无 patches)走单 patch edit 语义`),patches:z(B({op:df([`set`,`remove`,`merge`,`append`,`move`]),jsonPath:R().optional().describe(`相对主数据根的点号路径;set/remove 必填,merge/append 不填则作用于根`),value:qd().optional().describe(`JSON 值(推荐直传)或 JSON 字符串;set/merge/append 必填,remove 不需`)})).optional().describe(`批量增量编辑:一次原子应用多个 patch(任一失败则整体不写入,clone 试跑全部 + schema 校验通过才落 live)。适合一次改多处,减少多轮往返`),del:zd().optional().describe(`true 则删除 patch.jsonPath 指定的子路径(等价 delete_data)`),dryRun:zd().optional().describe(`预检模式:走完整校验链(schema + 白名单 + patch 应用到 clone)但不落盘、不入快照,返回预览。四意图(value/patch/patches/del)均支持;乐观锁冲突照常检测(返回 VERSION_CONFLICT 不挂起)`)})});k(fe);let pe=wL(async({jsonPath:e})=>{let t=e||``,n=t?yG(i,t):i;return n?`schema${t?` @ ${t}`:``} = ${pK(MG(n))}`:HU({code:`PATH_DENIED`,message:`schema @ "${t}" 不存在`,hint:`jsonPath 需在 schema 声明字段内(用 read() 不传 jsonPath 查看顶层字段)`})},{name:`schema_data`,description:`查看主数据(或子路径)的字段约束:类型/min/max/enum/必填/默认值/嵌套 shape。写前查约束,避免写错重试。不传 jsonPath 查根;传子路径(如 components.0)查该位置约束。`,schema:B({jsonPath:R().optional().describe(`要查约束的子路径;不传查根 schema`)})}),M=wL(async({snapshotId:e,against:t})=>{let n=t!=null,r,o;if(n){let e=t;if(typeof e==`string`){let t=uK(e);t.parseError||(e=t.parsed)}r=e,o=`against`}else{if(!f.length)return HU({code:`NO_SNAPSHOT`,message:`无快照可对比`,hint:`set/edit/delete 自动存快照;或传 against 一段 JSON 值直接对比`});let t=e===void 0?f[f.length-1]:f.find(t=>t.id===e);if(!t)return HU({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`不传 snapshotId 用最近一次;或传 against`});r=t.value,o=`快照 #${t.id}`}let c=s?TG(a,i):a,l=wK(r,lK(c));return l.length?`差异(当前 vs ${o},共 ${l.length} 处):\n${l.map(e=>` ${e.path}: ${pK(e.from)} → ${pK(e.to)}`).join(`
@@ -357,9 +357,9 @@ ${`- 输出形态:完整、自包含的 HTML 页面(.${r},可独立成页)`}
357
357
  `,!1),t.reasoning=(t.reasoning+e.delta).slice(-4e3);break;case`text`:r&&=(t.content+=`
358
358
  `,!1),t.content+=e.delta;break;case`tool_call`:t.steps.push({name:e.name,args:e.args,status:`running`,id:e.id});break;case`tool_result`:{let n=-1;if(e.id!==void 0&&(n=t.steps.findIndex(t=>t.id===e.id)),n<0){for(let r=t.steps.length-1;r>=0;r--)if(t.steps[r].name===e.name&&t.steps[r].status===`running`){n=r;break}}if(n>=0){let r=t.steps[n];r.result=e.result,r.status=e.status,r.durationMs=e.durationMs;let i=r.subReason;i&&i.length>80&&(r.subReason=i.slice(0,80)+`…`)}break}case`subagent`:{let n=e.toolCallId===void 0?t.steps[t.steps.length-1]:t.steps.find(t=>t.id===e.toolCallId);if(!n)break;if(e.kind===`reasoning`){let t=e.delta||``;n.subReasonFull=(n.subReasonFull||``)+t;let r=(n.subReason||``)+t;n.subReason=r.length>Ofe?r.slice(-4e3):r;break}n.children||=[];let r=e.label?`[${e.label}] ${e.name}`:e.name;if(e.kind===`tool_call`)n.children.push({name:r,args:e.args,status:`running`});else for(let t=n.children.length-1;t>=0;t--)if(n.children[t].status===`running`&&n.children[t].name===r){n.children[t].result=e.result,n.children[t].status=e.status||`done`;break}break}case`approval_request`:f.value={toolName:e.toolName,args:e.args,resolve:e.resolve};break}h()},e)}catch(n){if(TW(n,e)||(s.error=n.message||`请求失败,请重试`),!t.content&&!t.reasoning){let e=s.messages.indexOf(t);e>=0&&s.messages.splice(e,1)}}finally{await y()}return}try{g(`assistant`,await(t||C)(s.messages,e))}catch(t){TW(t,e)||(s.error=t.message||`请求失败,请重试`)}finally{await y()}}function v(e){let t=e=>{if(e?.length)for(let n of e)n.status===`running`&&(n.status=`error`,n.result||=`(本轮已结束,该步骤未收到结果 —— 子 agent 中断/异常)`),n.children?.length&&t(n.children)};for(let n=e.length-1;n>=0;n--)if(e[n].role===`assistant`){t(e[n].steps);break}}async function y(){v(s.messages);try{await r?.(s.messages)}catch{}s.loading=!1,u=null;let e=d.value.shift();e!==void 0&&(g(`user`,e),s.loading=!0,s.error=null,u=new AbortController,await _(u.signal))}function b(e){d.value.splice(e,1)}async function x(e,t,n){if(!(!e.trim()&&!n?.length)){if(s.loading){d.value.push(e.trim());return}g(`user`,e.trim()||`[image]`,t,n),s.loading=!0,s.error=null,u=new AbortController,await _(u.signal)}}async function S(){if(s.loading)return;o?.();let e=s.messages;for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`){e.splice(t);break}e.some(e=>e.role===`user`)&&(s.loading=!0,s.error=null,u=new AbortController,await _(u.signal))}async function C(e){return await new Promise(e=>setTimeout(e,800+Math.random()*1200)),`收到你的消息:"${e.filter(e=>e.role===`user`).pop()?.content}"。这是一个模拟回复,请接入实际的 AI API。`}function w(){i?.(),s.messages.splice(0,s.messages.length),s.error=null}function T(){d.value.length&&a?.([...d.value]),d.value=[],u?.abort()}function E(){d.value=[],u?.abort(),u=null,s.loading=!1,s.error=null,f.value=null}function D(e){let t=f.value;t&&(f.value=null,t.resolve(e))}async function ee(){if(!s.error)return;let e=s.messages,t=-1;for(let n=e.length-1;n>=0;n--)if(e[n].role===`user`){t=n;break}if(t<0)return;let n=e[t].content;e.splice(t),s.error=null,await x(n)}return{state:s,scrollContainer:c,pendingApproval:f,queuedTasks:d,sendMessage:x,removeQueuedTask:b,clearMessages:w,stop:T,reset:E,retry:ee,regenerate:S,resolveApproval:D,onScroll:p,onWheel:m}}async function A5(e){try{let t=globalThis.navigator?.clipboard;if(t&&typeof t.writeText==`function`)return await t.writeText(e),!0}catch{}try{let t=globalThis.document;if(!t||!t.body)return!1;let n=t.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.top=`0`,n.style.left=`0`,n.style.opacity=`0`,t.body.appendChild(n),n.select();let r=t.execCommand(`copy`);return t.body.removeChild(n),r}catch{return!1}}var j5={header:`🤖`,subagent:`🤖`,subagentProgress:`🧬`,empty:`💬`,focus:`🎯`,queued:`📋`,queuedEdit:`✏️`,recommend:`💡`,conflict:`⚠️`};function M5(e){let t={...j5};if(!e)return t;let n=Object.keys(j5);for(let r of n){let n=e[r];typeof n==`string`&&(t[r]=n)}return e.assistantAvatar&&(t.assistantAvatar=e.assistantAvatar),e.userAvatar&&(t.userAvatar=e.userAvatar),e.send&&(t.send=e.send),e.newSession&&(t.newSession=e.newSession),e.history&&(t.history=e.history),e.more&&(t.more=e.more),e.close&&(t.close=e.close),e.sessionDelete&&(t.sessionDelete=e.sessionDelete),e.attachImage&&(t.attachImage=e.attachImage),t}var N5={defaultTitle:`AI 助手`,inputPlaceholder:`输入消息,Enter 发送...`,newSession:`新建会话`,history:`历史记录`,more:`更多`,close:`关闭`,debugMenu:`调试 / 日志`,debugMenuTitle:`日志 / 执行流程 / Agent 信息`,skillMenu:`Skill 管理`,skillMenuTitle:`创建 / 管理自定义 Skill`,clearChat:`清空对话`,sessionFallbackPrefix:`会话 `,justNow:`刚刚`,minutesAgoSuffix:`分钟前`,emptyGreeting:`有什么可以帮你的?`,retry:`重试`,undo:`↩ 回退`,undoTitle:`回退到上次正常状态(还原对话历史 + 页面属性 + 工作区)`,thinking:`思考中...`,statusRunning:`执行中`,statusDone:`成功`,statusError:`失败`,subagentBadge:`子`,subagentBadgeTitle:`子 agent 委派(独立上下文,只回结论)`,subagentProgress:`子 agent 进度`,nthCallPrefix:`第 `,nthCallSuffix:` 次`,argsLabel:`入参`,resultLabel:`返回值`,copy:`复制`,copied:`已复制`,regenerate:`重新生成`,expand:`展开`,collapse:`收起`,noResult:`(无返回值)`,displayTruncatedSuffix:`
359
359
  …(展示截断,复制可得全量)`,thinkingCountPrefix:`思考中… `,charCountSuffix:`字`,reasoningTitle:`思考过程`,truncatedNotePrefix:`(仅显最近 `,truncatedNoteSuffix:` 字)`,copyThinking:`复制完整思考内容`,copyThinkingTruncTitle:`复制完整思考(渲染已截尾,复制取全量)`,focusChipTitlePrefix:`精修中:`,focusChipTitleHint:`(点击回看 · ✕ 移除)`,historyFocusChipTitlePrefix:`回看 `,removeFocus:`移除此焦点`,sendHint:`Enter 发送 · Shift+Enter 换行`,sendTitle:`发送`,stopTitle:`停止生成`,attachImageTitle:`添加图片(可拖拽 / 粘贴)`,imageDropHint:`松开添加图片`,imageCountLimitPrefix:`单轮最多 `,imageCountLimitSuffix:` 张图片`,imageInvalid:`图片读取失败,已忽略`,imageAlt:`用户图片`,queuedTitle:`排队中 · 生成完后自动执行`,queuedEditTitle:`修改(填回输入框编辑)`,removeQueuedTitle:`撤销该任务`,humanConfirmTitle:`AI 需要你确认`,recommendPrefix:` 推荐:`,approve:`允许`,deny:`拒绝`,toolConfirmPrefix:`需确认工具调用:`,viewArgs:`查看参数`,collapseArgs:`收起参数`,argsTruncatedSuffix:`
360
- …(已截断)`,conflictTitlePrefix:`写入冲突:`,conflictTitleSuffix:` 已被外部修改`,conflictDetailTemplate:`AI 基于「读取时的旧值」准备{op},但该属性在你读取之后被外部代码/其他 agent/手动改过。`,conflictOpWrite:`写入`,conflictOpDelete:`删除`,viewDiff:`查看值对比`,collapseDiff:`收起对比`,agentValueLabel:`AI 想写的值`,currentValueLabel:`外部改后的当前值`,deleteNoValue:`(delete 操作无值)`,keepExternal:`保留外部`,keepExternalTitle:`不写入,保留外部修改后的值,AI 重新读取再改`,overwrite:`强制覆盖`,overwriteTitle:`用 AI 的值覆盖外部修改`,restore:`回退`,restoreTitle:`回退到最近一次历史快照(agent 之前操作的检查点),撤销外部修改 + AI 不写入`,switchFocusTitle:`切换聚焦路径`,exitFocusTitle:`退出精修`,focusPathPlaceholder:`jsonPath,如 components.3`,focusLabelPlaceholder:`标签(可选)`,focusSubmit:`聚焦`,debugTabLogs:`日志`,debugTabFlow:`流程`,debugTabContext:`上下文`,debugTabSubagent:`子 agent`,debugTabInfo:`Agent 信息`,debugClearLogs:`清空日志`,debugCopyReport:`复制诊断报告(完整日志,交维护者排查)`,debugTypeContext:`上下文`,debugTypeLlmRequest:`LLM请求`,debugTypeLlmResponse:`LLM响应`,debugTypeToolCall:`工具调用`,debugTypeToolResult:`工具结果`,debugTypeError:`错误`,debugTypeMiddleware:`中间件`,debugFilterAll:`全部`,debugFlowPrep:`准备 / 其他`,debugLogsEmpty:`暂无日志,发送消息后这里会显示 Agent 的完整上下文、工具调用等信息`,debugLogsWrapUp:`收尾`,debugFlowEmpty:`暂无日志,发送消息后这里按轮次展示执行流程`,debugNoInfo:`暂无信息`,debugCardView:`🗂 卡片视图`,debugRequestBody:`📋 请求体`,debugOnlyNew:`只看新增`,debugShowAll:`全部消息`,debugViewRawJson:`查看原始 JSON`,debugCollapseRawJson:`收起原始 JSON`,debugModel:`模型`,debugTemperature:`温度`,debugMessageCount:`消息数`,debugToolsLabel:`工具`,debugContextMessages:`上下文消息`,debugRoundPrefix:`第 `,debugRoundSuffix:` 轮`,debugMsgCountSuffix:` 条消息`,debugToolCountSuffix:` 工具`,debugToolCallsSuffix:` 个工具调用`,debugResultSuffix:` 结果`,debugTodoPending:`待办`,debugTodoInProgress:`进行中`,debugTodoCompleted:`完成`,debugSubRunning:`运行中`,debugSubDone:`完成`,debugSubError:`错误`,debugLocksTitle:`组件锁`,debugSubagentEmpty:`尚未委派子 agent。主 agent 调用 use_<id> 或 spawn_agent 后,这里展示运行状态与委派历史。`,debugSubRunningTitle:`运行中`,debugSubHistoryTitle:`历史`,debugStepsBtn:`步骤`,debugStepsCountSuffix:` 步`,debugTraceEmpty:`未开启 tracing(capabilities.tracing:true)或暂无 trace。跑一轮 agent 后刷新。`,debugMetricRounds:`轮次`,debugMetricTotal:`总耗时`,debugMetricAvg:`平均/轮`,debugMetricTools:`工具`,debugMetricCompressions:`压缩`,debugCtxEmpty:`未开启 contextInspector(默认开)或暂无快照。跑一轮 agent 后切回刷新。`,debugCtxOccupancy:`占用`,debugCtxThreshold:`压缩阈值`,debugCtxTokens:`估算`,debugCtxWindow:`窗口`,debugCtxThresholdPct:`阈值`,debugCtxCategories:`分类构成(近似)`,debugCtxLastCompression:`最近压缩`,debugCtxSummarized:`摘要`,debugCtxRoundsSuffix:` 轮`,debugCtxRecalled:`召回`,debugCtxAgentDecision:`agent 决策:`,debugInfoBasic:`基本信息`,debugToolCount:`工具数`,debugMiddleware:`中间件`,debugMiddlewareStack:`中间件栈`,debugSkillsTitle:`技能`,debugSkillsHint:`点击展开查看全文`,debugLoading:`加载中…`,debugDataTitle:`可操作数据`,debugDataFallback:`主数据对象`,debugSchemaPrefix:`schema: `,debugSchemaDeclared:`已声明`,debugSchemaMissing:`未声明`,debugSubagentTitle:`子 Agent`,debugEnabled:`启用`,debugYes:`是`,debugNo:`否`,debugMaxDepth:`最大递归`,debugMaxParallel:`并行上限`,debugExtraTools:`额外工具`,debugDefaultReadonly:`默认只读`,debugVerifyTitle:`Verify 自检`,debugMaxAttempts:`自纠上限`,debugAdversarial:`对抗验证`,debugOn:`开启`,debugOff:`关闭`,debugAdversarialModel:`对抗模型`,debugSameAsMain:`(同主)`,debugTodosTitle:`任务清单`,debugMemoryTitle:`持久指令 (memory)`,debugPrefsTitle:`用户偏好(跨会话)`,debugPrefTopicColor:`颜色`,debugPrefTopicCopy:`文案`,debugPrefTopicLayout:`排版`,debugPrefTopicInteraction:`交互`,debugPrefTopicTech:`技术`,debugPrefTopicOther:`其他`,debugLastCompTitle:`上轮压缩`,debugTriggered:`触发`,debugNotTriggered:`✗(未达阈值)`,debugRoundsSummarized:`摘要轮次`,debugCountSuffix:` 条`,debugStrategy:`策略`,debugDecision:`压缩决策`,debugSummaryMode:`摘要`,debugSkillNoReader:`当前 SDK 未注入 getSkillContent,无法查看 skill 全文`,debugSkillEmpty:`skill 无内容或读取失败`,skillPanelTitle:`🧩 Skill 管理`,skillEditingPrefix:`编辑 Skill: `,skillCreateNew:`创建新 Skill`,skillCancelEdit:`取消编辑`,skillNameLabel:`名称`,skillNamePlaceholder:`如:my-writer`,skillDescLabel:`描述`,skillDescPlaceholder:`一句话说明用途与触发时机`,skillContentLabel:`内容`,skillContentPlaceholder:`skill 全文指令(支持 Markdown)`,skillSave:`保存修改`,skillAdd:`添加 Skill`,skillCreatedTitle:`已创建 Skill`,skillEmpty:`暂无用户创建的 skill`,skillEditBtn:`编辑`,skillEditTitle:`加载到表单编辑`,skillDeleteBtn:`删除`,skillDeleteTitle:`删除该用户 skill`,skillErrName:`skill 名不能为空`,skillErrDesc:`描述不能为空`,skillErrContent:`内容不能为空`,skillDupWarnPrefix:`已存在同名用户 skill "`,skillDupWarnSuffix:`",将覆盖`,skillHintA:`创建/编辑的 skill 会自动加入 agent(下轮 system prompt 索引可见),agent 经`,skillHintB:`按需加载全文;持久化由独立 SkillStore 管理(默认 indexedDB,与 storage 选项分离),跨刷新自动恢复;可经`,skillHintC:`跨页面复用。`,codeCopyTitle:`复制代码`,codeOpenTitle:`新窗口打开`,codePreviewTitlePrefix:`代码预览 · `,codePreviewTab:`预览`,codeSourceTab:`源码`,codeDemoTitle:`CSS 预览`,codeDemoText:`这是一段示例文字,用于展示 CSS 效果。`,codeDemoButton:`按钮`,codeDemoInput:`输入框`},P5={defaultTitle:`AI Assistant`,inputPlaceholder:`Type a message, Enter to send...`,newSession:`New chat`,history:`History`,more:`More`,close:`Close`,debugMenu:`Debug / Logs`,debugMenuTitle:`Logs / execution flow / agent info`,skillMenu:`Skills`,skillMenuTitle:`Create / manage custom skills`,clearChat:`Clear conversation`,sessionFallbackPrefix:`Session `,justNow:`just now`,minutesAgoSuffix:` min ago`,emptyGreeting:`How can I help you?`,retry:`Retry`,undo:`↩ Undo`,undoTitle:`Restore the last good state (conversation + page data + workspace)`,thinking:`Thinking...`,statusRunning:`Running`,statusDone:`Success`,statusError:`Failed`,subagentBadge:`sub`,subagentBadgeTitle:`Sub-agent delegation (isolated context, conclusion only)`,subagentProgress:`Sub-agent progress`,nthCallPrefix:`Call #`,nthCallSuffix:``,argsLabel:`Args`,resultLabel:`Result`,copy:`Copy`,copied:`Copied`,regenerate:`Regenerate`,expand:`Expand`,collapse:`Collapse`,noResult:`(no result)`,displayTruncatedSuffix:`
360
+ …(已截断)`,conflictTitlePrefix:`写入冲突:`,conflictTitleSuffix:` 已被外部修改`,conflictDetailTemplate:`AI 基于「读取时的旧值」准备{op},但该属性在你读取之后被外部代码/其他 agent/手动改过。`,conflictOpWrite:`写入`,conflictOpDelete:`删除`,viewDiff:`查看值对比`,collapseDiff:`收起对比`,agentValueLabel:`AI 想写的值`,currentValueLabel:`外部改后的当前值`,deleteNoValue:`(delete 操作无值)`,keepExternal:`保留外部`,keepExternalTitle:`不写入,保留外部修改后的值,AI 重新读取再改`,overwrite:`强制覆盖`,overwriteTitle:`用 AI 的值覆盖外部修改`,restore:`回退`,restoreTitle:`回退到最近一次历史快照(agent 之前操作的检查点),撤销外部修改 + AI 不写入`,switchFocusTitle:`切换聚焦路径`,exitFocusTitle:`退出精修`,focusPathPlaceholder:`jsonPath,如 components.3`,focusLabelPlaceholder:`标签(可选)`,focusSubmit:`聚焦`,debugTabLogs:`日志`,debugTabFlow:`流程`,debugTabContext:`上下文`,debugTabSubagent:`子 agent`,debugTabInfo:`Agent 信息`,debugClearLogs:`清空日志`,debugCopyReport:`下载诊断报告 JSON 文件(完整日志,交维护者排查)`,debugTypeContext:`上下文`,debugTypeLlmRequest:`LLM请求`,debugTypeLlmResponse:`LLM响应`,debugTypeToolCall:`工具调用`,debugTypeToolResult:`工具结果`,debugTypeError:`错误`,debugTypeMiddleware:`中间件`,debugFilterAll:`全部`,debugFlowPrep:`准备 / 其他`,debugLogsEmpty:`暂无日志,发送消息后这里会显示 Agent 的完整上下文、工具调用等信息`,debugLogsWrapUp:`收尾`,debugFlowEmpty:`暂无日志,发送消息后这里按轮次展示执行流程`,debugNoInfo:`暂无信息`,debugCardView:`🗂 卡片视图`,debugRequestBody:`📋 请求体`,debugOnlyNew:`只看新增`,debugShowAll:`全部消息`,debugViewRawJson:`查看原始 JSON`,debugCollapseRawJson:`收起原始 JSON`,debugModel:`模型`,debugTemperature:`温度`,debugMessageCount:`消息数`,debugToolsLabel:`工具`,debugContextMessages:`上下文消息`,debugRoundPrefix:`第 `,debugRoundSuffix:` 轮`,debugMsgCountSuffix:` 条消息`,debugToolCountSuffix:` 工具`,debugToolCallsSuffix:` 个工具调用`,debugResultSuffix:` 结果`,debugTodoPending:`待办`,debugTodoInProgress:`进行中`,debugTodoCompleted:`完成`,debugSubRunning:`运行中`,debugSubDone:`完成`,debugSubError:`错误`,debugLocksTitle:`组件锁`,debugSubagentEmpty:`尚未委派子 agent。主 agent 调用 use_<id> 或 spawn_agent 后,这里展示运行状态与委派历史。`,debugSubRunningTitle:`运行中`,debugSubHistoryTitle:`历史`,debugStepsBtn:`步骤`,debugStepsCountSuffix:` 步`,debugTraceEmpty:`未开启 tracing(capabilities.tracing:true)或暂无 trace。跑一轮 agent 后刷新。`,debugMetricRounds:`轮次`,debugMetricTotal:`总耗时`,debugMetricAvg:`平均/轮`,debugMetricTools:`工具`,debugMetricCompressions:`压缩`,debugCtxEmpty:`未开启 contextInspector(默认开)或暂无快照。跑一轮 agent 后切回刷新。`,debugCtxOccupancy:`占用`,debugCtxThreshold:`压缩阈值`,debugCtxTokens:`估算`,debugCtxWindow:`窗口`,debugCtxThresholdPct:`阈值`,debugCtxCategories:`分类构成(近似)`,debugCtxLastCompression:`最近压缩`,debugCtxSummarized:`摘要`,debugCtxRoundsSuffix:` 轮`,debugCtxRecalled:`召回`,debugCtxAgentDecision:`agent 决策:`,debugInfoBasic:`基本信息`,debugToolCount:`工具数`,debugMiddleware:`中间件`,debugMiddlewareStack:`中间件栈`,debugSkillsTitle:`技能`,debugSkillsHint:`点击展开查看全文`,debugLoading:`加载中…`,debugDataTitle:`可操作数据`,debugDataFallback:`主数据对象`,debugSchemaPrefix:`schema: `,debugSchemaDeclared:`已声明`,debugSchemaMissing:`未声明`,debugSubagentTitle:`子 Agent`,debugEnabled:`启用`,debugYes:`是`,debugNo:`否`,debugMaxDepth:`最大递归`,debugMaxParallel:`并行上限`,debugExtraTools:`额外工具`,debugDefaultReadonly:`默认只读`,debugVerifyTitle:`Verify 自检`,debugMaxAttempts:`自纠上限`,debugAdversarial:`对抗验证`,debugOn:`开启`,debugOff:`关闭`,debugAdversarialModel:`对抗模型`,debugSameAsMain:`(同主)`,debugTodosTitle:`任务清单`,debugMemoryTitle:`持久指令 (memory)`,debugPrefsTitle:`用户偏好(跨会话)`,debugPrefTopicColor:`颜色`,debugPrefTopicCopy:`文案`,debugPrefTopicLayout:`排版`,debugPrefTopicInteraction:`交互`,debugPrefTopicTech:`技术`,debugPrefTopicOther:`其他`,debugLastCompTitle:`上轮压缩`,debugTriggered:`触发`,debugNotTriggered:`✗(未达阈值)`,debugRoundsSummarized:`摘要轮次`,debugCountSuffix:` 条`,debugStrategy:`策略`,debugDecision:`压缩决策`,debugSummaryMode:`摘要`,debugSkillNoReader:`当前 SDK 未注入 getSkillContent,无法查看 skill 全文`,debugSkillEmpty:`skill 无内容或读取失败`,skillPanelTitle:`🧩 Skill 管理`,skillEditingPrefix:`编辑 Skill: `,skillCreateNew:`创建新 Skill`,skillCancelEdit:`取消编辑`,skillNameLabel:`名称`,skillNamePlaceholder:`如:my-writer`,skillDescLabel:`描述`,skillDescPlaceholder:`一句话说明用途与触发时机`,skillContentLabel:`内容`,skillContentPlaceholder:`skill 全文指令(支持 Markdown)`,skillSave:`保存修改`,skillAdd:`添加 Skill`,skillCreatedTitle:`已创建 Skill`,skillEmpty:`暂无用户创建的 skill`,skillEditBtn:`编辑`,skillEditTitle:`加载到表单编辑`,skillDeleteBtn:`删除`,skillDeleteTitle:`删除该用户 skill`,skillErrName:`skill 名不能为空`,skillErrDesc:`描述不能为空`,skillErrContent:`内容不能为空`,skillDupWarnPrefix:`已存在同名用户 skill "`,skillDupWarnSuffix:`",将覆盖`,skillHintA:`创建/编辑的 skill 会自动加入 agent(下轮 system prompt 索引可见),agent 经`,skillHintB:`按需加载全文;持久化由独立 SkillStore 管理(默认 indexedDB,与 storage 选项分离),跨刷新自动恢复;可经`,skillHintC:`跨页面复用。`,codeCopyTitle:`复制代码`,codeOpenTitle:`新窗口打开`,codePreviewTitlePrefix:`代码预览 · `,codePreviewTab:`预览`,codeSourceTab:`源码`,codeDemoTitle:`CSS 预览`,codeDemoText:`这是一段示例文字,用于展示 CSS 效果。`,codeDemoButton:`按钮`,codeDemoInput:`输入框`},P5={defaultTitle:`AI Assistant`,inputPlaceholder:`Type a message, Enter to send...`,newSession:`New chat`,history:`History`,more:`More`,close:`Close`,debugMenu:`Debug / Logs`,debugMenuTitle:`Logs / execution flow / agent info`,skillMenu:`Skills`,skillMenuTitle:`Create / manage custom skills`,clearChat:`Clear conversation`,sessionFallbackPrefix:`Session `,justNow:`just now`,minutesAgoSuffix:` min ago`,emptyGreeting:`How can I help you?`,retry:`Retry`,undo:`↩ Undo`,undoTitle:`Restore the last good state (conversation + page data + workspace)`,thinking:`Thinking...`,statusRunning:`Running`,statusDone:`Success`,statusError:`Failed`,subagentBadge:`sub`,subagentBadgeTitle:`Sub-agent delegation (isolated context, conclusion only)`,subagentProgress:`Sub-agent progress`,nthCallPrefix:`Call #`,nthCallSuffix:``,argsLabel:`Args`,resultLabel:`Result`,copy:`Copy`,copied:`Copied`,regenerate:`Regenerate`,expand:`Expand`,collapse:`Collapse`,noResult:`(no result)`,displayTruncatedSuffix:`
361
361
  …(truncated for display, copy for full)`,thinkingCountPrefix:`Thinking… `,charCountSuffix:` chars`,reasoningTitle:`Reasoning`,truncatedNotePrefix:`(last `,truncatedNoteSuffix:` chars only)`,copyThinking:`Copy full reasoning`,copyThinkingTruncTitle:`Copy full reasoning (display truncated, copy gets all)`,focusChipTitlePrefix:`Focus:`,focusChipTitleHint:`(click to view · ✕ remove)`,historyFocusChipTitlePrefix:`View `,removeFocus:`Remove this focus`,sendHint:`Enter to send · Shift+Enter for newline`,sendTitle:`Send`,stopTitle:`Stop generating`,attachImageTitle:`Add image (drag & drop / paste)`,imageDropHint:`Drop to attach image`,imageCountLimitPrefix:`Up to `,imageCountLimitSuffix:` images per message`,imageInvalid:`Failed to read image, skipped`,imageAlt:`User image`,queuedTitle:`Queued · runs when current finishes`,queuedEditTitle:`Edit (fill back into input)`,removeQueuedTitle:`Drop this task`,humanConfirmTitle:`AI needs your confirmation`,recommendPrefix:` Recommend:`,approve:`Allow`,deny:`Deny`,toolConfirmPrefix:`Confirm tool call:`,viewArgs:`View args`,collapseArgs:`Collapse args`,argsTruncatedSuffix:`
362
- …(truncated)`,conflictTitlePrefix:`Write conflict:`,conflictTitleSuffix:` was modified externally`,conflictDetailTemplate:`The AI prepared to {op} based on the stale value it read, but the property was changed afterwards by external code / another agent / manual edit.`,conflictOpWrite:`write`,conflictOpDelete:`delete`,viewDiff:`View diff`,collapseDiff:`Collapse diff`,agentValueLabel:`Value AI wants to write`,currentValueLabel:`Current value (external)`,deleteNoValue:`(delete op has no value)`,keepExternal:`Keep external`,keepExternalTitle:`Skip the write, keep the external value; AI re-reads then retries`,overwrite:`Overwrite`,overwriteTitle:`Overwrite external changes with the AI value`,restore:`Restore`,restoreTitle:`Restore the latest snapshot (checkpoint before the agent op); undo external change, AI does not write`,switchFocusTitle:`Switch focus path`,exitFocusTitle:`Exit focus`,focusPathPlaceholder:`jsonPath, e.g. components.3`,focusLabelPlaceholder:`Label (optional)`,focusSubmit:`Focus`,debugTabLogs:`Logs`,debugTabFlow:`Flow`,debugTabContext:`Context`,debugTabSubagent:`Sub-agents`,debugTabInfo:`Agent info`,debugClearLogs:`Clear logs`,debugCopyReport:`Copy diagnostics report (full logs for troubleshooting)`,debugTypeContext:`Context`,debugTypeLlmRequest:`LLM request`,debugTypeLlmResponse:`LLM response`,debugTypeToolCall:`Tool call`,debugTypeToolResult:`Tool result`,debugTypeError:`Error`,debugTypeMiddleware:`Middleware`,debugFilterAll:`All`,debugFlowPrep:`Preparation / other`,debugLogsEmpty:`No logs yet. After you send a message, the full agent context and tool calls appear here.`,debugLogsWrapUp:`Wrap-up`,debugFlowEmpty:`No logs yet. After you send a message, the execution flow appears here by round.`,debugNoInfo:`No info`,debugCardView:`🗂 Cards`,debugRequestBody:`📋 Request body`,debugOnlyNew:`New only`,debugShowAll:`All messages`,debugViewRawJson:`View raw JSON`,debugCollapseRawJson:`Collapse raw JSON`,debugModel:`Model`,debugTemperature:`Temp`,debugMessageCount:`Messages`,debugToolsLabel:`Tools`,debugContextMessages:`Context messages`,debugRoundPrefix:`Round `,debugRoundSuffix:``,debugMsgCountSuffix:` messages`,debugToolCountSuffix:` tools`,debugToolCallsSuffix:` tool calls`,debugResultSuffix:` result`,debugTodoPending:`Pending`,debugTodoInProgress:`In progress`,debugTodoCompleted:`Done`,debugSubRunning:`Running`,debugSubDone:`Done`,debugSubError:`Error`,debugLocksTitle:`Component locks`,debugSubagentEmpty:`No sub-agents yet. Once the main agent calls use_<id> or spawn_agent, run status and delegation history appear here.`,debugSubRunningTitle:`Running`,debugSubHistoryTitle:`History`,debugStepsBtn:`Steps`,debugStepsCountSuffix:` steps`,debugTraceEmpty:`Tracing not enabled (capabilities.tracing:true) or no trace yet. Run a round then refresh.`,debugMetricRounds:`Rounds`,debugMetricTotal:`Total`,debugMetricAvg:`Avg/round`,debugMetricTools:`Tools`,debugMetricCompressions:`Compressions`,debugCtxEmpty:`contextInspector not enabled (on by default) or no snapshot yet. Run a round then switch back.`,debugCtxOccupancy:`Occupancy`,debugCtxThreshold:`compress threshold`,debugCtxTokens:`est.`,debugCtxWindow:`window`,debugCtxThresholdPct:`threshold`,debugCtxCategories:`Categories (approx.)`,debugCtxLastCompression:`Last compression`,debugCtxSummarized:`summarized`,debugCtxRoundsSuffix:` rounds`,debugCtxRecalled:`recalled`,debugCtxAgentDecision:`agent decision: `,debugInfoBasic:`Basics`,debugToolCount:`Tools`,debugMiddleware:`Middleware`,debugMiddlewareStack:`Middleware stack`,debugSkillsTitle:`Skills`,debugSkillsHint:`click to expand`,debugLoading:`Loading…`,debugDataTitle:`Operable data`,debugDataFallback:`main data object`,debugSchemaPrefix:`schema: `,debugSchemaDeclared:`declared`,debugSchemaMissing:`not declared`,debugSubagentTitle:`Sub-agents`,debugEnabled:`Enabled`,debugYes:`Yes`,debugNo:`No`,debugMaxDepth:`Max depth`,debugMaxParallel:`Max parallel`,debugExtraTools:`Extra tools`,debugDefaultReadonly:`read-only by default`,debugVerifyTitle:`Verify self-check`,debugMaxAttempts:`Max attempts`,debugAdversarial:`Adversarial`,debugOn:`On`,debugOff:`Off`,debugAdversarialModel:`Adversarial model`,debugSameAsMain:` (same as main)`,debugTodosTitle:`Todos`,debugMemoryTitle:`Persistent instructions (memory)`,debugPrefsTitle:`User preferences (cross-session)`,debugPrefTopicColor:`color`,debugPrefTopicCopy:`copy`,debugPrefTopicLayout:`layout`,debugPrefTopicInteraction:`interaction`,debugPrefTopicTech:`tech`,debugPrefTopicOther:`other`,debugLastCompTitle:`Last compression`,debugTriggered:`Triggered`,debugNotTriggered:`✗ (below threshold)`,debugRoundsSummarized:`Rounds summarized`,debugCountSuffix:``,debugStrategy:`Strategy`,debugDecision:`Decision`,debugSummaryMode:`summary`,debugSkillNoReader:`getSkillContent is not injected in this SDK build; cannot view skill content`,debugSkillEmpty:`skill has no content or the read failed`,skillPanelTitle:`🧩 Skills`,skillEditingPrefix:`Edit skill: `,skillCreateNew:`Create new skill`,skillCancelEdit:`Cancel editing`,skillNameLabel:`Name`,skillNamePlaceholder:`e.g. my-writer`,skillDescLabel:`Description`,skillDescPlaceholder:`One line: what it does and when to trigger`,skillContentLabel:`Content`,skillContentPlaceholder:`Full skill instructions (Markdown supported)`,skillSave:`Save changes`,skillAdd:`Add skill`,skillCreatedTitle:`Created skills`,skillEmpty:`No user-created skills yet`,skillEditBtn:`Edit`,skillEditTitle:`Load into the form to edit`,skillDeleteBtn:`Delete`,skillDeleteTitle:`Delete this user skill`,skillErrName:`Skill name cannot be empty`,skillErrDesc:`Description cannot be empty`,skillErrContent:`Content cannot be empty`,skillDupWarnPrefix:`User skill "`,skillDupWarnSuffix:`" already exists and will be overwritten`,skillHintA:`Created/edited skills are automatically added to the agent (visible in the next system prompt index); the agent loads the full text via`,skillHintB:`on demand. Persistence is handled by a separate SkillStore (indexedDB by default, independent of the storage option) and survives refreshes; share across pages via`,skillHintC:`cross-page reuse.`,codeCopyTitle:`Copy code`,codeOpenTitle:`Open in new tab`,codePreviewTitlePrefix:`Code preview · `,codePreviewTab:`Preview`,codeSourceTab:`Source`,codeDemoTitle:`CSS Preview`,codeDemoText:`Sample text to demonstrate the CSS effect.`,codeDemoButton:`Button`,codeDemoInput:`Input`},kfe={"zh-CN":N5,"en-US":P5};function F5(e=`zh-CN`,t){let n={...N5,...kfe[e]};if(!t)return n;let r={...n};for(let e of Object.keys(n)){let n=t[e];typeof n==`string`&&(r[e]=n)}return r}var I5=Symbol(`chatContext`);function L5(e={}){let t=k5({fetchResponse:e.fetchResponse,fetchStream:e.fetchStream,messages:e.messages,onPersist:e.onPersist,onClear:e.onClear,onQueuedCleared:e.onQueuedCleared,onBeforeRegenerate:e.onBeforeRegenerate}),{state:n,sendMessage:r,removeQueuedTask:i,queuedTasks:a}=t,o=Tz(``),s=Tz(!0),c=()=>{s.value=!s.value},l=Tz(!1),u=()=>{l.value=!0},d=()=>{l.value=!1},f=Tz(!1),p=()=>{f.value=!0},m=()=>{f.value=!1},h=Tz({}),g=e=>h.value[e]===!0,_=e=>{h.value[e]=!g(e)},v=Tz(!1),y=e=>{A5(e).then(e=>{e&&(v.value=!0,setTimeout(()=>{v.value=!1},1500))})},b=gH(()=>{let t=e.getInfo?.();return{mcp:t?.mcp?.servers?.length??0,tools:t?.tools?.length??0}}),x=gH(()=>(n.messages.length,typeof e.canUndo==`function`&&!!e.canUndo())),S=()=>{e.onUndo?.()&&(n.error=null)},C=e=>new Date(e).toLocaleTimeString(le,{hour:`2-digit`,minute:`2-digit`}),w=()=>{let e=T.value;!o.value.trim()&&!e.length||(r(o.value,ae.value,e.length?[...e]:void 0),o.value=``,T.value=[])},T=Tz([]),E=Tz(``),D=Tz(!1),ee,te=e=>{E.value=e,clearTimeout(ee),ee=setTimeout(()=>{E.value=``},4e3)},O=async e=>{let t=Array.from(e).filter(e=>/^image\//i.test(e.type)||/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(e.name));if(!t.length)return;let n=4-T.value.length;if(n<=0){te(`${ue.imageCountLimitPrefix}4${ue.imageCountLimitSuffix}`);return}t.length>n&&te(`${ue.imageCountLimitPrefix}4${ue.imageCountLimitSuffix}`),D.value=!0;try{for(let e of t.slice(0,n))try{let t=await lW(e,{name:e.name});T.value.push(t)}catch(e){te(e instanceof QU?`${e.message}`:ue.imageInvalid)}}finally{D.value=!1}},ne=e=>{T.value=T.value.filter(t=>t.id!==e)},k=e=>{e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),w())},re=e=>{o.value=a.value[e]||``,i(e)},ie=e=>{let t=n.messages,r=t[e];if(!r||r.role!==`assistant`)return!1;let i=`reasoning`in r?r.reasoning:void 0;return n.loading&&e===t.length-1&&!r.content&&!i},ae=gH(()=>(e.infoTick?.value,e.getFocuses?.()??[])),A=t=>e.onAddFocus?e.onAddFocus(t):{ok:!1,error:`focus 未启用`},j=t=>{e.onRemoveFocus?.(t)},oe=()=>{e.onClearFocus?.()},se=t=>{e.onFocusChipClick?.(t)},ce=M5(e.icons),le=e.locale??`zh-CN`,ue=F5(le,e.dialogMessages);return{chat:t,inputText:o,isExpanded:s,toggleCollapse:c,debugVisible:l,openDebug:u,closeDebug:d,skillVisible:f,openSkill:p,closeSkill:m,reasoningExpanded:h,isReasoningExpanded:g,toggleReasoning:_,copiedMsg:v,copyMessage:y,summary:b,canUndo:x,undo:S,formatTime:C,send:w,keydown:k,pendingImages:T,addImageFiles:O,removePendingImage:ne,imageInputError:E,compressingImages:D,editQueued:re,isPendingAssistant:ie,focuses:ae,addFocus:A,removeFocus:j,clearFocus:oe,focusChipClick:se,icons:ce,locale:le,messages:ue}}function R5(){let e=iB(I5);if(!e)throw Error(`useChatContext 必须在 provide(chatContextKey) 的组件子树内调用`);return e}function z5(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 Afe(e){if(Array.isArray(e))return e}function jfe(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 Mfe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
362
+ …(truncated)`,conflictTitlePrefix:`Write conflict:`,conflictTitleSuffix:` was modified externally`,conflictDetailTemplate:`The AI prepared to {op} based on the stale value it read, but the property was changed afterwards by external code / another agent / manual edit.`,conflictOpWrite:`write`,conflictOpDelete:`delete`,viewDiff:`View diff`,collapseDiff:`Collapse diff`,agentValueLabel:`Value AI wants to write`,currentValueLabel:`Current value (external)`,deleteNoValue:`(delete op has no value)`,keepExternal:`Keep external`,keepExternalTitle:`Skip the write, keep the external value; AI re-reads then retries`,overwrite:`Overwrite`,overwriteTitle:`Overwrite external changes with the AI value`,restore:`Restore`,restoreTitle:`Restore the latest snapshot (checkpoint before the agent op); undo external change, AI does not write`,switchFocusTitle:`Switch focus path`,exitFocusTitle:`Exit focus`,focusPathPlaceholder:`jsonPath, e.g. components.3`,focusLabelPlaceholder:`Label (optional)`,focusSubmit:`Focus`,debugTabLogs:`Logs`,debugTabFlow:`Flow`,debugTabContext:`Context`,debugTabSubagent:`Sub-agents`,debugTabInfo:`Agent info`,debugClearLogs:`Clear logs`,debugCopyReport:`Download diagnostics report as JSON file (full logs for troubleshooting)`,debugTypeContext:`Context`,debugTypeLlmRequest:`LLM request`,debugTypeLlmResponse:`LLM response`,debugTypeToolCall:`Tool call`,debugTypeToolResult:`Tool result`,debugTypeError:`Error`,debugTypeMiddleware:`Middleware`,debugFilterAll:`All`,debugFlowPrep:`Preparation / other`,debugLogsEmpty:`No logs yet. After you send a message, the full agent context and tool calls appear here.`,debugLogsWrapUp:`Wrap-up`,debugFlowEmpty:`No logs yet. After you send a message, the execution flow appears here by round.`,debugNoInfo:`No info`,debugCardView:`🗂 Cards`,debugRequestBody:`📋 Request body`,debugOnlyNew:`New only`,debugShowAll:`All messages`,debugViewRawJson:`View raw JSON`,debugCollapseRawJson:`Collapse raw JSON`,debugModel:`Model`,debugTemperature:`Temp`,debugMessageCount:`Messages`,debugToolsLabel:`Tools`,debugContextMessages:`Context messages`,debugRoundPrefix:`Round `,debugRoundSuffix:``,debugMsgCountSuffix:` messages`,debugToolCountSuffix:` tools`,debugToolCallsSuffix:` tool calls`,debugResultSuffix:` result`,debugTodoPending:`Pending`,debugTodoInProgress:`In progress`,debugTodoCompleted:`Done`,debugSubRunning:`Running`,debugSubDone:`Done`,debugSubError:`Error`,debugLocksTitle:`Component locks`,debugSubagentEmpty:`No sub-agents yet. Once the main agent calls use_<id> or spawn_agent, run status and delegation history appear here.`,debugSubRunningTitle:`Running`,debugSubHistoryTitle:`History`,debugStepsBtn:`Steps`,debugStepsCountSuffix:` steps`,debugTraceEmpty:`Tracing not enabled (capabilities.tracing:true) or no trace yet. Run a round then refresh.`,debugMetricRounds:`Rounds`,debugMetricTotal:`Total`,debugMetricAvg:`Avg/round`,debugMetricTools:`Tools`,debugMetricCompressions:`Compressions`,debugCtxEmpty:`contextInspector not enabled (on by default) or no snapshot yet. Run a round then switch back.`,debugCtxOccupancy:`Occupancy`,debugCtxThreshold:`compress threshold`,debugCtxTokens:`est.`,debugCtxWindow:`window`,debugCtxThresholdPct:`threshold`,debugCtxCategories:`Categories (approx.)`,debugCtxLastCompression:`Last compression`,debugCtxSummarized:`summarized`,debugCtxRoundsSuffix:` rounds`,debugCtxRecalled:`recalled`,debugCtxAgentDecision:`agent decision: `,debugInfoBasic:`Basics`,debugToolCount:`Tools`,debugMiddleware:`Middleware`,debugMiddlewareStack:`Middleware stack`,debugSkillsTitle:`Skills`,debugSkillsHint:`click to expand`,debugLoading:`Loading…`,debugDataTitle:`Operable data`,debugDataFallback:`main data object`,debugSchemaPrefix:`schema: `,debugSchemaDeclared:`declared`,debugSchemaMissing:`not declared`,debugSubagentTitle:`Sub-agents`,debugEnabled:`Enabled`,debugYes:`Yes`,debugNo:`No`,debugMaxDepth:`Max depth`,debugMaxParallel:`Max parallel`,debugExtraTools:`Extra tools`,debugDefaultReadonly:`read-only by default`,debugVerifyTitle:`Verify self-check`,debugMaxAttempts:`Max attempts`,debugAdversarial:`Adversarial`,debugOn:`On`,debugOff:`Off`,debugAdversarialModel:`Adversarial model`,debugSameAsMain:` (same as main)`,debugTodosTitle:`Todos`,debugMemoryTitle:`Persistent instructions (memory)`,debugPrefsTitle:`User preferences (cross-session)`,debugPrefTopicColor:`color`,debugPrefTopicCopy:`copy`,debugPrefTopicLayout:`layout`,debugPrefTopicInteraction:`interaction`,debugPrefTopicTech:`tech`,debugPrefTopicOther:`other`,debugLastCompTitle:`Last compression`,debugTriggered:`Triggered`,debugNotTriggered:`✗ (below threshold)`,debugRoundsSummarized:`Rounds summarized`,debugCountSuffix:``,debugStrategy:`Strategy`,debugDecision:`Decision`,debugSummaryMode:`summary`,debugSkillNoReader:`getSkillContent is not injected in this SDK build; cannot view skill content`,debugSkillEmpty:`skill has no content or the read failed`,skillPanelTitle:`🧩 Skills`,skillEditingPrefix:`Edit skill: `,skillCreateNew:`Create new skill`,skillCancelEdit:`Cancel editing`,skillNameLabel:`Name`,skillNamePlaceholder:`e.g. my-writer`,skillDescLabel:`Description`,skillDescPlaceholder:`One line: what it does and when to trigger`,skillContentLabel:`Content`,skillContentPlaceholder:`Full skill instructions (Markdown supported)`,skillSave:`Save changes`,skillAdd:`Add skill`,skillCreatedTitle:`Created skills`,skillEmpty:`No user-created skills yet`,skillEditBtn:`Edit`,skillEditTitle:`Load into the form to edit`,skillDeleteBtn:`Delete`,skillDeleteTitle:`Delete this user skill`,skillErrName:`Skill name cannot be empty`,skillErrDesc:`Description cannot be empty`,skillErrContent:`Content cannot be empty`,skillDupWarnPrefix:`User skill "`,skillDupWarnSuffix:`" already exists and will be overwritten`,skillHintA:`Created/edited skills are automatically added to the agent (visible in the next system prompt index); the agent loads the full text via`,skillHintB:`on demand. Persistence is handled by a separate SkillStore (indexedDB by default, independent of the storage option) and survives refreshes; share across pages via`,skillHintC:`cross-page reuse.`,codeCopyTitle:`Copy code`,codeOpenTitle:`Open in new tab`,codePreviewTitlePrefix:`Code preview · `,codePreviewTab:`Preview`,codeSourceTab:`Source`,codeDemoTitle:`CSS Preview`,codeDemoText:`Sample text to demonstrate the CSS effect.`,codeDemoButton:`Button`,codeDemoInput:`Input`},kfe={"zh-CN":N5,"en-US":P5};function F5(e=`zh-CN`,t){let n={...N5,...kfe[e]};if(!t)return n;let r={...n};for(let e of Object.keys(n)){let n=t[e];typeof n==`string`&&(r[e]=n)}return r}var I5=Symbol(`chatContext`);function L5(e={}){let t=k5({fetchResponse:e.fetchResponse,fetchStream:e.fetchStream,messages:e.messages,onPersist:e.onPersist,onClear:e.onClear,onQueuedCleared:e.onQueuedCleared,onBeforeRegenerate:e.onBeforeRegenerate}),{state:n,sendMessage:r,removeQueuedTask:i,queuedTasks:a}=t,o=Tz(``),s=Tz(!0),c=()=>{s.value=!s.value},l=Tz(!1),u=()=>{l.value=!0},d=()=>{l.value=!1},f=Tz(!1),p=()=>{f.value=!0},m=()=>{f.value=!1},h=Tz({}),g=e=>h.value[e]===!0,_=e=>{h.value[e]=!g(e)},v=Tz(!1),y=e=>{A5(e).then(e=>{e&&(v.value=!0,setTimeout(()=>{v.value=!1},1500))})},b=gH(()=>{let t=e.getInfo?.();return{mcp:t?.mcp?.servers?.length??0,tools:t?.tools?.length??0}}),x=gH(()=>(n.messages.length,typeof e.canUndo==`function`&&!!e.canUndo())),S=()=>{e.onUndo?.()&&(n.error=null)},C=e=>new Date(e).toLocaleTimeString(le,{hour:`2-digit`,minute:`2-digit`}),w=()=>{let e=T.value;!o.value.trim()&&!e.length||(r(o.value,ae.value,e.length?[...e]:void 0),o.value=``,T.value=[])},T=Tz([]),E=Tz(``),D=Tz(!1),ee,te=e=>{E.value=e,clearTimeout(ee),ee=setTimeout(()=>{E.value=``},4e3)},O=async e=>{let t=Array.from(e).filter(e=>/^image\//i.test(e.type)||/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(e.name));if(!t.length)return;let n=4-T.value.length;if(n<=0){te(`${ue.imageCountLimitPrefix}4${ue.imageCountLimitSuffix}`);return}t.length>n&&te(`${ue.imageCountLimitPrefix}4${ue.imageCountLimitSuffix}`),D.value=!0;try{for(let e of t.slice(0,n))try{let t=await lW(e,{name:e.name});T.value.push(t)}catch(e){te(e instanceof QU?`${e.message}`:ue.imageInvalid)}}finally{D.value=!1}},ne=e=>{T.value=T.value.filter(t=>t.id!==e)},k=e=>{e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),w())},re=e=>{o.value=a.value[e]||``,i(e)},ie=e=>{let t=n.messages,r=t[e];if(!r||r.role!==`assistant`)return!1;let i=`reasoning`in r?r.reasoning:void 0;return n.loading&&e===t.length-1&&!r.content&&!i},ae=gH(()=>(e.infoTick?.value,e.getFocuses?.()??[])),A=t=>e.onAddFocus?e.onAddFocus(t):{ok:!1,error:`focus 未启用`},j=t=>{e.onRemoveFocus?.(t)},oe=()=>{e.onClearFocus?.()},se=t=>{e.onFocusChipClick?.(t)},ce=M5(e.icons),le=e.locale??`zh-CN`,ue=F5(le,e.dialogMessages);return{chat:t,inputText:o,isExpanded:s,toggleCollapse:c,debugVisible:l,openDebug:u,closeDebug:d,skillVisible:f,openSkill:p,closeSkill:m,reasoningExpanded:h,isReasoningExpanded:g,toggleReasoning:_,copiedMsg:v,copyMessage:y,summary:b,canUndo:x,undo:S,formatTime:C,send:w,keydown:k,pendingImages:T,addImageFiles:O,removePendingImage:ne,imageInputError:E,compressingImages:D,editQueued:re,isPendingAssistant:ie,focuses:ae,addFocus:A,removeFocus:j,clearFocus:oe,focusChipClick:se,icons:ce,locale:le,messages:ue}}function R5(){let e=iB(I5);if(!e)throw Error(`useChatContext 必须在 provide(chatContextKey) 的组件子树内调用`);return e}function z5(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 Afe(e){if(Array.isArray(e))return e}function jfe(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 Mfe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
363
363
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nfe(e,t){return Afe(e)||jfe(e,t)||Pfe(e,t)||Mfe()}function Pfe(e,t){if(e){if(typeof e==`string`)return z5(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)?z5(e,t):void 0}}var B5=Object.entries,V5=Object.setPrototypeOf,Ffe=Object.isFrozen,Ife=Object.getPrototypeOf,Lfe=Object.getOwnPropertyDescriptor,H5=Object.freeze,U5=Object.seal,W5=Object.create,G5=typeof Reflect<`u`&&Reflect,K5=G5.apply,q5=G5.construct;H5||=function(e){return e},U5||=function(e){return e},K5||=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)},q5||=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 J5=l7(Array.prototype.forEach),Rfe=l7(Array.prototype.lastIndexOf),Y5=l7(Array.prototype.pop),X5=l7(Array.prototype.push),zfe=l7(Array.prototype.splice),Z5=Array.isArray,Q5=l7(String.prototype.toLowerCase),$5=l7(String.prototype.toString),e7=l7(String.prototype.match),t7=l7(String.prototype.replace),n7=l7(String.prototype.indexOf),Bfe=l7(String.prototype.trim),Vfe=l7(Number.prototype.toString),Hfe=l7(Boolean.prototype.toString),r7=typeof BigInt>`u`?null:l7(BigInt.prototype.toString),i7=typeof Symbol>`u`?null:l7(Symbol.prototype.toString),a7=l7(Object.prototype.hasOwnProperty),o7=l7(Object.prototype.toString),s7=l7(RegExp.prototype.test),c7=Ufe(TypeError);function l7(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 K5(e,t,r)}}function Ufe(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return q5(e,n)}}function u7(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Q5;if(V5&&V5(e,null),!Z5(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Ffe(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Wfe(e){for(let t=0;t<e.length;t++)a7(e,t)||(e[t]=null);return e}function d7(e){let t=W5(null);for(let r of B5(e)){var n=Nfe(r,2);let i=n[0],a=n[1];a7(e,i)&&(Z5(a)?t[i]=Wfe(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=d7(a):t[i]=a)}return t}function Gfe(e){switch(typeof e){case`string`:return e;case`number`:return Vfe(e);case`boolean`:return Hfe(e);case`bigint`:return r7?r7(e):`0`;case`symbol`:return i7?i7(e):`Symbol()`;case`undefined`:return o7(e);case`function`:case`object`:{if(e===null)return o7(e);let t=e,n=f7(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:o7(e)}return o7(e)}default:return o7(e)}}function f7(e,t){for(;e!==null;){let n=Lfe(e,t);if(n){if(n.get)return l7(n.get);if(typeof n.value==`function`)return l7(n.value)}e=Ife(e)}function n(){return null}return n}function Kfe(e){try{return s7(e,``),!0}catch{return!1}}var p7=H5(`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(`.`)),m7=H5(`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(`.`)),h7=H5([`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`]),qfe=H5([`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`]),g7=H5(`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(`.`)),Jfe=H5([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),_7=H5([`#text`]),v7=H5(`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(`.`)),y7=H5(`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.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.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(`.`)),b7=H5(`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(`.`)),x7=H5([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Yfe=U5(/{{[\w\W]*|^[\w\W]*}}/g),Xfe=U5(/<%[\w\W]*|^[\w\W]*%>/g),Zfe=U5(/\${[\w\W]*/g),Qfe=U5(/^data-[\-\w.\u00B7-\uFFFF]+$/),$fe=U5(/^aria-[\-\w]+$/),S7=U5(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),epe=U5(/^(?:\w+script|data):/i),tpe=U5(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),npe=U5(/^html$/i),rpe=U5(/^[a-z][.\w]*(-[.\w]+)+$/i),C7=U5(/<[/\w!]/g),w7=U5(/<[/\w]/g),ipe=U5(/<\/no(script|embed|frames)/i),ape=U5(/\/>/i),T7={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ope=function(){return typeof window>`u`?null:window},spe=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}},E7=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},D7=function(e,t,n,r){return a7(e,t)&&Z5(e[t])?u7(r.base?d7(r.base):{},e[t],r.transform):n};function O7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ope(),t=e=>O7(e);if(t.version=`3.4.13`,t.removed=[],!e||!e.document||e.document.nodeType!==T7.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=f7(d,`cloneNode`),p=f7(d,`remove`),m=f7(d,`nextSibling`),h=f7(d,`childNodes`),g=f7(d,`parentNode`),_=f7(d,`shadowRoot`),v=f7(d,`attributes`),y=o&&o.prototype?f7(o.prototype,`nodeType`):null,b=o&&o.prototype?f7(o.prototype,`nodeName`):null,x=o&&o.prototype?f7(o.prototype,`ownerDocument`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let S,C=``,w,T=!1,E=0,D=function(){if(E>0)throw c7(`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.`)},ee=function(e){D(),E++;try{return S.createHTML(e)}finally{E--}},te=function(e){D(),E++;try{return S.createScriptURL(e)}finally{E--}},O=function(){return T||=(w=spe(u,i),!0),w},ne=n,k=ne.implementation,re=ne.createNodeIterator,ie=ne.createDocumentFragment,ae=ne.getElementsByTagName,A=r.importNode,j=E7();t.isSupported=typeof B5==`function`&&typeof g==`function`&&k&&k.createHTMLDocument!==void 0;let oe=Yfe,se=Xfe,ce=Zfe,le=Qfe,ue=$fe,de=epe,fe=tpe,pe=rpe,M=S7,N=null,me=u7({},[...p7,...m7,...h7,...g7,..._7]),he=null,ge=u7({},[...v7,...y7,...b7,...x7]),_e=Object.seal(W5(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}})),P=null,ve=null,F=Object.seal(W5(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ye=!0,I=!0,be=!1,xe=!0,Se=!1,Ce=!0,we=!1,Te=!1,Ee=null,De=null,Oe=!1,ke=!1,Ae=!1,je=!1,Me=!0,Ne=!1,Pe=`user-content-`,Fe=!0,Ie=!1,Le={},Re=null,ze=u7({},`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(`.`)),Be=null,Ve=u7({},[`audio`,`video`,`img`,`source`,`image`,`track`]),He=null,Ue=u7({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),We=`http://www.w3.org/1998/Math/MathML`,Ge=`http://www.w3.org/2000/svg`,Ke=`http://www.w3.org/1999/xhtml`,qe=Ke,Je=!1,Ye=null,Xe=u7({},[We,Ge,Ke],$5),Ze=H5([`mi`,`mo`,`mn`,`ms`,`mtext`]),Qe=u7({},Ze),$e=H5([`annotation-xml`]),et=u7({},$e),tt=u7({},[`title`,`style`,`font`,`a`,`script`]),nt=null,rt=[`application/xhtml+xml`,`text/html`],it=null,at=null,ot=n.createElement(`form`),st=function(e){return e instanceof RegExp||e instanceof Function},ct=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(at&&at===e)return;(!e||typeof e!=`object`)&&(e={}),e=d7(e),nt=rt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,it=nt===`application/xhtml+xml`?$5:Q5,N=D7(e,`ALLOWED_TAGS`,me,{transform:it}),he=D7(e,`ALLOWED_ATTR`,ge,{transform:it}),Ye=D7(e,`ALLOWED_NAMESPACES`,Xe,{transform:$5}),He=D7(e,`ADD_URI_SAFE_ATTR`,Ue,{transform:it,base:Ue}),Be=D7(e,`ADD_DATA_URI_TAGS`,Ve,{transform:it,base:Ve}),Re=D7(e,`FORBID_CONTENTS`,ze,{transform:it}),P=D7(e,`FORBID_TAGS`,d7({}),{transform:it}),ve=D7(e,`FORBID_ATTR`,d7({}),{transform:it}),Le=a7(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?d7(e.USE_PROFILES):e.USE_PROFILES:!1,ye=e.ALLOW_ARIA_ATTR!==!1,I=e.ALLOW_DATA_ATTR!==!1,be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Se=e.SAFE_FOR_TEMPLATES||!1,Ce=e.SAFE_FOR_XML!==!1,we=e.WHOLE_DOCUMENT||!1,ke=e.RETURN_DOM||!1,Ae=e.RETURN_DOM_FRAGMENT||!1,je=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Me=e.SANITIZE_DOM!==!1,Ne=e.SANITIZE_NAMED_PROPS||!1,Fe=e.KEEP_CONTENT!==!1,Ie=e.IN_PLACE||!1,M=Kfe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:S7,qe=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ke,Qe=a7(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?d7(e.MATHML_TEXT_INTEGRATION_POINTS):u7({},Ze),et=a7(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?d7(e.HTML_INTEGRATION_POINTS):u7({},$e);let t=a7(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?d7(e.CUSTOM_ELEMENT_HANDLING):W5(null);if(_e=W5(null),a7(t,`tagNameCheck`)&&st(t.tagNameCheck)&&(_e.tagNameCheck=t.tagNameCheck),a7(t,`attributeNameCheck`)&&st(t.attributeNameCheck)&&(_e.attributeNameCheck=t.attributeNameCheck),a7(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(_e.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),U5(_e),Se&&(I=!1),Ae&&(ke=!0),Le&&(N=u7({},_7),he=W5(null),Le.html===!0&&(u7(N,p7),u7(he,v7)),Le.svg===!0&&(u7(N,m7),u7(he,y7),u7(he,x7)),Le.svgFilters===!0&&(u7(N,h7),u7(he,y7),u7(he,x7)),Le.mathMl===!0&&(u7(N,g7),u7(he,b7),u7(he,x7))),F.tagCheck=null,F.attributeCheck=null,a7(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?F.tagCheck=e.ADD_TAGS:Z5(e.ADD_TAGS)&&(N===me&&(N=d7(N)),u7(N,e.ADD_TAGS,it))),a7(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?F.attributeCheck=e.ADD_ATTR:Z5(e.ADD_ATTR)&&(he===ge&&(he=d7(he)),u7(he,e.ADD_ATTR,it))),a7(e,`ADD_URI_SAFE_ATTR`)&&Z5(e.ADD_URI_SAFE_ATTR)&&u7(He,e.ADD_URI_SAFE_ATTR,it),a7(e,`FORBID_CONTENTS`)&&Z5(e.FORBID_CONTENTS)&&(Re===ze&&(Re=d7(Re)),u7(Re,e.FORBID_CONTENTS,it)),a7(e,`ADD_FORBID_CONTENTS`)&&Z5(e.ADD_FORBID_CONTENTS)&&(Re===ze&&(Re=d7(Re)),u7(Re,e.ADD_FORBID_CONTENTS,it)),Fe&&(N[`#text`]=!0),we&&u7(N,[`html`,`head`,`body`]),N.table&&(u7(N,[`tbody`]),delete P.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw c7(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw c7(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=S;S=e.TRUSTED_TYPES_POLICY;try{C=ee(``)}catch(e){throw S=t,e}}else e.TRUSTED_TYPES_POLICY===null?(S=void 0,C=``):(S===void 0&&(S=O()),S&&typeof C==`string`&&(C=ee(``)));H5&&H5(e),at=e},lt=u7({},[...m7,...h7,...qfe]),ut=u7({},[...g7,...Jfe]),dt=function(e,t,n){return t.namespaceURI===Ke?e===`svg`:t.namespaceURI===We?e===`svg`&&(n===`annotation-xml`||Qe[n]):!!lt[e]},ft=function(e,t,n){return t.namespaceURI===Ke?e===`math`:t.namespaceURI===Ge?e===`math`&&et[n]:!!ut[e]},pt=function(e,t,n){return t.namespaceURI===Ge&&!et[n]||t.namespaceURI===We&&!Qe[n]?!1:!ut[e]&&(tt[e]||!lt[e])},mt=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:qe,tagName:`template`});let n=Q5(e.tagName),r=Q5(t.tagName);return Ye[e.namespaceURI]?e.namespaceURI===Ge?dt(n,t,r):e.namespaceURI===We?ft(n,t,r):e.namespaceURI===Ke?pt(n,t,r):!!(nt===`application/xhtml+xml`&&Ye[e.namespaceURI]):!1},ht=function(e){X5(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw c7(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},gt=function(e){yt(e);let t=h(e);if(t){let e=[];J5(t,t=>{X5(e,t)}),J5(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},_t=function(e,n){try{X5(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{X5(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(ke||Ae)try{ht(n)}catch{}else try{n.setAttribute(e,``)}catch{}},vt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||he[it(i)]))try{e.removeAttribute(i)}catch{}}},yt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===T7.element&&vt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},bt=function(e){if(!Ce)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=y?y(e):e.nodeType;if(n===T7.processingInstruction||n===T7.comment&&s7(w7,e.data)){try{p(e)}catch{}continue}if(n===T7.element){let t=e,n=it(b?b(e):e.nodeName);try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&n!==`label`&&n!==`output`&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},xt=function(e){let t=null,r=null;if(Oe)e=`<remove></remove>`+e;else{let t=e7(e,/^[\r\n\t ]+/);r=t&&t[0]}nt===`application/xhtml+xml`&&qe===Ke&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=S?ee(e):e;if(qe===Ke)try{t=new l().parseFromString(i,nt)}catch{}if(!t||!t.documentElement){t=k.createDocument(qe,`template`,null);try{t.documentElement.innerHTML=Je?C:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),qe===Ke?ae.call(t,we?`html`:`body`)[0]:we?t.documentElement:a},St=function(e){let t=x?x(e):e.ownerDocument;return re.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Ct=function(e){return e=t7(e,oe,` `),e=t7(e,se,` `),e=t7(e,ce,` `),e},wt=function(e){e.normalize();let t=x?x(e):e.ownerDocument,n=re.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=Ct(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&J5(i,e=>{Et(e.content)&&wt(e.content)})},Tt=function(e){let t=b?b(e):null;return typeof t!=`string`||it(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},Et=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===T7.documentFragment}catch{return!1}},Dt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function Ot(e,n,r){e.length!==0&&J5(e,e=>{e.call(t,n,r,at)})}let kt=function(e,t){return!!(Ce&&e.hasChildNodes()&&!Dt(e.firstElementChild)&&s7(C7,e.textContent)&&s7(C7,e.innerHTML)||Ce&&e.namespaceURI===Ke&&t===`style`&&Dt(e.firstElementChild)||e.nodeType===T7.processingInstruction||Ce&&e.nodeType===T7.comment&&s7(w7,e.data))},At=function(e,t,n){if(!P[t]&&Ft(t)&&(_e.tagNameCheck instanceof RegExp&&s7(_e.tagNameCheck,t)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(t)))return!1;if(Fe&&!Re[t]){let t=g(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 ht(e),!0},jt=function(e,t,n,r){return e.length===0?t:t===n||t===r?d7(t):t},Mt=function(e,n){if(Ot(j.beforeSanitizeElements,e,null),e!==n&&g(e)===null)return Ie&&yt(e),!0;if(Tt(e))return ht(e),!0;let r=it(b?b(e):e.nodeName);if(N=jt(j.uponSanitizeElement,N,me,Ee),Ot(j.uponSanitizeElement,e,{tagName:r,allowedTags:N}),e!==n&&g(e)===null)return Ie&&yt(e),!0;if(kt(e,r))return ht(e),!0;if(P[r]||!(F.tagCheck instanceof Function&&F.tagCheck(r))&&!N[r]){let t=At(e,r,n);return t===!1&&Ot(j.afterSanitizeElements,e,null),t}if((y?y(e):e.nodeType)===T7.element&&!mt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&s7(ipe,e.innerHTML))return ht(e),!0;if(Se&&e.nodeType===T7.text){let n=Ct(e.textContent);e.textContent!==n&&(X5(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Ot(j.afterSanitizeElements,e,null),!1},Nt=function(e,t,r){if(ve[t]||Ce&&t===`patchsrc`||Ce&&t===`for`&&e!==`label`&&e!==`output`||Me&&(t===`id`||t===`name`)&&(r in n||r in ot))return!1;let i=he[t]||F.attributeCheck instanceof Function&&F.attributeCheck(t,e);if(!(I&&s7(le,t))&&!(ye&&s7(ue,t))){if(!i){if(!(Ft(e)&&(_e.tagNameCheck instanceof RegExp&&s7(_e.tagNameCheck,e)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(e))&&(_e.attributeNameCheck instanceof RegExp&&s7(_e.attributeNameCheck,t)||_e.attributeNameCheck instanceof Function&&_e.attributeNameCheck(t,e))||t===`is`&&_e.allowCustomizedBuiltInElements&&(_e.tagNameCheck instanceof RegExp&&s7(_e.tagNameCheck,r)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(r))))return!1}else if(!He[t]&&!s7(M,t7(r,fe,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&n7(r,`data:`)===0&&Be[e])&&!(be&&!s7(de,t7(r,fe,``)))&&r)return!1}return!0},Pt=u7({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ft=function(e){return!Pt[Q5(e)]&&s7(pe,e)},It=function(e,t,n,r){if(S&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return ee(r);case`TrustedScriptURL`:return te(r)}return r},Lt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Tt(e)?ht(e):Y5(t.removed)}catch{_t(n,e)}},Rt=function(e){Ot(j.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Tt(e))return;he=jt(j.uponSanitizeAttribute,he,ge,De);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:he,forceKeepAttr:void 0},r=t.length,i=it(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=it(o),u=c,d=o===`value`?u:Bfe(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,Ot(j.uponSanitizeAttribute,e,n),d=n.attrValue,Ne&&(l===`id`||l===`name`)&&n7(d,Pe)!==0&&(_t(o,e),d=Pe+d),Ce&&s7(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){_t(o,e);continue}if(l===`attributename`&&e7(d,`href`)){_t(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){_t(o,e);continue}if(!xe&&s7(ape,d)){_t(o,e);continue}if(Se&&(d=Ct(d)),!Nt(i,l,d)){_t(o,e);continue}d=It(i,l,s,d),d!==u&&Lt(e,o,s,d)}}Ot(j.afterSanitizeAttributes,e,null)},zt=function(e){let t=null,n=St(e);for(Ot(j.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Ot(j.uponSanitizeShadowNode,t,null),Mt(t,e),Rt(t),Et(t.content)&&zt(t.content),(y?y(t):t.nodeType)===T7.element){let e=_(t);Et(e)&&(Bt(e),zt(e))}Ot(j.afterSanitizeShadowDOM,e,null)},Bt=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=(y?y(n):n.nodeType)===T7.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=b?b(n):null;if(typeof e==`string`&&it(e)===`template`){let e=n.content;Et(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);Et(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(Je=!e,Je&&(e=`<!-->`),typeof e!=`string`&&!Dt(e)&&(e=Gfe(e),typeof e!=`string`))throw c7(`dirty is not a string, aborting`);if(!t.isSupported)return e;Te?(N=Ee,he=De):ct(n),(j.uponSanitizeElement.length>0||j.uponSanitizeAttribute.length>0)&&(N=d7(N)),j.uponSanitizeAttribute.length>0&&(he=d7(he)),t.removed=[];let c=Ie&&typeof e!=`string`&&Dt(e);if(c){bt(e);let t=b?b(e):e.nodeName;if(typeof t==`string`){let n=it(t);if(!N[n]||P[n])throw gt(e),c7(`root node is forbidden and cannot be sanitized in-place`)}if(Tt(e))throw gt(e),c7(`root node is clobbered and cannot be sanitized in-place`);try{Bt(e)}catch(t){throw gt(e),t}}else if(Dt(e))i=xt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===T7.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Bt(a);else{if(!ke&&!Se&&!we&&e.indexOf(`<`)===-1)return S&&je?ee(e):e;if(i=xt(e),!i)return ke?null:je?C:``}i&&Oe&&ht(i.firstChild);let l=c?e:i;try{let e=St(l);for(;o=e.nextNode();)Mt(o,l),Rt(o),Et(o.content)&&zt(o.content)}catch(n){throw c&&(gt(e),J5(t.removed,e=>{e.element&&yt(e.element)})),n}if(c)return J5(t.removed,e=>{e.element&&yt(e.element)}),Se&&wt(e),e;if(ke){if(Se&&wt(i),Ae)for(s=ie.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(he.shadowroot||he.shadowrootmode)&&(s=A.call(r,s,!0)),s}let u=we?i.outerHTML:i.innerHTML;return we&&N[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&s7(npe,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
364
364
  `+u),Se&&(u=Ct(u)),S&&je?ee(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ct(e),Te=!0,Ee=N,De=he},t.clearConfig=function(){at=null,Te=!1,Ee=null,De=null,S=w,C=``},t.isValidAttribute=function(e,t,n){at||ct({});let r=it(e),i=it(t);return Nt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&a7(j,e)&&X5(j[e],t)},t.removeHook=function(e,t){if(a7(j,e)){if(t!==void 0){let n=Rfe(j[e],t);return n===-1?void 0:zfe(j[e],n,1)[0]}return Y5(j[e])}},t.removeHooks=function(e){a7(j,e)&&(j[e]=[])},t.removeAllHooks=function(){j=E7()},t}var k7=O7();function A7(e){return e.trimStart().startsWith(`<`)}var cpe=[`svg`,`path`,`circle`,`ellipse`,`rect`,`line`,`polyline`,`polygon`,`g`,`img`,`i`,`em`,`b`,`span`],lpe=`viewBox.xmlns.width.height.fill.fill-rule.fill-opacity.stroke.stroke-width.stroke-linecap.stroke-linejoin.stroke-opacity.stroke-dasharray.d.cx.cy.r.rx.ry.x.y.x1.y1.x2.y2.points.transform.opacity.clip-rule.src.alt.class.aria-hidden`.split(`.`);function j7(e){return e.replace(/<[^>]*>/g,``)}function M7(e){return typeof k7.sanitize==`function`?k7.sanitize(e,{ALLOWED_TAGS:[...cpe],ALLOWED_ATTR:[...lpe],ALLOW_DATA_ATTR:!1}):j7(e)}var upe=[`b`,`strong`,`i`,`em`,`u`,`s`,`span`,`sub`,`sup`,`mark`,`code`,`kbd`,`br`],dpe=[`class`,`style`,`title`];function N7(e){return typeof k7.sanitize==`function`?k7.sanitize(e,{ALLOWED_TAGS:[...upe],ALLOWED_ATTR:[...dpe],ALLOW_DATA_ATTR:!1}):j7(e)}var fpe=[`innerHTML`],ppe={key:1,class:`icon-text`},mpe=jB({__name:`IconGlyph`,props:{icon:{}},setup(e){let t=e,n=gH(()=>A7(t.icon)),r=gH(()=>n.value?M7(t.icon):``);return(t,i)=>n.value?(X(),Z(`span`,{key:0,class:`icon-html`,innerHTML:r.value},null,8,fpe)):(X(),Z(`span`,ppe,J(e.icon),1))}}),P7=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},F7=P7(mpe,[[`__scopeId`,`data-v-7d3cf5e5`]]),hpe=[`innerHTML`],I7=jB({__name:`MsgText`,props:{text:{}},setup(e){let t=e,n=gH(()=>A7(t.text)?N7(t.text):``);return(t,r)=>n.value?(X(),Z(`span`,{key:0,class:`msg-rich`,innerHTML:n.value},null,8,hpe)):(X(),Z(FV,{key:1},[ZV(J(e.text),1)],64))}}),gpe={class:`header-main`},_pe={class:`header-left`},vpe={class:`header-icon`},ype={class:`header-title`},bpe={key:0,class:`status-dot pulse`},xpe=[`title`],Spe={class:`action-label`},Cpe={key:1,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},wpe=[`title`],Tpe={class:`action-label`},Epe={key:1,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},Dpe=[`data-sid`,`onClick`],Ope={class:`hist-title`},kpe={class:`hist-meta`},Ape=[`onClick`],jpe={key:1},Mpe=[`title`],Npe={class:`action-label`},Ppe={key:1,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`},Fpe={key:2,class:`debug-badge`},Ipe=[`title`],Lpe={key:0,class:`more-item-badge`},Rpe=[`title`],zpe=[`title`,`disabled`],Bpe=[`title`],Vpe={key:1,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},L7=P7(jB({__name:`ChatHeader`,props:{title:{},drawer:{type:Boolean},debugLogs:{},debug:{type:Boolean},skillAvailable:{type:Boolean},sessions:{},currentSessionId:{},labels:{type:Boolean},onNewSession:{type:Function},onOpenSession:{type:Function},onRemoveSession:{type:Function}},emits:[`close`],setup(e){let t=e,n=R5(),{chat:r,icons:i,messages:a}=n,{state:o,reset:s,clearMessages:c}=r,l=Tz(!1),u=Tz(!1),d=gH(()=>o.messages.length>0),f=gH(()=>(t.debugLogs?.length??0)>0);function p(e){let t=Date.now()-e;return t<6e4?a.justNow:t<36e5?Math.floor(t/6e4)+a.minutesAgoSuffix:new Date(e).toLocaleString()}function m(){s(),t.onNewSession?.()}function h(e){s(),t.onOpenSession?.(e)}return(t,r)=>(X(),Z(`div`,{class:mR([`chat-header`,{"cs-no-labels":e.labels===!1}])},[Q(`div`,gpe,[Q(`div`,_pe,[Q(`span`,vpe,[YV(F7,{icon:Y(i).header},null,8,[`icon`])]),Q(`span`,ype,[YV(I7,{text:e.title},null,8,[`text`])]),Y(o).loading?(X(),Z(`span`,bpe)):$(``,!0)]),Q(`div`,{class:`header-actions`,onClick:r[8]||=NU(()=>{},[`stop`])},[e.sessions?(X(),Z(`button`,{key:0,class:`action-btn has-label`,"data-test":`new-chat`,title:Y(a).newSession,onClick:m},[Q(`span`,Spe,J(Y(a).newSession),1),Y(i).newSession?(X(),WV(F7,{key:0,icon:Y(i).newSession},null,8,[`icon`])):(X(),Z(`svg`,Cpe,[...r[10]||=[Q(`path`,{d:`M12 5v14M5 12h14`},null,-1)]]))],8,xpe)):$(``,!0),e.sessions?(X(),Z(`button`,{key:1,class:mR([`action-btn has-label`,{active:u.value}]),"data-test":`toggle-history`,title:Y(a).history,onClick:r[0]||=e=>{l.value=!1,u.value=!u.value}},[Q(`span`,Tpe,J(Y(a).history),1),Y(i).history?(X(),WV(F7,{key:0,icon:Y(i).history},null,8,[`icon`])):(X(),Z(`svg`,Epe,[...r[11]||=[Q(`path`,{d:`M3 12a9 9 0 1 0 3-6.7L3 8`},null,-1),Q(`path`,{d:`M3 3v5h5`},null,-1),Q(`path`,{d:`M12 7v5l3 2`},null,-1)]]))],10,wpe)):$(``,!0),e.sessions&&u.value?(X(),Z(`div`,{key:2,class:`cs-history-menu`,onClick:r[1]||=NU(()=>{},[`stop`])},[(X(!0),Z(FV,null,GB(e.sessions,t=>(X(),Z(`div`,{key:t.sessionId,class:mR([`hist-item`,{active:e.currentSessionId===t.sessionId}]),"data-sid":t.sessionId,onClick:e=>h(t.sessionId)},[Q(`div`,Ope,J(t.title||Y(a).sessionFallbackPrefix+t.sessionId.slice(-6)),1),Q(`div`,kpe,[Q(`span`,null,J(p(t.lastAccessed)),1),e.currentSessionId===t.sessionId?$(``,!0):(X(),Z(`button`,{key:0,class:`hist-del`,"data-test":`del-btn`,onClick:NU(n=>e.onRemoveSession?.(t.sessionId),[`stop`])},[Y(i).sessionDelete?(X(),WV(F7,{key:0,icon:Y(i).sessionDelete},null,8,[`icon`])):(X(),Z(`span`,jpe,`✕`))],8,Ape))])],10,Dpe))),128))])):$(``,!0),Q(`button`,{class:mR([`action-btn more-btn has-label`,{active:l.value}]),title:Y(a).more,onClick:r[2]||=e=>{u.value=!1,l.value=!l.value}},[Q(`span`,Npe,J(Y(a).more),1),Y(i).more?(X(),WV(F7,{key:0,icon:Y(i).more},null,8,[`icon`])):(X(),Z(`svg`,Ppe,[...r[12]||=[Q(`circle`,{cx:`12`,cy:`5`,r:`1.6`},null,-1),Q(`circle`,{cx:`12`,cy:`12`,r:`1.6`},null,-1),Q(`circle`,{cx:`12`,cy:`19`,r:`1.6`},null,-1)]])),e.debug&&f.value?(X(),Z(`span`,Fpe,J(e.debugLogs?.length),1)):$(``,!0)],10,Mpe),l.value?(X(),Z(`div`,{key:3,class:`more-menu`,onClick:r[6]||=NU(()=>{},[`stop`])},[e.debug?(X(),Z(`button`,{key:0,class:`more-item`,title:Y(a).debugMenuTitle,onClick:r[3]||=e=>{Y(n).openDebug(),l.value=!1}},[r[13]||=Q(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[Q(`path`,{d:`M9 2v8l-3 3v2h12v-2l-3-3V2`}),Q(`path`,{d:`M9 2h6`}),Q(`path`,{d:`M9 18h6`})],-1),Q(`span`,null,J(Y(a).debugMenu),1),f.value?(X(),Z(`span`,Lpe,J(e.debugLogs?.length),1)):$(``,!0)],8,Ipe)):$(``,!0),e.skillAvailable?(X(),Z(`button`,{key:1,class:`more-item`,title:Y(a).skillMenuTitle,onClick:r[4]||=e=>{Y(n).openSkill(),l.value=!1}},[r[14]||=Q(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[Q(`path`,{d:`M12 2l2.4 7.4H22l-6 4.4 2.3 7.2L12 16.8 5.7 21l2.3-7.2-6-4.4h7.6z`})],-1),Q(`span`,null,J(Y(a).skillMenu),1)],8,Rpe)):$(``,!0),Q(`button`,{class:`more-item`,title:Y(a).clearChat,disabled:!d.value,onClick:r[5]||=e=>{Y(c)(),l.value=!1}},[r[15]||=Q(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[Q(`polyline`,{points:`3 6 5 6 21 6`}),Q(`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`})],-1),Q(`span`,null,J(Y(a).clearChat),1)],8,zpe)])):$(``,!0),e.drawer?(X(),Z(`button`,{key:4,class:`action-btn`,title:Y(a).close,onClick:r[7]||=e=>t.$emit(`close`)},[Y(i).close?(X(),WV(F7,{key:0,icon:Y(i).close},null,8,[`icon`])):(X(),Z(`svg`,Vpe,[...r[16]||=[Q(`path`,{d:`M18 6L6 18M6 6l12 12`},null,-1)]]))],8,Bpe)):$(``,!0)])]),l.value||u.value?(X(),Z(`div`,{key:0,class:`more-overlay`,onClick:r[9]||=e=>{l.value=!1,u.value=!1}})):$(``,!0)],2))}}),[[`__scopeId`,`data-v-8bb6989f`]]),Hpe={key:0,class:`focus-bar`},Upe={class:`focus-bar-icon`},Wpe={class:`focus-bar-text`},Gpe={key:0,class:`focus-bar-label`},Kpe={class:`focus-bar-path`},qpe=[`title`],Jpe=[`title`],Ype={key:0,class:`focus-edit-row`},Xpe=[`placeholder`],Zpe=[`placeholder`],R7=P7(jB({__name:`FocusBar`,props:{getFocus:{},onSetFocus:{},onClearFocus:{},infoTick:{},icons:{default:()=>({...j5})},messages:{default:()=>({...N5})}},setup(e){let t=e,n=gH(()=>(t.infoTick?.value,t.getFocus?.())),r=Tz(!1),i=Tz(``),a=Tz(``);function o(){let e=i.value.trim();if(!e||!t.onSetFocus)return;let n=a.value.trim();t.onSetFocus({path:e,...n?{label:n}:{}})?.ok&&(r.value=!1,i.value=``,a.value=``)}function s(){t.onClearFocus?.(),r.value=!1}return(t,c)=>n.value?(X(),Z(`div`,Hpe,[Q(`span`,Upe,[YV(F7,{icon:e.icons.focus},null,8,[`icon`])]),Q(`span`,Wpe,[n.value.label?(X(),Z(`span`,Gpe,J(n.value.label),1)):$(``,!0),Q(`code`,Kpe,J(n.value.path),1)]),Q(`button`,{class:`focus-bar-btn`,title:e.messages.switchFocusTitle,onClick:c[0]||=e=>r.value=!r.value},`▾`,8,qpe),Q(`button`,{class:`focus-bar-btn`,title:e.messages.exitFocusTitle,"data-test":`focus-clear`,onClick:s},`✕`,8,Jpe),r.value?(X(),Z(`div`,Ype,[tB(Q(`input`,{"onUpdate:modelValue":c[1]||=e=>i.value=e,class:`focus-edit-input`,placeholder:e.messages.focusPathPlaceholder,"data-test":`focus-path-input`,onKeyup:FU(o,[`enter`])},null,40,Xpe),[[AU,i.value]]),tB(Q(`input`,{"onUpdate:modelValue":c[2]||=e=>a.value=e,class:`focus-edit-input focus-edit-label`,placeholder:e.messages.focusLabelPlaceholder,onKeyup:FU(o,[`enter`])},null,40,Zpe),[[AU,a.value]]),Q(`button`,{class:`focus-edit-go`,"data-test":`focus-submit`,onClick:o},J(e.messages.focusSubmit),1)])):$(``,!0)])):$(``,!0)}}),[[`__scopeId`,`data-v-4904b0b4`]]),Qpe={class:`reasoning-count`},$pe={class:`reasoning-toggle`},eme={key:0,class:`reasoning-body`},tme=P7(jB({__name:`MessageReasoning`,props:{text:{},expanded:{type:Boolean},running:{type:Boolean,default:!1}},emits:[`toggle`],setup(e){let t=e,n=gH(()=>{let e=t.text.length;if(e<1e3)return String(e);let n=e/1e3;return`${n>=100?Math.round(n):+n.toFixed(1)}k`});return(t,r)=>e.text?(X(),Z(`div`,{key:0,class:mR([`reasoning-block`,{expanded:e.expanded}])},[Q(`div`,{class:`reasoning-header`,onClick:r[0]||=e=>t.$emit(`toggle`)},[Q(`span`,{class:mR([`status-dot ok`,{breathe:e.running}])},null,2),r[1]||=Q(`span`,{class:`reasoning-title`},`思考过程`,-1),Q(`span`,Qpe,J(n.value)+` 字`,1),Q(`span`,$pe,J(e.expanded?`收起`:`展开`),1)]),e.expanded?(X(),Z(`div`,eme,J(e.text),1)):$(``,!0)],2)):$(``,!0)}}),[[`__scopeId`,`data-v-b5a91bd4`]]),nme=[`open`],rme={class:`sub-reason-head`},ime={key:0,class:`sub-reason-trunc`},ame=[`title`],ome=P7(jB({__name:`SubReasonDetails`,props:{subReason:{},subReasonFull:{},status:{},messages:{default:()=>({...N5})}},setup(e){let t=e,n=Tz(),r=Tz(!1);aB(()=>t.subReason.length,async()=>{t.status===`running`&&r.value&&n.value&&(await Wz(),n.value.scrollTop=n.value.scrollHeight)});let i=gH(()=>t.subReasonFull?.length??t.subReason.length),a=gH(()=>{let e=i.value;if(e<1e3)return String(e);let t=e/1e3;return`${t>=100?Math.round(t):+t.toFixed(1)}k`}),o=gH(()=>(t.subReasonFull?.length??t.subReason.length)>t.subReason.length),s=Tz(!1);async function c(){try{await navigator.clipboard.writeText(t.subReasonFull??t.subReason),s.value=!0,setTimeout(()=>{s.value=!1},1500)}catch{}}return(t,i)=>(X(),Z(`details`,{class:`step-sub-reason`,open:r.value,onToggle:i[0]||=e=>r.value=e.target.open},[Q(`summary`,rme,[Q(`span`,{class:mR([`status-dot sm`,e.status===`running`?`running`:`ok`])},null,2),Q(`span`,{class:mR([`sub-reason-label`,{pulsing:e.status===`running`}])},J(e.status===`running`?`${e.messages.thinkingCountPrefix}${a.value}${e.messages.charCountSuffix}`:e.messages.reasoningTitle),3),o.value?(X(),Z(`span`,ime,J(e.messages.truncatedNotePrefix)+J(e.subReason.length)+J(e.messages.truncatedNoteSuffix),1)):$(``,!0),Q(`button`,{type:`button`,class:mR([`sub-reason-copy`,{copied:s.value}]),title:o.value?e.messages.copyThinkingTruncTitle:e.messages.copyThinking,onClick:NU(c,[`stop`,`prevent`])},J(s.value?e.messages.copied:e.messages.copy),11,ame)]),Q(`div`,{ref_key:`bodyRef`,ref:n,class:`sub-reason-body`},J(o.value?`…(前面已截断)
365
365
  `:``)+J(e.subReason),513)],40,nme))}}),[[`__scopeId`,`data-v-82b847cc`]]),sme={key:0,class:`steps-block`},cme={class:`step-head`},lme={class:`step-name`},ume=[`title`],dme={key:1,class:`step-count`},fme={key:2,class:`step-duration`},pme=[`onClick`],mme={key:0,class:`step-detail`},hme={key:0,class:`step-detail-call-label`},gme={key:1,class:`step-detail-section`},_me={class:`step-detail-head`},vme=[`onClick`],yme={class:`step-detail-pre`},bme={key:2,class:`step-detail-section`},xme={class:`step-detail-head`},Sme=[`onClick`],Cme={key:3,class:`step-detail-empty`},wme={key:2,class:`step-children`},Tme={class:`step-children-label`},Eme={class:`step-name`},Dme={key:0,class:`step-count`},Ome={key:1,class:`step-status running`},z7=2e3,B7=4e3,kme=P7(jB({__name:`MessageSteps`,props:{steps:{},icons:{default:()=>({...j5})},messages:{default:()=>({...N5})}},setup(e){let t=e;function n(e){let n=t.messages;return e===`running`?n.statusRunning:e===`error`?n.statusError:n.statusDone}function r(e){let t=[];for(let n of e){let e=t.length?t[t.length-1]:null;e&&e.name===n.name?(e.count++,n.status===`running`&&(e.hasRunning=!0),n.status===`error`&&(e.hasError=!0),n.durationMs&&(e.totalMs+=n.durationMs),n.children?.length&&e.children.push(...n.children),n.subReason&&(e.subReason=(e.subReason||``)+n.subReason),n.subReasonFull&&(e.subReasonFull=(e.subReasonFull||``)+n.subReasonFull),e.calls.push(n)):t.push({name:n.name,count:1,hasRunning:n.status===`running`,hasError:n.status===`error`,children:n.children?.length?[...n.children]:[],calls:[n],totalMs:n.durationMs??0,subReason:n.subReason,subReasonFull:n.subReasonFull})}return t.map(e=>({name:e.name,count:e.count,status:e.hasError?`error`:e.hasRunning?`running`:`done`,children:e.children,calls:e.calls,durationMs:e.totalMs||void 0,subReason:e.subReason,subReasonFull:e.subReasonFull}))}let i=gH(()=>r(t.steps));function a(e){return e.startsWith(`use_`)}function o(e){if(e>=1e3){let t=e/1e3;return t>=10?`${Math.round(t)}s`:`${t.toFixed(1)}s`}return`${e}ms`}let s=mz(new Set),c=0,l=`s${++c}`,u={has:e=>s.has(`${l}:${e}`),toggle:e=>{let t=`${l}:${e}`;if(s.has(t))s.delete(t);else{for(let e of Array.from(s))e.startsWith(`${l}:`)&&s.delete(e);s.add(t)}}};function d(e){u.toggle(e)}function f(e){return!!e?.some(e=>e.args!=null||e.result!=null)}function p(e){if(e==null)return{text:``,truncated:!1};let n;try{n=typeof e==`string`?e:JSON.stringify(e,null,2)}catch{n=String(e)}return n.length>z7?{text:n.slice(0,z7)+t.messages.displayTruncatedSuffix,truncated:!0}:{text:n,truncated:!1}}function m(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`)return JSON.stringify(t,null,2)}catch{}return e}function h(e){if(e==null||e===``)return{text:``,truncated:!1};let n=m(e);return n.length>B7?{text:n.slice(0,B7)+t.messages.displayTruncatedSuffix,truncated:!0}:{text:n,truncated:!1}}function g(e,t,n){if(t&&n!=null){let e;try{e=typeof n==`string`?n:JSON.stringify(n,null,2)}catch{e=String(n)}A5(e);return}A5(e)}return(t,s)=>e.steps.length?(X(),Z(`div`,sme,[(X(!0),Z(FV,null,GB(i.value,(t,i)=>(X(),Z(`div`,{key:i,class:mR([`step-item`,t.status])},[Q(`div`,cme,[Q(`span`,{class:mR([`status-dot`,t.status])},null,2),Q(`span`,lme,J(t.name),1),a(t.name)?(X(),Z(`span`,{key:0,class:`subagent-badge`,title:e.messages.subagentBadgeTitle},[YV(F7,{icon:e.icons.subagent},null,8,[`icon`]),ZV(` `+J(e.messages.subagentBadge),1)],8,ume)):$(``,!0),t.count>1?(X(),Z(`span`,dme,`×`+J(t.count),1)):$(``,!0),Q(`span`,{class:mR([`step-status`,t.status])},[YV(I7,{text:n(t.status)},null,8,[`text`])],2),t.durationMs!=null&&t.status!==`running`?(X(),Z(`span`,fme,J(o(t.durationMs)),1)):$(``,!0),f(t.calls)?(X(),Z(`button`,{key:3,type:`button`,class:mR([`step-detail-toggle`,{open:u.has(i)}]),onClick:e=>d(i)},J(u.has(i)?e.messages.collapse:e.messages.expand),11,pme)):$(``,!0)]),u.has(i)&&t.calls?.length?(X(),Z(`div`,mme,[(X(!0),Z(FV,null,GB(t.calls,(n,r)=>(X(),Z(`div`,{key:r,class:`step-detail-call`},[t.count>1?(X(),Z(`div`,hme,J(e.messages.nthCallPrefix)+J(r+1)+J(e.messages.nthCallSuffix),1)):$(``,!0),p(n.args).text?(X(),Z(`div`,gme,[Q(`div`,_me,[ZV(J(e.messages.argsLabel),1),Q(`button`,{type:`button`,class:`step-detail-copy`,onClick:e=>g(p(n.args).text,p(n.args).truncated,n.args)},J(e.messages.copy),9,vme)]),Q(`pre`,yme,J(p(n.args).text),1)])):$(``,!0),n.status!==`running`&&h(n.result).text?(X(),Z(`div`,bme,[Q(`div`,xme,[ZV(J(e.messages.resultLabel),1),Q(`button`,{type:`button`,class:`step-detail-copy`,onClick:e=>g(h(n.result).text,h(n.result).truncated,n.result)},J(e.messages.copy),9,Sme)]),Q(`pre`,{class:mR([`step-detail-pre`,{err:n.status===`error`}])},J(h(n.result).text),3)])):n.status!==`running`&&!h(n.result).text?(X(),Z(`div`,Cme,J(e.messages.noResult),1)):$(``,!0)]))),128))])):$(``,!0),t.subReason?(X(),WV(ome,{key:1,"sub-reason":t.subReason,"sub-reason-full":t.subReasonFull,status:t.status,messages:e.messages},null,8,[`sub-reason`,`sub-reason-full`,`status`,`messages`])):$(``,!0),t.children&&t.children.length?(X(),Z(`div`,wme,[Q(`div`,Tme,[YV(F7,{icon:e.icons.subagentProgress},null,8,[`icon`]),ZV(` `+J(e.messages.subagentProgress),1)]),(X(!0),Z(FV,null,GB(r(t.children),(e,t)=>(X(),Z(`div`,{key:t,class:mR([`step-child`,e.status])},[Q(`span`,{class:mR([`status-dot sm`,e.status])},null,2),Q(`span`,Eme,J(e.name),1),e.count>1?(X(),Z(`span`,Dme,`×`+J(e.count),1)):$(``,!0),e.status===`running`?(X(),Z(`span`,Ome,`…`)):$(``,!0)],2))),128))])):$(``,!0)],2))),128))])):$(``,!0)}}),[[`__scopeId`,`data-v-09c0a586`]]);function V7(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var H7=V7();function U7(e){H7=e}var W7={exec:()=>null};function G7(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function K7(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(q7.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ame=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),q7={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:G7(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:G7(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:G7(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:G7(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:G7(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:G7(e=>RegExp(`^ {0,${e}}>`))},jme=/^(?:[ \t]*(?:\n|$))+/,Mme=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Nme=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,J7=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Pme=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Y7=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,X7=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Z7=K7(X7).replace(/bull/g,Y7).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Fme=K7(X7).replace(/bull/g,Y7).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Q7=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Ime=/^[^\n]+/,$7=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Lme=K7(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,$7).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Rme=K7(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Y7).getRegex(),e9=`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|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,t9=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,zme=K7(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n+|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n+|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\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|$))`,`i`).replace(`comment`,t9).replace(`tag`,e9).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n9=e=>K7(Q7).replace(`hr`,J7).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`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,e9).getRegex(),Bme=n9(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Vme=n9(/ {0,3}(?:[*+-]|\d{1,9}[.)])[ \t]+[^ \t\n]/),r9={blockquote:K7(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Vme).getRegex(),code:Mme,def:Lme,fences:Nme,heading:Pme,hr:J7,html:zme,lheading:Z7,list:Rme,newline:jme,paragraph:Bme,table:W7,text:Ime},i9=K7(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,J7).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,e9).getRegex(),Hme={...r9,lheading:Fme,table:i9,paragraph:K7(Q7).replace(`hr`,J7).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,i9).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,e9).getRegex()},Ume={...r9,html:K7(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,t9).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:W7,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:K7(Q7).replace(`hr`,J7).replace(`heading`,` *#{1,6} *[^
@@ -429,7 +429,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
429
429
  https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};se(`before:highlight`,a);let o=a.result?a.result:v(a.language,a.code,n);return o.code=a.code,se(`after:highlight`,o),o}function v(e,n,i,a){let c=Object.create(null);function u(e,t){return e.keywords[t]}function d(){if(!O.keywords){k.addText(ie);return}let e=0;O.keywordPatternRe.lastIndex=0;let t=O.keywordPatternRe.exec(ie),n=``;for(;t;){n+=ie.substring(e,t.index);let r=D.case_insensitive?t[0].toLowerCase():t[0],i=u(O,r);if(i){let[e,a]=i;if(k.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=Pe&&(ae+=a),e.startsWith(`_`))n+=t[0];else{let n=D.classNameAliases[e]||e;m(t[0],n)}}else n+=t[0];e=O.keywordPatternRe.lastIndex,t=O.keywordPatternRe.exec(ie)}n+=ie.substring(e),k.addText(n)}function f(){if(ie===``)return;let e=null;if(typeof O.subLanguage==`string`){if(!t[O.subLanguage]){k.addText(ie);return}e=v(O.subLanguage,ie,!0,ne[O.subLanguage]),ne[O.subLanguage]=e._top}else e=S(ie,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(ae+=e.relevance),k.__addSublanguage(e._emitter,e.language)}function p(){O.subLanguage==null?d():f(),ie=``}function m(e,t){e!==``&&(k.startScope(t),k.addText(e),k.endScope())}function h(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=D.classNameAliases[e[n]]||e[n],i=t[n];r?m(i,r):(ie=i,d(),ie=``),n++}}function g(e,t){return e.scope&&typeof e.scope==`string`&&k.openNode(D.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(m(ie,D.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),ie=``):e.beginScope._multi&&(h(e.beginScope,t),ie=``)),O=Object.create(e,{parent:{value:O}}),O}function _(e,t,n){let i=x(e.endRe,n);if(i){if(e[`on:end`]){let n=new r(e);e[`on:end`](t,n),n.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,t,n)}function y(e){return O.matcher.regexIndex===0?(ie+=e[0],1):(oe=!0,0)}function b(e){let t=e[0],n=e.rule,i=new r(n),a=[n.__beforeBegin,n[`on:begin`]];for(let n of a)if(n&&(n(e,i),i.isMatchIgnored))return y(t);return n.skip?ie+=t:(n.excludeBegin&&(ie+=t),p(),!n.returnBegin&&!n.excludeBegin&&(ie=t)),g(n,e),n.returnBegin?0:t.length}function C(e){let t=e[0],r=n.substring(e.index),i=_(O,e,r);if(!i)return Ne;let a=O;O.endScope&&O.endScope._wrap?(p(),m(t,O.endScope._wrap)):O.endScope&&O.endScope._multi?(p(),h(O.endScope,e)):a.skip?ie+=t:(a.returnEnd||a.excludeEnd||(ie+=t),p(),a.excludeEnd&&(ie=t));do O.scope&&k.closeNode(),!O.skip&&!O.subLanguage&&(ae+=O.relevance),O=O.parent;while(O!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function w(){let e=[];for(let t=O;t!==D;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>k.openNode(e))}let T={};function E(t,r){let a=r&&r[0];if(ie+=t,a==null)return p(),0;if(T.type===`begin`&&r.type===`end`&&T.index===r.index&&a===``){if(ie+=n.slice(r.index,r.index+1),!o){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=T.rule,t}return 1}if(T=r,r.type===`begin`)return b(r);if(r.type===`illegal`&&!i){let e=Error(`Illegal lexeme "`+a+`" for mode "`+(O.scope||`<unnamed>`)+`"`);throw e.mode=O,e}else if(r.type===`end`){let e=C(r);if(e!==Ne)return e}if(r.type===`illegal`&&a===``)return ie+=`
430
430
  `,1;if(j>1e5&&j>r.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return ie+=a,a.length}let D=re(e);if(!D)throw F(s.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let ee=Ee(D),te=``,O=a||ee,ne={},k=new l.__emitter(l);w();let ie=``,ae=0,A=0,j=0,oe=!1;try{if(D.__emitTokens)D.__emitTokens(n,k);else{for(O.matcher.considerAll();;){j++,oe?oe=!1:O.matcher.considerAll(),O.matcher.lastIndex=A;let e=O.matcher.exec(n);if(!e)break;let t=E(n.substring(A,e.index),e);A=e.index+t}E(n.substring(A))}return k.finalize(),te=k.toHTML(),{language:e,value:te,relevance:ae,illegal:!1,_emitter:k,_top:O}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:je(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:te},_emitter:k};if(o)return{language:e,value:je(n),illegal:!1,relevance:0,errorRaised:t,_emitter:k,_top:O};throw t}}function b(e){let t={value:je(e),illegal:!1,relevance:0,_top:c,_emitter:new l.__emitter(l)};return t._emitter.addText(e),t}function S(e,n){n=n||l.languages||Object.keys(t);let r=b(e),i=n.filter(re).filter(ae).map(t=>v(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(re(e.language).supersetOf===t.language)return 1;if(re(t.language).supersetOf===e.language)return-1}return 0}),s=a;return s.secondBest=o,s}function C(e,t,n){let r=t&&i[t]||n;e.classList.add(`hljs`),e.classList.add(`language-${r}`)}function w(e){let t=null,n=d(e);if(u(n))return;if(se(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(l.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),l.throwUnescapedHTML))throw new Ae(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?p(r,{language:n,ignoreIllegals:!0}):S(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,C(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),se(`after:highlightElement`,{el:e,result:i,text:r})}function T(e){l=Me(l,e)}let E=()=>{te(),I(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function D(){te(),I(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let ee=!1;function te(){function e(){te()}if(document.readyState===`loading`){ee||window.addEventListener(`DOMContentLoaded`,e,!1),ee=!0;return}document.querySelectorAll(l.cssSelector).forEach(w)}function O(n,r){let i=null;try{i=r(e)}catch(e){if(F(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),o)F(e);else throw e;i=c}i.name||=n,t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&ie(i.aliases,{languageName:n})}function ne(e){delete t[e];for(let t of Object.keys(i))i[t]===e&&delete i[t]}function k(){return Object.keys(t)}function re(e){return e=(e||``).toLowerCase(),t[e]||t[i[e]]}function ie(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{i[e.toLowerCase()]=t})}function ae(e){let t=re(e);return t&&!t.disableAutodetect}function A(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function j(e){A(e),a.push(e)}function oe(e){let t=a.indexOf(e);t!==-1&&a.splice(t,1)}function se(e,t){let n=e;a.forEach(function(e){e[n]&&e[n](t)})}function le(e){return I(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),I(`10.7.0`,`Please use highlightElement now.`),w(e)}Object.assign(e,{highlight:p,highlightAuto:S,highlightAll:te,highlightElement:w,highlightBlock:le,configure:T,initHighlighting:E,initHighlightingOnLoad:D,registerLanguage:O,unregisterLanguage:ne,listLanguages:k,getLanguage:re,registerAliases:ie,autoDetection:ae,inherit:Me,addPlugin:j,removePlugin:oe}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=ke,e.regex={concat:_,lookahead:m,either:y,optional:g,anyNumberOfTimes:h};for(let e in ce)typeof ce[e]==`object`&&n(ce[e]);return Object.assign(e,ce),e},Ie=Fe({});Ie.newInstance=()=>Fe({}),t.exports=Ie,Ie.HighlightJS=Ie,Ie.default=Ie})),_he=l(((e,t)=>{function n(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}t.exports=n})),vhe=l(((e,t)=>{function n(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}t.exports=n})),yhe=l(((e,t)=>{function n(e){let t=e.regex,n=e.COMMENT(`//`,`$`,{contains:[{begin:/\\\n/}]}),r=`[a-zA-Z_]\\w*::`,i=`(decltype\\(auto\\)|`+t.optional(r)+`[a-zA-Z_]\\w*`+t.optional(`<[^<>]+>`)+`)`,a={className:`type`,variants:[{begin:`\\b[a-z\\d_]*_t\\b`},{match:/\batomic_[a-z]{3,6}\b/}]},o={className:`string`,variants:[{begin:`(u8?|U|L)?"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]},{begin:`(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)`,end:`'`,illegal:`.`},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:`number`,variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},c={className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:`string`}),{className:`string`,begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},l={className:`title`,begin:t.optional(r)+e.IDENT_RE,relevance:0},u=t.optional(r)+e.IDENT_RE+`\\s*\\(`,d={keyword:`asm.auto.break.case.continue.default.do.else.enum.extern.for.fortran.goto.if.inline.register.restrict.return.sizeof.typeof.typeof_unqual.struct.switch.typedef.union.volatile.while._Alignas._Alignof._Atomic._Generic._Noreturn._Static_assert._Thread_local.alignas.alignof.noreturn.static_assert.thread_local._Pragma`.split(`.`),type:`float.double.signed.unsigned.int.short.long.char.void._Bool._BitInt._Complex._Imaginary._Decimal32._Decimal64._Decimal96._Decimal128._Decimal64x._Decimal128x._Float16._Float32._Float64._Float128._Float32x._Float64x._Float128x.const.static.constexpr.complex.bool.imaginary`.split(`.`),literal:`true false NULL`,built_in:`std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr`},f=[c,a,n,e.C_BLOCK_COMMENT_MODE,s,o],p={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:`new throw return else`,end:/;/}],keywords:d,contains:f.concat([{begin:/\(/,end:/\)/,keywords:d,contains:f.concat([`self`]),relevance:0}]),relevance:0},m={begin:`(`+i+`[\\*&\\s]+)+`+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:d,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:`decltype\\(auto\\)`,keywords:d,relevance:0},{begin:u,returnBegin:!0,contains:[e.inherit(l,{className:`title.function`})],relevance:0},{relevance:0,match:/,/},{className:`params`,begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,s,a,{begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[`self`,n,e.C_BLOCK_COMMENT_MODE,o,s,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:`C`,aliases:[`h`],keywords:d,disableAutodetect:!0,illegal:`</`,contains:[].concat(p,m,f,[c,{begin:e.IDENT_RE+`::`,keywords:d},{className:`class`,beginKeywords:`enum class struct union`,end:/[{;:<>=]/,contains:[{beginKeywords:`final class struct`},e.TITLE_MODE]}]),exports:{preprocessor:c,strings:o,keywords:d}}}t.exports=n})),bhe=l(((e,t)=>{function n(e){let t=e.regex,n=e.COMMENT(`//`,`$`,{contains:[{begin:/\\\n/}]}),r=`[a-zA-Z_]\\w*::`,i=`(?!struct)(decltype\\(auto\\)|`+t.optional(r)+`[a-zA-Z_]\\w*`+t.optional(`<[^<>]+>`)+`)`,a={className:`type`,begin:`\\b[a-z\\d_]*_t\\b`},o={className:`string`,variants:[{begin:`(u8?|U|L)?"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]},{begin:`(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)`,end:`'`,illegal:`.`},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:`number`,variants:[{begin:`[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)`},{begin:`[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)`}],relevance:0},c={className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:`string`}),{className:`string`,begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},l={className:`title`,begin:t.optional(r)+e.IDENT_RE,relevance:0},u=t.optional(r)+e.IDENT_RE+`\\s*\\(`,d=`alignas.alignof.and.and_eq.asm.atomic_cancel.atomic_commit.atomic_noexcept.auto.bitand.bitor.break.case.catch.class.co_await.co_return.co_yield.compl.concept.const_cast|10.consteval.constexpr.constinit.continue.decltype.default.delete.do.dynamic_cast|10.else.enum.explicit.export.extern.false.final.for.friend.goto.if.import.inline.module.mutable.namespace.new.noexcept.not.not_eq.nullptr.operator.or.or_eq.override.private.protected.public.reflexpr.register.reinterpret_cast|10.requires.return.sizeof.static_assert.static_cast|10.struct.switch.synchronized.template.this.thread_local.throw.transaction_safe.transaction_safe_dynamic.true.try.typedef.typeid.typename.union.using.virtual.volatile.while.xor.xor_eq`.split(`.`),f=[`bool`,`char`,`char16_t`,`char32_t`,`char8_t`,`double`,`float`,`int`,`long`,`short`,`void`,`wchar_t`,`unsigned`,`signed`,`const`,`static`],p=`any.auto_ptr.barrier.binary_semaphore.bitset.complex.condition_variable.condition_variable_any.counting_semaphore.deque.false_type.flat_map.flat_set.future.imaginary.initializer_list.istringstream.jthread.latch.lock_guard.multimap.multiset.mutex.optional.ostringstream.packaged_task.pair.promise.priority_queue.queue.recursive_mutex.recursive_timed_mutex.scoped_lock.set.shared_future.shared_lock.shared_mutex.shared_timed_mutex.shared_ptr.stack.string_view.stringstream.timed_mutex.thread.true_type.tuple.unique_lock.unique_ptr.unordered_map.unordered_multimap.unordered_multiset.unordered_set.variant.vector.weak_ptr.wstring.wstring_view`.split(`.`),m=`abort.abs.acos.apply.as_const.asin.atan.atan2.calloc.ceil.cerr.cin.clog.cos.cosh.cout.declval.endl.exchange.exit.exp.fabs.floor.fmod.forward.fprintf.fputs.free.frexp.fscanf.future.invoke.isalnum.isalpha.iscntrl.isdigit.isgraph.islower.isprint.ispunct.isspace.isupper.isxdigit.labs.launder.ldexp.log.log10.make_pair.make_shared.make_shared_for_overwrite.make_tuple.make_unique.malloc.memchr.memcmp.memcpy.memset.modf.move.pow.printf.putchar.puts.realloc.scanf.sin.sinh.snprintf.sprintf.sqrt.sscanf.std.stderr.stdin.stdout.strcat.strchr.strcmp.strcpy.strcspn.strlen.strncat.strncmp.strncpy.strpbrk.strrchr.strspn.strstr.swap.tan.tanh.terminate.to_underlying.tolower.toupper.vfprintf.visit.vprintf.vsprintf`.split(`.`),h={type:f,keyword:d,literal:[`NULL`,`false`,`nullopt`,`nullptr`,`true`],built_in:[`_Pragma`],_type_hints:p},g={className:`function.dispatch`,relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[g,c,a,n,e.C_BLOCK_COMMENT_MODE,s,o],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:`new throw return else`,end:/;/}],keywords:h,contains:_.concat([{begin:/\(/,end:/\)/,keywords:h,contains:_.concat([`self`]),relevance:0}]),relevance:0},y={className:`function`,begin:`(`+i+`[\\*&\\s]+)+`+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:h,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:`decltype\\(auto\\)`,keywords:h,relevance:0},{begin:u,returnBegin:!0,contains:[l],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,s]},{relevance:0,match:/,/},{className:`params`,begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,s,a,{begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[`self`,n,e.C_BLOCK_COMMENT_MODE,o,s,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:`C++`,aliases:[`cc`,`c++`,`h++`,`hpp`,`hh`,`hxx`,`cxx`],keywords:h,illegal:`</`,classNameAliases:{"function.dispatch":`built_in`},contains:[].concat(v,y,g,_,[c,{begin:`\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)`,end:`>`,keywords:h,contains:[`self`,a]},{begin:e.IDENT_RE+`::`,keywords:h},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:`keyword`,3:`title.class`}}])}}t.exports=n})),xhe=l(((e,t)=>{function n(e){let t=[`bool`,`byte`,`char`,`decimal`,`delegate`,`double`,`dynamic`,`enum`,`float`,`int`,`long`,`nint`,`nuint`,`object`,`sbyte`,`short`,`string`,`ulong`,`uint`,`ushort`],n=[`public`,`private`,`protected`,`static`,`internal`,`protected`,`abstract`,`async`,`extern`,`override`,`unsafe`,`virtual`,`new`,`sealed`,`partial`],r={keyword:`abstract.as.base.break.case.catch.class.const.continue.do.else.event.explicit.extern.finally.fixed.for.foreach.goto.if.implicit.in.interface.internal.is.lock.namespace.new.operator.out.override.params.private.protected.public.readonly.record.ref.return.scoped.sealed.sizeof.stackalloc.static.struct.switch.this.throw.try.typeof.unchecked.unsafe.using.virtual.void.volatile.while`.split(`.`).concat(`add.alias.and.ascending.args.async.await.by.descending.dynamic.equals.file.from.get.global.group.init.into.join.let.nameof.not.notnull.on.or.orderby.partial.record.remove.required.scoped.select.set.unmanaged.value|0.var.when.where.with.yield`.split(`.`)),built_in:t,literal:[`default`,`false`,`null`,`true`]},i=e.inherit(e.TITLE_MODE,{begin:`[a-zA-Z](\\.?\\w)*`}),a={className:`number`,variants:[{begin:`\\b(0b[01']+)`},{begin:`(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)`},{begin:`(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)`}],relevance:0},o={className:`string`,begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},s={className:`string`,begin:`@"`,end:`"`,contains:[{begin:`""`}]},c=e.inherit(s,{illegal:/\n/}),l={className:`subst`,begin:/\{/,end:/\}/,keywords:r},u=e.inherit(l,{illegal:/\n/}),d={className:`string`,begin:/\$"/,end:`"`,illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,u]},f={className:`string`,begin:/\$@"/,end:`"`,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:`""`},l]},p=e.inherit(f,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:`""`},u]});l.contains=[f,d,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],u.contains=[p,d,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let m={variants:[o,f,d,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h={begin:`<`,end:`>`,contains:[{beginKeywords:`in out`},i]},g=e.IDENT_RE+`(<`+e.IDENT_RE+`(\\s*,\\s*`+e.IDENT_RE+`)*>)?(\\[\\])?`,_={begin:`@`+e.IDENT_RE,relevance:0};return{name:`C#`,aliases:[`cs`,`c#`],keywords:r,illegal:/::/,contains:[e.COMMENT(`///`,`$`,{returnBegin:!0,contains:[{className:`doctag`,variants:[{begin:`///`,relevance:0},{begin:`<!--|-->`},{begin:`</?`,end:`>`}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`meta`,begin:`#`,end:`$`,keywords:{keyword:`if else elif endif define undef warning error line region endregion pragma checksum`}},m,a,{beginKeywords:`class interface`,relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:`where class`},i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`namespace`,relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`record`,relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:`meta`,begin:`^\\s*\\[(?=[\\w])`,excludeBegin:!0,end:`\\]`,excludeEnd:!0,contains:[{className:`string`,begin:/"/,end:/"/}]},{beginKeywords:`new return throw await else`,relevance:0},{className:`function`,begin:`(`+g+`\\s+)+`+e.IDENT_RE+`\\s*(<[^=]+>\\s*)?\\(`,returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:r,contains:[{beginKeywords:n.join(` `),relevance:0},{begin:e.IDENT_RE+`\\s*(<[^=]+>\\s*)?\\(`,returnBegin:!0,contains:[e.TITLE_MODE,h],relevance:0},{match:/\(\)/},{className:`params`,begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,relevance:0,contains:[m,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},_]}}t.exports=n})),She=l(((e,t)=>{var n=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),r=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),i=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),a=[...r,...i],o=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),s=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),c=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),l=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function u(e){let t=e.regex,r=n(e),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},u=/@-?\w[\w]*(-\w+)*/,d=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[r.BLOCK_COMMENT,i,r.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},r.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+s.join(`|`)+`)`},{begin:`:(:)?(`+c.join(`|`)+`)`}]},r.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+l.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[r.BLOCK_COMMENT,r.HEXCOLOR,r.IMPORTANT,r.CSS_NUMBER_MODE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...d,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},r.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:u},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:o.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...d,r.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+a.join(`|`)+`)\\b`}]}}t.exports=u})),Che=l(((e,t)=>{function n(e){let t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:`>`,subLanguage:`xml`,relevance:0},r={begin:`^[-\\*]{3,}`,end:`$`},i={className:`code`,variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:`(~{3,})[^~](.|\\n)*?\\1~*[ ]*`},{begin:"```",end:"```+[ ]*$"},{begin:`~~~`,end:`~~~+[ ]*$`},{begin:"`.+?`"},{begin:`(?=^( {4}|\\t))`,contains:[{begin:`^( {4}|\\t)`,end:`(\\n)$`}],relevance:0}]},a={className:`bullet`,begin:`^[ ]*([*+-]|(\\d+\\.))(?=\\s+)`,end:`\\s+`,excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:`symbol`,begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:`link`,begin:/:\s*/,end:/$/,excludeBegin:!0}]},s={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:`string`,relevance:0,begin:`\\[`,end:`\\]`,excludeBegin:!0,returnEnd:!0},{className:`link`,relevance:0,begin:`\\]\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0},{className:`symbol`,relevance:0,begin:`\\]\\[`,end:`\\]`,excludeBegin:!0,excludeEnd:!0}]},c={className:`strong`,contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},l={className:`emphasis`,contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),d=e.inherit(l,{contains:[]});c.contains.push(d),l.contains.push(u);let f=[n,s];return[c,l,u,d].forEach(e=>{e.contains=e.contains.concat(f)}),f=f.concat(c,l),{name:`Markdown`,aliases:[`md`,`mkdown`,`mkd`],contains:[{className:`section`,variants:[{begin:`^#{1,6}`,end:`$`,contains:f},{begin:`(?=^.+?\\n[=-]{2,}$)`,contains:[{begin:`^[=-]*$`},{begin:`^`,end:`\\n`,contains:f}]}]},n,a,c,l,{className:`quote`,begin:`^>\\s+`,contains:f,end:`$`},i,r,s,o,{scope:`literal`,match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}t.exports=n})),whe=l(((e,t)=>{function n(e){let t=e.regex;return{name:`Diff`,aliases:[`patch`],contains:[{className:`meta`,relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:`comment`,variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:`addition`,begin:/^\+/,end:/$/},{className:`deletion`,begin:/^-/,end:/$/},{className:`addition`,begin:/^!/,end:/$/}]}}t.exports=n})),The=l(((e,t)=>{function n(e){let t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),a={"variable.constant":[`__FILE__`,`__LINE__`,`__ENCODING__`],"variable.language":[`self`,`super`],keyword:`alias.and.begin.BEGIN.break.case.class.defined.do.else.elsif.end.END.ensure.for.if.in.module.next.not.or.redo.require.rescue.retry.return.then.undef.unless.until.when.while.yield.include.extend.prepend.public.private.protected.raise.throw`.split(`.`),built_in:[`proc`,`lambda`,`attr_accessor`,`attr_reader`,`attr_writer`,`define_method`,`private_constant`,`module_function`],literal:[`true`,`false`,`nil`]},o={className:`doctag`,begin:`@[A-Za-z]+`},s={begin:`#<`,end:`>`},c=[e.COMMENT(`#`,`$`,{contains:[o]}),e.COMMENT(`^=begin`,`^=end`,{contains:[o],relevance:10}),e.COMMENT(`^__END__`,e.MATCH_NOTHING_RE)],l={className:`subst`,begin:/#\{/,end:/\}/,keywords:a},u={className:`string`,contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,l]})]}]},d=`[0-9](_?[0-9])*`,f={className:`number`,relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${d}))?([eE][+-]?(${d})|r)?i?\\b`},{begin:`\\b0[dD][0-9](_?[0-9])*r?i?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*r?i?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*r?i?\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b`},{begin:`\\b0(_?[0-7])+r?i?\\b`}]},p={variants:[{match:/\(\)/},{className:`params`,begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},m=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:`title.class`,4:`title.class.inherited`},keywords:a},{match:[/(include|extend)\s+/,i],scope:{2:`title.class`},keywords:a},{relevance:0,match:[i,/\.new[. (]/],scope:{1:`title.class`}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`},{relevance:0,match:r,scope:`title.class`},{match:[/def/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[p]},{begin:e.IDENT_RE+`::`},{className:`symbol`,begin:e.UNDERSCORE_IDENT_RE+`(!|\\?)?:`,relevance:0},{className:`symbol`,begin:`:(?!\\s)`,contains:[u,{begin:n}],relevance:0},f,{className:`variable`,begin:`(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])`},{className:`params`,begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:`(`+e.RE_STARTERS_RE+`|unless)\\s*`,keywords:`unless`,contains:[{className:`regexp`,contains:[e.BACKSLASH_ESCAPE,l],illegal:/\n/,variants:[{begin:`/`,end:`/[a-z]*`},{begin:/%r\{/,end:/\}[a-z]*/},{begin:`%r\\(`,end:`\\)[a-z]*`},{begin:`%r!`,end:`![a-z]*`},{begin:`%r\\[`,end:`\\][a-z]*`}]}].concat(s,c),relevance:0}].concat(s,c);l.contains=m,p.contains=m;let h=[{begin:/^\s*=>/,starts:{end:`$`,contains:m}},{className:`meta.prompt`,begin:`^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])`,starts:{end:`$`,keywords:a,contains:m}}];return c.unshift(s),{name:`Ruby`,aliases:[`rb`,`gemspec`,`podspec`,`thor`,`irb`],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:`ruby`})].concat(h,c,m)}}t.exports=n})),Ehe=l(((e,t)=>{function n(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}t.exports=n})),Dhe=l(((e,t)=>{function n(e){let t=e.regex;return{name:`GraphQL`,aliases:[`gql`],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:[`query`,`mutation`,`subscription`,`type`,`input`,`schema`,`directive`,`interface`,`union`,`scalar`,`fragment`,`enum`,`on`],literal:[`true`,`false`,`null`]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{scope:`punctuation`,match:/[.]{3}/,relevance:0},{scope:`punctuation`,begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:`variable`,begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:`meta`,match:/@\w+/,excludeEnd:!0},{scope:`symbol`,begin:t.concat(/[_A-Za-z][_0-9A-Za-z]*/,t.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}t.exports=n})),Ohe=l(((e,t)=>{function n(e){let t=e.regex,n={className:`number`,relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let i={className:`variable`,variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},a={className:`literal`,begin:/\bon|off|true|false|yes|no\b/},o={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:`'''`,end:`'''`,relevance:10},{begin:`"""`,end:`"""`,relevance:10},{begin:`"`,end:`"`},{begin:`'`,end:`'`}]},s={begin:/\[/,end:/\]/,contains:[r,a,i,o,n,`self`],relevance:0},c=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:`TOML, also INI`,aliases:[`toml`],case_insensitive:!0,illegal:/\S/,contains:[r,{className:`section`,begin:/\[+/,end:/\]+/},{begin:t.concat(c,`(\\s*\\.\\s*`,c,`)*`,t.lookahead(/\s*=\s*[^#\s]/)),className:`attr`,starts:{end:/$/,contains:[r,s,a,i,o,n]}}]}}t.exports=n})),khe=l(((e,t)=>{var n=`[0-9](_*[0-9])*`,r=`\\.(${n})`,i=`[0-9a-fA-F](_*[0-9a-fA-F])*`,a={className:`number`,variants:[{begin:`(\\b(${n})((${r})|\\.)?|(${r}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${r})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${r})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${i})\\.?|(${i})?\\.(${i}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(0|[1-9](_*[0-9])*)[lL]?\\b`},{begin:`\\b0[xX](${i})[lL]?\\b`},{begin:`\\b0(_*[0-7])*[lL]?\\b`},{begin:`\\b0[bB][01](_*[01])*[lL]?\\b`}],relevance:0};function o(e,t,n){return n===-1?``:e.replace(t,r=>o(e,t,n-1))}function s(e){let t=e.regex,n=`[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,r=n+o(`(?:<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~(?:\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~)*>)?`,/~~~/g,2),i={keyword:`synchronized.abstract.private.var.static.if.const .for.while.strictfp.finally.protected.import.native.final.void.enum.else.break.transient.catch.instanceof.volatile.case.assert.package.default.public.try.switch.continue.throws.protected.public.private.module.requires.exports.do.sealed.yield.permits.goto.when`.split(`.`),literal:[`false`,`true`,`null`],type:[`char`,`boolean`,`long`,`float`,`int`,`byte`,`short`,`double`],built_in:[`super`,`this`]},s={className:`meta`,begin:`@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,contains:[{begin:/\(/,end:/\)/,contains:[`self`]}]},c={className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:`Java`,aliases:[`jsp`],keywords:i,illegal:/<\/|#/,contains:[e.COMMENT(`/\\*\\*`,`\\*/`,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:`doctag`,begin:`@[A-Za-z]+`}]}),{begin:/import java\.[a-z]+\./,keywords:`import`,relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:`string`,contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:`keyword`,3:`title.class`}},{match:/non-sealed/,scope:`keyword`},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:`type`,3:`variable`,5:`operator`}},{begin:[/record/,/\s+/,n],className:{1:`keyword`,3:`title.class`},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`new throw return else`,relevance:0},{begin:[`(?:`+r+`\\s+)`,e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:`title.function`},keywords:i,contains:[{className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},a,s]}}t.exports=s})),Ahe=l(((e,t)=>{var n=`[A-Za-z$_][0-9A-Za-z$_]*`,r=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),i=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],a=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),o=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],s=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],c=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],l=[].concat(s,a,o);function u(e){let t=e.regex,u=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},d=n,f={begin:`<>`,end:`</>`},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(u(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},h={$pattern:n,keyword:r,literal:i,built_in:l,"variable.language":c},g=`[0-9](_?[0-9])*`,_=`\\.(${g})`,v=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,y={className:`number`,variants:[{begin:`(\\b(${v})((${_})|\\.)?|(${_}))[eE][+-]?(${g})\\b`},{begin:`\\b(${v})\\b((${_})\\b|\\.)?|(${_})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},b={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:h,contains:[]},x={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`xml`}},S={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`css`}},C={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`graphql`}},w={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},T={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},E=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,{match:/\$\d+/},y];b.contains=E.concat({begin:/\{/,end:/\}/,keywords:h,contains:[`self`].concat(E)});let D=[].concat(T,b.contains),ee=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),te={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee},O={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,t.concat(d,`(`,t.concat(/\./,d),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,d],scope:{1:`keyword`,3:`title.class`}}]},ne={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...a,...o]}},k={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},re={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[te],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function ae(e){return t.concat(`(?!`,e.join(`|`),`)`)}let A={match:t.concat(/\b/,ae([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},j={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},oe={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},te]},se=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,ce={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[te]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:ee,CLASS_REFERENCE:ne},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),k,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,ne,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},ce,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[T,e.REGEXP_MODE,{className:`function`,begin:se,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:f.begin,end:f.end},{match:p},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:`xml`,contains:[{begin:m.begin,end:m.end,skip:!0,contains:[`self`]}]}]},re,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[te,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},j,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[te]},A,ie,O,oe,{match:/\$[(.]/}]}}t.exports=u})),jhe=l(((e,t)=>{function n(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}t.exports=n})),Mhe=l(((e,t)=>{var n=`[0-9](_*[0-9])*`,r=`\\.(${n})`,i=`[0-9a-fA-F](_*[0-9a-fA-F])*`,a={className:`number`,variants:[{begin:`(\\b(${n})((${r})|\\.)?|(${r}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${r})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${r})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${i})\\.?|(${i})?\\.(${i}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(0|[1-9](_*[0-9])*)[lL]?\\b`},{begin:`\\b0[xX](${i})[lL]?\\b`},{begin:`\\b0(_*[0-7])*[lL]?\\b`},{begin:`\\b0[bB][01](_*[01])*[lL]?\\b`}],relevance:0};function o(e){let t={keyword:`abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual`,built_in:`Byte Short Char Int Long Boolean Float Double Void Unit Nothing`,literal:`true false null`},n={className:`keyword`,begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:`symbol`,begin:/@\w+/}]}},r={className:`symbol`,begin:e.UNDERSCORE_IDENT_RE+`@`},i={className:`subst`,begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},o={className:`variable`,begin:`\\$`+e.UNDERSCORE_IDENT_RE},s={className:`string`,variants:[{begin:`"""`,end:`"""(?=[^"])`,contains:[o,i]},{begin:`'`,end:`'`,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:`"`,end:`"`,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,o,i]}]};i.contains.push(s);let c={className:`meta`,begin:`@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*`+e.UNDERSCORE_IDENT_RE+`)?`},l={className:`meta`,begin:`@`+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:`string`}),`self`]}]},u=a,d=e.COMMENT(`/\\*`,`\\*/`,{contains:[e.C_BLOCK_COMMENT_MODE]}),f={variants:[{className:`type`,begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},p=f;return p.variants[1].contains=[f],f.variants[1].contains=[p],{name:`Kotlin`,aliases:[`kt`,`kts`],keywords:t,contains:[e.COMMENT(`/\\*\\*`,`\\*/`,{relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`}]}),e.C_LINE_COMMENT_MODE,d,n,r,c,l,{className:`function`,beginKeywords:`fun`,end:`[(]|$`,returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+`\\s*\\(`,returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:`type`,begin:/</,end:/>/,keywords:`reified`,relevance:0},{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[f,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,c,l,s,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:`title.class`},keywords:`class interface trait`,end:/[:\{(]|$/,excludeEnd:!0,illegal:`extends implements`,contains:[{beginKeywords:`public protected internal private constructor`},e.UNDERSCORE_TITLE_MODE,{className:`type`,begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,l]},s,{className:`meta`,begin:`^#!/usr/bin/env`,end:`$`,illegal:`
431
431
  `},u]}}t.exports=o})),Nhe=l(((e,t)=>{var n=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),r=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),i=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),a=[...r,...i],o=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),s=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),c=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),l=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse(),u=s.concat(c).sort().reverse();function d(e){let t=n(e),r=u,i=`([\\w-]+|@\\{[\\w-]+\\})`,d=[],f=[],p=function(e){return{className:`string`,begin:`~?`+e+`.*?`+e}},m=function(e,t,n){return{className:e,begin:t,relevance:n}},h={$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:o.join(` `)},g={begin:`\\(`,end:`\\)`,contains:f,keywords:h,relevance:0};f.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p(`'`),p(`"`),t.CSS_NUMBER_MODE,{begin:`(url|data-uri)\\(`,starts:{className:`string`,end:`[\\)\\n]`,excludeEnd:!0}},t.HEXCOLOR,g,m(`variable`,`@@?[\\w-]+`,10),m(`variable`,`@\\{[\\w-]+\\}`),m(`built_in`,"~?`[^`]*?`"),{className:`attribute`,begin:`[\\w-]+\\s*:`,end:`:`,returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:`and not`},t.FUNCTION_DISPATCH);let _=f.concat({begin:/\{/,end:/\}/,contains:d}),v={beginKeywords:`when`,endsWithParent:!0,contains:[{beginKeywords:`and not`}].concat(f)},y={begin:`([\\w-]+|@\\{[\\w-]+\\})\\s*:`,returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+l.join(`|`)+`)\\b`,end:/(?=:)/,starts:{endsWithParent:!0,illegal:`[<=$]`,relevance:0,contains:f}}]},b={className:`keyword`,begin:`@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b`,starts:{end:`[;{}]`,keywords:h,returnEnd:!0,contains:f,relevance:0}},x={className:`variable`,variants:[{begin:`@[\\w-]+\\s*:`,relevance:15},{begin:`@[\\w-]+`}],starts:{end:`[;}]`,returnEnd:!0,contains:_}},S={variants:[{begin:`[\\.#:&\\[>]`,end:`[;{}]`},{begin:i,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,v,m(`keyword`,`all\\b`),m(`variable`,`@\\{[\\w-]+\\}`),{begin:`\\b(`+a.join(`|`)+`)\\b`,className:`selector-tag`},t.CSS_NUMBER_MODE,m(`selector-tag`,i,0),m(`selector-id`,`#([\\w-]+|@\\{[\\w-]+\\})`),m(`selector-class`,`\\.([\\w-]+|@\\{[\\w-]+\\})`,0),m(`selector-tag`,`&`,0),t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,begin:`:(`+s.join(`|`)+`)`},{className:`selector-pseudo`,begin:`:(:)?(`+c.join(`|`)+`)`},{begin:/\(/,end:/\)/,relevance:0,contains:_},{begin:`!important`},t.FUNCTION_DISPATCH]},C={begin:`[\\w-]+:(:)?(${r.join(`|`)})`,returnBegin:!0,contains:[S]};return d.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,x,C,y,S,v,t.FUNCTION_DISPATCH),{name:`Less`,case_insensitive:!0,illegal:`[=>'/<($"]`,contains:d}}t.exports=d})),Phe=l(((e,t)=>{function n(e){let t=`\\[=*\\[`,n=`\\]=*\\]`,r={begin:t,end:n,contains:[`self`]},i=[e.COMMENT(`--(?!\\[=*\\[)`,`$`),e.COMMENT(`--\\[=*\\[`,n,{contains:[r],relevance:10})];return{name:`Lua`,aliases:[`pluto`],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:`true false nil`,keyword:`and break do else elseif end for goto if in local not or repeat return then until while`,built_in:`_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove`},contains:i.concat([{className:`function`,beginKeywords:`function`,end:`\\)`,contains:[e.inherit(e.TITLE_MODE,{begin:`([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*`}),{className:`params`,begin:`\\(`,endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:`string`,begin:t,end:n,contains:[r],relevance:5}])}}t.exports=n})),Fhe=l(((e,t)=>{function n(e){let t={className:`variable`,variants:[{begin:`\\$\\(`+e.UNDERSCORE_IDENT_RE+`\\)`,contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:`variable`,begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:`subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value`},contains:[t,n]},i={begin:`^`+e.UNDERSCORE_IDENT_RE+`\\s*(?=[:+?]?=)`},a={className:`meta`,begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:`.PHONY`}},o={className:`section`,begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:`Makefile`,aliases:[`mk`,`mak`,`make`],keywords:{$pattern:/[\w-]+/,keyword:`define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath`},contains:[e.HASH_COMMENT_MODE,t,n,r,i,a,o]}}t.exports=n})),Ihe=l(((e,t)=>{function n(e){let t=e.regex,n=`abs.accept.alarm.and.atan2.bind.binmode.bless.break.caller.chdir.chmod.chomp.chop.chown.chr.chroot.class.close.closedir.connect.continue.cos.crypt.dbmclose.dbmopen.defined.delete.die.do.dump.each.else.elsif.endgrent.endhostent.endnetent.endprotoent.endpwent.endservent.eof.eval.exec.exists.exit.exp.fcntl.field.fileno.flock.for.foreach.fork.format.formline.getc.getgrent.getgrgid.getgrnam.gethostbyaddr.gethostbyname.gethostent.getlogin.getnetbyaddr.getnetbyname.getnetent.getpeername.getpgrp.getpriority.getprotobyname.getprotobynumber.getprotoent.getpwent.getpwnam.getpwuid.getservbyname.getservbyport.getservent.getsockname.getsockopt.given.glob.gmtime.goto.grep.gt.hex.if.index.int.ioctl.join.keys.kill.last.lc.lcfirst.length.link.listen.local.localtime.log.lstat.lt.ma.map.method.mkdir.msgctl.msgget.msgrcv.msgsnd.my.ne.next.no.not.oct.open.opendir.or.ord.our.pack.package.pipe.pop.pos.print.printf.prototype.push.q|0.qq.quotemeta.qw.qx.rand.read.readdir.readline.readlink.readpipe.recv.redo.ref.rename.require.reset.return.reverse.rewinddir.rindex.rmdir.say.scalar.seek.seekdir.select.semctl.semget.semop.send.setgrent.sethostent.setnetent.setpgrp.setpriority.setprotoent.setpwent.setservent.setsockopt.shift.shmctl.shmget.shmread.shmwrite.shutdown.sin.sleep.socket.socketpair.sort.splice.split.sprintf.sqrt.srand.stat.state.study.sub.substr.symlink.syscall.sysopen.sysread.sysseek.system.syswrite.tell.telldir.tie.tied.time.times.tr.truncate.uc.ucfirst.umask.undef.unless.unlink.unpack.unshift.untie.until.use.utime.values.vec.wait.waitpid.wantarray.warn.when.while.write.x|0.xor.y|0`.split(`.`),r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(` `)},a={className:`subst`,begin:`[$@]\\{`,end:`\\}`,keywords:i},o={begin:/->\{/,end:/\}/},s={scope:`attr`,match:/\s+:\s*\w+(\s*\(.*?\))?/},c={scope:`variable`,variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,`(?![A-Za-z])(?![@$%])`)},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={className:`number`,variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},u=[e.BACKSLASH_ESCAPE,a,c],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],f=(e,n,i=`\\1`)=>{let a=i===`\\1`?i:t.concat(i,n);return t.concat(t.concat(`(?:`,e,`)`),n,/(?:\\.|[^\\\/])*?/,a,/(?:\\.|[^\\\/])*?/,i,r)},p=(e,n,i)=>t.concat(t.concat(`(?:`,e,`)`),n,/(?:\\.|[^\\\/])*?/,i,r),m=[c,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:`string`,contains:u,variants:[{begin:`q[qwxr]?\\s*\\(`,end:`\\)`,relevance:5},{begin:`q[qwxr]?\\s*\\[`,end:`\\]`,relevance:5},{begin:`q[qwxr]?\\s*\\{`,end:`\\}`,relevance:5},{begin:`q[qwxr]?\\s*\\|`,end:`\\|`,relevance:5},{begin:`q[qwxr]?\\s*<`,end:`>`,relevance:5},{begin:`qw\\s+q`,end:`q`,relevance:5},{begin:`'`,end:`'`,contains:[e.BACKSLASH_ESCAPE]},{begin:`"`,end:`"`},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:`-?\\w+\\s*=>`,relevance:0}]},l,{begin:`(\\/\\/|`+e.RE_STARTERS_RE+`|\\b(split|return|print|reverse|grep)\\b)\\s*`,keywords:`split return print reverse grep`,relevance:0,contains:[e.HASH_COMMENT_MODE,{className:`regexp`,variants:[{begin:f(`s|tr|y`,t.either(...d,{capture:!0}))},{begin:f(`s|tr|y`,`\\(`,`\\)`)},{begin:f(`s|tr|y`,`\\[`,`\\]`)},{begin:f(`s|tr|y`,`\\{`,`\\}`)}],relevance:2},{className:`regexp`,variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p(`(?:m|qr)?`,/\//,/\//)},{begin:p(`m|qr`,t.either(...d,{capture:!0}),/\1/)},{begin:p(`m|qr`,/\(/,/\)/)},{begin:p(`m|qr`,/\[/,/\]/)},{begin:p(`m|qr`,/\{/,/\}/)}]}]},{className:`function`,beginKeywords:`sub method`,end:`(\\s*\\(.*?\\))?[;{]`,excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]},{className:`class`,beginKeywords:`class`,end:`[;{]`,excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s,l]},{begin:`-\\w\\b`,relevance:0},{begin:`^__DATA__$`,end:`^__END__$`,subLanguage:`mojolicious`,contains:[{begin:`^@@.*`,end:`$`,className:`comment`}]}];return a.contains=m,o.contains=m,{name:`Perl`,aliases:[`pl`,`pm`],keywords:i,contains:m}}t.exports=n})),Lhe=l(((e,t)=>{function n(e){let t={className:`built_in`,begin:`\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+`},n=/[a-zA-Z@][a-zA-Z0-9_]*/,r={"variable.language":[`this`,`super`],$pattern:n,keyword:`while.export.sizeof.typedef.const.struct.for.union.volatile.static.mutable.if.do.return.goto.enum.else.break.extern.asm.case.default.register.explicit.typename.switch.continue.inline.readonly.assign.readwrite.self.@synchronized.id.typeof.nonatomic.IBOutlet.IBAction.strong.weak.copy.in.out.inout.bycopy.byref.oneway.__strong.__weak.__block.__autoreleasing.@private.@protected.@public.@try.@property.@end.@throw.@catch.@finally.@autoreleasepool.@synthesize.@dynamic.@selector.@optional.@required.@encode.@package.@import.@defs.@compatibility_alias.__bridge.__bridge_transfer.__bridge_retained.__bridge_retain.__covariant.__contravariant.__kindof._Nonnull._Nullable._Null_unspecified.__FUNCTION__.__PRETTY_FUNCTION__.__attribute__.getter.setter.retain.unsafe_unretained.nonnull.nullable.null_unspecified.null_resettable.class.instancetype.NS_DESIGNATED_INITIALIZER.NS_UNAVAILABLE.NS_REQUIRES_SUPER.NS_RETURNS_INNER_POINTER.NS_INLINE.NS_AVAILABLE.NS_DEPRECATED.NS_ENUM.NS_OPTIONS.NS_SWIFT_UNAVAILABLE.NS_ASSUME_NONNULL_BEGIN.NS_ASSUME_NONNULL_END.NS_REFINED_FOR_SWIFT.NS_SWIFT_NAME.NS_SWIFT_NOTHROW.NS_DURING.NS_HANDLER.NS_ENDHANDLER.NS_VALUERETURN.NS_VOIDRETURN`.split(`.`),literal:[`false`,`true`,`FALSE`,`TRUE`,`nil`,`YES`,`NO`,`NULL`],built_in:[`dispatch_once_t`,`dispatch_queue_t`,`dispatch_sync`,`dispatch_async`,`dispatch_once`],type:[`int`,`float`,`char`,`unsigned`,`signed`,`short`,`long`,`double`,`wchar_t`,`unichar`,`void`,`bool`,`BOOL`,`id|0`,`_Bool`]},i={$pattern:n,keyword:[`@interface`,`@class`,`@protocol`,`@implementation`]};return{name:`Objective-C`,aliases:[`mm`,`objc`,`obj-c`,`obj-c++`,`objective-c++`],keywords:r,illegal:`</`,contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:`string`,variants:[{begin:`@"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]}]},{className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma ifdef ifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),{className:`string`,begin:/<.*?>/,end:/$/,illegal:`\\n`},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:`class`,begin:`(`+i.keyword.join(`|`)+`)\\b`,end:/(\{|$)/,excludeEnd:!0,keywords:i,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:`\\.`+e.UNDERSCORE_IDENT_RE,relevance:0}]}}t.exports=n})),Rhe=l(((e,t)=>{function n(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a=t.concat(/[A-Z]+/,n),o={scope:`variable`,match:`\\$+`+r},s={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},c={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(c),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[
432
- ]`,m={scope:`string`,variants:[u,l,d,f]},h={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},g=[`false`,`null`,`true`],_=`__CLASS__.__DIR__.__FILE__.__FUNCTION__.__COMPILER_HALT_OFFSET__.__LINE__.__METHOD__.__NAMESPACE__.__TRAIT__.die.echo.exit.include.include_once.print.require.require_once.array.abstract.and.as.binary.bool.boolean.break.callable.case.catch.class.clone.const.continue.declare.default.do.double.else.elseif.empty.enddeclare.endfor.endforeach.endif.endswitch.endwhile.enum.eval.extends.final.finally.float.for.foreach.from.global.goto.if.implements.instanceof.insteadof.int.integer.interface.isset.iterable.list.match|0.mixed.new.never.object.or.private.protected.public.readonly.real.return.string.switch.throw.trait.try.unset.use.var.void.while.xor.yield`.split(`.`),v=`Error|0.AppendIterator.ArgumentCountError.ArithmeticError.ArrayIterator.ArrayObject.AssertionError.BadFunctionCallException.BadMethodCallException.CachingIterator.CallbackFilterIterator.CompileError.Countable.DirectoryIterator.DivisionByZeroError.DomainException.EmptyIterator.ErrorException.Exception.FilesystemIterator.FilterIterator.GlobIterator.InfiniteIterator.InvalidArgumentException.IteratorIterator.LengthException.LimitIterator.LogicException.MultipleIterator.NoRewindIterator.OutOfBoundsException.OutOfRangeException.OuterIterator.OverflowException.ParentIterator.ParseError.RangeException.RecursiveArrayIterator.RecursiveCachingIterator.RecursiveCallbackFilterIterator.RecursiveDirectoryIterator.RecursiveFilterIterator.RecursiveIterator.RecursiveIteratorIterator.RecursiveRegexIterator.RecursiveTreeIterator.RegexIterator.RuntimeException.SeekableIterator.SplDoublyLinkedList.SplFileInfo.SplFileObject.SplFixedArray.SplHeap.SplMaxHeap.SplMinHeap.SplObjectStorage.SplObserver.SplPriorityQueue.SplQueue.SplStack.SplSubject.SplTempFileObject.TypeError.UnderflowException.UnexpectedValueException.UnhandledMatchError.ArrayAccess.BackedEnum.Closure.Fiber.Generator.Iterator.IteratorAggregate.Serializable.Stringable.Throwable.Traversable.UnitEnum.WeakReference.WeakMap.Directory.__PHP_Incomplete_Class.parent.php_user_filter.self.static.stdClass`.split(`.`),y={keyword:_,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(g),built_in:v},b=e=>e.map(e=>e.replace(/\|\d+$/,``)),x={variants:[{match:[/new/,t.concat(p,`+`),t.concat(`(?!`,b(v).join(`\\b|`),`\\b)`),i],scope:{1:`keyword`,4:`title.class`}}]},S=t.concat(r,`\\b(?!\\()`),C={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:`title.class`,3:`variable.constant`}},{match:[i,t.concat(`::`,t.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[i,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},w={scope:`attr`,match:t.concat(r,t.lookahead(`:`),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:y,contains:[w,o,C,e.C_BLOCK_COMMENT_MODE,m,h,x]},E={relevance:0,match:[/\b/,t.concat(`(?!fn\\b|function\\b|`,b(_).join(`\\b|`),`|`,b(v).join(`\\b|`),`\\b)`),r,t.concat(p,`*`),t.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[T]};T.contains.push(E);let D=[w,C,e.C_BLOCK_COMMENT_MODE,m,h,x],ee={begin:t.concat(/#\[\s*\\?/,t.either(i,a)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:g,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:g,keyword:[`new`,`array`]},contains:[`self`,...D]},...D,{scope:`meta`,variants:[{match:i},{match:a}]}]};return{case_insensitive:!1,keywords:y,contains:[ee,e.HASH_COMMENT_MODE,e.COMMENT(`//`,`$`),e.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},s,{scope:`variable.language`,match:/\$this\b/},o,E,C,{match:[/const/,/\s/,r],scope:{1:`keyword`,3:`variable.constant`}},x,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},e.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:y,contains:[`self`,ee,o,C,e.C_BLOCK_COMMENT_MODE,m,h]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},e.UNDERSCORE_TITLE_MODE]},m,h]}}t.exports=n})),zhe=l(((e,t)=>{function n(e){return{name:`PHP template`,subLanguage:`xml`,contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:`php`,contains:[{begin:`/\\*`,end:`\\*/`,skip:!0},{begin:`b"`,end:`"`,skip:!0},{begin:`b'`,end:`'`,skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}t.exports=n})),Bhe=l(((e,t)=>{function n(e){return{name:`Plain text`,aliases:[`text`,`txt`],disableAutodetect:!0}}t.exports=n})),Vhe=l(((e,t)=>{function n(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}t.exports=n})),Hhe=l(((e,t)=>{function n(e){return{aliases:[`pycon`],contains:[{className:`meta.prompt`,starts:{end:/ |$/,starts:{end:`$`,subLanguage:`python`}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}t.exports=n})),Uhe=l(((e,t)=>{function n(e){let t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:`R`,keywords:{$pattern:n,keyword:`function if in break next repeat else for while`,literal:`NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10`,built_in:`LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm`},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:`doctag`,match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:`doctag`,begin:`@param`,end:/$/,contains:[{scope:`variable`,variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:`doctag`,match:/@[a-zA-Z]+/},{scope:`keyword`,match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:`"`,end:`"`,relevance:0},{begin:`'`,end:`'`,relevance:0}]},{relevance:0,variants:[{scope:{1:`operator`,2:`number`},match:[i,r]},{scope:{1:`operator`,2:`number`},match:[/%[^%]*%/,r]},{scope:{1:`punctuation`,2:`number`},match:[a,r]},{scope:{2:`number`},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:`operator`},match:[n,/\s+/,/<-/,/\s+/]},{scope:`operator`,relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:`punctuation`,relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}t.exports=n})),Whe=l(((e,t)=>{function n(e){let t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),a={className:`title.function.invoke`,relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o=`abstract.as.async.await.become.box.break.const.continue.crate.do.dyn.else.enum.extern.false.final.fn.for.if.impl.in.let.loop.macro.match.mod.move.mut.override.priv.pub.ref.return.self.Self.static.struct.super.trait.true.try.type.typeof.union.unsafe.unsized.use.virtual.where.while.yield`.split(`.`),s=[`true`,`false`,`Some`,`None`,`Ok`,`Err`],c=`drop .Copy.Send.Sized.Sync.Drop.Fn.FnMut.FnOnce.ToOwned.Clone.Debug.PartialEq.PartialOrd.Eq.Ord.AsRef.AsMut.Into.From.Default.Iterator.Extend.IntoIterator.DoubleEndedIterator.ExactSizeIterator.SliceConcatExt.ToString.assert!.assert_eq!.bitflags!.bytes!.cfg!.col!.concat!.concat_idents!.debug_assert!.debug_assert_eq!.env!.eprintln!.panic!.file!.format!.format_args!.include_bytes!.include_str!.line!.local_data_key!.module_path!.option_env!.print!.println!.select!.stringify!.try!.unimplemented!.unreachable!.vec!.write!.writeln!.macro_rules!.assert_ne!.debug_assert_ne!`.split(`.`),l=[`i8`,`i16`,`i32`,`i64`,`i128`,`isize`,`u8`,`u16`,`u32`,`u64`,`u128`,`usize`,`f32`,`f64`,`str`,`char`,`bool`,`Box`,`Option`,`Result`,`String`,`Vec`];return{name:`Rust`,aliases:[`rs`],keywords:{$pattern:e.IDENT_RE+`!?`,type:l,keyword:o,literal:s,built_in:c},illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:`symbol`,begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:`string`,variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:`char.escape`,match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:`number`,variants:[{begin:`\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?`}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:`keyword`,3:`title.function`}},{className:`meta`,begin:`#!?\\[`,end:`\\]`,contains:[{className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:`keyword`,3:`keyword`,4:`variable`}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:`keyword`,3:`variable`,5:`keyword`}},{begin:[/type/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:e.IDENT_RE+`::`,keywords:{keyword:`Self`,built_in:c,type:l}},{className:`punctuation`,begin:`->`},a]}}t.exports=n})),Ghe=l(((e,t)=>{var n=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),r=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),i=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),a=[...r,...i],o=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),s=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),c=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),l=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function u(e){let t=n(e),r=c,i=s,u=`@[a-z-]+`,d={className:`variable`,begin:`(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b`,relevance:0};return{name:`SCSS`,case_insensitive:!0,illegal:`[=/|']`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:`selector-id`,begin:`#[A-Za-z0-9_-]+`,relevance:0},{className:`selector-class`,begin:`\\.[A-Za-z0-9_-]+`,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-tag`,begin:`\\b(`+a.join(`|`)+`)\\b`,relevance:0},{className:`selector-pseudo`,begin:`:(`+i.join(`|`)+`)`},{className:`selector-pseudo`,begin:`:(:)?(`+r.join(`|`)+`)`},d,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+l.join(`|`)+`)\\b`},{begin:`\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b`},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,d,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:`@(page|font-face)`,keywords:{$pattern:u,keyword:`@page @font-face`}},{begin:`@`,end:`[{;]`,returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:o.join(` `)},contains:[{begin:u,className:`keyword`},{begin:/[a-z-]+(?=:)/,className:`attribute`},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}t.exports=u})),Khe=l(((e,t)=>{function n(e){return{name:`Shell Session`,aliases:[`console`,`shellsession`],contains:[{className:`meta.prompt`,begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:`bash`}}]}}t.exports=n})),qhe=l(((e,t)=>{function n(e){let t=e.regex,n=e.COMMENT(`--`,`$`),r={scope:`string`,variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},a=[`true`,`false`,`unknown`],o=[`double precision`,`large object`,`with timezone`,`without timezone`],s=`bigint.binary.blob.boolean.char.character.clob.date.dec.decfloat.decimal.float.int.integer.interval.nchar.nclob.national.numeric.real.row.smallint.time.timestamp.varchar.varying.varbinary`.split(`.`),c=[`add`,`asc`,`collation`,`desc`,`final`,`first`,`last`,`view`],l=`abs.acos.all.allocate.alter.and.any.are.array.array_agg.array_max_cardinality.as.asensitive.asin.asymmetric.at.atan.atomic.authorization.avg.begin.begin_frame.begin_partition.between.bigint.binary.blob.boolean.both.by.call.called.cardinality.cascaded.case.cast.ceil.ceiling.char.char_length.character.character_length.check.classifier.clob.close.coalesce.collate.collect.column.commit.condition.connect.constraint.contains.convert.copy.corr.corresponding.cos.cosh.count.covar_pop.covar_samp.create.cross.cube.cume_dist.current.current_catalog.current_date.current_default_transform_group.current_path.current_role.current_row.current_schema.current_time.current_timestamp.current_path.current_role.current_transform_group_for_type.current_user.cursor.cycle.date.day.deallocate.dec.decimal.decfloat.declare.default.define.delete.dense_rank.deref.describe.deterministic.disconnect.distinct.double.drop.dynamic.each.element.else.empty.end.end_frame.end_partition.end-exec.equals.escape.every.except.exec.execute.exists.exp.external.extract.false.fetch.filter.first_value.float.floor.for.foreign.frame_row.free.from.full.function.fusion.get.global.grant.group.grouping.groups.having.hold.hour.identity.in.indicator.initial.inner.inout.insensitive.insert.int.integer.intersect.intersection.interval.into.is.join.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.language.large.last_value.lateral.lead.leading.left.like.like_regex.listagg.ln.local.localtime.localtimestamp.log.log10.lower.match.match_number.match_recognize.matches.max.member.merge.method.min.minute.mod.modifies.module.month.multiset.national.natural.nchar.nclob.new.no.none.normalize.not.nth_value.ntile.null.nullif.numeric.octet_length.occurrences_regex.of.offset.old.omit.on.one.only.open.or.order.out.outer.over.overlaps.overlay.parameter.partition.pattern.per.percent.percent_rank.percentile_cont.percentile_disc.period.portion.position.position_regex.power.precedes.precision.prepare.primary.procedure.ptf.range.rank.reads.real.recursive.ref.references.referencing.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.release.result.return.returns.revoke.right.rollback.rollup.row.row_number.rows.running.savepoint.scope.scroll.search.second.seek.select.sensitive.session_user.set.show.similar.sin.sinh.skip.smallint.some.specific.specifictype.sql.sqlexception.sqlstate.sqlwarning.sqrt.start.static.stddev_pop.stddev_samp.submultiset.subset.substring.substring_regex.succeeds.sum.symmetric.system.system_time.system_user.table.tablesample.tan.tanh.then.time.timestamp.timezone_hour.timezone_minute.to.trailing.translate.translate_regex.translation.treat.trigger.trim.trim_array.true.truncate.uescape.union.unique.unknown.unnest.update.upper.user.using.value.values.value_of.var_pop.var_samp.varbinary.varchar.varying.versioning.when.whenever.where.width_bucket.window.with.within.without.year`.split(`.`),u=`abs.acos.array_agg.asin.atan.avg.cast.ceil.ceiling.coalesce.corr.cos.cosh.count.covar_pop.covar_samp.cume_dist.dense_rank.deref.element.exp.extract.first_value.floor.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.last_value.lead.listagg.ln.log.log10.lower.max.min.mod.nth_value.ntile.nullif.percent_rank.percentile_cont.percentile_disc.position.position_regex.power.rank.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.row_number.sin.sinh.sqrt.stddev_pop.stddev_samp.substring.substring_regex.sum.tan.tanh.translate.translate_regex.treat.trim.trim_array.unnest.upper.value_of.var_pop.var_samp.width_bucket`.split(`.`),d=[`current_catalog`,`current_date`,`current_default_transform_group`,`current_path`,`current_role`,`current_schema`,`current_transform_group_for_type`,`current_user`,`session_user`,`system_time`,`system_user`,`current_time`,`localtime`,`current_timestamp`,`localtimestamp`],f=[`create table`,`insert into`,`primary key`,`foreign key`,`not null`,`alter table`,`add constraint`,`grouping sets`,`on overflow`,`character set`,`respect nulls`,`ignore nulls`,`nulls first`,`nulls last`,`depth first`,`breadth first`],p=u,m=[...l,...c].filter(e=>!u.includes(e)),h={scope:`variable`,match:/@[a-z0-9][a-z0-9_]*/},g={scope:`operator`,match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},_={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function v(e){return t.concat(/\b/,t.either(...e.map(e=>e.replace(/\s+/,`\\s+`))),/\b/)}let y={scope:`keyword`,match:v(f),relevance:0};function b(e,{exceptions:t,when:n}={}){let r=n;return t||=[],e.map(e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e)}return{name:`SQL`,case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b(m,{when:e=>e.length<3}),literal:a,type:s,built_in:d},contains:[{scope:`type`,match:v(o)},y,_,h,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,g]}}t.exports=n})),Jhe=l(((e,t)=>{function n(e){return e?typeof e==`string`?e:e.source:null}function r(e){return i(`(?=`,e,`)`)}function i(...e){return e.map(e=>n(e)).join(``)}function a(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function o(...e){return`(`+(a(e).capture?``:`?:`)+e.map(e=>n(e)).join(`|`)+`)`}var s=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),c=[`Protocol`,`Type`].map(s),l=[`init`,`self`].map(s),u=[`Any`,`Self`],d=[`actor`,`any`,`associatedtype`,`async`,`await`,/as\?/,/as!/,`as`,`borrowing`,`break`,`case`,`catch`,`class`,`consume`,`consuming`,`continue`,`convenience`,`copy`,`default`,`defer`,`deinit`,`didSet`,`distributed`,`do`,`dynamic`,`each`,`else`,`enum`,`extension`,`fallthrough`,/fileprivate\(set\)/,`fileprivate`,`final`,`for`,`func`,`get`,`guard`,`if`,`import`,`indirect`,`infix`,/init\?/,/init!/,`inout`,/internal\(set\)/,`internal`,`in`,`is`,`isolated`,`nonisolated`,`lazy`,`let`,`macro`,`mutating`,`nonmutating`,/open\(set\)/,`open`,`operator`,`optional`,`override`,`package`,`postfix`,`precedencegroup`,`prefix`,/private\(set\)/,`private`,`protocol`,/public\(set\)/,`public`,`repeat`,`required`,`rethrows`,`return`,`set`,`some`,`static`,`struct`,`subscript`,`super`,`switch`,`throws`,`throw`,/try\?/,/try!/,`try`,`typealias`,/unowned\(safe\)/,/unowned\(unsafe\)/,`unowned`,`var`,`weak`,`where`,`while`,`willSet`],f=[`false`,`nil`,`true`],p=[`assignment`,`associativity`,`higherThan`,`left`,`lowerThan`,`none`,`right`],m=[`#colorLiteral`,`#column`,`#dsohandle`,`#else`,`#elseif`,`#endif`,`#error`,`#file`,`#fileID`,`#fileLiteral`,`#filePath`,`#function`,`#if`,`#imageLiteral`,`#keyPath`,`#line`,`#selector`,`#sourceLocation`,`#warning`],h=`abs.all.any.assert.assertionFailure.debugPrint.dump.fatalError.getVaList.isKnownUniquelyReferenced.max.min.numericCast.pointwiseMax.pointwiseMin.precondition.preconditionFailure.print.readLine.repeatElement.sequence.stride.swap.swift_unboxFromSwiftValueWithType.transcode.type.unsafeBitCast.unsafeDowncast.withExtendedLifetime.withUnsafeMutablePointer.withUnsafePointer.withVaList.withoutActuallyEscaping.zip`.split(`.`),g=o(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),_=o(g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),v=i(g,_,`*`),y=o(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),b=o(y,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),x=i(y,b,`*`),S=i(/[A-Z]/,b,`*`),C=[`attached`,`autoclosure`,i(/convention\(/,o(`swift`,`block`,`c`),/\)/),`discardableResult`,`dynamicCallable`,`dynamicMemberLookup`,`escaping`,`freestanding`,`frozen`,`GKInspectable`,`IBAction`,`IBDesignable`,`IBInspectable`,`IBOutlet`,`IBSegueAction`,`inlinable`,`main`,`nonobjc`,`NSApplicationMain`,`NSCopying`,`NSManaged`,i(/objc\(/,x,/\)/),`objc`,`objcMembers`,`propertyWrapper`,`requires_stored_property_inits`,`resultBuilder`,`Sendable`,`testable`,`UIApplicationMain`,`unchecked`,`unknown`,`usableFromInline`,`warn_unqualified_access`],w=[`iOS`,`iOSApplicationExtension`,`macOS`,`macOSApplicationExtension`,`macCatalyst`,`macCatalystApplicationExtension`,`watchOS`,`watchOSApplicationExtension`,`tvOS`,`tvOSApplicationExtension`,`swift`];function T(e){let t={match:/\s+/,relevance:0},n=e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),a=[e.C_LINE_COMMENT_MODE,n],g={match:[/\./,o(...c,...l)],className:{2:`keyword`}},y={match:i(/\./,o(...d)),relevance:0},T=d.filter(e=>typeof e==`string`).concat([`_|0`]),E={variants:[{className:`keyword`,match:o(...d.filter(e=>typeof e!=`string`).concat(u).map(s),...l)}]},D={$pattern:o(/\b\w+/,/#\w+/),keyword:T.concat(m),literal:f},ee=[g,y,E],te=[{match:i(/\./,o(...h)),relevance:0},{className:`built_in`,match:i(/\b/,o(...h),/(?=\()/)}],O={match:/->/,relevance:0},ne=[O,{className:`operator`,relevance:0,variants:[{match:v},{match:`\\.(\\.|${_})+`}]}],k=`([0-9]_*)+`,re=`([0-9a-fA-F]_*)+`,ie={className:`number`,relevance:0,variants:[{match:`\\b(${k})(\\.(${k}))?([eE][+-]?(${k}))?\\b`},{match:`\\b0x(${re})(\\.(${re}))?([pP][+-]?(${k}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},ae=(e=``)=>({className:`subst`,variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),A=(e=``)=>({className:`subst`,match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),j=(e=``)=>({className:`subst`,label:`interpol`,begin:i(/\\/,e,/\(/),end:/\)/}),oe=(e=``)=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[ae(e),A(e),j(e)]}),se=(e=``)=>({begin:i(e,/"/),end:i(/"/,e),contains:[ae(e),j(e)]}),ce={className:`string`,variants:[oe(),oe(`#`),oe(`##`),oe(`###`),se(),se(`#`),se(`##`),se(`###`)]},le=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],ue={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:le},de=e=>{let t=i(e,/\//),n=i(/\//,e);return{begin:t,end:n,contains:[...le,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},fe={scope:`regexp`,variants:[de(`###`),de(`##`),de(`#`),ue]},pe={match:i(/`/,x,/`/)},M=[pe,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${b}+`}],N=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:w,contains:[...ne,ie,ce]}]}},{scope:`keyword`,match:i(/@/,o(...C),r(o(/\(/,/\s+/)))},{scope:`meta`,match:i(/@/,x)}],me={match:r(/\b[A-Z]/),relevance:0,contains:[{className:`type`,match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,b,`+`)},{className:`type`,match:S,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,r(S)),relevance:0}]},he={begin:/</,end:/>/,keywords:D,contains:[...a,...ee,...N,O,me]};me.contains.push(he);let ge={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:[`self`,{match:i(x,/\s*:/),keywords:`_|0`,relevance:0},...a,fe,...ee,...te,...ne,ie,ce,...M,...N,me]},_e={begin:/</,end:/>/,keywords:`repeat each`,contains:[...a,me]},P={begin:/\(/,end:/\)/,keywords:D,contains:[{begin:o(r(i(x,/\s*:/)),r(i(x,/\s+/,x,/\s*:/))),end:/:/,relevance:0,contains:[{className:`keyword`,match:/\b_\b/},{className:`params`,match:x}]},...a,...ee,...ne,ie,ce,...N,me,ge],endsParent:!0,illegal:/["']/},ve={match:[/(func|macro)/,/\s+/,o(pe.match,x,v)],className:{1:`keyword`,3:`title.function`},contains:[_e,P,t],illegal:[/\[/,/%/]},F={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[_e,P,t],illegal:/\[|%/},ye={match:[/operator/,/\s+/,v],className:{1:`keyword`,3:`title`}},I={begin:[/precedencegroup/,/\s+/,S],className:{1:`keyword`,3:`title`},contains:[me],keywords:[...p,...f],end:/}/},be={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},xe={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},Se={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,x,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:D,contains:[_e,...ee,{begin:/:/,end:/\{/,keywords:D,contains:[{scope:`title.class.inherited`,match:S},...ee],relevance:0}]};for(let e of ce.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=D;let n=[...ee,...te,...ne,ie,ce,...M];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:D,contains:[...a,ve,F,be,xe,Se,ye,I,{beginKeywords:`import`,end:/$/,contains:[...a],relevance:0},fe,...ee,...te,...ne,ie,ce,...M,...N,me,ge]}}t.exports=T})),Yhe=l(((e,t)=>{function n(e){let t=`true false yes no null`,n={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},a={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),s={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},c={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},l={begin:/\{/,end:/\}/,contains:[c],illegal:`\\n`,relevance:0},u={begin:`\\[`,end:`\\]`,contains:[c],illegal:`\\n`,relevance:0},d=[n,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!<[\\w#;/?:@&=+$,.~*'()[\\]]+>`},{className:`type`,begin:`![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`meta`,begin:`&`+e.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+e.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},s,{className:`number`,begin:e.C_NUMBER_RE+`\\b`,relevance:0},l,u,i,a],f=[...d];return f.pop(),f.push(o),c.contains=f,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:d}}t.exports=n})),Xhe=l(((e,t)=>{var n=`[A-Za-z$_][0-9A-Za-z$_]*`,r=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),i=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],a=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),o=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],s=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],c=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],l=[].concat(s,a,o);function u(e){let t=e.regex,u=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},d=n,f={begin:`<>`,end:`</>`},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(u(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},h={$pattern:n,keyword:r,literal:i,built_in:l,"variable.language":c},g=`[0-9](_?[0-9])*`,_=`\\.(${g})`,v=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,y={className:`number`,variants:[{begin:`(\\b(${v})((${_})|\\.)?|(${_}))[eE][+-]?(${g})\\b`},{begin:`\\b(${v})\\b((${_})\\b|\\.)?|(${_})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},b={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:h,contains:[]},x={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`xml`}},S={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`css`}},C={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`graphql`}},w={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},T={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},E=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,{match:/\$\d+/},y];b.contains=E.concat({begin:/\{/,end:/\}/,keywords:h,contains:[`self`].concat(E)});let D=[].concat(T,b.contains),ee=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),te={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee},O={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,t.concat(d,`(`,t.concat(/\./,d),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,d],scope:{1:`keyword`,3:`title.class`}}]},ne={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...a,...o]}},k={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},re={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[te],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function ae(e){return t.concat(`(?!`,e.join(`|`),`)`)}let A={match:t.concat(/\b/,ae([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},j={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},oe={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},te]},se=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,ce={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[te]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:ee,CLASS_REFERENCE:ne},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),k,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,ne,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},ce,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[T,e.REGEXP_MODE,{className:`function`,begin:se,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:f.begin,end:f.end},{match:p},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:`xml`,contains:[{begin:m.begin,end:m.end,skip:!0,contains:[`self`]}]}]},re,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[te,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},j,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[te]},A,ie,O,oe,{match:/\$[(.]/}]}}function d(e){let t=e.regex,a=u(e),o=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},d={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:o},contains:[a.exports.CLASS_REFERENCE]},f={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},p={$pattern:n,keyword:r.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:i,built_in:l.concat(o),"variable.language":c},m={className:`meta`,begin:`@[A-Za-z$_][0-9A-Za-z$_]*`},h=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(a.keywords,p),a.exports.PARAMS_CONTAINS.push(m);let g=a.contains.find(e=>e.scope===`attr`),_=Object.assign({},g,{match:t.concat(`[A-Za-z$_][0-9A-Za-z$_]*`,t.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,g,_]),a.contains=a.contains.concat([m,s,d,_]),h(a,`shebang`,e.SHEBANG()),h(a,`use_strict`,f);let v=a.contains.find(e=>e.label===`func.def`);return v.relevance=0,Object.assign(a,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),a}t.exports=d})),Zhe=l(((e,t)=>{function n(e){let t=e.regex,n={className:`string`,begin:/"(""|[^/n])"C\b/},r={className:`string`,begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,c={className:`literal`,variants:[{begin:t.concat(/# */,t.either(a,i),/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,i),/ +/,t.either(o,s),/ *#/)}]},l={className:`number`,relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:`label`,begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:`doctag`,begin:/<\/?/,end:/>/}]}),f=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:`Visual Basic .NET`,aliases:[`vb`],case_insensitive:!0,classNameAliases:{label:`symbol`},keywords:{keyword:`addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield`,built_in:`addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort`,type:`boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort`,literal:`true false nothing`},illegal:`//|\\{|\\}|endif|gosub|variant|wend|^\\$ `,contains:[n,r,c,l,u,d,f,{className:`meta`,begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:`const disable else elseif enable end externalsource if region then`},contains:[f]}]}}t.exports=n})),Qhe=l(((e,t)=>{function n(e){e.regex;let t=e.COMMENT(/\(;/,/;\)/);return t.contains.push(`self`),{name:`WebAssembly`,keywords:{$pattern:/[\w.]+/,keyword:`anyfunc,block,br,br_if,br_table,call,call_indirect,data,drop,elem,else,end,export,func,global.get,global.set,local.get,local.set,local.tee,get_global,get_local,global,if,import,local,loop,memory,memory.grow,memory.size,module,mut,nop,offset,param,result,return,select,set_global,set_local,start,table,tee_local,then,type,unreachable`.split(`,`)},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:`keyword`,3:`operator`}},{className:`variable`,begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:`punctuation`,relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:`keyword`,3:`title.function`}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:`type`},{className:`keyword`,match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:`number`,relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}t.exports=n})),$he=f(l(((e,t)=>{var n=ghe();n.registerLanguage(`xml`,_he()),n.registerLanguage(`bash`,vhe()),n.registerLanguage(`c`,yhe()),n.registerLanguage(`cpp`,bhe()),n.registerLanguage(`csharp`,xhe()),n.registerLanguage(`css`,She()),n.registerLanguage(`markdown`,Che()),n.registerLanguage(`diff`,whe()),n.registerLanguage(`ruby`,The()),n.registerLanguage(`go`,Ehe()),n.registerLanguage(`graphql`,Dhe()),n.registerLanguage(`ini`,Ohe()),n.registerLanguage(`java`,khe()),n.registerLanguage(`javascript`,Ahe()),n.registerLanguage(`json`,jhe()),n.registerLanguage(`kotlin`,Mhe()),n.registerLanguage(`less`,Nhe()),n.registerLanguage(`lua`,Phe()),n.registerLanguage(`makefile`,Fhe()),n.registerLanguage(`perl`,Ihe()),n.registerLanguage(`objectivec`,Lhe()),n.registerLanguage(`php`,Rhe()),n.registerLanguage(`php-template`,zhe()),n.registerLanguage(`plaintext`,Bhe()),n.registerLanguage(`python`,Vhe()),n.registerLanguage(`python-repl`,Hhe()),n.registerLanguage(`r`,Uhe()),n.registerLanguage(`rust`,Whe()),n.registerLanguage(`scss`,Ghe()),n.registerLanguage(`shell`,Khe()),n.registerLanguage(`sql`,qhe()),n.registerLanguage(`swift`,Jhe()),n.registerLanguage(`yaml`,Yhe()),n.registerLanguage(`typescript`,Xhe()),n.registerLanguage(`vbnet`,Zhe()),n.registerLanguage(`wasm`,Qhe()),n.HighlightJS=n,n.default=n,t.exports=n}))()).default;P9.setOptions({breaks:!0,gfm:!0});var ege=2e4,F9=new P9.Renderer;F9.code=({text:e,lang:t})=>{let n=(t||``).trim()||`plaintext`,r=``;if(e.length>2e4)r=I9(e);else try{r=$he.highlight(e,{language:n,ignoreIllegals:!0}).value}catch{r=I9(e)}let i=encodeURIComponent(e),a=tge(n);return`<pre class="code-block" data-lang="${a}" data-code="${i}"><code class="hljs language-${a}">${r}</code></pre>`};function tge(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function I9(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}var nge={ADD_ATTR:[`data-code`,`data-lang`,`target`,`rel`]};function rge(e){return k7.sanitize(e,nge)}function L9(e){return P9.parse(e||``,{renderer:F9})}function R9(e){return rge(L9(e))}var ige=100,age=2e3;function oge(e){let t=Ez(R9(e())),n=0,r=null;function i(){r=null,n=Date.now(),t.value=R9(e())}return aB(e,()=>{let a=e();if(a.length<=age){r&&=(clearTimeout(r),null),n=Date.now(),t.value=R9(a);return}let o=n+ige-Date.now();o<=0?(r&&=(clearTimeout(r),null),i()):r||=setTimeout(i,o)}),cse(()=>{r&&=(clearTimeout(r),null)}),{html:t,codeBlocks:gH(()=>{let t=[],n=/```(\w+)?\n([\s\S]*?)```/g,r;for(;(r=n.exec(e()||``))!==null;)t.push({lang:(r[1]||`plaintext`).toLowerCase(),code:r[2]});return t})}}var sge=[`innerHTML`],z9=jB({__name:`MessageContent`,props:{content:{},messages:{default:()=>N5}},setup(e){let t=e,{html:n,codeBlocks:r}=oge(()=>t.content),i=Tz(null);function a(e,t){let n={html:`html`,htm:`html`,css:`css`,javascript:`js`,js:`js`,typescript:`ts`,ts:`ts`,vue:`vue`,python:`py`,json:`json`,xml:`xml`,markdown:`md`,md:`md`,shell:`sh`,bash:`sh`}[e.toLowerCase()]||`txt`,r=new Blob([t],{type:`text/plain;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`code-${Date.now()}.${n}`,a.click(),setTimeout(()=>URL.revokeObjectURL(i),1e3)}let o={copy:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.3" /><path d="M10.5 3.5v-.5A1.5 1.5 0 0 0 9 1.5H3.5A1.5 1.5 0 0 0 2 3v5.5A1.5 1.5 0 0 0 3.5 10H4" stroke="currentColor" stroke-width="1.3" /></svg>`,check:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M3 8.5l3 3 7-7" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" /></svg>`,download:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8 2.5v7.5m0 0L5 7m3 3l3-3" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /><path d="M2.5 11.5v1a1.5 1.5 0 0 0 1.5 1.5h8a1.5 1.5 0 0 0 1.5-1.5v-1" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>`,play:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M4.5 3.2v9.6c0 .6.65.97 1.17.66l7.5-4.8a.78.78 0 0 0 0-1.32l-7.5-4.8A.78.78 0 0 0 4.5 3.2z" fill="currentColor" /></svg>`};async function s(){await Wz();let e=i.value;e&&e.querySelectorAll(`pre.code-block`).forEach((e,t)=>{if(e.querySelector(`.code-toolbar`))return;let n=e.dataset.lang||`plaintext`,r=decodeURIComponent(e.dataset.code||``),i=document.createElement(`div`);i.className=`code-toolbar`;let s=document.createElement(`span`);s.className=`code-lang`,s.textContent=n,i.appendChild(s);let c=document.createElement(`div`);c.className=`code-toolbar-actions`;let l=document.createElement(`button`);l.className=`code-action-btn`,l.title=`复制代码`,l.innerHTML=o.copy+`<span>复制</span>`,l.onclick=async()=>{let e=await A5(r);l.classList.toggle(`done`,e),l.innerHTML=(e?o.check:o.copy)+`<span>${e?`已复制`:`复制失败`}</span>`,setTimeout(()=>{l.classList.remove(`done`),l.innerHTML=o.copy+`<span>复制</span>`},1500)},c.appendChild(l);let u=document.createElement(`button`);u.className=`code-action-btn`,u.title=`下载为文件`,u.innerHTML=o.download+`<span>下载</span>`,u.onclick=()=>a(n,r),c.appendChild(u),i.appendChild(c),e.appendChild(i)})}return HB(s),aB(n,s),(e,t)=>(X(),Z(`div`,{class:`message-md`,ref_key:`containerRef`,ref:i,innerHTML:Y(n)},null,8,sge))}}),cge={class:`typing-text`},lge={key:0,class:`stream-cursor`},B9=P7(jB({__name:`MessageBubble`,props:{content:{},role:{},isPendingAssistant:{type:Boolean},showTyping:{type:Boolean},showCursor:{type:Boolean},messages:{default:()=>({...N5})}},setup(e){return(t,n)=>(X(),Z(FV,null,[Q(`div`,{class:mR([`message-bubble`,[e.role,{typing:e.isPendingAssistant}]])},[e.isPendingAssistant?(X(),Z(FV,{key:0},[Q(`span`,{class:mR([`typing-dot`,{pulse:e.showTyping}])},null,2),Q(`span`,cge,[YV(I7,{text:e.messages.thinking},null,8,[`text`])])],64)):(X(),Z(FV,{key:1},[e.role===`assistant`?(X(),WV(z9,{key:0,content:e.content,messages:e.messages},null,8,[`content`,`messages`])):(X(),Z(FV,{key:1},[ZV(J(e.content),1)],64))],64))],2),e.showCursor?(X(),Z(`span`,lge)):$(``,!0)],64))}}),[[`__scopeId`,`data-v-4b4111d8`]]),uge={class:`message-time`},dge=P7(jB({__name:`MessageTime`,props:{time:{}},setup(e){return(t,n)=>(X(),Z(`div`,uge,J(e.time),1))}}),[[`__scopeId`,`data-v-4a976e4a`]]),fge={class:`msg-actions`},pge=[`title`],mge={key:0,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},hge={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},gge=P7(jB({__name:`MessageActions`,props:{copied:{type:Boolean},messages:{default:()=>({...N5})}},emits:[`copy`,`regenerate`],setup(e){return(t,n)=>(X(),Z(`div`,fge,[Q(`button`,{class:mR([`msg-action-btn`,{done:e.copied}]),title:e.copied?e.messages.copied:e.messages.copy,onClick:n[0]||=e=>t.$emit(`copy`)},[e.copied?(X(),Z(`svg`,mge,[...n[2]||=[Q(`path`,{d:`M3 8.5l3 3 7-7`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(X(),Z(`svg`,hge,[...n[3]||=[Q(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1),Q(`path`,{d:`M10.5 3.5v-.5A1.5 1.5 0 0 0 9 1.5H3.5A1.5 1.5 0 0 0 2 3v5.5A1.5 1.5 0 0 0 3.5 10H4`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1)]])),Q(`span`,null,J(e.copied?e.messages.copied:e.messages.copy),1)],10,pge),Q(`button`,{class:`msg-action-btn`,onClick:n[1]||=e=>t.$emit(`regenerate`)},[n[4]||=Q(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Q(`path`,{d:`M13.5 8a5.5 5.5 0 1 1-1.6-3.9`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`}),Q(`path`,{d:`M13.7 1.8v2.8h-2.8`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),Q(`span`,null,J(e.messages.regenerate),1)])]))}}),[[`__scopeId`,`data-v-dc051a49`]]),_ge={key:1,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},vge={key:2,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},V9=P7(jB({__name:`AvatarIcon`,props:{role:{},glyph:{}},setup(e){return(t,n)=>e.glyph?(X(),WV(F7,{key:0,icon:e.glyph,class:`avatar-glyph`},null,8,[`icon`])):e.role===`user`?(X(),Z(`svg`,_ge,[...n[0]||=[Q(`path`,{d:`M512 170.688a149.312 149.312 0 1 0 0 298.624 149.312 149.312 0 0 0 0-298.624zM277.312 320a234.688 234.688 0 1 1 469.376 0 234.688 234.688 0 0 1-469.376 0zM128 810.688a213.312 213.312 0 0 1 213.312-213.312h341.376A213.312 213.312 0 0 1 896 810.688v128H128v-128z m213.312-128a128 128 0 0 0-128 128v42.688h597.376v-42.688a128 128 0 0 0-128-128H341.312z`},null,-1)]])):(X(),Z(`svg`,vge,[...n[1]||=[Q(`path`,{d:`M717.12 274H762c82.842 0 150 67.158 150 150v200c0 82.842-67.158 150-150 150H262c-82.842 0-150-67.158-150-150V424c0-82.842 67.158-150 150-150h44.88l-18.268-109.602c-4.086-24.514 12.476-47.7 36.99-51.786 24.514-4.086 47.7 12.476 51.786 36.99l20 120c0.246 1.472 0.416 2.94 0.516 4.398h228.192c0.1-1.46 0.27-2.926 0.516-4.398l20-120c4.086-24.514 27.272-41.076 51.786-36.99 24.514 4.086 41.076 27.272 36.99 51.786L717.12 274zM262 364c-33.138 0-60 26.862-60 60v200c0 33.138 26.862 60 60 60h500c33.138 0 60-26.862 60-60V424c0-33.138-26.862-60-60-60H262z m50 548c-24.852 0-45-20.148-45-45S287.148 822 312 822h400c24.852 0 45 20.148 45 45S736.852 912 712 912H312z m-4-428c0-24.852 20.148-45 45-45S398 459.148 398 484v40c0 24.852-20.148 45-45 45S308 548.852 308 524v-40z m318 0c0-24.852 20.148-45 45-45S716 459.148 716 484v40c0 24.852-20.148 45-45 45S626 548.852 626 524v-40z`},null,-1)]]))}}),[[`__scopeId`,`data-v-a0b508ea`]]),yge=[`data-msg-idx`],bge={key:0,class:`message-avatar`},xge={class:`message-content`},Sge={key:2,class:`msg-focuses`},Cge=[`title`,`onClick`],wge=[`data-img-count`],Tge=[`href`,`title`],Ege=[`src`,`alt`],Dge={key:1,class:`msg-image-lost`},H9=P7(jB({__name:`MessageRow`,props:{message:{},index:{},showAvatar:{type:Boolean},showTyping:{type:Boolean},isPendingAssistant:{type:Boolean},reasoningExpanded:{type:Boolean},copied:{type:Boolean},isLast:{type:Boolean},loading:{type:Boolean},time:{}},emits:[`toggle-reasoning`,`copy`,`regenerate`],setup(e){let t=e,n=R5(),r=gH(()=>t.message.role===`assistant`),i=gH(()=>r.value&&`reasoning`in t.message?t.message.reasoning??``:``),a=gH(()=>r.value&&`steps`in t.message?t.message.steps??[]:[]),o=gH(()=>r.value&&!!t.message.content&&!t.loading&&t.isLast),s=gH(()=>r.value&&t.loading&&t.isLast&&!!t.message.content);return(t,c)=>(X(),Z(`div`,{class:mR([`message-row`,e.message.role]),"data-msg-idx":e.index},[e.showAvatar?(X(),Z(`div`,bge,[YV(V9,{role:e.message.role,glyph:e.message.role===`user`?Y(n).icons.userAvatar:Y(n).icons.assistantAvatar},null,8,[`role`,`glyph`])])):$(``,!0),Q(`div`,xge,[r.value?(X(),WV(tme,{key:0,text:i.value,expanded:e.reasoningExpanded,running:e.loading&&e.isLast,onToggle:c[0]||=e=>t.$emit(`toggle-reasoning`)},null,8,[`text`,`expanded`,`running`])):$(``,!0),r.value?(X(),WV(kme,{key:1,steps:a.value,icons:Y(n).icons,messages:Y(n).messages},null,8,[`steps`,`icons`,`messages`])):$(``,!0),e.message.role===`user`&&e.message.focuses?.length?(X(),Z(`div`,Sge,[(X(!0),Z(FV,null,GB(e.message.focuses,e=>(X(),Z(`span`,{key:e.path,class:`msg-focus-chip`,title:Y(n).messages.historyFocusChipTitlePrefix+e.path,onClick:t=>Y(n).focusChipClick(e)},[YV(F7,{icon:Y(n).icons.focus},null,8,[`icon`]),ZV(` `+J(e.path),1)],8,Cge))),128))])):$(``,!0),e.message.role===`user`&&e.message.images?.length?(X(),Z(`div`,{key:3,class:`msg-images`,"data-img-count":e.message.images.length},[(X(!0),Z(FV,null,GB(e.message.images,e=>(X(),Z(`a`,{key:e.id,class:`msg-image`,href:e.url||e.dataUri,title:e.name||Y(n).messages.imageAlt,target:`_blank`,rel:`noopener noreferrer`},[e.thumb||e.dataUri?(X(),Z(`img`,{key:0,class:`msg-image-thumb`,src:e.thumb||e.dataUri,alt:e.name||Y(n).messages.imageAlt},null,8,Ege)):(X(),Z(`span`,Dge,`🖼️`))],8,Tge))),128))],8,wge)):$(``,!0),YV(B9,{messages:Y(n).messages,content:e.message.content,role:e.message.role,"is-pending-assistant":e.isPendingAssistant,"show-typing":e.showTyping,"show-cursor":s.value},null,8,[`messages`,`content`,`role`,`is-pending-assistant`,`show-typing`,`show-cursor`]),YV(dge,{time:e.time},null,8,[`time`]),o.value?(X(),WV(gge,{key:4,messages:Y(n).messages,copied:e.copied,onCopy:c[1]||=e=>t.$emit(`copy`),onRegenerate:c[2]||=e=>t.$emit(`regenerate`)},null,8,[`messages`,`copied`])):$(``,!0)])],10,yge))}}),[[`__scopeId`,`data-v-2baea2ab`]]),Oge={class:`chat-body`},kge={key:0,class:`empty-state`},Age={class:`empty-icon`},jge={key:1,class:`message-row assistant`},Mge={key:0,class:`message-avatar`},Nge={class:`message-content`},Pge={key:2,class:`error-bar`},Fge={class:`error-text`},Ige=[`title`],U9=P7(jB({__name:`MessageList`,props:{showAvatar:{type:Boolean},showTyping:{type:Boolean}},setup(e){let{chat:t,formatTime:n,copiedMsg:r,copyMessage:i,isPendingAssistant:a,isReasoningExpanded:o,toggleReasoning:s,canUndo:c,undo:l,icons:u,messages:d}=R5(),{state:f,retry:p,regenerate:m}=t,h=gH(()=>f.messages.length>0),g=gH(()=>f.messages.some(e=>e.role===`user`)),_=gH(()=>f.messages[f.messages.length-1]?.role===`assistant`);return(t,v)=>(X(),Z(`div`,Oge,[h.value?$(``,!0):(X(),Z(`div`,kge,[Q(`div`,Age,[YV(F7,{icon:Y(u).empty},null,8,[`icon`])]),Q(`p`,null,[YV(I7,{text:Y(d).emptyGreeting},null,8,[`text`])])])),(X(!0),Z(FV,null,GB(Y(f).messages,(t,c)=>(X(),WV(H9,{key:c,message:t,index:c,"show-avatar":e.showAvatar,"show-typing":e.showTyping,"is-pending-assistant":Y(a)(c),"reasoning-expanded":Y(o)(c),copied:Y(r),"is-last":c===Y(f).messages.length-1,loading:Y(f).loading,time:Y(n)(t.timestamp),onToggleReasoning:e=>Y(s)(c),onCopy:e=>Y(i)(t.content),onRegenerate:Y(m)},null,8,[`message`,`index`,`show-avatar`,`show-typing`,`is-pending-assistant`,`reasoning-expanded`,`copied`,`is-last`,`loading`,`time`,`onToggleReasoning`,`onCopy`,`onRegenerate`]))),128)),Y(f).loading&&!_.value?(X(),Z(`div`,jge,[e.showAvatar?(X(),Z(`div`,Mge,[YV(V9,{role:`assistant`,glyph:Y(u).assistantAvatar},null,8,[`glyph`])])):$(``,!0),Q(`div`,Nge,[YV(B9,{content:``,role:`assistant`,"is-pending-assistant":!0,"show-typing":e.showTyping,"show-cursor":!1,messages:Y(d)},null,8,[`show-typing`,`messages`])])])):$(``,!0),Y(f).error?(X(),Z(`div`,Pge,[Q(`span`,Fge,J(Y(f).error),1),g.value?(X(),Z(`button`,{key:0,class:`retry-btn`,onClick:v[0]||=(...e)=>Y(p)&&Y(p)(...e)},[YV(I7,{text:Y(d).retry},null,8,[`text`])])):$(``,!0),Y(c)?(X(),Z(`button`,{key:1,class:`undo-btn`,title:Y(d).undoTitle,onClick:v[1]||=(...e)=>Y(l)&&Y(l)(...e)},[YV(I7,{text:Y(d).undo},null,8,[`text`])],8,Ige)):$(``,!0)])):$(``,!0)]))}}),[[`__scopeId`,`data-v-113939bc`]]),Lge={key:0,class:`queued-bar`},Rge={class:`queued-head`},zge={class:`queued-icon`},Bge={class:`queued-title`},Vge={class:`queued-count`},Hge={class:`queued-idx`},Uge={class:`queued-text`},Wge=[`title`,`onClick`],Gge=[`title`,`onClick`],W9=P7(jB({__name:`QueuedBar`,setup(e){let{chat:t,editQueued:n,icons:r,messages:i}=R5(),{queuedTasks:a,removeQueuedTask:o}=t;return(e,t)=>Y(a).length?(X(),Z(`div`,Lge,[Q(`div`,Rge,[Q(`span`,zge,[YV(F7,{icon:Y(r).queued},null,8,[`icon`])]),Q(`span`,Bge,J(Y(i).queuedTitle),1),Q(`span`,Vge,J(Y(a).length),1)]),(X(!0),Z(FV,null,GB(Y(a),(e,t)=>(X(),Z(`div`,{key:t,class:`queued-item`},[Q(`span`,Hge,J(t+1),1),Q(`span`,Uge,J(e),1),Q(`button`,{class:`queued-act`,title:Y(i).queuedEditTitle,onClick:e=>Y(n)(t)},[YV(F7,{icon:Y(r).queuedEdit},null,8,[`icon`])],8,Wge),Q(`button`,{class:`queued-act queued-del`,title:Y(i).removeQueuedTitle,onClick:e=>Y(o)(t)},`✕`,8,Gge)]))),128))])):$(``,!0)}}),[[`__scopeId`,`data-v-7b61eb04`]]),Kge={key:0,class:`approval-bar`},qge={class:`approval-head`},Jge={class:`approval-title`},Yge={key:0,class:`approval-question`},Xge={key:1,class:`approval-context`},Zge={key:2,class:`approval-recommend`},Qge={key:3,class:`approval-options`},$ge=[`onClick`],e_e={class:`approval-actions`},t_e={class:`approval-head`},n_e={class:`approval-title`},r_e={key:0,class:`approval-args`},i_e={class:`approval-actions`},G9=P7(jB({__name:`ApprovalBar`,setup(e){let t=R5(),{pendingApproval:n,resolveApproval:r}=t.chat,i=t.messages,a=Tz(!1);aB(n,()=>{a.value=!1});let o=gH(()=>n.value?.toolName===`request_human_confirmation`),s=gH(()=>{let e=n.value?.args?.options;return Array.isArray(e)?e.map(String):[]}),c=gH(()=>{let e=n.value?.args;if(e==null)return``;try{let t=typeof e==`string`?e:JSON.stringify(e,null,2);return t.length>400?t.slice(0,400)+i.argsTruncatedSuffix:t}catch{return String(e)}});return(e,l)=>Y(n)?(X(),Z(`div`,Kge,[o.value?(X(),Z(FV,{key:0},[Q(`div`,qge,[l[5]||=Q(`span`,{class:`approval-icon`},`❓`,-1),Q(`span`,Jge,J(Y(i).humanConfirmTitle),1)]),Y(n).args?.question?(X(),Z(`div`,Yge,J(Y(n).args.question),1)):$(``,!0),Y(n).args?.context?(X(),Z(`div`,Xge,J(Y(n).args.context),1)):$(``,!0),Y(n).args?.recommendation?(X(),Z(`div`,Zge,[YV(F7,{icon:Y(t).icons.recommend},null,8,[`icon`]),ZV(J(Y(i).recommendPrefix)+J(Y(n).args.recommendation),1)])):$(``,!0),s.value.length?(X(),Z(`div`,Qge,[(X(!0),Z(FV,null,GB(s.value,e=>(X(),Z(`button`,{key:e,class:`approval-opt`,onClick:t=>Y(r)(e)},J(e),9,$ge))),128))])):$(``,!0),Q(`div`,e_e,[Q(`button`,{class:`approval-deny`,onClick:l[0]||=e=>Y(r)(!1)},[YV(I7,{text:Y(i).deny},null,8,[`text`])]),s.value.length?$(``,!0):(X(),Z(`button`,{key:0,class:`approval-allow`,onClick:l[1]||=e=>Y(r)(!0)},[YV(I7,{text:Y(i).approve},null,8,[`text`])]))])],64)):(X(),Z(FV,{key:1},[Q(`div`,t_e,[l[6]||=Q(`span`,{class:`approval-icon`},`✋`,-1),Q(`span`,n_e,[ZV(J(Y(i).toolConfirmPrefix),1),Q(`code`,null,J(Y(n).toolName),1)]),c.value?(X(),Z(`button`,{key:0,class:`approval-toggle`,onClick:l[2]||=e=>a.value=!a.value},J(a.value?Y(i).collapseArgs:Y(i).viewArgs)+J(a.value?` ▴`:` ▾`),1)):$(``,!0)]),c.value&&a.value?(X(),Z(`pre`,r_e,J(c.value),1)):$(``,!0),Q(`div`,i_e,[Q(`button`,{class:`approval-deny`,onClick:l[3]||=e=>Y(r)(!1)},[YV(I7,{text:Y(i).deny},null,8,[`text`])]),Q(`button`,{class:`approval-allow`,onClick:l[4]||=e=>Y(r)(!0)},[YV(I7,{text:Y(i).approve},null,8,[`text`])])])],64))])):$(``,!0)}}),[[`__scopeId`,`data-v-8566d3cd`]]),a_e={key:0,class:`conflict-bar`},o_e={class:`conflict-head`},s_e={class:`conflict-icon`},c_e={class:`conflict-title`},l_e={class:`conflict-detail`},u_e={key:0,class:`conflict-diff`},d_e={class:`conflict-diff-col`},f_e={class:`conflict-diff-label`},p_e={class:`conflict-diff-pre`},m_e={class:`conflict-diff-col`},h_e={class:`conflict-diff-label`},g_e={class:`conflict-diff-pre`},__e={class:`conflict-actions`},v_e=[`title`],y_e=[`title`],b_e=[`title`],K9=P7(jB({__name:`ConflictBar`,props:{pendingConflict:{},onResolve:{},icons:{default:()=>({...j5})},messages:{default:()=>({...N5})}},setup(e){let t=e,n=Tz(!1);aB(()=>t.pendingConflict,()=>{n.value=!1});let r=gH(()=>{let e=t.pendingConflict?.agentValue;if(e===void 0)return``;try{let n=JSON.stringify(e,null,2);return n.length>400?n.slice(0,400)+t.messages.argsTruncatedSuffix:n}catch{return String(e)}}),i=gH(()=>{let e=t.pendingConflict?.currentValue;if(e==null)return``;try{let n=JSON.stringify(e,null,2);return n.length>400?n.slice(0,400)+t.messages.argsTruncatedSuffix:n}catch{return String(e)}});return(t,a)=>e.pendingConflict?(X(),Z(`div`,a_e,[Q(`div`,o_e,[Q(`span`,s_e,[YV(F7,{icon:e.icons.conflict},null,8,[`icon`])]),Q(`span`,c_e,[ZV(J(e.messages.conflictTitlePrefix),1),Q(`code`,null,J(e.pendingConflict.path),1),ZV(J(e.messages.conflictTitleSuffix),1)])]),Q(`div`,l_e,J(e.messages.conflictDetailTemplate.replace(`{op}`,e.pendingConflict.op===`delete`?e.messages.conflictOpDelete:e.messages.conflictOpWrite)),1),Q(`button`,{class:`conflict-toggle`,onClick:a[0]||=e=>n.value=!n.value},J(n.value?e.messages.collapseDiff:e.messages.viewDiff)+J(n.value?` ▴`:` ▾`),1),n.value?(X(),Z(`div`,u_e,[Q(`div`,d_e,[Q(`div`,f_e,J(e.messages.agentValueLabel),1),Q(`pre`,p_e,J(r.value||e.messages.deleteNoValue),1)]),Q(`div`,m_e,[Q(`div`,h_e,J(e.messages.currentValueLabel),1),Q(`pre`,g_e,J(i.value),1)])])):$(``,!0),Q(`div`,__e,[Q(`button`,{class:`conflict-keep`,onClick:a[1]||=t=>e.onResolve?.(`keep_external`),title:e.messages.keepExternalTitle},[YV(I7,{text:e.messages.keepExternal},null,8,[`text`])],8,v_e),Q(`button`,{class:`conflict-overwrite`,onClick:a[2]||=t=>e.onResolve?.(`overwrite`),title:e.messages.overwriteTitle},[YV(I7,{text:e.messages.overwrite},null,8,[`text`])],8,y_e),Q(`button`,{class:`conflict-restore`,onClick:a[3]||=t=>e.onResolve?.(`restore`),title:e.messages.restoreTitle},[YV(I7,{text:e.messages.restore},null,8,[`text`])],8,b_e)])])):$(``,!0)}}),[[`__scopeId`,`data-v-8263b7d4`]]),x_e={class:`chat-footer`},S_e=[`title`],C_e={key:0,class:`drop-hint`},w_e={key:1,class:`focus-chips`},T_e=[`title`,`onClick`],E_e={class:`focus-chip-icon`},D_e={class:`focus-chip-path`},O_e=[`title`,`onClick`],k_e={key:2,class:`img-chips`,"data-test":`img-chips`},A_e=[`title`],j_e=[`src`,`alt`],M_e=[`onClick`],N_e={key:3,class:`img-error`,"data-test":`img-error`},P_e=[`placeholder`,`rows`],F_e={class:`input-actions`},I_e={class:`send-hint`},L_e=[`title`],R_e={key:1,width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},z_e=[`disabled`,`title`],B_e={key:0,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`},V_e={key:2,width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},q9=P7(jB({__name:`ChatInput`,props:{placeholder:{},inputRows:{}},setup(e){let t=R5(),{inputText:n,send:r,keydown:i,canUndo:a,undo:o,focuses:s,removeFocus:c,focusChipClick:l,icons:u,messages:d}=t,{state:f,stop:p}=t.chat,{pendingImages:m,addImageFiles:h,removePendingImage:g,imageInputError:_,compressingImages:v}=t,y=Tz(null),b=Tz(!1),x=()=>y.value?.click(),S=e=>{let t=e.target.files;t?.length&&h(t),e.target.value=``},C=e=>{b.value=!1;let t=e.dataTransfer?.files;t?.length&&h(t)},w=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`&&e.type.startsWith(`image/`)){let t=e.getAsFile();t&&n.push(t)}n.length&&h(n)};return(t,h)=>(X(),Z(`div`,x_e,[Y(a)?(X(),Z(`button`,{key:0,class:`undo-foot-btn`,title:Y(d).undoTitle,onClick:h[0]||=(...e)=>Y(o)&&Y(o)(...e)},J(Y(d).undo),9,S_e)):$(``,!0),Q(`div`,{class:mR([`chat-input-wrap`,{"drag-over":b.value}]),onDragover:h[4]||=NU(e=>b.value=!0,[`prevent`]),onDragleave:h[5]||=e=>b.value=!1,onDrop:NU(C,[`prevent`])},[b.value?(X(),Z(`div`,C_e,J(Y(d).imageDropHint),1)):$(``,!0),Y(s).length?(X(),Z(`div`,w_e,[(X(!0),Z(FV,null,GB(Y(s),e=>(X(),Z(`span`,{key:e.path,class:`focus-chip`,title:Y(d).focusChipTitlePrefix+e.path+Y(d).focusChipTitleHint,onClick:t=>Y(l)(e)},[Q(`span`,E_e,[YV(F7,{icon:Y(u).focus},null,8,[`icon`])]),Q(`code`,D_e,J(e.path),1),Q(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`focus-clear`,title:Y(d).removeFocus,onClick:NU(t=>Y(c)(e.path),[`stop`])},`✕`,8,O_e)],8,T_e))),128))])):$(``,!0),Y(m).length?(X(),Z(`div`,k_e,[(X(!0),Z(FV,null,GB(Y(m),e=>(X(),Z(`span`,{key:e.id,class:`img-chip`,title:e.name||Y(d).imageAlt},[Q(`img`,{class:`img-chip-thumb`,src:e.dataUri,alt:e.name||Y(d).imageAlt},null,8,j_e),Q(`button`,{type:`button`,class:`img-chip-x`,"data-test":`img-chip-x`,onClick:t=>Y(g)(e.id)},`✕`,8,M_e)],8,A_e))),128))])):$(``,!0),Y(_)?(X(),Z(`div`,N_e,J(Y(_)),1)):$(``,!0),tB(Q(`textarea`,{"onUpdate:modelValue":h[1]||=e=>wz(n)?n.value=e:null,class:mR([`chat-input`,{"has-focus-chip":Y(s).length>0,"has-img-chip":Y(m).length>0||Y(_)}]),placeholder:e.placeholder,rows:e.inputRows,onKeydown:h[2]||=(...e)=>Y(i)&&Y(i)(...e),onPaste:w},null,42,P_e),[[AU,Y(n)]]),Q(`div`,F_e,[Q(`span`,I_e,J(Y(d).sendHint),1),Q(`button`,{class:`attach-btn`,title:Y(d).attachImageTitle,"data-test":`attach-btn`,onClick:x},[Y(u).attachImage?(X(),WV(F7,{key:0,icon:Y(u).attachImage},null,8,[`icon`])):(X(),Z(`svg`,R_e,[...h[6]||=[Q(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`},null,-1)]]))],8,L_e),Q(`input`,{ref_key:`fileInput`,ref:y,type:`file`,accept:`image/*`,multiple:``,hidden:``,"data-test":`attach-input`,onChange:S},null,544),Q(`button`,{class:mR([`send-btn`,{"stop-btn":Y(f).loading}]),disabled:!Y(f).loading&&!Y(n).trim()&&!Y(m).length&&!Y(v),title:Y(f).loading?Y(d).stopTitle:Y(d).sendTitle,onClick:h[3]||=e=>Y(f).loading?Y(p)():Y(r)()},[Y(f).loading?(X(),Z(`svg`,B_e,[...h[7]||=[Q(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`},null,-1)]])):Y(u).send?(X(),WV(F7,{key:1,icon:Y(u).send},null,8,[`icon`])):(X(),Z(`svg`,V_e,[...h[8]||=[Q(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`},null,-1),Q(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`},null,-1)]]))],10,z_e)])],34)]))}}),[[`__scopeId`,`data-v-335e3aeb`]]),H_e={key:0,class:`debug-drawer`},U_e={class:`drawer-header`},W_e={class:`tab-group`},G_e={class:`header-actions`},K_e=[`title`],q_e=[`title`],J_e=[`title`],Y_e={key:0,class:`drawer-filters`},X_e=[`onClick`],Z_e={class:`chip-count`},Q_e={class:`chip-count`},$_e={key:0,class:`trace-panel`},eve={key:0,class:`trace-empty`},tve={class:`trace-metrics`},nve={class:`metric-card`},rve={class:`metric-card`},ive={class:`metric-card`},ave={class:`metric-card`},ove={key:0,class:`metric-card`},sve={key:1,class:`metric-card`},cve={class:`trace-spans`},lve={class:`span-ico`},uve={class:`span-name`},dve={key:0,class:`span-dur`},fve={key:1,class:`span-status`},pve={key:1,class:`context-panel`},mve={key:0,class:`trace-empty`},hve={class:`ctx-overview`},gve={class:`ctx-occupancy`},_ve=[`title`],vve=[`title`],yve={class:`ctx-pct`},bve={class:`ctx-kv-row`},xve={class:`ctx-kv`},Sve={key:0,class:`ctx-kv`},Cve={key:1,class:`ctx-kv`},wve={class:`ctx-section-title`},Tve=[`title`],Eve={class:`ctx-cat-bar`},Dve={class:`ctx-cat-tokens`},J9={key:0,class:`ctx-compression`},Ove={class:`ctx-section-title`},kve={class:`ctx-kv-row`},Ave={class:`ctx-kv`},jve={class:`ctx-kv`},Mve={class:`ctx-kv`},Nve={key:0,class:`ctx-kv`},Pve={key:2,class:`subagent-panel`},Fve={key:0,class:`sub-section`},Ive={class:`sub-section-title`},Lve={key:1,class:`trace-empty`},Rve={key:0,class:`sub-section`},zve={class:`sub-section-title`},Bve={class:`sub-head`},Vve={class:`sub-label`},Hve={class:`sub-steps-badge`},Uve={class:`sub-task`},Wve={key:1,class:`sub-section`},Gve={class:`sub-section-title`},Kve={class:`sub-head`},qve={class:`sub-label`},Jve={key:0,class:`sub-dur`},Yve=[`onClick`],Xve={class:`sub-task`},Zve={key:0,class:`sub-result`},Qve={key:1,class:`sub-steps-list`},$ve={class:`sub-step-kind`},eye={class:`sub-step-name`},tye={class:`sub-step-ts`},nye={key:0,class:`empty`},rye=[`onClick`],iye={class:`log-group-title`},aye={class:`log-group-meta`},oye={key:0,class:`lg-badge`},sye={key:1,class:`lg-badge`},cye={key:2,class:`lg-badge err`},lye={class:`log-group-body`},uye={class:`log-head`},dye={key:0,class:`log-source`},fye={class:`log-time`},pye={class:`log-body`},mye={class:`kv-grid`},hye={class:`kv`},gye={class:`k`},_ye={class:`v`},vye={class:`kv`},yye={class:`k`},bye={class:`v`},xye={class:`kv`},Sye={class:`v`},Cye={class:`kv`},wye={class:`k`},Tye={class:`v`},Eye={class:`section-label`},Dye={class:`chip-row`},Oye={class:`section-label`},kye={class:`msg-list`},Aye={class:`msg-text`},jye={class:`badge-row`},Mye={class:`badge`},Nye={key:0,class:`badge muted`},Pye={class:`badge muted`},Fye={key:1,class:`badge muted`},Iye=[`onClick`],Lye=[`title`,`onClick`],Rye=[`onClick`],zye=[`title`,`onClick`],Bye={class:`msg-detail`},Vye={key:0,class:`msg-text`},Hye={class:`tc-inline-name`},Uye={class:`tc-inline-args`},Wye={key:1,class:`tc-id`},Gye={key:1,class:`log-raw`},Kye={class:`badge-row`},qye={class:`badge`},Jye={key:0,class:`badge warn`},Yye={key:0,class:`resp-content`},Xye={key:1,class:`tc-list`},Zye={class:`tc-name`},Qye={class:`tc-args`},$ye={key:2,class:`usage-row`},ebe={class:`usage`},tbe={class:`usage`},nbe={class:`usage`},rbe={class:`tc-name`},ibe={key:0,class:`tc-dur`},abe=[`title`,`onClick`],obe={class:`tc-args`},sbe={class:`tc-result-sep`},cbe={class:`tc-args tc-result`},lbe={key:1,class:`tc-card inline`},ube={class:`tc-name`},dbe={key:0,class:`tc-dur running`},fbe={class:`tc-args`},pbe={key:4,class:`err-box`},mbe={class:`log-footer`},hbe=[`onClick`],gbe=[`onClick`],_be={key:0,class:`log-raw`},vbe={key:0,class:`empty`},ybe={key:1,class:`flow-section`},bbe={class:`flow-section-title`},xbe={class:`flow-ico`},Sbe={class:`flow-label`},Cbe={class:`flow-detail`},wbe={class:`flow-time`},Tbe={class:`flow-round-head`},Ebe={class:`flow-round-body`},Dbe={class:`flow-ico`},Obe={class:`flow-label`},kbe={class:`flow-detail`},Abe={class:`flow-time`},jbe={key:5,class:`info-body`},Mbe={key:0,class:`empty`},Nbe={class:`info-section`},Pbe={class:`info-title`},Fbe={class:`kv-grid`},Ibe={class:`kv`},Lbe={class:`v`},Rbe={class:`kv`},zbe={class:`k`},Bbe={class:`v`},Vbe={class:`kv`},Hbe={class:`k`},Ube={class:`v`},Wbe={class:`kv`},Gbe={class:`k`},Kbe={class:`v`},qbe={class:`kv`,style:{"margin-top":`6px`}},Jbe={class:`k`},Ybe={class:`v`,style:{"font-size":`11px`}},Xbe={class:`info-section`},Zbe={class:`info-title`},Qbe={class:`info-name`},$be={class:`info-desc`},exe={key:0,class:`info-section`},txe={class:`info-title`},nxe={class:`info-hint`},rxe=[`onClick`],ixe={class:`info-desc`},axe={key:0,class:`skill-content`},oxe={key:0,class:`skill-loading`},sxe={key:1,class:`skill-error`},cxe={key:2,class:`skill-pre`},lxe={key:1,class:`info-section`},uxe={class:`info-title`},dxe={class:`info-item`},fxe={class:`info-name`},pxe={class:`info-desc`},mxe={class:`info-section`},hxe={class:`info-title`},gxe={class:`kv-grid`},_xe={class:`kv`},vxe={class:`k`},yxe={class:`v`},bxe={class:`kv`},xxe={class:`k`},Sxe={class:`v`},Cxe={class:`kv`},wxe={class:`k`},Txe={class:`v`},Exe={class:`kv`},Dxe={class:`k`},Oxe={class:`v`,style:{"font-size":`11px`}},kxe={key:2,class:`info-section`},Axe={class:`info-title`},jxe={class:`info-name`},Mxe={class:`src-tag mcp`},Nxe={class:`info-desc`},Pxe={key:3,class:`info-section`},Fxe={class:`info-title`},Ixe={class:`kv-grid`},Lxe={class:`kv`},Rxe={class:`k`},zxe={class:`v`},Bxe={class:`kv`},Vxe={class:`k`},Hxe={class:`v`},Uxe={class:`kv`},Wxe={class:`k`},Gxe={class:`v`},Kxe={key:0,class:`kv`},qxe={class:`k`},Jxe={class:`v`,style:{"font-size":`11px`}},Yxe={key:4,class:`info-section`},Xxe={class:`info-title`},Zxe={key:5,class:`info-section`},Qxe={class:`info-title`},$xe={class:`info-pre`},eSe={key:6,class:`info-section`},tSe={class:`info-title`},nSe={class:`todo-tag`,style:{background:`#6366f1`}},rSe={key:7,class:`info-section`},iSe={class:`info-title`},aSe={class:`info-kv`},oSe={class:`kv`},sSe={class:`k`},cSe={class:`v`},lSe={class:`kv`},uSe={class:`k`},dSe={class:`v`},fSe={class:`kv`},pSe={class:`k`},mSe={class:`v`},hSe={class:`kv`},gSe={class:`k`},_Se={class:`v`},vSe={class:`kv`},ySe={class:`k`},bSe={class:`v`,style:{"font-size":`11px`}},xSe={key:0,class:`kv`},SSe={class:`k`},CSe={class:`v`,style:{"font-size":`11px`}},Y9=400,X9=P7(jB({__name:`DebugDrawer`,props:{logs:{default:()=>[]},visible:{type:Boolean},getInfo:{},exportDiagnostics:{},infoTick:{},getSkillContent:{},csTheme:{},messages:{default:()=>N5},locale:{default:`zh-CN`}},emits:[`update:visible`,`clear`],setup(e,{emit:t}){let n=e,r=t,i=Tz(`all`),a=Tz(new Set),o=Tz(null),s=Tz(null),c=Tz(null),l=null;function u(){l||!o.value||!s.value||!c.value||(l=O5({target:o.value,elements:{viewport:s.value,content:c.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}HB(u),aB(()=>n.visible,async e=>{e&&(await Wz(),u())}),UB(()=>{l?.destroy(),l=null});let d=Tz(new Set),f=Tz(new Set);function p(e){let t=f.value;t.has(e)?t.delete(e):t.add(e)}let m=Tz(new Set);function h(e){let t=m.value;t.has(e)?t.delete(e):t.add(e)}let g=Tz(``);async function _(e,t){await A5(e)&&(g.value=t,setTimeout(()=>{g.value===t&&(g.value=``)},1200))}async function v(){let e=``;try{e=n.exportDiagnostics?n.exportDiagnostics():E2(T2({debugLogs:x.value,info:n.getInfo?n.getInfo():null}))}catch{e=``}e&&await _(e,`report`)}let y=gH(()=>n.messages),b=gH(()=>({context:{label:y.value.debugTypeContext,color:`var(--cs-primary)`,icon:`🧩`},llm_request:{label:y.value.debugTypeLlmRequest,color:`#059669`,icon:`➡️`},llm_response:{label:y.value.debugTypeLlmResponse,color:`#d97706`,icon:`⬅️`},tool_call:{label:y.value.debugTypeToolCall,color:`#7c3aed`,icon:`🔧`},tool_result:{label:y.value.debugTypeToolResult,color:`#2563eb`,icon:`✅`},error:{label:y.value.debugTypeError,color:`#dc2626`,icon:`❌`},middleware:{label:y.value.debugTypeMiddleware,color:`#0891b2`,icon:`⚙️`}})),x=gH(()=>Array.isArray(n.logs)?n.logs:[]),S=gH(()=>i.value===`all`?x.value:x.value.filter(e=>e.type===i.value)),C=gH(()=>{let e={all:x.value.length};for(let t of x.value)e[t.type]=(e[t.type]||0)+1;return e}),w=0,T=new WeakMap;function E(e){let t=T.get(e);return t??(t=++w,T.set(e,t)),t}let D=gH(()=>{let e=S.value,t=i.value===`all`||i.value===`tool_call`||i.value===`tool_result`,n=new Map,r=0;for(let e of x.value)e.type===`llm_request`&&(n.set(e,r),r=e.data?.messages?.length??0);let a=[],o=new Map;for(let r of e){if(r.type===`llm_request`){a.push({log:r,prevMsgCount:n.get(r),uid:E(r)});continue}if(!t||r.type!==`tool_call`&&r.type!==`tool_result`){a.push({log:r,uid:E(r)});continue}if(r.type===`tool_call`){let e=String(r.data?.name??``),t=o.get(e)??[];t.push(r),o.set(e,t),a.push({log:r,uid:E(r)})}else{let e=o.get(String(r.data?.name??``))?.shift();if(e){let t=a.findIndex(t=>t.log===e),n={log:r,pairCall:e,uid:E(e)};t>=0?a[t]=n:a.push(n)}else a.push({log:r,uid:E(r)})}}return a}),ee=gH(()=>{let e=new WeakMap,t=0,n=0;for(let r of x.value){if(!r.source&&r.type===`context`){t++,n=0,e.set(r,{epoch:t,kind:`pre`});continue}let i=r.data?.round;if(!r.source&&typeof i==`number`&&i>0){n=i,e.set(r,{epoch:t,kind:`round`,round:i});continue}if(!r.source&&i===`wrap_up`){e.set(r,{epoch:t,kind:`wrap_up`});continue}e.set(r,n>0?{epoch:t,kind:`round`,round:n}:{epoch:t,kind:`pre`})}return e}),te=gH(()=>{let e=ee.value,t=new Map,n=[];for(let r of D.value){let i=e.get(r.log)??{epoch:0,kind:`pre`},a=`${i.epoch}:${i.kind}:${i.round??``}`,o=t.get(a);o||(o={key:a,kind:i.kind,round:i.round,entries:[],firstTs:r.log.timestamp,lastTs:r.log.timestamp,toolCount:0,tokens:null,errorCount:0},t.set(a,o),n.push(o)),o.entries.push(r),r.log.timestamp<o.firstTs&&(o.firstTs=r.log.timestamp),r.log.timestamp>o.lastTs&&(o.lastTs=r.log.timestamp),r.log.type===`tool_call`&&o.toolCount++,(r.log.type===`error`||r.log.type===`tool_result`&&r.log.data?.status===`error`)&&o.errorCount++;let s=r.log.type===`llm_response`?r.log.data?.usage:void 0;s?.total_tokens!=null&&(o.tokens=(o.tokens??0)+s.total_tokens)}return n}),O=Tz(new Set),ne=Tz(new Set),k=gH(()=>te.value.length?te.value[te.value.length-1].key:``);function re(e){return O.value.has(e)?!0:!ne.value.has(e)&&e===k.value}function ie(e){let t=new Set(O.value),n=new Set(ne.value);re(e)?(t.delete(e),n.add(e)):(n.delete(e),t.add(e)),O.value=t,ne.value=n}function ae(e){return e.kind===`pre`?y.value.debugFlowPrep:e.kind===`wrap_up`?y.value.debugLogsWrapUp:`${y.value.debugRoundPrefix}${e.round}${y.value.debugRoundSuffix}`}function A(e,t,n){let r=e.data?.messages??[];return n&&t!=null&&t>0&&t<r.length?{list:r.slice(t),base:t}:{list:r,base:0}}function j(e){return new Date(e).toLocaleTimeString(n.locale,{hour12:!1})+`.`+String(e%1e3).padStart(3,`0`)}function oe(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}function se(e){let t=new Set(d.value);t.has(e)?t.delete(e):t.add(e),d.value=t}function ce(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}let le={system:{label:`SYSTEM`,color:`#6b7280`},human:{label:`USER`,color:`var(--cs-primary)`},user:{label:`USER`,color:`var(--cs-primary)`},ai:{label:`AI`,color:`#059669`},assistant:{label:`AI`,color:`#059669`},tool:{label:`TOOL`,color:`#2563eb`}};function ue(e){return le[e]||{label:(e||`?`).toUpperCase(),color:`#9ca3af`}}function de(){r(`update:visible`,!1)}function fe(){a.value=new Set,O.value=new Set,ne.value=new Set,r(`clear`)}let pe=Tz(`logs`),M=Tz(null),N=Tz({});async function me(e){if(N.value[e]){delete N.value[e],N.value={...N.value};return}if(!n.getSkillContent){N.value={...N.value,[e]:{loading:!1,content:null,error:y.value.debugSkillNoReader}};return}N.value={...N.value,[e]:{loading:!0,content:null}};try{let t=await n.getSkillContent(e);N.value={...N.value,[e]:{loading:!1,content:t,error:t==null?y.value.debugSkillEmpty:void 0}}}catch(t){N.value={...N.value,[e]:{loading:!1,content:null,error:String(t?.message||t)}}}}function he(){if(n.getInfo)try{M.value=n.getInfo()}catch{M.value=null}}function ge(e){pe.value=e,(e===`subagent`||e===`info`||e===`context`)&&he()}aB(()=>n.infoTick?.value,()=>{n.visible&&(pe.value===`subagent`||pe.value===`info`||pe.value===`context`)&&he()});let _e=gH(()=>({pending:{label:y.value.debugTodoPending,color:`#9ca3af`},in_progress:{label:y.value.debugTodoInProgress,color:`#d97706`},completed:{label:y.value.debugTodoCompleted,color:`#059669`}}));function P(e){return _e.value[e]?.label??e}function ve(e){return{color:y.value.debugPrefTopicColor,copy:y.value.debugPrefTopicCopy,layout:y.value.debugPrefTopicLayout,interaction:y.value.debugPrefTopicInteraction,tech:y.value.debugPrefTopicTech,other:y.value.debugPrefTopicOther}[e]??e}function F(e){return e?e===`builtin`?`builtin`:e.startsWith(`mcp:`)?`mcp`:`user`:``}let ye=gH(()=>{let e=new Map,t=[];for(let n of x.value){let r=n.data?.round;typeof r==`number`&&r>0?(e.has(r)||e.set(r,[]),e.get(r).push(n)):t.push(n)}return{pre:t,rounds:[...e.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>({round:e,items:t}))}});function I(e,t){return e.length>t?e.slice(0,t)+`…`:e}function be(e){if(e>=1e3){let t=e/1e3;return t>=10?`${Math.round(t)}s`:`${t.toFixed(1)}s`}return`${e}ms`}let xe=gH(()=>M.value?.trace?.spans??[]),Se=gH(()=>M.value?.trace?.metrics),Ce=gH(()=>M.value?.context),we=gH(()=>{let e=Ce.value;return e?e.occupancy>=1?`red`:e.thresholdRatio>0&&e.occupancy>=e.thresholdRatio?`yellow`:`green`:``}),Te=gH(()=>M.value?.subagent?.active??[]),Ee=gH(()=>M.value?.subagent?.history??[]),De=gH(()=>Object.entries(M.value?.subagent?.lockedComponents??{})),Oe=gH(()=>({running:{label:y.value.debugSubRunning,color:`#059669`},done:{label:y.value.debugSubDone,color:`#6b7280`},error:{label:y.value.debugSubError,color:`#dc2626`}})),ke=Tz(new Set);function Ae(e){let t=new Set(ke.value);t.has(e)?t.delete(e):t.add(e),ke.value=t}function je(e){return e===`round`?`🔄`:e===`model`?`🧠`:e===`tool`?`🔧`:e===`compression`?`📦`:`•`}function Me(e){return`${e.windowRatio==null?`keepRounds=${e.keepRounds??`?`}`:`windowRatio=${e.windowRatio}`} · ${e.summarize.mode}${y.value.debugSummaryMode} · ${y.value.debugCtxRecalled}${e.recallTopK??`?`}${e.reason?` · `+e.reason:``}`}function Ne(e){let t=e.data||{};switch(e.type){case`context`:return`${t.tools?.length??0}${y.value.debugToolCountSuffix} · ${t.totalMessages??0}${y.value.debugMsgCountSuffix}`;case`llm_request`:return`${(t.messages||[]).length}${y.value.debugMsgCountSuffix}${t.tools?.length?` · `+t.tools.length+y.value.debugToolCountSuffix:``}`;case`llm_response`:return t.toolCalls?.length?`${t.toolCalls.length}${y.value.debugToolCallsSuffix}`:t.content?I(String(t.content),50):``;case`tool_call`:return String(t.name??``);case`tool_result`:return`${t.name??``} · ${t.status===`error`?`❌`:`✅`}`;case`error`:return I(String(t.error??t.tool??``),60);case`middleware`:return String(t.stage??``);default:return``}}return(t,n)=>(X(),WV(gB,{to:`body`},[YV(MH,{name:`drawer`},{default:eB(()=>[e.visible?(X(),Z(`div`,H_e,[Q(`div`,{class:mR([`drawer-panel`,{"cs-theme-dark":e.csTheme===`dark`}])},[Q(`div`,U_e,[Q(`div`,W_e,[Q(`button`,{class:mR([`tab-btn`,{active:pe.value===`logs`}]),onClick:n[0]||=e=>ge(`logs`)},`🐛 `+J(y.value.debugTabLogs),3),Q(`button`,{class:mR([`tab-btn`,{active:pe.value===`flow`}]),onClick:n[1]||=e=>ge(`flow`)},`🔀 `+J(y.value.debugTabFlow),3),e.getInfo?(X(),Z(`button`,{key:0,class:mR([`tab-btn`,{active:pe.value===`trace`}]),onClick:n[2]||=e=>ge(`trace`)},`🌳 Trace`,2)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:1,class:mR([`tab-btn`,{active:pe.value===`context`}]),onClick:n[3]||=e=>ge(`context`)},`📊 `+J(y.value.debugTabContext),3)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:2,class:mR([`tab-btn`,{active:pe.value===`subagent`}]),onClick:n[4]||=e=>ge(`subagent`)},`🤖 `+J(y.value.debugTabSubagent),3)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:3,class:mR([`tab-btn`,{active:pe.value===`info`}]),onClick:n[5]||=e=>ge(`info`)},`🧬 `+J(y.value.debugTabInfo),3)):$(``,!0)]),Q(`div`,G_e,[Q(`button`,{class:`hd-btn`,title:y.value.debugCopyReport,onClick:v},J(g.value===`report`?`✓`:`📋`),9,K_e),pe.value===`logs`?(X(),Z(`button`,{key:0,class:`hd-btn`,title:y.value.debugClearLogs,onClick:fe},`🗑️`,8,q_e)):$(``,!0),Q(`button`,{class:`hd-btn`,title:y.value.close,onClick:de},`✕`,8,J_e)])]),pe.value===`logs`?(X(),Z(`div`,Y_e,[(X(!0),Z(FV,null,GB(b.value,(e,t)=>(X(),Z(`button`,{key:t,class:mR([`filter-chip`,{active:i.value===t}]),style:pR({"--chip-color":e.color}),onClick:e=>i.value=t},[ZV(J(e.icon)+` `+J(e.label)+` `,1),Q(`span`,Z_e,J(C.value[t]||0),1)],14,X_e))),128)),Q(`button`,{class:mR([`filter-chip all`,{active:i.value===`all`}]),onClick:n[6]||=e=>i.value=`all`},[ZV(J(y.value.debugFilterAll)+` `,1),Q(`span`,Q_e,J(C.value.all||0),1)],2)])):$(``,!0),Q(`div`,{class:`drawer-body`,ref_key:`drawerBodyEl`,ref:o},[Q(`div`,{class:`drawer-scroll-viewport`,tabindex:`-1`,ref_key:`drawerViewportEl`,ref:s},[Q(`div`,{ref_key:`drawerContentsEl`,ref:c},[pe.value===`trace`?(X(),Z(`div`,$_e,[Se.value?(X(),Z(FV,{key:1},[Q(`div`,tve,[Q(`div`,nve,[Q(`span`,null,J(y.value.debugMetricRounds),1),Q(`b`,null,J(Se.value.rounds),1)]),Q(`div`,rve,[Q(`span`,null,J(y.value.debugMetricTotal),1),Q(`b`,null,J(Se.value.totalDurationMs)+`ms`,1)]),Q(`div`,ive,[Q(`span`,null,J(y.value.debugMetricAvg),1),Q(`b`,null,J(Se.value.avgRoundMs)+`ms`,1)]),Q(`div`,ave,[Q(`span`,null,J(y.value.debugMetricTools),1),Q(`b`,null,J(Se.value.toolCalls)+`(✅`+J(Math.round(Se.value.toolSuccessRate*100))+`%)`,1)]),Se.value.compressions?(X(),Z(`div`,ove,[Q(`span`,null,J(y.value.debugMetricCompressions),1),Q(`b`,null,J(Se.value.compressions),1)])):$(``,!0),Se.value.totalTokens?(X(),Z(`div`,sve,[n[7]||=Q(`span`,null,`Token`,-1),Q(`b`,null,J(Se.value.totalTokens.total),1)])):$(``,!0)]),Q(`div`,cve,[(X(!0),Z(FV,null,GB(xe.value,e=>(X(),Z(`div`,{key:e.id,class:mR([`trace-span`,[e.type,e.status]])},[Q(`span`,lve,J(je(e.type)),1),Q(`span`,uve,J(e.name),1),e.durationMs?(X(),Z(`span`,dve,J(be(e.durationMs)),1)):$(``,!0),e.status===`error`?(X(),Z(`span`,fve,`❌`)):$(``,!0)],2))),128))])],64)):(X(),Z(`div`,eve,J(y.value.debugTraceEmpty),1))])):$(``,!0),pe.value===`context`?(X(),Z(`div`,pve,[Ce.value?(X(),Z(FV,{key:1},[Q(`div`,hve,[Q(`div`,gve,[Q(`div`,{class:`ctx-bar-track`,title:`${y.value.debugCtxOccupancy} ${Math.round(Ce.value.occupancy*100)}%`},[Q(`div`,{class:mR([`ctx-bar-fill`,we.value]),style:pR({width:Math.min(Ce.value.occupancy*100,100)+`%`})},null,6),Ce.value.thresholdRatio>0?(X(),Z(`div`,{key:0,class:`ctx-threshold-mark`,style:pR({left:Math.min(Ce.value.thresholdRatio*100,100)+`%`}),title:y.value.debugCtxThreshold},null,12,vve)):$(``,!0)],8,_ve),Q(`span`,yve,J(Math.round(Ce.value.occupancy*100))+`%`,1)]),Q(`div`,bve,[Q(`span`,xve,J(y.value.debugCtxTokens)+` `+J(Ce.value.totalTokens)+` token`,1),Ce.value.contextWindow?(X(),Z(`span`,Sve,J(y.value.debugCtxWindow)+` `+J(Ce.value.contextWindow),1)):$(``,!0),Ce.value.thresholdRatio>0?(X(),Z(`span`,Cve,J(y.value.debugCtxThresholdPct)+` `+J(Math.round(Ce.value.thresholdRatio*100))+`%`,1)):$(``,!0)])]),Q(`div`,wve,J(y.value.debugCtxCategories),1),(X(!0),Z(FV,null,GB(Ce.value.categories,e=>(X(),Z(`div`,{key:e.key,class:`ctx-cat`},[Q(`span`,{class:`ctx-cat-label`,title:e.label},J(e.label),9,Tve),Q(`div`,Eve,[Q(`div`,{class:`ctx-cat-fill`,style:pR({width:Math.max(Math.round(e.pct*100),2)+`%`})},null,4)]),Q(`span`,Dve,[ZV(J(e.tokens)+` `,1),Q(`i`,null,`(`+J(Math.round(e.pct*100))+`%)`,1)])]))),128)),Ce.value.compression?(X(),Z(`div`,J9,[Q(`div`,Ove,J(y.value.debugCtxLastCompression),1),Q(`div`,kve,[Q(`span`,Ave,J(y.value.debugCtxSummarized)+` `+J(Ce.value.compression.roundsSummarized)+`/`+J(Ce.value.compression.roundsTotal)+J(y.value.debugCtxRoundsSuffix),1),Q(`span`,jve,J(y.value.debugCtxRecalled)+` `+J(Ce.value.compression.roundsRecalled),1),Q(`span`,Mve,J(Ce.value.compression.strategy),1),Ce.value.compression.decision?(X(),Z(`span`,Nve,`🤖 `+J(y.value.debugCtxAgentDecision)+J(Me(Ce.value.compression.decision)),1)):$(``,!0)])])):$(``,!0)],64)):(X(),Z(`div`,mve,J(y.value.debugCtxEmpty),1))])):$(``,!0),pe.value===`subagent`?(X(),Z(`div`,Pve,[De.value.length?(X(),Z(`div`,Fve,[Q(`div`,Ive,`🔒 `+J(y.value.debugLocksTitle)+` (`+J(De.value.length)+`)`,1),(X(!0),Z(FV,null,GB(De.value,([e,t])=>(X(),Z(`div`,{key:`lock-`+e,class:`sub-task`},`🔒 `+J(e)+` ← `+J(t),1))),128))])):$(``,!0),!Te.value.length&&!Ee.value.length?(X(),Z(`div`,Lve,J(y.value.debugSubagentEmpty),1)):(X(),Z(FV,{key:2},[Te.value.length?(X(),Z(`div`,Rve,[Q(`div`,zve,`▶ `+J(y.value.debugSubRunningTitle)+` (`+J(Te.value.length)+`)`,1),(X(!0),Z(FV,null,GB(Te.value,(e,t)=>(X(),Z(`div`,{key:`a`+t,class:mR([`sub-card`,e.status])},[Q(`div`,Bve,[Q(`span`,{class:`sub-status`,style:pR({background:Oe.value[e.status]&&Oe.value[e.status].color||`#9ca3af`})},J(Oe.value[e.status]&&Oe.value[e.status].label||e.status),5),Q(`span`,Vve,J(e.label),1),Q(`span`,Hve,J(e.steps.length)+J(y.value.debugStepsCountSuffix),1)]),Q(`div`,Uve,J(I(e.task,80)),1)],2))),128))])):$(``,!0),Ee.value.length?(X(),Z(`div`,Wve,[Q(`div`,Gve,`🕐 `+J(y.value.debugSubHistoryTitle)+` (`+J(Ee.value.length)+`)`,1),(X(!0),Z(FV,null,GB(Ee.value,(e,t)=>(X(),Z(`div`,{key:`h`+t,class:mR([`sub-card`,e.status])},[Q(`div`,Kve,[Q(`span`,{class:`sub-status`,style:pR({background:Oe.value[e.status]&&Oe.value[e.status].color||`#9ca3af`})},J(Oe.value[e.status]&&Oe.value[e.status].label||e.status),5),Q(`span`,qve,J(e.label),1),e.durationMs==null?$(``,!0):(X(),Z(`span`,Jve,J(be(e.durationMs)),1)),e.steps.length?(X(),Z(`button`,{key:1,class:`sub-toggle`,onClick:e=>Ae(t)},J(ke.value.has(t)?y.value.collapse:y.value.debugStepsBtn),9,Yve)):$(``,!0)]),Q(`div`,Xve,J(I(e.task,80)),1),e.resultPreview?(X(),Z(`div`,Zve,J(e.resultPreview),1)):$(``,!0),ke.value.has(t)&&e.steps.length?(X(),Z(`div`,Qve,[(X(!0),Z(FV,null,GB(e.steps,(e,t)=>(X(),Z(`div`,{key:t,class:`sub-step`},[Q(`span`,$ve,J(e.kind===`tool_call`?`🔧`:`✅`),1),Q(`span`,eye,J(e.name),1),Q(`span`,tye,J(j(e.ts)),1)]))),128))])):$(``,!0)],2))),128))])):$(``,!0)],64))])):$(``,!0),pe.value===`logs`?(X(),Z(FV,{key:3},[S.value.length===0?(X(),Z(`div`,nye,J(y.value.debugLogsEmpty),1)):$(``,!0),(X(!0),Z(FV,null,GB(te.value,e=>(X(),Z(`div`,{key:e.key,class:`log-group`},[Q(`div`,{class:mR([`log-group-head`,{expanded:re(e.key)}]),onClick:t=>ie(e.key)},[Q(`span`,{class:mR([`log-group-arrow`,{open:re(e.key)}])},`▶`,2),Q(`span`,iye,J(ae(e)),1),Q(`span`,aye,[ZV(J(j(e.firstTs)),1),e.lastTs>e.firstTs?(X(),Z(FV,{key:0},[ZV(` ~ `+J(j(e.lastTs)),1)],64)):$(``,!0),ZV(` · `+J(be(e.lastTs-e.firstTs)),1)]),e.toolCount?(X(),Z(`span`,oye,`🔧 `+J(e.toolCount),1)):$(``,!0),e.tokens==null?$(``,!0):(X(),Z(`span`,sye,`Σ `+J(e.tokens)+` tok`,1)),e.errorCount?(X(),Z(`span`,cye,`❌ `+J(e.errorCount),1)):$(``,!0)],10,rye),tB(Q(`div`,lye,[(X(!0),Z(FV,null,GB(e.entries,({log:e,pairCall:t,prevMsgCount:r,uid:i})=>(X(),Z(`div`,{key:i,class:`log-item`},[Q(`div`,uye,[Q(`span`,{class:`log-type`,style:pR({background:b.value[e.type].color})},J(b.value[e.type].icon)+` `+J(b.value[e.type].label),5),e.source?(X(),Z(`span`,dye,`↳ `+J(e.source),1)):$(``,!0),Q(`span`,fye,J(j(e.timestamp)),1)]),Q(`div`,pye,[e.type===`context`?(X(),Z(FV,{key:0},[Q(`div`,mye,[Q(`div`,hye,[Q(`span`,gye,J(y.value.debugModel),1),Q(`span`,_ye,J(e.data.model),1)]),Q(`div`,vye,[Q(`span`,yye,J(y.value.debugTemperature),1),Q(`span`,bye,J(e.data.temperature),1)]),Q(`div`,xye,[n[8]||=Q(`span`,{class:`k`},`MaxTokens`,-1),Q(`span`,Sye,J(e.data.maxTokens),1)]),Q(`div`,Cye,[Q(`span`,wye,J(y.value.debugMessageCount),1),Q(`span`,Tye,J(e.data.totalMessages),1)])]),Q(`div`,Eye,J(y.value.debugToolsLabel)+` (`+J(e.data.tools?.length||0)+`)`,1),Q(`div`,Dye,[(X(!0),Z(FV,null,GB(e.data.tools,e=>(X(),Z(`span`,{key:e,class:`tool-chip`},J(e),1))),128))]),Q(`div`,Oye,J(y.value.debugContextMessages),1),Q(`div`,kye,[(X(!0),Z(FV,null,GB(e.data.messages,(e,t)=>(X(),Z(`div`,{key:t,class:`msg-row`},[Q(`span`,{class:`msg-role`,style:pR({background:ue(e.type).color})},J(ue(e.type).label),5),Q(`span`,Aye,J(e.content),1)]))),128))])],64)):e.type===`llm_request`?(X(),Z(FV,{key:1},[Q(`div`,jye,[Q(`span`,Mye,J(y.value.debugRoundPrefix)+J(e.data.round)+J(y.value.debugRoundSuffix),1),e.data.model?(X(),Z(`span`,Nye,J(e.data.model),1)):$(``,!0),Q(`span`,Pye,[ZV(J((e.data.messages||[]).length)+J(y.value.debugMsgCountSuffix),1),r!=null&&r<(e.data.messages||[]).length?(X(),Z(FV,{key:0},[ZV(`(+`+J((e.data.messages||[]).length-r)+`)`,1)],64)):$(``,!0)]),e.data.tools?.length?(X(),Z(`span`,Fye,J(e.data.tools.length)+J(y.value.debugToolCountSuffix),1)):$(``,!0),r!=null&&r>0?(X(),Z(`button`,{key:2,class:`view-toggle only-new-btn`,onClick:e=>h(i)},J(m.value.has(i)?y.value.debugShowAll:y.value.debugOnlyNew),9,Iye)):$(``,!0),Q(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(ce(e.data.messages),`req`+i)},J(g.value===`req`+i?`✓`:`📋`),9,Lye),Q(`button`,{class:`view-toggle`,onClick:e=>se(i)},J(d.value.has(i)?y.value.debugCardView:y.value.debugRequestBody),9,Rye)]),d.value.has(i)?(X(),Z(`pre`,Gye,[Q(`code`,null,J(ce(e.data.messages)),1)])):(X(!0),Z(FV,{key:0},GB([A(e,r,m.value.has(i))],e=>(X(),Z(`div`,{key:e.base,class:`msg-list`},[(X(!0),Z(FV,null,GB(e.list,(t,n)=>(X(),Z(`div`,{key:n,class:mR([`msg-row`,{clamped:!f.value.has(i+`:`+(e.base+n))&&String(t.content??``).length>Y9}]),title:String(t.content??``).length>Y9?f.value.has(i+`:`+(e.base+n))?y.value.collapse:y.value.expand:void 0,onClick:r=>String(t.content??``).length>Y9&&p(i+`:`+(e.base+n))},[Q(`span`,{class:`msg-role`,style:pR({background:ue(t.role).color})},J(ue(t.role).label),5),Q(`div`,Bye,[t.content?(X(),Z(`span`,Vye,J(t.content),1)):$(``,!0),(X(!0),Z(FV,null,GB(t.tool_calls||[],(e,t)=>(X(),Z(`div`,{key:t,class:`tc-inline`},[Q(`span`,Hye,`🔧 `+J(e.function?.name||e.name),1),Q(`code`,Uye,J(e.function?.arguments??e.args),1)]))),128)),t.tool_call_id?(X(),Z(`span`,Wye,`↳ tool_call_id: `+J(t.tool_call_id),1)):$(``,!0)])],10,zye))),128))]))),128))],64)):e.type===`llm_response`?(X(),Z(FV,{key:2},[Q(`div`,Kye,[Q(`span`,qye,J(y.value.debugRoundPrefix)+J(e.data.round)+J(y.value.debugRoundSuffix),1),e.data.toolCalls?.length?(X(),Z(`span`,Jye,`🔧 `+J(e.data.toolCalls.length)+J(y.value.debugToolCallsSuffix),1)):$(``,!0)]),e.data.content?(X(),Z(`div`,Yye,J(e.data.content),1)):$(``,!0),e.data.toolCalls?.length?(X(),Z(`div`,Xye,[(X(!0),Z(FV,null,GB(e.data.toolCalls,(e,t)=>(X(),Z(`div`,{key:t,class:`tc-card`},[Q(`div`,Zye,`🔧 `+J(e.name),1),Q(`pre`,Qye,J(ce(e.args)),1)]))),128))])):$(``,!0),e.data.usage?(X(),Z(`div`,$ye,[Q(`span`,ebe,`prompt: `+J(e.data.usage.prompt_tokens??`-`),1),Q(`span`,tbe,`completion: `+J(e.data.usage.completion_tokens??`-`),1),Q(`span`,nbe,`total: `+J(e.data.usage.total_tokens??`-`),1)])):$(``,!0)],64)):e.type===`tool_call`||e.type===`tool_result`?(X(),Z(FV,{key:3},[t?(X(),Z(`div`,{key:0,class:mR([`tc-card inline paired`,{error:e.data.status===`error`}])},[Q(`div`,rbe,[ZV(J(e.data.status===`error`?`❌`:`✅`)+` `+J(e.data.name)+` `,1),e.data.durationMs==null?$(``,!0):(X(),Z(`span`,ibe,J(be(e.data.durationMs)),1)),Q(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(String(e.data.result??``),`res`+i)},J(g.value===`res`+i?`✓`:`📋`),9,abe)]),Q(`pre`,obe,J(ce(t.data.args)),1),Q(`div`,sbe,`↓ `+J(y.value.resultLabel),1),Q(`pre`,cbe,J(e.data.result),1)],2)):(X(),Z(`div`,lbe,[Q(`div`,ube,[ZV(J(e.type===`tool_call`?`🔧`:`✅`)+` `+J(e.data.name)+` `,1),e.type===`tool_call`?(X(),Z(`span`,dbe,J(y.value.statusRunning)+`…`,1)):$(``,!0)]),Q(`pre`,fbe,J(e.type===`tool_call`?ce(e.data.args):e.data.result),1)]))],64)):e.type===`error`?(X(),Z(`div`,pbe,J(e.data.tool?`[${e.data.tool}] `:``)+J(e.data.error),1)):$(``,!0)]),Q(`div`,mbe,[Q(`button`,{class:`raw-toggle`,onClick:e=>oe(i)},J(a.value.has(i)?y.value.debugCollapseRawJson:y.value.debugViewRawJson),9,hbe),Q(`button`,{class:`raw-toggle`,onClick:t=>Y(A5)(ce(e.data))},J(y.value.copy),9,gbe)]),a.value.has(i)?(X(),Z(`pre`,_be,[Q(`code`,null,J(ce(e.data)),1)])):$(``,!0)]))),128))],512),[[XH,re(e.key)]])]))),128))],64)):pe.value===`flow`?(X(),Z(FV,{key:4},[x.value.length?$(``,!0):(X(),Z(`div`,vbe,J(y.value.debugFlowEmpty),1)),ye.value.pre.length?(X(),Z(`div`,ybe,[Q(`div`,bbe,`⚙️ `+J(y.value.debugFlowPrep),1),(X(!0),Z(FV,null,GB(ye.value.pre,(e,t)=>(X(),Z(`div`,{key:`p`+t,class:mR([`flow-node`,e.type])},[Q(`span`,xbe,J(b.value[e.type]?.icon),1),Q(`span`,Sbe,J(b.value[e.type]?.label),1),Q(`span`,Cbe,J(Ne(e)),1),Q(`span`,wbe,J(j(e.timestamp)),1)],2))),128))])):$(``,!0),(X(!0),Z(FV,null,GB(ye.value.rounds,e=>(X(),Z(`div`,{key:e.round,class:`flow-round`},[Q(`div`,Tbe,`🔁 `+J(y.value.debugRoundPrefix)+J(e.round)+J(y.value.debugRoundSuffix),1),Q(`div`,Ebe,[(X(!0),Z(FV,null,GB(e.items,(e,t)=>(X(),Z(`div`,{key:t,class:mR([`flow-node`,e.type])},[Q(`span`,Dbe,J(b.value[e.type]?.icon),1),Q(`span`,Obe,J(b.value[e.type]?.label),1),Q(`span`,kbe,J(Ne(e)),1),Q(`span`,Abe,J(j(e.timestamp)),1)],2))),128))])]))),128))],64)):(X(),Z(`div`,jbe,[M.value?(X(),Z(FV,{key:1},[Q(`div`,Nbe,[Q(`div`,Pbe,J(y.value.debugInfoBasic),1),Q(`div`,Fbe,[Q(`div`,Ibe,[n[9]||=Q(`span`,{class:`k`},`ID`,-1),Q(`span`,Lbe,J(M.value.id),1)]),Q(`div`,Rbe,[Q(`span`,zbe,J(y.value.debugModel),1),Q(`span`,Bbe,J(M.value.model||`-`),1)]),Q(`div`,Vbe,[Q(`span`,Hbe,J(y.value.debugToolCount),1),Q(`span`,Ube,J(M.value.tools.length),1)]),Q(`div`,Wbe,[Q(`span`,Gbe,J(y.value.debugMiddleware),1),Q(`span`,Kbe,J(M.value.middleware.length),1)])]),Q(`div`,qbe,[Q(`span`,Jbe,J(y.value.debugMiddlewareStack),1),Q(`span`,Ybe,J(M.value.middleware.join(` → `)||`-`),1)])]),Q(`div`,Xbe,[Q(`div`,Zbe,`🔧 `+J(y.value.debugToolsLabel)+` (`+J(M.value.tools.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.tools,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,Qbe,[ZV(J(e.name),1),e.source?(X(),Z(`span`,{key:0,class:mR([`src-tag`,F(e.source)])},J(e.source),3)):$(``,!0)]),Q(`div`,$be,J(e.description),1)]))),128))]),M.value.skills.length?(X(),Z(`div`,exe,[Q(`div`,txe,[ZV(`📘 `+J(y.value.debugSkillsTitle)+` (`+J(M.value.skills.length)+`)`,1),Q(`span`,nxe,J(y.value.debugSkillsHint),1)]),(X(!0),Z(FV,null,GB(M.value.skills,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,{class:`info-name skill-toggle`,onClick:t=>me(e.name)},[Q(`span`,{class:mR([`skill-arrow`,{open:!!N.value[e.name]}])},`▶`,2),ZV(` `+J(e.name),1)],8,rxe),Q(`div`,ixe,J(e.description),1),N.value[e.name]?(X(),Z(`div`,axe,[N.value[e.name].loading?(X(),Z(`div`,oxe,J(y.value.debugLoading),1)):N.value[e.name].error?(X(),Z(`div`,sxe,J(N.value[e.name].error),1)):N.value[e.name].content?(X(),Z(`pre`,cxe,J(N.value[e.name].content),1)):$(``,!0)])):$(``,!0)]))),128))])):$(``,!0),M.value.data?(X(),Z(`div`,lxe,[Q(`div`,uxe,`📊 `+J(y.value.debugDataTitle),1),Q(`div`,dxe,[Q(`div`,fxe,J(M.value.data.description||y.value.debugDataFallback),1),Q(`div`,pxe,J(y.value.debugSchemaPrefix)+J(M.value.data.schema?y.value.debugSchemaDeclared:y.value.debugSchemaMissing),1)])])):$(``,!0),Q(`div`,mxe,[Q(`div`,hxe,`🧬 `+J(y.value.debugSubagentTitle),1),Q(`div`,gxe,[Q(`div`,_xe,[Q(`span`,vxe,J(y.value.debugEnabled),1),Q(`span`,yxe,J(M.value.subagent.enabled?y.value.debugYes:y.value.debugNo),1)]),Q(`div`,bxe,[Q(`span`,xxe,J(y.value.debugMaxDepth),1),Q(`span`,Sxe,J(M.value.subagent.maxDepth),1)]),Q(`div`,Cxe,[Q(`span`,wxe,J(y.value.debugMaxParallel),1),Q(`span`,Txe,J(M.value.subagent.maxParallel),1)]),Q(`div`,Exe,[Q(`span`,Dxe,J(y.value.debugExtraTools),1),Q(`span`,Oxe,J(M.value.subagent.allowedTools.length?M.value.subagent.allowedTools.join(`, `):y.value.debugDefaultReadonly),1)])])]),M.value.mcp?.servers?.length?(X(),Z(`div`,kxe,[Q(`div`,Axe,`🔌 MCP (`+J(M.value.mcp.servers.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.mcp.servers,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,jxe,[ZV(J(e.name)+` `,1),Q(`span`,Mxe,J(e.toolCount)+J(y.value.debugToolCountSuffix),1)]),Q(`div`,Nxe,J(e.url),1)]))),128))])):$(``,!0),M.value.verify?(X(),Z(`div`,Pxe,[Q(`div`,Fxe,`✅ `+J(y.value.debugVerifyTitle),1),Q(`div`,Ixe,[Q(`div`,Lxe,[Q(`span`,Rxe,J(y.value.debugEnabled),1),Q(`span`,zxe,J(M.value.verify.enabled?y.value.debugYes:y.value.debugNo),1)]),Q(`div`,Bxe,[Q(`span`,Vxe,J(y.value.debugMaxAttempts),1),Q(`span`,Hxe,J(M.value.verify.maxAttempts),1)]),Q(`div`,Uxe,[Q(`span`,Wxe,J(y.value.debugAdversarial),1),Q(`span`,Gxe,J(M.value.verify.adversarial?y.value.debugOn:y.value.debugOff),1)]),M.value.verify.adversarial?(X(),Z(`div`,Kxe,[Q(`span`,qxe,J(y.value.debugAdversarialModel),1),Q(`span`,Jxe,J(M.value.model||`-`)+J(y.value.debugSameAsMain),1)])):$(``,!0)])])):$(``,!0),M.value.todos.length?(X(),Z(`div`,Yxe,[Q(`div`,Xxe,`📋 `+J(y.value.debugTodosTitle)+` (`+J(M.value.todos.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.todos,(e,t)=>(X(),Z(`div`,{key:t,class:`info-todo`},[Q(`span`,{class:`todo-tag`,style:pR({background:_e.value[e.status]&&_e.value[e.status].color||`#9ca3af`})},J(P(e.status)),5),Q(`span`,null,J(e.content),1)]))),128))])):$(``,!0),M.value.memory?(X(),Z(`div`,Zxe,[Q(`div`,Qxe,`📝 `+J(y.value.debugMemoryTitle),1),Q(`pre`,$xe,J(M.value.memory),1)])):$(``,!0),M.value.preferences?.length?(X(),Z(`div`,eSe,[Q(`div`,tSe,`🎯 `+J(y.value.debugPrefsTitle)+` (`+J(M.value.preferences.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.preferences,e=>(X(),Z(`div`,{key:e.id,class:`info-todo`},[Q(`span`,nSe,J(ve(e.topic)),1),Q(`span`,null,J(e.content),1)]))),128))])):$(``,!0),M.value.lastCompression?(X(),Z(`div`,rSe,[Q(`div`,iSe,`🗜️ `+J(y.value.debugLastCompTitle),1),Q(`div`,aSe,[Q(`div`,oSe,[Q(`span`,sSe,J(y.value.debugTriggered),1),Q(`span`,cSe,J(M.value.lastCompression.triggered?`✓`:y.value.debugNotTriggered),1)]),Q(`div`,lSe,[Q(`span`,uSe,J(y.value.debugRoundsSummarized),1),Q(`span`,dSe,J(M.value.lastCompression.roundsSummarized)+` / `+J(M.value.lastCompression.roundsTotal),1)]),Q(`div`,fSe,[Q(`span`,pSe,J(y.value.debugCtxRecalled),1),Q(`span`,mSe,J(M.value.lastCompression.roundsRecalled)+J(y.value.debugCountSuffix),1)]),Q(`div`,hSe,[Q(`span`,gSe,J(y.value.debugMessageCount),1),Q(`span`,_Se,J(M.value.lastCompression.originalMessages)+` → `+J(M.value.lastCompression.compressedMessages),1)]),Q(`div`,vSe,[Q(`span`,ySe,J(y.value.debugStrategy),1),Q(`span`,bSe,J(M.value.lastCompression.strategy),1)]),M.value.lastCompression.decision?(X(),Z(`div`,xSe,[Q(`span`,SSe,J(y.value.debugDecision),1),Q(`span`,CSe,`🤖 `+J(Me(M.value.lastCompression.decision)),1)])):$(``,!0)])])):$(``,!0)],64)):(X(),Z(`div`,Mbe,J(y.value.debugNoInfo),1))]))],512)],512)],512)],2),Q(`div`,{class:`drawer-mask`,onClick:de})])):$(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-79cbe6e0`]]),wSe={class:`skill-panel`},TSe={class:`skill-header`},ESe={class:`skill-title`},DSe=[`title`],OSe={class:`skill-section`},kSe={class:`section-title`},ASe=[`title`],jSe={class:`field`},MSe={class:`field-label`},NSe=[`disabled`,`placeholder`],PSe={class:`field`},FSe={class:`field-label`},ISe=[`placeholder`],LSe={class:`field field-textarea`},RSe={class:`field-label`},zSe=[`placeholder`],BSe={key:0,class:`skill-error`},VSe={class:`skill-section`},HSe={class:`section-title`},USe={key:0,class:`empty-hint`},WSe={key:1,class:`skill-list`},GSe={class:`skill-actions`},KSe=[`title`,`onClick`],qSe=[`title`,`onClick`],JSe={class:`skill-hint`},Z9=P7(jB({__name:`SkillPanel`,props:{visible:{type:Boolean},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},messages:{default:()=>N5}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=Tz(``),a=Tz(``),o=Tz(``),s=Tz(``),c=Tz([]),l=Tz(0),u=Tz(null);aB(()=>n.visible,e=>{e&&d()},{immediate:!0}),aB(l,()=>d());function d(){n.getUserSkillNames&&(c.value=n.getUserSkillNames())}function f(){if(s.value=``,!i.value.trim()){s.value=n.messages.skillErrName;return}if(!a.value.trim()){s.value=n.messages.skillErrDesc;return}if(!o.value.trim()){s.value=n.messages.skillErrContent;return}let e=i.value.trim();u.value===null&&c.value.includes(e)&&(s.value=`${n.messages.skillDupWarnPrefix}${e}${n.messages.skillDupWarnSuffix}`),n.onAddSkill?.({name:e,description:a.value.trim(),getContent:()=>o.value}),h(),l.value++}function p(e){n.onRemoveSkill&&n.onRemoveSkill(e)&&(u.value===e&&h(),l.value++)}function m(e){if(!n.onGetSkill)return;let t=n.onGetSkill(e);t&&(u.value=e,i.value=t.name,a.value=t.description,o.value=t.content,s.value=``)}function h(){u.value=null,i.value=``,a.value=``,o.value=``,s.value=``}return(t,n)=>(X(),WV(gB,{to:`body`},[YV(MH,{name:`cs-skill-fade`},{default:eB(()=>[e.visible?(X(),Z(`div`,{key:0,class:`skill-mask`,onClick:n[4]||=NU(e=>r(`close`),[`self`])},[Q(`div`,wSe,[Q(`div`,TSe,[Q(`span`,ESe,J(e.messages.skillPanelTitle),1),Q(`button`,{class:`skill-close`,title:e.messages.close,onClick:n[0]||=e=>r(`close`)},`✕`,8,DSe)]),Q(`div`,OSe,[Q(`div`,kSe,[ZV(J(u.value?`${e.messages.skillEditingPrefix}${u.value}`:e.messages.skillCreateNew)+` `,1),u.value?(X(),Z(`button`,{key:0,class:`btn btn-ghost btn-cancel`,title:e.messages.skillCancelEdit,onClick:h},J(e.messages.skillCancelEdit),9,ASe)):$(``,!0)]),Q(`label`,jSe,[Q(`span`,MSe,J(e.messages.skillNameLabel),1),tB(Q(`input`,{"onUpdate:modelValue":n[1]||=e=>i.value=e,disabled:!!u.value,placeholder:e.messages.skillNamePlaceholder,class:`field-input`},null,8,NSe),[[AU,i.value]])]),Q(`label`,PSe,[Q(`span`,FSe,J(e.messages.skillDescLabel),1),tB(Q(`input`,{"onUpdate:modelValue":n[2]||=e=>a.value=e,placeholder:e.messages.skillDescPlaceholder,class:`field-input`},null,8,ISe),[[AU,a.value]])]),Q(`label`,LSe,[Q(`span`,RSe,J(e.messages.skillContentLabel),1),tB(Q(`textarea`,{"onUpdate:modelValue":n[3]||=e=>o.value=e,placeholder:e.messages.skillContentPlaceholder,rows:`6`,class:`field-input`},null,8,zSe),[[AU,o.value]])]),s.value?(X(),Z(`div`,BSe,J(s.value),1)):$(``,!0),Q(`button`,{class:`btn btn-primary`,onClick:f},J(u.value?e.messages.skillSave:e.messages.skillAdd),1)]),Q(`div`,VSe,[Q(`div`,HSe,J(e.messages.skillCreatedTitle)+`(`+J(c.value.length)+`)`,1),c.value.length?(X(),Z(`ul`,WSe,[(X(!0),Z(FV,null,GB(c.value,t=>(X(),Z(`li`,{key:t,class:`skill-item`},[Q(`span`,{class:mR([`skill-name`,{active:u.value===t}])},J(t),3),Q(`span`,GSe,[Q(`button`,{class:`btn btn-ghost btn-edit`,title:e.messages.skillEditTitle,onClick:e=>m(t)},J(e.messages.skillEditBtn),9,KSe),Q(`button`,{class:`btn btn-ghost btn-del`,title:e.messages.skillDeleteTitle,onClick:e=>p(t)},J(e.messages.skillDeleteBtn),9,qSe)])]))),128))])):(X(),Z(`div`,USe,J(e.messages.skillEmpty),1))]),Q(`div`,JSe,[ZV(` 💡 `+J(e.messages.skillHintA)+` `,1),n[5]||=Q(`code`,null,`load_skill(name)`,-1),ZV(` `+J(e.messages.skillHintB)+` `,1),n[6]||=Q(`code`,null,`skillStorage.id`,-1),ZV(` `+J(e.messages.skillHintC),1)])])])):$(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-fcd21121`]]),Q9=P7(jB({__name:`ChatDialog`,props:{fetchResponse:{},fetchStream:{},title:{},placeholder:{},debugLogs:{},debug:{type:Boolean},initialMessages:{},onPersist:{},onQueuedCleared:{},onBeforeRegenerate:{},onClear:{},getInfo:{},exportDiagnostics:{},clearDebugLogs:{},onUndo:{},canUndo:{},showAvatar:{type:Boolean,default:!0},showTyping:{type:Boolean,default:!0},pendingConflict:{},onResolveConflict:{},infoTick:{},getSkillContent:{},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},drawer:{type:Boolean},drawerWidth:{},drawerHidden:{type:Boolean},inputRows:{default:2},sessions:{},currentSessionId:{},onNewSession:{},onOpenSession:{},onRemoveSession:{},getFocus:{},onSetFocus:{},onClearFocus:{},getFocuses:{},onAddFocus:{},onRemoveFocus:{},onFocusChipClick:{},sections:{},csTheme:{},icons:{},headerLabels:{type:Boolean},i18n:{}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=L5({fetchResponse:n.fetchResponse,fetchStream:n.fetchStream,messages:n.initialMessages,onPersist:n.onPersist,onClear:n.onClear,onQueuedCleared:n.onQueuedCleared,onBeforeRegenerate:n.onBeforeRegenerate,getInfo:n.getInfo,canUndo:n.canUndo,onUndo:n.onUndo,getFocuses:n.getFocuses,onAddFocus:n.onAddFocus,onRemoveFocus:n.onRemoveFocus,onClearFocus:n.onClearFocus,onFocusChipClick:n.onFocusChipClick,infoTick:n.infoTick,icons:n.icons,locale:n.i18n?.locale,dialogMessages:n.i18n?.messages});rB(I5,i);let{isExpanded:a,debugVisible:o,skillVisible:s,closeSkill:c}=i,{scrollContainer:l,onScroll:u,onWheel:d}=i.chat,f=Tz(null),p=Tz(null),m=null;HB(()=>{!f.value||!l.value||!p.value||(m=O5({target:f.value,elements:{viewport:l.value,content:p.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}),UB(()=>{m?.destroy(),m=null});function h(e){return e===`focus`?n.sections?.focus===!0:n.sections?.[e]!==!1}let g=gH(()=>!!n.onAddSkill),_=gH(()=>{if(!n.drawer||n.drawerWidth==null)return null;let e=n.drawerWidth;return typeof e==`number`?`${e}px`:e});return(t,n)=>(X(),Z(FV,null,[e.drawer?(X(),Z(`div`,{key:0,class:`chat-mask`,onClick:n[0]||=e=>r(`close`)})):$(``,!0),Q(`div`,{class:mR([`chat-dialog`,{collapsed:!Y(a)&&!e.drawer,drawer:e.drawer,"cs-theme-dark":e.csTheme===`dark`}]),style:pR(_.value?{width:_.value,maxWidth:_.value}:null)},[h(`header`)?KB(t.$slots,`header`,{key:0,chat:Y(i)},()=>[YV(L7,{title:e.title||Y(i).messages.defaultTitle,drawer:e.drawer,"debug-logs":e.debugLogs,debug:e.debug,"skill-available":g.value,sessions:e.sessions,"current-session-id":e.currentSessionId,labels:e.headerLabels!==!1,"on-new-session":e.onNewSession,"on-open-session":e.onOpenSession,"on-remove-session":e.onRemoveSession,onClose:n[1]||=e=>r(`close`)},null,8,[`title`,`drawer`,`debug-logs`,`debug`,`skill-available`,`sessions`,`current-session-id`,`labels`,`on-new-session`,`on-open-session`,`on-remove-session`])],!0):$(``,!0),h(`focus`)?KB(t.$slots,`focus`,{key:1,chat:Y(i)},()=>[YV(R7,{"get-focus":e.getFocus,"on-set-focus":e.onSetFocus,"on-clear-focus":e.onClearFocus,"info-tick":e.infoTick,icons:Y(i).icons,messages:Y(i).messages},null,8,[`get-focus`,`on-set-focus`,`on-clear-focus`,`info-tick`,`icons`,`messages`])],!0):$(``,!0),Q(`div`,{class:`chat-main`,ref_key:`chatMainEl`,ref:f},[Q(`div`,{class:`chat-scroll-viewport`,tabindex:`-1`,ref_key:`scrollContainer`,ref:l,onScroll:n[2]||=(...e)=>Y(u)&&Y(u)(...e),onWheel:n[3]||=(...e)=>Y(d)&&Y(d)(...e)},[Q(`div`,{ref_key:`chatContentsEl`,ref:p},[h(`body`)?(X(),WV(MH,{key:0,name:`cs-slide`},{default:eB(()=>[KB(t.$slots,`body`,{chat:Y(i)},()=>[tB(YV(U9,{"show-avatar":e.showAvatar,"show-typing":e.showTyping},null,8,[`show-avatar`,`show-typing`]),[[XH,Y(a)]])],!0)]),_:3})):$(``,!0),h(`queued`)?KB(t.$slots,`queued`,{key:1,chat:Y(i)},()=>[YV(W9)],!0):$(``,!0),h(`approval`)?KB(t.$slots,`approval`,{key:2,chat:Y(i)},()=>[YV(G9)],!0):$(``,!0),h(`conflict`)?KB(t.$slots,`conflict`,{key:3,chat:Y(i)},()=>[YV(K9,{"pending-conflict":e.pendingConflict,"on-resolve":e.onResolveConflict,icons:Y(i).icons,messages:Y(i).messages},null,8,[`pending-conflict`,`on-resolve`,`icons`,`messages`])],!0):$(``,!0)],512)],544)],512),h(`footer`)?(X(),WV(MH,{key:2,name:`cs-slide`},{default:eB(()=>[KB(t.$slots,`footer`,{chat:Y(i)},()=>[YV(q9,{placeholder:e.placeholder||Y(i).messages.inputPlaceholder,"input-rows":e.inputRows},null,8,[`placeholder`,`input-rows`])],!0)]),_:3})):$(``,!0),h(`debug`)?KB(t.$slots,`debug`,{key:3,chat:Y(i)},()=>[YV(X9,{visible:Y(o),"onUpdate:visible":n[4]||=e=>wz(o)?o.value=e:null,logs:e.debugLogs,"get-info":e.getInfo,"export-diagnostics":e.exportDiagnostics,"info-tick":e.infoTick,"get-skill-content":e.getSkillContent,"cs-theme":e.csTheme,messages:Y(i).messages,locale:Y(i).locale,onClear:n[5]||=()=>e.clearDebugLogs?.()},null,8,[`visible`,`logs`,`get-info`,`export-diagnostics`,`info-tick`,`get-skill-content`,`cs-theme`,`messages`,`locale`])],!0):$(``,!0),h(`skill`)?KB(t.$slots,`skill`,{key:4,chat:Y(i)},()=>[YV(Z9,{visible:Y(s),"on-add-skill":e.onAddSkill,"on-remove-skill":e.onRemoveSkill,"get-user-skill-names":e.getUserSkillNames,"on-get-skill":e.onGetSkill,messages:Y(i).messages,onClose:Y(c)},null,8,[`visible`,`on-add-skill`,`on-remove-skill`,`get-user-skill-names`,`on-get-skill`,`messages`,`onClose`])],!0):$(``,!0)],6)],64))}}),[[`__scopeId`,`data-v-bab14a6c`]]);function YSe(e){let{core:t,dialogCfg:n}=e,r=null,i=e.el,a=t.agent.debugLogs;return r=zU(jB({setup(){return()=>_H(Q9,{fetchStream:e.streaming?t.stream:void 0,fetchResponse:e.streaming?void 0:(e,n)=>{if(n){let e=()=>t.resolveConflict(`keep_external`);n.aborted?e():n.addEventListener(`abort`,e,{once:!0})}return t.agent.invoke(e,n)},title:n.title,placeholder:n.placeholder,debugLogs:a.value.slice(),debug:e.debug===!0,initialMessages:t.messages,getInfo:()=>t.getInfo(),exportDiagnostics:()=>t.exportDiagnostics(),clearDebugLogs:()=>{a.value=[],Oz(a)},onUndo:t.checkpoint?()=>t.checkpoint.restore():void 0,canUndo:t.checkpoint?()=>t.checkpoint.canRestore():void 0,onPersist:async()=>{t.afterRound(),t.store&&await t.store.flush()},onClear:()=>t.resetSession(),onBeforeRegenerate:()=>t.clearCodeReuse?.(),onQueuedCleared:e=>{let n=t.agent?.debugLogs;n&&(n.value.push({timestamp:Date.now(),type:`middleware`,data:{stage:`queued_cleared`,dropped:e.length,preview:e.map(e=>e.slice(0,60))}}),Oz(n))},pendingConflict:t.pendingConflict.value,onResolveConflict:e=>t.resolveConflict(e),infoTick:t.infoTick,getSkillContent:t.skillsController?e=>t.skillsController.getContent(e):void 0,onAddSkill:t.skillsController?e=>t.addSkill(e):void 0,onRemoveSkill:t.skillsController?e=>t.removeSkill(e):void 0,getUserSkillNames:t.skillsController?()=>t.listUserSkills():void 0,onGetSkill:t.skillsController?e=>t.getUserSkill(e):void 0,drawer:n.drawer===!0,csTheme:n.theme===`light`?`light`:`dark`,drawerWidth:n.drawerWidth,drawerHidden:n.drawerHidden===!0,inputRows:n.inputRows,sections:n.sections,icons:n.icons,headerLabels:n.headerLabels!==!1,i18n:e.i18n,getFocus:()=>t.getFocus(),getFocuses:()=>t.getFocuses(),onSetFocus:e=>t.setFocus(e),onAddFocus:e=>t.addFocus(e),onRemoveFocus:e=>t.removeFocus(e),onClearFocus:()=>t.clearFocus(),onFocusChipClick:e=>t.emit({type:`focus_chip_click`,path:e.path,label:e.label}),onClose:n.onClose??(n.drawer===!0?()=>e.hide():()=>e.unmount()),...t.store?{sessions:t.sessions.value,currentSessionId:t.sessionId,onNewSession:()=>{e.runSerial(()=>t.switchSession())},onOpenSession:n=>{e.runSerial(()=>t.switchSession(n))},onRemoveSession:async e=>{e!==t.sessionId&&(await t.store.deleteSession(t.agentId,e),await t.refreshSessions())}}:{}})}})),r.mount(e.el),{unmount(){let t=i.querySelector?.(`.chat-dialog`);if(r&&t){t.classList.add(`cs-leaving`);let n=i.querySelector?.(`.chat-mask`);n&&n.classList.add(`cs-leaving`);let a=!1,o=()=>{a||(a=!0,r?.unmount(),r=null,e.onDialogUnmounted())};t.addEventListener(`transitionend`,o,{once:!0}),setTimeout(o,320);return}r?.unmount(),r=null,e.onDialogUnmounted()},hide(){let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.add(`cs-hidden`),t&&t.classList.add(`cs-hidden`)},show(){let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.remove(`cs-hidden`),t&&t.classList.remove(`cs-hidden`)}}}hm();function XSe(e,t,n,r,i){let a=[];e&&a.push(`vfs_grep + vfs_read(搜预注入文档)`),t&&a.push(`${r}(语义检索)`),n&&a.push(`${i}(按 source 加载)`),a.push(`fetch_document(公网 URL)`);let o=[];return e&&o.push(`先 vfs_grep 搜预注入文档(快、静态)`),t&&e?o.push(`不够用 ${r} 语义检索`):t&&o.push(`用 ${r} 语义检索(换不同关键词可多次调用)`),n&&o.push(`需特定文档用 ${i}`),o.push(`公网用 fetch_document`),`你是知识检索专家。可用工具:${a.join(` / `)}。
432
+ ]`,m={scope:`string`,variants:[u,l,d,f]},h={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},g=[`false`,`null`,`true`],_=`__CLASS__.__DIR__.__FILE__.__FUNCTION__.__COMPILER_HALT_OFFSET__.__LINE__.__METHOD__.__NAMESPACE__.__TRAIT__.die.echo.exit.include.include_once.print.require.require_once.array.abstract.and.as.binary.bool.boolean.break.callable.case.catch.class.clone.const.continue.declare.default.do.double.else.elseif.empty.enddeclare.endfor.endforeach.endif.endswitch.endwhile.enum.eval.extends.final.finally.float.for.foreach.from.global.goto.if.implements.instanceof.insteadof.int.integer.interface.isset.iterable.list.match|0.mixed.new.never.object.or.private.protected.public.readonly.real.return.string.switch.throw.trait.try.unset.use.var.void.while.xor.yield`.split(`.`),v=`Error|0.AppendIterator.ArgumentCountError.ArithmeticError.ArrayIterator.ArrayObject.AssertionError.BadFunctionCallException.BadMethodCallException.CachingIterator.CallbackFilterIterator.CompileError.Countable.DirectoryIterator.DivisionByZeroError.DomainException.EmptyIterator.ErrorException.Exception.FilesystemIterator.FilterIterator.GlobIterator.InfiniteIterator.InvalidArgumentException.IteratorIterator.LengthException.LimitIterator.LogicException.MultipleIterator.NoRewindIterator.OutOfBoundsException.OutOfRangeException.OuterIterator.OverflowException.ParentIterator.ParseError.RangeException.RecursiveArrayIterator.RecursiveCachingIterator.RecursiveCallbackFilterIterator.RecursiveDirectoryIterator.RecursiveFilterIterator.RecursiveIterator.RecursiveIteratorIterator.RecursiveRegexIterator.RecursiveTreeIterator.RegexIterator.RuntimeException.SeekableIterator.SplDoublyLinkedList.SplFileInfo.SplFileObject.SplFixedArray.SplHeap.SplMaxHeap.SplMinHeap.SplObjectStorage.SplObserver.SplPriorityQueue.SplQueue.SplStack.SplSubject.SplTempFileObject.TypeError.UnderflowException.UnexpectedValueException.UnhandledMatchError.ArrayAccess.BackedEnum.Closure.Fiber.Generator.Iterator.IteratorAggregate.Serializable.Stringable.Throwable.Traversable.UnitEnum.WeakReference.WeakMap.Directory.__PHP_Incomplete_Class.parent.php_user_filter.self.static.stdClass`.split(`.`),y={keyword:_,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(g),built_in:v},b=e=>e.map(e=>e.replace(/\|\d+$/,``)),x={variants:[{match:[/new/,t.concat(p,`+`),t.concat(`(?!`,b(v).join(`\\b|`),`\\b)`),i],scope:{1:`keyword`,4:`title.class`}}]},S=t.concat(r,`\\b(?!\\()`),C={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:`title.class`,3:`variable.constant`}},{match:[i,t.concat(`::`,t.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[i,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},w={scope:`attr`,match:t.concat(r,t.lookahead(`:`),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:y,contains:[w,o,C,e.C_BLOCK_COMMENT_MODE,m,h,x]},E={relevance:0,match:[/\b/,t.concat(`(?!fn\\b|function\\b|`,b(_).join(`\\b|`),`|`,b(v).join(`\\b|`),`\\b)`),r,t.concat(p,`*`),t.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[T]};T.contains.push(E);let D=[w,C,e.C_BLOCK_COMMENT_MODE,m,h,x],ee={begin:t.concat(/#\[\s*\\?/,t.either(i,a)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:g,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:g,keyword:[`new`,`array`]},contains:[`self`,...D]},...D,{scope:`meta`,variants:[{match:i},{match:a}]}]};return{case_insensitive:!1,keywords:y,contains:[ee,e.HASH_COMMENT_MODE,e.COMMENT(`//`,`$`),e.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},s,{scope:`variable.language`,match:/\$this\b/},o,E,C,{match:[/const/,/\s/,r],scope:{1:`keyword`,3:`variable.constant`}},x,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},e.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:y,contains:[`self`,ee,o,C,e.C_BLOCK_COMMENT_MODE,m,h]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},e.UNDERSCORE_TITLE_MODE]},m,h]}}t.exports=n})),zhe=l(((e,t)=>{function n(e){return{name:`PHP template`,subLanguage:`xml`,contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:`php`,contains:[{begin:`/\\*`,end:`\\*/`,skip:!0},{begin:`b"`,end:`"`,skip:!0},{begin:`b'`,end:`'`,skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}t.exports=n})),Bhe=l(((e,t)=>{function n(e){return{name:`Plain text`,aliases:[`text`,`txt`],disableAutodetect:!0}}t.exports=n})),Vhe=l(((e,t)=>{function n(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}t.exports=n})),Hhe=l(((e,t)=>{function n(e){return{aliases:[`pycon`],contains:[{className:`meta.prompt`,starts:{end:/ |$/,starts:{end:`$`,subLanguage:`python`}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}t.exports=n})),Uhe=l(((e,t)=>{function n(e){let t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:`R`,keywords:{$pattern:n,keyword:`function if in break next repeat else for while`,literal:`NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10`,built_in:`LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm`},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:`doctag`,match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:`doctag`,begin:`@param`,end:/$/,contains:[{scope:`variable`,variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:`doctag`,match:/@[a-zA-Z]+/},{scope:`keyword`,match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:`"`,end:`"`,relevance:0},{begin:`'`,end:`'`,relevance:0}]},{relevance:0,variants:[{scope:{1:`operator`,2:`number`},match:[i,r]},{scope:{1:`operator`,2:`number`},match:[/%[^%]*%/,r]},{scope:{1:`punctuation`,2:`number`},match:[a,r]},{scope:{2:`number`},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:`operator`},match:[n,/\s+/,/<-/,/\s+/]},{scope:`operator`,relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:`punctuation`,relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}t.exports=n})),Whe=l(((e,t)=>{function n(e){let t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),a={className:`title.function.invoke`,relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o=`abstract.as.async.await.become.box.break.const.continue.crate.do.dyn.else.enum.extern.false.final.fn.for.if.impl.in.let.loop.macro.match.mod.move.mut.override.priv.pub.ref.return.self.Self.static.struct.super.trait.true.try.type.typeof.union.unsafe.unsized.use.virtual.where.while.yield`.split(`.`),s=[`true`,`false`,`Some`,`None`,`Ok`,`Err`],c=`drop .Copy.Send.Sized.Sync.Drop.Fn.FnMut.FnOnce.ToOwned.Clone.Debug.PartialEq.PartialOrd.Eq.Ord.AsRef.AsMut.Into.From.Default.Iterator.Extend.IntoIterator.DoubleEndedIterator.ExactSizeIterator.SliceConcatExt.ToString.assert!.assert_eq!.bitflags!.bytes!.cfg!.col!.concat!.concat_idents!.debug_assert!.debug_assert_eq!.env!.eprintln!.panic!.file!.format!.format_args!.include_bytes!.include_str!.line!.local_data_key!.module_path!.option_env!.print!.println!.select!.stringify!.try!.unimplemented!.unreachable!.vec!.write!.writeln!.macro_rules!.assert_ne!.debug_assert_ne!`.split(`.`),l=[`i8`,`i16`,`i32`,`i64`,`i128`,`isize`,`u8`,`u16`,`u32`,`u64`,`u128`,`usize`,`f32`,`f64`,`str`,`char`,`bool`,`Box`,`Option`,`Result`,`String`,`Vec`];return{name:`Rust`,aliases:[`rs`],keywords:{$pattern:e.IDENT_RE+`!?`,type:l,keyword:o,literal:s,built_in:c},illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:`symbol`,begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:`string`,variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:`char.escape`,match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:`number`,variants:[{begin:`\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?`}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:`keyword`,3:`title.function`}},{className:`meta`,begin:`#!?\\[`,end:`\\]`,contains:[{className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:`keyword`,3:`keyword`,4:`variable`}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:`keyword`,3:`variable`,5:`keyword`}},{begin:[/type/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:e.IDENT_RE+`::`,keywords:{keyword:`Self`,built_in:c,type:l}},{className:`punctuation`,begin:`->`},a]}}t.exports=n})),Ghe=l(((e,t)=>{var n=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),r=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),i=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),a=[...r,...i],o=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),s=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),c=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),l=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function u(e){let t=n(e),r=c,i=s,u=`@[a-z-]+`,d={className:`variable`,begin:`(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b`,relevance:0};return{name:`SCSS`,case_insensitive:!0,illegal:`[=/|']`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:`selector-id`,begin:`#[A-Za-z0-9_-]+`,relevance:0},{className:`selector-class`,begin:`\\.[A-Za-z0-9_-]+`,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-tag`,begin:`\\b(`+a.join(`|`)+`)\\b`,relevance:0},{className:`selector-pseudo`,begin:`:(`+i.join(`|`)+`)`},{className:`selector-pseudo`,begin:`:(:)?(`+r.join(`|`)+`)`},d,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+l.join(`|`)+`)\\b`},{begin:`\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b`},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,d,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:`@(page|font-face)`,keywords:{$pattern:u,keyword:`@page @font-face`}},{begin:`@`,end:`[{;]`,returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:o.join(` `)},contains:[{begin:u,className:`keyword`},{begin:/[a-z-]+(?=:)/,className:`attribute`},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}t.exports=u})),Khe=l(((e,t)=>{function n(e){return{name:`Shell Session`,aliases:[`console`,`shellsession`],contains:[{className:`meta.prompt`,begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:`bash`}}]}}t.exports=n})),qhe=l(((e,t)=>{function n(e){let t=e.regex,n=e.COMMENT(`--`,`$`),r={scope:`string`,variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},a=[`true`,`false`,`unknown`],o=[`double precision`,`large object`,`with timezone`,`without timezone`],s=`bigint.binary.blob.boolean.char.character.clob.date.dec.decfloat.decimal.float.int.integer.interval.nchar.nclob.national.numeric.real.row.smallint.time.timestamp.varchar.varying.varbinary`.split(`.`),c=[`add`,`asc`,`collation`,`desc`,`final`,`first`,`last`,`view`],l=`abs.acos.all.allocate.alter.and.any.are.array.array_agg.array_max_cardinality.as.asensitive.asin.asymmetric.at.atan.atomic.authorization.avg.begin.begin_frame.begin_partition.between.bigint.binary.blob.boolean.both.by.call.called.cardinality.cascaded.case.cast.ceil.ceiling.char.char_length.character.character_length.check.classifier.clob.close.coalesce.collate.collect.column.commit.condition.connect.constraint.contains.convert.copy.corr.corresponding.cos.cosh.count.covar_pop.covar_samp.create.cross.cube.cume_dist.current.current_catalog.current_date.current_default_transform_group.current_path.current_role.current_row.current_schema.current_time.current_timestamp.current_path.current_role.current_transform_group_for_type.current_user.cursor.cycle.date.day.deallocate.dec.decimal.decfloat.declare.default.define.delete.dense_rank.deref.describe.deterministic.disconnect.distinct.double.drop.dynamic.each.element.else.empty.end.end_frame.end_partition.end-exec.equals.escape.every.except.exec.execute.exists.exp.external.extract.false.fetch.filter.first_value.float.floor.for.foreign.frame_row.free.from.full.function.fusion.get.global.grant.group.grouping.groups.having.hold.hour.identity.in.indicator.initial.inner.inout.insensitive.insert.int.integer.intersect.intersection.interval.into.is.join.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.language.large.last_value.lateral.lead.leading.left.like.like_regex.listagg.ln.local.localtime.localtimestamp.log.log10.lower.match.match_number.match_recognize.matches.max.member.merge.method.min.minute.mod.modifies.module.month.multiset.national.natural.nchar.nclob.new.no.none.normalize.not.nth_value.ntile.null.nullif.numeric.octet_length.occurrences_regex.of.offset.old.omit.on.one.only.open.or.order.out.outer.over.overlaps.overlay.parameter.partition.pattern.per.percent.percent_rank.percentile_cont.percentile_disc.period.portion.position.position_regex.power.precedes.precision.prepare.primary.procedure.ptf.range.rank.reads.real.recursive.ref.references.referencing.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.release.result.return.returns.revoke.right.rollback.rollup.row.row_number.rows.running.savepoint.scope.scroll.search.second.seek.select.sensitive.session_user.set.show.similar.sin.sinh.skip.smallint.some.specific.specifictype.sql.sqlexception.sqlstate.sqlwarning.sqrt.start.static.stddev_pop.stddev_samp.submultiset.subset.substring.substring_regex.succeeds.sum.symmetric.system.system_time.system_user.table.tablesample.tan.tanh.then.time.timestamp.timezone_hour.timezone_minute.to.trailing.translate.translate_regex.translation.treat.trigger.trim.trim_array.true.truncate.uescape.union.unique.unknown.unnest.update.upper.user.using.value.values.value_of.var_pop.var_samp.varbinary.varchar.varying.versioning.when.whenever.where.width_bucket.window.with.within.without.year`.split(`.`),u=`abs.acos.array_agg.asin.atan.avg.cast.ceil.ceiling.coalesce.corr.cos.cosh.count.covar_pop.covar_samp.cume_dist.dense_rank.deref.element.exp.extract.first_value.floor.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.last_value.lead.listagg.ln.log.log10.lower.max.min.mod.nth_value.ntile.nullif.percent_rank.percentile_cont.percentile_disc.position.position_regex.power.rank.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.row_number.sin.sinh.sqrt.stddev_pop.stddev_samp.substring.substring_regex.sum.tan.tanh.translate.translate_regex.treat.trim.trim_array.unnest.upper.value_of.var_pop.var_samp.width_bucket`.split(`.`),d=[`current_catalog`,`current_date`,`current_default_transform_group`,`current_path`,`current_role`,`current_schema`,`current_transform_group_for_type`,`current_user`,`session_user`,`system_time`,`system_user`,`current_time`,`localtime`,`current_timestamp`,`localtimestamp`],f=[`create table`,`insert into`,`primary key`,`foreign key`,`not null`,`alter table`,`add constraint`,`grouping sets`,`on overflow`,`character set`,`respect nulls`,`ignore nulls`,`nulls first`,`nulls last`,`depth first`,`breadth first`],p=u,m=[...l,...c].filter(e=>!u.includes(e)),h={scope:`variable`,match:/@[a-z0-9][a-z0-9_]*/},g={scope:`operator`,match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},_={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function v(e){return t.concat(/\b/,t.either(...e.map(e=>e.replace(/\s+/,`\\s+`))),/\b/)}let y={scope:`keyword`,match:v(f),relevance:0};function b(e,{exceptions:t,when:n}={}){let r=n;return t||=[],e.map(e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e)}return{name:`SQL`,case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b(m,{when:e=>e.length<3}),literal:a,type:s,built_in:d},contains:[{scope:`type`,match:v(o)},y,_,h,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,g]}}t.exports=n})),Jhe=l(((e,t)=>{function n(e){return e?typeof e==`string`?e:e.source:null}function r(e){return i(`(?=`,e,`)`)}function i(...e){return e.map(e=>n(e)).join(``)}function a(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function o(...e){return`(`+(a(e).capture?``:`?:`)+e.map(e=>n(e)).join(`|`)+`)`}var s=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),c=[`Protocol`,`Type`].map(s),l=[`init`,`self`].map(s),u=[`Any`,`Self`],d=[`actor`,`any`,`associatedtype`,`async`,`await`,/as\?/,/as!/,`as`,`borrowing`,`break`,`case`,`catch`,`class`,`consume`,`consuming`,`continue`,`convenience`,`copy`,`default`,`defer`,`deinit`,`didSet`,`distributed`,`do`,`dynamic`,`each`,`else`,`enum`,`extension`,`fallthrough`,/fileprivate\(set\)/,`fileprivate`,`final`,`for`,`func`,`get`,`guard`,`if`,`import`,`indirect`,`infix`,/init\?/,/init!/,`inout`,/internal\(set\)/,`internal`,`in`,`is`,`isolated`,`nonisolated`,`lazy`,`let`,`macro`,`mutating`,`nonmutating`,/open\(set\)/,`open`,`operator`,`optional`,`override`,`package`,`postfix`,`precedencegroup`,`prefix`,/private\(set\)/,`private`,`protocol`,/public\(set\)/,`public`,`repeat`,`required`,`rethrows`,`return`,`set`,`some`,`static`,`struct`,`subscript`,`super`,`switch`,`throws`,`throw`,/try\?/,/try!/,`try`,`typealias`,/unowned\(safe\)/,/unowned\(unsafe\)/,`unowned`,`var`,`weak`,`where`,`while`,`willSet`],f=[`false`,`nil`,`true`],p=[`assignment`,`associativity`,`higherThan`,`left`,`lowerThan`,`none`,`right`],m=[`#colorLiteral`,`#column`,`#dsohandle`,`#else`,`#elseif`,`#endif`,`#error`,`#file`,`#fileID`,`#fileLiteral`,`#filePath`,`#function`,`#if`,`#imageLiteral`,`#keyPath`,`#line`,`#selector`,`#sourceLocation`,`#warning`],h=`abs.all.any.assert.assertionFailure.debugPrint.dump.fatalError.getVaList.isKnownUniquelyReferenced.max.min.numericCast.pointwiseMax.pointwiseMin.precondition.preconditionFailure.print.readLine.repeatElement.sequence.stride.swap.swift_unboxFromSwiftValueWithType.transcode.type.unsafeBitCast.unsafeDowncast.withExtendedLifetime.withUnsafeMutablePointer.withUnsafePointer.withVaList.withoutActuallyEscaping.zip`.split(`.`),g=o(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),_=o(g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),v=i(g,_,`*`),y=o(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),b=o(y,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),x=i(y,b,`*`),S=i(/[A-Z]/,b,`*`),C=[`attached`,`autoclosure`,i(/convention\(/,o(`swift`,`block`,`c`),/\)/),`discardableResult`,`dynamicCallable`,`dynamicMemberLookup`,`escaping`,`freestanding`,`frozen`,`GKInspectable`,`IBAction`,`IBDesignable`,`IBInspectable`,`IBOutlet`,`IBSegueAction`,`inlinable`,`main`,`nonobjc`,`NSApplicationMain`,`NSCopying`,`NSManaged`,i(/objc\(/,x,/\)/),`objc`,`objcMembers`,`propertyWrapper`,`requires_stored_property_inits`,`resultBuilder`,`Sendable`,`testable`,`UIApplicationMain`,`unchecked`,`unknown`,`usableFromInline`,`warn_unqualified_access`],w=[`iOS`,`iOSApplicationExtension`,`macOS`,`macOSApplicationExtension`,`macCatalyst`,`macCatalystApplicationExtension`,`watchOS`,`watchOSApplicationExtension`,`tvOS`,`tvOSApplicationExtension`,`swift`];function T(e){let t={match:/\s+/,relevance:0},n=e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),a=[e.C_LINE_COMMENT_MODE,n],g={match:[/\./,o(...c,...l)],className:{2:`keyword`}},y={match:i(/\./,o(...d)),relevance:0},T=d.filter(e=>typeof e==`string`).concat([`_|0`]),E={variants:[{className:`keyword`,match:o(...d.filter(e=>typeof e!=`string`).concat(u).map(s),...l)}]},D={$pattern:o(/\b\w+/,/#\w+/),keyword:T.concat(m),literal:f},ee=[g,y,E],te=[{match:i(/\./,o(...h)),relevance:0},{className:`built_in`,match:i(/\b/,o(...h),/(?=\()/)}],O={match:/->/,relevance:0},ne=[O,{className:`operator`,relevance:0,variants:[{match:v},{match:`\\.(\\.|${_})+`}]}],k=`([0-9]_*)+`,re=`([0-9a-fA-F]_*)+`,ie={className:`number`,relevance:0,variants:[{match:`\\b(${k})(\\.(${k}))?([eE][+-]?(${k}))?\\b`},{match:`\\b0x(${re})(\\.(${re}))?([pP][+-]?(${k}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},ae=(e=``)=>({className:`subst`,variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),A=(e=``)=>({className:`subst`,match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),j=(e=``)=>({className:`subst`,label:`interpol`,begin:i(/\\/,e,/\(/),end:/\)/}),oe=(e=``)=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[ae(e),A(e),j(e)]}),se=(e=``)=>({begin:i(e,/"/),end:i(/"/,e),contains:[ae(e),j(e)]}),ce={className:`string`,variants:[oe(),oe(`#`),oe(`##`),oe(`###`),se(),se(`#`),se(`##`),se(`###`)]},le=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],ue={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:le},de=e=>{let t=i(e,/\//),n=i(/\//,e);return{begin:t,end:n,contains:[...le,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},fe={scope:`regexp`,variants:[de(`###`),de(`##`),de(`#`),ue]},pe={match:i(/`/,x,/`/)},M=[pe,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${b}+`}],N=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:w,contains:[...ne,ie,ce]}]}},{scope:`keyword`,match:i(/@/,o(...C),r(o(/\(/,/\s+/)))},{scope:`meta`,match:i(/@/,x)}],me={match:r(/\b[A-Z]/),relevance:0,contains:[{className:`type`,match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,b,`+`)},{className:`type`,match:S,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,r(S)),relevance:0}]},he={begin:/</,end:/>/,keywords:D,contains:[...a,...ee,...N,O,me]};me.contains.push(he);let ge={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:[`self`,{match:i(x,/\s*:/),keywords:`_|0`,relevance:0},...a,fe,...ee,...te,...ne,ie,ce,...M,...N,me]},_e={begin:/</,end:/>/,keywords:`repeat each`,contains:[...a,me]},P={begin:/\(/,end:/\)/,keywords:D,contains:[{begin:o(r(i(x,/\s*:/)),r(i(x,/\s+/,x,/\s*:/))),end:/:/,relevance:0,contains:[{className:`keyword`,match:/\b_\b/},{className:`params`,match:x}]},...a,...ee,...ne,ie,ce,...N,me,ge],endsParent:!0,illegal:/["']/},ve={match:[/(func|macro)/,/\s+/,o(pe.match,x,v)],className:{1:`keyword`,3:`title.function`},contains:[_e,P,t],illegal:[/\[/,/%/]},F={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[_e,P,t],illegal:/\[|%/},ye={match:[/operator/,/\s+/,v],className:{1:`keyword`,3:`title`}},I={begin:[/precedencegroup/,/\s+/,S],className:{1:`keyword`,3:`title`},contains:[me],keywords:[...p,...f],end:/}/},be={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},xe={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},Se={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,x,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:D,contains:[_e,...ee,{begin:/:/,end:/\{/,keywords:D,contains:[{scope:`title.class.inherited`,match:S},...ee],relevance:0}]};for(let e of ce.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=D;let n=[...ee,...te,...ne,ie,ce,...M];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:D,contains:[...a,ve,F,be,xe,Se,ye,I,{beginKeywords:`import`,end:/$/,contains:[...a],relevance:0},fe,...ee,...te,...ne,ie,ce,...M,...N,me,ge]}}t.exports=T})),Yhe=l(((e,t)=>{function n(e){let t=`true false yes no null`,n={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},a={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),s={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},c={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},l={begin:/\{/,end:/\}/,contains:[c],illegal:`\\n`,relevance:0},u={begin:`\\[`,end:`\\]`,contains:[c],illegal:`\\n`,relevance:0},d=[n,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!<[\\w#;/?:@&=+$,.~*'()[\\]]+>`},{className:`type`,begin:`![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`meta`,begin:`&`+e.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+e.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},s,{className:`number`,begin:e.C_NUMBER_RE+`\\b`,relevance:0},l,u,i,a],f=[...d];return f.pop(),f.push(o),c.contains=f,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:d}}t.exports=n})),Xhe=l(((e,t)=>{var n=`[A-Za-z$_][0-9A-Za-z$_]*`,r=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),i=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],a=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),o=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],s=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],c=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],l=[].concat(s,a,o);function u(e){let t=e.regex,u=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},d=n,f={begin:`<>`,end:`</>`},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(u(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},h={$pattern:n,keyword:r,literal:i,built_in:l,"variable.language":c},g=`[0-9](_?[0-9])*`,_=`\\.(${g})`,v=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,y={className:`number`,variants:[{begin:`(\\b(${v})((${_})|\\.)?|(${_}))[eE][+-]?(${g})\\b`},{begin:`\\b(${v})\\b((${_})\\b|\\.)?|(${_})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},b={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:h,contains:[]},x={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`xml`}},S={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`css`}},C={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`graphql`}},w={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},T={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},E=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,{match:/\$\d+/},y];b.contains=E.concat({begin:/\{/,end:/\}/,keywords:h,contains:[`self`].concat(E)});let D=[].concat(T,b.contains),ee=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),te={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee},O={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,t.concat(d,`(`,t.concat(/\./,d),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,d],scope:{1:`keyword`,3:`title.class`}}]},ne={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...a,...o]}},k={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},re={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[te],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function ae(e){return t.concat(`(?!`,e.join(`|`),`)`)}let A={match:t.concat(/\b/,ae([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},j={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},oe={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},te]},se=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,ce={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[te]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:ee,CLASS_REFERENCE:ne},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),k,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,ne,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},ce,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[T,e.REGEXP_MODE,{className:`function`,begin:se,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:ee}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:f.begin,end:f.end},{match:p},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:`xml`,contains:[{begin:m.begin,end:m.end,skip:!0,contains:[`self`]}]}]},re,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[te,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},j,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[te]},A,ie,O,oe,{match:/\$[(.]/}]}}function d(e){let t=e.regex,a=u(e),o=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},d={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:o},contains:[a.exports.CLASS_REFERENCE]},f={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},p={$pattern:n,keyword:r.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:i,built_in:l.concat(o),"variable.language":c},m={className:`meta`,begin:`@[A-Za-z$_][0-9A-Za-z$_]*`},h=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(a.keywords,p),a.exports.PARAMS_CONTAINS.push(m);let g=a.contains.find(e=>e.scope===`attr`),_=Object.assign({},g,{match:t.concat(`[A-Za-z$_][0-9A-Za-z$_]*`,t.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,g,_]),a.contains=a.contains.concat([m,s,d,_]),h(a,`shebang`,e.SHEBANG()),h(a,`use_strict`,f);let v=a.contains.find(e=>e.label===`func.def`);return v.relevance=0,Object.assign(a,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),a}t.exports=d})),Zhe=l(((e,t)=>{function n(e){let t=e.regex,n={className:`string`,begin:/"(""|[^/n])"C\b/},r={className:`string`,begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,c={className:`literal`,variants:[{begin:t.concat(/# */,t.either(a,i),/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,i),/ +/,t.either(o,s),/ *#/)}]},l={className:`number`,relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:`label`,begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:`doctag`,begin:/<\/?/,end:/>/}]}),f=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:`Visual Basic .NET`,aliases:[`vb`],case_insensitive:!0,classNameAliases:{label:`symbol`},keywords:{keyword:`addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield`,built_in:`addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort`,type:`boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort`,literal:`true false nothing`},illegal:`//|\\{|\\}|endif|gosub|variant|wend|^\\$ `,contains:[n,r,c,l,u,d,f,{className:`meta`,begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:`const disable else elseif enable end externalsource if region then`},contains:[f]}]}}t.exports=n})),Qhe=l(((e,t)=>{function n(e){e.regex;let t=e.COMMENT(/\(;/,/;\)/);return t.contains.push(`self`),{name:`WebAssembly`,keywords:{$pattern:/[\w.]+/,keyword:`anyfunc,block,br,br_if,br_table,call,call_indirect,data,drop,elem,else,end,export,func,global.get,global.set,local.get,local.set,local.tee,get_global,get_local,global,if,import,local,loop,memory,memory.grow,memory.size,module,mut,nop,offset,param,result,return,select,set_global,set_local,start,table,tee_local,then,type,unreachable`.split(`,`)},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:`keyword`,3:`operator`}},{className:`variable`,begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:`punctuation`,relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:`keyword`,3:`title.function`}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:`type`},{className:`keyword`,match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:`number`,relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}t.exports=n})),$he=f(l(((e,t)=>{var n=ghe();n.registerLanguage(`xml`,_he()),n.registerLanguage(`bash`,vhe()),n.registerLanguage(`c`,yhe()),n.registerLanguage(`cpp`,bhe()),n.registerLanguage(`csharp`,xhe()),n.registerLanguage(`css`,She()),n.registerLanguage(`markdown`,Che()),n.registerLanguage(`diff`,whe()),n.registerLanguage(`ruby`,The()),n.registerLanguage(`go`,Ehe()),n.registerLanguage(`graphql`,Dhe()),n.registerLanguage(`ini`,Ohe()),n.registerLanguage(`java`,khe()),n.registerLanguage(`javascript`,Ahe()),n.registerLanguage(`json`,jhe()),n.registerLanguage(`kotlin`,Mhe()),n.registerLanguage(`less`,Nhe()),n.registerLanguage(`lua`,Phe()),n.registerLanguage(`makefile`,Fhe()),n.registerLanguage(`perl`,Ihe()),n.registerLanguage(`objectivec`,Lhe()),n.registerLanguage(`php`,Rhe()),n.registerLanguage(`php-template`,zhe()),n.registerLanguage(`plaintext`,Bhe()),n.registerLanguage(`python`,Vhe()),n.registerLanguage(`python-repl`,Hhe()),n.registerLanguage(`r`,Uhe()),n.registerLanguage(`rust`,Whe()),n.registerLanguage(`scss`,Ghe()),n.registerLanguage(`shell`,Khe()),n.registerLanguage(`sql`,qhe()),n.registerLanguage(`swift`,Jhe()),n.registerLanguage(`yaml`,Yhe()),n.registerLanguage(`typescript`,Xhe()),n.registerLanguage(`vbnet`,Zhe()),n.registerLanguage(`wasm`,Qhe()),n.HighlightJS=n,n.default=n,t.exports=n}))()).default;P9.setOptions({breaks:!0,gfm:!0});var ege=2e4,F9=new P9.Renderer;F9.code=({text:e,lang:t})=>{let n=(t||``).trim()||`plaintext`,r=``;if(e.length>2e4)r=I9(e);else try{r=$he.highlight(e,{language:n,ignoreIllegals:!0}).value}catch{r=I9(e)}let i=encodeURIComponent(e),a=tge(n);return`<pre class="code-block" data-lang="${a}" data-code="${i}"><code class="hljs language-${a}">${r}</code></pre>`};function tge(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function I9(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}var nge={ADD_ATTR:[`data-code`,`data-lang`,`target`,`rel`]};function rge(e){return k7.sanitize(e,nge)}function L9(e){return P9.parse(e||``,{renderer:F9})}function R9(e){return rge(L9(e))}var ige=100,age=2e3;function oge(e){let t=Ez(R9(e())),n=0,r=null;function i(){r=null,n=Date.now(),t.value=R9(e())}return aB(e,()=>{let a=e();if(a.length<=age){r&&=(clearTimeout(r),null),n=Date.now(),t.value=R9(a);return}let o=n+ige-Date.now();o<=0?(r&&=(clearTimeout(r),null),i()):r||=setTimeout(i,o)}),cse(()=>{r&&=(clearTimeout(r),null)}),{html:t,codeBlocks:gH(()=>{let t=[],n=/```(\w+)?\n([\s\S]*?)```/g,r;for(;(r=n.exec(e()||``))!==null;)t.push({lang:(r[1]||`plaintext`).toLowerCase(),code:r[2]});return t})}}var sge=[`innerHTML`],z9=jB({__name:`MessageContent`,props:{content:{},messages:{default:()=>N5}},setup(e){let t=e,{html:n,codeBlocks:r}=oge(()=>t.content),i=Tz(null);function a(e,t){let n={html:`html`,htm:`html`,css:`css`,javascript:`js`,js:`js`,typescript:`ts`,ts:`ts`,vue:`vue`,python:`py`,json:`json`,xml:`xml`,markdown:`md`,md:`md`,shell:`sh`,bash:`sh`}[e.toLowerCase()]||`txt`,r=new Blob([t],{type:`text/plain;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`code-${Date.now()}.${n}`,a.click(),setTimeout(()=>URL.revokeObjectURL(i),1e3)}let o={copy:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.3" /><path d="M10.5 3.5v-.5A1.5 1.5 0 0 0 9 1.5H3.5A1.5 1.5 0 0 0 2 3v5.5A1.5 1.5 0 0 0 3.5 10H4" stroke="currentColor" stroke-width="1.3" /></svg>`,check:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M3 8.5l3 3 7-7" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" /></svg>`,download:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8 2.5v7.5m0 0L5 7m3 3l3-3" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /><path d="M2.5 11.5v1a1.5 1.5 0 0 0 1.5 1.5h8a1.5 1.5 0 0 0 1.5-1.5v-1" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>`,play:`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M4.5 3.2v9.6c0 .6.65.97 1.17.66l7.5-4.8a.78.78 0 0 0 0-1.32l-7.5-4.8A.78.78 0 0 0 4.5 3.2z" fill="currentColor" /></svg>`};async function s(){await Wz();let e=i.value;e&&e.querySelectorAll(`pre.code-block`).forEach((e,t)=>{if(e.querySelector(`.code-toolbar`))return;let n=e.dataset.lang||`plaintext`,r=decodeURIComponent(e.dataset.code||``),i=document.createElement(`div`);i.className=`code-toolbar`;let s=document.createElement(`span`);s.className=`code-lang`,s.textContent=n,i.appendChild(s);let c=document.createElement(`div`);c.className=`code-toolbar-actions`;let l=document.createElement(`button`);l.className=`code-action-btn`,l.title=`复制代码`,l.innerHTML=o.copy+`<span>复制</span>`,l.onclick=async()=>{let e=await A5(r);l.classList.toggle(`done`,e),l.innerHTML=(e?o.check:o.copy)+`<span>${e?`已复制`:`复制失败`}</span>`,setTimeout(()=>{l.classList.remove(`done`),l.innerHTML=o.copy+`<span>复制</span>`},1500)},c.appendChild(l);let u=document.createElement(`button`);u.className=`code-action-btn`,u.title=`下载为文件`,u.innerHTML=o.download+`<span>下载</span>`,u.onclick=()=>a(n,r),c.appendChild(u),i.appendChild(c),e.appendChild(i)})}return HB(s),aB(n,s),(e,t)=>(X(),Z(`div`,{class:`message-md`,ref_key:`containerRef`,ref:i,innerHTML:Y(n)},null,8,sge))}}),cge={class:`typing-text`},lge={key:0,class:`stream-cursor`},B9=P7(jB({__name:`MessageBubble`,props:{content:{},role:{},isPendingAssistant:{type:Boolean},showTyping:{type:Boolean},showCursor:{type:Boolean},messages:{default:()=>({...N5})}},setup(e){return(t,n)=>(X(),Z(FV,null,[Q(`div`,{class:mR([`message-bubble`,[e.role,{typing:e.isPendingAssistant}]])},[e.isPendingAssistant?(X(),Z(FV,{key:0},[Q(`span`,{class:mR([`typing-dot`,{pulse:e.showTyping}])},null,2),Q(`span`,cge,[YV(I7,{text:e.messages.thinking},null,8,[`text`])])],64)):(X(),Z(FV,{key:1},[e.role===`assistant`?(X(),WV(z9,{key:0,content:e.content,messages:e.messages},null,8,[`content`,`messages`])):(X(),Z(FV,{key:1},[ZV(J(e.content),1)],64))],64))],2),e.showCursor?(X(),Z(`span`,lge)):$(``,!0)],64))}}),[[`__scopeId`,`data-v-4b4111d8`]]),uge={class:`message-time`},dge=P7(jB({__name:`MessageTime`,props:{time:{}},setup(e){return(t,n)=>(X(),Z(`div`,uge,J(e.time),1))}}),[[`__scopeId`,`data-v-4a976e4a`]]),fge={class:`msg-actions`},pge=[`title`],mge={key:0,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},hge={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},gge=P7(jB({__name:`MessageActions`,props:{copied:{type:Boolean},messages:{default:()=>({...N5})}},emits:[`copy`,`regenerate`],setup(e){return(t,n)=>(X(),Z(`div`,fge,[Q(`button`,{class:mR([`msg-action-btn`,{done:e.copied}]),title:e.copied?e.messages.copied:e.messages.copy,onClick:n[0]||=e=>t.$emit(`copy`)},[e.copied?(X(),Z(`svg`,mge,[...n[2]||=[Q(`path`,{d:`M3 8.5l3 3 7-7`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(X(),Z(`svg`,hge,[...n[3]||=[Q(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1),Q(`path`,{d:`M10.5 3.5v-.5A1.5 1.5 0 0 0 9 1.5H3.5A1.5 1.5 0 0 0 2 3v5.5A1.5 1.5 0 0 0 3.5 10H4`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1)]])),Q(`span`,null,J(e.copied?e.messages.copied:e.messages.copy),1)],10,pge),Q(`button`,{class:`msg-action-btn`,onClick:n[1]||=e=>t.$emit(`regenerate`)},[n[4]||=Q(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Q(`path`,{d:`M13.5 8a5.5 5.5 0 1 1-1.6-3.9`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`}),Q(`path`,{d:`M13.7 1.8v2.8h-2.8`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),Q(`span`,null,J(e.messages.regenerate),1)])]))}}),[[`__scopeId`,`data-v-dc051a49`]]),_ge={key:1,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},vge={key:2,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},V9=P7(jB({__name:`AvatarIcon`,props:{role:{},glyph:{}},setup(e){return(t,n)=>e.glyph?(X(),WV(F7,{key:0,icon:e.glyph,class:`avatar-glyph`},null,8,[`icon`])):e.role===`user`?(X(),Z(`svg`,_ge,[...n[0]||=[Q(`path`,{d:`M512 170.688a149.312 149.312 0 1 0 0 298.624 149.312 149.312 0 0 0 0-298.624zM277.312 320a234.688 234.688 0 1 1 469.376 0 234.688 234.688 0 0 1-469.376 0zM128 810.688a213.312 213.312 0 0 1 213.312-213.312h341.376A213.312 213.312 0 0 1 896 810.688v128H128v-128z m213.312-128a128 128 0 0 0-128 128v42.688h597.376v-42.688a128 128 0 0 0-128-128H341.312z`},null,-1)]])):(X(),Z(`svg`,vge,[...n[1]||=[Q(`path`,{d:`M717.12 274H762c82.842 0 150 67.158 150 150v200c0 82.842-67.158 150-150 150H262c-82.842 0-150-67.158-150-150V424c0-82.842 67.158-150 150-150h44.88l-18.268-109.602c-4.086-24.514 12.476-47.7 36.99-51.786 24.514-4.086 47.7 12.476 51.786 36.99l20 120c0.246 1.472 0.416 2.94 0.516 4.398h228.192c0.1-1.46 0.27-2.926 0.516-4.398l20-120c4.086-24.514 27.272-41.076 51.786-36.99 24.514 4.086 41.076 27.272 36.99 51.786L717.12 274zM262 364c-33.138 0-60 26.862-60 60v200c0 33.138 26.862 60 60 60h500c33.138 0 60-26.862 60-60V424c0-33.138-26.862-60-60-60H262z m50 548c-24.852 0-45-20.148-45-45S287.148 822 312 822h400c24.852 0 45 20.148 45 45S736.852 912 712 912H312z m-4-428c0-24.852 20.148-45 45-45S398 459.148 398 484v40c0 24.852-20.148 45-45 45S308 548.852 308 524v-40z m318 0c0-24.852 20.148-45 45-45S716 459.148 716 484v40c0 24.852-20.148 45-45 45S626 548.852 626 524v-40z`},null,-1)]]))}}),[[`__scopeId`,`data-v-a0b508ea`]]),yge=[`data-msg-idx`],bge={key:0,class:`message-avatar`},xge={class:`message-content`},Sge={key:2,class:`msg-focuses`},Cge=[`title`,`onClick`],wge=[`data-img-count`],Tge=[`href`,`title`],Ege=[`src`,`alt`],Dge={key:1,class:`msg-image-lost`},H9=P7(jB({__name:`MessageRow`,props:{message:{},index:{},showAvatar:{type:Boolean},showTyping:{type:Boolean},isPendingAssistant:{type:Boolean},reasoningExpanded:{type:Boolean},copied:{type:Boolean},isLast:{type:Boolean},loading:{type:Boolean},time:{}},emits:[`toggle-reasoning`,`copy`,`regenerate`],setup(e){let t=e,n=R5(),r=gH(()=>t.message.role===`assistant`),i=gH(()=>r.value&&`reasoning`in t.message?t.message.reasoning??``:``),a=gH(()=>r.value&&`steps`in t.message?t.message.steps??[]:[]),o=gH(()=>r.value&&!!t.message.content&&!t.loading&&t.isLast),s=gH(()=>r.value&&t.loading&&t.isLast&&!!t.message.content);return(t,c)=>(X(),Z(`div`,{class:mR([`message-row`,e.message.role]),"data-msg-idx":e.index},[e.showAvatar?(X(),Z(`div`,bge,[YV(V9,{role:e.message.role,glyph:e.message.role===`user`?Y(n).icons.userAvatar:Y(n).icons.assistantAvatar},null,8,[`role`,`glyph`])])):$(``,!0),Q(`div`,xge,[r.value?(X(),WV(tme,{key:0,text:i.value,expanded:e.reasoningExpanded,running:e.loading&&e.isLast,onToggle:c[0]||=e=>t.$emit(`toggle-reasoning`)},null,8,[`text`,`expanded`,`running`])):$(``,!0),r.value?(X(),WV(kme,{key:1,steps:a.value,icons:Y(n).icons,messages:Y(n).messages},null,8,[`steps`,`icons`,`messages`])):$(``,!0),e.message.role===`user`&&e.message.focuses?.length?(X(),Z(`div`,Sge,[(X(!0),Z(FV,null,GB(e.message.focuses,e=>(X(),Z(`span`,{key:e.path,class:`msg-focus-chip`,title:Y(n).messages.historyFocusChipTitlePrefix+e.path,onClick:t=>Y(n).focusChipClick(e)},[YV(F7,{icon:Y(n).icons.focus},null,8,[`icon`]),ZV(` `+J(e.path),1)],8,Cge))),128))])):$(``,!0),e.message.role===`user`&&e.message.images?.length?(X(),Z(`div`,{key:3,class:`msg-images`,"data-img-count":e.message.images.length},[(X(!0),Z(FV,null,GB(e.message.images,e=>(X(),Z(`a`,{key:e.id,class:`msg-image`,href:e.url||e.dataUri,title:e.name||Y(n).messages.imageAlt,target:`_blank`,rel:`noopener noreferrer`},[e.thumb||e.dataUri?(X(),Z(`img`,{key:0,class:`msg-image-thumb`,src:e.thumb||e.dataUri,alt:e.name||Y(n).messages.imageAlt},null,8,Ege)):(X(),Z(`span`,Dge,`🖼️`))],8,Tge))),128))],8,wge)):$(``,!0),YV(B9,{messages:Y(n).messages,content:e.message.content,role:e.message.role,"is-pending-assistant":e.isPendingAssistant,"show-typing":e.showTyping,"show-cursor":s.value},null,8,[`messages`,`content`,`role`,`is-pending-assistant`,`show-typing`,`show-cursor`]),YV(dge,{time:e.time},null,8,[`time`]),o.value?(X(),WV(gge,{key:4,messages:Y(n).messages,copied:e.copied,onCopy:c[1]||=e=>t.$emit(`copy`),onRegenerate:c[2]||=e=>t.$emit(`regenerate`)},null,8,[`messages`,`copied`])):$(``,!0)])],10,yge))}}),[[`__scopeId`,`data-v-2baea2ab`]]),Oge={class:`chat-body`},kge={key:0,class:`empty-state`},Age={class:`empty-icon`},jge={key:1,class:`message-row assistant`},Mge={key:0,class:`message-avatar`},Nge={class:`message-content`},Pge={key:2,class:`error-bar`},Fge={class:`error-text`},Ige=[`title`],U9=P7(jB({__name:`MessageList`,props:{showAvatar:{type:Boolean},showTyping:{type:Boolean}},setup(e){let{chat:t,formatTime:n,copiedMsg:r,copyMessage:i,isPendingAssistant:a,isReasoningExpanded:o,toggleReasoning:s,canUndo:c,undo:l,icons:u,messages:d}=R5(),{state:f,retry:p,regenerate:m}=t,h=gH(()=>f.messages.length>0),g=gH(()=>f.messages.some(e=>e.role===`user`)),_=gH(()=>f.messages[f.messages.length-1]?.role===`assistant`);return(t,v)=>(X(),Z(`div`,Oge,[h.value?$(``,!0):(X(),Z(`div`,kge,[Q(`div`,Age,[YV(F7,{icon:Y(u).empty},null,8,[`icon`])]),Q(`p`,null,[YV(I7,{text:Y(d).emptyGreeting},null,8,[`text`])])])),(X(!0),Z(FV,null,GB(Y(f).messages,(t,c)=>(X(),WV(H9,{key:c,message:t,index:c,"show-avatar":e.showAvatar,"show-typing":e.showTyping,"is-pending-assistant":Y(a)(c),"reasoning-expanded":Y(o)(c),copied:Y(r),"is-last":c===Y(f).messages.length-1,loading:Y(f).loading,time:Y(n)(t.timestamp),onToggleReasoning:e=>Y(s)(c),onCopy:e=>Y(i)(t.content),onRegenerate:Y(m)},null,8,[`message`,`index`,`show-avatar`,`show-typing`,`is-pending-assistant`,`reasoning-expanded`,`copied`,`is-last`,`loading`,`time`,`onToggleReasoning`,`onCopy`,`onRegenerate`]))),128)),Y(f).loading&&!_.value?(X(),Z(`div`,jge,[e.showAvatar?(X(),Z(`div`,Mge,[YV(V9,{role:`assistant`,glyph:Y(u).assistantAvatar},null,8,[`glyph`])])):$(``,!0),Q(`div`,Nge,[YV(B9,{content:``,role:`assistant`,"is-pending-assistant":!0,"show-typing":e.showTyping,"show-cursor":!1,messages:Y(d)},null,8,[`show-typing`,`messages`])])])):$(``,!0),Y(f).error?(X(),Z(`div`,Pge,[Q(`span`,Fge,J(Y(f).error),1),g.value?(X(),Z(`button`,{key:0,class:`retry-btn`,onClick:v[0]||=(...e)=>Y(p)&&Y(p)(...e)},[YV(I7,{text:Y(d).retry},null,8,[`text`])])):$(``,!0),Y(c)?(X(),Z(`button`,{key:1,class:`undo-btn`,title:Y(d).undoTitle,onClick:v[1]||=(...e)=>Y(l)&&Y(l)(...e)},[YV(I7,{text:Y(d).undo},null,8,[`text`])],8,Ige)):$(``,!0)])):$(``,!0)]))}}),[[`__scopeId`,`data-v-113939bc`]]),Lge={key:0,class:`queued-bar`},Rge={class:`queued-head`},zge={class:`queued-icon`},Bge={class:`queued-title`},Vge={class:`queued-count`},Hge={class:`queued-idx`},Uge={class:`queued-text`},Wge=[`title`,`onClick`],Gge=[`title`,`onClick`],W9=P7(jB({__name:`QueuedBar`,setup(e){let{chat:t,editQueued:n,icons:r,messages:i}=R5(),{queuedTasks:a,removeQueuedTask:o}=t;return(e,t)=>Y(a).length?(X(),Z(`div`,Lge,[Q(`div`,Rge,[Q(`span`,zge,[YV(F7,{icon:Y(r).queued},null,8,[`icon`])]),Q(`span`,Bge,J(Y(i).queuedTitle),1),Q(`span`,Vge,J(Y(a).length),1)]),(X(!0),Z(FV,null,GB(Y(a),(e,t)=>(X(),Z(`div`,{key:t,class:`queued-item`},[Q(`span`,Hge,J(t+1),1),Q(`span`,Uge,J(e),1),Q(`button`,{class:`queued-act`,title:Y(i).queuedEditTitle,onClick:e=>Y(n)(t)},[YV(F7,{icon:Y(r).queuedEdit},null,8,[`icon`])],8,Wge),Q(`button`,{class:`queued-act queued-del`,title:Y(i).removeQueuedTitle,onClick:e=>Y(o)(t)},`✕`,8,Gge)]))),128))])):$(``,!0)}}),[[`__scopeId`,`data-v-7b61eb04`]]),Kge={key:0,class:`approval-bar`},qge={class:`approval-head`},Jge={class:`approval-title`},Yge={key:0,class:`approval-question`},Xge={key:1,class:`approval-context`},Zge={key:2,class:`approval-recommend`},Qge={key:3,class:`approval-options`},$ge=[`onClick`],e_e={class:`approval-actions`},t_e={class:`approval-head`},n_e={class:`approval-title`},r_e={key:0,class:`approval-args`},i_e={class:`approval-actions`},G9=P7(jB({__name:`ApprovalBar`,setup(e){let t=R5(),{pendingApproval:n,resolveApproval:r}=t.chat,i=t.messages,a=Tz(!1);aB(n,()=>{a.value=!1});let o=gH(()=>n.value?.toolName===`request_human_confirmation`),s=gH(()=>{let e=n.value?.args?.options;return Array.isArray(e)?e.map(String):[]}),c=gH(()=>{let e=n.value?.args;if(e==null)return``;try{let t=typeof e==`string`?e:JSON.stringify(e,null,2);return t.length>400?t.slice(0,400)+i.argsTruncatedSuffix:t}catch{return String(e)}});return(e,l)=>Y(n)?(X(),Z(`div`,Kge,[o.value?(X(),Z(FV,{key:0},[Q(`div`,qge,[l[5]||=Q(`span`,{class:`approval-icon`},`❓`,-1),Q(`span`,Jge,J(Y(i).humanConfirmTitle),1)]),Y(n).args?.question?(X(),Z(`div`,Yge,J(Y(n).args.question),1)):$(``,!0),Y(n).args?.context?(X(),Z(`div`,Xge,J(Y(n).args.context),1)):$(``,!0),Y(n).args?.recommendation?(X(),Z(`div`,Zge,[YV(F7,{icon:Y(t).icons.recommend},null,8,[`icon`]),ZV(J(Y(i).recommendPrefix)+J(Y(n).args.recommendation),1)])):$(``,!0),s.value.length?(X(),Z(`div`,Qge,[(X(!0),Z(FV,null,GB(s.value,e=>(X(),Z(`button`,{key:e,class:`approval-opt`,onClick:t=>Y(r)(e)},J(e),9,$ge))),128))])):$(``,!0),Q(`div`,e_e,[Q(`button`,{class:`approval-deny`,onClick:l[0]||=e=>Y(r)(!1)},[YV(I7,{text:Y(i).deny},null,8,[`text`])]),s.value.length?$(``,!0):(X(),Z(`button`,{key:0,class:`approval-allow`,onClick:l[1]||=e=>Y(r)(!0)},[YV(I7,{text:Y(i).approve},null,8,[`text`])]))])],64)):(X(),Z(FV,{key:1},[Q(`div`,t_e,[l[6]||=Q(`span`,{class:`approval-icon`},`✋`,-1),Q(`span`,n_e,[ZV(J(Y(i).toolConfirmPrefix),1),Q(`code`,null,J(Y(n).toolName),1)]),c.value?(X(),Z(`button`,{key:0,class:`approval-toggle`,onClick:l[2]||=e=>a.value=!a.value},J(a.value?Y(i).collapseArgs:Y(i).viewArgs)+J(a.value?` ▴`:` ▾`),1)):$(``,!0)]),c.value&&a.value?(X(),Z(`pre`,r_e,J(c.value),1)):$(``,!0),Q(`div`,i_e,[Q(`button`,{class:`approval-deny`,onClick:l[3]||=e=>Y(r)(!1)},[YV(I7,{text:Y(i).deny},null,8,[`text`])]),Q(`button`,{class:`approval-allow`,onClick:l[4]||=e=>Y(r)(!0)},[YV(I7,{text:Y(i).approve},null,8,[`text`])])])],64))])):$(``,!0)}}),[[`__scopeId`,`data-v-8566d3cd`]]),a_e={key:0,class:`conflict-bar`},o_e={class:`conflict-head`},s_e={class:`conflict-icon`},c_e={class:`conflict-title`},l_e={class:`conflict-detail`},u_e={key:0,class:`conflict-diff`},d_e={class:`conflict-diff-col`},f_e={class:`conflict-diff-label`},p_e={class:`conflict-diff-pre`},m_e={class:`conflict-diff-col`},h_e={class:`conflict-diff-label`},g_e={class:`conflict-diff-pre`},__e={class:`conflict-actions`},v_e=[`title`],y_e=[`title`],b_e=[`title`],K9=P7(jB({__name:`ConflictBar`,props:{pendingConflict:{},onResolve:{},icons:{default:()=>({...j5})},messages:{default:()=>({...N5})}},setup(e){let t=e,n=Tz(!1);aB(()=>t.pendingConflict,()=>{n.value=!1});let r=gH(()=>{let e=t.pendingConflict?.agentValue;if(e===void 0)return``;try{let n=JSON.stringify(e,null,2);return n.length>400?n.slice(0,400)+t.messages.argsTruncatedSuffix:n}catch{return String(e)}}),i=gH(()=>{let e=t.pendingConflict?.currentValue;if(e==null)return``;try{let n=JSON.stringify(e,null,2);return n.length>400?n.slice(0,400)+t.messages.argsTruncatedSuffix:n}catch{return String(e)}});return(t,a)=>e.pendingConflict?(X(),Z(`div`,a_e,[Q(`div`,o_e,[Q(`span`,s_e,[YV(F7,{icon:e.icons.conflict},null,8,[`icon`])]),Q(`span`,c_e,[ZV(J(e.messages.conflictTitlePrefix),1),Q(`code`,null,J(e.pendingConflict.path),1),ZV(J(e.messages.conflictTitleSuffix),1)])]),Q(`div`,l_e,J(e.messages.conflictDetailTemplate.replace(`{op}`,e.pendingConflict.op===`delete`?e.messages.conflictOpDelete:e.messages.conflictOpWrite)),1),Q(`button`,{class:`conflict-toggle`,onClick:a[0]||=e=>n.value=!n.value},J(n.value?e.messages.collapseDiff:e.messages.viewDiff)+J(n.value?` ▴`:` ▾`),1),n.value?(X(),Z(`div`,u_e,[Q(`div`,d_e,[Q(`div`,f_e,J(e.messages.agentValueLabel),1),Q(`pre`,p_e,J(r.value||e.messages.deleteNoValue),1)]),Q(`div`,m_e,[Q(`div`,h_e,J(e.messages.currentValueLabel),1),Q(`pre`,g_e,J(i.value),1)])])):$(``,!0),Q(`div`,__e,[Q(`button`,{class:`conflict-keep`,onClick:a[1]||=t=>e.onResolve?.(`keep_external`),title:e.messages.keepExternalTitle},[YV(I7,{text:e.messages.keepExternal},null,8,[`text`])],8,v_e),Q(`button`,{class:`conflict-overwrite`,onClick:a[2]||=t=>e.onResolve?.(`overwrite`),title:e.messages.overwriteTitle},[YV(I7,{text:e.messages.overwrite},null,8,[`text`])],8,y_e),Q(`button`,{class:`conflict-restore`,onClick:a[3]||=t=>e.onResolve?.(`restore`),title:e.messages.restoreTitle},[YV(I7,{text:e.messages.restore},null,8,[`text`])],8,b_e)])])):$(``,!0)}}),[[`__scopeId`,`data-v-8263b7d4`]]),x_e={class:`chat-footer`},S_e=[`title`],C_e={key:0,class:`drop-hint`},w_e={key:1,class:`focus-chips`},T_e=[`title`,`onClick`],E_e={class:`focus-chip-icon`},D_e={class:`focus-chip-path`},O_e=[`title`,`onClick`],k_e={key:2,class:`img-chips`,"data-test":`img-chips`},A_e=[`title`],j_e=[`src`,`alt`],M_e=[`onClick`],N_e={key:3,class:`img-error`,"data-test":`img-error`},P_e=[`placeholder`,`rows`],F_e={class:`input-actions`},I_e={class:`send-hint`},L_e=[`title`],R_e={key:1,width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},z_e=[`disabled`,`title`],B_e={key:0,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`},V_e={key:2,width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},q9=P7(jB({__name:`ChatInput`,props:{placeholder:{},inputRows:{}},setup(e){let t=R5(),{inputText:n,send:r,keydown:i,canUndo:a,undo:o,focuses:s,removeFocus:c,focusChipClick:l,icons:u,messages:d}=t,{state:f,stop:p}=t.chat,{pendingImages:m,addImageFiles:h,removePendingImage:g,imageInputError:_,compressingImages:v}=t,y=Tz(null),b=Tz(!1),x=()=>y.value?.click(),S=e=>{let t=e.target.files;t?.length&&h(t),e.target.value=``},C=e=>{b.value=!1;let t=e.dataTransfer?.files;t?.length&&h(t)},w=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`&&e.type.startsWith(`image/`)){let t=e.getAsFile();t&&n.push(t)}n.length&&h(n)};return(t,h)=>(X(),Z(`div`,x_e,[Y(a)?(X(),Z(`button`,{key:0,class:`undo-foot-btn`,title:Y(d).undoTitle,onClick:h[0]||=(...e)=>Y(o)&&Y(o)(...e)},J(Y(d).undo),9,S_e)):$(``,!0),Q(`div`,{class:mR([`chat-input-wrap`,{"drag-over":b.value}]),onDragover:h[4]||=NU(e=>b.value=!0,[`prevent`]),onDragleave:h[5]||=e=>b.value=!1,onDrop:NU(C,[`prevent`])},[b.value?(X(),Z(`div`,C_e,J(Y(d).imageDropHint),1)):$(``,!0),Y(s).length?(X(),Z(`div`,w_e,[(X(!0),Z(FV,null,GB(Y(s),e=>(X(),Z(`span`,{key:e.path,class:`focus-chip`,title:Y(d).focusChipTitlePrefix+e.path+Y(d).focusChipTitleHint,onClick:t=>Y(l)(e)},[Q(`span`,E_e,[YV(F7,{icon:Y(u).focus},null,8,[`icon`])]),Q(`code`,D_e,J(e.path),1),Q(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`focus-clear`,title:Y(d).removeFocus,onClick:NU(t=>Y(c)(e.path),[`stop`])},`✕`,8,O_e)],8,T_e))),128))])):$(``,!0),Y(m).length?(X(),Z(`div`,k_e,[(X(!0),Z(FV,null,GB(Y(m),e=>(X(),Z(`span`,{key:e.id,class:`img-chip`,title:e.name||Y(d).imageAlt},[Q(`img`,{class:`img-chip-thumb`,src:e.dataUri,alt:e.name||Y(d).imageAlt},null,8,j_e),Q(`button`,{type:`button`,class:`img-chip-x`,"data-test":`img-chip-x`,onClick:t=>Y(g)(e.id)},`✕`,8,M_e)],8,A_e))),128))])):$(``,!0),Y(_)?(X(),Z(`div`,N_e,J(Y(_)),1)):$(``,!0),tB(Q(`textarea`,{"onUpdate:modelValue":h[1]||=e=>wz(n)?n.value=e:null,class:mR([`chat-input`,{"has-focus-chip":Y(s).length>0,"has-img-chip":Y(m).length>0||Y(_)}]),placeholder:e.placeholder,rows:e.inputRows,onKeydown:h[2]||=(...e)=>Y(i)&&Y(i)(...e),onPaste:w},null,42,P_e),[[AU,Y(n)]]),Q(`div`,F_e,[Q(`span`,I_e,J(Y(d).sendHint),1),Q(`button`,{class:`attach-btn`,title:Y(d).attachImageTitle,"data-test":`attach-btn`,onClick:x},[Y(u).attachImage?(X(),WV(F7,{key:0,icon:Y(u).attachImage},null,8,[`icon`])):(X(),Z(`svg`,R_e,[...h[6]||=[Q(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`},null,-1)]]))],8,L_e),Q(`input`,{ref_key:`fileInput`,ref:y,type:`file`,accept:`image/*`,multiple:``,hidden:``,"data-test":`attach-input`,onChange:S},null,544),Q(`button`,{class:mR([`send-btn`,{"stop-btn":Y(f).loading}]),disabled:!Y(f).loading&&!Y(n).trim()&&!Y(m).length&&!Y(v),title:Y(f).loading?Y(d).stopTitle:Y(d).sendTitle,onClick:h[3]||=e=>Y(f).loading?Y(p)():Y(r)()},[Y(f).loading?(X(),Z(`svg`,B_e,[...h[7]||=[Q(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`},null,-1)]])):Y(u).send?(X(),WV(F7,{key:1,icon:Y(u).send},null,8,[`icon`])):(X(),Z(`svg`,V_e,[...h[8]||=[Q(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`},null,-1),Q(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`},null,-1)]]))],10,z_e)])],34)]))}}),[[`__scopeId`,`data-v-335e3aeb`]]),H_e={key:0,class:`debug-drawer`},U_e={class:`drawer-header`},W_e={class:`tab-group`},G_e={class:`header-actions`},K_e=[`title`],q_e=[`title`],J_e=[`title`],Y_e={key:0,class:`drawer-filters`},X_e=[`onClick`],Z_e={class:`chip-count`},Q_e={class:`chip-count`},$_e={key:0,class:`trace-panel`},eve={key:0,class:`trace-empty`},tve={class:`trace-metrics`},nve={class:`metric-card`},rve={class:`metric-card`},ive={class:`metric-card`},ave={class:`metric-card`},ove={key:0,class:`metric-card`},sve={key:1,class:`metric-card`},cve={class:`trace-spans`},lve={class:`span-ico`},uve={class:`span-name`},dve={key:0,class:`span-dur`},fve={key:1,class:`span-status`},pve={key:1,class:`context-panel`},mve={key:0,class:`trace-empty`},hve={class:`ctx-overview`},gve={class:`ctx-occupancy`},_ve=[`title`],vve=[`title`],yve={class:`ctx-pct`},bve={class:`ctx-kv-row`},xve={class:`ctx-kv`},Sve={key:0,class:`ctx-kv`},Cve={key:1,class:`ctx-kv`},wve={class:`ctx-section-title`},Tve=[`title`],Eve={class:`ctx-cat-bar`},Dve={class:`ctx-cat-tokens`},J9={key:0,class:`ctx-compression`},Ove={class:`ctx-section-title`},kve={class:`ctx-kv-row`},Ave={class:`ctx-kv`},jve={class:`ctx-kv`},Mve={class:`ctx-kv`},Nve={key:0,class:`ctx-kv`},Pve={key:2,class:`subagent-panel`},Fve={key:0,class:`sub-section`},Ive={class:`sub-section-title`},Lve={key:1,class:`trace-empty`},Rve={key:0,class:`sub-section`},zve={class:`sub-section-title`},Bve={class:`sub-head`},Vve={class:`sub-label`},Hve={class:`sub-steps-badge`},Uve={class:`sub-task`},Wve={key:1,class:`sub-section`},Gve={class:`sub-section-title`},Kve={class:`sub-head`},qve={class:`sub-label`},Jve={key:0,class:`sub-dur`},Yve=[`onClick`],Xve={class:`sub-task`},Zve={key:0,class:`sub-result`},Qve={key:1,class:`sub-steps-list`},$ve={class:`sub-step-kind`},eye={class:`sub-step-name`},tye={class:`sub-step-ts`},nye={key:0,class:`empty`},rye=[`onClick`],iye={class:`log-group-title`},aye={class:`log-group-meta`},oye={key:0,class:`lg-badge`},sye={key:1,class:`lg-badge`},cye={key:2,class:`lg-badge err`},lye={class:`log-group-body`},uye={class:`log-head`},dye={key:0,class:`log-source`},fye={class:`log-time`},pye={class:`log-body`},mye={class:`kv-grid`},hye={class:`kv`},gye={class:`k`},_ye={class:`v`},vye={class:`kv`},yye={class:`k`},bye={class:`v`},xye={class:`kv`},Sye={class:`v`},Cye={class:`kv`},wye={class:`k`},Tye={class:`v`},Eye={class:`section-label`},Dye={class:`chip-row`},Oye={class:`section-label`},kye={class:`msg-list`},Aye={class:`msg-text`},jye={class:`badge-row`},Mye={class:`badge`},Nye={key:0,class:`badge muted`},Pye={class:`badge muted`},Fye={key:1,class:`badge muted`},Iye=[`onClick`],Lye=[`title`,`onClick`],Rye=[`onClick`],zye=[`title`,`onClick`],Bye={class:`msg-detail`},Vye={key:0,class:`msg-text`},Hye={class:`tc-inline-name`},Uye={class:`tc-inline-args`},Wye={key:1,class:`tc-id`},Gye={key:1,class:`log-raw`},Kye={class:`badge-row`},qye={class:`badge`},Jye={key:0,class:`badge warn`},Yye={key:0,class:`resp-content`},Xye={key:1,class:`tc-list`},Zye={class:`tc-name`},Qye={class:`tc-args`},$ye={key:2,class:`usage-row`},ebe={class:`usage`},tbe={class:`usage`},nbe={class:`usage`},rbe={class:`tc-name`},ibe={key:0,class:`tc-dur`},abe=[`title`,`onClick`],obe={class:`tc-args`},sbe={class:`tc-result-sep`},cbe={class:`tc-args tc-result`},lbe={key:1,class:`tc-card inline`},ube={class:`tc-name`},dbe={key:0,class:`tc-dur running`},fbe={class:`tc-args`},pbe={key:4,class:`err-box`},mbe={class:`log-footer`},hbe=[`onClick`],gbe=[`onClick`],_be={key:0,class:`log-raw`},vbe={key:0,class:`empty`},ybe={key:1,class:`flow-section`},bbe={class:`flow-section-title`},xbe={class:`flow-ico`},Sbe={class:`flow-label`},Cbe={class:`flow-detail`},wbe={class:`flow-time`},Tbe={class:`flow-round-head`},Ebe={class:`flow-round-body`},Dbe={class:`flow-ico`},Obe={class:`flow-label`},kbe={class:`flow-detail`},Abe={class:`flow-time`},jbe={key:5,class:`info-body`},Mbe={key:0,class:`empty`},Nbe={class:`info-section`},Pbe={class:`info-title`},Fbe={class:`kv-grid`},Ibe={class:`kv`},Lbe={class:`v`},Rbe={class:`kv`},zbe={class:`k`},Bbe={class:`v`},Vbe={class:`kv`},Hbe={class:`k`},Ube={class:`v`},Wbe={class:`kv`},Gbe={class:`k`},Kbe={class:`v`},qbe={class:`kv`,style:{"margin-top":`6px`}},Jbe={class:`k`},Ybe={class:`v`,style:{"font-size":`11px`}},Xbe={class:`info-section`},Zbe={class:`info-title`},Qbe={class:`info-name`},$be={class:`info-desc`},exe={key:0,class:`info-section`},txe={class:`info-title`},nxe={class:`info-hint`},rxe=[`onClick`],ixe={class:`info-desc`},axe={key:0,class:`skill-content`},oxe={key:0,class:`skill-loading`},sxe={key:1,class:`skill-error`},cxe={key:2,class:`skill-pre`},lxe={key:1,class:`info-section`},uxe={class:`info-title`},dxe={class:`info-item`},fxe={class:`info-name`},pxe={class:`info-desc`},mxe={class:`info-section`},hxe={class:`info-title`},gxe={class:`kv-grid`},_xe={class:`kv`},vxe={class:`k`},yxe={class:`v`},bxe={class:`kv`},xxe={class:`k`},Sxe={class:`v`},Cxe={class:`kv`},wxe={class:`k`},Txe={class:`v`},Exe={class:`kv`},Dxe={class:`k`},Oxe={class:`v`,style:{"font-size":`11px`}},kxe={key:2,class:`info-section`},Axe={class:`info-title`},jxe={class:`info-name`},Mxe={class:`src-tag mcp`},Nxe={class:`info-desc`},Pxe={key:3,class:`info-section`},Fxe={class:`info-title`},Ixe={class:`kv-grid`},Lxe={class:`kv`},Rxe={class:`k`},zxe={class:`v`},Bxe={class:`kv`},Vxe={class:`k`},Hxe={class:`v`},Uxe={class:`kv`},Wxe={class:`k`},Gxe={class:`v`},Kxe={key:0,class:`kv`},qxe={class:`k`},Jxe={class:`v`,style:{"font-size":`11px`}},Yxe={key:4,class:`info-section`},Xxe={class:`info-title`},Zxe={key:5,class:`info-section`},Qxe={class:`info-title`},$xe={class:`info-pre`},eSe={key:6,class:`info-section`},tSe={class:`info-title`},nSe={class:`todo-tag`,style:{background:`#6366f1`}},rSe={key:7,class:`info-section`},iSe={class:`info-title`},aSe={class:`info-kv`},oSe={class:`kv`},sSe={class:`k`},cSe={class:`v`},lSe={class:`kv`},uSe={class:`k`},dSe={class:`v`},fSe={class:`kv`},pSe={class:`k`},mSe={class:`v`},hSe={class:`kv`},gSe={class:`k`},_Se={class:`v`},vSe={class:`kv`},ySe={class:`k`},bSe={class:`v`,style:{"font-size":`11px`}},xSe={key:0,class:`kv`},SSe={class:`k`},CSe={class:`v`,style:{"font-size":`11px`}},Y9=400,X9=P7(jB({__name:`DebugDrawer`,props:{logs:{default:()=>[]},visible:{type:Boolean},getInfo:{},exportDiagnostics:{},infoTick:{},getSkillContent:{},csTheme:{},messages:{default:()=>N5},locale:{default:`zh-CN`}},emits:[`update:visible`,`clear`],setup(e,{emit:t}){let n=e,r=t,i=Tz(`all`),a=Tz(new Set),o=Tz(null),s=Tz(null),c=Tz(null),l=null;function u(){l||!o.value||!s.value||!c.value||(l=O5({target:o.value,elements:{viewport:s.value,content:c.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}HB(u),aB(()=>n.visible,async e=>{e&&(await Wz(),u())}),UB(()=>{l?.destroy(),l=null});let d=Tz(new Set),f=Tz(new Set);function p(e){let t=f.value;t.has(e)?t.delete(e):t.add(e)}let m=Tz(new Set);function h(e){let t=m.value;t.has(e)?t.delete(e):t.add(e)}let g=Tz(``);async function _(e,t){await A5(e)&&(g.value=t,setTimeout(()=>{g.value===t&&(g.value=``)},1200))}function v(){let e=``;try{e=n.exportDiagnostics?n.exportDiagnostics():E2(T2({debugLogs:x.value,info:n.getInfo?n.getInfo():null}))}catch{e=``}if(!e)return;let t=new Blob([e],{type:`application/json`}),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=`page-agent-diagnostics-${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,i.click(),URL.revokeObjectURL(r),g.value=`report`,setTimeout(()=>{g.value===`report`&&(g.value=``)},1200)}let y=gH(()=>n.messages),b=gH(()=>({context:{label:y.value.debugTypeContext,color:`var(--cs-primary)`,icon:`🧩`},llm_request:{label:y.value.debugTypeLlmRequest,color:`#059669`,icon:`➡️`},llm_response:{label:y.value.debugTypeLlmResponse,color:`#d97706`,icon:`⬅️`},tool_call:{label:y.value.debugTypeToolCall,color:`#7c3aed`,icon:`🔧`},tool_result:{label:y.value.debugTypeToolResult,color:`#2563eb`,icon:`✅`},error:{label:y.value.debugTypeError,color:`#dc2626`,icon:`❌`},middleware:{label:y.value.debugTypeMiddleware,color:`#0891b2`,icon:`⚙️`}})),x=gH(()=>Array.isArray(n.logs)?n.logs:[]),S=gH(()=>i.value===`all`?x.value:x.value.filter(e=>e.type===i.value)),C=gH(()=>{let e={all:x.value.length};for(let t of x.value)e[t.type]=(e[t.type]||0)+1;return e}),w=0,T=new WeakMap;function E(e){let t=T.get(e);return t??(t=++w,T.set(e,t)),t}let D=gH(()=>{let e=S.value,t=i.value===`all`||i.value===`tool_call`||i.value===`tool_result`,n=new Map,r=0;for(let e of x.value)e.type===`llm_request`&&(n.set(e,r),r=e.data?.messages?.length??0);let a=[],o=new Map;for(let r of e){if(r.type===`llm_request`){a.push({log:r,prevMsgCount:n.get(r),uid:E(r)});continue}if(!t||r.type!==`tool_call`&&r.type!==`tool_result`){a.push({log:r,uid:E(r)});continue}if(r.type===`tool_call`){let e=String(r.data?.name??``),t=o.get(e)??[];t.push(r),o.set(e,t),a.push({log:r,uid:E(r)})}else{let e=o.get(String(r.data?.name??``))?.shift();if(e){let t=a.findIndex(t=>t.log===e),n={log:r,pairCall:e,uid:E(e)};t>=0?a[t]=n:a.push(n)}else a.push({log:r,uid:E(r)})}}return a}),ee=gH(()=>{let e=new WeakMap,t=0,n=0;for(let r of x.value){if(!r.source&&r.type===`context`){t++,n=0,e.set(r,{epoch:t,kind:`pre`});continue}let i=r.data?.round;if(!r.source&&typeof i==`number`&&i>0){n=i,e.set(r,{epoch:t,kind:`round`,round:i});continue}if(!r.source&&i===`wrap_up`){e.set(r,{epoch:t,kind:`wrap_up`});continue}e.set(r,n>0?{epoch:t,kind:`round`,round:n}:{epoch:t,kind:`pre`})}return e}),te=gH(()=>{let e=ee.value,t=new Map,n=[];for(let r of D.value){let i=e.get(r.log)??{epoch:0,kind:`pre`},a=`${i.epoch}:${i.kind}:${i.round??``}`,o=t.get(a);o||(o={key:a,kind:i.kind,round:i.round,entries:[],firstTs:r.log.timestamp,lastTs:r.log.timestamp,toolCount:0,tokens:null,errorCount:0},t.set(a,o),n.push(o)),o.entries.push(r),r.log.timestamp<o.firstTs&&(o.firstTs=r.log.timestamp),r.log.timestamp>o.lastTs&&(o.lastTs=r.log.timestamp),r.log.type===`tool_call`&&o.toolCount++,(r.log.type===`error`||r.log.type===`tool_result`&&r.log.data?.status===`error`)&&o.errorCount++;let s=r.log.type===`llm_response`?r.log.data?.usage:void 0;s?.total_tokens!=null&&(o.tokens=(o.tokens??0)+s.total_tokens)}return n}),O=Tz(new Set),ne=Tz(new Set),k=gH(()=>te.value.length?te.value[te.value.length-1].key:``);function re(e){return O.value.has(e)?!0:!ne.value.has(e)&&e===k.value}function ie(e){let t=new Set(O.value),n=new Set(ne.value);re(e)?(t.delete(e),n.add(e)):(n.delete(e),t.add(e)),O.value=t,ne.value=n}function ae(e){return e.kind===`pre`?y.value.debugFlowPrep:e.kind===`wrap_up`?y.value.debugLogsWrapUp:`${y.value.debugRoundPrefix}${e.round}${y.value.debugRoundSuffix}`}function A(e,t,n){let r=e.data?.messages??[];return n&&t!=null&&t>0&&t<r.length?{list:r.slice(t),base:t}:{list:r,base:0}}function j(e){return new Date(e).toLocaleTimeString(n.locale,{hour12:!1})+`.`+String(e%1e3).padStart(3,`0`)}function oe(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}function se(e){let t=new Set(d.value);t.has(e)?t.delete(e):t.add(e),d.value=t}function ce(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}let le={system:{label:`SYSTEM`,color:`#6b7280`},human:{label:`USER`,color:`var(--cs-primary)`},user:{label:`USER`,color:`var(--cs-primary)`},ai:{label:`AI`,color:`#059669`},assistant:{label:`AI`,color:`#059669`},tool:{label:`TOOL`,color:`#2563eb`}};function ue(e){return le[e]||{label:(e||`?`).toUpperCase(),color:`#9ca3af`}}function de(){r(`update:visible`,!1)}function fe(){a.value=new Set,O.value=new Set,ne.value=new Set,r(`clear`)}let pe=Tz(`logs`),M=Tz(null),N=Tz({});async function me(e){if(N.value[e]){delete N.value[e],N.value={...N.value};return}if(!n.getSkillContent){N.value={...N.value,[e]:{loading:!1,content:null,error:y.value.debugSkillNoReader}};return}N.value={...N.value,[e]:{loading:!0,content:null}};try{let t=await n.getSkillContent(e);N.value={...N.value,[e]:{loading:!1,content:t,error:t==null?y.value.debugSkillEmpty:void 0}}}catch(t){N.value={...N.value,[e]:{loading:!1,content:null,error:String(t?.message||t)}}}}function he(){if(n.getInfo)try{M.value=n.getInfo()}catch{M.value=null}}function ge(e){pe.value=e,(e===`subagent`||e===`info`||e===`context`)&&he()}aB(()=>n.infoTick?.value,()=>{n.visible&&(pe.value===`subagent`||pe.value===`info`||pe.value===`context`)&&he()});let _e=gH(()=>({pending:{label:y.value.debugTodoPending,color:`#9ca3af`},in_progress:{label:y.value.debugTodoInProgress,color:`#d97706`},completed:{label:y.value.debugTodoCompleted,color:`#059669`}}));function P(e){return _e.value[e]?.label??e}function ve(e){return{color:y.value.debugPrefTopicColor,copy:y.value.debugPrefTopicCopy,layout:y.value.debugPrefTopicLayout,interaction:y.value.debugPrefTopicInteraction,tech:y.value.debugPrefTopicTech,other:y.value.debugPrefTopicOther}[e]??e}function F(e){return e?e===`builtin`?`builtin`:e.startsWith(`mcp:`)?`mcp`:`user`:``}let ye=gH(()=>{let e=new Map,t=[];for(let n of x.value){let r=n.data?.round;typeof r==`number`&&r>0?(e.has(r)||e.set(r,[]),e.get(r).push(n)):t.push(n)}return{pre:t,rounds:[...e.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>({round:e,items:t}))}});function I(e,t){return e.length>t?e.slice(0,t)+`…`:e}function be(e){if(e>=1e3){let t=e/1e3;return t>=10?`${Math.round(t)}s`:`${t.toFixed(1)}s`}return`${e}ms`}let xe=gH(()=>M.value?.trace?.spans??[]),Se=gH(()=>M.value?.trace?.metrics),Ce=gH(()=>M.value?.context),we=gH(()=>{let e=Ce.value;return e?e.occupancy>=1?`red`:e.thresholdRatio>0&&e.occupancy>=e.thresholdRatio?`yellow`:`green`:``}),Te=gH(()=>M.value?.subagent?.active??[]),Ee=gH(()=>M.value?.subagent?.history??[]),De=gH(()=>Object.entries(M.value?.subagent?.lockedComponents??{})),Oe=gH(()=>({running:{label:y.value.debugSubRunning,color:`#059669`},done:{label:y.value.debugSubDone,color:`#6b7280`},error:{label:y.value.debugSubError,color:`#dc2626`}})),ke=Tz(new Set);function Ae(e){let t=new Set(ke.value);t.has(e)?t.delete(e):t.add(e),ke.value=t}function je(e){return e===`round`?`🔄`:e===`model`?`🧠`:e===`tool`?`🔧`:e===`compression`?`📦`:`•`}function Me(e){return`${e.windowRatio==null?`keepRounds=${e.keepRounds??`?`}`:`windowRatio=${e.windowRatio}`} · ${e.summarize.mode}${y.value.debugSummaryMode} · ${y.value.debugCtxRecalled}${e.recallTopK??`?`}${e.reason?` · `+e.reason:``}`}function Ne(e){let t=e.data||{};switch(e.type){case`context`:return`${t.tools?.length??0}${y.value.debugToolCountSuffix} · ${t.totalMessages??0}${y.value.debugMsgCountSuffix}`;case`llm_request`:return`${(t.messages||[]).length}${y.value.debugMsgCountSuffix}${t.tools?.length?` · `+t.tools.length+y.value.debugToolCountSuffix:``}`;case`llm_response`:return t.toolCalls?.length?`${t.toolCalls.length}${y.value.debugToolCallsSuffix}`:t.content?I(String(t.content),50):``;case`tool_call`:return String(t.name??``);case`tool_result`:return`${t.name??``} · ${t.status===`error`?`❌`:`✅`}`;case`error`:return I(String(t.error??t.tool??``),60);case`middleware`:return String(t.stage??``);default:return``}}return(t,n)=>(X(),WV(gB,{to:`body`},[YV(MH,{name:`drawer`},{default:eB(()=>[e.visible?(X(),Z(`div`,H_e,[Q(`div`,{class:mR([`drawer-panel`,{"cs-theme-dark":e.csTheme===`dark`}])},[Q(`div`,U_e,[Q(`div`,W_e,[Q(`button`,{class:mR([`tab-btn`,{active:pe.value===`logs`}]),onClick:n[0]||=e=>ge(`logs`)},`🐛 `+J(y.value.debugTabLogs),3),Q(`button`,{class:mR([`tab-btn`,{active:pe.value===`flow`}]),onClick:n[1]||=e=>ge(`flow`)},`🔀 `+J(y.value.debugTabFlow),3),e.getInfo?(X(),Z(`button`,{key:0,class:mR([`tab-btn`,{active:pe.value===`trace`}]),onClick:n[2]||=e=>ge(`trace`)},`🌳 Trace`,2)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:1,class:mR([`tab-btn`,{active:pe.value===`context`}]),onClick:n[3]||=e=>ge(`context`)},`📊 `+J(y.value.debugTabContext),3)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:2,class:mR([`tab-btn`,{active:pe.value===`subagent`}]),onClick:n[4]||=e=>ge(`subagent`)},`🤖 `+J(y.value.debugTabSubagent),3)):$(``,!0),e.getInfo?(X(),Z(`button`,{key:3,class:mR([`tab-btn`,{active:pe.value===`info`}]),onClick:n[5]||=e=>ge(`info`)},`🧬 `+J(y.value.debugTabInfo),3)):$(``,!0)]),Q(`div`,G_e,[Q(`button`,{class:`hd-btn`,title:y.value.debugCopyReport,onClick:v},J(g.value===`report`?`✓`:`💾`),9,K_e),pe.value===`logs`?(X(),Z(`button`,{key:0,class:`hd-btn`,title:y.value.debugClearLogs,onClick:fe},`🗑️`,8,q_e)):$(``,!0),Q(`button`,{class:`hd-btn`,title:y.value.close,onClick:de},`✕`,8,J_e)])]),pe.value===`logs`?(X(),Z(`div`,Y_e,[(X(!0),Z(FV,null,GB(b.value,(e,t)=>(X(),Z(`button`,{key:t,class:mR([`filter-chip`,{active:i.value===t}]),style:pR({"--chip-color":e.color}),onClick:e=>i.value=t},[ZV(J(e.icon)+` `+J(e.label)+` `,1),Q(`span`,Z_e,J(C.value[t]||0),1)],14,X_e))),128)),Q(`button`,{class:mR([`filter-chip all`,{active:i.value===`all`}]),onClick:n[6]||=e=>i.value=`all`},[ZV(J(y.value.debugFilterAll)+` `,1),Q(`span`,Q_e,J(C.value.all||0),1)],2)])):$(``,!0),Q(`div`,{class:`drawer-body`,ref_key:`drawerBodyEl`,ref:o},[Q(`div`,{class:`drawer-scroll-viewport`,tabindex:`-1`,ref_key:`drawerViewportEl`,ref:s},[Q(`div`,{ref_key:`drawerContentsEl`,ref:c},[pe.value===`trace`?(X(),Z(`div`,$_e,[Se.value?(X(),Z(FV,{key:1},[Q(`div`,tve,[Q(`div`,nve,[Q(`span`,null,J(y.value.debugMetricRounds),1),Q(`b`,null,J(Se.value.rounds),1)]),Q(`div`,rve,[Q(`span`,null,J(y.value.debugMetricTotal),1),Q(`b`,null,J(Se.value.totalDurationMs)+`ms`,1)]),Q(`div`,ive,[Q(`span`,null,J(y.value.debugMetricAvg),1),Q(`b`,null,J(Se.value.avgRoundMs)+`ms`,1)]),Q(`div`,ave,[Q(`span`,null,J(y.value.debugMetricTools),1),Q(`b`,null,J(Se.value.toolCalls)+`(✅`+J(Math.round(Se.value.toolSuccessRate*100))+`%)`,1)]),Se.value.compressions?(X(),Z(`div`,ove,[Q(`span`,null,J(y.value.debugMetricCompressions),1),Q(`b`,null,J(Se.value.compressions),1)])):$(``,!0),Se.value.totalTokens?(X(),Z(`div`,sve,[n[7]||=Q(`span`,null,`Token`,-1),Q(`b`,null,J(Se.value.totalTokens.total),1)])):$(``,!0)]),Q(`div`,cve,[(X(!0),Z(FV,null,GB(xe.value,e=>(X(),Z(`div`,{key:e.id,class:mR([`trace-span`,[e.type,e.status]])},[Q(`span`,lve,J(je(e.type)),1),Q(`span`,uve,J(e.name),1),e.durationMs?(X(),Z(`span`,dve,J(be(e.durationMs)),1)):$(``,!0),e.status===`error`?(X(),Z(`span`,fve,`❌`)):$(``,!0)],2))),128))])],64)):(X(),Z(`div`,eve,J(y.value.debugTraceEmpty),1))])):$(``,!0),pe.value===`context`?(X(),Z(`div`,pve,[Ce.value?(X(),Z(FV,{key:1},[Q(`div`,hve,[Q(`div`,gve,[Q(`div`,{class:`ctx-bar-track`,title:`${y.value.debugCtxOccupancy} ${Math.round(Ce.value.occupancy*100)}%`},[Q(`div`,{class:mR([`ctx-bar-fill`,we.value]),style:pR({width:Math.min(Ce.value.occupancy*100,100)+`%`})},null,6),Ce.value.thresholdRatio>0?(X(),Z(`div`,{key:0,class:`ctx-threshold-mark`,style:pR({left:Math.min(Ce.value.thresholdRatio*100,100)+`%`}),title:y.value.debugCtxThreshold},null,12,vve)):$(``,!0)],8,_ve),Q(`span`,yve,J(Math.round(Ce.value.occupancy*100))+`%`,1)]),Q(`div`,bve,[Q(`span`,xve,J(y.value.debugCtxTokens)+` `+J(Ce.value.totalTokens)+` token`,1),Ce.value.contextWindow?(X(),Z(`span`,Sve,J(y.value.debugCtxWindow)+` `+J(Ce.value.contextWindow),1)):$(``,!0),Ce.value.thresholdRatio>0?(X(),Z(`span`,Cve,J(y.value.debugCtxThresholdPct)+` `+J(Math.round(Ce.value.thresholdRatio*100))+`%`,1)):$(``,!0)])]),Q(`div`,wve,J(y.value.debugCtxCategories),1),(X(!0),Z(FV,null,GB(Ce.value.categories,e=>(X(),Z(`div`,{key:e.key,class:`ctx-cat`},[Q(`span`,{class:`ctx-cat-label`,title:e.label},J(e.label),9,Tve),Q(`div`,Eve,[Q(`div`,{class:`ctx-cat-fill`,style:pR({width:Math.max(Math.round(e.pct*100),2)+`%`})},null,4)]),Q(`span`,Dve,[ZV(J(e.tokens)+` `,1),Q(`i`,null,`(`+J(Math.round(e.pct*100))+`%)`,1)])]))),128)),Ce.value.compression?(X(),Z(`div`,J9,[Q(`div`,Ove,J(y.value.debugCtxLastCompression),1),Q(`div`,kve,[Q(`span`,Ave,J(y.value.debugCtxSummarized)+` `+J(Ce.value.compression.roundsSummarized)+`/`+J(Ce.value.compression.roundsTotal)+J(y.value.debugCtxRoundsSuffix),1),Q(`span`,jve,J(y.value.debugCtxRecalled)+` `+J(Ce.value.compression.roundsRecalled),1),Q(`span`,Mve,J(Ce.value.compression.strategy),1),Ce.value.compression.decision?(X(),Z(`span`,Nve,`🤖 `+J(y.value.debugCtxAgentDecision)+J(Me(Ce.value.compression.decision)),1)):$(``,!0)])])):$(``,!0)],64)):(X(),Z(`div`,mve,J(y.value.debugCtxEmpty),1))])):$(``,!0),pe.value===`subagent`?(X(),Z(`div`,Pve,[De.value.length?(X(),Z(`div`,Fve,[Q(`div`,Ive,`🔒 `+J(y.value.debugLocksTitle)+` (`+J(De.value.length)+`)`,1),(X(!0),Z(FV,null,GB(De.value,([e,t])=>(X(),Z(`div`,{key:`lock-`+e,class:`sub-task`},`🔒 `+J(e)+` ← `+J(t),1))),128))])):$(``,!0),!Te.value.length&&!Ee.value.length?(X(),Z(`div`,Lve,J(y.value.debugSubagentEmpty),1)):(X(),Z(FV,{key:2},[Te.value.length?(X(),Z(`div`,Rve,[Q(`div`,zve,`▶ `+J(y.value.debugSubRunningTitle)+` (`+J(Te.value.length)+`)`,1),(X(!0),Z(FV,null,GB(Te.value,(e,t)=>(X(),Z(`div`,{key:`a`+t,class:mR([`sub-card`,e.status])},[Q(`div`,Bve,[Q(`span`,{class:`sub-status`,style:pR({background:Oe.value[e.status]&&Oe.value[e.status].color||`#9ca3af`})},J(Oe.value[e.status]&&Oe.value[e.status].label||e.status),5),Q(`span`,Vve,J(e.label),1),Q(`span`,Hve,J(e.steps.length)+J(y.value.debugStepsCountSuffix),1)]),Q(`div`,Uve,J(I(e.task,80)),1)],2))),128))])):$(``,!0),Ee.value.length?(X(),Z(`div`,Wve,[Q(`div`,Gve,`🕐 `+J(y.value.debugSubHistoryTitle)+` (`+J(Ee.value.length)+`)`,1),(X(!0),Z(FV,null,GB(Ee.value,(e,t)=>(X(),Z(`div`,{key:`h`+t,class:mR([`sub-card`,e.status])},[Q(`div`,Kve,[Q(`span`,{class:`sub-status`,style:pR({background:Oe.value[e.status]&&Oe.value[e.status].color||`#9ca3af`})},J(Oe.value[e.status]&&Oe.value[e.status].label||e.status),5),Q(`span`,qve,J(e.label),1),e.durationMs==null?$(``,!0):(X(),Z(`span`,Jve,J(be(e.durationMs)),1)),e.steps.length?(X(),Z(`button`,{key:1,class:`sub-toggle`,onClick:e=>Ae(t)},J(ke.value.has(t)?y.value.collapse:y.value.debugStepsBtn),9,Yve)):$(``,!0)]),Q(`div`,Xve,J(I(e.task,80)),1),e.resultPreview?(X(),Z(`div`,Zve,J(e.resultPreview),1)):$(``,!0),ke.value.has(t)&&e.steps.length?(X(),Z(`div`,Qve,[(X(!0),Z(FV,null,GB(e.steps,(e,t)=>(X(),Z(`div`,{key:t,class:`sub-step`},[Q(`span`,$ve,J(e.kind===`tool_call`?`🔧`:`✅`),1),Q(`span`,eye,J(e.name),1),Q(`span`,tye,J(j(e.ts)),1)]))),128))])):$(``,!0)],2))),128))])):$(``,!0)],64))])):$(``,!0),pe.value===`logs`?(X(),Z(FV,{key:3},[S.value.length===0?(X(),Z(`div`,nye,J(y.value.debugLogsEmpty),1)):$(``,!0),(X(!0),Z(FV,null,GB(te.value,e=>(X(),Z(`div`,{key:e.key,class:`log-group`},[Q(`div`,{class:mR([`log-group-head`,{expanded:re(e.key)}]),onClick:t=>ie(e.key)},[Q(`span`,{class:mR([`log-group-arrow`,{open:re(e.key)}])},`▶`,2),Q(`span`,iye,J(ae(e)),1),Q(`span`,aye,[ZV(J(j(e.firstTs)),1),e.lastTs>e.firstTs?(X(),Z(FV,{key:0},[ZV(` ~ `+J(j(e.lastTs)),1)],64)):$(``,!0),ZV(` · `+J(be(e.lastTs-e.firstTs)),1)]),e.toolCount?(X(),Z(`span`,oye,`🔧 `+J(e.toolCount),1)):$(``,!0),e.tokens==null?$(``,!0):(X(),Z(`span`,sye,`Σ `+J(e.tokens)+` tok`,1)),e.errorCount?(X(),Z(`span`,cye,`❌ `+J(e.errorCount),1)):$(``,!0)],10,rye),tB(Q(`div`,lye,[(X(!0),Z(FV,null,GB(e.entries,({log:e,pairCall:t,prevMsgCount:r,uid:i})=>(X(),Z(`div`,{key:i,class:`log-item`},[Q(`div`,uye,[Q(`span`,{class:`log-type`,style:pR({background:b.value[e.type].color})},J(b.value[e.type].icon)+` `+J(b.value[e.type].label),5),e.source?(X(),Z(`span`,dye,`↳ `+J(e.source),1)):$(``,!0),Q(`span`,fye,J(j(e.timestamp)),1)]),Q(`div`,pye,[e.type===`context`?(X(),Z(FV,{key:0},[Q(`div`,mye,[Q(`div`,hye,[Q(`span`,gye,J(y.value.debugModel),1),Q(`span`,_ye,J(e.data.model),1)]),Q(`div`,vye,[Q(`span`,yye,J(y.value.debugTemperature),1),Q(`span`,bye,J(e.data.temperature),1)]),Q(`div`,xye,[n[8]||=Q(`span`,{class:`k`},`MaxTokens`,-1),Q(`span`,Sye,J(e.data.maxTokens),1)]),Q(`div`,Cye,[Q(`span`,wye,J(y.value.debugMessageCount),1),Q(`span`,Tye,J(e.data.totalMessages),1)])]),Q(`div`,Eye,J(y.value.debugToolsLabel)+` (`+J(e.data.tools?.length||0)+`)`,1),Q(`div`,Dye,[(X(!0),Z(FV,null,GB(e.data.tools,e=>(X(),Z(`span`,{key:e,class:`tool-chip`},J(e),1))),128))]),Q(`div`,Oye,J(y.value.debugContextMessages),1),Q(`div`,kye,[(X(!0),Z(FV,null,GB(e.data.messages,(e,t)=>(X(),Z(`div`,{key:t,class:`msg-row`},[Q(`span`,{class:`msg-role`,style:pR({background:ue(e.type).color})},J(ue(e.type).label),5),Q(`span`,Aye,J(e.content),1)]))),128))])],64)):e.type===`llm_request`?(X(),Z(FV,{key:1},[Q(`div`,jye,[Q(`span`,Mye,J(y.value.debugRoundPrefix)+J(e.data.round)+J(y.value.debugRoundSuffix),1),e.data.model?(X(),Z(`span`,Nye,J(e.data.model),1)):$(``,!0),Q(`span`,Pye,[ZV(J((e.data.messages||[]).length)+J(y.value.debugMsgCountSuffix),1),r!=null&&r<(e.data.messages||[]).length?(X(),Z(FV,{key:0},[ZV(`(+`+J((e.data.messages||[]).length-r)+`)`,1)],64)):$(``,!0)]),e.data.tools?.length?(X(),Z(`span`,Fye,J(e.data.tools.length)+J(y.value.debugToolCountSuffix),1)):$(``,!0),r!=null&&r>0?(X(),Z(`button`,{key:2,class:`view-toggle only-new-btn`,onClick:e=>h(i)},J(m.value.has(i)?y.value.debugShowAll:y.value.debugOnlyNew),9,Iye)):$(``,!0),Q(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(ce(e.data.messages),`req`+i)},J(g.value===`req`+i?`✓`:`📋`),9,Lye),Q(`button`,{class:`view-toggle`,onClick:e=>se(i)},J(d.value.has(i)?y.value.debugCardView:y.value.debugRequestBody),9,Rye)]),d.value.has(i)?(X(),Z(`pre`,Gye,[Q(`code`,null,J(ce(e.data.messages)),1)])):(X(!0),Z(FV,{key:0},GB([A(e,r,m.value.has(i))],e=>(X(),Z(`div`,{key:e.base,class:`msg-list`},[(X(!0),Z(FV,null,GB(e.list,(t,n)=>(X(),Z(`div`,{key:n,class:mR([`msg-row`,{clamped:!f.value.has(i+`:`+(e.base+n))&&String(t.content??``).length>Y9}]),title:String(t.content??``).length>Y9?f.value.has(i+`:`+(e.base+n))?y.value.collapse:y.value.expand:void 0,onClick:r=>String(t.content??``).length>Y9&&p(i+`:`+(e.base+n))},[Q(`span`,{class:`msg-role`,style:pR({background:ue(t.role).color})},J(ue(t.role).label),5),Q(`div`,Bye,[t.content?(X(),Z(`span`,Vye,J(t.content),1)):$(``,!0),(X(!0),Z(FV,null,GB(t.tool_calls||[],(e,t)=>(X(),Z(`div`,{key:t,class:`tc-inline`},[Q(`span`,Hye,`🔧 `+J(e.function?.name||e.name),1),Q(`code`,Uye,J(e.function?.arguments??e.args),1)]))),128)),t.tool_call_id?(X(),Z(`span`,Wye,`↳ tool_call_id: `+J(t.tool_call_id),1)):$(``,!0)])],10,zye))),128))]))),128))],64)):e.type===`llm_response`?(X(),Z(FV,{key:2},[Q(`div`,Kye,[Q(`span`,qye,J(y.value.debugRoundPrefix)+J(e.data.round)+J(y.value.debugRoundSuffix),1),e.data.toolCalls?.length?(X(),Z(`span`,Jye,`🔧 `+J(e.data.toolCalls.length)+J(y.value.debugToolCallsSuffix),1)):$(``,!0)]),e.data.content?(X(),Z(`div`,Yye,J(e.data.content),1)):$(``,!0),e.data.toolCalls?.length?(X(),Z(`div`,Xye,[(X(!0),Z(FV,null,GB(e.data.toolCalls,(e,t)=>(X(),Z(`div`,{key:t,class:`tc-card`},[Q(`div`,Zye,`🔧 `+J(e.name),1),Q(`pre`,Qye,J(ce(e.args)),1)]))),128))])):$(``,!0),e.data.usage?(X(),Z(`div`,$ye,[Q(`span`,ebe,`prompt: `+J(e.data.usage.prompt_tokens??`-`),1),Q(`span`,tbe,`completion: `+J(e.data.usage.completion_tokens??`-`),1),Q(`span`,nbe,`total: `+J(e.data.usage.total_tokens??`-`),1)])):$(``,!0)],64)):e.type===`tool_call`||e.type===`tool_result`?(X(),Z(FV,{key:3},[t?(X(),Z(`div`,{key:0,class:mR([`tc-card inline paired`,{error:e.data.status===`error`}])},[Q(`div`,rbe,[ZV(J(e.data.status===`error`?`❌`:`✅`)+` `+J(e.data.name)+` `,1),e.data.durationMs==null?$(``,!0):(X(),Z(`span`,ibe,J(be(e.data.durationMs)),1)),Q(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(String(e.data.result??``),`res`+i)},J(g.value===`res`+i?`✓`:`📋`),9,abe)]),Q(`pre`,obe,J(ce(t.data.args)),1),Q(`div`,sbe,`↓ `+J(y.value.resultLabel),1),Q(`pre`,cbe,J(e.data.result),1)],2)):(X(),Z(`div`,lbe,[Q(`div`,ube,[ZV(J(e.type===`tool_call`?`🔧`:`✅`)+` `+J(e.data.name)+` `,1),e.type===`tool_call`?(X(),Z(`span`,dbe,J(y.value.statusRunning)+`…`,1)):$(``,!0)]),Q(`pre`,fbe,J(e.type===`tool_call`?ce(e.data.args):e.data.result),1)]))],64)):e.type===`error`?(X(),Z(`div`,pbe,J(e.data.tool?`[${e.data.tool}] `:``)+J(e.data.error),1)):$(``,!0)]),Q(`div`,mbe,[Q(`button`,{class:`raw-toggle`,onClick:e=>oe(i)},J(a.value.has(i)?y.value.debugCollapseRawJson:y.value.debugViewRawJson),9,hbe),Q(`button`,{class:`raw-toggle`,onClick:t=>Y(A5)(ce(e.data))},J(y.value.copy),9,gbe)]),a.value.has(i)?(X(),Z(`pre`,_be,[Q(`code`,null,J(ce(e.data)),1)])):$(``,!0)]))),128))],512),[[XH,re(e.key)]])]))),128))],64)):pe.value===`flow`?(X(),Z(FV,{key:4},[x.value.length?$(``,!0):(X(),Z(`div`,vbe,J(y.value.debugFlowEmpty),1)),ye.value.pre.length?(X(),Z(`div`,ybe,[Q(`div`,bbe,`⚙️ `+J(y.value.debugFlowPrep),1),(X(!0),Z(FV,null,GB(ye.value.pre,(e,t)=>(X(),Z(`div`,{key:`p`+t,class:mR([`flow-node`,e.type])},[Q(`span`,xbe,J(b.value[e.type]?.icon),1),Q(`span`,Sbe,J(b.value[e.type]?.label),1),Q(`span`,Cbe,J(Ne(e)),1),Q(`span`,wbe,J(j(e.timestamp)),1)],2))),128))])):$(``,!0),(X(!0),Z(FV,null,GB(ye.value.rounds,e=>(X(),Z(`div`,{key:e.round,class:`flow-round`},[Q(`div`,Tbe,`🔁 `+J(y.value.debugRoundPrefix)+J(e.round)+J(y.value.debugRoundSuffix),1),Q(`div`,Ebe,[(X(!0),Z(FV,null,GB(e.items,(e,t)=>(X(),Z(`div`,{key:t,class:mR([`flow-node`,e.type])},[Q(`span`,Dbe,J(b.value[e.type]?.icon),1),Q(`span`,Obe,J(b.value[e.type]?.label),1),Q(`span`,kbe,J(Ne(e)),1),Q(`span`,Abe,J(j(e.timestamp)),1)],2))),128))])]))),128))],64)):(X(),Z(`div`,jbe,[M.value?(X(),Z(FV,{key:1},[Q(`div`,Nbe,[Q(`div`,Pbe,J(y.value.debugInfoBasic),1),Q(`div`,Fbe,[Q(`div`,Ibe,[n[9]||=Q(`span`,{class:`k`},`ID`,-1),Q(`span`,Lbe,J(M.value.id),1)]),Q(`div`,Rbe,[Q(`span`,zbe,J(y.value.debugModel),1),Q(`span`,Bbe,J(M.value.model||`-`),1)]),Q(`div`,Vbe,[Q(`span`,Hbe,J(y.value.debugToolCount),1),Q(`span`,Ube,J(M.value.tools.length),1)]),Q(`div`,Wbe,[Q(`span`,Gbe,J(y.value.debugMiddleware),1),Q(`span`,Kbe,J(M.value.middleware.length),1)])]),Q(`div`,qbe,[Q(`span`,Jbe,J(y.value.debugMiddlewareStack),1),Q(`span`,Ybe,J(M.value.middleware.join(` → `)||`-`),1)])]),Q(`div`,Xbe,[Q(`div`,Zbe,`🔧 `+J(y.value.debugToolsLabel)+` (`+J(M.value.tools.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.tools,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,Qbe,[ZV(J(e.name),1),e.source?(X(),Z(`span`,{key:0,class:mR([`src-tag`,F(e.source)])},J(e.source),3)):$(``,!0)]),Q(`div`,$be,J(e.description),1)]))),128))]),M.value.skills.length?(X(),Z(`div`,exe,[Q(`div`,txe,[ZV(`📘 `+J(y.value.debugSkillsTitle)+` (`+J(M.value.skills.length)+`)`,1),Q(`span`,nxe,J(y.value.debugSkillsHint),1)]),(X(!0),Z(FV,null,GB(M.value.skills,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,{class:`info-name skill-toggle`,onClick:t=>me(e.name)},[Q(`span`,{class:mR([`skill-arrow`,{open:!!N.value[e.name]}])},`▶`,2),ZV(` `+J(e.name),1)],8,rxe),Q(`div`,ixe,J(e.description),1),N.value[e.name]?(X(),Z(`div`,axe,[N.value[e.name].loading?(X(),Z(`div`,oxe,J(y.value.debugLoading),1)):N.value[e.name].error?(X(),Z(`div`,sxe,J(N.value[e.name].error),1)):N.value[e.name].content?(X(),Z(`pre`,cxe,J(N.value[e.name].content),1)):$(``,!0)])):$(``,!0)]))),128))])):$(``,!0),M.value.data?(X(),Z(`div`,lxe,[Q(`div`,uxe,`📊 `+J(y.value.debugDataTitle),1),Q(`div`,dxe,[Q(`div`,fxe,J(M.value.data.description||y.value.debugDataFallback),1),Q(`div`,pxe,J(y.value.debugSchemaPrefix)+J(M.value.data.schema?y.value.debugSchemaDeclared:y.value.debugSchemaMissing),1)])])):$(``,!0),Q(`div`,mxe,[Q(`div`,hxe,`🧬 `+J(y.value.debugSubagentTitle),1),Q(`div`,gxe,[Q(`div`,_xe,[Q(`span`,vxe,J(y.value.debugEnabled),1),Q(`span`,yxe,J(M.value.subagent.enabled?y.value.debugYes:y.value.debugNo),1)]),Q(`div`,bxe,[Q(`span`,xxe,J(y.value.debugMaxDepth),1),Q(`span`,Sxe,J(M.value.subagent.maxDepth),1)]),Q(`div`,Cxe,[Q(`span`,wxe,J(y.value.debugMaxParallel),1),Q(`span`,Txe,J(M.value.subagent.maxParallel),1)]),Q(`div`,Exe,[Q(`span`,Dxe,J(y.value.debugExtraTools),1),Q(`span`,Oxe,J(M.value.subagent.allowedTools.length?M.value.subagent.allowedTools.join(`, `):y.value.debugDefaultReadonly),1)])])]),M.value.mcp?.servers?.length?(X(),Z(`div`,kxe,[Q(`div`,Axe,`🔌 MCP (`+J(M.value.mcp.servers.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.mcp.servers,e=>(X(),Z(`div`,{key:e.name,class:`info-item`},[Q(`div`,jxe,[ZV(J(e.name)+` `,1),Q(`span`,Mxe,J(e.toolCount)+J(y.value.debugToolCountSuffix),1)]),Q(`div`,Nxe,J(e.url),1)]))),128))])):$(``,!0),M.value.verify?(X(),Z(`div`,Pxe,[Q(`div`,Fxe,`✅ `+J(y.value.debugVerifyTitle),1),Q(`div`,Ixe,[Q(`div`,Lxe,[Q(`span`,Rxe,J(y.value.debugEnabled),1),Q(`span`,zxe,J(M.value.verify.enabled?y.value.debugYes:y.value.debugNo),1)]),Q(`div`,Bxe,[Q(`span`,Vxe,J(y.value.debugMaxAttempts),1),Q(`span`,Hxe,J(M.value.verify.maxAttempts),1)]),Q(`div`,Uxe,[Q(`span`,Wxe,J(y.value.debugAdversarial),1),Q(`span`,Gxe,J(M.value.verify.adversarial?y.value.debugOn:y.value.debugOff),1)]),M.value.verify.adversarial?(X(),Z(`div`,Kxe,[Q(`span`,qxe,J(y.value.debugAdversarialModel),1),Q(`span`,Jxe,J(M.value.model||`-`)+J(y.value.debugSameAsMain),1)])):$(``,!0)])])):$(``,!0),M.value.todos.length?(X(),Z(`div`,Yxe,[Q(`div`,Xxe,`📋 `+J(y.value.debugTodosTitle)+` (`+J(M.value.todos.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.todos,(e,t)=>(X(),Z(`div`,{key:t,class:`info-todo`},[Q(`span`,{class:`todo-tag`,style:pR({background:_e.value[e.status]&&_e.value[e.status].color||`#9ca3af`})},J(P(e.status)),5),Q(`span`,null,J(e.content),1)]))),128))])):$(``,!0),M.value.memory?(X(),Z(`div`,Zxe,[Q(`div`,Qxe,`📝 `+J(y.value.debugMemoryTitle),1),Q(`pre`,$xe,J(M.value.memory),1)])):$(``,!0),M.value.preferences?.length?(X(),Z(`div`,eSe,[Q(`div`,tSe,`🎯 `+J(y.value.debugPrefsTitle)+` (`+J(M.value.preferences.length)+`)`,1),(X(!0),Z(FV,null,GB(M.value.preferences,e=>(X(),Z(`div`,{key:e.id,class:`info-todo`},[Q(`span`,nSe,J(ve(e.topic)),1),Q(`span`,null,J(e.content),1)]))),128))])):$(``,!0),M.value.lastCompression?(X(),Z(`div`,rSe,[Q(`div`,iSe,`🗜️ `+J(y.value.debugLastCompTitle),1),Q(`div`,aSe,[Q(`div`,oSe,[Q(`span`,sSe,J(y.value.debugTriggered),1),Q(`span`,cSe,J(M.value.lastCompression.triggered?`✓`:y.value.debugNotTriggered),1)]),Q(`div`,lSe,[Q(`span`,uSe,J(y.value.debugRoundsSummarized),1),Q(`span`,dSe,J(M.value.lastCompression.roundsSummarized)+` / `+J(M.value.lastCompression.roundsTotal),1)]),Q(`div`,fSe,[Q(`span`,pSe,J(y.value.debugCtxRecalled),1),Q(`span`,mSe,J(M.value.lastCompression.roundsRecalled)+J(y.value.debugCountSuffix),1)]),Q(`div`,hSe,[Q(`span`,gSe,J(y.value.debugMessageCount),1),Q(`span`,_Se,J(M.value.lastCompression.originalMessages)+` → `+J(M.value.lastCompression.compressedMessages),1)]),Q(`div`,vSe,[Q(`span`,ySe,J(y.value.debugStrategy),1),Q(`span`,bSe,J(M.value.lastCompression.strategy),1)]),M.value.lastCompression.decision?(X(),Z(`div`,xSe,[Q(`span`,SSe,J(y.value.debugDecision),1),Q(`span`,CSe,`🤖 `+J(Me(M.value.lastCompression.decision)),1)])):$(``,!0)])])):$(``,!0)],64)):(X(),Z(`div`,Mbe,J(y.value.debugNoInfo),1))]))],512)],512)],512)],2),Q(`div`,{class:`drawer-mask`,onClick:de})])):$(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-2510fa80`]]),wSe={class:`skill-panel`},TSe={class:`skill-header`},ESe={class:`skill-title`},DSe=[`title`],OSe={class:`skill-section`},kSe={class:`section-title`},ASe=[`title`],jSe={class:`field`},MSe={class:`field-label`},NSe=[`disabled`,`placeholder`],PSe={class:`field`},FSe={class:`field-label`},ISe=[`placeholder`],LSe={class:`field field-textarea`},RSe={class:`field-label`},zSe=[`placeholder`],BSe={key:0,class:`skill-error`},VSe={class:`skill-section`},HSe={class:`section-title`},USe={key:0,class:`empty-hint`},WSe={key:1,class:`skill-list`},GSe={class:`skill-actions`},KSe=[`title`,`onClick`],qSe=[`title`,`onClick`],JSe={class:`skill-hint`},Z9=P7(jB({__name:`SkillPanel`,props:{visible:{type:Boolean},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},messages:{default:()=>N5}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=Tz(``),a=Tz(``),o=Tz(``),s=Tz(``),c=Tz([]),l=Tz(0),u=Tz(null);aB(()=>n.visible,e=>{e&&d()},{immediate:!0}),aB(l,()=>d());function d(){n.getUserSkillNames&&(c.value=n.getUserSkillNames())}function f(){if(s.value=``,!i.value.trim()){s.value=n.messages.skillErrName;return}if(!a.value.trim()){s.value=n.messages.skillErrDesc;return}if(!o.value.trim()){s.value=n.messages.skillErrContent;return}let e=i.value.trim();u.value===null&&c.value.includes(e)&&(s.value=`${n.messages.skillDupWarnPrefix}${e}${n.messages.skillDupWarnSuffix}`),n.onAddSkill?.({name:e,description:a.value.trim(),getContent:()=>o.value}),h(),l.value++}function p(e){n.onRemoveSkill&&n.onRemoveSkill(e)&&(u.value===e&&h(),l.value++)}function m(e){if(!n.onGetSkill)return;let t=n.onGetSkill(e);t&&(u.value=e,i.value=t.name,a.value=t.description,o.value=t.content,s.value=``)}function h(){u.value=null,i.value=``,a.value=``,o.value=``,s.value=``}return(t,n)=>(X(),WV(gB,{to:`body`},[YV(MH,{name:`cs-skill-fade`},{default:eB(()=>[e.visible?(X(),Z(`div`,{key:0,class:`skill-mask`,onClick:n[4]||=NU(e=>r(`close`),[`self`])},[Q(`div`,wSe,[Q(`div`,TSe,[Q(`span`,ESe,J(e.messages.skillPanelTitle),1),Q(`button`,{class:`skill-close`,title:e.messages.close,onClick:n[0]||=e=>r(`close`)},`✕`,8,DSe)]),Q(`div`,OSe,[Q(`div`,kSe,[ZV(J(u.value?`${e.messages.skillEditingPrefix}${u.value}`:e.messages.skillCreateNew)+` `,1),u.value?(X(),Z(`button`,{key:0,class:`btn btn-ghost btn-cancel`,title:e.messages.skillCancelEdit,onClick:h},J(e.messages.skillCancelEdit),9,ASe)):$(``,!0)]),Q(`label`,jSe,[Q(`span`,MSe,J(e.messages.skillNameLabel),1),tB(Q(`input`,{"onUpdate:modelValue":n[1]||=e=>i.value=e,disabled:!!u.value,placeholder:e.messages.skillNamePlaceholder,class:`field-input`},null,8,NSe),[[AU,i.value]])]),Q(`label`,PSe,[Q(`span`,FSe,J(e.messages.skillDescLabel),1),tB(Q(`input`,{"onUpdate:modelValue":n[2]||=e=>a.value=e,placeholder:e.messages.skillDescPlaceholder,class:`field-input`},null,8,ISe),[[AU,a.value]])]),Q(`label`,LSe,[Q(`span`,RSe,J(e.messages.skillContentLabel),1),tB(Q(`textarea`,{"onUpdate:modelValue":n[3]||=e=>o.value=e,placeholder:e.messages.skillContentPlaceholder,rows:`6`,class:`field-input`},null,8,zSe),[[AU,o.value]])]),s.value?(X(),Z(`div`,BSe,J(s.value),1)):$(``,!0),Q(`button`,{class:`btn btn-primary`,onClick:f},J(u.value?e.messages.skillSave:e.messages.skillAdd),1)]),Q(`div`,VSe,[Q(`div`,HSe,J(e.messages.skillCreatedTitle)+`(`+J(c.value.length)+`)`,1),c.value.length?(X(),Z(`ul`,WSe,[(X(!0),Z(FV,null,GB(c.value,t=>(X(),Z(`li`,{key:t,class:`skill-item`},[Q(`span`,{class:mR([`skill-name`,{active:u.value===t}])},J(t),3),Q(`span`,GSe,[Q(`button`,{class:`btn btn-ghost btn-edit`,title:e.messages.skillEditTitle,onClick:e=>m(t)},J(e.messages.skillEditBtn),9,KSe),Q(`button`,{class:`btn btn-ghost btn-del`,title:e.messages.skillDeleteTitle,onClick:e=>p(t)},J(e.messages.skillDeleteBtn),9,qSe)])]))),128))])):(X(),Z(`div`,USe,J(e.messages.skillEmpty),1))]),Q(`div`,JSe,[ZV(` 💡 `+J(e.messages.skillHintA)+` `,1),n[5]||=Q(`code`,null,`load_skill(name)`,-1),ZV(` `+J(e.messages.skillHintB)+` `,1),n[6]||=Q(`code`,null,`skillStorage.id`,-1),ZV(` `+J(e.messages.skillHintC),1)])])])):$(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-fcd21121`]]),Q9=P7(jB({__name:`ChatDialog`,props:{fetchResponse:{},fetchStream:{},title:{},placeholder:{},debugLogs:{},debug:{type:Boolean},initialMessages:{},onPersist:{},onQueuedCleared:{},onBeforeRegenerate:{},onClear:{},getInfo:{},exportDiagnostics:{},clearDebugLogs:{},onUndo:{},canUndo:{},showAvatar:{type:Boolean,default:!0},showTyping:{type:Boolean,default:!0},pendingConflict:{},onResolveConflict:{},infoTick:{},getSkillContent:{},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},drawer:{type:Boolean},drawerWidth:{},drawerHidden:{type:Boolean},inputRows:{default:2},sessions:{},currentSessionId:{},onNewSession:{},onOpenSession:{},onRemoveSession:{},getFocus:{},onSetFocus:{},onClearFocus:{},getFocuses:{},onAddFocus:{},onRemoveFocus:{},onFocusChipClick:{},sections:{},csTheme:{},icons:{},headerLabels:{type:Boolean},i18n:{}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=L5({fetchResponse:n.fetchResponse,fetchStream:n.fetchStream,messages:n.initialMessages,onPersist:n.onPersist,onClear:n.onClear,onQueuedCleared:n.onQueuedCleared,onBeforeRegenerate:n.onBeforeRegenerate,getInfo:n.getInfo,canUndo:n.canUndo,onUndo:n.onUndo,getFocuses:n.getFocuses,onAddFocus:n.onAddFocus,onRemoveFocus:n.onRemoveFocus,onClearFocus:n.onClearFocus,onFocusChipClick:n.onFocusChipClick,infoTick:n.infoTick,icons:n.icons,locale:n.i18n?.locale,dialogMessages:n.i18n?.messages});rB(I5,i);let{isExpanded:a,debugVisible:o,skillVisible:s,closeSkill:c}=i,{scrollContainer:l,onScroll:u,onWheel:d}=i.chat,f=Tz(null),p=Tz(null),m=null;HB(()=>{!f.value||!l.value||!p.value||(m=O5({target:f.value,elements:{viewport:l.value,content:p.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}),UB(()=>{m?.destroy(),m=null});function h(e){return e===`focus`?n.sections?.focus===!0:n.sections?.[e]!==!1}let g=gH(()=>!!n.onAddSkill),_=gH(()=>{if(!n.drawer||n.drawerWidth==null)return null;let e=n.drawerWidth;return typeof e==`number`?`${e}px`:e});return(t,n)=>(X(),Z(FV,null,[e.drawer?(X(),Z(`div`,{key:0,class:`chat-mask`,onClick:n[0]||=e=>r(`close`)})):$(``,!0),Q(`div`,{class:mR([`chat-dialog`,{collapsed:!Y(a)&&!e.drawer,drawer:e.drawer,"cs-theme-dark":e.csTheme===`dark`}]),style:pR(_.value?{width:_.value,maxWidth:_.value}:null)},[h(`header`)?KB(t.$slots,`header`,{key:0,chat:Y(i)},()=>[YV(L7,{title:e.title||Y(i).messages.defaultTitle,drawer:e.drawer,"debug-logs":e.debugLogs,debug:e.debug,"skill-available":g.value,sessions:e.sessions,"current-session-id":e.currentSessionId,labels:e.headerLabels!==!1,"on-new-session":e.onNewSession,"on-open-session":e.onOpenSession,"on-remove-session":e.onRemoveSession,onClose:n[1]||=e=>r(`close`)},null,8,[`title`,`drawer`,`debug-logs`,`debug`,`skill-available`,`sessions`,`current-session-id`,`labels`,`on-new-session`,`on-open-session`,`on-remove-session`])],!0):$(``,!0),h(`focus`)?KB(t.$slots,`focus`,{key:1,chat:Y(i)},()=>[YV(R7,{"get-focus":e.getFocus,"on-set-focus":e.onSetFocus,"on-clear-focus":e.onClearFocus,"info-tick":e.infoTick,icons:Y(i).icons,messages:Y(i).messages},null,8,[`get-focus`,`on-set-focus`,`on-clear-focus`,`info-tick`,`icons`,`messages`])],!0):$(``,!0),Q(`div`,{class:`chat-main`,ref_key:`chatMainEl`,ref:f},[Q(`div`,{class:`chat-scroll-viewport`,tabindex:`-1`,ref_key:`scrollContainer`,ref:l,onScroll:n[2]||=(...e)=>Y(u)&&Y(u)(...e),onWheel:n[3]||=(...e)=>Y(d)&&Y(d)(...e)},[Q(`div`,{ref_key:`chatContentsEl`,ref:p},[h(`body`)?(X(),WV(MH,{key:0,name:`cs-slide`},{default:eB(()=>[KB(t.$slots,`body`,{chat:Y(i)},()=>[tB(YV(U9,{"show-avatar":e.showAvatar,"show-typing":e.showTyping},null,8,[`show-avatar`,`show-typing`]),[[XH,Y(a)]])],!0)]),_:3})):$(``,!0),h(`queued`)?KB(t.$slots,`queued`,{key:1,chat:Y(i)},()=>[YV(W9)],!0):$(``,!0),h(`approval`)?KB(t.$slots,`approval`,{key:2,chat:Y(i)},()=>[YV(G9)],!0):$(``,!0),h(`conflict`)?KB(t.$slots,`conflict`,{key:3,chat:Y(i)},()=>[YV(K9,{"pending-conflict":e.pendingConflict,"on-resolve":e.onResolveConflict,icons:Y(i).icons,messages:Y(i).messages},null,8,[`pending-conflict`,`on-resolve`,`icons`,`messages`])],!0):$(``,!0)],512)],544)],512),h(`footer`)?(X(),WV(MH,{key:2,name:`cs-slide`},{default:eB(()=>[KB(t.$slots,`footer`,{chat:Y(i)},()=>[YV(q9,{placeholder:e.placeholder||Y(i).messages.inputPlaceholder,"input-rows":e.inputRows},null,8,[`placeholder`,`input-rows`])],!0)]),_:3})):$(``,!0),h(`debug`)?KB(t.$slots,`debug`,{key:3,chat:Y(i)},()=>[YV(X9,{visible:Y(o),"onUpdate:visible":n[4]||=e=>wz(o)?o.value=e:null,logs:e.debugLogs,"get-info":e.getInfo,"export-diagnostics":e.exportDiagnostics,"info-tick":e.infoTick,"get-skill-content":e.getSkillContent,"cs-theme":e.csTheme,messages:Y(i).messages,locale:Y(i).locale,onClear:n[5]||=()=>e.clearDebugLogs?.()},null,8,[`visible`,`logs`,`get-info`,`export-diagnostics`,`info-tick`,`get-skill-content`,`cs-theme`,`messages`,`locale`])],!0):$(``,!0),h(`skill`)?KB(t.$slots,`skill`,{key:4,chat:Y(i)},()=>[YV(Z9,{visible:Y(s),"on-add-skill":e.onAddSkill,"on-remove-skill":e.onRemoveSkill,"get-user-skill-names":e.getUserSkillNames,"on-get-skill":e.onGetSkill,messages:Y(i).messages,onClose:Y(c)},null,8,[`visible`,`on-add-skill`,`on-remove-skill`,`get-user-skill-names`,`on-get-skill`,`messages`,`onClose`])],!0):$(``,!0)],6)],64))}}),[[`__scopeId`,`data-v-e3c6c516`]]);function YSe(e){let{core:t,dialogCfg:n}=e,r=null,i=e.el,a=t.agent.debugLogs;return r=zU(jB({setup(){return()=>_H(Q9,{fetchStream:e.streaming?t.stream:void 0,fetchResponse:e.streaming?void 0:(e,n)=>{if(n){let e=()=>t.resolveConflict(`keep_external`);n.aborted?e():n.addEventListener(`abort`,e,{once:!0})}return t.agent.invoke(e,n)},title:n.title,placeholder:n.placeholder,debugLogs:a.value.slice(),debug:e.debug===!0,initialMessages:t.messages,getInfo:()=>t.getInfo(),exportDiagnostics:()=>t.exportDiagnostics(),clearDebugLogs:()=>{a.value=[],Oz(a)},onUndo:t.checkpoint?()=>t.checkpoint.restore():void 0,canUndo:t.checkpoint?()=>t.checkpoint.canRestore():void 0,onPersist:async()=>{t.afterRound(),t.store&&await t.store.flush()},onClear:()=>t.resetSession(),onBeforeRegenerate:()=>t.clearCodeReuse?.(),onQueuedCleared:e=>{let n=t.agent?.debugLogs;n&&(n.value.push({timestamp:Date.now(),type:`middleware`,data:{stage:`queued_cleared`,dropped:e.length,preview:e.map(e=>e.slice(0,60))}}),Oz(n))},pendingConflict:t.pendingConflict.value,onResolveConflict:e=>t.resolveConflict(e),infoTick:t.infoTick,getSkillContent:t.skillsController?e=>t.skillsController.getContent(e):void 0,onAddSkill:t.skillsController?e=>t.addSkill(e):void 0,onRemoveSkill:t.skillsController?e=>t.removeSkill(e):void 0,getUserSkillNames:t.skillsController?()=>t.listUserSkills():void 0,onGetSkill:t.skillsController?e=>t.getUserSkill(e):void 0,drawer:n.drawer===!0,csTheme:n.theme===`light`?`light`:`dark`,drawerWidth:n.drawerWidth,drawerHidden:n.drawerHidden===!0,inputRows:n.inputRows,sections:n.sections,icons:n.icons,headerLabels:n.headerLabels!==!1,i18n:e.i18n,getFocus:()=>t.getFocus(),getFocuses:()=>t.getFocuses(),onSetFocus:e=>t.setFocus(e),onAddFocus:e=>t.addFocus(e),onRemoveFocus:e=>t.removeFocus(e),onClearFocus:()=>t.clearFocus(),onFocusChipClick:e=>t.emit({type:`focus_chip_click`,path:e.path,label:e.label}),onClose:n.onClose??(n.drawer===!0?()=>e.hide():()=>e.unmount()),...t.store?{sessions:t.sessions.value,currentSessionId:t.sessionId,onNewSession:()=>{e.runSerial(()=>t.switchSession())},onOpenSession:n=>{e.runSerial(()=>t.switchSession(n))},onRemoveSession:async e=>{e!==t.sessionId&&(await t.store.deleteSession(t.agentId,e),await t.refreshSessions())}}:{}})}})),r.mount(e.el),{unmount(){let t=i.querySelector?.(`.chat-dialog`);if(r&&t){t.classList.add(`cs-leaving`);let n=i.querySelector?.(`.chat-mask`);n&&n.classList.add(`cs-leaving`);let a=!1,o=()=>{a||(a=!0,r?.unmount(),r=null,e.onDialogUnmounted())};t.addEventListener(`transitionend`,o,{once:!0}),setTimeout(o,320);return}r?.unmount(),r=null,e.onDialogUnmounted()},hide(){let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.add(`cs-hidden`),t&&t.classList.add(`cs-hidden`)},show(){let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.remove(`cs-hidden`),t&&t.classList.remove(`cs-hidden`)}}}hm();function XSe(e,t,n,r,i){let a=[];e&&a.push(`vfs_grep + vfs_read(搜预注入文档)`),t&&a.push(`${r}(语义检索)`),n&&a.push(`${i}(按 source 加载)`),a.push(`fetch_document(公网 URL)`);let o=[];return e&&o.push(`先 vfs_grep 搜预注入文档(快、静态)`),t&&e?o.push(`不够用 ${r} 语义检索`):t&&o.push(`用 ${r} 语义检索(换不同关键词可多次调用)`),n&&o.push(`需特定文档用 ${i}`),o.push(`公网用 fetch_document`),`你是知识检索专家。可用工具:${a.join(` / `)}。
433
433
 
434
434
  工作方式:
435
435
  1. 分析任务,拆出需查证的要点(如:需要哪些组件、各自的 props 约束、UI 规范要求);