page-agent-sdk 4.25.0 → 4.25.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.
- package/README.md +2 -1
- package/README.zh-CN.md +2 -1
- package/dist/page-agent-sdk.headless.js +16 -4
- package/dist/page-agent-sdk.iife.js +96 -96
- package/dist/page-agent-sdk.js +1030 -1013
- package/dist/page-agent-sdk.legacy.js +359 -341
- package/dist/page-agent-sdk.umd.cjs +7 -7
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/style.css +1 -1
|
@@ -103,7 +103,7 @@ self.onmessage = async (e) => {
|
|
|
103
103
|
`)}`:`虚拟工作区为空。`},{name:`vfs_ls`,description:`列出虚拟工作区所有文件。`,schema:t.z.object({})}),(0,i.tool)(async({pattern:t})=>{let n;try{n=m_(t)}catch(e){return $({code:`GLOB_INVALID`,message:`glob 模式无效: ${e.message}`,hint:`* 匹配非斜杠,** 匹配任意;避免未闭合的字符类`,details:{pattern:t}})}let r=Object.keys(e.files).filter(e=>n.test(e));return r.length?`匹配 ${t}:\n${r.map(e=>`- ${e}`).join(`
|
|
104
104
|
`)}`:`无匹配 ${t} 的文件。`},{name:`vfs_glob`,description:`按 glob 模式匹配虚拟工作区文件名(* 匹配非斜杠,** 匹配任意)。`,schema:t.z.object({pattern:t.z.string().describe(`glob 模式,如 "**/*.md"`)})}),(0,i.tool)(async({pattern:t,path:n})=>{let r;try{r=new RegExp(t)}catch(e){return $({code:`REGEX_INVALID`,path:n,message:`正则表达式无效: ${e.message}`,hint:`检查括号/量词是否闭合;若想搜普通字符串可先转义特殊字符`,details:{pattern:t}})}let i=n?[p_(n)]:Object.keys(e.files),a=[];for(let t of i){let n=e.files[t];n&&n.content.split(`
|
|
105
105
|
`).forEach((e,n)=>{r.test(e)&&a.push(`${t}:${n+1}: ${e}`)})}return a.length?`找到 ${a.length} 处:\n${a.slice(0,50).join(`
|
|
106
|
-
`)}`:`未找到匹配 /${t}/ 的内容。`},{name:`vfs_grep`,description:`在虚拟工作区文件内容中正则搜索。`,schema:t.z.object({pattern:t.z.string().describe(`正则表达式`),path:t.z.string().optional().describe(`限定单个文件,不传则搜索全部`)})}),(0,i.tool)(async({path:t,jsonPath:n})=>{let r=p_(t),i=e.files[r];if(!i)return $({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}"`,hint:`用 vfs_ls 查看虚拟工作区文件列表`});let a;try{a=JSON.parse(i.content)}catch(e){return $({code:`VFS_JSON_INVALID`,path:t,message:`文件内容非合法 JSON: ${e.message}`,hint:`vfs_json_read 要求文件内容是合法 JSON;先 vfs_read 查看实际内容,或 vfs_write({jsonString:true}) 重写为合法 JSON`})}if(n){let e=pm(a,n);return e===void 0?$({code:`VFS_PATH_NOT_FOUND`,path:t,message:`jsonPath "${n}" 不存在`,hint:`不传 jsonPath 整体读查看结构,或核对路径段`}):`${t}#${n} (JSON):\n${JSON.stringify(e)}`}return`${t} (JSON):\n${JSON.stringify(a)}`},{name:`vfs_json_read`,description:`把虚拟工作区文件当 JSON 读取:先 parse 整文件,再按 jsonPath 取子树(省略返整体)。文件非合法 JSON 报 VFS_JSON_INVALID。适合结构化读取 vfs 内大 JSON。`,schema:t.z.object({path:t.z.string().describe(`文件路径(内容须为合法 JSON)`),jsonPath:t.z.string().optional().describe(`点分隔子路径(如 components.0.title);省略读整体`)})}),(0,i.tool)(async({path:t,patches:n})=>{let r=p_(t),i=e.files[r];if(!i)return $({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}"`,hint:`用 vfs_ls 查看虚拟工作区文件列表`});let a;try{a=JSON.parse(i.content)}catch(e){return $({code:`VFS_JSON_INVALID`,path:t,message:`文件内容非合法 JSON: ${e.message}`,hint:`vfs_json_patch 要求文件内容是合法 JSON`})}let o=gm(a),s=[];for(let e of n){let n=Tm(o,e.op,e.jsonPath,e.value);if(n)return $({code:`PATCH_FAILED`,path:t,message:n,hint:`修正 patches 后重试(原文件未改动)`,details:{failedPatch:e}});s.push(e.jsonPath||`(根)`)}let c=JSON.stringify(o);return e.files[r]={content:c,updatedAt:h_()},`已对 ${t} 应用 ${n.length} 个 patch(影响 ${s.length} 处:${s.join(`, `)}),文件现 ${c.length} 字符`},{name:`vfs_json_patch`,description:`在虚拟工作区 JSON 文件内做原子 jsonPath patch(set/remove/merge/append)。先 parse → clone 上应用全部 patches → 任一失败或 JSON 非法则整体不写回(原文件不变)。`,schema:t.z.object({path:t.z.string().describe(`文件路径(内容须为合法 JSON)`),patches:t.z.array(t.z.object({op:t.z.enum([`set`,`remove`,`merge`,`append`]).describe(`操作`),jsonPath:t.z.string().describe(`点分隔路径(如 components.0.title);merge/append 目标可为根(空串)`),value:t.z.any().optional().describe(`set/merge/append 的值(remove 不需要)`)})).describe(`按顺序应用的 patch 列表(原子:任一失败整体不写回)`)})}),(0,i.tool)(async({path:t})=>{let n=p_(t);return e.files[n]?(delete e.files[n],`已删除 ${t}`):$({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}",无需删除`,hint:`用 vfs_ls 查看虚拟工作区文件列表`})},{name:`vfs_rm`,description:`删除虚拟工作区文件(清理中间产物 / drafts 下草稿,补「只进不出」的闭环)。不存在返回 NOT_FOUND。`,schema:t.z.object({path:t.z.string().describe(`要删除的文件路径`)})})]}function v_(e){return{name:`vfs`,tools:__(e),beforeAgent:()=>({files:e.files})}}var y_=`⟦frozen:`,b_=`⟦res:`,x_=`⟧`;function S_(e){return`${y_}${e}${x_}`}function C_(e){return`${b_}${e}${x_}`}function w_(e){return typeof e==`string`?e.startsWith(y_)&&e.endsWith(x_)?{type:`frozen`,path:e.slice(8,e.length-1)}:e.startsWith(b_)&&e.endsWith(x_)?{type:`res`,handle:e.slice(5,e.length-1)}:null:null}function T_(e){return String(e??``).trim().replace(/^\.+/,``)}function E_(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 D_(e,t){return e===t?!0:e&&t&&typeof e==`object`&&typeof t==`object`?JSON.stringify(e)===JSON.stringify(t):!1}function O_(e,t){let n=T_(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 k_=class{vfs;constructor(e){this.vfs=e}key(e){return`resources/${e}.json`}ensure(e,t,n){let r=E_(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(E_(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??E_(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 A_(e){let t=e?.pendingReanchors;if(!e||!t||!t.length)return;let n=t.map(([t,n])=>({o:t,n,spec:e.resourcesByPath.get(t)})).filter(e=>!!e.spec&&e.o!==e.n);for(let t of n)e.resourcesByPath.delete(t.o);for(let t of n)e.resourcesByPath.has(t.n)||e.resourcesByPath.set(t.n,t.spec);t.length=0}function j_(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=gm(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`?S_(e):i?C_(i.ensure(e,o,`verbatim`)):o}let r=t===``?e:e.slice(t.length+1),a=pm(o,r);a!==void 0&&(n.mode===`freeze`?mm(o,r,S_(e)):i&&mm(o,r,C_(i.ensure(e,a,`verbatim`))))}return o}function M_(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 确认当前结构`}:D_(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 N_(e,t,n){if(n===void 0)return;let r=t.split(`.`);for(let i=0;i<r.length-1;i++){if(!/^\d+$/.test(r[i]))continue;let a=r.slice(0,i).join(`.`),o=r.slice(i+1).join(`.`),s=pm(e,a);if(Array.isArray(s))for(let e=0;e<s.length;e++){let a=pm(s[e],o);if(a!==void 0&&D_(a,n)){let n=[...r.slice(0,i),String(e),...r.slice(i+1)].join(`.`);if(n!==t)return n}}}}function P_(e,t,n){let r=n.split(`.`),i=r.findIndex(e=>/^\d+$/.test(e));if(i<0)return!1;let a=r.slice(0,i).join(`.`),o=Number(r[i]),s=pm(e,a),c=pm(t,a);if(!Array.isArray(s)||!Array.isArray(c))return!1;let l=s[o];if(l===void 0)return!1;for(let e=0;e<c.length;e++)if(e!==o&&D_(l,c[e]))return!0;return!1}function F_(e,t,n){let r=t.getBind();t.pendingReanchors&&(t.pendingReanchors.length=0);for(let[i,a]of t.resourcesByPath){let o=pm(r,i),s=N_(e,i,o);s&&t.pendingReanchors?.push([i,s]);let c=pm(e,s??i);if(c===void 0){if(o===void 0)continue;let s=i.split(`.`);if(pm(e,s.length>1?s.slice(0,-1).join(`.`):``)!==void 0&&!P_(e,r,i)){mm(e,i,o);continue}if(!(e&&typeof e==`object`&&s[0]in e)){if(n)continue;mm(e,i,o);continue}let c=a.mode===`freeze`&&!!t.isFieldRequired?.(i);return{ok:!1,code:a.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,path:i,message:`整体替换会移除受保护字段 "${i}"(${a.mode}),已拒绝`,hint:a.mode===`freeze`?`含冻结字段的容器不可整体清空/替换:保留包含该字段的元素(补齐其必填字段,如 type),或逐个 remove 其余元素;彻底移除该字段需集成方调整 data.resources`+(c?`;⚠ 该字段("${i.split(`.`).pop()}")同时是 schema 必填 —— 新建同类元素会因缺它被 schema 拒,此路死锁:勿反复整体替换重试,改用增量 patch 只写非保护字段,或由集成方将保护字段设为可选/给默认值`:``):`含 verbatim 字段的容器不可整体清空/替换:保留包含该字段的元素,或先 resource_delete({path}) 释放保护后再整体替换`}}if(a.mode===`freeze`){if(c===S_(i)){mm(e,i,o);continue}if(!D_(c,o))return{ok:!1,code:`FROZEN_FIELD`,path:i,message:`字段 "${i}" 已冻结(freeze 保护),不可修改`,hint:`该字段由系统/集成方维护,LLM 不得改动。如需展示其值用 resource_get({path}) 取真值`}}else{let n=w_(c);if(n&&n.type===`res`){let r=M_(n.handle,i,o,t.resourceStore);if(`value`in r){mm(e,i,r.value);continue}return{ok:!1,code:r.code,path:i,message:r.message,hint:r.hint}}if(!D_(c,o))return{ok:!1,code:`VERBATIM_MISMATCH`,path:i,message:`字段 "${i}" 为 verbatim 保护(精确原样保留),写入值与原值不符`,hint:`要改该值请先 resource_update({path, value}) 更新资源池,再写回句柄 ⟦res:<handle>⟧;或写回原值(经 resource_get 取到的值)保持不变`}}}return{ok:!0}}function I_(e,t,n){let r=t===void 0?e.message:`patches[${t}]${n?` @ "${n}"`:``}: ${e.message}`;return $({code:e.code,path:e.path,message:r,hint:e.hint,...t===void 0?{}:{details:{patchIndex:t,patchJsonPath:n??null}}})}function L_(e){let{value:t,ctx:n,mergeMode:r}=e;if(!n||!n.resourcesByPath.size)return{ok:!0,value:t};let i=gm(t),a=F_(i,n,r);return a.ok?{ok:!0,value:i}:{ok:!1,error:I_(a)}}function R_(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=O_(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:$({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=F_(n,r);if(!i.ok){let e=z_(i.path,t);return{ok:!1,error:I_(i,e>=0?e:void 0,e>=0?t[e].jsonPath:void 0)}}return{ok:!0}}function z_(e,t){let n=T_(e);for(let e=0;e<t.length;e++){let r=T_(t[e].jsonPath||``);if(r&&(r===n||n.startsWith(r+`.`)||r.startsWith(n+`.`)))return e}return-1}function B_(e,t){if(!e)return null;let n=(t?Cp(e,t):e)?.shape;return n&&typeof n==`object`?Object.keys(n):null}var V_=e=>e&&e.length?`(可用字段:${e.slice(0,12).join(`, `)}${e.length>12?` …`:``})`:``,H_=e=>/[.[]/.test(e)?e.replace(/[.[][^.[]*$/,``):``;function U_(e){let{schema:t,allowKeys:n,value:r,bindRef:i}=e,a=[];if(n){if(typeof r!=`object`||!r||Array.isArray(r))return{ok:!1,error:Wl(``,[{path:[],code:`invalid_type`,message:`整体 set 需为 JSON 对象(当前为 ${Array.isArray(r)?`array`:r===null?`null`:typeof r})`,expected:`object`}]),notices:a};let e=i&&typeof i==`object`&&!Array.isArray(i)?i:{},n=r,o={};for(let r of Object.keys(n)){if(r.startsWith(`__pg`))continue;let i=n[r],s=Dp(t,r,i);if(!s.ok){if(s.resolution===`missing`){if(r in e)continue;return{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${r} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,``))}`,path:r,details:{stripped:[r]}}),notices:a}}return{ok:!1,error:Wl(r,s.issues??[]),notices:a}}s.resolution===`open`&&a.push(`${r}=开放节点放行`);let c=jm(e[r],i,s.data,r);if(c.length)return{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${c.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,H_(String(c[0]))))}`,path:c[0],details:{stripped:c}}),notices:a};o[r]=s.data}return Op(t)&&a.push(`根级 refine/superRefine 不再在 write 时执行(走 capabilities.verify)`),{ok:!0,assembly:o,wholeParsed:null,notices:a}}let o=t.safeParse(r);if(!o.success)return{ok:!1,error:Wl(``,o.error.issues),notices:a};let s=jm(i,r,o.data);return s.length?{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${s.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:s[0],details:{stripped:s}}),notices:a}:{ok:!0,assembly:o.data,wholeParsed:o.data,notices:a}}function W_(e){let{schema:t,bindRef:n,clone:r,patches:i,schemaErrorMode:a=`zod`,appendCaptures:o,moveCaptures:s}=e,c=[],l=t=>{let n=pm(r,t);return n===void 0?e.valueAt?.(t):n},u=t=>{if(!e.protectedFieldNames?.size)return[];let n=new Set;for(let r of t){let t=r,i=t.path?.length?String(t.path[t.path.length-1]):``;t.code===`invalid_type`&&(t.received===void 0||t.received===`undefined`||/required/i.test(t.message??``))&&i&&e.protectedFieldNames.has(i)&&n.add(i)}return[...n]},d=(e,t)=>{let n=u(t),r=n.length?`;⚠ 字段 ${n.join(`/`)} 受保护(freeze/verbatim),agent 读不到其真值 —— 新建元素缺它属预期,勿编造值硬闯:改用不含该字段的增量形态,或由集成方将其设为可选`:``;return a===`schema_invalid`?$({code:`SCHEMA_INVALID`,message:`patches 应用后局部校验失败 @ "${e}",未写入`,hint:`确认该路径的值符合 schema;兄弟节点的既有数据不影响本次写入`+r,details:Ul(t)}):r?$({code:`SCHEMA_INVALID`,path:e,message:`值不符合 "${e}" 的 schema(${t.length} 处问题)`,hint:`用 read({jsonPath:"${e}"}) 查看当前值,按 schema_data() 查看主数据 schema,修正后重试;改大对象优先用 write 的 patch 增量(只发改动部分)${r}`,details:Ul(t)}):Wl(e,t)},f=e=>$({code:`SCHEMA_STRIP`,message:`字段 ${e.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试`,path:e[0],details:{stripped:e}}),p=[];Op(t)&&c.push(`根级 refine/superRefine 不再在 write 时执行(走 capabilities.verify)`);let m=0,h=0;for(let e of i){let i=e.op??`set`,a=e.jsonPath||``;if(i===`remove`){let e=a.lastIndexOf(`.`);if(e>0&&/^\d+$/.test(a.slice(e+1))){let n=a.slice(0,e),i=Ep(t,n);if(i.kind===`schemas`){let e=pm(r,n);if(Array.isArray(e))for(let t of i.schemas){let r=kp(t);if(r!==null&&e.length<r)return{ok:!1,error:d(n,[{path:[n],code:`too_small`,message:`删除后数组长度 ${e.length} 低于 schema 最小约束 ${r}`,expected:`>=${r}`}]),writeBacks:[],notices:c}}}}p.push({op:`remove`,jp:a});continue}if(i===`move`){let n=s[h++];if(n&&n.elem!==void 0){let e=n.toPath.lastIndexOf(`.`),r=e>0&&/^\d+$/.test(n.toPath.slice(e+1))?n.toPath.slice(0,e):n.toPath,i=Ep(t,r);if(i.kind===`schemas`){let e=Ap(i.schemas);if(e.length){let t=[],r=!1;for(let i of e){let e=i.safeParse(n.elem);if(e.success){r=!0;break}t.push(...e.error?.issues??[])}if(!r)return{ok:!1,error:d(n.toPath,t),writeBacks:[],notices:c}}}else i.kind===`open`&&c.push(`${r}=开放节点放行`)}p.push({op:`move`,jp:a,toPath:String(e.value)});continue}if(i===`append`){let e=o[m++]?.elems??[],n=pm(r,a);if(typeof n==`string`&&typeof e[0]==`string`){let r=e[0],i=Ep(t,a);if(i.kind===`missing`)return{ok:!1,error:f([a]),writeBacks:[],notices:c};let o=n;if(i.kind!==`open`){let e=i.schemas.map(e=>e.safeParse(o)).find(e=>!e.success);if(e)return{ok:!1,error:d(a,e.error?.issues??[]),writeBacks:[],notices:c}}p.push({op:`appendStr`,jp:a,str:r});continue}if(!e.length){p.push({op:`appendElems`,jp:a,elems:[]});continue}let i=Ep(t,a);if(i.kind===`missing`)return{ok:!1,error:f([a||`(根)`]),writeBacks:[],notices:c};if(i.kind===`open`){c.push(`${a||`(根)`}=开放节点放行`),p.push({op:`appendElems`,jp:a,elems:e});continue}let s=Ap(i.schemas);if(!s.length){c.push(`${a||`(根)`}:目标非 schema 声明数组,元素未校验放行`),p.push({op:`appendElems`,jp:a,elems:e});continue}let l=[];for(let t=0;t<e.length;t++){let n=[],r,i=!1;for(let a of s){let o=a.safeParse(e[t]);if(o.success){i=!0,r=o.data;break}n.push(...o.error?.issues??[])}if(!i)return{ok:!1,error:d(`${a||`(根)`}[新增元素${t}]`,n),writeBacks:[],notices:c};let o=jm(void 0,e[t],r,a?`${a}.${t}`:String(t));if(o.length)return{ok:!1,error:f(o),writeBacks:[],notices:c};l.push(r)}p.push({op:`appendElems`,jp:a,elems:l});continue}if(i===`merge`){let r=e.value;if(typeof r==`string`){let e=vm(r);if(e.parseError)return{ok:!1,error:Gl(`patches merge`,r,e.parseError),writeBacks:[],notices:c};r=e.parsed}if(typeof r!=`object`||!r||Array.isArray(r))return{ok:!1,error:$({code:`PATCH_FAILED`,message:`merge 的 value 需为对象`,hint:`merge 合并对象键;整体替换用 set`}),writeBacks:[],notices:c};let i=[];for(let e of Object.keys(r)){if(e.startsWith(`__pg`)||um.has(e))continue;let r=a?`${a}.${e}`:e,o=l(r),s=Dp(t,r,o);if(!s.ok){if(s.resolution===`missing`){if(pm(n,r)===void 0)return{ok:!1,error:f([r]),writeBacks:[],notices:c};i.push([e,o]);continue}return{ok:!1,error:d(r,s.issues??[]),writeBacks:[],notices:c}}s.resolution===`open`&&c.push(`${r}=开放节点放行`);let u=jm(pm(n,r),o,s.data,r);if(u.length)return{ok:!1,error:f(u),writeBacks:[],notices:c};i.push([e,s.data])}p.push({op:`mergeKeys`,jp:a,entries:i});continue}let u=l(a),g=a.lastIndexOf(`.`);if(g>0&&/^\d+$/.test(a.slice(g+1))){let e=pm(r,a.slice(0,g));if(Array.isArray(e)){for(let t=0;t<e.length;t++)if(!(t in e))return{ok:!1,error:$({code:`PATCH_FAILED`,message:`set @ "${a}" 越界数组索引产生稀疏空洞(父数组长度 ${e.length})`,hint:`数组索引须连续(≤ 当前长度);追加请用 op:"append"`}),writeBacks:[],notices:c}}}let _=Dp(t,a,u);if(!_.ok){if(_.resolution===`missing`){if(pm(n,a)===void 0)return{ok:!1,error:f([a]),writeBacks:[],notices:c};p.push({op:`set`,jp:a,value:u});continue}return{ok:!1,error:d(a,_.issues??[]),writeBacks:[],notices:c}}_.resolution===`open`&&c.push(`${a||`(根)`}=开放节点放行`);let v=jm(pm(n,a),u,_.data,a);if(v.length)return{ok:!1,error:f(v),writeBacks:[],notices:c};p.push({op:`set`,jp:a,value:_.data})}return{ok:!0,writeBacks:p,notices:c}}function G_(e){let{bindRef:t,schema:n,allowKeys:r,snapshots:i,maxSnapshots:a,audit:o,dryRun:s,op:c=`set`,protectedCtx:l,snapshotLabel:u}=e,d=e.value,f=e.internalAfterWrite?gm(mg(t)):null,p=q_(d);if(p)return{ok:!1,error:J_(p)};if(l){let e=L_({value:d,ctx:l,mergeMode:!!r});if(!e.ok)return{ok:!1,error:e.error};d=e.value}let m=U_({schema:n,allowKeys:r,value:d,bindRef:t});if(!m.ok)return{ok:!1,error:m.error};let h=m.assembly;if(s)return{ok:!0,hash:``,data:h,notices:m.notices};if(typeof t!=`object`||!t)return{ok:!1,error:$({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${t===null?`null`:typeof t}),无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹(如 {value:"x"})或集成方通过 sdk.setData 替换 bind`})};let g=gm(mg(t)),_=i.length?i[i.length-1].id+1:1;for(i.push({id:_,ts:Date.now(),op:c,value:g,...u?{label:u}:{}});i.length>a;)i.shift();return typeof h==`object`&&h&&(m.wholeParsed?Am(t,h):fm(t,h)),o({op:c,value:h,timestamp:Date.now()}),e.onWrite?.(),e.internalAfterWrite?.(t,f),A_(l),{ok:!0,hash:e.hashFn?e.hashFn():Cm(mg(t)),data:h,notices:m.notices}}function K_(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?gm(mg(t)):null,p=gm(mg(t)),m=[],h=[],g=[],_=[],v=(e,t)=>{(e===`set`||e===`merge`)&&_.push({jp:t,val:pm(p,t)})};for(let e=0;e<n.length;e++){let t=n[e],a=t.jsonPath||``;if(dm(a))return{ok:!1,error:$({code:`PATH_UNSAFE`,message:`patches[${e}] jsonPath "${a}" 含非法段`,hint:`使用正常属性路径,如 components.0.text`})};if(!xp(a,r,i))return{ok:!1,error:$({code:`PATH_DENIED`,message:`patches[${e}] @ "${a}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可写${V_(B_(r,H_(a)))}`})};let o=t.op??`set`,s;if(o!==`remove`){if(t.value===void 0||t.value===``&&o===`move`)return{ok:!1,error:$({code:`MISSING_VALUE`,message:`patches[${e}] ${o} 操作需要 value`,hint:`op 为 ${o} 时 value 必填;删除请用 op:'remove'`})};let n=vm(t.value);if(n.parseError)return{ok:!1,error:Gl(`patches[${e}]`,t.value,n.parseError)};if(s=n.parsed,o!==`move`){let t=q_(s);if(t)return{ok:!1,error:J_(t,`patches[${e}] @ "${a}"`)}}if(o===`move`&&typeof s==`string`&&!xp(s,r,i))return{ok:!1,error:$({code:`PATH_DENIED`,message:`patches[${e}] move 目标 "${s}" 不在 schema 声明字段内`,hint:`move 的 value(目标路径)也须在 schema 声明字段内${V_(B_(r,H_(String(s))))}`})}}o===`append`&&h.push({jp:a,elems:Array.isArray(s)?[...s]:[s]}),o===`move`&&g.push({jp:a,toPath:String(s),elem:pm(p,a)});let c=Tm(p,o,a,s);if(c)return{ok:!1,error:$({code:`PATCH_FAILED`,message:`patches[${e}]: ${c}`,hint:`检查 op 与目标类型:merge 需对象,append 需数组或字符串`})};v(o,a),m.push({op:o,jp:a,value:s})}if(d){let e=R_({patches:n,clone:p,ctx:d});if(!e.ok)return{ok:!1,error:e.error}}let y=d?new Set([...d.resourcesByPath.keys()].map(e=>e.split(`.`).pop()).filter(Boolean)):void 0,b=W_({schema:r,bindRef:t,clone:p,patches:n,schemaErrorMode:c,appendCaptures:h,moveCaptures:g,valueAt:e=>_.find(t=>t.jp===e)?.val,...y?{protectedFieldNames:y}:{}});if(!b.ok)return{ok:!1,error:b.error};if(u)return{ok:!0,applied:m,clone:p,notices:b.notices};let x=a.length?a[a.length-1].id+1:1;for(a.push({id:x,ts:Date.now(),op:`edit`,value:f??gm(mg(t)),...l?{label:l}:{}});a.length>o;)a.shift();let S=new Set(b.writeBacks.filter(e=>e.op===`set`).map(e=>e.jp));for(let e of b.writeBacks)if(!((e.op===`appendElems`||e.op===`appendStr`)&&S.has(e.jp))){if(e.op===`remove`)hm(t,e.jp);else if(e.op===`set`)mm(t,e.jp,e.value);else if(e.op===`move`)Dm(t,e.jp,e.toPath);else if(e.op===`mergeKeys`){let n=e.jp?pm(t,e.jp):t;if(n&&typeof n==`object`&&!Array.isArray(n))for(let[t,r]of e.entries??[])n[t]=r}else if(e.op===`appendElems`){let n=e.jp?pm(t,e.jp):t;Array.isArray(n)&&e.elems?.length&&n.push(...e.elems)}else if(e.op===`appendStr`){let n=e.jp?pm(t,e.jp):t;typeof n==`string`&&typeof e.str==`string`&&mm(t,e.jp,n+e.str)}}return e.internalAfterWrite?.(t,f),A_(d),s?.(),{ok:!0,applied:m,clone:p,notices:b.notices}}function q_(e){let t=/^<[A-Za-z_][\w.-]*\s[\d.]+[KMG]?B>$/,n=e=>{if(typeof e==`string`)return e.includes(`<subtree `)||t.test(e)?e.slice(0,60):null;if(Array.isArray(e)){for(let t of e){let e=n(t);if(e)return e}return null}if(e&&typeof e==`object`)for(let t of Object.values(e)){let e=n(t);if(e)return e}return null};return n(e)}var J_=(e,t)=>$({code:`PLACEHOLDER_LEAK`,path:t||void 0,message:`写入值包含摘要占位符 "${e}"(read/query 为省上下文返回的体积占位,非真实数据),已拒绝写入`,hint:`占位符子树的真实内容需先窄读获取:read({jsonPath:"<该子树路径>"}) 结果根豁免返回全文;聚焦该区域可用 set_focus。基于真实值重新构造写入内容`});function Y_(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}var X_=3072;function Z_(e){return typeof e==`string`?e.length+2:typeof e==`number`||typeof e==`boolean`?8:4}function Q_(e,t,n,r,i){if(!t||e==null)return e;let a=new Set(n.map(e=>e.field)),o=r,s=X_,c=i?.rootExempt??!1,l=i?.rootPath??``,u=i?.fullTextPrefixes??[],d=gm(e),f=i?.onSummarized,p=e=>u.some(t=>t&&(e===t||e.startsWith(t+`.`)||e.startsWith(t+`[`))),m=(e,t)=>{let n=`#`+String(Cm(e)).slice(0,8);if(Array.isArray(e))return`<subtree ${Y_(t)} children:${e.length} ${n}>`;let r=Object.keys(e),i=r.slice(0,6).join(`,`)+(r.length>6?`,…`:``);return`<subtree ${Y_(t)} keys:[${i}] ${n}>`},h=(e,t,n)=>{if(typeof e!=`object`||!e)return{node:e,eff:Z_(e)};if(p(t))return{node:e,eff:40};if(Array.isArray(e)){let r=2;for(let n=0;n<e.length;n++){let i=h(e[n],`${t}.${n}`,!1);e[n]=i.node,r+=i.eff}return!(n&&c)&&r>=s?(f?.(t),{node:m(e,r),eff:40}):{node:e,eff:r}}let r=2;for(let n of Object.keys(e)){let i=e[n],s=t?`${t}.${n}`:n;if(typeof i==`string`&&a.has(n)&&i.length>=o&&!p(s))e[n]=`<${n} ${Y_(i.length)}>`,f?.(s),r+=e[n].length+n.length+2;else{let t=h(i,s,!1);e[n]=t.node,r+=t.eff+n.length+2}}return!(n&&c)&&r>=s?(f?.(t),{node:m(e,r),eff:40}):{node:e,eff:r}};return h(d,l,!0).node}var $_=0;function ev(){return $_++,`c_`+Math.random().toString(36).slice(2,8)+$_.toString(36)}function tv(e,t){if(!(!e||typeof e!=`object`))for(let n of t){let t=pm(e,n);if(Array.isArray(t))for(let e of t)e&&typeof e==`object`&&!(`__pgId`in e)&&(e.__pgId=ev())}}function nv(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 rv(e,n={}){let r=n.pgIdPaths??[],a=n.sandboxRunner??Sd,o=r.length?(e,t)=>{if(t&&typeof t==`object`)for(let n of r){let r=pm(t,n),i=pm(e,n);if(!Array.isArray(r)||!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<r.length;e++){if(o.has(e))continue;let n=r[e];if(!(!n||typeof n!=`object`||!n.__pgId)&&D_(a(n),a(t))){t.__pgId=n.__pgId,o.add(e);break}}}for(let e=0;e<r.length&&e<i.length;e++){if(o.has(e))continue;let t=r[e]?.__pgId,n=i[e];t&&n&&typeof n==`object`&&!(`__pgId`in n)&&(n.__pgId=t,o.add(e))}}tv(e,r)}:void 0,s=r.length?Jp(e.schema,r).schema:e.schema,c=e.bind,l=()=>mg(c),u=e.description??`主数据对象`,d=bp(s),f=new Map,p=n.vfsStore?new k_(n.vfsStore):void 0;function m(e){if(f.clear(),e)for(let t of e){let e=T_(t.path);f.set(e,{path:e,mode:t.mode})}}m(e.resources);let h=f.size?{resourcesByPath:f,resourceStore:p,getBind:()=>c,pendingReanchors:[],isFieldRequired:e=>{let t=e.split(`.`),n=t[t.length-1],r=(t.length>1?Cp(s,t.slice(0,-1).join(`.`)):s)?.shape?.[n];return!!r&&typeof r.isOptional==`function`&&!r.isOptional()}}:void 0,g=[],_=n.maxSnapshots??20,v=new Map,y=``,b=e=>e?.configurable?.__pgDataScope??y,x=e=>{let t=e?.configurable?.__pgFullTextPaths;return Array.isArray(t)?t.map(String):void 0},S=new Set,C=e=>{for(S.add(e);S.size>500;)S.delete(S.values().next().value)},w=e=>v.get(e??y),T=(e,t)=>{let n=t??y;e===void 0?v.delete(n):v.set(n,e)},E=n.conflictWatchFields??[],D=!E.includes(`*`)&&E.length?new Set(E):void 0,O=E.length>0,k=()=>D?wm(l(),D):Cm(l()),A=(n.maxParallelTools??1)>1&&O,j=!1,M=[];async function ee(){if(!A)return{release:()=>{},reacquire:async()=>{}};j?await new Promise(e=>M.push(e)):j=!0;let e=!0;return{release:()=>{if(!e)return;e=!1;let t=M.shift();t?t():j=!1},reacquire:async()=>{e||=(j?await new Promise(e=>M.push(e)):j=!0,!0)}}}(n.maxParallelTools??1)>1&&!O&&console.warn(`[page-agent-sdk] maxParallelTools>1 且未声明 conflictWatchFields:并发写不互锁(后写覆盖前写,既有明文语义);声明 conflictWatchFields 后自动启用写互锁与乐观锁校验`);let N=e=>{let t=k();return T(t,e),t},te=n.largeTextThreshold??200,ne=(n.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),P=!0;function re(){P=!0}let ie={get:()=>({schema:s,bind:c,description:u}),set:e=>{s=r.length?Jp(e.schema,r).schema:e.schema,c=e.bind,u=e.description??`主数据对象`,d=bp(s),g.length=0,v.clear(),m(e.resources),p?.clear(),re()},update:e=>{c=e,g.length=0,v.clear(),re()},markDataDirty:re,consumeDataDirty:()=>{let e=P;return P=!1,e},enterScope:e=>{let t=y;return y=e,()=>{y=t}},exitScope:e=>{v.delete(e)},recomputeBaseline:e=>{v.set(e??``,k())},recomputeAllBaselines:()=>{let e=k();for(let t of v.keys())v.set(t,e)},hasBaselines:()=>v.size>0,getSummarizedPaths:()=>[...S],clearSummarizedPaths:()=>S.clear(),getResourcesSnapshot:()=>{let e=[];for(let[t,n]of f)if(n.mode===`verbatim`){let r=p?.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:p?(e,t)=>{let n=T_(e),r=f.get(n),i=t===void 0?pm(c,n):t;return p.ensure(n,i,r?.mode??`verbatim`)}:void 0,getResource:p?e=>{let t=p.get(e);return t?{path:t.path,mode:t.mode,value:t.value,handle:t.handle}:void 0}:void 0,updateResource:p?(e,t)=>{let n=T_(e);p.update(n,t),mm(c,n,t),re(),T(k(),``)}:void 0,deleteResource:p?e=>p.delete(e):void 0,listResources:p?()=>p.list():void 0},F=e=>{n.onAudit?.(e)};function ae(e,t){let n=gm(l()),r=g.length?g[g.length-1].id+1:1;for(g.push({id:r,ts:Date.now(),op:e,label:t,value:n});g.length>_;)g.shift();return r}async function I(e,t,r,i,a){if(!t||t===``)return null;let o=k();if(o===t)return null;if(!n.onConflict)return $({code:`VERSION_CONFLICT`,message:`乐观锁冲突:expectedHash=${t} 但当前 hash=${o}。主数据在你 read 之后已被修改(外部代码/其他 agent/用户手动改)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入。当前值:${xm(l(),400)}`});i?.release();let s=g.length?g[g.length-1].id:0,u=await n.onConflict({op:e,agentValue:r,currentValue:c,currentHash:o,expectedHash:t,snapshotId:s});if(u.action===`keep_external`)return`已保留外部修改(未写入)。当前值:${xm(l(),400)} (hash=${o})。请重新 read 拿最新值与 hash 再改。`;if(u.action===`restore`){await i?.reacquire();let e=k();if(e!==o)return F({op:`conflict_recheck`,detail:`restore 裁决基于 ${o} 恢复时 ${e}(ask 窗口新修改落地,回退被拦)`,timestamp:Date.now()}),$({code:`VERSION_CONFLICT`,message:`restore 裁决恢复点校验失败:裁决基于 hash=${o},恢复时主数据已变为 hash=${e}(裁决等待期间又有新修改落地,裁决者未见过)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入(单次校验,不再二次挂起)。`});if(!g.length)return`无历史快照可回退(本次为首次操作)。当前值:${xm(l(),400)} (hash=${o})。请重新 read 再改或选「强制覆盖」。`;let t=s?g.find(e=>e.id===s):void 0;if(!t)return $({code:`SNAPSHOT_STALE`,message:`restore 裁决所锚定的快照 #${s} 已不在快照栈(可能被 maxSnapshots 淘汰)`,hint:`重新 read 拿最新值,或用 restore_data 显式指定快照 id 回退`});km(c,gm(t.value)),re();let n=k();return T(n,a),`已回退主数据到历史快照 #${t.id}[${t.op}]。当前值:${xm(l(),400)} (hash=${n})。请基于回退后的值重写或停止。`}await i?.reacquire();let d=k();return d===o?(T(d,a),null):(F({op:`conflict_recheck`,detail:`裁决基于 ${o} 恢复时 ${d}(ask 窗口新修改落地,overwrite 被拦)`,timestamp:Date.now()}),$({code:`VERSION_CONFLICT`,message:`裁决恢复点校验失败:裁决基于 hash=${o},恢复时主数据已变为 hash=${d}(裁决等待期间又有新修改落地,裁决者未见过)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入(单次校验,不再二次挂起)。`}))}let oe=(e,t=!0)=>{e.writeCapable=t},se=(0,i.tool)(async({id:e},t)=>{let n=b(t),r=await ee();try{if(!g.length)return $({code:`NO_SNAPSHOT`,message:`无快照可回退`,hint:`write 各写意图会自动存快照;或 history_data({list:true}) 查看可用快照`});let t=e===void 0?g[g.length-1]:g.find(t=>t.id===e);if(!t)return $({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`用 history_data({list:true}) 查看可用快照序号`});let r=s.safeParse(t.value);r.success||F({op:`restore`,detail:`#${t.id} 快照含当前 schema 违例 ${r.error.issues.length} 处(历史既有数据非本次写入,放行回退)`,timestamp:Date.now()});let i=[];if(h&&h.resourcesByPath.size)for(let[e]of h.resourcesByPath){let n=pm(c,e);D_(n,pm(t.value,e))||i.push({p:e,cur:n})}if(!i.length)return km(c,gm(t.value)),re(),F({op:`restore`,detail:`#${t.id}`,timestamp:Date.now()}),T(k(),n),`已回退主数据到快照 #${t.id}[${t.op}]${t.label?`(${t.label})`:``}。`;let a=i.map(({p:e})=>{let t=H_(e),n=t?pm(c,`${t}.__pgId`):void 0;return{p:e,parent:t,pgId:typeof n==`string`?n:void 0}}).map(e=>({...e,val:e.p?pm(c,e.p):void 0}));km(c,gm(t.value));let o=[],l=[];for(let e of a){let t=e.p.slice(e.p.lastIndexOf(`.`)+1),n=e.p;if(e.pgId){let r=H_(e.parent),i=r?pm(c,r):c,a=Array.isArray(i)?i.findIndex(t=>t?.__pgId===e.pgId):-1;if(a<0){l.push(e.p);continue}n=`${r?`${r}.${a}`:String(a)}.${t}`}else if(e.parent&&pm(c,e.parent)===void 0){l.push(e.p);continue}e.val===void 0?l.push(e.p):mm(c,n,e.val),o.push(e.p)}re(),F({op:`restore`,detail:`#${t.id}(保护字段保留 ${o.length}${l.length?`,未能回填 ${l.length}`:``})`,timestamp:Date.now()}),T(k(),n);let u=l.length?`;⚠ 以下保护字段未能回填当前值(快照窗口内元素已变/已删,保留快照旧值,请由宿主侧核对):${l.join(`、`)}`:``;return`已回退主数据到快照 #${t.id}[${t.op}]${t.label?`(${t.label})`:``}。⚠ 受保护字段保留当前值未回退:${o.join(`、`)}(freeze/verbatim 由宿主管辖,快照旧值不覆盖;history_data 看到的是快照原值,实际结果以 read 为准)${u}`}finally{r.release()}},{name:`restore_data`,description:`把主数据回退到某个快照(不传 id 回退最近一次)。快照列表用 history_data({list:true})。`,schema:t.z.object({id:t.z.number().int().optional().describe(`快照序号;不传回退最近一次`)})});oe(se);let ce=(0,i.tool)(async({id:e,jsonPath:t,list:n})=>{if(n){if(!g.length)return`无快照。set/edit/delete 会自动存快照。`;let e=g.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`主数据快照时间线(共 ${g.length} 条,默认最近一次):\n${e.join(`
|
|
106
|
+
`)}`:`未找到匹配 /${t}/ 的内容。`},{name:`vfs_grep`,description:`在虚拟工作区文件内容中正则搜索。`,schema:t.z.object({pattern:t.z.string().describe(`正则表达式`),path:t.z.string().optional().describe(`限定单个文件,不传则搜索全部`)})}),(0,i.tool)(async({path:t,jsonPath:n})=>{let r=p_(t),i=e.files[r];if(!i)return $({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}"`,hint:`用 vfs_ls 查看虚拟工作区文件列表`});let a;try{a=JSON.parse(i.content)}catch(e){return $({code:`VFS_JSON_INVALID`,path:t,message:`文件内容非合法 JSON: ${e.message}`,hint:`vfs_json_read 要求文件内容是合法 JSON;先 vfs_read 查看实际内容,或 vfs_write({jsonString:true}) 重写为合法 JSON`})}if(n){let e=pm(a,n);return e===void 0?$({code:`VFS_PATH_NOT_FOUND`,path:t,message:`jsonPath "${n}" 不存在`,hint:`不传 jsonPath 整体读查看结构,或核对路径段`}):`${t}#${n} (JSON):\n${JSON.stringify(e)}`}return`${t} (JSON):\n${JSON.stringify(a)}`},{name:`vfs_json_read`,description:`把虚拟工作区文件当 JSON 读取:先 parse 整文件,再按 jsonPath 取子树(省略返整体)。文件非合法 JSON 报 VFS_JSON_INVALID。适合结构化读取 vfs 内大 JSON。`,schema:t.z.object({path:t.z.string().describe(`文件路径(内容须为合法 JSON)`),jsonPath:t.z.string().optional().describe(`点分隔子路径(如 components.0.title);省略读整体`)})}),(0,i.tool)(async({path:t,patches:n})=>{let r=p_(t),i=e.files[r];if(!i)return $({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}"`,hint:`用 vfs_ls 查看虚拟工作区文件列表`});let a;try{a=JSON.parse(i.content)}catch(e){return $({code:`VFS_JSON_INVALID`,path:t,message:`文件内容非合法 JSON: ${e.message}`,hint:`vfs_json_patch 要求文件内容是合法 JSON`})}let o=gm(a),s=[];for(let e of n){let n=Tm(o,e.op,e.jsonPath,e.value);if(n)return $({code:`PATCH_FAILED`,path:t,message:n,hint:`修正 patches 后重试(原文件未改动)`,details:{failedPatch:e}});s.push(e.jsonPath||`(根)`)}let c=JSON.stringify(o);return e.files[r]={content:c,updatedAt:h_()},`已对 ${t} 应用 ${n.length} 个 patch(影响 ${s.length} 处:${s.join(`, `)}),文件现 ${c.length} 字符`},{name:`vfs_json_patch`,description:`在虚拟工作区 JSON 文件内做原子 jsonPath patch(set/remove/merge/append)。先 parse → clone 上应用全部 patches → 任一失败或 JSON 非法则整体不写回(原文件不变)。`,schema:t.z.object({path:t.z.string().describe(`文件路径(内容须为合法 JSON)`),patches:t.z.array(t.z.object({op:t.z.enum([`set`,`remove`,`merge`,`append`]).describe(`操作`),jsonPath:t.z.string().describe(`点分隔路径(如 components.0.title);merge/append 目标可为根(空串)`),value:t.z.any().optional().describe(`set/merge/append 的值(remove 不需要)`)})).describe(`按顺序应用的 patch 列表(原子:任一失败整体不写回)`)})}),(0,i.tool)(async({path:t})=>{let n=p_(t);return e.files[n]?(delete e.files[n],`已删除 ${t}`):$({code:`NOT_FOUND`,path:t,message:`未找到文件 "${t}",无需删除`,hint:`用 vfs_ls 查看虚拟工作区文件列表`})},{name:`vfs_rm`,description:`删除虚拟工作区文件(清理中间产物 / drafts 下草稿,补「只进不出」的闭环)。不存在返回 NOT_FOUND。`,schema:t.z.object({path:t.z.string().describe(`要删除的文件路径`)})})]}function v_(e){return{name:`vfs`,tools:__(e),beforeAgent:()=>({files:e.files})}}var y_=`⟦frozen:`,b_=`⟦res:`,x_=`⟧`;function S_(e){return`${y_}${e}${x_}`}function C_(e){return`${b_}${e}${x_}`}function w_(e){return typeof e==`string`?e.startsWith(y_)&&e.endsWith(x_)?{type:`frozen`,path:e.slice(8,e.length-1)}:e.startsWith(b_)&&e.endsWith(x_)?{type:`res`,handle:e.slice(5,e.length-1)}:null:null}function T_(e){return String(e??``).trim().replace(/^\.+/,``)}function E_(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 D_(e,t){return e===t?!0:e&&t&&typeof e==`object`&&typeof t==`object`?JSON.stringify(e)===JSON.stringify(t):!1}function O_(e,t){let n=T_(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 k_=class{vfs;constructor(e){this.vfs=e}key(e){return`resources/${e}.json`}ensure(e,t,n){let r=E_(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(E_(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??E_(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 A_(e){let t=e?.pendingReanchors;if(!e||!t||!t.length)return;let n=t.map(([t,n])=>({o:t,n,spec:e.resourcesByPath.get(t)})).filter(e=>!!e.spec&&e.o!==e.n);for(let t of n)e.resourcesByPath.delete(t.o);for(let t of n)e.resourcesByPath.has(t.n)||e.resourcesByPath.set(t.n,t.spec);t.length=0}function j_(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=gm(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`?S_(e):i?C_(i.ensure(e,o,`verbatim`)):o}let r=t===``?e:e.slice(t.length+1),a=pm(o,r);a!==void 0&&(n.mode===`freeze`?mm(o,r,S_(e)):i&&mm(o,r,C_(i.ensure(e,a,`verbatim`))))}return o}function M_(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 确认当前结构`}:D_(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 N_(e,t,n){if(n===void 0)return;let r=t.split(`.`);for(let i=0;i<r.length-1;i++){if(!/^\d+$/.test(r[i]))continue;let a=r.slice(0,i).join(`.`),o=r.slice(i+1).join(`.`),s=pm(e,a);if(Array.isArray(s))for(let e=0;e<s.length;e++){let a=pm(s[e],o);if(a!==void 0&&D_(a,n)){let n=[...r.slice(0,i),String(e),...r.slice(i+1)].join(`.`);if(n!==t)return n}}}}function P_(e,t,n){let r=n.split(`.`),i=r.findIndex(e=>/^\d+$/.test(e));if(i<0)return!1;let a=r.slice(0,i).join(`.`),o=Number(r[i]),s=pm(e,a),c=pm(t,a);if(!Array.isArray(s)||!Array.isArray(c))return!1;let l=s[o];if(l===void 0)return!1;for(let e=0;e<c.length;e++)if(e!==o&&D_(l,c[e]))return!0;return!1}function F_(e,t,n){let r=t.getBind();t.pendingReanchors&&(t.pendingReanchors.length=0);for(let[i,a]of t.resourcesByPath){let o=pm(r,i),s=N_(e,i,o);s&&t.pendingReanchors?.push([i,s]);let c=pm(e,s??i);if(c===void 0){if(o===void 0)continue;let s=i.split(`.`);if(pm(e,s.length>1?s.slice(0,-1).join(`.`):``)!==void 0&&!P_(e,r,i)){mm(e,i,o);continue}if(!(e&&typeof e==`object`&&s[0]in e)){if(n)continue;mm(e,i,o);continue}let c=a.mode===`freeze`&&!!t.isFieldRequired?.(i);return{ok:!1,code:a.mode===`freeze`?`FROZEN_FIELD`:`VERBATIM_PROTECTED`,path:i,message:`整体替换会移除受保护字段 "${i}"(${a.mode}),已拒绝`,hint:a.mode===`freeze`?`含冻结字段的容器不可整体清空/替换:保留包含该字段的元素(补齐其必填字段,如 type),或逐个 remove 其余元素;彻底移除该字段需集成方调整 data.resources`+(c?`;⚠ 该字段("${i.split(`.`).pop()}")同时是 schema 必填 —— 新建同类元素会因缺它被 schema 拒,此路死锁:勿反复整体替换重试,改用增量 patch 只写非保护字段,或由集成方将保护字段设为可选/给默认值`:``):`含 verbatim 字段的容器不可整体清空/替换:保留包含该字段的元素,或先 resource_delete({path}) 释放保护后再整体替换`}}if(a.mode===`freeze`){if(c===S_(i)){mm(e,i,o);continue}if(!D_(c,o))return{ok:!1,code:`FROZEN_FIELD`,path:i,message:`字段 "${i}" 已冻结(freeze 保护),不可修改`,hint:`该字段由系统/集成方维护,LLM 不得改动。如需展示其值用 resource_get({path}) 取真值`}}else{let n=w_(c);if(n&&n.type===`res`){let r=M_(n.handle,i,o,t.resourceStore);if(`value`in r){mm(e,i,r.value);continue}return{ok:!1,code:r.code,path:i,message:r.message,hint:r.hint}}if(!D_(c,o))return{ok:!1,code:`VERBATIM_MISMATCH`,path:i,message:`字段 "${i}" 为 verbatim 保护(精确原样保留),写入值与原值不符`,hint:`要改该值请先 resource_update({path, value}) 更新资源池,再写回句柄 ⟦res:<handle>⟧;或写回原值(经 resource_get 取到的值)保持不变`}}}return{ok:!0}}function I_(e,t,n){let r=t===void 0?e.message:`patches[${t}]${n?` @ "${n}"`:``}: ${e.message}`;return $({code:e.code,path:e.path,message:r,hint:e.hint,...t===void 0?{}:{details:{patchIndex:t,patchJsonPath:n??null}}})}function L_(e){let{value:t,ctx:n,mergeMode:r}=e;if(!n||!n.resourcesByPath.size)return{ok:!0,value:t};let i=gm(t),a=F_(i,n,r);return a.ok?{ok:!0,value:i}:{ok:!1,error:I_(a)}}function R_(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=O_(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:$({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=F_(n,r);if(!i.ok){let e=z_(i.path,t);return{ok:!1,error:I_(i,e>=0?e:void 0,e>=0?t[e].jsonPath:void 0)}}return{ok:!0}}function z_(e,t){let n=T_(e);for(let e=0;e<t.length;e++){let r=T_(t[e].jsonPath||``);if(r&&(r===n||n.startsWith(r+`.`)||r.startsWith(n+`.`)))return e}return-1}function B_(e,t){if(!e)return null;let n=t?Cp(e,t):e;if(!n)return null;let r=n?.shape;if(r&&typeof r==`object`)return Object.keys(r);let i=n?.options;if(Array.isArray(i)){let e=new Set;for(let t of i){let n=t?.shape;if(n&&typeof n==`object`)for(let t of Object.keys(n))e.add(t)}return e.size?[...e]:null}return null}var V_=e=>e&&e.length?`(可用字段:${e.slice(0,12).join(`, `)}${e.length>12?` …`:``})`:``,H_=e=>/[.[]/.test(e)?e.replace(/[.[][^.[]*$/,``):``;function U_(e){let{schema:t,allowKeys:n,value:r,bindRef:i}=e,a=[];if(n){if(typeof r!=`object`||!r||Array.isArray(r))return{ok:!1,error:Wl(``,[{path:[],code:`invalid_type`,message:`整体 set 需为 JSON 对象(当前为 ${Array.isArray(r)?`array`:r===null?`null`:typeof r})`,expected:`object`}]),notices:a};let e=i&&typeof i==`object`&&!Array.isArray(i)?i:{},n=r,o={};for(let r of Object.keys(n)){if(r.startsWith(`__pg`))continue;let i=n[r],s=Dp(t,r,i);if(!s.ok){if(s.resolution===`missing`){if(r in e)continue;return{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${r} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,``))}`,path:r,details:{stripped:[r]}}),notices:a}}return{ok:!1,error:Wl(r,s.issues??[]),notices:a}}s.resolution===`open`&&a.push(`${r}=开放节点放行`);let c=jm(e[r],i,s.data,r);if(c.length)return{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${c.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,H_(String(c[0]))))}`,path:c[0],details:{stripped:c}}),notices:a};o[r]=s.data}return Op(t)&&a.push(`根级 refine/superRefine 不再在 write 时执行(走 capabilities.verify)`),{ok:!0,assembly:o,wholeParsed:null,notices:a}}let o=t.safeParse(r);if(!o.success)return{ok:!1,error:Wl(``,o.error.issues),notices:a};let s=jm(i,r,o.data);return s.length?{ok:!1,error:$({code:`SCHEMA_STRIP`,message:`字段 ${s.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,H_(String(s[0]))))}`,path:s[0],details:{stripped:s}}),notices:a}:{ok:!0,assembly:o.data,wholeParsed:o.data,notices:a}}function W_(e){let{schema:t,bindRef:n,clone:r,patches:i,schemaErrorMode:a=`zod`,appendCaptures:o,moveCaptures:s}=e,c=[],l=t=>{let n=pm(r,t);return n===void 0?e.valueAt?.(t):n},u=t=>{if(!e.protectedFieldNames?.size)return[];let n=new Set;for(let r of t){let t=r,i=t.path?.length?String(t.path[t.path.length-1]):``;t.code===`invalid_type`&&(t.received===void 0||t.received===`undefined`||/required/i.test(t.message??``))&&i&&e.protectedFieldNames.has(i)&&n.add(i)}return[...n]},d=(e,t)=>{let n=u(t),r=n.length?`;⚠ 字段 ${n.join(`/`)} 受保护(freeze/verbatim),agent 读不到其真值 —— 新建元素缺它属预期,勿编造值硬闯:改用不含该字段的增量形态,或由集成方将其设为可选`:``;return a===`schema_invalid`?$({code:`SCHEMA_INVALID`,message:`patches 应用后局部校验失败 @ "${e}",未写入`,hint:`确认该路径的值符合 schema;兄弟节点的既有数据不影响本次写入`+r,details:Ul(t)}):r?$({code:`SCHEMA_INVALID`,path:e,message:`值不符合 "${e}" 的 schema(${t.length} 处问题)`,hint:`用 read({jsonPath:"${e}"}) 查看当前值,按 schema_data() 查看主数据 schema,修正后重试;改大对象优先用 write 的 patch 增量(只发改动部分)${r}`,details:Ul(t)}):Wl(e,t)},f=e=>$({code:`SCHEMA_STRIP`,message:`字段 ${e.join(`, `)} 不在 schema 声明内,写入被拒绝(防静默丢失)`,hint:`该数据结构不支持这些字段;请只用 schema 声明的字段,或在 data.schema 中声明后重试${V_(B_(t,H_(String(e[0]))))}`,path:e[0],details:{stripped:e}}),p=[];Op(t)&&c.push(`根级 refine/superRefine 不再在 write 时执行(走 capabilities.verify)`);let m=0,h=0;for(let e of i){let i=e.op??`set`,a=e.jsonPath||``;if(i===`remove`){let e=a.lastIndexOf(`.`);if(e>0&&/^\d+$/.test(a.slice(e+1))){let n=a.slice(0,e),i=Ep(t,n);if(i.kind===`schemas`){let e=pm(r,n);if(Array.isArray(e))for(let t of i.schemas){let r=kp(t);if(r!==null&&e.length<r)return{ok:!1,error:d(n,[{path:[n],code:`too_small`,message:`删除后数组长度 ${e.length} 低于 schema 最小约束 ${r}`,expected:`>=${r}`}]),writeBacks:[],notices:c}}}}p.push({op:`remove`,jp:a});continue}if(i===`move`){let n=s[h++];if(n&&n.elem!==void 0){let e=n.toPath.lastIndexOf(`.`),r=e>0&&/^\d+$/.test(n.toPath.slice(e+1))?n.toPath.slice(0,e):n.toPath,i=Ep(t,r);if(i.kind===`schemas`){let e=Ap(i.schemas);if(e.length){let t=[],r=!1;for(let i of e){let e=i.safeParse(n.elem);if(e.success){r=!0;break}t.push(...e.error?.issues??[])}if(!r)return{ok:!1,error:d(n.toPath,t),writeBacks:[],notices:c}}}else i.kind===`open`&&c.push(`${r}=开放节点放行`)}p.push({op:`move`,jp:a,toPath:String(e.value)});continue}if(i===`append`){let e=o[m++]?.elems??[],n=pm(r,a);if(typeof n==`string`&&typeof e[0]==`string`){let r=e[0],i=Ep(t,a);if(i.kind===`missing`)return{ok:!1,error:f([a]),writeBacks:[],notices:c};let o=n;if(i.kind!==`open`){let e=i.schemas.map(e=>e.safeParse(o)).find(e=>!e.success);if(e)return{ok:!1,error:d(a,e.error?.issues??[]),writeBacks:[],notices:c}}p.push({op:`appendStr`,jp:a,str:r});continue}if(!e.length){p.push({op:`appendElems`,jp:a,elems:[]});continue}let i=Ep(t,a);if(i.kind===`missing`)return{ok:!1,error:f([a||`(根)`]),writeBacks:[],notices:c};if(i.kind===`open`){c.push(`${a||`(根)`}=开放节点放行`),p.push({op:`appendElems`,jp:a,elems:e});continue}let s=Ap(i.schemas);if(!s.length){c.push(`${a||`(根)`}:目标非 schema 声明数组,元素未校验放行`),p.push({op:`appendElems`,jp:a,elems:e});continue}let l=[];for(let t=0;t<e.length;t++){let n=[],r,i=!1;for(let a of s){let o=a.safeParse(e[t]);if(o.success){i=!0,r=o.data;break}n.push(...o.error?.issues??[])}if(!i)return{ok:!1,error:d(`${a||`(根)`}[新增元素${t}]`,n),writeBacks:[],notices:c};let o=jm(void 0,e[t],r,a?`${a}.${t}`:String(t));if(o.length)return{ok:!1,error:f(o),writeBacks:[],notices:c};l.push(r)}p.push({op:`appendElems`,jp:a,elems:l});continue}if(i===`merge`){let r=e.value;if(typeof r==`string`){let e=vm(r);if(e.parseError)return{ok:!1,error:Gl(`patches merge`,r,e.parseError),writeBacks:[],notices:c};r=e.parsed}if(typeof r!=`object`||!r||Array.isArray(r))return{ok:!1,error:$({code:`PATCH_FAILED`,message:`merge 的 value 需为对象`,hint:`merge 合并对象键;整体替换用 set`}),writeBacks:[],notices:c};let i=[];for(let e of Object.keys(r)){if(e.startsWith(`__pg`)||um.has(e))continue;let r=a?`${a}.${e}`:e,o=l(r),s=Dp(t,r,o);if(!s.ok){if(s.resolution===`missing`){if(pm(n,r)===void 0)return{ok:!1,error:f([r]),writeBacks:[],notices:c};i.push([e,o]);continue}return{ok:!1,error:d(r,s.issues??[]),writeBacks:[],notices:c}}s.resolution===`open`&&c.push(`${r}=开放节点放行`);let u=jm(pm(n,r),o,s.data,r);if(u.length)return{ok:!1,error:f(u),writeBacks:[],notices:c};i.push([e,s.data])}p.push({op:`mergeKeys`,jp:a,entries:i});continue}let u=l(a),g=a.lastIndexOf(`.`);if(g>0&&/^\d+$/.test(a.slice(g+1))){let e=pm(r,a.slice(0,g));if(Array.isArray(e)){for(let t=0;t<e.length;t++)if(!(t in e))return{ok:!1,error:$({code:`PATCH_FAILED`,message:`set @ "${a}" 越界数组索引产生稀疏空洞(父数组长度 ${e.length})`,hint:`数组索引须连续(≤ 当前长度);追加请用 op:"append"`}),writeBacks:[],notices:c}}}let _=Dp(t,a,u);if(!_.ok){if(_.resolution===`missing`){if(pm(n,a)===void 0)return{ok:!1,error:f([a]),writeBacks:[],notices:c};p.push({op:`set`,jp:a,value:u});continue}return{ok:!1,error:d(a,_.issues??[]),writeBacks:[],notices:c}}_.resolution===`open`&&c.push(`${a||`(根)`}=开放节点放行`);let v=jm(pm(n,a),u,_.data,a);if(v.length)return{ok:!1,error:f(v),writeBacks:[],notices:c};p.push({op:`set`,jp:a,value:_.data})}return{ok:!0,writeBacks:p,notices:c}}function G_(e){let{bindRef:t,schema:n,allowKeys:r,snapshots:i,maxSnapshots:a,audit:o,dryRun:s,op:c=`set`,protectedCtx:l,snapshotLabel:u}=e,d=e.value,f=e.internalAfterWrite?gm(mg(t)):null,p=q_(d);if(p)return{ok:!1,error:J_(p)};if(l){let e=L_({value:d,ctx:l,mergeMode:!!r});if(!e.ok)return{ok:!1,error:e.error};d=e.value}let m=U_({schema:n,allowKeys:r,value:d,bindRef:t});if(!m.ok)return{ok:!1,error:m.error};let h=m.assembly;if(s)return{ok:!0,hash:``,data:h,notices:m.notices};if(typeof t!=`object`||!t)return{ok:!1,error:$({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${t===null?`null`:typeof t}),无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹(如 {value:"x"})或集成方通过 sdk.setData 替换 bind`})};let g=gm(mg(t)),_=i.length?i[i.length-1].id+1:1;for(i.push({id:_,ts:Date.now(),op:c,value:g,...u?{label:u}:{}});i.length>a;)i.shift();return typeof h==`object`&&h&&(m.wholeParsed?Am(t,h):fm(t,h)),o({op:c,value:h,timestamp:Date.now()}),e.onWrite?.(),e.internalAfterWrite?.(t,f),A_(l),{ok:!0,hash:e.hashFn?e.hashFn():Cm(mg(t)),data:h,notices:m.notices}}function K_(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?gm(mg(t)):null,p=gm(mg(t)),m=[],h=[],g=[],_=[],v=(e,t)=>{(e===`set`||e===`merge`)&&_.push({jp:t,val:pm(p,t)})};for(let e=0;e<n.length;e++){let t=n[e],a=t.jsonPath||``;if(dm(a))return{ok:!1,error:$({code:`PATH_UNSAFE`,message:`patches[${e}] jsonPath "${a}" 含非法段`,hint:`使用正常属性路径,如 components.0.text`})};if(!xp(a,r,i))return{ok:!1,error:$({code:`PATH_DENIED`,message:`patches[${e}] @ "${a}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可写${V_(B_(r,H_(a)))}`})};let o=t.op??`set`,s;if(o!==`remove`){if(t.value===void 0||t.value===``&&o===`move`)return{ok:!1,error:$({code:`MISSING_VALUE`,message:`patches[${e}] ${o} 操作需要 value`,hint:`op 为 ${o} 时 value 必填;删除请用 op:'remove'`})};let n=vm(t.value);if(n.parseError)return{ok:!1,error:Gl(`patches[${e}]`,t.value,n.parseError)};if(s=n.parsed,o!==`move`){let t=q_(s);if(t)return{ok:!1,error:J_(t,`patches[${e}] @ "${a}"`)}}if(o===`move`&&typeof s==`string`&&!xp(s,r,i))return{ok:!1,error:$({code:`PATH_DENIED`,message:`patches[${e}] move 目标 "${s}" 不在 schema 声明字段内`,hint:`move 的 value(目标路径)也须在 schema 声明字段内${V_(B_(r,H_(String(s))))}`})}}o===`append`&&h.push({jp:a,elems:Array.isArray(s)?[...s]:[s]}),o===`move`&&g.push({jp:a,toPath:String(s),elem:pm(p,a)});let c=Tm(p,o,a,s);if(c)return{ok:!1,error:$({code:`PATCH_FAILED`,message:`patches[${e}]: ${c}`,hint:`检查 op 与目标类型:merge 需对象,append 需数组或字符串`})};v(o,a),m.push({op:o,jp:a,value:s})}if(d){let e=R_({patches:n,clone:p,ctx:d});if(!e.ok)return{ok:!1,error:e.error}}let y=d?new Set([...d.resourcesByPath.keys()].map(e=>e.split(`.`).pop()).filter(Boolean)):void 0,b=W_({schema:r,bindRef:t,clone:p,patches:n,schemaErrorMode:c,appendCaptures:h,moveCaptures:g,valueAt:e=>_.find(t=>t.jp===e)?.val,...y?{protectedFieldNames:y}:{}});if(!b.ok)return{ok:!1,error:b.error};if(u)return{ok:!0,applied:m,clone:p,notices:b.notices};let x=a.length?a[a.length-1].id+1:1;for(a.push({id:x,ts:Date.now(),op:`edit`,value:f??gm(mg(t)),...l?{label:l}:{}});a.length>o;)a.shift();let S=new Set(b.writeBacks.filter(e=>e.op===`set`).map(e=>e.jp));for(let e of b.writeBacks)if(!((e.op===`appendElems`||e.op===`appendStr`)&&S.has(e.jp))){if(e.op===`remove`)hm(t,e.jp);else if(e.op===`set`)mm(t,e.jp,e.value);else if(e.op===`move`)Dm(t,e.jp,e.toPath);else if(e.op===`mergeKeys`){let n=e.jp?pm(t,e.jp):t;if(n&&typeof n==`object`&&!Array.isArray(n))for(let[t,r]of e.entries??[])n[t]=r}else if(e.op===`appendElems`){let n=e.jp?pm(t,e.jp):t;Array.isArray(n)&&e.elems?.length&&n.push(...e.elems)}else if(e.op===`appendStr`){let n=e.jp?pm(t,e.jp):t;typeof n==`string`&&typeof e.str==`string`&&mm(t,e.jp,n+e.str)}}return e.internalAfterWrite?.(t,f),A_(d),s?.(),{ok:!0,applied:m,clone:p,notices:b.notices}}function q_(e){let t=/^<[A-Za-z_][\w.-]*\s[\d.]+[KMG]?B>$/,n=e=>{if(typeof e==`string`)return e.includes(`<subtree `)||t.test(e)?e.slice(0,60):null;if(Array.isArray(e)){for(let t of e){let e=n(t);if(e)return e}return null}if(e&&typeof e==`object`)for(let t of Object.values(e)){let e=n(t);if(e)return e}return null};return n(e)}var J_=(e,t)=>$({code:`PLACEHOLDER_LEAK`,path:t||void 0,message:`写入值包含摘要占位符 "${e}"(read/query 为省上下文返回的体积占位,非真实数据),已拒绝写入`,hint:`占位符子树的真实内容需先窄读获取:read({jsonPath:"<该子树路径>"}) 结果根豁免返回全文;聚焦该区域可用 set_focus。基于真实值重新构造写入内容`});function Y_(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}var X_=3072;function Z_(e){return typeof e==`string`?e.length+2:typeof e==`number`||typeof e==`boolean`?8:4}function Q_(e,t,n,r,i){if(!t||e==null)return e;let a=new Set(n.map(e=>e.field)),o=r,s=X_,c=i?.rootExempt??!1,l=i?.rootPath??``,u=i?.fullTextPrefixes??[],d=gm(e),f=i?.onSummarized,p=e=>u.some(t=>t&&(e===t||e.startsWith(t+`.`)||e.startsWith(t+`[`))),m=(e,t)=>{let n=`#`+String(Cm(e)).slice(0,8);if(Array.isArray(e))return`<subtree ${Y_(t)} children:${e.length} ${n}>`;let r=Object.keys(e),i=r.slice(0,6).join(`,`)+(r.length>6?`,…`:``);return`<subtree ${Y_(t)} keys:[${i}] ${n}>`},h=(e,t,n)=>{if(typeof e!=`object`||!e)return{node:e,eff:Z_(e)};if(p(t))return{node:e,eff:40};if(Array.isArray(e)){let r=2;for(let n=0;n<e.length;n++){let i=h(e[n],`${t}.${n}`,!1);e[n]=i.node,r+=i.eff}return!(n&&c)&&r>=s?(f?.(t),{node:m(e,r),eff:40}):{node:e,eff:r}}let r=2;for(let n of Object.keys(e)){let i=e[n],s=t?`${t}.${n}`:n;if(typeof i==`string`&&a.has(n)&&i.length>=o&&!p(s))e[n]=`<${n} ${Y_(i.length)}>`,f?.(s),r+=e[n].length+n.length+2;else{let t=h(i,s,!1);e[n]=t.node,r+=t.eff+n.length+2}}return!(n&&c)&&r>=s?(f?.(t),{node:m(e,r),eff:40}):{node:e,eff:r}};return h(d,l,!0).node}var $_=0;function ev(){return $_++,`c_`+Math.random().toString(36).slice(2,8)+$_.toString(36)}function tv(e,t){if(!(!e||typeof e!=`object`))for(let n of t){let t=pm(e,n);if(Array.isArray(t))for(let e of t)e&&typeof e==`object`&&!(`__pgId`in e)&&(e.__pgId=ev())}}function nv(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 rv(e,n={}){let r=n.pgIdPaths??[],a=n.sandboxRunner??Sd,o=r.length?(e,t)=>{if(t&&typeof t==`object`)for(let n of r){let r=pm(t,n),i=pm(e,n);if(!Array.isArray(r)||!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<r.length;e++){if(o.has(e))continue;let n=r[e];if(!(!n||typeof n!=`object`||!n.__pgId)&&D_(a(n),a(t))){t.__pgId=n.__pgId,o.add(e);break}}}for(let e=0;e<r.length&&e<i.length;e++){if(o.has(e))continue;let t=r[e]?.__pgId,n=i[e];t&&n&&typeof n==`object`&&!(`__pgId`in n)&&(n.__pgId=t,o.add(e))}}tv(e,r)}:void 0,s=r.length?Jp(e.schema,r).schema:e.schema,c=e.bind,l=()=>mg(c),u=e.description??`主数据对象`,d=bp(s),f=new Map,p=n.vfsStore?new k_(n.vfsStore):void 0;function m(e){if(f.clear(),e)for(let t of e){let e=T_(t.path);f.set(e,{path:e,mode:t.mode})}}m(e.resources);let h=f.size?{resourcesByPath:f,resourceStore:p,getBind:()=>c,pendingReanchors:[],isFieldRequired:e=>{let t=e.split(`.`),n=t[t.length-1],r=(t.length>1?Cp(s,t.slice(0,-1).join(`.`)):s)?.shape?.[n];return!!r&&typeof r.isOptional==`function`&&!r.isOptional()}}:void 0,g=[],_=n.maxSnapshots??20,v=new Map,y=``,b=e=>e?.configurable?.__pgDataScope??y,x=e=>{let t=e?.configurable?.__pgFullTextPaths;return Array.isArray(t)?t.map(String):void 0},S=new Set,C=e=>{for(S.add(e);S.size>500;)S.delete(S.values().next().value)},w=e=>v.get(e??y),T=(e,t)=>{let n=t??y;e===void 0?v.delete(n):v.set(n,e)},E=n.conflictWatchFields??[],D=!E.includes(`*`)&&E.length?new Set(E):void 0,O=E.length>0,k=()=>D?wm(l(),D):Cm(l()),A=(n.maxParallelTools??1)>1&&O,j=!1,M=[];async function ee(){if(!A)return{release:()=>{},reacquire:async()=>{}};j?await new Promise(e=>M.push(e)):j=!0;let e=!0;return{release:()=>{if(!e)return;e=!1;let t=M.shift();t?t():j=!1},reacquire:async()=>{e||=(j?await new Promise(e=>M.push(e)):j=!0,!0)}}}(n.maxParallelTools??1)>1&&!O&&console.warn(`[page-agent-sdk] maxParallelTools>1 且未声明 conflictWatchFields:并发写不互锁(后写覆盖前写,既有明文语义);声明 conflictWatchFields 后自动启用写互锁与乐观锁校验`);let N=e=>{let t=k();return T(t,e),t},te=n.largeTextThreshold??200,ne=(n.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),P=!0;function re(){P=!0}let ie={get:()=>({schema:s,bind:c,description:u}),set:e=>{s=r.length?Jp(e.schema,r).schema:e.schema,c=e.bind,u=e.description??`主数据对象`,d=bp(s),g.length=0,v.clear(),m(e.resources),p?.clear(),re()},update:e=>{c=e,g.length=0,v.clear(),re()},markDataDirty:re,consumeDataDirty:()=>{let e=P;return P=!1,e},enterScope:e=>{let t=y;return y=e,()=>{y=t}},exitScope:e=>{v.delete(e)},recomputeBaseline:e=>{v.set(e??``,k())},recomputeAllBaselines:()=>{let e=k();for(let t of v.keys())v.set(t,e)},hasBaselines:()=>v.size>0,getSummarizedPaths:()=>[...S],clearSummarizedPaths:()=>S.clear(),getResourcesSnapshot:()=>{let e=[];for(let[t,n]of f)if(n.mode===`verbatim`){let r=p?.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:p?(e,t)=>{let n=T_(e),r=f.get(n),i=t===void 0?pm(c,n):t;return p.ensure(n,i,r?.mode??`verbatim`)}:void 0,getResource:p?e=>{let t=p.get(e);return t?{path:t.path,mode:t.mode,value:t.value,handle:t.handle}:void 0}:void 0,updateResource:p?(e,t)=>{let n=T_(e);p.update(n,t),mm(c,n,t),re(),T(k(),``)}:void 0,deleteResource:p?e=>p.delete(e):void 0,listResources:p?()=>p.list():void 0},F=e=>{n.onAudit?.(e)};function ae(e,t){let n=gm(l()),r=g.length?g[g.length-1].id+1:1;for(g.push({id:r,ts:Date.now(),op:e,label:t,value:n});g.length>_;)g.shift();return r}async function I(e,t,r,i,a){if(!t||t===``)return null;let o=k();if(o===t)return null;if(!n.onConflict)return $({code:`VERSION_CONFLICT`,message:`乐观锁冲突:expectedHash=${t} 但当前 hash=${o}。主数据在你 read 之后已被修改(外部代码/其他 agent/用户手动改)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入。当前值:${xm(l(),400)}`});i?.release();let s=g.length?g[g.length-1].id:0,u=await n.onConflict({op:e,agentValue:r,currentValue:c,currentHash:o,expectedHash:t,snapshotId:s});if(u.action===`keep_external`)return`已保留外部修改(未写入)。当前值:${xm(l(),400)} (hash=${o})。请重新 read 拿最新值与 hash 再改。`;if(u.action===`restore`){await i?.reacquire();let e=k();if(e!==o)return F({op:`conflict_recheck`,detail:`restore 裁决基于 ${o} 恢复时 ${e}(ask 窗口新修改落地,回退被拦)`,timestamp:Date.now()}),$({code:`VERSION_CONFLICT`,message:`restore 裁决恢复点校验失败:裁决基于 hash=${o},恢复时主数据已变为 hash=${e}(裁决等待期间又有新修改落地,裁决者未见过)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入(单次校验,不再二次挂起)。`});if(!g.length)return`无历史快照可回退(本次为首次操作)。当前值:${xm(l(),400)} (hash=${o})。请重新 read 再改或选「强制覆盖」。`;let t=s?g.find(e=>e.id===s):void 0;if(!t)return $({code:`SNAPSHOT_STALE`,message:`restore 裁决所锚定的快照 #${s} 已不在快照栈(可能被 maxSnapshots 淘汰)`,hint:`重新 read 拿最新值,或用 restore_data 显式指定快照 id 回退`});km(c,gm(t.value)),re();let n=k();return T(n,a),`已回退主数据到历史快照 #${t.id}[${t.op}]。当前值:${xm(l(),400)} (hash=${n})。请基于回退后的值重写或停止。`}await i?.reacquire();let d=k();return d===o?(T(d,a),null):(F({op:`conflict_recheck`,detail:`裁决基于 ${o} 恢复时 ${d}(ask 窗口新修改落地,overwrite 被拦)`,timestamp:Date.now()}),$({code:`VERSION_CONFLICT`,message:`裁决恢复点校验失败:裁决基于 hash=${o},恢复时主数据已变为 hash=${d}(裁决等待期间又有新修改落地,裁决者未见过)。`,hint:`重新 read 拿最新值与 hash,基于最新值修改后再写入(单次校验,不再二次挂起)。`}))}let oe=(e,t=!0)=>{e.writeCapable=t},se=(0,i.tool)(async({id:e},t)=>{let n=b(t),r=await ee();try{if(!g.length)return $({code:`NO_SNAPSHOT`,message:`无快照可回退`,hint:`write 各写意图会自动存快照;或 history_data({list:true}) 查看可用快照`});let t=e===void 0?g[g.length-1]:g.find(t=>t.id===e);if(!t)return $({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`用 history_data({list:true}) 查看可用快照序号`});let r=s.safeParse(t.value);r.success||F({op:`restore`,detail:`#${t.id} 快照含当前 schema 违例 ${r.error.issues.length} 处(历史既有数据非本次写入,放行回退)`,timestamp:Date.now()});let i=[];if(h&&h.resourcesByPath.size)for(let[e]of h.resourcesByPath){let n=pm(c,e);D_(n,pm(t.value,e))||i.push({p:e,cur:n})}if(!i.length)return km(c,gm(t.value)),re(),F({op:`restore`,detail:`#${t.id}`,timestamp:Date.now()}),T(k(),n),`已回退主数据到快照 #${t.id}[${t.op}]${t.label?`(${t.label})`:``}。`;let a=i.map(({p:e})=>{let t=H_(e),n=t?pm(c,`${t}.__pgId`):void 0;return{p:e,parent:t,pgId:typeof n==`string`?n:void 0}}).map(e=>({...e,val:e.p?pm(c,e.p):void 0}));km(c,gm(t.value));let o=[],l=[];for(let e of a){let t=e.p.slice(e.p.lastIndexOf(`.`)+1),n=e.p;if(e.pgId){let r=H_(e.parent),i=r?pm(c,r):c,a=Array.isArray(i)?i.findIndex(t=>t?.__pgId===e.pgId):-1;if(a<0){l.push(e.p);continue}n=`${r?`${r}.${a}`:String(a)}.${t}`}else if(e.parent&&pm(c,e.parent)===void 0){l.push(e.p);continue}e.val===void 0?l.push(e.p):mm(c,n,e.val),o.push(e.p)}re(),F({op:`restore`,detail:`#${t.id}(保护字段保留 ${o.length}${l.length?`,未能回填 ${l.length}`:``})`,timestamp:Date.now()}),T(k(),n);let u=l.length?`;⚠ 以下保护字段未能回填当前值(快照窗口内元素已变/已删,保留快照旧值,请由宿主侧核对):${l.join(`、`)}`:``;return`已回退主数据到快照 #${t.id}[${t.op}]${t.label?`(${t.label})`:``}。⚠ 受保护字段保留当前值未回退:${o.join(`、`)}(freeze/verbatim 由宿主管辖,快照旧值不覆盖;history_data 看到的是快照原值,实际结果以 read 为准)${u}`}finally{r.release()}},{name:`restore_data`,description:`把主数据回退到某个快照(不传 id 回退最近一次)。快照列表用 history_data({list:true})。`,schema:t.z.object({id:t.z.number().int().optional().describe(`快照序号;不传回退最近一次`)})});oe(se);let ce=(0,i.tool)(async({id:e,jsonPath:t,list:n})=>{if(n){if(!g.length)return`无快照。set/edit/delete 会自动存快照。`;let e=g.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`主数据快照时间线(共 ${g.length} 条,默认最近一次):\n${e.join(`
|
|
107
107
|
`)}\n用 history_data({id}) 查看某条快照内容;restore_data({id}) 回退;diff_data({snapshotId}) 对比差异。`}if(!g.length)return $({code:`NO_SNAPSHOT`,message:`无历史快照可查看`,hint:`set/edit/delete 会自动存快照;或 history_data({list:true}) 查看可用序号`});let r=e===void 0?g[g.length-1]:g.find(t=>t.id===e);if(!r)return $({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`不传 id 查看最近一次;或 history_data({list:true}) 查看可用序号`});let i=gm(r.value),a=t||``;if(a){if(dm(a))return $({code:`PATH_UNSAFE`,message:`jsonPath "${a}" 含非法段`,hint:`使用正常属性路径`});if(!xp(a,s,d))return $({code:`PATH_DENIED`,message:`history_data @ "${a}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可读`});i=pm(i,a);let e=Cp(s,a);e&&(i=Ip(i,e))}else d&&(i=Ip(i,s));return`快照 #${r.id}[${r.op}]${r.label?`(${r.label})`:``}${a?` @ ${a}`:``} = ${xm(i)}`},{name:`history_data`,description:`查看主数据快照(只读不回退):list:true 列时间线;传 id 看某次内容(默认最近),jsonPath 可只看子路径。对比差异用 diff_data;回退用 restore_data。`,schema:t.z.object({id:t.z.number().int().optional().describe(`快照序号;不传看最近一次(list:true 时忽略)`),jsonPath:t.z.string().optional().describe(`只看快照的某子路径`),list:t.z.boolean().optional().describe(`true 列出快照时间线(序号/操作/标签/时间/大小)`)})}),L=(0,i.tool)(async({expr:e,queries:t,limit:n},r)=>{let i=b(r);if(typeof c!=`object`||!c)return $({code:`NOT_OBJECT`,message:`主数据不是对象/数组,无法查询(当前为 ${c===void 0?`undefined`:typeof c})`,hint:`query 仅适用于对象/数组;叶子用 read 读`});let a=d?Ip(l(),s):l(),o=x(r),u=e=>{let t;try{t=vd(a,e)}catch(t){return $({code:`JSONPATH_SYNTAX`,message:`JSONPath 解析错误: ${t.message}`,hint:`语法子集:$ .key [n] ["key"] [*] [?(filter)] ..key ..*;filter:@.field op literal,&&/||/();对象根需先点出数组字段再过滤,如 $.components[?(@.x>1)]`,details:{expr:e}})}let r=n??50,s=t.slice(0,r),c=s.map(e=>`{"path":${JSON.stringify(e.path)},"index":${e.index===void 0?`null`:e.index},"value":${xm(Q_(e.value,i===``,ne,te,{rootExempt:!1,rootPath:String(e.path??``),fullTextPrefixes:o,onSummarized:C}))}}`);return`{"matched":${t.length},"returned":${s.length},"truncated":${t.length>r},"results":[${c.join(`,`)}]}`};return t&&t.length?`{"batch":true,"results":[${t.map(e=>{let t=u(e);return t.startsWith(`ERROR:`)?`{"expr":${JSON.stringify(e)},"ok":false,"error":${JSON.stringify(t)}}`:`{"expr":${JSON.stringify(e)},"ok":true,${t.slice(1)}`}).join(`,`)}]}`:e===void 0?$({code:`SCHEMA_INVALID`,message:`query_data 需传 expr(单条 JSONPath)或 queries(2-10 条批量),两者都没传`,hint:`单表达式用 expr;多条件筛选一次取回用 queries`}):u(e)},{name:`query_data`,description:`用 JSONPath 查询主数据(只读):$ 根/.key/[n]/[*]/[?(==/!=/</<=/>/>=,&&/||)]/..key 递归。返回匹配元素 path/index/value(path 可作 write patch 的 jsonPath);大数组筛选定位用它;多条件筛选传 queries 数组一次取回。`,schema:t.z.object({expr:t.z.string().optional().describe(`单条 JSONPath 表达式,如 $.components[?(@.type=="card" && @.price<100)] 或 $..title(递归找所有 title)`),queries:t.z.array(t.z.string()).min(2).max(10).optional().describe(`批量模式:2-10 条 JSONPath 一次取回(与 expr 同传按 queries);逐条独立返回,单条失败该项标 error 不整批`),limit:t.z.number().int().min(1).max(200).optional().describe(`返回结果上限(批量时逐条适用),默认 50`)})}),R=(0,i.tool)(async({query:e,mode:t,fuzzyThreshold:n,matchKey:r,limit:i})=>{if(c==null)return $({code:`EMPTY`,message:`主数据为空,无可搜索内容`});try{let a=bd(d?Ip(l(),s):l(),e,{mode:t,fuzzyThreshold:n,matchKey:r,limit:i??50});return xm({matched:a.length,results:a})}catch(t){return $({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:t.z.object({query:t.z.string().describe(`搜索词(substring/regex/fuzzy 共用)`),mode:t.z.enum([`substring`,`regex`,`fuzzy`]).optional().describe(`匹配模式,默认 substring`),fuzzyThreshold:t.z.number().int().min(0).max(5).optional().describe(`fuzzy 模式最大编辑距离,默认 2`),matchKey:t.z.boolean().optional().describe(`是否同时匹配 key 名,默认 true`),limit:t.z.number().int().min(1).max(200).optional().describe(`返回上限,默认 50`)})}),le=(0,i.tool)(async({script:e,mode:t,jsonPath:n},r)=>{let i=b(r);if(e.length>8e3)return $({code:`SCRIPT_TOO_LARGE`,message:`脚本过长(${e.length} 字符,上限 8000)`,hint:`精简脚本;复杂逻辑可分步(先 query 探查再 transform 改),或拆成多次 eval`});let u=n||``,f;if(u){if(!xp(u,s,d))return $({code:`PATH_DENIED`,message:`eval_script @ "${u}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可作为子树`});if(f=pm(l(),u),d){let e=Cp(s,u);e&&(f=Ip(f,e))}}else f=d?Ip(l(),s):l();let p=gm(f),m=u&&JSON.stringify(p).length>1e5?8e3:3e3,v=await a(p,e,m);if(!v.ok){let t=/超时/.test(v.error||``);return $({code:t?`SCRIPT_TIMEOUT`:`SCRIPT_ERROR`,message:`脚本执行失败: ${v.error}`,hint:t?`脚本可能有死循环或过重计算;加边界检查/分批;transform 返回完整新值勿返回巨大中间结果`:`检查脚本语法与运行时错误;入参为 data(主数据深拷贝),沙箱内禁用 fetch/XHR/WebSocket`,details:{elapsedMs:v.elapsedMs,scriptLen:e.length}})}if(t===`transform`){let t=v.result;if(t===void 0)return $({code:`SCRIPT_NO_RETURN`,message:`transform 脚本未返回新值(执行结果为 undefined)`,hint:`脚本必须产出新值:以表达式结尾(如 data.slice(0,1))或显式 return(如 const out=...; return out);多语句脚本须含 return 语句`,details:{scriptLen:e.length}});if(u){let e=await ee();try{let n=await I(`edit`,O?w(i):void 0,void 0,e,i);if(n!==null)return n;let r=K_({bindRef:c,patches:[{op:`set`,jsonPath:u,value:t}],schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,markDataDirty:re,schemaErrorMode:`schema_invalid`,snapshotLabel:`eval_transform_subtree`,internalAfterWrite:o,protectedCtx:h});return r.ok?(F({op:`edit`,detail:`eval_transform_subtree @ ${u}`,timestamp:Date.now()}),T(k(),i),`已通过脚本 transform 子树 @ ${u} 更新(耗时 ${v.elapsedMs}ms)。当前值: ${xm(l(),600)}`):r.error}finally{e.release()}}if(t&&typeof t==`object`&&!Array.isArray(t)&&`patches`in t&&Array.isArray(t.patches)){if(typeof c!=`object`||!c)return $({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${c===null?`null`:typeof c}),eval transform(patches) 无法就地替换`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹或集成方通过 sdk.setData 替换 bind`});let e=await ee();try{let n=await I(`edit`,O?w(i):void 0,void 0,e,i);if(n!==null)return n;let r=K_({bindRef:c,patches:t.patches,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,markDataDirty:re,schemaErrorMode:`schema_invalid`,snapshotLabel:`eval_transform`,internalAfterWrite:o,protectedCtx:h});return r.ok?(F({op:`edit`,detail:`eval_transform(${r.applied.length} patches)`,timestamp:Date.now()}),T(k(),i),`已通过脚本 transform(patches) 更新主数据(${r.applied.length} 个 patch,耗时 ${v.elapsedMs}ms)。当前值: ${xm(l(),600)}`):r.error}finally{e.release()}}let n=t,r=q_(n);if(r)return J_(r);if(h){let e=L_({value:n,ctx:h});if(!e.ok)return e.error;n=e.value}if(typeof c!=`object`||!c)return $({code:`LEAF_BIND`,message:`主数据 bind 为原始类型(${c===null?`null`:typeof c}),eval transform 无法就地替换外部持有的值引用`,hint:`主数据 bind 必须为对象/数组;叶子值请用对象包裹或集成方通过 sdk.setData 替换 bind`});let a=await ee();try{let e=await I(`set`,O?w(i):void 0,n,a,i);if(e!==null)return e;let t=o?gm(l()):null,r=U_({schema:s,allowKeys:d,value:n,bindRef:c});return r.ok?(ae(`edit`,`eval_transform`),r.wholeParsed?Am(c,r.assembly):r.assembly!==null&&typeof r.assembly==`object`&&fm(c,r.assembly),re(),o&&(o(c,t),re()),F({op:`edit`,detail:`eval_transform`,timestamp:Date.now()}),T(k(),i),`已通过脚本 transform 更新主数据(耗时 ${v.elapsedMs}ms)。当前值: ${xm(l(),600)}`):$({code:`SCHEMA_INVALID`,message:`脚本返回值校验失败,未写入(transform 模式要求返回主数据的完整新值或顶层 key 子集)`,hint:`确认脚本 return 了完整新值(非部分);或返回 {patches:[...]} 走增量模式;按 schema_data() 查看格式`,details:(r.error.match(/"details":\s*(\[[^\]]*\])/)?.[1]??``)||r.error})}finally{a.release()}}return xm({ok:!0,result:v.result,elapsedMs:v.elapsedMs})},{name:`eval_script`,description:`在 Worker 沙箱对主数据跑自定义 JS(无网络,超时 3s)。入参 data(深拷贝);mode:query 只读回给 LLM/transform 校验后落地(完整新值或 {patches:[…]} 增量);jsonPath 可限定子树。`,schema:t.z.object({script:t.z.string().describe(`JS 脚本(入参 data;末尾表达式或 return 即返回值),如 data.filter(c=>c.stock>0)`),mode:t.z.enum([`query`,`transform`]).optional().describe(`query=只读返回结果(默认)/transform=校验后落地为新值`),jsonPath:t.z.string().optional().describe(`子树模式:仅对该子树执行;transform 返回值作为子树新值`)})});oe(le,e=>e?.mode===`transform`);let ue=(0,i.tool)(async({jsonPath:e,jsonPaths:t,fields:n,depth:r,offset:i,limit:a},o)=>{let c=b(o),f=x(o),p=l(),m,g=()=>m??=k();if(t&&t.length){let e=!1,i=t.map(t=>{let i=t||``;if(!xp(i,s,d))return`- ${i||`(根)`}: [PATH_DENIED: 不在 schema 声明字段内]`;e=!0;let a=i?pm(p,i):p;if(!i&&d)a=Ip(a,s);else if(d){let e=Cp(s,i);e&&(a=Ip(a,e))}let o=a;return h&&(o=j_({jp:i,resolved:o,resourcesByPath:h.resourcesByPath,resourceStore:h.resourceStore})),n&&n.length&&(o=ym(o,n)),r!=null&&(o=bm(o,r)),o=Q_(o,c===``,ne,te,{rootExempt:!0,rootPath:i,fullTextPrefixes:f,onSummarized:C}),o===void 0?`- ${i} = (undefined)`:`- ${i} = ${xm(o)}`});return e&&T(g(),c),`多路径读取(共 ${t.length} 项,hash=${g()}):\n${i.join(`
|
|
108
108
|
`)}`}let _=e||``;if(dm(_))return $({code:`PATH_UNSAFE`,message:`jsonPath "${_}" 含非法段(__proto__/constructor/prototype)`,hint:`使用正常属性路径,如 components.0.text(数组索引数字)`});let v=(e,t)=>B_(s,e)??(t&&typeof t==`object`&&!Array.isArray(t)?Object.keys(t):[]);if(!xp(_,s,d)){let e=/[.[]/.test(_)?_.replace(/[.[][^.[]*$/,``):``,t=v(e,e?pm(p,e):p),n=t.length?`;父级 "${e||`(root)`}" 的可用字段:${t.slice(0,12).join(`, `)}${t.length>12?` …`:``}`:``;return $({code:`PATH_DENIED`,message:`read @ "${_}" 不在 schema 声明字段内`,hint:`主数据仅暴露 schema 声明的字段;若需操作该字段,集成方需在 schema 中声明它${n}`})}let y=_?pm(p,_):p;if(_&&y===void 0){let e=Cp(s,_);if(!(e&&typeof e.isOptional==`function`&&e.isOptional())){let e=/[.[]/.test(_)?_.replace(/[.[][^.[]*$/,``):``,t=e?pm(p,e):p,n=v(e,t),r=Array.isArray(t)?`父级 "${e||`(root)`}" 是 ${t.length} 元数组,有效索引 0-${Math.max(t.length-1,0)};先 read({jsonPath:"${e}"}) 确认现状,追加元素走 write 的 append`:n.length?`父级 "${e||`(root)`}" 的可用字段:${n.slice(0,12).join(`, `)}${n.length>12?` …`:``};先 read({jsonPath:"${e}"}) 确认`:`父级 "${e||`(root)`}" 不存在或不是容器;先 read() 不传 jsonPath 查看顶层字段`;return $({code:`PATH_NOT_FOUND`,path:_,message:`路径 "${_}" 不存在`,hint:r})}}if(!_&&d)y=Ip(y,s);else if(d){let e=Cp(s,_);e&&(y=Ip(y,e))}let S=y;h&&(S=j_({jp:_,resolved:S,resourcesByPath:h.resourcesByPath,resourceStore:h.resourceStore})),T(g(),c),n&&n.length&&(S=ym(S,n)),r!=null&&(S=bm(S,r)),S=Q_(S,c===``,ne,te,{rootExempt:!0,rootPath:_,fullTextPrefixes:f,onSummarized:C});let w=e?``:`主数据说明: ${u}\n格式: 写入值需为 JSON,且通过声明的 schema 校验(校验失败时 write 会返回结构化错误)。字段约束(类型/min/max/enum/必填/默认)见 systemPrompt「可操作数据」段,或用 schema_data({ jsonPath }) 按需查。\n\n`,E=n&&n.length?`(字段裁剪:${n.join(`,`)})`:``,D=r==null?``:`(深度≤${r})`,O=E||D?` ${E}${D}`:``;if((i!==void 0||a!==void 0)&&Array.isArray(S)){let e=S.length,t=Math.max(0,i??0),n=Math.min(200,Math.max(1,a??50)),r=S.slice(t,t+n),o=t+n<e;return`${w}主数据${_?` @ ${_}`:``} 数组分页[offset=${t},limit=${n}]${O} = ${xm(r)} (total=${e}, hasMore=${o}) (hash=${g()})`}return S===void 0?`${w}主数据${_?` @ ${_}`:``}${O} = (undefined) (hash=${g()})`:`${w}主数据${_?` @ ${_}`:``}${O} = ${xm(S)} (hash=${g()})`},{name:`read`,description:`读主数据(只读):不传 jsonPath 返回整体说明+格式;传 jsonPath 返回该路径当前值+hash;传 jsonPaths 一次读多个不相关路径。fields/depth 裁剪、offset/limit 数组分页减体积;详细规则见系统提示。`,schema:t.z.object({jsonPath:t.z.string().optional().describe(`要读的子路径(如 components.0.text);不传读整体+说明`),jsonPaths:t.z.array(t.z.string()).optional().describe(`多路径一次读(与 jsonPath 互斥,优先);非法路径单项标错不整批`),fields:t.z.array(t.z.string()).optional().describe(`只返回指定字段(投影减体积),如 ["id","title"]`),depth:t.z.number().int().min(0).optional().describe(`嵌套深度限制(0=只根占位,逐层截断减体积)`),offset:t.z.number().int().min(0).optional().describe(`数组分页起始偏移(仅数组目标,默认 0)`),limit:t.z.number().int().min(1).max(200).optional().describe(`数组分页每页条数(默认 50,上限 200),返回切片+total/hasMore`)})}),de=(0,i.tool)(async({value:e,patch:t,patches:n,del:i,dryRun:a},u)=>{let f=b(u),p=`set`;i?p=`delete`:(n&&n.length||t)&&(p=`edit`);let m=t?.value===void 0?e:t.value,v=await ee();try{let e=O?w(f):void 0;if(a&&e!==void 0){let t=k();if(t!==e)return $({code:`VERSION_CONFLICT`,message:`dryRun 预检发现乐观锁冲突: expectedHash=${e} 当前 hash=${t}(主数据在你 read 后被改)`,hint:`重新 read 拿最新 hash 再预检/写`})}if(p===`delete`){if(!t?.jsonPath)return $({code:`MISSING_VALUE`,message:`delete 需要 patch.jsonPath 指定要删的子路径(主数据整体不可删,用 write(value) 整体替换)`,hint:`如 patch:{jsonPath:"components.0"}, del:true`});if(dm(t.jsonPath))return $({code:`PATH_UNSAFE`,message:`jsonPath "${t.jsonPath}" 含非法段`,hint:`使用正常属性路径`});if(!xp(t.jsonPath,s,d))return $({code:`PATH_DENIED`,message:`write delete @ "${t.jsonPath}" 不在 schema 声明字段内`,hint:`仅 schema 声明的 key 可删`});if(h){let e=O_(t.jsonPath,h.resourcesByPath);if(e)return $({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 n=await I(`delete`,e,void 0,v,f);if(n!==null)return n;if(a){let e=gm(l());return hm(e,t.jsonPath)?`dryRun(delete): 将删除 @ ${t.jsonPath}。预览剩余:${xm(e,600)}。未实际写入、未入快照。`:`dryRun(delete): @ ${t.jsonPath} 不存在(无需删除)。未实际写入。`}ae(`delete`);let r=hm(c,t.jsonPath);return re(),F({op:`delete`,detail:t.jsonPath,timestamp:Date.now()}),o&&(o(c,null),re()),T(k(),f),r?`已删除主数据 @ ${t.jsonPath}`:`主数据 @ ${t.jsonPath} 不存在(无需删除)`}if(p===`edit`){if(typeof c!=`object`||!c)return $({code:`NOT_OBJECT`,message:`edit 仅适用于对象/数组主数据,当前是 ${c===void 0?`undefined`:typeof c}`,hint:`叶子用 write(value) 整体设置`});let r=await I(`edit`,e,void 0,v,f);if(r!==null)return r;let i=n&&n.length?n:[{op:t.op??`set`,jsonPath:t.jsonPath||``,value:m}],l=K_({bindRef:c,patches:i,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,markDataDirty:re,schemaErrorMode:`zod`,dryRun:a,internalAfterWrite:o,protectedCtx:h});if(!l.ok)return l.error;if(a)return`dryRun(edit): ${l.applied.length} 个 patch 预检通过(schema 校验 OK)。预览结果:${xm(l.clone,600)}。未实际写入、未入快照。`;F({op:`edit`,detail:`${l.applied.length} 个 patch${l.applied.length>1?`(批量)`:``}`,value:l.applied.map(e=>`${e.op}@${e.jp}`),timestamp:Date.now()});let u=N(f);return nv(l.clone),`已 write(edit) 主数据(${l.applied.length} 个 patch)。当前值:${xm(l.clone,600)} (新 hash=${u})`}let i=vm(m);if(i.parseError)return Gl(``,m,i.parseError);let u=await I(`set`,e,m,v,f);if(u!==null)return u;let y=G_({bindRef:c,value:i.parsed,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,audit:F,dryRun:a,onWrite:re,internalAfterWrite:o,protectedCtx:h,hashFn:k});if(!y.ok)return y.error;if(a)return`dryRun(set): schema 校验通过。预览新值:${xm(y.data,600)}。未实际写入、未入快照。`;let b=y.hash??k();T(b,f);let x=r.length?gm(y.data):y.data;return nv(x),`已 write(set) 主数据 = ${xm(x,600)} (新 hash=${b})${d?`(白名单模式:仅更新 schema 声明字段,未声明字段保留)`:``}`}finally{v.release()}},{name:`write`,description:`写主数据(唯一写入口;自动 schema 校验+乐观锁+快照)。四意图:整体替换 {value}/增量 {patch:{op,jsonPath,value}}(op set/remove/merge/append/move)/原子批 {patches:[…]}(任一失败回滚)/删子路径 {patch:{jsonPath},del:true};dryRun 预检;详细规则见系统提示。`,schema:t.z.object({value:t.z.unknown().optional().describe(`JSON 对象(推荐)或 JSON 字符串;set 整体或 patch 的 set/merge/append 必填`),patch:t.z.object({op:t.z.enum([`set`,`remove`,`merge`,`append`,`move`]).optional().describe(`set 设值/remove 删/merge 合并对象/append 追加数组/move 移动元素(value=目标路径字符串);缺省 set`),jsonPath:t.z.string().optional().describe(`相对主数据根的点号路径(如 components.0.text);set/remove 必填,merge/append 不填作用于根`),value:t.z.unknown().optional().describe(`该 patch 的值(JSON 或 JSON 字符串);与顶层 value 二选一,优先 patch.value`)}).optional().describe(`单个增量编辑(自带 value)`),patches:t.z.array(t.z.object({op:t.z.enum([`set`,`remove`,`merge`,`append`,`move`]),jsonPath:t.z.string().optional().describe(`相对主数据根的点号路径;set/remove 必填,merge/append 不填作用于根`),value:t.z.unknown().optional().describe(`JSON 值(推荐直传)或 JSON 字符串;set/merge/append 必填`)})).optional().describe(`批量原子编辑:一次提交多个 patch,任一失败整体不写入;适合一次改多处`),del:t.z.boolean().optional().describe(`true 则删除 patch.jsonPath 指定的子路径`),dryRun:t.z.boolean().optional().describe(`预检:走完整校验链但不落盘不入快照;冲突返回 VERSION_CONFLICT 不挂起`)})});oe(de);let z=(0,i.tool)(async({jsonPath:e})=>{let t=e||``,n=t?Cp(s,t):s;return n?`schema${t?` @ ${t}`:``} = ${xm(Up(n))}`:$({code:`PATH_DENIED`,message:`schema @ "${t}" 不存在`,hint:`jsonPath 需在 schema 声明字段内(用 read() 不传 jsonPath 查看顶层字段)`})},{name:`schema_data`,description:`查看主数据(或子路径)的字段约束:类型/min/max/enum/必填/默认值/嵌套 shape。写前查约束,避免写错重试。不传 jsonPath 查根;传子路径(如 components.0)查该位置约束。`,schema:t.z.object({jsonPath:t.z.string().optional().describe(`要查约束的子路径;不传查根 schema`)})}),B=(0,i.tool)(async({snapshotId:e,against:t})=>{let n=t!=null,r,i;if(n){let e=t;if(typeof e==`string`){let t=vm(e);t.parseError||(e=t.parsed)}r=e,i=`against`}else{if(!g.length)return $({code:`NO_SNAPSHOT`,message:`无快照可对比`,hint:`set/edit/delete 自动存快照;或传 against 一段 JSON 值直接对比`});let t=e===void 0?g[g.length-1]:g.find(t=>t.id===e);if(!t)return $({code:`SNAPSHOT_NOT_FOUND`,message:`未找到快照 #${e}`,hint:`不传 snapshotId 用最近一次;或传 against`});r=t.value,i=`快照 #${t.id}`}let a=d?Ip(c,s):c,o=Mm(r,gm(a));return o.length?`差异(当前 vs ${i},共 ${o.length} 处):\n${o.map(e=>` ${e.path}: ${xm(e.from)} → ${xm(e.to)}`).join(`
|
|
109
109
|
`)}`:`无差异:当前主数据与 ${i} 完全相同。`},{name:`diff_data`,description:`对比当前主数据与某快照(默认最近)或一段 JSON(against)的差异,返回结构化 {path, from→to} 列表。供 verify 自纠/冲突诊断/操作审计("刚才改了啥")。snapshotId 指定快照;against 传一段 JSON 值(与 snapshotId 互斥,传则忽略快照)。`,schema:t.z.object({snapshotId:t.z.number().int().optional().describe(`对比的快照序号;不传则最近一次`),against:t.z.unknown().optional().describe(`对比的一段 JSON 值(与 snapshotId 互斥;传则忽略快照)`)})}),fe=[];if(n.vfsStore){let e=n.vfsStore,r=e=>`drafts/${e}.json`,a=(0,i.tool)(({draftId:t,chunk:n,mode:i})=>{let a=r(t),o=e.files[a],s=i===`append`&&o,c=s?o.content+n:n;return e.files[a]={content:c,updatedAt:Date.now()},JSON.stringify({draftId:t,bytes:c.length,mode:s?`append`:`start`})},{name:`draft_write`,description:`分块写 JSON 草稿到 drafts 池(单次 write 受 max_tokens 限制装不下时用)。mode:"start" 新建/"append" 追加拼接;返回 {draftId,bytes} 看累计进度。累积完 draft_commit 提交;拼接不合法返回 JSON_INVALID 草稿保留。`,schema:t.z.object({draftId:t.z.string().describe(`草稿标识(自起,如 "page-gen-1")`),chunk:t.z.string().describe(`JSON 片段字符串(分块输出,append 拼接成完整 JSON;如 '{"components":[' / '{"type":"heading",...},' / ']}')`),mode:t.z.enum([`start`,`append`]).optional().describe(`start=新建/覆盖(默认);append=追加 chunk 到已有草稿`)})}),l=(0,i.tool)(async({draftId:t},n)=>{let i=b(n),a=r(t),l=e.files[a];if(!l)return $({code:`DRAFT_NOT_FOUND`,message:`草稿 "${t}" 不存在`,hint:`先 draft_write({draftId, chunk, mode:"start"}) 新建,再 append 累积分块`});let u;try{u=JSON.parse(l.content)}catch(e){return $({code:`JSON_INVALID`,message:`草稿 "${t}" 拼接后非合法 JSON: ${e.message}`,hint:`检查 chunk 拼接(逗号/括号/引号是否匹配,首尾是否闭合);草稿保留未删,可继续 draft_write 修正后重 commit`,details:{bytes:l.content.length,preview:l.content.slice(0,200)+(l.content.length>200?`…`:``)}})}let f=await ee();try{let n=await I(`set`,O?w(i):void 0,u,f,i);if(n!==null)return n;let r=G_({bindRef:c,value:u,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,audit:F,op:`draft_commit`,onWrite:re,internalAfterWrite:o,protectedCtx:h,hashFn:k});return r.ok?(T(r.hash,i),delete e.files[a],`已 draft_commit 草稿 "${t}" → 主数据 = ${xm(r.data,600)} (新 hash=${r.hash})${d?`(白名单模式:仅更新 schema 声明字段)`:``}。草稿已清理。`):r.error}finally{f.release()}},{name:`draft_commit`,description:`把 draft_write 累积的草稿合并 + JSON.parse + 乐观锁 + schema 校验,原子提交主数据(任一步失败不写,草稿保留可修后重试;成功清草稿 + 自动快照可回退)。仅大 JSON 从零生成用;小改用 write。`,schema:t.z.object({draftId:t.z.string().describe(`要提交的草稿标识(对应 draft_write 的 draftId)`)})});oe(l),fe.push(a,l)}let pe=[];if(e.resources?.length&&p){let e=(0,i.tool)(async({path:e,handle:t})=>{let n=e;if(!n&&t&&(n=p.get(t)?.path),!n)return $({code:`RESOURCE_NOT_FOUND`,message:`未提供 path 或有效 handle`,hint:`传 path(受保护字段)或 handle(占位符 ⟦res:handle⟧ 里的句柄)`});let r=T_(n);if(!f.has(r))return $({code:`RESOURCE_NOT_FOUND`,message:`"${n}" 不是受保护字段`,hint:`resource_get 仅查集成方在 data.resources 声明的路径`});let i=p.get(r);if(i)return xm({path:i.path,mode:i.mode,value:i.value,handle:i.handle});let a=pm(c,r);if(a===void 0)return $({code:`RESOURCE_NOT_FOUND`,message:`字段 "${n}" 当前无值,无法注册`,hint:`该字段可能在 bind 中不存在;先 read 触发懒注册`});let o=f.get(r),s=p.ensure(r,a,o.mode);return xm({path:r,mode:o.mode,value:a,handle:s})},{name:`resource_get`,description:`取受保护字段(freeze/verbatim)的真实值(占位符背后的精确值)。仅受保护路径(集成方在 data.resources 声明)。read 返回 ⟦frozen:path⟧/⟦res:handle⟧ 占位符,确需真值时用此工具。传 path 或 handle。`,schema:t.z.object({path:t.z.string().optional().describe(`受保护字段路径(data.resources 声明的)`),handle:t.z.string().optional().describe(`占位符 ⟦res:handle⟧ 里的句柄(与 path 二选一)`)})}),n=(0,i.tool)(async({path:e,value:t},n)=>{let r=b(n);if(!e)return $({code:`MISSING_VALUE`,message:`resource_update 需要 path`,hint:`传要更新的 verbatim 受保护字段路径`});let i=T_(e),a=f.get(i);if(!a)return $({code:`RESOURCE_NOT_FOUND`,message:`"${e}" 不是受保护字段`,hint:`resource_update 仅改 data.resources 声明的字段`});if(a.mode===`freeze`)return $({code:`FROZEN_FIELD`,message:`字段 "${e}" 已冻结,resource_update 也不可改`,hint:`冻结字段完全只读`});let o=Cp(s,i);if(o){let n=o.safeParse(t);if(!n.success)return $({code:`SCHEMA_INVALID`,message:`resource_update 值不符合 "${e}" 的类型`,hint:`按字段类型传值`,details:Ul(n.error.issues)})}let l=await ee();try{p.update(i,t),mm(c,i,t),T(k(),r),re()}finally{l.release()}let u=p.get(i)?.handle;return`已更新 verbatim 资源 "${e}" = ${xm(t,200)}(handle ${u??`(未知)`} 不变)。后续 write 该字段写回句柄 ⟦res:${u}⟧ 或新值`},{name:`resource_update`,description:`更新 verbatim 受保护字段的真实值(改精确原值,如刷新 token/hash)。仅 verbatim 可改;freeze 拒。更新后同步 bind + 标脏,后续 write 写回句柄即用新值。`,schema:t.z.object({path:t.z.string().describe(`要更新的 verbatim 受保护字段路径`),value:t.z.unknown().describe(`新值(需符合字段 schema 类型)`)})});oe(n);let r=(0,i.tool)(async()=>{let e=p.list();if(!e.length){let e=[...h.resourcesByPath.entries()].filter(([,e])=>e.mode===`freeze`).map(([e])=>e);return e.length?`资源池为空,但集成方静态配置了 freeze 只读字段:${e.join(`、 `)}(freeze 无句柄、不可释放;resource_delete 仅对 verbatim 生效)`:`当前无已注册的受保护资源(read 受保护路径会懒注册)`}return xm({resources:e})},{name:`resource_list`,description:`列出所有已注册的受保护资源(path/mode/handle/bytes)。`,schema:t.z.object({})}),a=(0,i.tool)(async({path:e,handle:t})=>{let n=e;return!n&&t&&(n=p.get(t)?.path),n?p.delete(n)?`已释放资源 "${n}"(后续 read 该字段会重新懒注册)`:h.resourcesByPath.get(n)?.mode===`freeze`?$({code:`FROZEN_FIELD`,message:`字段 "${n}" 为 freeze 静态保护(不在资源池、无句柄、不可释放)`,hint:`freeze 由集成方在 data.resources 静态配置,只读不可解;含冻结字段的元素无法整体删除,请保留该元素或由集成方调整 data.resources`}):`资源 "${n}" 不存在(无需释放)`:$({code:`RESOURCE_NOT_FOUND`,message:`未提供 path 或有效 handle`,hint:`传要释放的受保护字段 path 或 handle`})},{name:`resource_delete`,description:`释放受保护资源(从资源池删除,后续 read 重新懒注册)。用于不再需要保护的字段或释放空间。`,schema:t.z.object({path:t.z.string().optional().describe(`要释放的受保护字段路径`),handle:t.z.string().optional().describe(`占位符句柄(与 path 二选一)`)})});oe(a),pe.push(e,n,r,a)}let me=[se,ce,L,R,le,ue,de,z,B,...fe,...pe];function V(e){let t=e,n=e=>{if(e===void 0)return`undefined`;let t=xm(e,200);return t===void 0?String(e):t},r=e=>typeof e==`string`?e:String(e?.content??`校验失败`);if(t.del){let e=String(t.patch?.jsonPath??``);return{ok:!0,intent:`delete`,items:[{op:`delete`,jsonPath:e,oldSummary:n(pm(c,e)),newSummary:`(删除)`}]}}if(t.patches?.length||t.patch){let e=t.patches?.length?t.patches:[{op:t.patch?.op??`set`,jsonPath:t.patch?.jsonPath??``,value:t.patch?.value}],i=K_({bindRef:c,patches:e,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,markDataDirty:()=>{},schemaErrorMode:`zod`,dryRun:!0,protectedCtx:h});return i.ok?{ok:!0,intent:`edit`,items:e.map(e=>({op:String(e.op??`set`),jsonPath:String(e.jsonPath??``),oldSummary:n(pm(c,String(e.jsonPath??``))),newSummary:n(e.value)}))}:{ok:!1,intent:`edit`,items:[],error:r(i.error)}}let i=vm(t.value);if(i.parseError)return{ok:!1,intent:`set`,items:[],error:`JSON 解析失败:${i.parseError}`};let a=G_({bindRef:c,value:i.parsed,schema:s,allowKeys:d,snapshots:g,maxSnapshots:_,audit:()=>{},dryRun:!0,protectedCtx:h,hashFn:k});if(!a.ok)return{ok:!1,intent:`set`,items:[],error:r(a.error)};let o=l()??{},u=a.data??{},f=(d??[]).filter(e=>JSON.stringify(o[e])!==JSON.stringify(u[e]));return{ok:!0,intent:`set`,items:f.length?f.map(e=>({op:`set`,jsonPath:e,oldSummary:n(o[e]),newSummary:n(u[e])})):[{op:`set`,jsonPath:``,oldSummary:n(c),newSummary:n(a.data)}]}}Object.defineProperty(me,"controller",{value:ie,enumerable:!1,configurable:!1,writable:!1}),Object.defineProperty(me,"previewWrite",{value:V,enumerable:!1,configurable:!1,writable:!1});for(let e of me)Object.defineProperty(e,"__dataOpsScoped",{value:!0,enumerable:!1,configurable:!1});return me}var iv=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),av=new Set([`script`,`style`]);function ov(e){let t=[],n=e.length;if(!e.trim())return t;let r=[0];for(let t=0;t<n;t++)e[t]===`
|
|
@@ -3079,7 +3079,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
3079
3079
|
https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};ie(`before:highlight`,a);let o=a.result?a.result:v(a.language,a.code,n);return o.code=a.code,ie(`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(!A.keywords){M.addText(N);return}let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(N),n=``;for(;t;){n+=N.substring(e,t.index);let r=D.case_insensitive?t[0].toLowerCase():t[0],i=u(A,r);if(i){let[e,a]=i;if(M.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=Oe&&(te+=a),e.startsWith(`_`))n+=t[0];else{let n=D.classNameAliases[e]||e;m(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(N)}n+=N.substring(e),M.addText(n)}function f(){if(N===``)return;let e=null;if(typeof A.subLanguage==`string`){if(!t[A.subLanguage]){M.addText(N);return}e=v(A.subLanguage,N,!0,j[A.subLanguage]),j[A.subLanguage]=e._top}else e=S(N,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(te+=e.relevance),M.__addSublanguage(e._emitter,e.language)}function p(){A.subLanguage==null?d():f(),N=``}function m(e,t){e!==``&&(M.startScope(t),M.addText(e),M.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):(N=i,d(),N=``),n++}}function g(e,t){return e.scope&&typeof e.scope==`string`&&M.openNode(D.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(m(N,D.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),N=``):e.beginScope._multi&&(h(e.beginScope,t),N=``)),A=Object.create(e,{parent:{value:A}}),A}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 A.matcher.regexIndex===0?(N+=e[0],1):(re=!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?N+=t:(n.excludeBegin&&(N+=t),p(),!n.returnBegin&&!n.excludeBegin&&(N=t)),g(n,e),n.returnBegin?0:t.length}function C(e){let t=e[0],r=n.substring(e.index),i=_(A,e,r);if(!i)return De;let a=A;A.endScope&&A.endScope._wrap?(p(),m(t,A.endScope._wrap)):A.endScope&&A.endScope._multi?(p(),h(A.endScope,e)):a.skip?N+=t:(a.returnEnd||a.excludeEnd||(N+=t),p(),a.excludeEnd&&(N=t));do A.scope&&M.closeNode(),!A.skip&&!A.subLanguage&&(te+=A.relevance),A=A.parent;while(A!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function w(){let e=[];for(let t=A;t!==D;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>M.openNode(e))}let T={};function E(t,r){let a=r&&r[0];if(N+=t,a==null)return p(),0;if(T.type===`begin`&&r.type===`end`&&T.index===r.index&&a===``){if(N+=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 "`+(A.scope||`<unnamed>`)+`"`);throw e.mode=A,e}else if(r.type===`end`){let e=C(r);if(e!==De)return e}if(r.type===`illegal`&&a===``)return N+=`
|
|
3080
3080
|
`,1;if(P>1e5&&P>r.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return N+=a,a.length}let D=ee(e);if(!D)throw pe(s.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let O=be(D),k=``,A=a||O,j={},M=new l.__emitter(l);w();let N=``,te=0,ne=0,P=0,re=!1;try{if(D.__emitTokens)D.__emitTokens(n,M);else{for(A.matcher.considerAll();;){P++,re?re=!1:A.matcher.considerAll(),A.matcher.lastIndex=ne;let e=A.matcher.exec(n);if(!e)break;let t=E(n.substring(ne,e.index),e);ne=e.index+t}E(n.substring(ne))}return M.finalize(),k=M.toHTML(),{language:e,value:k,relevance:te,illegal:!1,_emitter:M,_top:A}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:Te(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:ne,context:n.slice(ne-100,ne+100),mode:t.mode,resultSoFar:k},_emitter:M};if(o)return{language:e,value:Te(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:A};throw t}}function b(e){let t={value:Te(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(ee).filter(te).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(ee(e.language).supersetOf===t.language)return 1;if(ee(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(ie(`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 we(`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}),ie(`after:highlightElement`,{el:e,result:i,text:r})}function T(e){l=Ee(l,e)}let E=()=>{k(),V(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function D(){k(),V(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let O=!1;function k(){function e(){k()}if(document.readyState===`loading`){O||window.addEventListener(`DOMContentLoaded`,e,!1),O=!0;return}document.querySelectorAll(l.cssSelector).forEach(w)}function A(n,r){let i=null;try{i=r(e)}catch(e){if(pe(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),o)pe(e);else throw e;i=c}i.name||=n,t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&N(i.aliases,{languageName:n})}function j(e){delete t[e];for(let t of Object.keys(i))i[t]===e&&delete i[t]}function M(){return Object.keys(t)}function ee(e){return e=(e||``).toLowerCase(),t[e]||t[i[e]]}function N(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{i[e.toLowerCase()]=t})}function te(e){let t=ee(e);return t&&!t.disableAutodetect}function ne(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 P(e){ne(e),a.push(e)}function re(e){let t=a.indexOf(e);t!==-1&&a.splice(t,1)}function ie(e,t){let n=e;a.forEach(function(e){e[n]&&e[n](t)})}function ae(e){return V(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),V(`10.7.0`,`Please use highlightElement now.`),w(e)}Object.assign(e,{highlight:p,highlightAuto:S,highlightAll:k,highlightElement:w,highlightBlock:ae,configure:T,initHighlighting:E,initHighlightingOnLoad:D,registerLanguage:A,unregisterLanguage:j,listLanguages:M,getLanguage:ee,registerAliases:N,autoDetection:te,inherit:Ee,addPlugin:P,removePlugin:re}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=Ce,e.regex={concat:_,lookahead:m,either:y,optional:g,anyNumberOfTimes:h};for(let e in F)typeof F[e]==`object`&&n(F[e]);return Object.assign(e,F),e},Ae=ke({});Ae.newInstance=()=>ke({}),t.exports=Ae,Ae.HighlightJS=Ae,Ae.default=Ae})),$M=f(((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})),eN=f(((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})),tN=f(((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})),nN=f(((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})),rN=f(((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})),iN=f(((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})),aN=f(((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})),oN=f(((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})),sN=f(((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})),cN=f(((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})),lN=f(((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})),uN=f(((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})),dN=f(((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})),fN=f(((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),O=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),k={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:O},A={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`}}]},j={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]}},M={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ee={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[k],illegal:/%/},N={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function te(e){return t.concat(`(?!`,e.join(`|`),`)`)}let ne={match:t.concat(/\b/,te([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},P={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},re={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},k]},ie=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,F={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ie)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[k]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),M,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,j,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},F,{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:ie,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:O}]}]},{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`]}]}]},ee,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[k,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},P,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[k]},ne,N,A,re,{match:/\$[(.]/}]}}t.exports=u})),pN=f(((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})),mN=f(((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:`
|
|
3081
3081
|
`},u]}}t.exports=o})),hN=f(((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})),gN=f(((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})),_N=f(((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})),vN=f(((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})),yN=f(((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})),bN=f(((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=`[
|
|
3082
|
-
]`,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],O={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:[O,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`,O,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})),xN=f(((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})),SN=f(((e,t)=>{function n(e){return{name:`Plain text`,aliases:[`text`,`txt`],disableAutodetect:!0}}t.exports=n})),CN=f(((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})),wN=f(((e,t)=>{function n(e){return{aliases:[`pycon`],contains:[{className:`meta.prompt`,starts:{end:/ |$/,starts:{end:`$`,subLanguage:`python`}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}t.exports=n})),TN=f(((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})),EN=f(((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})),DN=f(((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})),ON=f(((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})),kN=f(((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})),AN=f(((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},O=[g,y,E],k=[{match:i(/\./,o(...h)),relevance:0},{className:`built_in`,match:i(/\b/,o(...h),/(?=\()/)}],A={match:/->/,relevance:0},j=[A,{className:`operator`,relevance:0,variants:[{match:v},{match:`\\.(\\.|${_})+`}]}],M=`([0-9]_*)+`,ee=`([0-9a-fA-F]_*)+`,N={className:`number`,relevance:0,variants:[{match:`\\b(${M})(\\.(${M}))?([eE][+-]?(${M}))?\\b`},{match:`\\b0x(${ee})(\\.(${ee}))?([pP][+-]?(${M}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},te=(e=``)=>({className:`subst`,variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ne=(e=``)=>({className:`subst`,match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),P=(e=``)=>({className:`subst`,label:`interpol`,begin:i(/\\/,e,/\(/),end:/\)/}),re=(e=``)=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[te(e),ne(e),P(e)]}),ie=(e=``)=>({begin:i(e,/"/),end:i(/"/,e),contains:[te(e),P(e)]}),F={className:`string`,variants:[re(),re(`#`),re(`##`),re(`###`),ie(),ie(`#`),ie(`##`),ie(`###`)]},ae=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],I={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:ae},oe=e=>{let t=i(e,/\//),n=i(/\//,e);return{begin:t,end:n,contains:[...ae,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},se={scope:`regexp`,variants:[oe(`###`),oe(`##`),oe(`#`),I]},ce={match:i(/`/,x,/`/)},L=[ce,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${b}+`}],R=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:w,contains:[...j,N,F]}]}},{scope:`keyword`,match:i(/@/,o(...C),r(o(/\(/,/\s+/)))},{scope:`meta`,match:i(/@/,x)}],le={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}]},ue={begin:/</,end:/>/,keywords:D,contains:[...a,...O,...R,A,le]};le.contains.push(ue);let de={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:[`self`,{match:i(x,/\s*:/),keywords:`_|0`,relevance:0},...a,se,...O,...k,...j,N,F,...L,...R,le]},z={begin:/</,end:/>/,keywords:`repeat each`,contains:[...a,le]},B={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,...O,...j,N,F,...R,le,de],endsParent:!0,illegal:/["']/},fe={match:[/(func|macro)/,/\s+/,o(ce.match,x,v)],className:{1:`keyword`,3:`title.function`},contains:[z,B,t],illegal:[/\[/,/%/]},pe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[z,B,t],illegal:/\[|%/},me={match:[/operator/,/\s+/,v],className:{1:`keyword`,3:`title`}},V={begin:[/precedencegroup/,/\s+/,S],className:{1:`keyword`,3:`title`},contains:[le],keywords:[...p,...f],end:/}/},he={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},ge={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},H={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,x,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:D,contains:[z,...O,{begin:/:/,end:/\{/,keywords:D,contains:[{scope:`title.class.inherited`,match:S},...O],relevance:0}]};for(let e of F.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=D;let n=[...O,...k,...j,N,F,...L];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:D,contains:[...a,fe,pe,he,ge,H,me,V,{beginKeywords:`import`,end:/$/,contains:[...a],relevance:0},se,...O,...k,...j,N,F,...L,...R,le,de]}}t.exports=T})),jN=f(((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})),MN=f(((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),O=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),k={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:O},A={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`}}]},j={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]}},M={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ee={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[k],illegal:/%/},N={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function te(e){return t.concat(`(?!`,e.join(`|`),`)`)}let ne={match:t.concat(/\b/,te([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},P={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},re={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},k]},ie=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,F={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ie)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[k]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),M,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,j,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},F,{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:ie,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:O}]}]},{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`]}]}]},ee,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[k,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},P,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[k]},ne,N,A,re,{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})),NN=f(((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})),PN=f(((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})),FN=m(f(((e,t)=>{var n=QM();n.registerLanguage(`xml`,$M()),n.registerLanguage(`bash`,eN()),n.registerLanguage(`c`,tN()),n.registerLanguage(`cpp`,nN()),n.registerLanguage(`csharp`,rN()),n.registerLanguage(`css`,iN()),n.registerLanguage(`markdown`,aN()),n.registerLanguage(`diff`,oN()),n.registerLanguage(`ruby`,sN()),n.registerLanguage(`go`,cN()),n.registerLanguage(`graphql`,lN()),n.registerLanguage(`ini`,uN()),n.registerLanguage(`java`,dN()),n.registerLanguage(`javascript`,fN()),n.registerLanguage(`json`,pN()),n.registerLanguage(`kotlin`,mN()),n.registerLanguage(`less`,hN()),n.registerLanguage(`lua`,gN()),n.registerLanguage(`makefile`,_N()),n.registerLanguage(`perl`,vN()),n.registerLanguage(`objectivec`,yN()),n.registerLanguage(`php`,bN()),n.registerLanguage(`php-template`,xN()),n.registerLanguage(`plaintext`,SN()),n.registerLanguage(`python`,CN()),n.registerLanguage(`python-repl`,wN()),n.registerLanguage(`r`,TN()),n.registerLanguage(`rust`,EN()),n.registerLanguage(`scss`,DN()),n.registerLanguage(`shell`,ON()),n.registerLanguage(`sql`,kN()),n.registerLanguage(`swift`,AN()),n.registerLanguage(`yaml`,jN()),n.registerLanguage(`typescript`,MN()),n.registerLanguage(`vbnet`,NN()),n.registerLanguage(`wasm`,PN()),n.HighlightJS=n,n.default=n,t.exports=n}))()).default;ZM.setOptions({breaks:!0,gfm:!0});var IN=2e4,LN=new ZM.Renderer;LN.code=({text:e,lang:t})=>{let n=(t||``).trim()||`plaintext`,r=``;if(e.length>2e4)r=zN(e);else try{r=FN.highlight(e,{language:n,ignoreIllegals:!0}).value}catch{r=zN(e)}let i=encodeURIComponent(e),a=RN(n);return`<pre class="code-block" data-lang="${a}" data-code="${i}"><code class="hljs language-${a}">${r}</code></pre>`};function RN(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`)}function zN(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}var BN={ADD_ATTR:[`data-code`,`data-lang`,`target`,`rel`]};function VN(e){return kk.sanitize(e,BN)}function HN(e){return ZM.parse(e||``,{renderer:LN})}function UN(e){return VN(HN(e))}var WN=100,GN=2e3;function KN(e){let t=In(UN(e())),n=0,r=null;function i(){r=null,n=Date.now(),t.value=UN(e())}return mi(e,()=>{let a=e();if(a.length<=GN){r&&=(clearTimeout(r),null),n=Date.now(),t.value=UN(a);return}let o=n+WN-Date.now();o<=0?(r&&=(clearTimeout(r),null),i()):r||=setTimeout(i,o)}),lt(()=>{r&&=(clearTimeout(r),null)}),{html:t,codeBlocks:uc(()=>{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 qN=[`innerHTML`],JN=qi({__name:`MessageContent`,props:{content:{},messages:{default:()=>eO}},setup(e){let t=e,{html:n,codeBlocks:r}=KN(()=>t.content),i=G(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 yr();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 ZD(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 la(s),mi(n,s),(e,t)=>(Y(),X(`div`,{class:`message-md`,ref_key:`containerRef`,ref:i,innerHTML:K(n)},null,8,qN))}}),YN={class:`typing-text`},XN={key:0,class:`stream-cursor`},ZN=Vk(qi({__name:`MessageBubble`,props:{content:{},role:{},isPendingAssistant:{type:Boolean},showTyping:{type:Boolean},showCursor:{type:Boolean},messages:{default:()=>({...eO})}},setup(e){return(t,n)=>(Y(),X(J,null,[Z(`div`,{class:We([`message-bubble`,[e.role,{typing:e.isPendingAssistant}]])},[e.isPendingAssistant?(Y(),X(J,{key:0},[Z(`span`,{class:We([`typing-dot`,{pulse:e.showTyping}])},null,2),Z(`span`,YN,[ws(Wk,{text:e.messages.thinking},null,8,[`text`])])],64)):(Y(),X(J,{key:1},[e.role===`assistant`?(Y(),_s(JN,{key:0,content:e.content,messages:e.messages},null,8,[`content`,`messages`])):(Y(),X(J,{key:1},[ks(U(e.content),1)],64))],64))],2),e.showCursor?(Y(),X(`span`,XN)):Q(``,!0)],64))}}),[[`__scopeId`,`data-v-4b4111d8`]]),QN={class:`msg-edit`,"data-test":`msg-edit`},$N=[`disabled`],eP={class:`msg-edit-actions`},tP=[`disabled`],nP=[`disabled`],rP=Vk(qi({__name:`MessageEdit`,props:{initialValue:{},hasImages:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},messages:{default:()=>({...eO})}},emits:[`save`,`cancel`],setup(e,{emit:t}){let n=e,r=t,i=G(n.initialValue),a=G(null);function o(){let e=a.value;e&&(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)}la(async()=>{await yr();let e=a.value;e&&(o(),e.focus(),e.setSelectionRange(e.value.length,e.value.length))});function s(e){if(e.key===`Escape`){e.preventDefault(),r(`cancel`);return}e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),c())}function c(){n.loading||!i.value.trim()&&!n.hasImages||r(`save`,i.value)}return(t,n)=>(Y(),X(`div`,QN,[ci(Z(`textarea`,{ref_key:`ta`,ref:a,"onUpdate:modelValue":n[0]||=e=>i.value=e,class:`msg-edit-area`,"data-test":`msg-edit-area`,disabled:e.loading,onKeydown:s,onInput:o},null,40,$N),[[Ol,i.value]]),Z(`div`,eP,[Z(`button`,{type:`button`,class:`msg-edit-btn primary`,"data-test":`msg-edit-save`,disabled:e.loading||!(i.value.trim()||e.hasImages),onClick:c},U(e.messages.editSave),9,tP),Z(`button`,{type:`button`,class:`msg-edit-btn`,"data-test":`msg-edit-cancel`,disabled:e.loading,onClick:n[1]||=e=>t.$emit(`cancel`)},U(e.messages.editCancel),9,nP)])]))}}),[[`__scopeId`,`data-v-e2fafbfd`]]),iP={class:`message-time`},aP=Vk(qi({__name:`MessageTime`,props:{time:{}},setup(e){return(t,n)=>(Y(),X(`div`,iP,U(e.time),1))}}),[[`__scopeId`,`data-v-4a976e4a`]]),oP={class:`msg-actions`},sP=[`title`],cP=[`title`],lP={key:0,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},uP={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},dP=Vk(qi({__name:`MessageActions`,props:{copied:{type:Boolean},editable:{type:Boolean,default:!1},messages:{default:()=>({...eO})}},emits:[`copy`,`regenerate`,`edit`],setup(e){return(t,n)=>(Y(),X(`div`,oP,[e.editable?(Y(),X(`button`,{key:0,class:`msg-action-btn`,title:e.messages.editTitle,"data-test":`msg-edit-btn`,onClick:n[0]||=e=>t.$emit(`edit`)},[n[3]||=Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M11.3 2.2a1.5 1.5 0 0 1 2.1 2.1l-7.6 7.6-2.9.8.8-2.9 7.6-7.6z`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linejoin":`round`})],-1),Z(`span`,null,U(e.messages.edit),1)],8,sP)):Q(``,!0),e.editable?Q(``,!0):(Y(),X(J,{key:1},[Z(`button`,{class:We([`msg-action-btn`,{done:e.copied}]),title:e.copied?e.messages.copied:e.messages.copy,onClick:n[1]||=e=>t.$emit(`copy`)},[e.copied?(Y(),X(`svg`,lP,[...n[4]||=[Z(`path`,{d:`M3 8.5l3 3 7-7`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(Y(),X(`svg`,uP,[...n[5]||=[Z(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1),Z(`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)]])),Z(`span`,null,U(e.copied?e.messages.copied:e.messages.copy),1)],10,cP),Z(`button`,{class:`msg-action-btn`,onClick:n[2]||=e=>t.$emit(`regenerate`)},[n[6]||=Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M13.5 8a5.5 5.5 0 1 1-1.6-3.9`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`}),Z(`path`,{d:`M13.7 1.8v2.8h-2.8`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),Z(`span`,null,U(e.messages.regenerate),1)])],64))]))}}),[[`__scopeId`,`data-v-f6c166bd`]]),fP={key:1,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},pP={key:2,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},mP=Vk(qi({__name:`AvatarIcon`,props:{role:{},glyph:{}},setup(e){return(t,n)=>e.glyph?(Y(),_s(Hk,{key:0,icon:e.glyph,class:`avatar-glyph`},null,8,[`icon`])):e.role===`user`?(Y(),X(`svg`,fP,[...n[0]||=[Z(`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)]])):(Y(),X(`svg`,pP,[...n[1]||=[Z(`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`]]),hP=[`data-msg-idx`],gP={key:0,class:`message-avatar`},_P={class:`message-content`},vP={key:2,class:`msg-focuses`},yP=[`title`],bP={key:3,class:`msg-quote`,"data-test":`msg-quote`},xP={class:`msg-quote-text`},SP={key:0,class:`msg-quote-source`},CP=[`data-img-count`],wP=[`title`,`onClick`],TP=[`src`,`alt`],EP={key:1,class:`msg-image-lost`},DP=Vk(qi({__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`,`edit`,`edit-save`,`edit-cancel`],setup(e){let t=e,n=oO(),r=uc(()=>t.message.role===`assistant`),i=uc(()=>r.value&&`reasoning`in t.message?t.message.reasoning??``:``),a=uc(()=>r.value&&`reasoningTotal`in t.message?t.message.reasoningTotal:void 0),o=uc(()=>r.value&&`steps`in t.message?t.message.steps??[]:[]),s=uc(()=>r.value&&!!t.message.content&&!t.loading&&t.isLast),c=uc(()=>n.editingMessage.value===t.message),l=uc(()=>t.message.role===`user`&&!c.value),u=uc(()=>t.message.content===`[image]`?``:t.message.content),d=uc(()=>r.value&&t.loading&&t.isLast&&!!t.message.content),f=G(void 0);return(t,p)=>(Y(),X(J,null,[Z(`div`,{class:We([`message-row`,e.message.role]),"data-msg-idx":e.index},[e.showAvatar?(Y(),X(`div`,gP,[ws(mP,{role:e.message.role,glyph:e.message.role===`user`?K(n).icons.userAvatar:K(n).icons.assistantAvatar},null,8,[`role`,`glyph`])])):Q(``,!0),Z(`div`,_P,[r.value?(Y(),_s(NA,{key:0,text:i.value,total:a.value,expanded:e.reasoningExpanded,running:e.loading&&e.isLast,onToggle:p[0]||=e=>t.$emit(`toggle-reasoning`)},null,8,[`text`,`total`,`expanded`,`running`])):Q(``,!0),r.value?(Y(),_s(_j,{key:1,steps:o.value,icons:K(n).icons,messages:K(n).messages,"step-view":K(n).toolStepView},null,8,[`steps`,`icons`,`messages`,`step-view`])):Q(``,!0),e.message.role===`user`&&e.message.focuses?.length?(Y(),X(`div`,vP,[(Y(!0),X(J,null,ya(e.message.focuses,e=>(Y(),X(`span`,{key:e.path,class:`msg-focus-chip`,title:K(n).messages.historyFocusChipTitlePrefix+e.path},[ws(Hk,{icon:K(n).icons.focus},null,8,[`icon`]),ks(` `+U(e.path),1)],8,yP))),128))])):Q(``,!0),e.message.role===`user`&&e.message.quote?(Y(),X(`div`,bP,[Z(`blockquote`,xP,U(e.message.quote.text),1),e.message.quote.source?(Y(),X(`span`,SP,`❝ `+U(e.message.quote.source),1)):Q(``,!0)])):Q(``,!0),e.message.role===`user`&&e.message.images?.length?(Y(),X(`div`,{key:4,class:`msg-images`,"data-img-count":e.message.images.length},[(Y(!0),X(J,null,ya(e.message.images,e=>(Y(),X(`button`,{key:e.id,type:`button`,class:`msg-image`,title:e.name||K(n).messages.imageAlt,onClick:t=>f.value=e.dataUri||e.url},[e.thumb||e.dataUri?(Y(),X(`img`,{key:0,class:`msg-image-thumb`,src:e.thumb||e.dataUri,alt:e.name||K(n).messages.imageAlt},null,8,TP)):(Y(),X(`span`,EP,`🖼️`))],8,wP))),128))],8,CP)):Q(``,!0),c.value?(Y(),_s(rP,{key:5,"initial-value":u.value,"has-images":!!e.message.images?.length,loading:e.loading,messages:K(n).messages,onSave:p[1]||=e=>t.$emit(`edit-save`,e),onCancel:p[2]||=e=>t.$emit(`edit-cancel`)},null,8,[`initial-value`,`has-images`,`loading`,`messages`])):!r.value||e.message.content||e.isPendingAssistant?(Y(),_s(ZN,{key:6,messages:K(n).messages,content:e.message.content,role:e.message.role,"is-pending-assistant":e.isPendingAssistant,"show-typing":e.showTyping,"show-cursor":d.value},null,8,[`messages`,`content`,`role`,`is-pending-assistant`,`show-typing`,`show-cursor`])):Q(``,!0),ws(aP,{time:e.time},null,8,[`time`]),s.value||l.value?(Y(),_s(dP,{key:7,editable:l.value,messages:K(n).messages,copied:e.copied,onCopy:p[3]||=e=>t.$emit(`copy`),onRegenerate:p[4]||=e=>t.$emit(`regenerate`),onEdit:p[5]||=e=>t.$emit(`edit`)},null,8,[`editable`,`messages`,`copied`])):Q(``,!0)])],10,hP),ws(HA,{src:f.value,alt:K(n).messages.imageAlt,"close-title":K(n).messages.close,onClose:p[6]||=e=>f.value=void 0},null,8,[`src`,`alt`,`close-title`])],64))}}),[[`__scopeId`,`data-v-70c7d2f4`]]),OP={class:`chat-body`},kP={key:0,class:`empty-state`},AP={class:`empty-icon`},jP={key:1,class:`message-row assistant`},MP={key:0,class:`message-avatar`},NP={class:`message-content`},PP={key:2,class:`error-bar`},FP={class:`error-text`},IP=[`title`],LP=Vk(qi({__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,startEdit:f,submitEdit:p,cancelEdit:m}=oO(),{state:h,retry:g,regenerate:_}=t,v=uc(()=>h.messages.length>0),y=uc(()=>h.messages.some(e=>e.role===`user`)),b=uc(()=>h.messages[h.messages.length-1]?.role===`assistant`);return(t,x)=>(Y(),X(`div`,OP,[v.value?Q(``,!0):(Y(),X(`div`,kP,[Z(`div`,AP,[ws(Hk,{icon:K(u).empty},null,8,[`icon`])]),Z(`p`,null,[ws(Wk,{text:K(d).emptyGreeting},null,8,[`text`])])])),(Y(!0),X(J,null,ya(K(h).messages,(t,c)=>(Y(),_s(DP,{key:c,message:t,index:c,"show-avatar":e.showAvatar,"show-typing":e.showTyping,"is-pending-assistant":K(a)(c),"reasoning-expanded":K(o)(c),copied:K(r),"is-last":c===K(h).messages.length-1,loading:K(h).loading,time:K(n)(t.timestamp),onToggleReasoning:e=>K(s)(c),onCopy:e=>K(i)(t.content),onRegenerate:K(_),onEdit:e=>K(f)(t),onEditSave:K(p),onEditCancel:K(m)},null,8,[`message`,`index`,`show-avatar`,`show-typing`,`is-pending-assistant`,`reasoning-expanded`,`copied`,`is-last`,`loading`,`time`,`onToggleReasoning`,`onCopy`,`onRegenerate`,`onEdit`,`onEditSave`,`onEditCancel`]))),128)),K(h).loading&&!b.value?(Y(),X(`div`,jP,[e.showAvatar?(Y(),X(`div`,MP,[ws(mP,{role:`assistant`,glyph:K(u).assistantAvatar},null,8,[`glyph`])])):Q(``,!0),Z(`div`,NP,[ws(ZN,{content:``,role:`assistant`,"is-pending-assistant":!0,"show-typing":e.showTyping,"show-cursor":!1,messages:K(d)},null,8,[`show-typing`,`messages`])])])):Q(``,!0),K(h).error?(Y(),X(`div`,PP,[Z(`span`,FP,U(K(h).error),1),y.value?(Y(),X(`button`,{key:0,class:`retry-btn`,onClick:x[0]||=(...e)=>K(g)&&K(g)(...e)},[ws(Wk,{text:K(d).retry},null,8,[`text`])])):Q(``,!0),K(c)?(Y(),X(`button`,{key:1,class:`undo-btn`,title:K(d).undoTitle,onClick:x[1]||=(...e)=>K(l)&&K(l)(...e)},[ws(Wk,{text:K(d).undo},null,8,[`text`])],8,IP)):Q(``,!0)])):Q(``,!0)]))}}),[[`__scopeId`,`data-v-c0dd8179`]]),RP={key:0,class:`queued-bar`},zP={class:`queued-head`},BP={class:`queued-icon`},VP={class:`queued-title`},HP={class:`queued-count`},UP={class:`queued-idx`},WP={class:`queued-text`},GP=[`title`,`onClick`],KP=[`title`,`onClick`],qP=Vk(qi({__name:`QueuedBar`,setup(e){let{chat:t,editQueued:n,icons:r,messages:i}=oO(),{queuedTasks:a,removeQueuedTask:o}=t;return(e,t)=>K(a).length?(Y(),X(`div`,RP,[Z(`div`,zP,[Z(`span`,BP,[ws(Hk,{icon:K(r).queued},null,8,[`icon`])]),Z(`span`,VP,U(K(i).queuedTitle),1),Z(`span`,HP,U(K(a).length),1)]),(Y(!0),X(J,null,ya(K(a),(e,t)=>(Y(),X(`div`,{key:t,class:`queued-item`},[Z(`span`,UP,U(t+1),1),Z(`span`,WP,U(e),1),Z(`button`,{class:`queued-act`,title:K(i).queuedEditTitle,onClick:e=>K(n)(t)},[ws(Hk,{icon:K(r).queuedEdit},null,8,[`icon`])],8,GP),Z(`button`,{class:`queued-act queued-del`,title:K(i).removeQueuedTitle,onClick:e=>K(o)(t)},`✕`,8,KP)]))),128))])):Q(``,!0)}}),[[`__scopeId`,`data-v-02414fc9`]]),JP={key:0,class:`approval-bar`},YP={class:`approval-head`},XP={class:`approval-title`},ZP={key:0,class:`approval-question`},QP={key:1,class:`approval-context`},$P={key:2,class:`approval-recommend`},eF={key:3,class:`approval-options`},tF=[`onClick`],nF={class:`approval-actions`},rF={class:`approval-head`},iF={class:`approval-title`},aF={key:0,class:`approval-args`},oF={key:1,class:`approval-preview`,"data-test":`approval-preview`},sF={key:0,class:`preview-error`,"data-test":`preview-error`},cF=[`data-test`],lF={class:`preview-op`},uF={class:`preview-path`},dF={class:`preview-diff`},fF={class:`preview-old`},pF={class:`preview-new`},mF={key:1,class:`preview-more`},hF={key:2,class:`approval-plan-context`},gF={class:`approval-actions`},_F=20,vF=Vk(qi({__name:`ApprovalBar`,setup(e){let t=oO(),{pendingApproval:n,resolveApproval:r}=t.chat,i=t.messages,a=t.planConfirmation,o=G(!1);mi(n,()=>{o.value=!1});let s=uc(()=>n.value?.toolName===`request_human_confirmation`),c=uc(()=>{let e=n.value?.args?.options;return Array.isArray(e)?e.map(String):[]}),l=uc(()=>{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)}}),u=uc(()=>n.value?.preview?.items??[]),d=uc(()=>u.value.length>_F);return(e,f)=>K(n)?(Y(),X(`div`,JP,[s.value?(Y(),X(J,{key:0},[Z(`div`,YP,[f[5]||=Z(`span`,{class:`approval-icon`},`❓`,-1),Z(`span`,XP,U(K(i).humanConfirmTitle),1)]),K(n).args?.question?(Y(),X(`div`,ZP,U(K(n).args.question),1)):Q(``,!0),K(n).args?.context?(Y(),X(`div`,QP,U(K(n).args.context),1)):Q(``,!0),K(n).args?.recommendation?(Y(),X(`div`,$P,[ws(Hk,{icon:K(t).icons.recommend},null,8,[`icon`]),ks(U(K(i).recommendPrefix)+U(K(n).args.recommendation),1)])):Q(``,!0),c.value.length?(Y(),X(`div`,eF,[(Y(!0),X(J,null,ya(c.value,e=>(Y(),X(`button`,{key:e,class:`approval-opt`,onClick:t=>K(r)(e)},U(e),9,tF))),128))])):Q(``,!0),Z(`div`,nF,[Z(`button`,{class:`approval-deny`,onClick:f[0]||=e=>K(r)(!1)},[ws(Wk,{text:K(i).deny},null,8,[`text`])]),c.value.length?Q(``,!0):(Y(),X(`button`,{key:0,class:`approval-allow`,onClick:f[1]||=e=>K(r)(!0)},[ws(Wk,{text:K(i).approve},null,8,[`text`])]))])],64)):(Y(),X(J,{key:1},[Z(`div`,rF,[f[6]||=Z(`span`,{class:`approval-icon`},`✋`,-1),Z(`span`,iF,[ks(U(K(i).toolConfirmPrefix),1),Z(`code`,null,U(K(n).toolName),1)]),l.value?(Y(),X(`button`,{key:0,class:`approval-toggle`,onClick:f[2]||=e=>o.value=!o.value},U(o.value?K(i).collapseArgs:K(i).viewArgs)+U(o.value?` ▴`:` ▾`),1)):Q(``,!0)]),l.value&&o.value?(Y(),X(`pre`,aF,U(l.value),1)):Q(``,!0),u.value.length?(Y(),X(`div`,oF,[K(n).preview&&!K(n).preview.ok?(Y(),X(`div`,sF,`⚠ `+U(K(n).preview.error),1)):Q(``,!0),(Y(!0),X(J,null,ya(u.value.slice(0,_F),(e,t)=>(Y(),X(`div`,{key:t,class:`preview-item`,"data-test":`preview-item-${t}`},[Z(`span`,lF,U(e.op||`set`),1),Z(`code`,uF,U(e.jsonPath||`(主数据整体)`),1),Z(`span`,dF,[Z(`span`,fF,U(e.oldSummary??`—`),1),f[7]||=Z(`span`,{class:`preview-arrow`},` → `,-1),Z(`span`,pF,U(e.newSummary??`—`),1)])],8,cF))),128)),d.value?(Y(),X(`div`,mF,`… 其余 `+U(u.value.length-_F)+` 项`,1)):Q(``,!0)])):Q(``,!0),K(a)?(Y(),X(`div`,hF,[ws(Hk,{icon:K(t).icons.recommend},null,8,[`icon`]),ks(U(K(i).planConfirmedPrefix)+U(K(a).choice)+U(K(i).planConfirmedSuffix),1)])):Q(``,!0),Z(`div`,gF,[Z(`button`,{class:`approval-deny`,onClick:f[3]||=e=>K(r)(!1)},[ws(Wk,{text:K(i).deny},null,8,[`text`])]),Z(`button`,{class:`approval-allow`,onClick:f[4]||=e=>K(r)(!0)},[ws(Wk,{text:K(i).approve},null,8,[`text`])])])],64))])):Q(``,!0)}}),[[`__scopeId`,`data-v-e7a8e88e`]]),yF={key:0,class:`conflict-bar`},bF={class:`conflict-head`},xF={class:`conflict-icon`},SF={class:`conflict-title`},CF={class:`conflict-detail`},wF={key:0,class:`conflict-diff`},TF={class:`conflict-diff-col`},EF={class:`conflict-diff-label`},DF={class:`conflict-diff-pre`},OF={class:`conflict-diff-col`},kF={class:`conflict-diff-label`},AF={class:`conflict-diff-pre`},jF={class:`conflict-actions`},MF=[`title`],NF=[`title`],PF=[`title`],FF=Vk(qi({__name:`ConflictBar`,props:{pendingConflict:{},onResolve:{},icons:{default:()=>({...QD})},messages:{default:()=>({...eO})}},setup(e){let t=e,n=G(!1);mi(()=>t.pendingConflict,()=>{n.value=!1});let r=uc(()=>{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=uc(()=>{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?(Y(),X(`div`,yF,[Z(`div`,bF,[Z(`span`,xF,[ws(Hk,{icon:e.icons.conflict},null,8,[`icon`])]),Z(`span`,SF,[ks(U(e.messages.conflictTitlePrefix),1),Z(`code`,null,U(e.pendingConflict.path),1),ks(U(e.messages.conflictTitleSuffix),1)])]),Z(`div`,CF,U(e.messages.conflictDetailTemplate.replace(`{op}`,e.pendingConflict.op===`delete`?e.messages.conflictOpDelete:e.messages.conflictOpWrite)),1),Z(`button`,{class:`conflict-toggle`,onClick:a[0]||=e=>n.value=!n.value},U(n.value?e.messages.collapseDiff:e.messages.viewDiff)+U(n.value?` ▴`:` ▾`),1),n.value?(Y(),X(`div`,wF,[Z(`div`,TF,[Z(`div`,EF,U(e.messages.agentValueLabel),1),Z(`pre`,DF,U(r.value||e.messages.deleteNoValue),1)]),Z(`div`,OF,[Z(`div`,kF,U(e.messages.currentValueLabel),1),Z(`pre`,AF,U(i.value),1)])])):Q(``,!0),Z(`div`,jF,[Z(`button`,{class:`conflict-keep`,onClick:a[1]||=t=>e.onResolve?.(`keep_external`),title:e.messages.keepExternalTitle},[ws(Wk,{text:e.messages.keepExternal},null,8,[`text`])],8,MF),Z(`button`,{class:`conflict-overwrite`,onClick:a[2]||=t=>e.onResolve?.(`overwrite`),title:e.messages.overwriteTitle},[ws(Wk,{text:e.messages.overwrite},null,8,[`text`])],8,NF),Z(`button`,{class:`conflict-restore`,onClick:a[3]||=t=>e.onResolve?.(`restore`),title:e.messages.restoreTitle},[ws(Wk,{text:e.messages.restore},null,8,[`text`])],8,PF)])])):Q(``,!0)}}),[[`__scopeId`,`data-v-36dda58c`]]),IF={class:`chat-footer`},LF=[`title`],RF={key:0,class:`drop-hint`},zF={key:1,class:`quick-actions`,"data-test":`quick-actions`},BF=[`disabled`,`data-test`,`title`,`onClick`],VF={key:2,class:`chip-stack`},HF={key:0,class:`focus-chips`},UF=[`title`,`onClick`],WF={class:`focus-chip-icon`},GF={class:`focus-chip-path`},KF=[`title`,`onClick`],qF={key:1,class:`quote-chips`,"data-test":`quote-chips`},JF=[`title`],YF={class:`quote-chip-text`},XF=[`title`],ZF={key:2,class:`img-chips`,"data-test":`img-chips`},QF=[`title`],$F=[`src`,`alt`],eI=[`onClick`],tI={key:3,class:`img-error`,"data-test":`img-error`},nI={key:3,class:`gate-hint`,"data-test":`gate-hint`},rI=[`placeholder`,`rows`,`disabled`],iI={class:`input-actions`},aI={class:`send-hint`},oI=[`title`,`disabled`],sI={key:1,width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},cI=[`disabled`,`title`],lI={key:0,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`},uI={key:2,width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},dI=Vk(qi({__name:`ChatInput`,props:{placeholder:{},inputRows:{},gatePending:{type:Boolean},quickActions:{},onDropElement:{type:Function},autoQuote:{type:Boolean}},setup(e){let t=e,n=oO(),{inputText:r,send:i,keydown:a,canUndo:o,undo:s,focuses:c,removeFocus:l,focusChipClick:u,icons:d,messages:f,quote:p,clearQuote:m,setQuote:h}=n,{state:g,stop:_,sendMessage:v}=n.chat,{pendingImages:y,addImageFiles:b,removePendingImage:x,imageInputError:S,compressingImages:C}=n,w=e=>{let t=f.quoteChipTitle;return e.source?`${e.source}\n\n${e.text}\n\n${t}`:`${e.text}\n\n${t}`},T=()=>{if(!t.autoQuote||typeof document>`u`)return;let e=ju(document);e&&h(e)},E=G(null),D=G(!1),O=()=>E.value?.click(),k=e=>{let t=e.target.files;t?.length&&b(t),e.target.value=``},A=e=>{D.value=!1;let n=e.dataTransfer?.files;if(n?.length){b(n);return}t.onDropElement&&ee?.isConnected&&(t.onDropElement(ee),ee=null)},j=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&&b(n)},M=e=>{t.gatePending||g.loading||v(e.prompt)},ee=null,N=null,te=e=>{e.target instanceof Element&&(ee=e.target,N&&clearTimeout(N),N=setTimeout(()=>{ee=null},2e3))},ne=()=>{ee=null};return la(()=>{t.onDropElement&&(window.addEventListener(`dragstart`,te,!0),window.addEventListener(`dragend`,ne,!0))}),fa(()=>{window.removeEventListener(`dragstart`,te,!0),window.removeEventListener(`dragend`,ne,!0),N&&clearTimeout(N)}),(t,n)=>(Y(),X(`div`,IF,[K(o)?(Y(),X(`button`,{key:0,class:`undo-foot-btn`,title:K(f).undoTitle,onClick:n[0]||=(...e)=>K(s)&&K(s)(...e)},U(K(f).undo),9,LF)):Q(``,!0),Z(`div`,{class:We([`chat-input-wrap`,{"drag-over":D.value}]),onPointerdownCapture:T,onDragover:n[5]||=jl(e=>D.value=!0,[`prevent`]),onDragleave:n[6]||=e=>D.value=!1,onDrop:jl(A,[`prevent`])},[D.value?(Y(),X(`div`,RF,[n[7]||=Z(`svg`,{class:`drop-hint-icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[Z(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`3`}),Z(`circle`,{cx:`9`,cy:`9`,r:`2`}),Z(`path`,{d:`m21 15-4.35-4.35a1.5 1.5 0 0 0-2.12 0L5 20`})],-1),ks(` `+U(K(f).imageDropHint),1)])):Q(``,!0),e.quickActions?.length?(Y(),X(`div`,zF,[(Y(!0),X(J,null,ya(e.quickActions,(t,n)=>(Y(),X(`button`,{key:n,type:`button`,class:`quick-action-chip`,disabled:e.gatePending||K(g).loading,"data-test":`quick-action-${n}`,title:t.prompt,onClick:e=>M(t)},U(t.icon?`${t.icon} `:``)+U(t.label),9,BF))),128))])):Q(``,!0),K(c).length||K(y).length||K(p)||K(S)?(Y(),X(`div`,VF,[K(c).length?(Y(),X(`div`,HF,[(Y(!0),X(J,null,ya(K(c),e=>(Y(),X(`span`,{key:e.path,class:`focus-chip`,title:K(f).focusChipTitlePrefix+e.path+K(f).focusChipTitleHint,onClick:t=>K(u)(e)},[Z(`span`,WF,[ws(Hk,{icon:K(d).focus},null,8,[`icon`])]),Z(`code`,GF,U(e.path),1),Z(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`focus-clear`,title:K(f).removeFocus,onClick:jl(t=>K(l)(e.path),[`stop`])},`✕`,8,KF)],8,UF))),128))])):Q(``,!0),K(p)?(Y(),X(`div`,qF,[Z(`span`,{class:`quote-chip`,title:w(K(p))},[n[8]||=Z(`span`,{class:`quote-chip-icon`},`❝`,-1),Z(`span`,YF,U(K(p).text),1),Z(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`quote-clear`,title:K(f).quoteRemove,onClick:n[1]||=jl(e=>K(m)(),[`stop`])},`✕`,8,XF)],8,JF)])):Q(``,!0),K(y).length?(Y(),X(`div`,ZF,[(Y(!0),X(J,null,ya(K(y),e=>(Y(),X(`span`,{key:e.id,class:`img-chip`,title:e.name||K(f).imageAlt},[Z(`img`,{class:`img-chip-thumb`,src:e.dataUri,alt:e.name||K(f).imageAlt},null,8,$F),Z(`button`,{type:`button`,class:`img-chip-x`,"data-test":`img-chip-x`,onClick:t=>K(x)(e.id)},`✕`,8,eI)],8,QF))),128))])):Q(``,!0),K(S)?(Y(),X(`div`,tI,U(K(S)),1)):Q(``,!0)])):Q(``,!0),e.gatePending?(Y(),X(`div`,nI,U(K(f).inputGateHint),1)):Q(``,!0),ci(Z(`textarea`,{"onUpdate:modelValue":n[2]||=e=>Fn(r)?r.value=e:null,class:`chat-input`,placeholder:e.placeholder,rows:e.inputRows,disabled:e.gatePending,onKeydown:n[3]||=(...e)=>K(a)&&K(a)(...e),onPaste:j},null,40,rI),[[Ol,K(r)]]),Z(`div`,iI,[Z(`span`,aI,U(K(f).sendHint),1),Z(`button`,{class:`attach-btn`,title:K(f).attachImageTitle,disabled:e.gatePending,"data-test":`attach-btn`,onClick:O},[K(d).attachImage?(Y(),_s(Hk,{key:0,icon:K(d).attachImage},null,8,[`icon`])):(Y(),X(`svg`,sI,[...n[9]||=[Z(`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,oI),Z(`input`,{ref_key:`fileInput`,ref:E,type:`file`,accept:`image/*`,multiple:``,hidden:``,"data-test":`attach-input`,onChange:k},null,544),Z(`button`,{class:We([`send-btn`,{"stop-btn":K(g).loading}]),disabled:!K(g).loading&&!K(r).trim()&&!K(y).length&&!K(C)||e.gatePending&&!K(g).loading,title:K(g).loading?K(f).stopTitle:K(f).sendTitle,onClick:n[4]||=e=>K(g).loading?K(_)():K(i)()},[K(g).loading?(Y(),X(`svg`,lI,[...n[10]||=[Z(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`},null,-1)]])):K(d).send?(Y(),_s(Hk,{key:1,icon:K(d).send},null,8,[`icon`])):(Y(),X(`svg`,uI,[...n[11]||=[Z(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`},null,-1),Z(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`},null,-1)]]))],10,cI)])],34)]))}}),[[`__scopeId`,`data-v-1580c76b`]]),fI={key:0,class:`debug-drawer`},pI={class:`drawer-header`},mI={class:`tab-group`},hI={class:`header-actions`},gI=[`title`],_I=[`title`],vI=[`title`],yI={key:0,class:`drawer-filters`},bI=[`onClick`],xI={class:`chip-count`},SI={class:`chip-count`},CI={key:0,class:`context-panel`},wI={key:0,class:`trace-empty`},TI={class:`ctx-overview`},EI={class:`ctx-occupancy`},DI=[`title`],OI=[`title`],kI={class:`ctx-pct`},AI={class:`ctx-kv-row`},jI={class:`ctx-kv`},MI={key:0,class:`ctx-kv`},NI={key:1,class:`ctx-kv`},PI={class:`ctx-section-title`},FI=[`title`],II={class:`ctx-cat-bar`},LI={class:`ctx-cat-tokens`},RI={key:0,class:`ctx-compression`},zI={class:`ctx-section-title`},BI={class:`ctx-kv-row`},VI={class:`ctx-kv`},HI={class:`ctx-kv`},UI={class:`ctx-kv`},WI={key:0,class:`ctx-kv`},GI={key:1,class:`subagent-panel`},KI={key:0,class:`sub-section`},qI={class:`sub-section-title`},JI={key:1,class:`trace-empty`},YI={key:0,class:`sub-section`},XI={class:`sub-section-title`},ZI={class:`sub-head`},QI={class:`sub-label`},$I={class:`sub-steps-badge`},eL={class:`sub-task`},tL={key:1,class:`sub-section`},nL={class:`sub-section-title`},rL={class:`sub-head`},iL={class:`sub-label`},aL={key:0,class:`sub-dur`},oL=[`onClick`],sL={class:`sub-task`},cL={key:0,class:`sub-result`},lL={key:1,class:`sub-steps-list`},uL={class:`sub-step-kind`},dL={class:`sub-step-name`},fL={class:`sub-step-ts`},pL={key:0,class:`empty`},mL=[`onClick`],hL={class:`log-group-title`},gL={class:`log-group-meta`},_L={key:0,class:`lg-badge`},vL={key:1,class:`lg-badge`},yL={key:2,class:`lg-badge err`},bL={class:`log-group-body`},xL={class:`log-head`},SL={key:0,class:`log-source`},CL={class:`log-time`},wL={class:`log-body`},TL={class:`kv-grid`},EL={class:`kv`},DL={class:`k`},OL={class:`v`},kL={class:`kv`},AL={class:`k`},jL={class:`v`},ML={class:`kv`},NL={class:`v`},PL={class:`kv`},FL={class:`k`},IL={class:`v`},LL={class:`section-label`},RL={class:`chip-row`},zL={class:`section-label`},BL={class:`msg-list`},VL={class:`msg-text`},HL={class:`badge-row`},UL={class:`badge`},WL={key:0,class:`badge muted`},GL={class:`badge muted`},KL={key:1,class:`badge muted`},qL=[`onClick`],JL=[`title`,`onClick`],YL=[`onClick`],XL=[`title`,`onClick`],ZL={class:`msg-detail`},QL={key:0,class:`msg-text`},$L={class:`tc-inline-name`},eR={class:`tc-inline-args`},tR={key:1,class:`tc-id`},nR={key:1,class:`log-raw`},rR={class:`badge-row`},iR={class:`badge`},aR={key:0,class:`badge warn`},oR={key:0,class:`resp-content`},sR={key:1,class:`tc-list`},cR={class:`tc-name`},lR={class:`tc-args`},uR={key:2,class:`usage-row`},dR={class:`usage`},fR={class:`usage`},pR={class:`usage`},mR={key:0,class:`usage`},hR={class:`tc-name`},gR={key:0,class:`tc-dur`},_R=[`title`,`onClick`],vR={class:`tc-args`},yR={class:`tc-result-sep`},bR={class:`tc-args tc-result`},xR={key:1,class:`tc-card inline`},SR={class:`tc-name`},CR={key:0,class:`tc-dur running`},wR={class:`tc-args`},TR={key:4,class:`err-box`},ER={class:`log-footer`},DR=[`onClick`],OR=[`onClick`],kR={key:0,class:`log-raw`},AR={key:3,class:`info-body`},jR={key:0,class:`empty`},MR={class:`info-section`},NR={class:`info-title`},PR={class:`kv-grid`},FR={class:`kv`},IR={class:`v`},LR={class:`kv`},RR={class:`k`},zR={class:`v`},BR={class:`kv`},VR={class:`k`},HR={class:`v`},UR={class:`kv`},WR={class:`k`},GR={class:`v`},KR={class:`kv`,style:{"margin-top":`6px`}},qR={class:`k`},JR={class:`v`,style:{"font-size":`11px`}},YR={class:`info-section`},XR={class:`info-title`},ZR={class:`info-name`},QR={class:`info-desc`},$R={key:0,class:`info-section`},ez={class:`info-title`},tz={class:`info-hint`},nz=[`onClick`],rz={class:`info-desc`},iz={key:0,class:`skill-content`},az={key:0,class:`skill-loading`},oz={key:1,class:`skill-error`},sz={key:2,class:`skill-pre`},cz={key:1,class:`info-section`},lz={class:`info-title`},uz={class:`info-item`},dz={class:`info-name`},fz={class:`info-desc`},pz={class:`info-section`},mz={class:`info-title`},hz={class:`kv-grid`},gz={class:`kv`},_z={class:`k`},vz={class:`v`},yz={class:`kv`},bz={class:`k`},xz={class:`v`},Sz={class:`kv`},Cz={class:`k`},wz={class:`v`},Tz={class:`kv`},Ez={class:`k`},Dz={class:`v`,style:{"font-size":`11px`}},Oz={key:2,class:`info-section`},kz={class:`info-title`},Az={class:`info-name`},jz={class:`src-tag mcp`},Mz={class:`info-desc`},Nz={key:3,class:`info-section`},Pz={class:`info-title`},Fz={class:`kv-grid`},Iz={class:`kv`},Lz={class:`k`},Rz={class:`v`},zz={class:`kv`},Bz={class:`k`},Vz={class:`v`},Hz={class:`kv`},Uz={class:`k`},Wz={class:`v`},Gz={key:0,class:`kv`},Kz={class:`k`},qz={class:`v`,style:{"font-size":`11px`}},Jz={key:4,class:`info-section`},Yz={class:`info-title`},Xz={key:5,class:`info-section`},Zz={class:`info-title`},Qz={class:`info-pre`},$z={key:6,class:`info-section`},eB={class:`info-title`},tB={class:`info-kv`},nB={class:`kv`},rB={class:`k`},iB={class:`v`},aB={class:`kv`},oB={class:`k`},sB={class:`v`},cB={class:`kv`},lB={class:`k`},uB={class:`v`},dB={class:`kv`},fB={class:`k`},pB={class:`v`},mB={class:`kv`},hB={class:`k`},gB={class:`v`,style:{"font-size":`11px`}},_B={key:0,class:`kv`},vB={class:`k`},yB={class:`v`,style:{"font-size":`11px`}},bB=400,xB=Vk(qi({__name:`DebugDrawer`,props:{logs:{default:()=>[]},visible:{type:Boolean},getInfo:{},exportDiagnostics:{},infoTick:{},getSkillContent:{},csTheme:{},messages:{default:()=>eO},locale:{default:`zh-CN`}},emits:[`update:visible`,`clear`],setup(e,{emit:t}){let n=e,r=t,i=G(`all`),a=G(new Set),o=G(null),s=G(null),c=G(null),l=null;function u(){l||!o.value||!s.value||!c.value||(l=JD({target:o.value,elements:{viewport:s.value,content:c.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}la(u),mi(()=>n.visible,async e=>{e&&(await yr(),u())}),fa(()=>{l?.destroy(),l=null});let d=G(new Set),f=G(new Set);function p(e){let t=f.value;t.has(e)?t.delete(e):t.add(e)}let m=G(new Set);function h(e){let t=m.value;t.has(e)?t.delete(e):t.add(e)}let g=G(``);async function _(e,t){await ZD(e)&&(g.value=t,setTimeout(()=>{g.value===t&&(g.value=``)},1200))}function v(){let e=``;try{e=n.exportDiagnostics?n.exportDiagnostics():Hv(Vv({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=uc(()=>n.messages),b=uc(()=>({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=uc(()=>Array.isArray(n.logs)?n.logs:[]),S=uc(()=>i.value===`all`?x.value:x.value.filter(e=>e.type===i.value)),C=uc(()=>{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=uc(()=>{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}),O=uc(()=>{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}),k=uc(()=>{let e=O.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}),A=G(new Set),j=G(new Set),M=uc(()=>k.value.length?k.value[k.value.length-1].key:``);function ee(e){return A.value.has(e)?!0:!j.value.has(e)&&e===M.value}function N(e){let t=new Set(A.value),n=new Set(j.value);ee(e)?(t.delete(e),n.add(e)):(n.delete(e),t.add(e)),A.value=t,j.value=n}function te(e){return e.kind===`pre`?y.value.debugFlowPrep:e.kind===`wrap_up`?y.value.debugLogsWrapUp:`${y.value.debugRoundPrefix}${e.round}${y.value.debugRoundSuffix}`}function ne(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 P(e){return new Date(e).toLocaleTimeString(n.locale,{hour12:!1})+`.`+String(e%1e3).padStart(3,`0`)}function re(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}function ie(e){let t=new Set(d.value);t.has(e)?t.delete(e):t.add(e),d.value=t}function F(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}let ae={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 I(e){return ae[e]||{label:(e||`?`).toUpperCase(),color:`#9ca3af`}}function oe(){r(`update:visible`,!1)}function se(){a.value=new Set,A.value=new Set,j.value=new Set,r(`clear`)}let ce=G(`logs`),L=G(null),R=G({});async function le(e){if(R.value[e]){delete R.value[e],R.value={...R.value};return}if(!n.getSkillContent){R.value={...R.value,[e]:{loading:!1,content:null,error:y.value.debugSkillNoReader}};return}R.value={...R.value,[e]:{loading:!0,content:null}};try{let t=await n.getSkillContent(e);R.value={...R.value,[e]:{loading:!1,content:t,error:t==null?y.value.debugSkillEmpty:void 0}}}catch(t){R.value={...R.value,[e]:{loading:!1,content:null,error:String(t?.message||t)}}}}function ue(){if(n.getInfo)try{L.value=n.getInfo()}catch{L.value=null}}function de(e){ce.value=e,(e===`subagent`||e===`info`||e===`context`)&&ue()}mi(()=>n.infoTick?.value,()=>{n.visible&&(ce.value===`subagent`||ce.value===`info`||ce.value===`context`)&&ue()});let z=uc(()=>({pending:{label:y.value.debugTodoPending,color:`#9ca3af`},in_progress:{label:y.value.debugTodoInProgress,color:`#d97706`},completed:{label:y.value.debugTodoCompleted,color:`#059669`}}));function B(e){return z.value[e]?.label??e}function fe(e){return e?e===`builtin`?`builtin`:e.startsWith(`mcp:`)?`mcp`:`user`:``}function pe(e,t){return e.length>t?e.slice(0,t)+`…`:e}function me(e){if(e>=1e3){let t=e/1e3;return t>=10?`${Math.round(t)}s`:`${t.toFixed(1)}s`}return`${e}ms`}let V=uc(()=>L.value?.context),he=uc(()=>{let e=V.value;return e?e.occupancy>=1?`red`:e.thresholdRatio>0&&e.occupancy>=e.thresholdRatio?`yellow`:`green`:``}),ge=uc(()=>L.value?.subagent?.active??[]),H=uc(()=>L.value?.subagent?.history??[]),_e=uc(()=>Object.entries(L.value?.subagent?.lockedComponents??{})),ve=uc(()=>({running:{label:y.value.debugSubRunning,color:`#059669`},done:{label:y.value.debugSubDone,color:`#6b7280`},error:{label:y.value.debugSubError,color:`#dc2626`}})),ye=G(new Set);function be(e){let t=new Set(ye.value);t.has(e)?t.delete(e):t.add(e),ye.value=t}function xe(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:``}`}return(t,n)=>(Y(),_s(ki,{to:`body`},[ws(Oc,{name:`drawer`},{default:oi(()=>[e.visible?(Y(),X(`div`,fI,[Z(`div`,{class:We([`drawer-panel`,{"cs-theme-dark":e.csTheme===`dark`}])},[Z(`div`,pI,[Z(`div`,mI,[Z(`button`,{class:We([`tab-btn`,{active:ce.value===`logs`}]),onClick:n[0]||=e=>de(`logs`)},`🐛 `+U(y.value.debugTabLogs),3),e.getInfo?(Y(),X(`button`,{key:0,class:We([`tab-btn`,{active:ce.value===`context`}]),onClick:n[1]||=e=>de(`context`)},`📊 `+U(y.value.debugTabContext),3)):Q(``,!0),e.getInfo?(Y(),X(`button`,{key:1,class:We([`tab-btn`,{active:ce.value===`subagent`}]),onClick:n[2]||=e=>de(`subagent`)},`🤖 `+U(y.value.debugTabSubagent),3)):Q(``,!0),e.getInfo?(Y(),X(`button`,{key:2,class:We([`tab-btn`,{active:ce.value===`info`}]),onClick:n[3]||=e=>de(`info`)},`🧬 `+U(y.value.debugTabInfo),3)):Q(``,!0)]),Z(`div`,hI,[Z(`button`,{class:`hd-btn`,title:y.value.debugCopyReport,onClick:v},U(g.value===`report`?`✓`:`💾`),9,gI),ce.value===`logs`?(Y(),X(`button`,{key:0,class:`hd-btn`,title:y.value.debugClearLogs,onClick:se},`🗑️`,8,_I)):Q(``,!0),Z(`button`,{class:`hd-btn`,title:y.value.close,onClick:oe},`✕`,8,vI)])]),ce.value===`logs`?(Y(),X(`div`,yI,[(Y(!0),X(J,null,ya(b.value,(e,t)=>(Y(),X(`button`,{key:t,class:We([`filter-chip`,{active:i.value===t}]),style:ze({"--chip-color":e.color}),onClick:e=>i.value=t},[ks(U(e.icon)+` `+U(e.label)+` `,1),Z(`span`,xI,U(C.value[t]||0),1)],14,bI))),128)),Z(`button`,{class:We([`filter-chip all`,{active:i.value===`all`}]),onClick:n[4]||=e=>i.value=`all`},[ks(U(y.value.debugFilterAll)+` `,1),Z(`span`,SI,U(C.value.all||0),1)],2)])):Q(``,!0),Z(`div`,{class:`drawer-body`,ref_key:`drawerBodyEl`,ref:o},[Z(`div`,{class:`drawer-scroll-viewport`,tabindex:`-1`,ref_key:`drawerViewportEl`,ref:s},[Z(`div`,{ref_key:`drawerContentsEl`,ref:c},[ce.value===`context`?(Y(),X(`div`,CI,[V.value?(Y(),X(J,{key:1},[V.value?(Y(),X(J,{key:0},[Z(`div`,TI,[Z(`div`,EI,[Z(`div`,{class:`ctx-bar-track`,title:`${y.value.debugCtxOccupancy} ${Math.round(V.value.occupancy*100)}%`},[Z(`div`,{class:We([`ctx-bar-fill`,he.value]),style:ze({width:Math.min(V.value.occupancy*100,100)+`%`})},null,6),V.value.thresholdRatio>0?(Y(),X(`div`,{key:0,class:`ctx-threshold-mark`,style:ze({left:Math.min(V.value.thresholdRatio*100,100)+`%`}),title:y.value.debugCtxThreshold},null,12,OI)):Q(``,!0)],8,DI),Z(`span`,kI,U(Math.round(V.value.occupancy*100))+`%`,1)]),Z(`div`,AI,[Z(`span`,jI,U(y.value.debugCtxTokens)+` `+U(V.value.totalTokens)+` token`,1),V.value.contextWindow?(Y(),X(`span`,MI,U(y.value.debugCtxWindow)+` `+U(V.value.contextWindow),1)):Q(``,!0),V.value.thresholdRatio>0?(Y(),X(`span`,NI,U(y.value.debugCtxThresholdPct)+` `+U(Math.round(V.value.thresholdRatio*100))+`%`,1)):Q(``,!0)])]),Z(`div`,PI,U(y.value.debugCtxCategories),1),(Y(!0),X(J,null,ya(V.value.categories,e=>(Y(),X(`div`,{key:e.key,class:`ctx-cat`},[Z(`span`,{class:`ctx-cat-label`,title:e.label},U(e.label),9,FI),Z(`div`,II,[Z(`div`,{class:`ctx-cat-fill`,style:ze({width:Math.max(Math.round(e.pct*100),2)+`%`})},null,4)]),Z(`span`,LI,[ks(U(e.tokens)+` `,1),Z(`i`,null,`(`+U(Math.round(e.pct*100))+`%)`,1)])]))),128)),V.value.compression?(Y(),X(`div`,RI,[Z(`div`,zI,U(y.value.debugCtxLastCompression),1),Z(`div`,BI,[Z(`span`,VI,U(y.value.debugCtxSummarized)+` `+U(V.value.compression.roundsSummarized)+`/`+U(V.value.compression.roundsTotal)+U(y.value.debugCtxRoundsSuffix),1),Z(`span`,HI,U(y.value.debugCtxRecalled)+` `+U(V.value.compression.roundsRecalled),1),Z(`span`,UI,U(V.value.compression.strategy),1),V.value.compression.decision?(Y(),X(`span`,WI,`🤖 `+U(y.value.debugCtxAgentDecision)+U(xe(V.value.compression.decision)),1)):Q(``,!0)])])):Q(``,!0)],64)):Q(``,!0)],64)):(Y(),X(`div`,wI,U(y.value.debugCtxEmpty),1))])):Q(``,!0),ce.value===`subagent`?(Y(),X(`div`,GI,[_e.value.length?(Y(),X(`div`,KI,[Z(`div`,qI,`🔒 `+U(y.value.debugLocksTitle)+` (`+U(_e.value.length)+`)`,1),(Y(!0),X(J,null,ya(_e.value,([e,t])=>(Y(),X(`div`,{key:`lock-`+e,class:`sub-task`},`🔒 `+U(e)+` ← `+U(t),1))),128))])):Q(``,!0),!ge.value.length&&!H.value.length?(Y(),X(`div`,JI,U(y.value.debugSubagentEmpty),1)):(Y(),X(J,{key:2},[ge.value.length?(Y(),X(`div`,YI,[Z(`div`,XI,`▶ `+U(y.value.debugSubRunningTitle)+` (`+U(ge.value.length)+`)`,1),(Y(!0),X(J,null,ya(ge.value,(e,t)=>(Y(),X(`div`,{key:`a`+t,class:We([`sub-card`,e.status])},[Z(`div`,ZI,[Z(`span`,{class:`sub-status`,style:ze({background:ve.value[e.status]&&ve.value[e.status].color||`#9ca3af`})},U(ve.value[e.status]&&ve.value[e.status].label||e.status),5),Z(`span`,QI,U(e.label),1),Z(`span`,$I,U(e.steps.length)+U(y.value.debugStepsCountSuffix),1)]),Z(`div`,eL,U(pe(e.task,80)),1)],2))),128))])):Q(``,!0),H.value.length?(Y(),X(`div`,tL,[Z(`div`,nL,`🕐 `+U(y.value.debugSubHistoryTitle)+` (`+U(H.value.length)+`)`,1),(Y(!0),X(J,null,ya(H.value,(e,t)=>(Y(),X(`div`,{key:`h`+t,class:We([`sub-card`,e.status])},[Z(`div`,rL,[Z(`span`,{class:`sub-status`,style:ze({background:ve.value[e.status]&&ve.value[e.status].color||`#9ca3af`})},U(ve.value[e.status]&&ve.value[e.status].label||e.status),5),Z(`span`,iL,U(e.label),1),e.durationMs==null?Q(``,!0):(Y(),X(`span`,aL,U(me(e.durationMs)),1)),e.steps.length?(Y(),X(`button`,{key:1,class:`sub-toggle`,onClick:e=>be(t)},U(ye.value.has(t)?y.value.collapse:y.value.debugStepsBtn),9,oL)):Q(``,!0)]),Z(`div`,sL,U(pe(e.task,80)),1),e.resultPreview?(Y(),X(`div`,cL,U(e.resultPreview),1)):Q(``,!0),ye.value.has(t)&&e.steps.length?(Y(),X(`div`,lL,[(Y(!0),X(J,null,ya(e.steps,(e,t)=>(Y(),X(`div`,{key:t,class:`sub-step`},[Z(`span`,uL,U(e.kind===`tool_call`?`🔧`:`✅`),1),Z(`span`,dL,U(e.name),1),Z(`span`,fL,U(P(e.ts)),1)]))),128))])):Q(``,!0)],2))),128))])):Q(``,!0)],64))])):Q(``,!0),ce.value===`logs`?(Y(),X(J,{key:2},[S.value.length===0?(Y(),X(`div`,pL,U(y.value.debugLogsEmpty),1)):Q(``,!0),(Y(!0),X(J,null,ya(k.value,e=>(Y(),X(`div`,{key:e.key,class:`log-group`},[Z(`div`,{class:We([`log-group-head`,{expanded:ee(e.key)}]),onClick:t=>N(e.key)},[Z(`span`,{class:We([`log-group-arrow`,{open:ee(e.key)}])},`▶`,2),Z(`span`,hL,U(te(e)),1),Z(`span`,gL,[ks(U(P(e.firstTs)),1),e.lastTs>e.firstTs?(Y(),X(J,{key:0},[ks(` ~ `+U(P(e.lastTs)),1)],64)):Q(``,!0),ks(` · `+U(me(e.lastTs-e.firstTs)),1)]),e.toolCount?(Y(),X(`span`,_L,`🔧 `+U(e.toolCount),1)):Q(``,!0),e.tokens==null?Q(``,!0):(Y(),X(`span`,vL,`Σ `+U(e.tokens)+` tok`,1)),e.errorCount?(Y(),X(`span`,yL,`❌ `+U(e.errorCount),1)):Q(``,!0)],10,mL),ci(Z(`div`,bL,[(Y(!0),X(J,null,ya(e.entries,({log:e,pairCall:t,prevMsgCount:r,uid:i})=>(Y(),X(`div`,{key:i,class:`log-item`},[Z(`div`,xL,[Z(`span`,{class:`log-type`,style:ze({background:b.value[e.type].color})},U(b.value[e.type].icon)+` `+U(b.value[e.type].label),5),e.source?(Y(),X(`span`,SL,`↳ `+U(e.source),1)):Q(``,!0),Z(`span`,CL,U(P(e.timestamp)),1)]),Z(`div`,wL,[e.type===`context`?(Y(),X(J,{key:0},[Z(`div`,TL,[Z(`div`,EL,[Z(`span`,DL,U(y.value.debugModel),1),Z(`span`,OL,U(e.data.model),1)]),Z(`div`,kL,[Z(`span`,AL,U(y.value.debugTemperature),1),Z(`span`,jL,U(e.data.temperature),1)]),Z(`div`,ML,[n[5]||=Z(`span`,{class:`k`},`MaxTokens`,-1),Z(`span`,NL,U(e.data.maxTokens),1)]),Z(`div`,PL,[Z(`span`,FL,U(y.value.debugMessageCount),1),Z(`span`,IL,U(e.data.totalMessages),1)])]),Z(`div`,LL,U(y.value.debugToolsLabel)+` (`+U(e.data.tools?.length||0)+`)`,1),Z(`div`,RL,[(Y(!0),X(J,null,ya(e.data.tools,e=>(Y(),X(`span`,{key:e,class:`tool-chip`},U(e),1))),128))]),Z(`div`,zL,U(y.value.debugContextMessages),1),Z(`div`,BL,[(Y(!0),X(J,null,ya(e.data.messages,(e,t)=>(Y(),X(`div`,{key:t,class:`msg-row`},[Z(`span`,{class:`msg-role`,style:ze({background:I(e.type).color})},U(I(e.type).label),5),Z(`span`,VL,U(e.content),1)]))),128))])],64)):e.type===`llm_request`?(Y(),X(J,{key:1},[Z(`div`,HL,[Z(`span`,UL,U(y.value.debugRoundPrefix)+U(e.data.round)+U(y.value.debugRoundSuffix),1),e.data.model?(Y(),X(`span`,WL,U(e.data.model),1)):Q(``,!0),Z(`span`,GL,[ks(U((e.data.messages||[]).length)+U(y.value.debugMsgCountSuffix),1),r!=null&&r<(e.data.messages||[]).length?(Y(),X(J,{key:0},[ks(`(+`+U((e.data.messages||[]).length-r)+`)`,1)],64)):Q(``,!0)]),e.data.tools?.length?(Y(),X(`span`,KL,U(e.data.tools.length)+U(y.value.debugToolCountSuffix),1)):Q(``,!0),r!=null&&r>0?(Y(),X(`button`,{key:2,class:`view-toggle only-new-btn`,onClick:e=>h(i)},U(m.value.has(i)?y.value.debugShowAll:y.value.debugOnlyNew),9,qL)):Q(``,!0),Z(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(F(e.data.messages),`req`+i)},U(g.value===`req`+i?`✓`:`📋`),9,JL),Z(`button`,{class:`view-toggle`,onClick:e=>ie(i)},U(d.value.has(i)?y.value.debugCardView:y.value.debugRequestBody),9,YL)]),d.value.has(i)?(Y(),X(`pre`,nR,[Z(`code`,null,U(F(e.data.messages)),1)])):(Y(!0),X(J,{key:0},ya([ne(e,r,m.value.has(i))],e=>(Y(),X(`div`,{key:e.base,class:`msg-list`},[(Y(!0),X(J,null,ya(e.list,(t,n)=>(Y(),X(`div`,{key:n,class:We([`msg-row`,{clamped:!f.value.has(i+`:`+(e.base+n))&&String(t.content??``).length>bB}]),title:String(t.content??``).length>bB?f.value.has(i+`:`+(e.base+n))?y.value.collapse:y.value.expand:void 0,onClick:r=>String(t.content??``).length>bB&&p(i+`:`+(e.base+n))},[Z(`span`,{class:`msg-role`,style:ze({background:I(t.role).color})},U(I(t.role).label),5),Z(`div`,ZL,[t.content?(Y(),X(`span`,QL,U(t.content),1)):Q(``,!0),(Y(!0),X(J,null,ya(t.tool_calls||[],(e,t)=>(Y(),X(`div`,{key:t,class:`tc-inline`},[Z(`span`,$L,`🔧 `+U(e.function?.name||e.name),1),Z(`code`,eR,U(e.function?.arguments??e.args),1)]))),128)),t.tool_call_id?(Y(),X(`span`,tR,`↳ tool_call_id: `+U(t.tool_call_id),1)):Q(``,!0)])],10,XL))),128))]))),128))],64)):e.type===`llm_response`?(Y(),X(J,{key:2},[Z(`div`,rR,[Z(`span`,iR,U(y.value.debugRoundPrefix)+U(e.data.round)+U(y.value.debugRoundSuffix),1),e.data.toolCalls?.length?(Y(),X(`span`,aR,`🔧 `+U(e.data.toolCalls.length)+U(y.value.debugToolCallsSuffix),1)):Q(``,!0)]),e.data.content?(Y(),X(`div`,oR,U(e.data.content),1)):Q(``,!0),e.data.toolCalls?.length?(Y(),X(`div`,sR,[(Y(!0),X(J,null,ya(e.data.toolCalls,(e,t)=>(Y(),X(`div`,{key:t,class:`tc-card`},[Z(`div`,cR,`🔧 `+U(e.name),1),Z(`pre`,lR,U(F(e.args)),1)]))),128))])):Q(``,!0),e.data.usage?(Y(),X(`div`,uR,[Z(`span`,dR,`prompt: `+U(e.data.usage.prompt_tokens??`-`),1),Z(`span`,fR,`completion: `+U(e.data.usage.completion_tokens??`-`),1),Z(`span`,pR,`total: `+U(e.data.usage.total_tokens??`-`),1),e.data.usage.reasoning_tokens?(Y(),X(`span`,mR,`reasoning: `+U(e.data.usage.reasoning_tokens)+`(`+U(Math.round(e.data.usage.reasoning_tokens/Math.max(1,e.data.usage.completion_tokens??0)*100))+`%)`,1)):Q(``,!0)])):Q(``,!0)],64)):e.type===`tool_call`||e.type===`tool_result`?(Y(),X(J,{key:3},[t?(Y(),X(`div`,{key:0,class:We([`tc-card inline paired`,{error:e.data.status===`error`}])},[Z(`div`,hR,[ks(U(e.data.status===`error`?`❌`:`✅`)+` `+U(e.data.name)+` `,1),e.data.durationMs==null?Q(``,!0):(Y(),X(`span`,gR,U(me(e.data.durationMs)),1)),Z(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(String(e.data.result??``),`res`+i)},U(g.value===`res`+i?`✓`:`📋`),9,_R)]),Z(`pre`,vR,U(F(t.data.args)),1),Z(`div`,yR,`↓ `+U(y.value.resultLabel),1),Z(`pre`,bR,U(e.data.result),1)],2)):(Y(),X(`div`,xR,[Z(`div`,SR,[ks(U(e.type===`tool_call`?`🔧`:`✅`)+` `+U(e.data.name)+` `,1),e.type===`tool_call`?(Y(),X(`span`,CR,U(y.value.statusRunning)+`…`,1)):Q(``,!0)]),Z(`pre`,wR,U(e.type===`tool_call`?F(e.data.args):e.data.result),1)]))],64)):e.type===`error`?(Y(),X(`div`,TR,U(e.data.tool?`[${e.data.tool}] `:``)+U(e.data.error),1)):Q(``,!0)]),Z(`div`,ER,[Z(`button`,{class:`raw-toggle`,onClick:e=>re(i)},U(a.value.has(i)?y.value.debugCollapseRawJson:y.value.debugViewRawJson),9,DR),Z(`button`,{class:`raw-toggle`,onClick:t=>K(ZD)(F(e.data))},U(y.value.copy),9,OR)]),a.value.has(i)?(Y(),X(`pre`,kR,[Z(`code`,null,U(F(e.data)),1)])):Q(``,!0)]))),128))],512),[[Kc,ee(e.key)]])]))),128))],64)):ce.value===`info`?(Y(),X(`div`,AR,[L.value?(Y(),X(J,{key:1},[Z(`div`,MR,[Z(`div`,NR,U(y.value.debugInfoBasic),1),Z(`div`,PR,[Z(`div`,FR,[n[6]||=Z(`span`,{class:`k`},`ID`,-1),Z(`span`,IR,U(L.value.id),1)]),Z(`div`,LR,[Z(`span`,RR,U(y.value.debugModel),1),Z(`span`,zR,U(L.value.model||`-`),1)]),Z(`div`,BR,[Z(`span`,VR,U(y.value.debugToolCount),1),Z(`span`,HR,U(L.value.tools.length),1)]),Z(`div`,UR,[Z(`span`,WR,U(y.value.debugMiddleware),1),Z(`span`,GR,U(L.value.middleware.length),1)])]),Z(`div`,KR,[Z(`span`,qR,U(y.value.debugMiddlewareStack),1),Z(`span`,JR,U(L.value.middleware.join(` → `)||`-`),1)])]),Z(`div`,YR,[Z(`div`,XR,`🔧 `+U(y.value.debugToolsLabel)+` (`+U(L.value.tools.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.tools,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,ZR,[ks(U(e.name),1),e.source?(Y(),X(`span`,{key:0,class:We([`src-tag`,fe(e.source)])},U(e.source),3)):Q(``,!0)]),Z(`div`,QR,U(e.description),1)]))),128))]),L.value.skills.length?(Y(),X(`div`,$R,[Z(`div`,ez,[ks(`📘 `+U(y.value.debugSkillsTitle)+` (`+U(L.value.skills.length)+`)`,1),Z(`span`,tz,U(y.value.debugSkillsHint),1)]),(Y(!0),X(J,null,ya(L.value.skills,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,{class:`info-name skill-toggle`,onClick:t=>le(e.name)},[Z(`span`,{class:We([`skill-arrow`,{open:!!R.value[e.name]}])},`▶`,2),ks(` `+U(e.name),1)],8,nz),Z(`div`,rz,U(e.description),1),R.value[e.name]?(Y(),X(`div`,iz,[R.value[e.name].loading?(Y(),X(`div`,az,U(y.value.debugLoading),1)):R.value[e.name].error?(Y(),X(`div`,oz,U(R.value[e.name].error),1)):R.value[e.name].content?(Y(),X(`pre`,sz,U(R.value[e.name].content),1)):Q(``,!0)])):Q(``,!0)]))),128))])):Q(``,!0),L.value.data?(Y(),X(`div`,cz,[Z(`div`,lz,`📊 `+U(y.value.debugDataTitle),1),Z(`div`,uz,[Z(`div`,dz,U(L.value.data.description||y.value.debugDataFallback),1),Z(`div`,fz,U(y.value.debugSchemaPrefix)+U(L.value.data.schema?y.value.debugSchemaDeclared:y.value.debugSchemaMissing),1)])])):Q(``,!0),Z(`div`,pz,[Z(`div`,mz,`🧬 `+U(y.value.debugSubagentTitle),1),Z(`div`,hz,[Z(`div`,gz,[Z(`span`,_z,U(y.value.debugEnabled),1),Z(`span`,vz,U(L.value.subagent.enabled?y.value.debugYes:y.value.debugNo),1)]),Z(`div`,yz,[Z(`span`,bz,U(y.value.debugMaxDepth),1),Z(`span`,xz,U(L.value.subagent.maxDepth),1)]),Z(`div`,Sz,[Z(`span`,Cz,U(y.value.debugMaxParallel),1),Z(`span`,wz,U(L.value.subagent.maxParallel),1)]),Z(`div`,Tz,[Z(`span`,Ez,U(y.value.debugExtraTools),1),Z(`span`,Dz,U(L.value.subagent.allowedTools.length?L.value.subagent.allowedTools.join(`, `):y.value.debugDefaultReadonly),1)])])]),L.value.mcp?.servers?.length?(Y(),X(`div`,Oz,[Z(`div`,kz,`🔌 MCP (`+U(L.value.mcp.servers.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.mcp.servers,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,Az,[ks(U(e.name)+` `,1),Z(`span`,jz,U(e.toolCount)+U(y.value.debugToolCountSuffix),1)]),Z(`div`,Mz,U(e.url),1)]))),128))])):Q(``,!0),L.value.verify?(Y(),X(`div`,Nz,[Z(`div`,Pz,`✅ `+U(y.value.debugVerifyTitle),1),Z(`div`,Fz,[Z(`div`,Iz,[Z(`span`,Lz,U(y.value.debugEnabled),1),Z(`span`,Rz,U(L.value.verify.enabled?y.value.debugYes:y.value.debugNo),1)]),Z(`div`,zz,[Z(`span`,Bz,U(y.value.debugMaxAttempts),1),Z(`span`,Vz,U(L.value.verify.maxAttempts),1)]),Z(`div`,Hz,[Z(`span`,Uz,U(y.value.debugAdversarial),1),Z(`span`,Wz,U(L.value.verify.adversarial?y.value.debugOn:y.value.debugOff),1)]),L.value.verify.adversarial?(Y(),X(`div`,Gz,[Z(`span`,Kz,U(y.value.debugAdversarialModel),1),Z(`span`,qz,U(L.value.model||`-`)+U(y.value.debugSameAsMain),1)])):Q(``,!0)])])):Q(``,!0),L.value.todos.length?(Y(),X(`div`,Jz,[Z(`div`,Yz,`📋 `+U(y.value.debugTodosTitle)+` (`+U(L.value.todos.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.todos,(e,t)=>(Y(),X(`div`,{key:t,class:`info-todo`},[Z(`span`,{class:`todo-tag`,style:ze({background:z.value[e.status]&&z.value[e.status].color||`#9ca3af`})},U(B(e.status)),5),Z(`span`,null,U(e.content),1)]))),128))])):Q(``,!0),L.value.memory?(Y(),X(`div`,Xz,[Z(`div`,Zz,`📝 `+U(y.value.debugMemoryTitle),1),Z(`pre`,Qz,U(L.value.memory),1)])):Q(``,!0),L.value.lastCompression?(Y(),X(`div`,$z,[Z(`div`,eB,`🗜️ `+U(y.value.debugLastCompTitle),1),Z(`div`,tB,[Z(`div`,nB,[Z(`span`,rB,U(y.value.debugTriggered),1),Z(`span`,iB,U(L.value.lastCompression.triggered?`✓`:y.value.debugNotTriggered),1)]),Z(`div`,aB,[Z(`span`,oB,U(y.value.debugRoundsSummarized),1),Z(`span`,sB,U(L.value.lastCompression.roundsSummarized)+` / `+U(L.value.lastCompression.roundsTotal),1)]),Z(`div`,cB,[Z(`span`,lB,U(y.value.debugCtxRecalled),1),Z(`span`,uB,U(L.value.lastCompression.roundsRecalled)+U(y.value.debugCountSuffix),1)]),Z(`div`,dB,[Z(`span`,fB,U(y.value.debugMessageCount),1),Z(`span`,pB,U(L.value.lastCompression.originalMessages)+` → `+U(L.value.lastCompression.compressedMessages),1)]),Z(`div`,mB,[Z(`span`,hB,U(y.value.debugStrategy),1),Z(`span`,gB,U(L.value.lastCompression.strategy),1)]),L.value.lastCompression.decision?(Y(),X(`div`,_B,[Z(`span`,vB,U(y.value.debugDecision),1),Z(`span`,yB,`🤖 `+U(xe(L.value.lastCompression.decision)),1)])):Q(``,!0)])])):Q(``,!0)],64)):(Y(),X(`div`,jR,U(y.value.debugNoInfo),1))])):Q(``,!0)],512)],512)],512)],2),Z(`div`,{class:`drawer-mask`,onClick:oe})])):Q(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-6d9e98b4`]]),SB=[`title`],CB=Vk(qi({__name:`SelectionMenu`,emits:[`quote`],setup(e,{emit:t}){let n=t,{messages:r}=oO(),i=G(!1),a=G({top:0,left:0}),o={w:128,h:30},s=null,c=()=>{i.value=!1,s=null},l=()=>{if(typeof document>`u`)return null;let e=document.getSelection();if(!e||e.rangeCount===0||e.isCollapsed)return null;let t=e.getRangeAt(0).getBoundingClientRect();return!t||!t.width&&!t.height?null:t},u=e=>e.bottom>0&&e.top<window.innerHeight&&e.right>0&&e.left<window.innerWidth,d=(e={})=>{let t=l();if(!t){c();return}if(e.requireVisible&&!u(t)){c();return}a.value=Mu({top:t.top,bottom:t.bottom,left:t.left,width:t.width},{w:window.innerWidth,h:window.innerHeight},o)},f=e=>{e.target?.closest?.(`.chat-selection-menu`)||setTimeout(()=>{if(typeof document>`u`)return;let e=document.getSelection(),t=ju(document);if(!e||!t||e.rangeCount===0){c();return}let n=e.getRangeAt(0).getBoundingClientRect();if(!n||!n.width&&!n.height){c();return}s=t,i.value=!0,d()},0)},p=e=>{i.value&&!e.target?.closest?.(`.chat-selection-menu`)&&c()},m=0,h=()=>{!i.value||m||(m=window.requestAnimationFrame(()=>{m=0,i.value&&d({requireVisible:!0})}))},g=e=>{e.key===`Escape`&&i.value&&c()};la(()=>{window.addEventListener(`pointerup`,f,!0),window.addEventListener(`pointerdown`,p,!0),window.addEventListener(`scroll`,h,{capture:!0,passive:!0}),window.addEventListener(`keydown`,g,!0)}),fa(()=>{m&&window.cancelAnimationFrame(m),window.removeEventListener(`pointerup`,f,!0),window.removeEventListener(`pointerdown`,p,!0),window.removeEventListener(`scroll`,h,{capture:!0}),window.removeEventListener(`keydown`,g,!0)});let _=()=>{s&&n(`quote`,s),c()};return(e,t)=>(Y(),_s(ki,{to:`body`},[ci(Z(`div`,{class:`chat-selection-menu`,"data-test":`selection-menu`,style:ze({top:`${a.value.top}px`,left:`${a.value.left}px`})},[Z(`button`,{type:`button`,class:`chat-selection-menu-btn`,"data-test":`selection-menu-quote`,title:K(r).selectionMenuTitle,onMousedown:t[0]||=jl(()=>{},[`prevent`]),onClick:_},`❝ `+U(K(r).selectionMenuLabel),41,SB)],4),[[Kc,i.value]])]))}}),[[`__scopeId`,`data-v-19e6dbb4`]]),wB={class:`skill-panel`},TB={class:`skill-header`},EB={class:`skill-title`},DB=[`title`],OB={class:`skill-section`},kB={class:`section-title`},AB=[`title`],jB={class:`field`},MB={class:`field-label`},NB=[`disabled`,`placeholder`],PB={class:`field`},FB={class:`field-label`},IB=[`placeholder`],LB={class:`field field-textarea`},RB={class:`field-label`},zB=[`placeholder`],BB={key:0,class:`skill-error`},VB={class:`skill-section`},HB={class:`section-title`},UB={key:0,class:`empty-hint`},WB={key:1,class:`skill-list`},GB={class:`skill-actions`},KB=[`title`,`onClick`],qB=[`title`,`onClick`],JB={class:`skill-hint`},YB=Vk(qi({__name:`SkillPanel`,props:{visible:{type:Boolean},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},messages:{default:()=>eO}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=G(``),a=G(``),o=G(``),s=G(``),c=G([]),l=G(0),u=G(null);mi(()=>n.visible,e=>{e&&d()},{immediate:!0}),mi(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)=>(Y(),_s(ki,{to:`body`},[ws(Oc,{name:`cs-skill-fade`},{default:oi(()=>[e.visible?(Y(),X(`div`,{key:0,class:`skill-mask`,onClick:n[4]||=jl(e=>r(`close`),[`self`])},[Z(`div`,wB,[Z(`div`,TB,[Z(`span`,EB,U(e.messages.skillPanelTitle),1),Z(`button`,{class:`skill-close`,title:e.messages.close,onClick:n[0]||=e=>r(`close`)},`✕`,8,DB)]),Z(`div`,OB,[Z(`div`,kB,[ks(U(u.value?`${e.messages.skillEditingPrefix}${u.value}`:e.messages.skillCreateNew)+` `,1),u.value?(Y(),X(`button`,{key:0,class:`btn btn-ghost btn-cancel`,title:e.messages.skillCancelEdit,onClick:h},U(e.messages.skillCancelEdit),9,AB)):Q(``,!0)]),Z(`label`,jB,[Z(`span`,MB,U(e.messages.skillNameLabel),1),ci(Z(`input`,{"onUpdate:modelValue":n[1]||=e=>i.value=e,disabled:!!u.value,placeholder:e.messages.skillNamePlaceholder,class:`field-input`},null,8,NB),[[Ol,i.value]])]),Z(`label`,PB,[Z(`span`,FB,U(e.messages.skillDescLabel),1),ci(Z(`input`,{"onUpdate:modelValue":n[2]||=e=>a.value=e,placeholder:e.messages.skillDescPlaceholder,class:`field-input`},null,8,IB),[[Ol,a.value]])]),Z(`label`,LB,[Z(`span`,RB,U(e.messages.skillContentLabel),1),ci(Z(`textarea`,{"onUpdate:modelValue":n[3]||=e=>o.value=e,placeholder:e.messages.skillContentPlaceholder,rows:`6`,class:`field-input`},null,8,zB),[[Ol,o.value]])]),s.value?(Y(),X(`div`,BB,U(s.value),1)):Q(``,!0),Z(`button`,{class:`btn btn-primary`,onClick:f},U(u.value?e.messages.skillSave:e.messages.skillAdd),1)]),Z(`div`,VB,[Z(`div`,HB,U(e.messages.skillCreatedTitle)+`(`+U(c.value.length)+`)`,1),c.value.length?(Y(),X(`ul`,WB,[(Y(!0),X(J,null,ya(c.value,t=>(Y(),X(`li`,{key:t,class:`skill-item`},[Z(`span`,{class:We([`skill-name`,{active:u.value===t}])},U(t),3),Z(`span`,GB,[Z(`button`,{class:`btn btn-ghost btn-edit`,title:e.messages.skillEditTitle,onClick:e=>m(t)},U(e.messages.skillEditBtn),9,KB),Z(`button`,{class:`btn btn-ghost btn-del`,title:e.messages.skillDeleteTitle,onClick:e=>p(t)},U(e.messages.skillDeleteBtn),9,qB)])]))),128))])):(Y(),X(`div`,UB,U(e.messages.skillEmpty),1))]),Z(`div`,JB,[ks(` 💡 `+U(e.messages.skillHintA)+` `,1),n[5]||=Z(`code`,null,`load_skill(name)`,-1),ks(` `+U(e.messages.skillHintB)+` `,1),n[6]||=Z(`code`,null,`skillStorage.id`,-1),ks(` `+U(e.messages.skillHintC),1)])])])):Q(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-fcd21121`]]),XB=[`aria-valuenow`],ZB=`page-agent-sdk:drawerWidth`,QB=320,$B=960,eV=420,tV=Vk(qi({__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:{},drawerResizable:{type:Boolean},drawerHidden:{type:Boolean},pendingQuote:{},onSetQuote:{},onClearQuote:{},autoQuote:{type:Boolean},selectionMenu:{type:Boolean},onSelectionQuote:{},inputRows:{default:2},sessions:{},currentSessionId:{},onNewSession:{},onOpenSession:{},onRemoveSession:{},getFocus:{},onSetFocus:{},onClearFocus:{},getFocuses:{},onAddFocus:{},onRemoveFocus:{},onFocusChipClick:{},sections:{},csTheme:{},icons:{},headerLabels:{type:Boolean},i18n:{},toolStepView:{},quickActions:{},onDropElement:{},onExportSession:{},onImportSession:{}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=aO({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,pendingQuote:n.pendingQuote,onSetQuote:n.onSetQuote,onClearQuote:n.onClearQuote,icons:n.icons,locale:n.i18n?.locale,dialogMessages:n.i18n?.messages,toolStepView:n.toolStepView});ui(iO,i);let{isExpanded:a,debugVisible:o,skillVisible:s,closeSkill:c}=i,{scrollContainer:l,onScroll:u,onWheel:d}=i.chat,f=uc(()=>!!(i.chat.pendingApproval.value||n.pendingConflict)),p=G(null),m=G(null),h=null;la(()=>{!p.value||!l.value||!m.value||(h=JD({target:p.value,elements:{viewport:l.value,content:m.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}),fa(()=>{h?.destroy(),h=null});function g(e){return e===`focus`?n.sections?.focus===!0:n.sections?.[e]!==!1}let _=uc(()=>!!n.onAddSkill);function v(){if(typeof localStorage>`u`)return null;try{let e=Number(localStorage.getItem(ZB));return Number.isFinite(e)&&e>=QB?e:null}catch{return null}}let y=G(v()),b=G(!1);function x(e){let t=typeof window<`u`?window.innerWidth:$B,n=Math.max(Math.min($B,t*.9),QB);return Math.min(Math.max(e,QB),n)}let S=uc(()=>y.value==null?typeof n.drawerWidth==`number`?n.drawerWidth:null:y.value),C=uc(()=>{if(!n.drawer||n.drawerWidth==null)return n.drawer&&y.value!=null?`${y.value}px`:null;let e=S.value??n.drawerWidth;return typeof e==`number`?`${e}px`:e}),w=uc(()=>{let e=C.value?{width:C.value,maxWidth:C.value}:{};return b.value?{...e,transition:`none`}:e}),T=uc(()=>n.drawer===!0&&n.drawerResizable!==!1);function E(e){!T.value||b.value||(b.value=!0,window.addEventListener(`pointermove`,O),window.addEventListener(`pointerup`,k),window.addEventListener(`pointercancel`,k),e.preventDefault())}function D(e){y.value=x(window.innerWidth-e)}function O(e){b.value&&D(e.clientX)}function k(){b.value&&(b.value=!1,window.removeEventListener(`pointermove`,O),window.removeEventListener(`pointerup`,k),window.removeEventListener(`pointercancel`,k),A())}function A(){if(!(y.value==null||typeof localStorage>`u`))try{localStorage.setItem(ZB,String(y.value))}catch{}}function j(e){if(!T.value)return;let t=e.shiftKey?64:16,n=S.value??(typeof window<`u`?Math.min(eV,window.innerWidth*.9):eV);if(e.key===`ArrowLeft`)y.value=x(n+t);else if(e.key===`ArrowRight`)y.value=x(n-t);else return;e.preventDefault(),A()}return(t,n)=>(Y(),X(J,null,[e.drawer?(Y(),X(`div`,{key:0,class:`chat-mask`,onClick:n[0]||=e=>r(`close`)})):Q(``,!0),Z(`div`,{class:We([`chat-dialog`,{collapsed:!K(a)&&!e.drawer,drawer:e.drawer,"cs-theme-dark":e.csTheme===`dark`,resizing:b.value}]),style:ze(w.value||null)},[T.value?(Y(),X(`div`,{key:0,class:`chat-drawer-resize`,"data-test":`drawer-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`调整对话框宽度`,"aria-valuenow":S.value??void 0,tabindex:`0`,onPointerdown:E,onPointermove:O,onPointerup:k,onPointercancel:k,onKeydown:j},null,40,XB)):Q(``,!0),g(`header`)?ba(t.$slots,`header`,{key:1,chat:K(i)},()=>[ws(vA,{title:e.title||K(i).messages.defaultTitle,drawer:e.drawer,"debug-logs":e.debugLogs,debug:e.debug,"skill-available":_.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,"on-export-session":e.onExportSession,"on-import-session":e.onImportSession,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`,`on-export-session`,`on-import-session`])],!0):Q(``,!0),g(`focus`)?ba(t.$slots,`focus`,{key:2,chat:K(i)},()=>[ws(kA,{"get-focus":e.getFocus,"on-set-focus":e.onSetFocus,"on-clear-focus":e.onClearFocus,"info-tick":e.infoTick,icons:K(i).icons,messages:K(i).messages},null,8,[`get-focus`,`on-set-focus`,`on-clear-focus`,`info-tick`,`icons`,`messages`])],!0):Q(``,!0),Z(`div`,{class:`chat-main`,ref_key:`chatMainEl`,ref:p},[Z(`div`,{class:`chat-scroll-viewport`,tabindex:`-1`,ref_key:`scrollContainer`,ref:l,onScroll:n[2]||=(...e)=>K(u)&&K(u)(...e),onWheel:n[3]||=(...e)=>K(d)&&K(d)(...e)},[Z(`div`,{ref_key:`chatContentsEl`,ref:m},[g(`body`)?(Y(),_s(Oc,{key:0,name:`cs-slide`},{default:oi(()=>[ba(t.$slots,`body`,{chat:K(i)},()=>[ci(ws(LP,{"show-avatar":e.showAvatar,"show-typing":e.showTyping},null,8,[`show-avatar`,`show-typing`]),[[Kc,K(a)]])],!0)]),_:3})):Q(``,!0),g(`queued`)?ba(t.$slots,`queued`,{key:1,chat:K(i)},()=>[ws(qP)],!0):Q(``,!0),g(`approval`)?ba(t.$slots,`approval`,{key:2,chat:K(i)},()=>[ws(vF)],!0):Q(``,!0),g(`conflict`)?ba(t.$slots,`conflict`,{key:3,chat:K(i)},()=>[ws(FF,{"pending-conflict":e.pendingConflict,"on-resolve":e.onResolveConflict,icons:K(i).icons,messages:K(i).messages},null,8,[`pending-conflict`,`on-resolve`,`icons`,`messages`])],!0):Q(``,!0)],512)],544)],512),g(`footer`)?(Y(),_s(Oc,{key:3,name:`cs-slide`},{default:oi(()=>[ba(t.$slots,`footer`,{chat:K(i)},()=>[ws(dI,{placeholder:e.placeholder||K(i).messages.inputPlaceholder,"input-rows":e.inputRows,"gate-pending":f.value,"quick-actions":e.quickActions,"on-drop-element":e.onDropElement,"auto-quote":e.autoQuote},null,8,[`placeholder`,`input-rows`,`gate-pending`,`quick-actions`,`on-drop-element`,`auto-quote`])],!0)]),_:3})):Q(``,!0),g(`debug`)?ba(t.$slots,`debug`,{key:4,chat:K(i)},()=>[ws(xB,{visible:K(o),"onUpdate:visible":n[4]||=e=>Fn(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:K(i).messages,locale:K(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):Q(``,!0),g(`skill`)?ba(t.$slots,`skill`,{key:5,chat:K(i)},()=>[ws(YB,{visible:K(s),"on-add-skill":e.onAddSkill,"on-remove-skill":e.onRemoveSkill,"get-user-skill-names":e.getUserSkillNames,"on-get-skill":e.onGetSkill,messages:K(i).messages,onClose:K(c)},null,8,[`visible`,`on-add-skill`,`on-remove-skill`,`get-user-skill-names`,`on-get-skill`,`messages`,`onClose`])],!0):Q(``,!0),e.selectionMenu?(Y(),_s(CB,{key:6,onQuote:n[6]||=t=>e.onSelectionQuote?.(t)})):Q(``,!0)],6)],64))}}),[[`__scopeId`,`data-v-965c3496`]]);function nV(e){let{core:t,dialogCfg:n}=e,r=null,i=e.el,a=()=>{let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.remove(`cs-hidden`),t&&t.classList.remove(`cs-hidden`)},o=t.agent.debugLogs;return r=Ll(qi({setup(){return()=>dc(tV,{fetchStream:e.streaming?t.stream:void 0,fetchResponse:e.streaming?void 0:(e,n)=>t.stream(e,()=>{},n),title:n.title,placeholder:n.placeholder,debugLogs:o.value.slice(),debug:e.debug===!0,initialMessages:t.messages,getInfo:()=>t.getInfo(),exportDiagnostics:()=>t.exportDiagnostics(),clearDebugLogs:()=>{o.value=[],zn(o)},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))}}),zn(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,drawerResizable:n.drawerResizable,drawerHidden:n.drawerHidden===!0,inputRows:n.inputRows,sections:n.sections,icons:n.icons,headerLabels:n.headerLabels!==!1,toolStepView:n.toolStepView,quickActions:cb(n.quickActions),onDropElement:n.onDropElement,pendingQuote:t.pendingQuote,onSetQuote:e=>t.setQuote(e.text,e.source,e.anchor),onClearQuote:()=>t.clearQuote(),autoQuote:n.autoQuote===!0,selectionMenu:n.selectionMenu===!0,onSelectionQuote:e=>{t.setQuote(e.text,e.source,e.anchor),a(),setTimeout(()=>{(i.querySelector?.(`.chat-input`))?.focus()},400)},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:()=>{t.messages.length&&e.runSerial(()=>t.switchSession()).catch(e=>t.emit({type:`error`,message:`新建会话失败:${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_SWITCH_FAILED`,context:{target:`new`}}))},onOpenSession:n=>{e.runSerial(()=>t.switchSession(n)).catch(e=>t.emit({type:`error`,message:`切换会话失败(${n}):${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_SWITCH_FAILED`,context:{target:n}}))},onRemoveSession:async e=>{e!==t.sessionId&&(await t.store.deleteSession(t.agentId,e),await t.refreshSessions())},...n.sessionTransfer===!0?{onExportSession:async()=>{let e=await t.exportSession(),n=JSON.stringify(e,null,2),r=String(e.sessionId??``),i=document.createElement(`a`);return i.href=URL.createObjectURL(new Blob([n],{type:`application/json`})),i.download=`chat-session-${r.slice(-6)||`export`}.json`,i.click(),setTimeout(()=>URL.revokeObjectURL(i.href),1e3),n},onImportSession:async n=>{try{let r=await n.text(),{sessionId:i}=await t.importSession(r);await e.runSerial(()=>t.switchSession(i))}catch(e){t.emit({type:`error`,message:`导入会话失败:${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_IMPORT_FAILED`,context:{file:n.name}})}}}:{}}:{}})}})),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(){if(a(),n.autoQuote===!0&&typeof document<`u`){let e=ju(document);e&&t.setQuote(e.text,e.source,e.anchor)}}}}function rV(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(` / `)}。
|
|
3082
|
+
]`,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],O={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:[O,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`,O,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})),xN=f(((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})),SN=f(((e,t)=>{function n(e){return{name:`Plain text`,aliases:[`text`,`txt`],disableAutodetect:!0}}t.exports=n})),CN=f(((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})),wN=f(((e,t)=>{function n(e){return{aliases:[`pycon`],contains:[{className:`meta.prompt`,starts:{end:/ |$/,starts:{end:`$`,subLanguage:`python`}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}t.exports=n})),TN=f(((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})),EN=f(((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})),DN=f(((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})),ON=f(((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})),kN=f(((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})),AN=f(((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},O=[g,y,E],k=[{match:i(/\./,o(...h)),relevance:0},{className:`built_in`,match:i(/\b/,o(...h),/(?=\()/)}],A={match:/->/,relevance:0},j=[A,{className:`operator`,relevance:0,variants:[{match:v},{match:`\\.(\\.|${_})+`}]}],M=`([0-9]_*)+`,ee=`([0-9a-fA-F]_*)+`,N={className:`number`,relevance:0,variants:[{match:`\\b(${M})(\\.(${M}))?([eE][+-]?(${M}))?\\b`},{match:`\\b0x(${ee})(\\.(${ee}))?([pP][+-]?(${M}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},te=(e=``)=>({className:`subst`,variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ne=(e=``)=>({className:`subst`,match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),P=(e=``)=>({className:`subst`,label:`interpol`,begin:i(/\\/,e,/\(/),end:/\)/}),re=(e=``)=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[te(e),ne(e),P(e)]}),ie=(e=``)=>({begin:i(e,/"/),end:i(/"/,e),contains:[te(e),P(e)]}),F={className:`string`,variants:[re(),re(`#`),re(`##`),re(`###`),ie(),ie(`#`),ie(`##`),ie(`###`)]},ae=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],I={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:ae},oe=e=>{let t=i(e,/\//),n=i(/\//,e);return{begin:t,end:n,contains:[...ae,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},se={scope:`regexp`,variants:[oe(`###`),oe(`##`),oe(`#`),I]},ce={match:i(/`/,x,/`/)},L=[ce,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${b}+`}],R=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:w,contains:[...j,N,F]}]}},{scope:`keyword`,match:i(/@/,o(...C),r(o(/\(/,/\s+/)))},{scope:`meta`,match:i(/@/,x)}],le={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}]},ue={begin:/</,end:/>/,keywords:D,contains:[...a,...O,...R,A,le]};le.contains.push(ue);let de={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:[`self`,{match:i(x,/\s*:/),keywords:`_|0`,relevance:0},...a,se,...O,...k,...j,N,F,...L,...R,le]},z={begin:/</,end:/>/,keywords:`repeat each`,contains:[...a,le]},B={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,...O,...j,N,F,...R,le,de],endsParent:!0,illegal:/["']/},fe={match:[/(func|macro)/,/\s+/,o(ce.match,x,v)],className:{1:`keyword`,3:`title.function`},contains:[z,B,t],illegal:[/\[/,/%/]},pe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[z,B,t],illegal:/\[|%/},me={match:[/operator/,/\s+/,v],className:{1:`keyword`,3:`title`}},V={begin:[/precedencegroup/,/\s+/,S],className:{1:`keyword`,3:`title`},contains:[le],keywords:[...p,...f],end:/}/},he={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},ge={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},H={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,x,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:D,contains:[z,...O,{begin:/:/,end:/\{/,keywords:D,contains:[{scope:`title.class.inherited`,match:S},...O],relevance:0}]};for(let e of F.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=D;let n=[...O,...k,...j,N,F,...L];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:D,contains:[...a,fe,pe,he,ge,H,me,V,{beginKeywords:`import`,end:/$/,contains:[...a],relevance:0},se,...O,...k,...j,N,F,...L,...R,le,de]}}t.exports=T})),jN=f(((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})),MN=f(((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),O=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),k={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:O},A={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`}}]},j={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]}},M={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ee={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[k],illegal:/%/},N={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function te(e){return t.concat(`(?!`,e.join(`|`),`)`)}let ne={match:t.concat(/\b/,te([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},P={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},re={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},k]},ie=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,F={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ie)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[k]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),M,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,j,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},F,{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:ie,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:O}]}]},{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`]}]}]},ee,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[k,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},P,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[k]},ne,N,A,re,{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})),NN=f(((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})),PN=f(((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})),FN=m(f(((e,t)=>{var n=QM();n.registerLanguage(`xml`,$M()),n.registerLanguage(`bash`,eN()),n.registerLanguage(`c`,tN()),n.registerLanguage(`cpp`,nN()),n.registerLanguage(`csharp`,rN()),n.registerLanguage(`css`,iN()),n.registerLanguage(`markdown`,aN()),n.registerLanguage(`diff`,oN()),n.registerLanguage(`ruby`,sN()),n.registerLanguage(`go`,cN()),n.registerLanguage(`graphql`,lN()),n.registerLanguage(`ini`,uN()),n.registerLanguage(`java`,dN()),n.registerLanguage(`javascript`,fN()),n.registerLanguage(`json`,pN()),n.registerLanguage(`kotlin`,mN()),n.registerLanguage(`less`,hN()),n.registerLanguage(`lua`,gN()),n.registerLanguage(`makefile`,_N()),n.registerLanguage(`perl`,vN()),n.registerLanguage(`objectivec`,yN()),n.registerLanguage(`php`,bN()),n.registerLanguage(`php-template`,xN()),n.registerLanguage(`plaintext`,SN()),n.registerLanguage(`python`,CN()),n.registerLanguage(`python-repl`,wN()),n.registerLanguage(`r`,TN()),n.registerLanguage(`rust`,EN()),n.registerLanguage(`scss`,DN()),n.registerLanguage(`shell`,ON()),n.registerLanguage(`sql`,kN()),n.registerLanguage(`swift`,AN()),n.registerLanguage(`yaml`,jN()),n.registerLanguage(`typescript`,MN()),n.registerLanguage(`vbnet`,NN()),n.registerLanguage(`wasm`,PN()),n.HighlightJS=n,n.default=n,t.exports=n}))()).default;ZM.setOptions({breaks:!0,gfm:!0});var IN=2e4,LN=new ZM.Renderer;LN.code=({text:e,lang:t})=>{let n=(t||``).trim()||`plaintext`,r=``;if(e.length>2e4)r=zN(e);else try{r=FN.highlight(e,{language:n,ignoreIllegals:!0}).value}catch{r=zN(e)}let i=encodeURIComponent(e),a=RN(n);return`<pre class="code-block" data-lang="${a}" data-code="${i}"><code class="hljs language-${a}">${r}</code></pre>`};function RN(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`)}function zN(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}var BN={ADD_ATTR:[`data-code`,`data-lang`,`target`,`rel`]};function VN(e){return kk.sanitize(e,BN)}function HN(e){return ZM.parse(e||``,{renderer:LN})}function UN(e){return VN(HN(e))}var WN=100,GN=2e3;function KN(e){let t=In(UN(e())),n=0,r=null;function i(){r=null,n=Date.now(),t.value=UN(e())}return mi(e,()=>{let a=e();if(a.length<=GN){r&&=(clearTimeout(r),null),n=Date.now(),t.value=UN(a);return}let o=n+WN-Date.now();o<=0?(r&&=(clearTimeout(r),null),i()):r||=setTimeout(i,o)}),lt(()=>{r&&=(clearTimeout(r),null)}),{html:t,codeBlocks:uc(()=>{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 qN=[`innerHTML`],JN=qi({__name:`MessageContent`,props:{content:{},messages:{default:()=>eO}},setup(e){let t=e,{html:n,codeBlocks:r}=KN(()=>t.content),i=G(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 yr();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 ZD(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 la(s),mi(n,s),(e,t)=>(Y(),X(`div`,{class:`message-md`,ref_key:`containerRef`,ref:i,innerHTML:K(n)},null,8,qN))}}),YN={class:`typing-text`},XN={key:0,class:`stream-cursor`},ZN=Vk(qi({__name:`MessageBubble`,props:{content:{},role:{},isPendingAssistant:{type:Boolean},showTyping:{type:Boolean},showCursor:{type:Boolean},messages:{default:()=>({...eO})}},setup(e){return(t,n)=>(Y(),X(J,null,[Z(`div`,{class:We([`message-bubble`,[e.role,{typing:e.isPendingAssistant}]])},[e.isPendingAssistant?(Y(),X(J,{key:0},[Z(`span`,{class:We([`typing-dot`,{pulse:e.showTyping}])},null,2),Z(`span`,YN,[ws(Wk,{text:e.messages.thinking},null,8,[`text`])])],64)):(Y(),X(J,{key:1},[e.role===`assistant`?(Y(),_s(JN,{key:0,content:e.content,messages:e.messages},null,8,[`content`,`messages`])):(Y(),X(J,{key:1},[ks(U(e.content),1)],64))],64))],2),e.showCursor?(Y(),X(`span`,XN)):Q(``,!0)],64))}}),[[`__scopeId`,`data-v-4b4111d8`]]),QN={class:`msg-edit`,"data-test":`msg-edit`},$N=[`disabled`],eP={class:`msg-edit-actions`},tP=[`disabled`],nP=[`disabled`],rP=Vk(qi({__name:`MessageEdit`,props:{initialValue:{},hasImages:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},messages:{default:()=>({...eO})}},emits:[`save`,`cancel`],setup(e,{emit:t}){let n=e,r=t,i=G(n.initialValue),a=G(null);function o(){let e=a.value;e&&(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)}la(async()=>{await yr();let e=a.value;e&&(o(),e.focus(),e.setSelectionRange(e.value.length,e.value.length))});function s(e){if(e.key===`Escape`){e.preventDefault(),r(`cancel`);return}e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),c())}function c(){n.loading||!i.value.trim()&&!n.hasImages||r(`save`,i.value)}return(t,n)=>(Y(),X(`div`,QN,[ci(Z(`textarea`,{ref_key:`ta`,ref:a,"onUpdate:modelValue":n[0]||=e=>i.value=e,class:`msg-edit-area`,"data-test":`msg-edit-area`,disabled:e.loading,onKeydown:s,onInput:o},null,40,$N),[[Ol,i.value]]),Z(`div`,eP,[Z(`button`,{type:`button`,class:`msg-edit-btn primary`,"data-test":`msg-edit-save`,disabled:e.loading||!(i.value.trim()||e.hasImages),onClick:c},U(e.messages.editSave),9,tP),Z(`button`,{type:`button`,class:`msg-edit-btn`,"data-test":`msg-edit-cancel`,disabled:e.loading,onClick:n[1]||=e=>t.$emit(`cancel`)},U(e.messages.editCancel),9,nP)])]))}}),[[`__scopeId`,`data-v-e2fafbfd`]]),iP={class:`message-time`},aP=Vk(qi({__name:`MessageTime`,props:{time:{}},setup(e){return(t,n)=>(Y(),X(`div`,iP,U(e.time),1))}}),[[`__scopeId`,`data-v-4a976e4a`]]),oP={class:`msg-actions`},sP=[`title`],cP=[`title`],lP={key:0,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},uP={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},dP=Vk(qi({__name:`MessageActions`,props:{copied:{type:Boolean},editable:{type:Boolean,default:!1},messages:{default:()=>({...eO})}},emits:[`copy`,`regenerate`,`edit`],setup(e){return(t,n)=>(Y(),X(`div`,oP,[e.editable?(Y(),X(`button`,{key:0,class:`msg-action-btn`,title:e.messages.editTitle,"data-test":`msg-edit-btn`,onClick:n[0]||=e=>t.$emit(`edit`)},[n[3]||=Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M11.3 2.2a1.5 1.5 0 0 1 2.1 2.1l-7.6 7.6-2.9.8.8-2.9 7.6-7.6z`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linejoin":`round`})],-1),Z(`span`,null,U(e.messages.edit),1)],8,sP)):Q(``,!0),e.editable?Q(``,!0):(Y(),X(J,{key:1},[Z(`button`,{class:We([`msg-action-btn`,{done:e.copied}]),title:e.copied?e.messages.copied:e.messages.copy,onClick:n[1]||=e=>t.$emit(`copy`)},[e.copied?(Y(),X(`svg`,lP,[...n[4]||=[Z(`path`,{d:`M3 8.5l3 3 7-7`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(Y(),X(`svg`,uP,[...n[5]||=[Z(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1),Z(`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)]])),Z(`span`,null,U(e.copied?e.messages.copied:e.messages.copy),1)],10,cP),Z(`button`,{class:`msg-action-btn`,onClick:n[2]||=e=>t.$emit(`regenerate`)},[n[6]||=Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M13.5 8a5.5 5.5 0 1 1-1.6-3.9`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`}),Z(`path`,{d:`M13.7 1.8v2.8h-2.8`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),Z(`span`,null,U(e.messages.regenerate),1)])],64))]))}}),[[`__scopeId`,`data-v-f6c166bd`]]),fP={key:1,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},pP={key:2,class:`avatar-icon`,viewBox:`0 0 1024 1024`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},mP=Vk(qi({__name:`AvatarIcon`,props:{role:{},glyph:{}},setup(e){return(t,n)=>e.glyph?(Y(),_s(Hk,{key:0,icon:e.glyph,class:`avatar-glyph`},null,8,[`icon`])):e.role===`user`?(Y(),X(`svg`,fP,[...n[0]||=[Z(`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)]])):(Y(),X(`svg`,pP,[...n[1]||=[Z(`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`]]),hP=[`data-msg-idx`],gP={key:0,class:`message-avatar`},_P={class:`message-content`},vP={key:2,class:`msg-focuses`},yP=[`title`],bP={key:3,class:`msg-quote`,"data-test":`msg-quote`},xP={class:`msg-quote-text`},SP={key:0,class:`msg-quote-source`},CP=[`data-img-count`],wP=[`title`,`onClick`],TP=[`src`,`alt`],EP={key:1,class:`msg-image-lost`},DP=Vk(qi({__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`,`edit`,`edit-save`,`edit-cancel`],setup(e){let t=e,n=oO(),r=uc(()=>t.message.role===`assistant`),i=uc(()=>r.value&&`reasoning`in t.message?t.message.reasoning??``:``),a=uc(()=>r.value&&`reasoningTotal`in t.message?t.message.reasoningTotal:void 0),o=uc(()=>r.value&&`steps`in t.message?t.message.steps??[]:[]),s=uc(()=>r.value&&!!t.message.content&&!t.loading&&t.isLast),c=uc(()=>n.editingMessage.value===t.message),l=uc(()=>t.message.role===`user`&&!c.value),u=uc(()=>t.message.content===`[image]`?``:t.message.content),d=uc(()=>r.value&&t.loading&&t.isLast&&!!t.message.content),f=G(void 0);return(t,p)=>(Y(),X(J,null,[Z(`div`,{class:We([`message-row`,e.message.role]),"data-msg-idx":e.index},[e.showAvatar?(Y(),X(`div`,gP,[ws(mP,{role:e.message.role,glyph:e.message.role===`user`?K(n).icons.userAvatar:K(n).icons.assistantAvatar},null,8,[`role`,`glyph`])])):Q(``,!0),Z(`div`,_P,[r.value?(Y(),_s(NA,{key:0,text:i.value,total:a.value,expanded:e.reasoningExpanded,running:e.loading&&e.isLast,onToggle:p[0]||=e=>t.$emit(`toggle-reasoning`)},null,8,[`text`,`total`,`expanded`,`running`])):Q(``,!0),r.value?(Y(),_s(_j,{key:1,steps:o.value,icons:K(n).icons,messages:K(n).messages,"step-view":K(n).toolStepView},null,8,[`steps`,`icons`,`messages`,`step-view`])):Q(``,!0),e.message.role===`user`&&e.message.focuses?.length?(Y(),X(`div`,vP,[(Y(!0),X(J,null,ya(e.message.focuses,e=>(Y(),X(`span`,{key:e.path,class:`msg-focus-chip`,title:K(n).messages.historyFocusChipTitlePrefix+e.path},[ws(Hk,{icon:K(n).icons.focus},null,8,[`icon`]),ks(` `+U(e.path),1)],8,yP))),128))])):Q(``,!0),e.message.role===`user`&&e.message.quote?(Y(),X(`div`,bP,[Z(`blockquote`,xP,U(e.message.quote.text),1),e.message.quote.source?(Y(),X(`span`,SP,`❝ `+U(e.message.quote.source),1)):Q(``,!0)])):Q(``,!0),e.message.role===`user`&&e.message.images?.length?(Y(),X(`div`,{key:4,class:`msg-images`,"data-img-count":e.message.images.length},[(Y(!0),X(J,null,ya(e.message.images,e=>(Y(),X(`button`,{key:e.id,type:`button`,class:`msg-image`,title:e.name||K(n).messages.imageAlt,onClick:t=>f.value=e.dataUri||e.url},[e.thumb||e.dataUri?(Y(),X(`img`,{key:0,class:`msg-image-thumb`,src:e.thumb||e.dataUri,alt:e.name||K(n).messages.imageAlt},null,8,TP)):(Y(),X(`span`,EP,`🖼️`))],8,wP))),128))],8,CP)):Q(``,!0),c.value?(Y(),_s(rP,{key:5,"initial-value":u.value,"has-images":!!e.message.images?.length,loading:e.loading,messages:K(n).messages,onSave:p[1]||=e=>t.$emit(`edit-save`,e),onCancel:p[2]||=e=>t.$emit(`edit-cancel`)},null,8,[`initial-value`,`has-images`,`loading`,`messages`])):!r.value||e.message.content||e.isPendingAssistant?(Y(),_s(ZN,{key:6,messages:K(n).messages,content:e.message.content,role:e.message.role,"is-pending-assistant":e.isPendingAssistant,"show-typing":e.showTyping,"show-cursor":d.value},null,8,[`messages`,`content`,`role`,`is-pending-assistant`,`show-typing`,`show-cursor`])):Q(``,!0),ws(aP,{time:e.time},null,8,[`time`]),s.value||l.value?(Y(),_s(dP,{key:7,editable:l.value,messages:K(n).messages,copied:e.copied,onCopy:p[3]||=e=>t.$emit(`copy`),onRegenerate:p[4]||=e=>t.$emit(`regenerate`),onEdit:p[5]||=e=>t.$emit(`edit`)},null,8,[`editable`,`messages`,`copied`])):Q(``,!0)])],10,hP),ws(HA,{src:f.value,alt:K(n).messages.imageAlt,"close-title":K(n).messages.close,onClose:p[6]||=e=>f.value=void 0},null,8,[`src`,`alt`,`close-title`])],64))}}),[[`__scopeId`,`data-v-70c7d2f4`]]),OP={class:`chat-body`},kP={key:0,class:`empty-state`},AP={class:`empty-icon`},jP={key:1,class:`message-row assistant`},MP={key:0,class:`message-avatar`},NP={class:`message-content`},PP={key:2,class:`error-bar`},FP={class:`error-text`},IP=[`title`],LP=Vk(qi({__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,startEdit:f,submitEdit:p,cancelEdit:m}=oO(),{state:h,retry:g,regenerate:_}=t,v=uc(()=>h.messages.length>0),y=uc(()=>h.messages.some(e=>e.role===`user`)),b=uc(()=>h.messages[h.messages.length-1]?.role===`assistant`);return(t,x)=>(Y(),X(`div`,OP,[v.value?Q(``,!0):(Y(),X(`div`,kP,[Z(`div`,AP,[ws(Hk,{icon:K(u).empty},null,8,[`icon`])]),Z(`p`,null,[ws(Wk,{text:K(d).emptyGreeting},null,8,[`text`])])])),(Y(!0),X(J,null,ya(K(h).messages,(t,c)=>(Y(),_s(DP,{key:c,message:t,index:c,"show-avatar":e.showAvatar,"show-typing":e.showTyping,"is-pending-assistant":K(a)(c),"reasoning-expanded":K(o)(c),copied:K(r),"is-last":c===K(h).messages.length-1,loading:K(h).loading,time:K(n)(t.timestamp),onToggleReasoning:e=>K(s)(c),onCopy:e=>K(i)(t.content),onRegenerate:K(_),onEdit:e=>K(f)(t),onEditSave:K(p),onEditCancel:K(m)},null,8,[`message`,`index`,`show-avatar`,`show-typing`,`is-pending-assistant`,`reasoning-expanded`,`copied`,`is-last`,`loading`,`time`,`onToggleReasoning`,`onCopy`,`onRegenerate`,`onEdit`,`onEditSave`,`onEditCancel`]))),128)),K(h).loading&&!b.value?(Y(),X(`div`,jP,[e.showAvatar?(Y(),X(`div`,MP,[ws(mP,{role:`assistant`,glyph:K(u).assistantAvatar},null,8,[`glyph`])])):Q(``,!0),Z(`div`,NP,[ws(ZN,{content:``,role:`assistant`,"is-pending-assistant":!0,"show-typing":e.showTyping,"show-cursor":!1,messages:K(d)},null,8,[`show-typing`,`messages`])])])):Q(``,!0),K(h).error?(Y(),X(`div`,PP,[Z(`span`,FP,U(K(h).error),1),y.value?(Y(),X(`button`,{key:0,class:`retry-btn`,onClick:x[0]||=(...e)=>K(g)&&K(g)(...e)},[ws(Wk,{text:K(d).retry},null,8,[`text`])])):Q(``,!0),K(c)?(Y(),X(`button`,{key:1,class:`undo-btn`,title:K(d).undoTitle,onClick:x[1]||=(...e)=>K(l)&&K(l)(...e)},[ws(Wk,{text:K(d).undo},null,8,[`text`])],8,IP)):Q(``,!0)])):Q(``,!0)]))}}),[[`__scopeId`,`data-v-c0dd8179`]]),RP={key:0,class:`queued-bar`},zP={class:`queued-head`},BP={class:`queued-icon`},VP={class:`queued-title`},HP={class:`queued-count`},UP={class:`queued-idx`},WP={class:`queued-text`},GP=[`title`,`onClick`],KP=[`title`,`onClick`],qP=Vk(qi({__name:`QueuedBar`,setup(e){let{chat:t,editQueued:n,icons:r,messages:i}=oO(),{queuedTasks:a,removeQueuedTask:o}=t;return(e,t)=>K(a).length?(Y(),X(`div`,RP,[Z(`div`,zP,[Z(`span`,BP,[ws(Hk,{icon:K(r).queued},null,8,[`icon`])]),Z(`span`,VP,U(K(i).queuedTitle),1),Z(`span`,HP,U(K(a).length),1)]),(Y(!0),X(J,null,ya(K(a),(e,t)=>(Y(),X(`div`,{key:t,class:`queued-item`},[Z(`span`,UP,U(t+1),1),Z(`span`,WP,U(e),1),Z(`button`,{class:`queued-act`,title:K(i).queuedEditTitle,onClick:e=>K(n)(t)},[ws(Hk,{icon:K(r).queuedEdit},null,8,[`icon`])],8,GP),Z(`button`,{class:`queued-act queued-del`,title:K(i).removeQueuedTitle,onClick:e=>K(o)(t)},`✕`,8,KP)]))),128))])):Q(``,!0)}}),[[`__scopeId`,`data-v-02414fc9`]]),JP={key:0,class:`approval-bar`},YP={class:`approval-head`},XP={class:`approval-title`},ZP={key:0,class:`approval-question`},QP={key:1,class:`approval-context`},$P={key:2,class:`approval-recommend`},eF={key:3,class:`approval-options`},tF=[`onClick`],nF={class:`approval-actions`},rF={class:`approval-head`},iF={class:`approval-title`},aF={key:0,class:`approval-args`},oF={key:1,class:`approval-preview`,"data-test":`approval-preview`},sF={key:0,class:`preview-error`,"data-test":`preview-error`},cF=[`data-test`],lF={class:`preview-op`},uF={class:`preview-path`},dF={class:`preview-diff`},fF={class:`preview-old`},pF={class:`preview-new`},mF={key:1,class:`preview-more`},hF={key:2,class:`approval-plan-context`},gF={class:`approval-actions`},_F=[`disabled`],vF=20,yF=Vk(qi({__name:`ApprovalBar`,setup(e){let t=oO(),{pendingApproval:n,resolveApproval:r}=t.chat,i=t.messages,a=t.planConfirmation,o=G(!1);mi(n,()=>{o.value=!1});let s=uc(()=>n.value?.toolName===`request_human_confirmation`),c=uc(()=>{let e=n.value?.args?.options;return Array.isArray(e)?e.map(String):[]}),l=uc(()=>{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)}}),u=uc(()=>n.value?.preview?.items??[]),d=uc(()=>u.value.length>vF),f=uc(()=>{let e=n.value?.preview;return!!e&&e.ok===!1});return(e,p)=>K(n)?(Y(),X(`div`,JP,[s.value?(Y(),X(J,{key:0},[Z(`div`,YP,[p[5]||=Z(`span`,{class:`approval-icon`},`❓`,-1),Z(`span`,XP,U(K(i).humanConfirmTitle),1)]),K(n).args?.question?(Y(),X(`div`,ZP,U(K(n).args.question),1)):Q(``,!0),K(n).args?.context?(Y(),X(`div`,QP,U(K(n).args.context),1)):Q(``,!0),K(n).args?.recommendation?(Y(),X(`div`,$P,[ws(Hk,{icon:K(t).icons.recommend},null,8,[`icon`]),ks(U(K(i).recommendPrefix)+U(K(n).args.recommendation),1)])):Q(``,!0),c.value.length?(Y(),X(`div`,eF,[(Y(!0),X(J,null,ya(c.value,e=>(Y(),X(`button`,{key:e,class:`approval-opt`,onClick:t=>K(r)(e)},U(e),9,tF))),128))])):Q(``,!0),Z(`div`,nF,[Z(`button`,{class:`approval-deny`,onClick:p[0]||=e=>K(r)(!1)},[ws(Wk,{text:K(i).deny},null,8,[`text`])]),c.value.length?Q(``,!0):(Y(),X(`button`,{key:0,class:`approval-allow`,onClick:p[1]||=e=>K(r)(!0)},[ws(Wk,{text:K(i).approve},null,8,[`text`])]))])],64)):(Y(),X(J,{key:1},[Z(`div`,rF,[p[6]||=Z(`span`,{class:`approval-icon`},`✋`,-1),Z(`span`,iF,[ks(U(K(i).toolConfirmPrefix),1),Z(`code`,null,U(K(n).toolName),1)]),l.value?(Y(),X(`button`,{key:0,class:`approval-toggle`,onClick:p[2]||=e=>o.value=!o.value},U(o.value?K(i).collapseArgs:K(i).viewArgs)+U(o.value?` ▴`:` ▾`),1)):Q(``,!0)]),l.value&&o.value?(Y(),X(`pre`,aF,U(l.value),1)):Q(``,!0),u.value.length?(Y(),X(`div`,oF,[K(n).preview&&!K(n).preview.ok?(Y(),X(`div`,sF,`⚠ `+U(K(n).preview.error),1)):Q(``,!0),(Y(!0),X(J,null,ya(u.value.slice(0,vF),(e,t)=>(Y(),X(`div`,{key:t,class:`preview-item`,"data-test":`preview-item-${t}`},[Z(`span`,lF,U(e.op||`set`),1),Z(`code`,uF,U(e.jsonPath||`(主数据整体)`),1),Z(`span`,dF,[Z(`span`,fF,U(e.oldSummary??`—`),1),p[7]||=Z(`span`,{class:`preview-arrow`},` → `,-1),Z(`span`,pF,U(e.newSummary??`—`),1)])],8,cF))),128)),d.value?(Y(),X(`div`,mF,`… 其余 `+U(u.value.length-vF)+` 项`,1)):Q(``,!0)])):Q(``,!0),K(a)?(Y(),X(`div`,hF,[ws(Hk,{icon:K(t).icons.recommend},null,8,[`icon`]),ks(U(K(i).planConfirmedPrefix)+U(K(a).choice)+U(K(i).planConfirmedSuffix),1)])):Q(``,!0),Z(`div`,gF,[Z(`button`,{class:`approval-deny`,onClick:p[3]||=e=>K(r)(!1)},[ws(Wk,{text:K(i).deny},null,8,[`text`])]),Z(`button`,{class:`approval-allow`,disabled:f.value,"data-test":`approval-allow`,onClick:p[4]||=e=>K(r)(!0)},[ws(Wk,{text:K(i).approve},null,8,[`text`])],8,_F)])],64))])):Q(``,!0)}}),[[`__scopeId`,`data-v-3b1ae2a6`]]),bF={key:0,class:`conflict-bar`},xF={class:`conflict-head`},SF={class:`conflict-icon`},CF={class:`conflict-title`},wF={class:`conflict-detail`},TF={key:0,class:`conflict-diff`},EF={class:`conflict-diff-col`},DF={class:`conflict-diff-label`},OF={class:`conflict-diff-pre`},kF={class:`conflict-diff-col`},AF={class:`conflict-diff-label`},jF={class:`conflict-diff-pre`},MF={class:`conflict-actions`},NF=[`title`],PF=[`title`],FF=[`title`],IF=Vk(qi({__name:`ConflictBar`,props:{pendingConflict:{},onResolve:{},icons:{default:()=>({...QD})},messages:{default:()=>({...eO})}},setup(e){let t=e,n=G(!1);mi(()=>t.pendingConflict,()=>{n.value=!1});let r=uc(()=>{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=uc(()=>{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?(Y(),X(`div`,bF,[Z(`div`,xF,[Z(`span`,SF,[ws(Hk,{icon:e.icons.conflict},null,8,[`icon`])]),Z(`span`,CF,[ks(U(e.messages.conflictTitlePrefix),1),Z(`code`,null,U(e.pendingConflict.path),1),ks(U(e.messages.conflictTitleSuffix),1)])]),Z(`div`,wF,U(e.messages.conflictDetailTemplate.replace(`{op}`,e.pendingConflict.op===`delete`?e.messages.conflictOpDelete:e.messages.conflictOpWrite)),1),Z(`button`,{class:`conflict-toggle`,onClick:a[0]||=e=>n.value=!n.value},U(n.value?e.messages.collapseDiff:e.messages.viewDiff)+U(n.value?` ▴`:` ▾`),1),n.value?(Y(),X(`div`,TF,[Z(`div`,EF,[Z(`div`,DF,U(e.messages.agentValueLabel),1),Z(`pre`,OF,U(r.value||e.messages.deleteNoValue),1)]),Z(`div`,kF,[Z(`div`,AF,U(e.messages.currentValueLabel),1),Z(`pre`,jF,U(i.value),1)])])):Q(``,!0),Z(`div`,MF,[Z(`button`,{class:`conflict-keep`,onClick:a[1]||=t=>e.onResolve?.(`keep_external`),title:e.messages.keepExternalTitle},[ws(Wk,{text:e.messages.keepExternal},null,8,[`text`])],8,NF),Z(`button`,{class:`conflict-overwrite`,onClick:a[2]||=t=>e.onResolve?.(`overwrite`),title:e.messages.overwriteTitle},[ws(Wk,{text:e.messages.overwrite},null,8,[`text`])],8,PF),Z(`button`,{class:`conflict-restore`,onClick:a[3]||=t=>e.onResolve?.(`restore`),title:e.messages.restoreTitle},[ws(Wk,{text:e.messages.restore},null,8,[`text`])],8,FF)])])):Q(``,!0)}}),[[`__scopeId`,`data-v-36dda58c`]]),LF={class:`chat-footer`},RF=[`title`],zF={key:0,class:`drop-hint`},BF={key:1,class:`quick-actions`,"data-test":`quick-actions`},VF=[`disabled`,`data-test`,`title`,`onClick`],HF={key:2,class:`chip-stack`},UF={key:0,class:`focus-chips`},WF=[`title`,`onClick`],GF={class:`focus-chip-icon`},KF={class:`focus-chip-path`},qF=[`title`,`onClick`],JF={key:1,class:`quote-chips`,"data-test":`quote-chips`},YF=[`title`],XF={class:`quote-chip-text`},ZF=[`title`],QF={key:2,class:`img-chips`,"data-test":`img-chips`},$F=[`title`],eI=[`src`,`alt`],tI=[`onClick`],nI={key:3,class:`img-error`,"data-test":`img-error`},rI={key:3,class:`gate-hint`,"data-test":`gate-hint`},iI=[`placeholder`,`rows`,`disabled`],aI={class:`input-actions`},oI={class:`send-hint`},sI=[`title`,`disabled`],cI={key:1,width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},lI=[`disabled`,`title`],uI={key:0,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`},dI={key:2,width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},fI=Vk(qi({__name:`ChatInput`,props:{placeholder:{},inputRows:{},gatePending:{type:Boolean},quickActions:{},onDropElement:{type:Function},autoQuote:{type:Boolean}},setup(e){let t=e,n=oO(),{inputText:r,send:i,keydown:a,canUndo:o,undo:s,focuses:c,removeFocus:l,focusChipClick:u,icons:d,messages:f,quote:p,clearQuote:m,setQuote:h}=n,{state:g,stop:_,sendMessage:v}=n.chat,{pendingImages:y,addImageFiles:b,removePendingImage:x,imageInputError:S,compressingImages:C}=n,w=e=>{let t=f.quoteChipTitle;return e.source?`${e.source}\n\n${e.text}\n\n${t}`:`${e.text}\n\n${t}`},T=()=>{if(!t.autoQuote||typeof document>`u`)return;let e=ju(document);e&&h(e)},E=G(null),D=G(!1),O=()=>E.value?.click(),k=e=>{let t=e.target.files;t?.length&&b(t),e.target.value=``},A=e=>{D.value=!1;let n=e.dataTransfer?.files;if(n?.length){b(n);return}t.onDropElement&&ee?.isConnected&&(t.onDropElement(ee),ee=null)},j=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&&b(n)},M=e=>{t.gatePending||g.loading||v(e.prompt)},ee=null,N=null,te=e=>{e.target instanceof Element&&(ee=e.target,N&&clearTimeout(N),N=setTimeout(()=>{ee=null},2e3))},ne=()=>{ee=null};return la(()=>{t.onDropElement&&(window.addEventListener(`dragstart`,te,!0),window.addEventListener(`dragend`,ne,!0))}),fa(()=>{window.removeEventListener(`dragstart`,te,!0),window.removeEventListener(`dragend`,ne,!0),N&&clearTimeout(N)}),(t,n)=>(Y(),X(`div`,LF,[K(o)?(Y(),X(`button`,{key:0,class:`undo-foot-btn`,title:K(f).undoTitle,onClick:n[0]||=(...e)=>K(s)&&K(s)(...e)},U(K(f).undo),9,RF)):Q(``,!0),Z(`div`,{class:We([`chat-input-wrap`,{"drag-over":D.value}]),onPointerdownCapture:T,onDragover:n[5]||=jl(e=>D.value=!0,[`prevent`]),onDragleave:n[6]||=e=>D.value=!1,onDrop:jl(A,[`prevent`])},[D.value?(Y(),X(`div`,zF,[n[7]||=Z(`svg`,{class:`drop-hint-icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[Z(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`3`}),Z(`circle`,{cx:`9`,cy:`9`,r:`2`}),Z(`path`,{d:`m21 15-4.35-4.35a1.5 1.5 0 0 0-2.12 0L5 20`})],-1),ks(` `+U(K(f).imageDropHint),1)])):Q(``,!0),e.quickActions?.length?(Y(),X(`div`,BF,[(Y(!0),X(J,null,ya(e.quickActions,(t,n)=>(Y(),X(`button`,{key:n,type:`button`,class:`quick-action-chip`,disabled:e.gatePending||K(g).loading,"data-test":`quick-action-${n}`,title:t.prompt,onClick:e=>M(t)},U(t.icon?`${t.icon} `:``)+U(t.label),9,VF))),128))])):Q(``,!0),K(c).length||K(y).length||K(p)||K(S)?(Y(),X(`div`,HF,[K(c).length?(Y(),X(`div`,UF,[(Y(!0),X(J,null,ya(K(c),e=>(Y(),X(`span`,{key:e.path,class:`focus-chip`,title:K(f).focusChipTitlePrefix+e.path+K(f).focusChipTitleHint,onClick:t=>K(u)(e)},[Z(`span`,GF,[ws(Hk,{icon:K(d).focus},null,8,[`icon`])]),Z(`code`,KF,U(e.path),1),Z(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`focus-clear`,title:K(f).removeFocus,onClick:jl(t=>K(l)(e.path),[`stop`])},`✕`,8,qF)],8,WF))),128))])):Q(``,!0),K(p)?(Y(),X(`div`,JF,[Z(`span`,{class:`quote-chip`,title:w(K(p))},[n[8]||=Z(`span`,{class:`quote-chip-icon`},`❝`,-1),Z(`span`,XF,U(K(p).text),1),Z(`button`,{type:`button`,class:`focus-chip-x`,"data-test":`quote-clear`,title:K(f).quoteRemove,onClick:n[1]||=jl(e=>K(m)(),[`stop`])},`✕`,8,ZF)],8,YF)])):Q(``,!0),K(y).length?(Y(),X(`div`,QF,[(Y(!0),X(J,null,ya(K(y),e=>(Y(),X(`span`,{key:e.id,class:`img-chip`,title:e.name||K(f).imageAlt},[Z(`img`,{class:`img-chip-thumb`,src:e.dataUri,alt:e.name||K(f).imageAlt},null,8,eI),Z(`button`,{type:`button`,class:`img-chip-x`,"data-test":`img-chip-x`,onClick:t=>K(x)(e.id)},`✕`,8,tI)],8,$F))),128))])):Q(``,!0),K(S)?(Y(),X(`div`,nI,U(K(S)),1)):Q(``,!0)])):Q(``,!0),e.gatePending?(Y(),X(`div`,rI,U(K(f).inputGateHint),1)):Q(``,!0),ci(Z(`textarea`,{"onUpdate:modelValue":n[2]||=e=>Fn(r)?r.value=e:null,class:`chat-input`,placeholder:e.placeholder,rows:e.inputRows,disabled:e.gatePending,onKeydown:n[3]||=(...e)=>K(a)&&K(a)(...e),onPaste:j},null,40,iI),[[Ol,K(r)]]),Z(`div`,aI,[Z(`span`,oI,U(K(f).sendHint),1),Z(`button`,{class:`attach-btn`,title:K(f).attachImageTitle,disabled:e.gatePending,"data-test":`attach-btn`,onClick:O},[K(d).attachImage?(Y(),_s(Hk,{key:0,icon:K(d).attachImage},null,8,[`icon`])):(Y(),X(`svg`,cI,[...n[9]||=[Z(`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,sI),Z(`input`,{ref_key:`fileInput`,ref:E,type:`file`,accept:`image/*`,multiple:``,hidden:``,"data-test":`attach-input`,onChange:k},null,544),Z(`button`,{class:We([`send-btn`,{"stop-btn":K(g).loading}]),disabled:!K(g).loading&&!K(r).trim()&&!K(y).length&&!K(C)||e.gatePending&&!K(g).loading,title:K(g).loading?K(f).stopTitle:K(f).sendTitle,onClick:n[4]||=e=>K(g).loading?K(_)():K(i)()},[K(g).loading?(Y(),X(`svg`,uI,[...n[10]||=[Z(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`},null,-1)]])):K(d).send?(Y(),_s(Hk,{key:1,icon:K(d).send},null,8,[`icon`])):(Y(),X(`svg`,dI,[...n[11]||=[Z(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`},null,-1),Z(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`},null,-1)]]))],10,lI)])],34)]))}}),[[`__scopeId`,`data-v-1580c76b`]]),pI={key:0,class:`debug-drawer`},mI={class:`drawer-header`},hI={class:`tab-group`},gI={class:`header-actions`},_I=[`title`],vI=[`title`],yI=[`title`],bI={key:0,class:`drawer-filters`},xI=[`onClick`],SI={class:`chip-count`},CI={class:`chip-count`},wI={key:0,class:`context-panel`},TI={key:0,class:`trace-empty`},EI={class:`ctx-overview`},DI={class:`ctx-occupancy`},OI=[`title`],kI=[`title`],AI={class:`ctx-pct`},jI={class:`ctx-kv-row`},MI={class:`ctx-kv`},NI={key:0,class:`ctx-kv`},PI={key:1,class:`ctx-kv`},FI={class:`ctx-section-title`},II=[`title`],LI={class:`ctx-cat-bar`},RI={class:`ctx-cat-tokens`},zI={key:0,class:`ctx-compression`},BI={class:`ctx-section-title`},VI={class:`ctx-kv-row`},HI={class:`ctx-kv`},UI={class:`ctx-kv`},WI={class:`ctx-kv`},GI={key:0,class:`ctx-kv`},KI={key:1,class:`subagent-panel`},qI={key:0,class:`sub-section`},JI={class:`sub-section-title`},YI={key:1,class:`trace-empty`},XI={key:0,class:`sub-section`},ZI={class:`sub-section-title`},QI={class:`sub-head`},$I={class:`sub-label`},eL={class:`sub-steps-badge`},tL={class:`sub-task`},nL={key:1,class:`sub-section`},rL={class:`sub-section-title`},iL={class:`sub-head`},aL={class:`sub-label`},oL={key:0,class:`sub-dur`},sL=[`onClick`],cL={class:`sub-task`},lL={key:0,class:`sub-result`},uL={key:1,class:`sub-steps-list`},dL={class:`sub-step-kind`},fL={class:`sub-step-name`},pL={class:`sub-step-ts`},mL={key:0,class:`empty`},hL=[`onClick`],gL={class:`log-group-title`},_L={class:`log-group-meta`},vL={key:0,class:`lg-badge`},yL={key:1,class:`lg-badge`},bL={key:2,class:`lg-badge err`},xL={class:`log-group-body`},SL={class:`log-head`},CL={key:0,class:`log-source`},wL={class:`log-time`},TL={class:`log-body`},EL={class:`kv-grid`},DL={class:`kv`},OL={class:`k`},kL={class:`v`},AL={class:`kv`},jL={class:`k`},ML={class:`v`},NL={class:`kv`},PL={class:`v`},FL={class:`kv`},IL={class:`k`},LL={class:`v`},RL={class:`section-label`},zL={class:`chip-row`},BL={class:`section-label`},VL={class:`msg-list`},HL={class:`msg-text`},UL={class:`badge-row`},WL={class:`badge`},GL={key:0,class:`badge muted`},KL={class:`badge muted`},qL={key:1,class:`badge muted`},JL=[`onClick`],YL=[`title`,`onClick`],XL=[`onClick`],ZL=[`title`,`onClick`],QL={class:`msg-detail`},$L={key:0,class:`msg-text`},eR={class:`tc-inline-name`},tR={class:`tc-inline-args`},nR={key:1,class:`tc-id`},rR={key:1,class:`log-raw`},iR={class:`badge-row`},aR={class:`badge`},oR={key:0,class:`badge warn`},sR={key:0,class:`resp-content`},cR={key:1,class:`tc-list`},lR={class:`tc-name`},uR={class:`tc-args`},dR={key:2,class:`usage-row`},fR={class:`usage`},pR={class:`usage`},mR={class:`usage`},hR={key:0,class:`usage`},gR={class:`tc-name`},_R={key:0,class:`tc-dur`},vR=[`title`,`onClick`],yR={class:`tc-args`},bR={class:`tc-result-sep`},xR={class:`tc-args tc-result`},SR={key:1,class:`tc-card inline`},CR={class:`tc-name`},wR={key:0,class:`tc-dur running`},TR={class:`tc-args`},ER={key:4,class:`err-box`},DR={class:`log-footer`},OR=[`onClick`],kR=[`onClick`],AR={key:0,class:`log-raw`},jR={key:3,class:`info-body`},MR={key:0,class:`empty`},NR={class:`info-section`},PR={class:`info-title`},FR={class:`kv-grid`},IR={class:`kv`},LR={class:`v`},RR={class:`kv`},zR={class:`k`},BR={class:`v`},VR={class:`kv`},HR={class:`k`},UR={class:`v`},WR={class:`kv`},GR={class:`k`},KR={class:`v`},qR={class:`kv`,style:{"margin-top":`6px`}},JR={class:`k`},YR={class:`v`,style:{"font-size":`11px`}},XR={class:`info-section`},ZR={class:`info-title`},QR={class:`info-name`},$R={class:`info-desc`},ez={key:0,class:`info-section`},tz={class:`info-title`},nz={class:`info-hint`},rz=[`onClick`],iz={class:`info-desc`},az={key:0,class:`skill-content`},oz={key:0,class:`skill-loading`},sz={key:1,class:`skill-error`},cz={key:2,class:`skill-pre`},lz={key:1,class:`info-section`},uz={class:`info-title`},dz={class:`info-item`},fz={class:`info-name`},pz={class:`info-desc`},mz={class:`info-section`},hz={class:`info-title`},gz={class:`kv-grid`},_z={class:`kv`},vz={class:`k`},yz={class:`v`},bz={class:`kv`},xz={class:`k`},Sz={class:`v`},Cz={class:`kv`},wz={class:`k`},Tz={class:`v`},Ez={class:`kv`},Dz={class:`k`},Oz={class:`v`,style:{"font-size":`11px`}},kz={key:2,class:`info-section`},Az={class:`info-title`},jz={class:`info-name`},Mz={class:`src-tag mcp`},Nz={class:`info-desc`},Pz={key:3,class:`info-section`},Fz={class:`info-title`},Iz={class:`kv-grid`},Lz={class:`kv`},Rz={class:`k`},zz={class:`v`},Bz={class:`kv`},Vz={class:`k`},Hz={class:`v`},Uz={class:`kv`},Wz={class:`k`},Gz={class:`v`},Kz={key:0,class:`kv`},qz={class:`k`},Jz={class:`v`,style:{"font-size":`11px`}},Yz={key:4,class:`info-section`},Xz={class:`info-title`},Zz={key:5,class:`info-section`},Qz={class:`info-title`},$z={class:`info-pre`},eB={key:6,class:`info-section`},tB={class:`info-title`},nB={class:`info-kv`},rB={class:`kv`},iB={class:`k`},aB={class:`v`},oB={class:`kv`},sB={class:`k`},cB={class:`v`},lB={class:`kv`},uB={class:`k`},dB={class:`v`},fB={class:`kv`},pB={class:`k`},mB={class:`v`},hB={class:`kv`},gB={class:`k`},_B={class:`v`,style:{"font-size":`11px`}},vB={key:0,class:`kv`},yB={class:`k`},bB={class:`v`,style:{"font-size":`11px`}},xB=400,SB=Vk(qi({__name:`DebugDrawer`,props:{logs:{default:()=>[]},visible:{type:Boolean},getInfo:{},exportDiagnostics:{},infoTick:{},getSkillContent:{},csTheme:{},messages:{default:()=>eO},locale:{default:`zh-CN`}},emits:[`update:visible`,`clear`],setup(e,{emit:t}){let n=e,r=t,i=G(`all`),a=G(new Set),o=G(null),s=G(null),c=G(null),l=null;function u(){l||!o.value||!s.value||!c.value||(l=JD({target:o.value,elements:{viewport:s.value,content:c.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}la(u),mi(()=>n.visible,async e=>{e&&(await yr(),u())}),fa(()=>{l?.destroy(),l=null});let d=G(new Set),f=G(new Set);function p(e){let t=f.value;t.has(e)?t.delete(e):t.add(e)}let m=G(new Set);function h(e){let t=m.value;t.has(e)?t.delete(e):t.add(e)}let g=G(``);async function _(e,t){await ZD(e)&&(g.value=t,setTimeout(()=>{g.value===t&&(g.value=``)},1200))}function v(){let e=``;try{e=n.exportDiagnostics?n.exportDiagnostics():Hv(Vv({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=uc(()=>n.messages),b=uc(()=>({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=uc(()=>Array.isArray(n.logs)?n.logs:[]),S=uc(()=>i.value===`all`?x.value:x.value.filter(e=>e.type===i.value)),C=uc(()=>{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=uc(()=>{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}),O=uc(()=>{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}),k=uc(()=>{let e=O.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}),A=G(new Set),j=G(new Set),M=uc(()=>k.value.length?k.value[k.value.length-1].key:``);function ee(e){return A.value.has(e)?!0:!j.value.has(e)&&e===M.value}function N(e){let t=new Set(A.value),n=new Set(j.value);ee(e)?(t.delete(e),n.add(e)):(n.delete(e),t.add(e)),A.value=t,j.value=n}function te(e){return e.kind===`pre`?y.value.debugFlowPrep:e.kind===`wrap_up`?y.value.debugLogsWrapUp:`${y.value.debugRoundPrefix}${e.round}${y.value.debugRoundSuffix}`}function ne(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 P(e){return new Date(e).toLocaleTimeString(n.locale,{hour12:!1})+`.`+String(e%1e3).padStart(3,`0`)}function re(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}function ie(e){let t=new Set(d.value);t.has(e)?t.delete(e):t.add(e),d.value=t}function F(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}let ae={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 I(e){return ae[e]||{label:(e||`?`).toUpperCase(),color:`#9ca3af`}}function oe(){r(`update:visible`,!1)}function se(){a.value=new Set,A.value=new Set,j.value=new Set,r(`clear`)}let ce=G(`logs`),L=G(null),R=G({});async function le(e){if(R.value[e]){delete R.value[e],R.value={...R.value};return}if(!n.getSkillContent){R.value={...R.value,[e]:{loading:!1,content:null,error:y.value.debugSkillNoReader}};return}R.value={...R.value,[e]:{loading:!0,content:null}};try{let t=await n.getSkillContent(e);R.value={...R.value,[e]:{loading:!1,content:t,error:t==null?y.value.debugSkillEmpty:void 0}}}catch(t){R.value={...R.value,[e]:{loading:!1,content:null,error:String(t?.message||t)}}}}function ue(){if(n.getInfo)try{L.value=n.getInfo()}catch{L.value=null}}function de(e){ce.value=e,(e===`subagent`||e===`info`||e===`context`)&&ue()}mi(()=>n.infoTick?.value,()=>{n.visible&&(ce.value===`subagent`||ce.value===`info`||ce.value===`context`)&&ue()});let z=uc(()=>({pending:{label:y.value.debugTodoPending,color:`#9ca3af`},in_progress:{label:y.value.debugTodoInProgress,color:`#d97706`},completed:{label:y.value.debugTodoCompleted,color:`#059669`}}));function B(e){return z.value[e]?.label??e}function fe(e){return e?e===`builtin`?`builtin`:e.startsWith(`mcp:`)?`mcp`:`user`:``}function pe(e,t){return e.length>t?e.slice(0,t)+`…`:e}function me(e){if(e>=1e3){let t=e/1e3;return t>=10?`${Math.round(t)}s`:`${t.toFixed(1)}s`}return`${e}ms`}let V=uc(()=>L.value?.context),he=uc(()=>{let e=V.value;return e?e.occupancy>=1?`red`:e.thresholdRatio>0&&e.occupancy>=e.thresholdRatio?`yellow`:`green`:``}),ge=uc(()=>L.value?.subagent?.active??[]),H=uc(()=>L.value?.subagent?.history??[]),_e=uc(()=>Object.entries(L.value?.subagent?.lockedComponents??{})),ve=uc(()=>({running:{label:y.value.debugSubRunning,color:`#059669`},done:{label:y.value.debugSubDone,color:`#6b7280`},error:{label:y.value.debugSubError,color:`#dc2626`}})),ye=G(new Set);function be(e){let t=new Set(ye.value);t.has(e)?t.delete(e):t.add(e),ye.value=t}function xe(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:``}`}return(t,n)=>(Y(),_s(ki,{to:`body`},[ws(Oc,{name:`drawer`},{default:oi(()=>[e.visible?(Y(),X(`div`,pI,[Z(`div`,{class:We([`drawer-panel`,{"cs-theme-dark":e.csTheme===`dark`}])},[Z(`div`,mI,[Z(`div`,hI,[Z(`button`,{class:We([`tab-btn`,{active:ce.value===`logs`}]),onClick:n[0]||=e=>de(`logs`)},`🐛 `+U(y.value.debugTabLogs),3),e.getInfo?(Y(),X(`button`,{key:0,class:We([`tab-btn`,{active:ce.value===`context`}]),onClick:n[1]||=e=>de(`context`)},`📊 `+U(y.value.debugTabContext),3)):Q(``,!0),e.getInfo?(Y(),X(`button`,{key:1,class:We([`tab-btn`,{active:ce.value===`subagent`}]),onClick:n[2]||=e=>de(`subagent`)},`🤖 `+U(y.value.debugTabSubagent),3)):Q(``,!0),e.getInfo?(Y(),X(`button`,{key:2,class:We([`tab-btn`,{active:ce.value===`info`}]),onClick:n[3]||=e=>de(`info`)},`🧬 `+U(y.value.debugTabInfo),3)):Q(``,!0)]),Z(`div`,gI,[Z(`button`,{class:`hd-btn`,title:y.value.debugCopyReport,onClick:v},U(g.value===`report`?`✓`:`💾`),9,_I),ce.value===`logs`?(Y(),X(`button`,{key:0,class:`hd-btn`,title:y.value.debugClearLogs,onClick:se},`🗑️`,8,vI)):Q(``,!0),Z(`button`,{class:`hd-btn`,title:y.value.close,onClick:oe},`✕`,8,yI)])]),ce.value===`logs`?(Y(),X(`div`,bI,[(Y(!0),X(J,null,ya(b.value,(e,t)=>(Y(),X(`button`,{key:t,class:We([`filter-chip`,{active:i.value===t}]),style:ze({"--chip-color":e.color}),onClick:e=>i.value=t},[ks(U(e.icon)+` `+U(e.label)+` `,1),Z(`span`,SI,U(C.value[t]||0),1)],14,xI))),128)),Z(`button`,{class:We([`filter-chip all`,{active:i.value===`all`}]),onClick:n[4]||=e=>i.value=`all`},[ks(U(y.value.debugFilterAll)+` `,1),Z(`span`,CI,U(C.value.all||0),1)],2)])):Q(``,!0),Z(`div`,{class:`drawer-body`,ref_key:`drawerBodyEl`,ref:o},[Z(`div`,{class:`drawer-scroll-viewport`,tabindex:`-1`,ref_key:`drawerViewportEl`,ref:s},[Z(`div`,{ref_key:`drawerContentsEl`,ref:c},[ce.value===`context`?(Y(),X(`div`,wI,[V.value?(Y(),X(J,{key:1},[V.value?(Y(),X(J,{key:0},[Z(`div`,EI,[Z(`div`,DI,[Z(`div`,{class:`ctx-bar-track`,title:`${y.value.debugCtxOccupancy} ${Math.round(V.value.occupancy*100)}%`},[Z(`div`,{class:We([`ctx-bar-fill`,he.value]),style:ze({width:Math.min(V.value.occupancy*100,100)+`%`})},null,6),V.value.thresholdRatio>0?(Y(),X(`div`,{key:0,class:`ctx-threshold-mark`,style:ze({left:Math.min(V.value.thresholdRatio*100,100)+`%`}),title:y.value.debugCtxThreshold},null,12,kI)):Q(``,!0)],8,OI),Z(`span`,AI,U(Math.round(V.value.occupancy*100))+`%`,1)]),Z(`div`,jI,[Z(`span`,MI,U(y.value.debugCtxTokens)+` `+U(V.value.totalTokens)+` token`,1),V.value.contextWindow?(Y(),X(`span`,NI,U(y.value.debugCtxWindow)+` `+U(V.value.contextWindow),1)):Q(``,!0),V.value.thresholdRatio>0?(Y(),X(`span`,PI,U(y.value.debugCtxThresholdPct)+` `+U(Math.round(V.value.thresholdRatio*100))+`%`,1)):Q(``,!0)])]),Z(`div`,FI,U(y.value.debugCtxCategories),1),(Y(!0),X(J,null,ya(V.value.categories,e=>(Y(),X(`div`,{key:e.key,class:`ctx-cat`},[Z(`span`,{class:`ctx-cat-label`,title:e.label},U(e.label),9,II),Z(`div`,LI,[Z(`div`,{class:`ctx-cat-fill`,style:ze({width:Math.max(Math.round(e.pct*100),2)+`%`})},null,4)]),Z(`span`,RI,[ks(U(e.tokens)+` `,1),Z(`i`,null,`(`+U(Math.round(e.pct*100))+`%)`,1)])]))),128)),V.value.compression?(Y(),X(`div`,zI,[Z(`div`,BI,U(y.value.debugCtxLastCompression),1),Z(`div`,VI,[Z(`span`,HI,U(y.value.debugCtxSummarized)+` `+U(V.value.compression.roundsSummarized)+`/`+U(V.value.compression.roundsTotal)+U(y.value.debugCtxRoundsSuffix),1),Z(`span`,UI,U(y.value.debugCtxRecalled)+` `+U(V.value.compression.roundsRecalled),1),Z(`span`,WI,U(V.value.compression.strategy),1),V.value.compression.decision?(Y(),X(`span`,GI,`🤖 `+U(y.value.debugCtxAgentDecision)+U(xe(V.value.compression.decision)),1)):Q(``,!0)])])):Q(``,!0)],64)):Q(``,!0)],64)):(Y(),X(`div`,TI,U(y.value.debugCtxEmpty),1))])):Q(``,!0),ce.value===`subagent`?(Y(),X(`div`,KI,[_e.value.length?(Y(),X(`div`,qI,[Z(`div`,JI,`🔒 `+U(y.value.debugLocksTitle)+` (`+U(_e.value.length)+`)`,1),(Y(!0),X(J,null,ya(_e.value,([e,t])=>(Y(),X(`div`,{key:`lock-`+e,class:`sub-task`},`🔒 `+U(e)+` ← `+U(t),1))),128))])):Q(``,!0),!ge.value.length&&!H.value.length?(Y(),X(`div`,YI,U(y.value.debugSubagentEmpty),1)):(Y(),X(J,{key:2},[ge.value.length?(Y(),X(`div`,XI,[Z(`div`,ZI,`▶ `+U(y.value.debugSubRunningTitle)+` (`+U(ge.value.length)+`)`,1),(Y(!0),X(J,null,ya(ge.value,(e,t)=>(Y(),X(`div`,{key:`a`+t,class:We([`sub-card`,e.status])},[Z(`div`,QI,[Z(`span`,{class:`sub-status`,style:ze({background:ve.value[e.status]&&ve.value[e.status].color||`#9ca3af`})},U(ve.value[e.status]&&ve.value[e.status].label||e.status),5),Z(`span`,$I,U(e.label),1),Z(`span`,eL,U(e.steps.length)+U(y.value.debugStepsCountSuffix),1)]),Z(`div`,tL,U(pe(e.task,80)),1)],2))),128))])):Q(``,!0),H.value.length?(Y(),X(`div`,nL,[Z(`div`,rL,`🕐 `+U(y.value.debugSubHistoryTitle)+` (`+U(H.value.length)+`)`,1),(Y(!0),X(J,null,ya(H.value,(e,t)=>(Y(),X(`div`,{key:`h`+t,class:We([`sub-card`,e.status])},[Z(`div`,iL,[Z(`span`,{class:`sub-status`,style:ze({background:ve.value[e.status]&&ve.value[e.status].color||`#9ca3af`})},U(ve.value[e.status]&&ve.value[e.status].label||e.status),5),Z(`span`,aL,U(e.label),1),e.durationMs==null?Q(``,!0):(Y(),X(`span`,oL,U(me(e.durationMs)),1)),e.steps.length?(Y(),X(`button`,{key:1,class:`sub-toggle`,onClick:e=>be(t)},U(ye.value.has(t)?y.value.collapse:y.value.debugStepsBtn),9,sL)):Q(``,!0)]),Z(`div`,cL,U(pe(e.task,80)),1),e.resultPreview?(Y(),X(`div`,lL,U(e.resultPreview),1)):Q(``,!0),ye.value.has(t)&&e.steps.length?(Y(),X(`div`,uL,[(Y(!0),X(J,null,ya(e.steps,(e,t)=>(Y(),X(`div`,{key:t,class:`sub-step`},[Z(`span`,dL,U(e.kind===`tool_call`?`🔧`:`✅`),1),Z(`span`,fL,U(e.name),1),Z(`span`,pL,U(P(e.ts)),1)]))),128))])):Q(``,!0)],2))),128))])):Q(``,!0)],64))])):Q(``,!0),ce.value===`logs`?(Y(),X(J,{key:2},[S.value.length===0?(Y(),X(`div`,mL,U(y.value.debugLogsEmpty),1)):Q(``,!0),(Y(!0),X(J,null,ya(k.value,e=>(Y(),X(`div`,{key:e.key,class:`log-group`},[Z(`div`,{class:We([`log-group-head`,{expanded:ee(e.key)}]),onClick:t=>N(e.key)},[Z(`span`,{class:We([`log-group-arrow`,{open:ee(e.key)}])},`▶`,2),Z(`span`,gL,U(te(e)),1),Z(`span`,_L,[ks(U(P(e.firstTs)),1),e.lastTs>e.firstTs?(Y(),X(J,{key:0},[ks(` ~ `+U(P(e.lastTs)),1)],64)):Q(``,!0),ks(` · `+U(me(e.lastTs-e.firstTs)),1)]),e.toolCount?(Y(),X(`span`,vL,`🔧 `+U(e.toolCount),1)):Q(``,!0),e.tokens==null?Q(``,!0):(Y(),X(`span`,yL,`Σ `+U(e.tokens)+` tok`,1)),e.errorCount?(Y(),X(`span`,bL,`❌ `+U(e.errorCount),1)):Q(``,!0)],10,hL),ci(Z(`div`,xL,[(Y(!0),X(J,null,ya(e.entries,({log:e,pairCall:t,prevMsgCount:r,uid:i})=>(Y(),X(`div`,{key:i,class:`log-item`},[Z(`div`,SL,[Z(`span`,{class:`log-type`,style:ze({background:b.value[e.type].color})},U(b.value[e.type].icon)+` `+U(b.value[e.type].label),5),e.source?(Y(),X(`span`,CL,`↳ `+U(e.source),1)):Q(``,!0),Z(`span`,wL,U(P(e.timestamp)),1)]),Z(`div`,TL,[e.type===`context`?(Y(),X(J,{key:0},[Z(`div`,EL,[Z(`div`,DL,[Z(`span`,OL,U(y.value.debugModel),1),Z(`span`,kL,U(e.data.model),1)]),Z(`div`,AL,[Z(`span`,jL,U(y.value.debugTemperature),1),Z(`span`,ML,U(e.data.temperature),1)]),Z(`div`,NL,[n[5]||=Z(`span`,{class:`k`},`MaxTokens`,-1),Z(`span`,PL,U(e.data.maxTokens),1)]),Z(`div`,FL,[Z(`span`,IL,U(y.value.debugMessageCount),1),Z(`span`,LL,U(e.data.totalMessages),1)])]),Z(`div`,RL,U(y.value.debugToolsLabel)+` (`+U(e.data.tools?.length||0)+`)`,1),Z(`div`,zL,[(Y(!0),X(J,null,ya(e.data.tools,e=>(Y(),X(`span`,{key:e,class:`tool-chip`},U(e),1))),128))]),Z(`div`,BL,U(y.value.debugContextMessages),1),Z(`div`,VL,[(Y(!0),X(J,null,ya(e.data.messages,(e,t)=>(Y(),X(`div`,{key:t,class:`msg-row`},[Z(`span`,{class:`msg-role`,style:ze({background:I(e.type).color})},U(I(e.type).label),5),Z(`span`,HL,U(e.content),1)]))),128))])],64)):e.type===`llm_request`?(Y(),X(J,{key:1},[Z(`div`,UL,[Z(`span`,WL,U(y.value.debugRoundPrefix)+U(e.data.round)+U(y.value.debugRoundSuffix),1),e.data.model?(Y(),X(`span`,GL,U(e.data.model),1)):Q(``,!0),Z(`span`,KL,[ks(U((e.data.messages||[]).length)+U(y.value.debugMsgCountSuffix),1),r!=null&&r<(e.data.messages||[]).length?(Y(),X(J,{key:0},[ks(`(+`+U((e.data.messages||[]).length-r)+`)`,1)],64)):Q(``,!0)]),e.data.tools?.length?(Y(),X(`span`,qL,U(e.data.tools.length)+U(y.value.debugToolCountSuffix),1)):Q(``,!0),r!=null&&r>0?(Y(),X(`button`,{key:2,class:`view-toggle only-new-btn`,onClick:e=>h(i)},U(m.value.has(i)?y.value.debugShowAll:y.value.debugOnlyNew),9,JL)):Q(``,!0),Z(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(F(e.data.messages),`req`+i)},U(g.value===`req`+i?`✓`:`📋`),9,YL),Z(`button`,{class:`view-toggle`,onClick:e=>ie(i)},U(d.value.has(i)?y.value.debugCardView:y.value.debugRequestBody),9,XL)]),d.value.has(i)?(Y(),X(`pre`,rR,[Z(`code`,null,U(F(e.data.messages)),1)])):(Y(!0),X(J,{key:0},ya([ne(e,r,m.value.has(i))],e=>(Y(),X(`div`,{key:e.base,class:`msg-list`},[(Y(!0),X(J,null,ya(e.list,(t,n)=>(Y(),X(`div`,{key:n,class:We([`msg-row`,{clamped:!f.value.has(i+`:`+(e.base+n))&&String(t.content??``).length>xB}]),title:String(t.content??``).length>xB?f.value.has(i+`:`+(e.base+n))?y.value.collapse:y.value.expand:void 0,onClick:r=>String(t.content??``).length>xB&&p(i+`:`+(e.base+n))},[Z(`span`,{class:`msg-role`,style:ze({background:I(t.role).color})},U(I(t.role).label),5),Z(`div`,QL,[t.content?(Y(),X(`span`,$L,U(t.content),1)):Q(``,!0),(Y(!0),X(J,null,ya(t.tool_calls||[],(e,t)=>(Y(),X(`div`,{key:t,class:`tc-inline`},[Z(`span`,eR,`🔧 `+U(e.function?.name||e.name),1),Z(`code`,tR,U(e.function?.arguments??e.args),1)]))),128)),t.tool_call_id?(Y(),X(`span`,nR,`↳ tool_call_id: `+U(t.tool_call_id),1)):Q(``,!0)])],10,ZL))),128))]))),128))],64)):e.type===`llm_response`?(Y(),X(J,{key:2},[Z(`div`,iR,[Z(`span`,aR,U(y.value.debugRoundPrefix)+U(e.data.round)+U(y.value.debugRoundSuffix),1),e.data.toolCalls?.length?(Y(),X(`span`,oR,`🔧 `+U(e.data.toolCalls.length)+U(y.value.debugToolCallsSuffix),1)):Q(``,!0)]),e.data.content?(Y(),X(`div`,sR,U(e.data.content),1)):Q(``,!0),e.data.toolCalls?.length?(Y(),X(`div`,cR,[(Y(!0),X(J,null,ya(e.data.toolCalls,(e,t)=>(Y(),X(`div`,{key:t,class:`tc-card`},[Z(`div`,lR,`🔧 `+U(e.name),1),Z(`pre`,uR,U(F(e.args)),1)]))),128))])):Q(``,!0),e.data.usage?(Y(),X(`div`,dR,[Z(`span`,fR,`prompt: `+U(e.data.usage.prompt_tokens??`-`),1),Z(`span`,pR,`completion: `+U(e.data.usage.completion_tokens??`-`),1),Z(`span`,mR,`total: `+U(e.data.usage.total_tokens??`-`),1),e.data.usage.reasoning_tokens?(Y(),X(`span`,hR,`reasoning: `+U(e.data.usage.reasoning_tokens)+`(`+U(Math.round(e.data.usage.reasoning_tokens/Math.max(1,e.data.usage.completion_tokens??0)*100))+`%)`,1)):Q(``,!0)])):Q(``,!0)],64)):e.type===`tool_call`||e.type===`tool_result`?(Y(),X(J,{key:3},[t?(Y(),X(`div`,{key:0,class:We([`tc-card inline paired`,{error:e.data.status===`error`}])},[Z(`div`,gR,[ks(U(e.data.status===`error`?`❌`:`✅`)+` `+U(e.data.name)+` `,1),e.data.durationMs==null?Q(``,!0):(Y(),X(`span`,_R,U(me(e.data.durationMs)),1)),Z(`button`,{class:`view-toggle copy-btn`,title:y.value.copy,onClick:t=>_(String(e.data.result??``),`res`+i)},U(g.value===`res`+i?`✓`:`📋`),9,vR)]),Z(`pre`,yR,U(F(t.data.args)),1),Z(`div`,bR,`↓ `+U(y.value.resultLabel),1),Z(`pre`,xR,U(e.data.result),1)],2)):(Y(),X(`div`,SR,[Z(`div`,CR,[ks(U(e.type===`tool_call`?`🔧`:`✅`)+` `+U(e.data.name)+` `,1),e.type===`tool_call`?(Y(),X(`span`,wR,U(y.value.statusRunning)+`…`,1)):Q(``,!0)]),Z(`pre`,TR,U(e.type===`tool_call`?F(e.data.args):e.data.result),1)]))],64)):e.type===`error`?(Y(),X(`div`,ER,U(e.data.tool?`[${e.data.tool}] `:``)+U(e.data.error),1)):Q(``,!0)]),Z(`div`,DR,[Z(`button`,{class:`raw-toggle`,onClick:e=>re(i)},U(a.value.has(i)?y.value.debugCollapseRawJson:y.value.debugViewRawJson),9,OR),Z(`button`,{class:`raw-toggle`,onClick:t=>K(ZD)(F(e.data))},U(y.value.copy),9,kR)]),a.value.has(i)?(Y(),X(`pre`,AR,[Z(`code`,null,U(F(e.data)),1)])):Q(``,!0)]))),128))],512),[[Kc,ee(e.key)]])]))),128))],64)):ce.value===`info`?(Y(),X(`div`,jR,[L.value?(Y(),X(J,{key:1},[Z(`div`,NR,[Z(`div`,PR,U(y.value.debugInfoBasic),1),Z(`div`,FR,[Z(`div`,IR,[n[6]||=Z(`span`,{class:`k`},`ID`,-1),Z(`span`,LR,U(L.value.id),1)]),Z(`div`,RR,[Z(`span`,zR,U(y.value.debugModel),1),Z(`span`,BR,U(L.value.model||`-`),1)]),Z(`div`,VR,[Z(`span`,HR,U(y.value.debugToolCount),1),Z(`span`,UR,U(L.value.tools.length),1)]),Z(`div`,WR,[Z(`span`,GR,U(y.value.debugMiddleware),1),Z(`span`,KR,U(L.value.middleware.length),1)])]),Z(`div`,qR,[Z(`span`,JR,U(y.value.debugMiddlewareStack),1),Z(`span`,YR,U(L.value.middleware.join(` → `)||`-`),1)])]),Z(`div`,XR,[Z(`div`,ZR,`🔧 `+U(y.value.debugToolsLabel)+` (`+U(L.value.tools.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.tools,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,QR,[ks(U(e.name),1),e.source?(Y(),X(`span`,{key:0,class:We([`src-tag`,fe(e.source)])},U(e.source),3)):Q(``,!0)]),Z(`div`,$R,U(e.description),1)]))),128))]),L.value.skills.length?(Y(),X(`div`,ez,[Z(`div`,tz,[ks(`📘 `+U(y.value.debugSkillsTitle)+` (`+U(L.value.skills.length)+`)`,1),Z(`span`,nz,U(y.value.debugSkillsHint),1)]),(Y(!0),X(J,null,ya(L.value.skills,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,{class:`info-name skill-toggle`,onClick:t=>le(e.name)},[Z(`span`,{class:We([`skill-arrow`,{open:!!R.value[e.name]}])},`▶`,2),ks(` `+U(e.name),1)],8,rz),Z(`div`,iz,U(e.description),1),R.value[e.name]?(Y(),X(`div`,az,[R.value[e.name].loading?(Y(),X(`div`,oz,U(y.value.debugLoading),1)):R.value[e.name].error?(Y(),X(`div`,sz,U(R.value[e.name].error),1)):R.value[e.name].content?(Y(),X(`pre`,cz,U(R.value[e.name].content),1)):Q(``,!0)])):Q(``,!0)]))),128))])):Q(``,!0),L.value.data?(Y(),X(`div`,lz,[Z(`div`,uz,`📊 `+U(y.value.debugDataTitle),1),Z(`div`,dz,[Z(`div`,fz,U(L.value.data.description||y.value.debugDataFallback),1),Z(`div`,pz,U(y.value.debugSchemaPrefix)+U(L.value.data.schema?y.value.debugSchemaDeclared:y.value.debugSchemaMissing),1)])])):Q(``,!0),Z(`div`,mz,[Z(`div`,hz,`🧬 `+U(y.value.debugSubagentTitle),1),Z(`div`,gz,[Z(`div`,_z,[Z(`span`,vz,U(y.value.debugEnabled),1),Z(`span`,yz,U(L.value.subagent.enabled?y.value.debugYes:y.value.debugNo),1)]),Z(`div`,bz,[Z(`span`,xz,U(y.value.debugMaxDepth),1),Z(`span`,Sz,U(L.value.subagent.maxDepth),1)]),Z(`div`,Cz,[Z(`span`,wz,U(y.value.debugMaxParallel),1),Z(`span`,Tz,U(L.value.subagent.maxParallel),1)]),Z(`div`,Ez,[Z(`span`,Dz,U(y.value.debugExtraTools),1),Z(`span`,Oz,U(L.value.subagent.allowedTools.length?L.value.subagent.allowedTools.join(`, `):y.value.debugDefaultReadonly),1)])])]),L.value.mcp?.servers?.length?(Y(),X(`div`,kz,[Z(`div`,Az,`🔌 MCP (`+U(L.value.mcp.servers.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.mcp.servers,e=>(Y(),X(`div`,{key:e.name,class:`info-item`},[Z(`div`,jz,[ks(U(e.name)+` `,1),Z(`span`,Mz,U(e.toolCount)+U(y.value.debugToolCountSuffix),1)]),Z(`div`,Nz,U(e.url),1)]))),128))])):Q(``,!0),L.value.verify?(Y(),X(`div`,Pz,[Z(`div`,Fz,`✅ `+U(y.value.debugVerifyTitle),1),Z(`div`,Iz,[Z(`div`,Lz,[Z(`span`,Rz,U(y.value.debugEnabled),1),Z(`span`,zz,U(L.value.verify.enabled?y.value.debugYes:y.value.debugNo),1)]),Z(`div`,Bz,[Z(`span`,Vz,U(y.value.debugMaxAttempts),1),Z(`span`,Hz,U(L.value.verify.maxAttempts),1)]),Z(`div`,Uz,[Z(`span`,Wz,U(y.value.debugAdversarial),1),Z(`span`,Gz,U(L.value.verify.adversarial?y.value.debugOn:y.value.debugOff),1)]),L.value.verify.adversarial?(Y(),X(`div`,Kz,[Z(`span`,qz,U(y.value.debugAdversarialModel),1),Z(`span`,Jz,U(L.value.model||`-`)+U(y.value.debugSameAsMain),1)])):Q(``,!0)])])):Q(``,!0),L.value.todos.length?(Y(),X(`div`,Yz,[Z(`div`,Xz,`📋 `+U(y.value.debugTodosTitle)+` (`+U(L.value.todos.length)+`)`,1),(Y(!0),X(J,null,ya(L.value.todos,(e,t)=>(Y(),X(`div`,{key:t,class:`info-todo`},[Z(`span`,{class:`todo-tag`,style:ze({background:z.value[e.status]&&z.value[e.status].color||`#9ca3af`})},U(B(e.status)),5),Z(`span`,null,U(e.content),1)]))),128))])):Q(``,!0),L.value.memory?(Y(),X(`div`,Zz,[Z(`div`,Qz,`📝 `+U(y.value.debugMemoryTitle),1),Z(`pre`,$z,U(L.value.memory),1)])):Q(``,!0),L.value.lastCompression?(Y(),X(`div`,eB,[Z(`div`,tB,`🗜️ `+U(y.value.debugLastCompTitle),1),Z(`div`,nB,[Z(`div`,rB,[Z(`span`,iB,U(y.value.debugTriggered),1),Z(`span`,aB,U(L.value.lastCompression.triggered?`✓`:y.value.debugNotTriggered),1)]),Z(`div`,oB,[Z(`span`,sB,U(y.value.debugRoundsSummarized),1),Z(`span`,cB,U(L.value.lastCompression.roundsSummarized)+` / `+U(L.value.lastCompression.roundsTotal),1)]),Z(`div`,lB,[Z(`span`,uB,U(y.value.debugCtxRecalled),1),Z(`span`,dB,U(L.value.lastCompression.roundsRecalled)+U(y.value.debugCountSuffix),1)]),Z(`div`,fB,[Z(`span`,pB,U(y.value.debugMessageCount),1),Z(`span`,mB,U(L.value.lastCompression.originalMessages)+` → `+U(L.value.lastCompression.compressedMessages),1)]),Z(`div`,hB,[Z(`span`,gB,U(y.value.debugStrategy),1),Z(`span`,_B,U(L.value.lastCompression.strategy),1)]),L.value.lastCompression.decision?(Y(),X(`div`,vB,[Z(`span`,yB,U(y.value.debugDecision),1),Z(`span`,bB,`🤖 `+U(xe(L.value.lastCompression.decision)),1)])):Q(``,!0)])])):Q(``,!0)],64)):(Y(),X(`div`,MR,U(y.value.debugNoInfo),1))])):Q(``,!0)],512)],512)],512)],2),Z(`div`,{class:`drawer-mask`,onClick:oe})])):Q(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-6d9e98b4`]]),CB=[`title`],wB=Vk(qi({__name:`SelectionMenu`,emits:[`quote`],setup(e,{emit:t}){let n=t,{messages:r}=oO(),i=G(!1),a=G({top:0,left:0}),o={w:128,h:30},s=null,c=()=>{i.value=!1,s=null},l=()=>{if(typeof document>`u`)return null;let e=document.getSelection();if(!e||e.rangeCount===0||e.isCollapsed)return null;let t=e.getRangeAt(0).getBoundingClientRect();return!t||!t.width&&!t.height?null:t},u=e=>e.bottom>0&&e.top<window.innerHeight&&e.right>0&&e.left<window.innerWidth,d=(e={})=>{let t=l();if(!t){c();return}if(e.requireVisible&&!u(t)){c();return}a.value=Mu({top:t.top,bottom:t.bottom,left:t.left,width:t.width},{w:window.innerWidth,h:window.innerHeight},o)},f=e=>{e.target?.closest?.(`.chat-selection-menu`)||setTimeout(()=>{if(typeof document>`u`)return;let e=document.getSelection(),t=ju(document);if(!e||!t||e.rangeCount===0){c();return}let n=e.getRangeAt(0).getBoundingClientRect();if(!n||!n.width&&!n.height){c();return}s=t,i.value=!0,d()},0)},p=e=>{i.value&&!e.target?.closest?.(`.chat-selection-menu`)&&c()},m=0,h=()=>{!i.value||m||(m=window.requestAnimationFrame(()=>{m=0,i.value&&d({requireVisible:!0})}))},g=e=>{e.key===`Escape`&&i.value&&c()};la(()=>{window.addEventListener(`pointerup`,f,!0),window.addEventListener(`pointerdown`,p,!0),window.addEventListener(`scroll`,h,{capture:!0,passive:!0}),window.addEventListener(`keydown`,g,!0)}),fa(()=>{m&&window.cancelAnimationFrame(m),window.removeEventListener(`pointerup`,f,!0),window.removeEventListener(`pointerdown`,p,!0),window.removeEventListener(`scroll`,h,{capture:!0}),window.removeEventListener(`keydown`,g,!0)});let _=()=>{s&&n(`quote`,s),c()};return(e,t)=>(Y(),_s(ki,{to:`body`},[ci(Z(`div`,{class:`chat-selection-menu`,"data-test":`selection-menu`,style:ze({top:`${a.value.top}px`,left:`${a.value.left}px`})},[Z(`button`,{type:`button`,class:`chat-selection-menu-btn`,"data-test":`selection-menu-quote`,title:K(r).selectionMenuTitle,onMousedown:t[0]||=jl(()=>{},[`prevent`]),onClick:_},`❝ `+U(K(r).selectionMenuLabel),41,CB)],4),[[Kc,i.value]])]))}}),[[`__scopeId`,`data-v-19e6dbb4`]]),TB={class:`skill-panel`},EB={class:`skill-header`},DB={class:`skill-title`},OB=[`title`],kB={class:`skill-section`},AB={class:`section-title`},jB=[`title`],MB={class:`field`},NB={class:`field-label`},PB=[`disabled`,`placeholder`],FB={class:`field`},IB={class:`field-label`},LB=[`placeholder`],RB={class:`field field-textarea`},zB={class:`field-label`},BB=[`placeholder`],VB={key:0,class:`skill-error`},HB={class:`skill-section`},UB={class:`section-title`},WB={key:0,class:`empty-hint`},GB={key:1,class:`skill-list`},KB={class:`skill-actions`},qB=[`title`,`onClick`],JB=[`title`,`onClick`],YB={class:`skill-hint`},XB=Vk(qi({__name:`SkillPanel`,props:{visible:{type:Boolean},onAddSkill:{},onRemoveSkill:{},getUserSkillNames:{},onGetSkill:{},messages:{default:()=>eO}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=G(``),a=G(``),o=G(``),s=G(``),c=G([]),l=G(0),u=G(null);mi(()=>n.visible,e=>{e&&d()},{immediate:!0}),mi(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)=>(Y(),_s(ki,{to:`body`},[ws(Oc,{name:`cs-skill-fade`},{default:oi(()=>[e.visible?(Y(),X(`div`,{key:0,class:`skill-mask`,onClick:n[4]||=jl(e=>r(`close`),[`self`])},[Z(`div`,TB,[Z(`div`,EB,[Z(`span`,DB,U(e.messages.skillPanelTitle),1),Z(`button`,{class:`skill-close`,title:e.messages.close,onClick:n[0]||=e=>r(`close`)},`✕`,8,OB)]),Z(`div`,kB,[Z(`div`,AB,[ks(U(u.value?`${e.messages.skillEditingPrefix}${u.value}`:e.messages.skillCreateNew)+` `,1),u.value?(Y(),X(`button`,{key:0,class:`btn btn-ghost btn-cancel`,title:e.messages.skillCancelEdit,onClick:h},U(e.messages.skillCancelEdit),9,jB)):Q(``,!0)]),Z(`label`,MB,[Z(`span`,NB,U(e.messages.skillNameLabel),1),ci(Z(`input`,{"onUpdate:modelValue":n[1]||=e=>i.value=e,disabled:!!u.value,placeholder:e.messages.skillNamePlaceholder,class:`field-input`},null,8,PB),[[Ol,i.value]])]),Z(`label`,FB,[Z(`span`,IB,U(e.messages.skillDescLabel),1),ci(Z(`input`,{"onUpdate:modelValue":n[2]||=e=>a.value=e,placeholder:e.messages.skillDescPlaceholder,class:`field-input`},null,8,LB),[[Ol,a.value]])]),Z(`label`,RB,[Z(`span`,zB,U(e.messages.skillContentLabel),1),ci(Z(`textarea`,{"onUpdate:modelValue":n[3]||=e=>o.value=e,placeholder:e.messages.skillContentPlaceholder,rows:`6`,class:`field-input`},null,8,BB),[[Ol,o.value]])]),s.value?(Y(),X(`div`,VB,U(s.value),1)):Q(``,!0),Z(`button`,{class:`btn btn-primary`,onClick:f},U(u.value?e.messages.skillSave:e.messages.skillAdd),1)]),Z(`div`,HB,[Z(`div`,UB,U(e.messages.skillCreatedTitle)+`(`+U(c.value.length)+`)`,1),c.value.length?(Y(),X(`ul`,GB,[(Y(!0),X(J,null,ya(c.value,t=>(Y(),X(`li`,{key:t,class:`skill-item`},[Z(`span`,{class:We([`skill-name`,{active:u.value===t}])},U(t),3),Z(`span`,KB,[Z(`button`,{class:`btn btn-ghost btn-edit`,title:e.messages.skillEditTitle,onClick:e=>m(t)},U(e.messages.skillEditBtn),9,qB),Z(`button`,{class:`btn btn-ghost btn-del`,title:e.messages.skillDeleteTitle,onClick:e=>p(t)},U(e.messages.skillDeleteBtn),9,JB)])]))),128))])):(Y(),X(`div`,WB,U(e.messages.skillEmpty),1))]),Z(`div`,YB,[ks(` 💡 `+U(e.messages.skillHintA)+` `,1),n[5]||=Z(`code`,null,`load_skill(name)`,-1),ks(` `+U(e.messages.skillHintB)+` `,1),n[6]||=Z(`code`,null,`skillStorage.id`,-1),ks(` `+U(e.messages.skillHintC),1)])])])):Q(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-fcd21121`]]),ZB=[`aria-valuenow`],QB=`page-agent-sdk:drawerWidth`,$B=320,eV=960,tV=420,nV=Vk(qi({__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:{},drawerResizable:{type:Boolean},drawerHidden:{type:Boolean},pendingQuote:{},onSetQuote:{},onClearQuote:{},autoQuote:{type:Boolean},selectionMenu:{type:Boolean},onSelectionQuote:{},inputRows:{default:2},sessions:{},currentSessionId:{},onNewSession:{},onOpenSession:{},onRemoveSession:{},getFocus:{},onSetFocus:{},onClearFocus:{},getFocuses:{},onAddFocus:{},onRemoveFocus:{},onFocusChipClick:{},sections:{},csTheme:{},icons:{},headerLabels:{type:Boolean},i18n:{},toolStepView:{},quickActions:{},onDropElement:{},onExportSession:{},onImportSession:{}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=aO({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,pendingQuote:n.pendingQuote,onSetQuote:n.onSetQuote,onClearQuote:n.onClearQuote,icons:n.icons,locale:n.i18n?.locale,dialogMessages:n.i18n?.messages,toolStepView:n.toolStepView});ui(iO,i);let{isExpanded:a,debugVisible:o,skillVisible:s,closeSkill:c}=i,{scrollContainer:l,onScroll:u,onWheel:d}=i.chat,f=uc(()=>!!(i.chat.pendingApproval.value||n.pendingConflict)),p=G(null),m=G(null),h=null;la(()=>{!p.value||!l.value||!m.value||(h=JD({target:p.value,elements:{viewport:l.value,content:m.value}},{overflow:{x:`hidden`},scrollbars:{autoHide:`scroll`,autoHideDelay:700,clickScroll:!0}}))}),fa(()=>{h?.destroy(),h=null});function g(e){return e===`focus`?n.sections?.focus===!0:n.sections?.[e]!==!1}let _=uc(()=>!!n.onAddSkill);function v(){if(typeof localStorage>`u`)return null;try{let e=Number(localStorage.getItem(QB));return Number.isFinite(e)&&e>=$B?e:null}catch{return null}}let y=G(v()),b=G(!1);function x(e){let t=typeof window<`u`?window.innerWidth:eV,n=Math.max(Math.min(eV,t*.9),$B);return Math.min(Math.max(e,$B),n)}let S=uc(()=>y.value==null?typeof n.drawerWidth==`number`?n.drawerWidth:null:y.value),C=uc(()=>{if(!n.drawer||n.drawerWidth==null)return n.drawer&&y.value!=null?`${y.value}px`:null;let e=S.value??n.drawerWidth;return typeof e==`number`?`${e}px`:e}),w=uc(()=>{let e=C.value?{width:C.value,maxWidth:C.value}:{};return b.value?{...e,transition:`none`}:e}),T=uc(()=>n.drawer===!0&&n.drawerResizable!==!1);function E(e){!T.value||b.value||(b.value=!0,window.addEventListener(`pointermove`,O),window.addEventListener(`pointerup`,k),window.addEventListener(`pointercancel`,k),e.preventDefault())}function D(e){y.value=x(window.innerWidth-e)}function O(e){b.value&&D(e.clientX)}function k(){b.value&&(b.value=!1,window.removeEventListener(`pointermove`,O),window.removeEventListener(`pointerup`,k),window.removeEventListener(`pointercancel`,k),A())}function A(){if(!(y.value==null||typeof localStorage>`u`))try{localStorage.setItem(QB,String(y.value))}catch{}}function j(e){if(!T.value)return;let t=e.shiftKey?64:16,n=S.value??(typeof window<`u`?Math.min(tV,window.innerWidth*.9):tV);if(e.key===`ArrowLeft`)y.value=x(n+t);else if(e.key===`ArrowRight`)y.value=x(n-t);else return;e.preventDefault(),A()}return(t,n)=>(Y(),X(J,null,[e.drawer?(Y(),X(`div`,{key:0,class:`chat-mask`,onClick:n[0]||=e=>r(`close`)})):Q(``,!0),Z(`div`,{class:We([`chat-dialog`,{collapsed:!K(a)&&!e.drawer,drawer:e.drawer,"cs-theme-dark":e.csTheme===`dark`,resizing:b.value}]),style:ze(w.value||null)},[T.value?(Y(),X(`div`,{key:0,class:`chat-drawer-resize`,"data-test":`drawer-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`调整对话框宽度`,"aria-valuenow":S.value??void 0,tabindex:`0`,onPointerdown:E,onPointermove:O,onPointerup:k,onPointercancel:k,onKeydown:j},null,40,ZB)):Q(``,!0),g(`header`)?ba(t.$slots,`header`,{key:1,chat:K(i)},()=>[ws(vA,{title:e.title||K(i).messages.defaultTitle,drawer:e.drawer,"debug-logs":e.debugLogs,debug:e.debug,"skill-available":_.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,"on-export-session":e.onExportSession,"on-import-session":e.onImportSession,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`,`on-export-session`,`on-import-session`])],!0):Q(``,!0),g(`focus`)?ba(t.$slots,`focus`,{key:2,chat:K(i)},()=>[ws(kA,{"get-focus":e.getFocus,"on-set-focus":e.onSetFocus,"on-clear-focus":e.onClearFocus,"info-tick":e.infoTick,icons:K(i).icons,messages:K(i).messages},null,8,[`get-focus`,`on-set-focus`,`on-clear-focus`,`info-tick`,`icons`,`messages`])],!0):Q(``,!0),Z(`div`,{class:`chat-main`,ref_key:`chatMainEl`,ref:p},[Z(`div`,{class:`chat-scroll-viewport`,tabindex:`-1`,ref_key:`scrollContainer`,ref:l,onScroll:n[2]||=(...e)=>K(u)&&K(u)(...e),onWheel:n[3]||=(...e)=>K(d)&&K(d)(...e)},[Z(`div`,{ref_key:`chatContentsEl`,ref:m},[g(`body`)?(Y(),_s(Oc,{key:0,name:`cs-slide`},{default:oi(()=>[ba(t.$slots,`body`,{chat:K(i)},()=>[ci(ws(LP,{"show-avatar":e.showAvatar,"show-typing":e.showTyping},null,8,[`show-avatar`,`show-typing`]),[[Kc,K(a)]])],!0)]),_:3})):Q(``,!0),g(`queued`)?ba(t.$slots,`queued`,{key:1,chat:K(i)},()=>[ws(qP)],!0):Q(``,!0),g(`approval`)?ba(t.$slots,`approval`,{key:2,chat:K(i)},()=>[ws(yF)],!0):Q(``,!0),g(`conflict`)?ba(t.$slots,`conflict`,{key:3,chat:K(i)},()=>[ws(IF,{"pending-conflict":e.pendingConflict,"on-resolve":e.onResolveConflict,icons:K(i).icons,messages:K(i).messages},null,8,[`pending-conflict`,`on-resolve`,`icons`,`messages`])],!0):Q(``,!0)],512)],544)],512),g(`footer`)?(Y(),_s(Oc,{key:3,name:`cs-slide`},{default:oi(()=>[ba(t.$slots,`footer`,{chat:K(i)},()=>[ws(fI,{placeholder:e.placeholder||K(i).messages.inputPlaceholder,"input-rows":e.inputRows,"gate-pending":f.value,"quick-actions":e.quickActions,"on-drop-element":e.onDropElement,"auto-quote":e.autoQuote},null,8,[`placeholder`,`input-rows`,`gate-pending`,`quick-actions`,`on-drop-element`,`auto-quote`])],!0)]),_:3})):Q(``,!0),g(`debug`)?ba(t.$slots,`debug`,{key:4,chat:K(i)},()=>[ws(SB,{visible:K(o),"onUpdate:visible":n[4]||=e=>Fn(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:K(i).messages,locale:K(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):Q(``,!0),g(`skill`)?ba(t.$slots,`skill`,{key:5,chat:K(i)},()=>[ws(XB,{visible:K(s),"on-add-skill":e.onAddSkill,"on-remove-skill":e.onRemoveSkill,"get-user-skill-names":e.getUserSkillNames,"on-get-skill":e.onGetSkill,messages:K(i).messages,onClose:K(c)},null,8,[`visible`,`on-add-skill`,`on-remove-skill`,`get-user-skill-names`,`on-get-skill`,`messages`,`onClose`])],!0):Q(``,!0),e.selectionMenu?(Y(),_s(wB,{key:6,onQuote:n[6]||=t=>e.onSelectionQuote?.(t)})):Q(``,!0)],6)],64))}}),[[`__scopeId`,`data-v-965c3496`]]);function rV(e){let{core:t,dialogCfg:n}=e,r=null,i=e.el,a=()=>{let e=i.querySelector?.(`.chat-dialog`),t=i.querySelector?.(`.chat-mask`);e&&e.classList.remove(`cs-hidden`),t&&t.classList.remove(`cs-hidden`)},o=t.agent.debugLogs;return r=Ll(qi({setup(){return()=>dc(nV,{fetchStream:e.streaming?t.stream:void 0,fetchResponse:e.streaming?void 0:(e,n)=>t.stream(e,()=>{},n),title:n.title,placeholder:n.placeholder,debugLogs:o.value.slice(),debug:e.debug===!0,initialMessages:t.messages,getInfo:()=>t.getInfo(),exportDiagnostics:()=>t.exportDiagnostics(),clearDebugLogs:()=>{o.value=[],zn(o)},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))}}),zn(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,drawerResizable:n.drawerResizable,drawerHidden:n.drawerHidden===!0,inputRows:n.inputRows,sections:n.sections,icons:n.icons,headerLabels:n.headerLabels!==!1,toolStepView:n.toolStepView,quickActions:cb(n.quickActions),onDropElement:n.onDropElement,pendingQuote:t.pendingQuote,onSetQuote:e=>t.setQuote(e.text,e.source,e.anchor),onClearQuote:()=>t.clearQuote(),autoQuote:n.autoQuote===!0,selectionMenu:n.selectionMenu===!0,onSelectionQuote:e=>{t.setQuote(e.text,e.source,e.anchor),a(),setTimeout(()=>{(i.querySelector?.(`.chat-input`))?.focus()},400)},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:()=>{t.messages.length&&e.runSerial(()=>t.switchSession()).catch(e=>t.emit({type:`error`,message:`新建会话失败:${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_SWITCH_FAILED`,context:{target:`new`}}))},onOpenSession:n=>{e.runSerial(()=>t.switchSession(n)).catch(e=>t.emit({type:`error`,message:`切换会话失败(${n}):${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_SWITCH_FAILED`,context:{target:n}}))},onRemoveSession:async e=>{e!==t.sessionId&&(await t.store.deleteSession(t.agentId,e),await t.refreshSessions())},...n.sessionTransfer===!0?{onExportSession:async()=>{let e=await t.exportSession(),n=JSON.stringify(e,null,2),r=String(e.sessionId??``),i=document.createElement(`a`);return i.href=URL.createObjectURL(new Blob([n],{type:`application/json`})),i.download=`chat-session-${r.slice(-6)||`export`}.json`,i.click(),setTimeout(()=>URL.revokeObjectURL(i.href),1e3),n},onImportSession:async n=>{try{let r=await n.text(),{sessionId:i}=await t.importSession(r);await e.runSerial(()=>t.switchSession(i))}catch(e){t.emit({type:`error`,message:`导入会话失败:${e instanceof Error?e.message:String(e)}`,severity:`observable`,code:`SESSION_IMPORT_FAILED`,context:{file:n.name}})}}}:{}}:{}})}})),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(){if(a(),n.autoQuote===!0&&typeof document<`u`){let e=ju(document);e&&t.setQuote(e.text,e.source,e.anchor)}}}}function iV(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(` / `)}。
|
|
3083
3083
|
|
|
3084
3084
|
工作方式:
|
|
3085
3085
|
1. 分析任务,拆出需查证的要点(如:需要哪些组件、各自的 props 约束、UI 规范要求);
|
|
@@ -3088,7 +3088,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
|
|
|
3088
3088
|
4. 综合成结构化、可执行结论(不堆原文,提炼成可直接用于决策/配置的信息);
|
|
3089
3089
|
5. 标注关键信息来源(文档名/段落),便于溯源;检索不到明确说「未检索到」,不编造。
|
|
3090
3090
|
|
|
3091
|
-
你是只读检索角色,不要尝试修改任何数据。不要尝试上面未列出的工具。`}function
|
|
3091
|
+
你是只读检索角色,不要尝试修改任何数据。不要尝试上面未列出的工具。`}function aV(e,t,n,r,i){let a=[],o=[];return e&&(a.push(`- vfs_grep / vfs_read:搜集成方预注入 vfs 的文档(组件文档 / UI 规范)—— 快、静态,先查`),o.push(`- 静态文档(组件库文档 / UI 规范):vfs_grep`)),t&&(a.push(`- ${r}:语义检索(retriever 向量库)—— 模糊匹配,关键词不确定 / 语义相似时用`),o.push(`- 语义相似(「瀑布流组件」「倒计时」「拼团」):${r}`)),n&&(a.push(`- ${i}:按 source 精确加载(已知文档 id / URL / key)—— 精确取特定文档`),o.push(`- 已知文档 id / URL:${i}`)),a.push(`- fetch_document:公网 URL —— 查公开资料`),o.push(`- 公开 URL(设计规范网站 / 第三方文档):fetch_document`),`# 知识检索策略(RAG)
|
|
3092
3092
|
|
|
3093
3093
|
## 多源决策树
|
|
3094
3094
|
${a.join(`
|
|
@@ -3103,11 +3103,11 @@ ${a.join(`
|
|
|
3103
3103
|
|
|
3104
3104
|
## 何时用何源
|
|
3105
3105
|
${o.join(`
|
|
3106
|
-
`)}`}var
|
|
3106
|
+
`)}`}var oV={name:`rag-search`,description:`多源知识检索策略:vfs 预注入文档 → 语义检索 → 指定文档加载 → 公网;综合结构化结论 + 溯源`,getContent:()=>aV(!0,!0,!0,`search_docs`,`load_doc`)};function sV(e,n,r){let a=(0,i.tool)(async({query:e,topK:t})=>{try{let i=await n(e,{topK:t??r});return i?.length?i.map((e,t)=>`【${t+1}】${e.source?`来源:${e.source}\n`:``}${e.content}`).join(`
|
|
3107
3107
|
|
|
3108
|
-
`):`未检索到与「${e}」相关的内容。可换关键词或扩大 topK 重试。`}catch(e){return`检索出错:${e.message}。可换关键词重试。`}},{name:e,description:`语义检索知识库(组件文档/UI 规范/业务规则等),返回相关片段。需要查阅文档才能回答或配置时用;可多次调用不同关键词。`,schema:t.z.object({query:t.z.string().describe(`检索关键词或自然语言问题`),topK:t.z.number().int().positive().optional().describe(`期望召回数量(默认使用系统配置)`)})});return zu([a]),a}function
|
|
3108
|
+
`):`未检索到与「${e}」相关的内容。可换关键词或扩大 topK 重试。`}catch(e){return`检索出错:${e.message}。可换关键词重试。`}},{name:e,description:`语义检索知识库(组件文档/UI 规范/业务规则等),返回相关片段。需要查阅文档才能回答或配置时用;可多次调用不同关键词。`,schema:t.z.object({query:t.z.string().describe(`检索关键词或自然语言问题`),topK:t.z.number().int().positive().optional().describe(`期望召回数量(默认使用系统配置)`)})});return zu([a]),a}function cV(e,n){let r=(0,i.tool)(async({source:e})=>{try{let t=await n(e),r=Array.isArray(t)?t:[t];return r.length?r.map((e,t)=>`【${t+1}】${e.source?`来源:${e.source}\n`:``}${e.content}`).join(`
|
|
3109
3109
|
|
|
3110
|
-
`):`未加载到「${e}」。检查 source 是否正确。`}catch(e){return`加载出错:${e.message}。`}},{name:e,description:`按 source 加载指定文档(文档 id/URL/key);已知要查的具体文档用此工具精确加载。`,schema:t.z.object({source:t.z.string().describe(`文档标识(id/URL/key)`)})});return zu([r]),r}function
|
|
3110
|
+
`):`未加载到「${e}」。检查 source 是否正确。`}catch(e){return`加载出错:${e.message}。`}},{name:e,description:`按 source 加载指定文档(文档 id/URL/key);已知要查的具体文档用此工具精确加载。`,schema:t.z.object({source:t.z.string().describe(`文档标识(id/URL/key)`)})});return zu([r]),r}function lV(e){let{retriever:t,loader:n,useVfs:r=!0,id:i=`rag`,description:a,topK:o=5,searchToolName:s=`search_docs`,loadToolName:c=`load_doc`,maxToolRounds:l=8,summarization:u,skills:d,extraTools:f}=e;if(!t&&!n&&r===!1)throw Error(`[page-agent-sdk][createRagSubagent] 至少配一种知识源:retriever / loader / useVfs(true)`);let p=[];t&&p.push(sV(s,t,o)),n&&p.push(cV(c,n)),f&&p.push(...f);let m=r?[`vfs_grep`,`vfs_read`,`vfs_json_read`]:void 0,h=iV(r,!!t,!!n,s,c),g={name:`rag-search`,description:oV.description,getContent:()=>aV(r,!!t,!!n,s,c)};return{id:i,description:a??`检索知识库(组件文档/UI 规范/业务规则),返回有依据的结构化结论。需要查阅文档才能回答或决定如何配置时委派`,systemPrompt:h,tools:p.length?p:void 0,allowedTools:m,skills:d??[g],maxToolRounds:l,...u===void 0?{}:{summarization:u}}}function uV(e={}){let t=e.quietMs??9e4,n=e.confirmSamples??3,r=e.baselineMessageCount??0,i=0;return{push(e){return e.quietMs>0xe8d4a51000?(i=0,`reset`):(i=e.messageCount>r&&e.hasResponse&&e.activeSubagents===0&&e.quietMs>t?i+1:0,i>=n?`done`:`pending`)},reset(){i=0}}}var dV=new Set([`elapsedSec`]);function fV(e,t,n={}){let r=n.tokenAbs??2e3,i=n.tokenPct??15,a=n.toolCountAbs??3,o=[],s=0,c=0,l=0,u=new Set([...Object.keys(e??{}),...Object.keys(t??{})]);for(let n of u){let u=Number(e?.[n]??0),d=Number(t?.[n]??0),f=u-d,p=d>0?Math.round(f/d*100):0,m=``;dV.has(n)||(n===`toolCount`?Math.abs(f)>a:Math.abs(f)>r&&Math.abs(p)>=i)&&(m=f>0?`up`:`down`,m===`up`?(s++,c++):l++),o.push({key:n,prev:d,cur:u,delta:f,pct:p,flag:m})}return{status:c>0?`worse`:l>0?`better`:`ok`,regressions:s,fields:o}}function pV(e){let{sdk:t}=e,n=()=>{let e=t.debugLogs.value??[],n=e.length?e[e.length-1].timestamp:0;return{messageCount:t.messages?.length??0,quietMs:n?Date.now()-n:2**53-1,hasResponse:e.some(e=>e.type===`llm_response`),activeSubagents:t.inspect?.().subagent?.active?.length??0,logCount:e.length}};return{async waitForIdle(e={}){let{timeoutMs:r=6e5,sampleMs:i=2500,onSample:a,...o}=e,s=uV(o),c=Date.now();for(;;){let e=n(),o=s.push(e);if(a?.(e),o===`done`)return e;if(o===`reset`)throw Error(`eval: 等待 idle 期间日志被清空(会话切换/重置;logCount=${e.logCount})—— 采样口径已失效`);if(Date.now()-c>r){let n=t.debugLogs.value??[],i=[...n].reverse().find(e=>e.type===`tool_result`),a=[...n].reverse().find(e=>e.type===`llm_request`),o=t.inspect?.().subagent?.active??[];throw Error(`eval: 等待 agent idle 超时(${Math.round(r/1e3)}s)。诊断:msgs=${e.messageCount} logs=${e.logCount} lastRound=${String(a?.data?.round??`-`)} lastTool=${i?`${String(i.data?.name)}@${String(i.data?.round)}`:`-`} activeSubagents=${o.length}${o.length?`(${o.map(e=>String(e.label??`?`)).join(`,`)})`:``}`)}await new Promise(e=>setTimeout(e,i))}},collectReport(){let e=t.debugLogs.value??[],n=t.usage;return{at:new Date().toISOString(),messageCount:t.messages?.length??0,toolCount:e.filter(e=>e.type===`tool_result`).length,usage:{prompt:n?.prompt??0,completion:n?.completion??0,...n?.cacheRead?{cacheRead:n.cacheRead}:{},...n?.cacheCreate?{cacheCreate:n.cacheCreate}:{}}}}}}var mV={class:`code-preview-modal`},hV={class:`preview-header`},gV={class:`preview-title`},_V={class:`preview-tabs`},vV=[`disabled`],yV={class:`preview-actions`},bV=[`title`],xV={key:0,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},SV={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},CV=[`title`],wV=[`title`],TV={class:`preview-body`},EV=[`srcdoc`],DV={key:1,class:`preview-source`},OV=Vk(qi({__name:`CodePreview`,props:{code:{},lang:{},messages:{default:()=>eO}},emits:[`close`],setup(e,{emit:t}){let n=e,r=t,i=G(null),a=G(`preview`),o=G(!1),s=uc(()=>{let e=n.lang.toLowerCase();return[`html`,`htm`,`vue`,`javascript`,`js`,`css`].includes(e)}),c=uc(()=>{let e=n.lang.toLowerCase();if(e===`html`||e===`htm`)return n.code;if(e===`vue`)return l(n.code);if(e===`javascript`||e===`js`)return`<!DOCTYPE html><html><head><meta charset="utf-8"><style>body{font-family:sans-serif;padding:16px}</style></head><body><div id="app"></div><script>${n.code}<\/script></body></html>`;if(e===`css`){let e=n.messages;return`<!DOCTYPE html><html><head><meta charset="utf-8"><style>${n.code}</style></head><body><div class="demo"><h1>${e.codeDemoTitle}</h1><p>${e.codeDemoText}</p><button>${e.codeDemoButton}</button><input placeholder="${e.codeDemoInput}"/></div></body></html>`}return n.code});function l(e){let t=e.replace(/<\/script>/g,`<\\/script>`);return`<!DOCTYPE html><html><head><meta charset="utf-8">
|
|
3111
3111
|
<script src="https://unpkg.com/vue@3/dist/vue.global.js"><\/script>
|
|
3112
3112
|
<script src="https://unpkg.com/@vue/compiler-dom@3/dist/compiler-dom.global.js"><\/script>
|
|
3113
3113
|
<style>body{margin:0;font-family:sans-serif}body>div{padding:16px}</style>
|
|
@@ -3125,4 +3125,4 @@ let options={};
|
|
|
3125
3125
|
try{ const fn=new Function(scriptContent+';\\nreturn {data:typeof data!=="undefined"?data:()=>({}),methods:typeof methods!=="undefined"?methods:{},computed:typeof computed!=="undefined"?computed:{},mounted:typeof mounted!=="undefined"?mounted:undefined}'); options=fn(); }catch(e){ console.error(e); }
|
|
3126
3126
|
const app=createApp({template:template||'<div></div>',...options});
|
|
3127
3127
|
app.mount('#app');
|
|
3128
|
-
<\/script></body></html>`}mi(()=>a.value,async()=>{await yr(),a.value===`preview`&&i.value&&(i.value.srcdoc=c.value)},{immediate:!0});function u(){ZD(n.code).then(e=>{e&&(o.value=!0,setTimeout(()=>o.value=!1,1500))})}function d(){let e=e=>e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`),t=`<!DOCTYPE html><html><head><meta charset="utf-8"><title>代码预览 · `+e(n.lang)+`</title><style>html,body{margin:0;height:100%;background:#fff}iframe{border:none;width:100%;height:100%}</style></head><body><iframe sandbox="allow-scripts allow-modals allow-popups allow-forms" srcdoc="`+e(c.value)+`"></iframe></body></html>`,r=new Blob([t],{type:`text/html`}),i=URL.createObjectURL(r);window.open(i,`_blank`,`noopener,noreferrer`),setTimeout(()=>URL.revokeObjectURL(i),1e4)}return(t,n)=>(Y(),X(`div`,{class:`code-preview-overlay`,onClick:n[3]||=jl(e=>r(`close`),[`self`])},[Z(`div`,
|
|
3128
|
+
<\/script></body></html>`}mi(()=>a.value,async()=>{await yr(),a.value===`preview`&&i.value&&(i.value.srcdoc=c.value)},{immediate:!0});function u(){ZD(n.code).then(e=>{e&&(o.value=!0,setTimeout(()=>o.value=!1,1500))})}function d(){let e=e=>e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`),t=`<!DOCTYPE html><html><head><meta charset="utf-8"><title>代码预览 · `+e(n.lang)+`</title><style>html,body{margin:0;height:100%;background:#fff}iframe{border:none;width:100%;height:100%}</style></head><body><iframe sandbox="allow-scripts allow-modals allow-popups allow-forms" srcdoc="`+e(c.value)+`"></iframe></body></html>`,r=new Blob([t],{type:`text/html`}),i=URL.createObjectURL(r);window.open(i,`_blank`,`noopener,noreferrer`),setTimeout(()=>URL.revokeObjectURL(i),1e4)}return(t,n)=>(Y(),X(`div`,{class:`code-preview-overlay`,onClick:n[3]||=jl(e=>r(`close`),[`self`])},[Z(`div`,mV,[Z(`div`,hV,[Z(`span`,gV,U(e.messages.codePreviewTitlePrefix)+U(e.lang),1),Z(`div`,_V,[Z(`button`,{class:We({active:a.value===`preview`}),disabled:!s.value,onClick:n[0]||=e=>a.value=`preview`},U(e.messages.codePreviewTab),11,vV),Z(`button`,{class:We({active:a.value===`source`}),onClick:n[1]||=e=>a.value=`source`},U(e.messages.codeSourceTab),3)]),Z(`div`,yV,[Z(`button`,{class:We([`icon-btn`,{done:o.value}]),title:o.value?e.messages.copied:e.messages.codeCopyTitle,onClick:u},[o.value?(Y(),X(`svg`,xV,[...n[4]||=[Z(`path`,{d:`M3 8.5l3 3 7-7`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(Y(),X(`svg`,SV,[...n[5]||=[Z(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,stroke:`currentColor`,"stroke-width":`1.3`},null,-1),Z(`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)]]))],10,bV),Z(`button`,{class:`icon-btn`,title:e.messages.codeOpenTitle,onClick:d},[...n[6]||=[Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M6 3H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-2`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`}),Z(`path`,{d:`M9 2.5h4.5V7M13 3l-6 6`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,CV),Z(`button`,{class:`icon-btn`,title:e.messages.close,onClick:n[2]||=e=>r(`close`)},[...n[7]||=[Z(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[Z(`path`,{d:`M4 4l8 8M12 4l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]],8,wV)])]),Z(`div`,TV,[a.value===`preview`&&s.value?(Y(),X(`iframe`,{key:0,ref_key:`iframeRef`,ref:i,class:`preview-iframe`,sandbox:`allow-scripts allow-modals allow-popups allow-forms`,srcdoc:c.value},null,8,EV)):(Y(),X(`pre`,DV,[Z(`code`,null,U(e.code),1)]))])])]))}}),[[`__scopeId`,`data-v-27eac25e`]]);function kV(e){return HC(e,rV)}e.ApprovalBar=yF,e.CAPABILITIES=lb,e.CONTEXT_PRESETS=fb,e.ChatDialog=nV,e.ChatHeader=vA,e.ChatInput=fI,e.CodePreview=OV,e.CompressDecisionSchema=hy,e.ConflictBar=IF,e.DEFAULT_COMPUTED_STYLES=VS,e.DEFAULT_DIALOG_ICONS=QD,e.DEFAULT_PROMPT_SOFT_CAP=bh,e.DEFAULT_SYSTEM_PROMPT=Zg,e.DEFAULT_SYSTEM_PROMPT_EN=Qg,e.DebugDrawer=SB,e.FocusBar=kA,e.HLJS_BLOCK_MAX_CHARS=IN,e.HTML_VOID_TAGS=iv,e.HUMAN_CONFIRM_TOOL_NAME=ug,e.IconGlyph=Hk,e.ImageInputError=Ql,e.LOW_CAPS_HINT_BASELINE=S,e.MESSAGES_EN_US=tO,e.MESSAGES_ZH_CN=eO,e.MIN_CONTEXT_WINDOW=y,e.MODEL_UNAVAILABLE_GUIDANCE=nd,e.MessageContent=JN,e.MessageList=LP,e.MessageRow=DP,e.QueuedBar=qP,e.SOFT_CAP_MIN_WINDOW=yh,e.STOP_WORDS=dh,e.SkillPanel=XB,e.UNSAFE_KEYS=um,e.actionsToInspectInfo=pC,e.actionsToTools=fC,e.agentError=Jl,e.analyzeContext=Ug,e.applyPatchToClone=Tm,e.applyPatchToLive=Om,e.applyPatchesToBind=K_,e.applyProposalOps=bS,e.arrayMinLength=kp,e.asAgentError=ql,e.buildCollectorJs=Yv,e.buildCssPath=KS,e.buildDataPrompt=a_,e.buildDiagnosticsReport=Vv,e.buildHtmlFragmentSkill=ay,e.buildSandboxSrcdoc=Xv,e.buildSystemPrompt=o_,e.captureSelectionQuote=ju,e.chatContextKey=iO,e.commitSetToBind=G_,e.composeStructureThenRender=ny,e.compressImage=lu,e.connectMcp=Yg,e.constructLlmFromConfig=te,e.constructOpenLlmSync=M,e.copyText=ZD,e.countOccurrences=yS,e.createAgent=yp,e.createApprovalMiddleware=lg,e.createChatContext=aO,e.createChatSdk=kV,e.createCheckpointManager=xg,e.createCheckpointMiddleware=Sg,e.createConflictManager=Ay,e.createContextInspectorMiddleware=Wg,e.createCraftNoteCheck=ly,e.createDataOps=rv,e.createEvalHarness=pV,e.createHtmlFormatCheck=sy,e.createHtmlRenderCheck=ty,e.createHtmlSubagent=dy,e.createHumanConfirmMiddleware=pg,e.createHumanConfirmTool=fg,e.createIdleDetector=uV,e.createMemoryBackend=Qy,e.createMemoryMiddleware=ng,e.createProxyLlm=g,e.createRagSubagent=lV,e.createSandboxRunner=cd,e.createSdkEvents=db,e.createSerialRunner=PC,e.createSessionStore=nb,e.createSessionStoreWithBackend=rb,e.createSkillStore=AC,e.createSubagentMiddleware=qh,e.createSubagentTracker=Dh,e.createSubagentsMiddleware=Xh,e.createUsageHintsMiddleware=SC,e.createVerifyMiddleware=wg,e.createVfs=u_,e.createWebStorageBackend=eb,e.createWriteBackCheck=Ag,e.decorateModelUnavailable=rd,e.deepClone=gm,e.defineDataToolset=gC,e.defineSkill=Vm,e.defineTool=fy,e.deleteByPath=hm,e.deriveTitle=gy,e.describeSchemaNode=Up,e.detectGarbledToolCall=np,e.detectTransitionalReply=ff,e.diffObjects=Mm,e.diffReport=fV,e.domInfoTool=ZS,e.domInspectSkill=nC,e.domSearchTool=XS,e.domToStructure=jS,e.domTools=BS,e.domToolsStatic=hC,e.elementSchemaCandidates=Ap,e.ensureDomListenerRecorder=WS,e.estimateMessageTokens=ph,e.estimateRoundTokens=gh,e.estimateTokens=T,e.extractReasoningDelta=P,e.extractSchemaHint=nm,e.extractText=Gg,e.extractTextDelta=ne,e.extractUsage=re,e.fetchDocTools=DS,e.fetchTools=mC,e.findStrippedKeys=jm,e.formatConstraints=Wp,e.formatZodIssues=Ul,e.getByPath=pm,e.getDomTool=MS,e.getElementInfo=YS,e.getEnvSummary=aC,e.getRecordedListeners=GS,e.getSandboxLifecycle=$v,e.getSchemaAtPath=Cp,e.getSchemaTopKeys=bp,e.hashContent=xS,e.hashValue=Cm,e.htmlFragmentSkill=oy,e.htmlOrchestratorPrompt=Zp,e.indexSummarize=_h,e.inspectEnvTool=cC,e.inspectTools=lC,e.isChatModel=vy,e.isContextLengthError=ed,e.isIconHtml=Ak,e.isModelUnavailableError=td,e.isPathAllowed=xp,e.isQuotaError=Wy,e.isUnsafePath=dm,e.jpEval=vd,e.jsonParseError=Gl,e.limitDepth=bm,e.lineDiff=_S,e.lowCapsHint=C,e.markedToHtml=HN,e.maskUrlCredentials=zv,e.maybeParseValue=vm,e.measureWriteScale=Nv,e.moveByPath=Dm,e.normalizeBaseUrl=j,e.normalizeRenderResult=Jv,e.normalizeUsage=F,e.offloadPassThroughChars=D,e.offloadThresholdChars=E,e.presets=Xp,e.projectBySchema=Lp,e.projectBySchemaDeep=Ip,e.projectFields=ym,e.recallRounds=vh,e.renderInSandbox=ey,e.renderMarkdownHtml=UN,e.renderSchemaHint=Gp,e.renderSchemaOverview=Kp,e.renderSchemaShallow=Yp,e.resolveCapabilities=ub,e.resolveContextOptions=mb,e.resolveDialogConfig=ob,e.resolveDialogIcons=$D,e.resolveDialogMessages=rO,e.resolveLlm=ky,e.resolveModelCaps=w,e.resolvePromptSoftCap=Sh,e.resolveSchemaPath=Ep,e.resolveStorage=ab,e.restoreInPlace=Am,e.restoreLive=km,e.routeError=Kl,e.runSandboxedScript=Sd,e.safeMerge=fm,e.safeSerialize=iC,e.safeStringify=xm,e.sanitizeGarbledContent=rp,e.sanitizeIconHtml=Pk,e.sanitizeMessageHtml=Lk,e.schemaHasRefinement=Op,e.searchDom=qS,e.searchJson=bd,e.selectBuiltinTools=_C,e.setByPath=mm,e.shouldTriggerCompression=Ch,e.stringifyDiagnosticsReport=Hv,e.stripStainlessFetch=A,e.systemPromptHelpers=Qp,e.tableMaxOutputTokens=x,e.tokenize=fh,e.toolError=$,e.unwrapSchema=Sp,e.useChat=XD,e.useChatContext=oO,e.validateAtPath=Dp,e.validateHtmlFormat=ov,e.validateRootValueLocally=U_,e.validateWriteLocally=W_,e.watchFieldsHash=wm,Object.defineProperty(e,"z",{enumerable:!0,get:function(){return t.z}}),e.zodError=Wl});
|