@wangjian2254/pi-web 1.0.27 → 1.0.28
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +8 -8
- package/.next/build-manifest.json +2 -2
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +5 -5
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/index.segments/_full.segment.rsc +5 -5
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +8 -8
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/app/{layout-c7e4baced0ad416b.js → layout-7585f1a5c791c9e3.js} +1 -1
- package/.next/static/chunks/app/{page-efcc184098881595.js → page-222fb37e9da30b67.js} +1 -1
- package/.next/trace +6 -6
- package/.next/trace-build +1 -1
- package/package.json +1 -1
- /package/.next/static/{WGkjHJC3dyM2B5ARrdaSl → AXtCfPTICZkcLPFjDU7a1}/_buildManifest.js +0 -0
- /package/.next/static/{WGkjHJC3dyM2B5ARrdaSl → AXtCfPTICZkcLPFjDU7a1}/_ssgManifest.js +0 -0
package/.next/server/app/page.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
${a}`,m=f&&!b,n=(0,af.useMemo)(()=>(0,ae.jsx)("button",{type:"button",onClick:()=>g(a=>!a),disabled:b,title:b?e("i18n.previewAfterStreaming"):m?e("i18n.showMermaidSource"):e("i18n.previewMermaid"),className:["markdown-code-action",m?"is-active":""].filter(Boolean).join(" "),children:m?e("i18n.source"):e("i18n.preview")}),[b,m,e]);if(!m)return(0,ae.jsx)(p0,{code:a,lang:"mermaid",headerAction:n,isStreaming:b});let o=h?.key===l&&"error"===h.status?(0,ae.jsx)("div",{className:"mermaid-block mermaid-block-error",children:e("i18n.invalidMermaid")}):h?.key!==l||"ready"!==h.status?(0,ae.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":e("i18n.renderingMermaid")}):(0,ae.jsxs)(ae.Fragment,{children:[!j&&(0,ae.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:e("i18n.openMermaidViewer"),"aria-label":e("i18n.openMermaidViewer"),onClick:()=>k(!0),dangerouslySetInnerHTML:{__html:h.svg}}),j&&(0,ae.jsx)(p_,{svg:h.svg,onClose:()=>k(!1)})]});return(0,ae.jsxs)("div",{className:"markdown-code-block",children:[(0,ae.jsxs)("div",{className:"markdown-code-header",children:[(0,ae.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),n]}),o]})}function p_({svg:a,onClose:b}){let{t:c}=(0,ap.s)(),d=(0,af.useRef)(null),[e,f]=(0,af.useState)(1);return(0,ae.jsx)("dialog",{ref:d,className:"mermaid-zoom-dialog","aria-label":c("i18n.mermaidViewer"),onCancel:a=>{a.preventDefault(),b()},onKeyDown:a=>{"Escape"===a.key&&(a.preventDefault(),b())},children:(0,ae.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,ae.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[(0,ae.jsx)("span",{className:"mermaid-zoom-title",children:c("i18n.mermaidDiagram")}),(0,ae.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,ae.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,ae.jsx)("button",{type:"button",onClick:()=>f(a=>Math.max(.5,a-.25)),disabled:e<=.5,title:c("i18n.zoomOut"),"aria-label":c("i18n.zoomOut"),children:(0,ae.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M5 12h14"})})}),(0,ae.jsxs)("span",{className:"mermaid-zoom-value",children:[Math.round(100*e),"%"]}),(0,ae.jsx)("button",{type:"button",onClick:()=>f(a=>Math.min(3,a+.25)),disabled:e>=3,title:c("i18n.zoomIn"),"aria-label":c("i18n.zoomIn"),children:(0,ae.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,ae.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:()=>f(1),title:c("i18n.fitToWidth"),"aria-label":c("i18n.fitToWidth"),children:(0,ae.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,ae.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:b,title:c("i18n.close"),"aria-label":c("i18n.close"),children:(0,ae.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,ae.jsx)("div",{className:"mermaid-zoom-viewport",onClick:a=>{a.target===a.currentTarget&&b()},children:(0,ae.jsx)("div",{className:"mermaid-zoom-canvas",style:{width:`${100*e}%`},dangerouslySetInnerHTML:{__html:a}})})]})})}let p0=(0,af.memo)(function({code:a,lang:b,headerAction:c,isStreaming:d}){let{isDark:e}=pY(),{t:f}=(0,ap.s)(),[g,h]=(0,af.useState)(!1);return(0,ae.jsxs)("div",{className:"markdown-code-block",children:[(0,ae.jsxs)("div",{className:"markdown-code-header",children:[(0,ae.jsx)("span",{className:"markdown-code-lang",children:b||"text"}),(0,ae.jsxs)("div",{className:"markdown-code-actions",children:[c,(0,ae.jsx)("button",{onClick:()=>{pZ(a).then(()=>{h(!0),setTimeout(()=>h(!1),1500)})},className:"markdown-code-action",children:f(g?"i18n.copied":"i18n.copy")})]})]}),d?(0,ae.jsx)("pre",{style:{margin:0,padding:"11px 13px",fontSize:12.5,lineHeight:1.62,overflowX:"auto",background:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},children:(0,ae.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:a})}):(0,ae.jsx)(pP,{language:b||"text",style:e?pQ.xJ:pQ.vs,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal"},customStyle:{margin:0,padding:"11px 13px",fontSize:12.5,lineHeight:1.62,borderRadius:0,background:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:a})]})}),p1="ly-ai-assistant";function p2(a,b=1e4){return new Promise(c=>{let d=!1,e=null,f=a=>{d||(d=!0,e&&clearTimeout(e),window.removeEventListener("message",g),c(a))},g=a=>{let b=a.data;b&&"object"==typeof b&&b.source===p1&&"page_ability_response"===b.type&&b.requestId===h&&f(b.ok?{ok:!0,data:b.data}:{ok:!1,error:"string"==typeof b.error?b.error:"未知错误"})},h=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`;e=setTimeout(()=>f({ok:!1,error:"父页面未响应(能力调用超时)"}),b),window.addEventListener("message",g);try{let b=window.parent;if(!b||b===window)return void f({ok:!1,error:"当前不在宿主页面 iframe 内,无法调用页面能力"});let c=p5(a)||{};b.postMessage({source:p1,type:"page_ability_request",requestId:h,...c},"*")}catch(a){f({ok:!1,error:`调用父页面失败: ${a instanceof Error?a.message:String(a)}`})}})}async function p3(a=1e4){let b=await p2({action:"list"},a);return b.ok&&b.data&&"object"==typeof b.data&&"abilities"in b.data&&Array.isArray(b.data.abilities)?{ok:!0,data:{abilities:b.data.abilities}}:b.ok?{ok:!1,error:"父页面未返回有效页面能力清单"}:b}function p4(a,b,c=1e4){return p2({action:"execute",ability:a,params:p5(b)},c)}function p5(a){try{return JSON.parse(JSON.stringify(a))}catch{return}}let p6={goto_view:"view_goto"},p7={display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap",margin:"6px 0"},p8={display:"inline-flex",alignItems:"center",gap:6,padding:"4px 14px",borderRadius:6,border:"1px solid #1677ff",background:"#fff",color:"#1677ff",cursor:"pointer",fontSize:13,lineHeight:"20px",transition:"background 0.15s, color 0.15s"},p9={...p8,opacity:.6,cursor:"default"},qa={fontSize:12,color:"#888"},qb={fontSize:12,color:"#cf1322"},qc={fontSize:12,color:"#cf1322",fontStyle:"italic"};function qd({action:a}){let[b,c]=(0,af.useState)("idle"),[d,e]=(0,af.useState)(""),f=p6[a.action];if(!f)return(0,ae.jsxs)("span",{style:qc,children:["未知动作: ",a.action]});let g="string"==typeof a.label&&a.label?a.label:`执行: ${a.action}`,h=async()=>{if("loading"===b)return;c("loading"),e("");let{action:d,label:g,...h}=a,i=await p4(f,h,15e3);i.ok?c("done"):(c("error"),e(i.error||"执行失败"))};return(0,ae.jsxs)("span",{style:p7,children:[(0,ae.jsx)("button",{type:"button",style:"loading"===b?p9:p8,disabled:"loading"===b,onClick:h,children:g}),"loading"===b&&(0,ae.jsx)("span",{style:qa,children:"执行中…"}),"done"===b&&(0,ae.jsx)("span",{style:qa,children:"✓ 已执行"}),"error"===b&&(0,ae.jsx)("span",{style:qb,children:d})]})}function qe({raw:a}){let b;try{b=JSON.parse(a.trim())}catch{return(0,ae.jsx)("span",{style:qc,children:"动作数据解析失败(非法 JSON)"})}let c=(Array.isArray(b)?b:[b]).filter(a=>!!a&&"object"==typeof a);return 0===c.length?(0,ae.jsx)("span",{style:qc,children:"动作数据为空"}):(0,ae.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:c.map((a,b)=>(0,ae.jsx)(qd,{action:a},b))})}function qf({children:a,className:b,isStreaming:c,cwd:d,onOpenFile:e}){let f=(0,af.useMemo)(()=>kt(a),[a]),g=(0,af.useMemo)(()=>({code({className:a,children:b,...d}){let e=a?.replace("language-","").toLowerCase()??"",f=String(b);return a?.includes("language-")||f.includes("\n")?"mermaid"===e?(0,ae.jsx)(p$,{code:f.replace(/\n$/,""),isStreaming:c}):"ly_action"===e?(0,ae.jsx)(qe,{raw:f}):(0,ae.jsx)(p0,{code:f.replace(/\n$/,""),lang:e,isStreaming:c}):(0,ae.jsx)("code",{className:"markdown-inline-code",...d,children:b})},pre:({children:a})=>(0,ae.jsx)(ae.Fragment,{children:a}),a({href:a,children:b,...c}){delete c.node;let f=e?bg(a,d):null;return f&&e?(0,ae.jsx)("a",{href:a,...c,onClick:a=>{if(a.defaultPrevented||0!==a.button||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey)return;let b=a.currentTarget.getAttribute("target");b&&"_self"!==b||(a.preventDefault(),e(f))},children:b}):(0,ae.jsx)("a",{href:a,...c,target:"_blank",rel:"noopener noreferrer",children:b})},img({src:a,alt:b,...c}){delete c.node;let e="string"==typeof a?bg(a,d):null,f=e?(0,ai.hd)(`/api/files/${ax(e)}?type=read`):a;return(0,ae.jsx)("img",{src:f,alt:b??"",loading:"lazy",...c})},table:({children:a})=>(0,ae.jsx)("div",{className:"markdown-table-wrap",children:(0,ae.jsx)("table",{children:a})})}),[d,c,e]);return(0,ae.jsx)("div",{className:["markdown-body",b].filter(Boolean).join(" "),children:(0,ae.jsx)(eG,{remarkPlugins:kx,rehypePlugins:kz,components:g,children:f})})}function qg({src:a,alt:b="",children:c,className:d,style:e}){let{t:f}=(0,ap.s)(),[g,h]=(0,af.useState)(!1),i=(0,af.useRef)(null),j=(0,af.useRef)(null),k=(0,af.useRef)(null),l=()=>{j.current?.open&&j.current.close(),h(!1)};return(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("button",{ref:i,type:"button",className:d,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...e},onClick:()=>h(!0),"aria-label":f("chat.previewImage"),"aria-haspopup":"dialog","aria-expanded":g,title:f("chat.previewImage"),children:c}),g&&(0,ae.jsxs)("dialog",{ref:j,className:"image-preview-dialog","aria-label":f("chat.previewImage"),onCancel:a=>{a.preventDefault(),a.stopPropagation(),l()},onKeyDown:a=>{"Escape"===a.key&&(a.preventDefault(),a.stopPropagation(),l())},onClick:a=>{a.target===a.currentTarget&&l()},children:[(0,ae.jsx)("img",{className:"image-preview-image",src:a,alt:b}),(0,ae.jsx)("button",{ref:k,type:"button",className:"image-preview-close",onClick:l,"aria-label":f("chat.close"),title:f("chat.close"),children:(0,ae.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]})}let qh=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,qi=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;function qj(a){let b,c=[],d=null,e=0,f=0,g=0,h=0,i=[],j=[],k=()=>({lineNo:null,text:"",type:"empty"}),l=()=>{if(!d){i=[],j=[];return}let a=Math.max(i.length,j.length);for(let b=0;b<a;b++){let a=i[b]?{lineNo:i[b].lineNo,text:i[b].text,type:"removed"}:k(),c=j[b]?{lineNo:j[b].lineNo,text:j[b].text,type:"added"}:k();d.rows.push({type:"line",left:a,right:c})}i=[],j=[]};for(let k of a.split(/\r?\n/)){if(!(g>0||h>0)){if(k.startsWith("--- ")){l(),b=qk(k.slice(4));continue}if(k.startsWith("+++ ")){l(),d={oldPath:b,newPath:qk(k.slice(4)),rows:[]},c.push(d);continue}}let a=k.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(a){d||(d={rows:[]},c.push(d)),l(),e=Number(a[1]),f=Number(a[3]),g=void 0===a[2]?1:Number(a[2]),h=void 0===a[4]?1:Number(a[4]),d.rows.push({type:"hunk",text:k});continue}if(!d)continue;if(k.startsWith("\\ ")){l(),d.rows.push({type:"hunk",text:k});continue}let m=k[0],n=k.slice(1);" "===m?(l(),d.rows.push({type:"line",left:{lineNo:e++,text:n,type:"context"},right:{lineNo:f++,text:n,type:"context"}}),g>0&&g--,h>0&&h--):"-"===m?(i.push({lineNo:e++,text:n}),g>0&&g--):"+"===m?(j.push({lineNo:f++,text:n}),h>0&&h--):""!==k&&(l(),d.rows.push({type:"hunk",text:k}))}l();let m=c.filter(a=>a.rows.some(a=>"line"===a.type));return m.length>0?m:null}function qk(a){return a.split(" ")[0].trim()}function ql({files:a,onOpenFile:b}){let{t:c}=(0,ap.s)();return 0===a.length?null:(0,ae.jsx)("div",{"aria-label":c("chat.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:a.map(({filePath:a})=>{let d=ay(a);return(0,ae.jsxs)("button",{type:"button",title:a,"aria-label":c("chat.openWrittenFile",{name:d}),onClick:()=>b?.(a),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:12,fontFamily:"var(--font-mono)",color:"var(--text)",background:"var(--bg-subtle)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:[av(d,12),(0,ae.jsx)("span",{children:d})]},a)})})}let qm=/[\u3000-\u30ff\u3400-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}\uac00-\ud7af]/u;function qn(a){let b=0,c=0;for(let d of a)qm.test(d)?b++:c++;return b+c/4}let qo=new Map;function qp({children:a,className:b,...c}){let{t:d}=(0,ap.s)(),[e,f]=(0,af.useState)(!1);if(a.length<=1e5)return(0,ae.jsx)(qf,{className:b,...c,children:a});if(!e){var g;return(0,ae.jsxs)("button",{onClick:()=>f(!0),style:{display:"block",width:"100%",margin:"4px 0",padding:"7px 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:["⚠ ",d("i18n.largeMessageReveal",{size:(g=a.length)>=1e6?`${(g/1e6).toFixed(1)} MB`:g>=1e3?`${Math.round(g/1e3)} KB`:`${g} B`})]})}return(0,ae.jsx)("div",{className:b,style:{maxHeight:420,overflow:"auto",fontSize:12,lineHeight:1.5},children:(0,ae.jsx)("pre",{style:{margin:0,padding:"8px 10px",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:a})})}function qq(a){if(!a)return null;let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear()&&b.getMonth()===c.getMonth()&&b.getDate()===c.getDate(),e=b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(d)return e;let f=b.toLocaleDateString([],{month:"short",day:"numeric",year:b.getFullYear()!==c.getFullYear()?"numeric":void 0});return`${f} ${e}`}let qr=(0,af.memo)(function({message:a,isStreaming:b,toolResults:c,modelNames:d,cwd:e,onOpenFile:f,entryId:g,onFork:h,forking:i,onNavigate:j,prevAssistantEntryId:k,onEditContent:l,showTimestamp:m,prevTimestamp:n,sessionId:o,writtenFiles:p}){return"user"===a.role?(0,ae.jsx)(qs,{message:a,cwd:e,onOpenFile:f,entryId:g,onFork:h,forking:i,onNavigate:j,prevAssistantEntryId:k,onEditContent:l}):"assistant"===a.role?(0,ae.jsx)(qt,{message:a,isStreaming:b,toolResults:c,modelNames:d,cwd:e,onOpenFile:f,showTimestamp:m,prevTimestamp:n,sessionId:o,entryId:g,writtenFiles:p}):"toolResult"===a.role?null:"custom"===a.role?"compaction"===a.customType?(0,ae.jsx)(qE,{message:a}):(0,ae.jsx)(qH,{message:a,cwd:e,onOpenFile:f}):"bashExecution"===a.role?(0,ae.jsx)(qJ,{message:a,sessionId:o}):null},(a,b)=>a.message===b.message&&a.isStreaming===b.isStreaming&&function(a,b,c){if(b===c||"assistant"!==a.role)return!0;for(let d of a.content??[])if("toolCall"===d.type&&b?.get(d.toolCallId)!==c?.get(d.toolCallId))return!1;return!0}(a.message,a.toolResults,b.toolResults)&&a.modelNames===b.modelNames&&a.cwd===b.cwd&&a.onOpenFile===b.onOpenFile&&a.entryId===b.entryId&&a.onFork===b.onFork&&a.forking===b.forking&&a.onNavigate===b.onNavigate&&a.prevAssistantEntryId===b.prevAssistantEntryId&&a.onEditContent===b.onEditContent&&a.showTimestamp===b.showTimestamp&&a.prevTimestamp===b.prevTimestamp&&a.sessionId===b.sessionId);function qs({message:a,cwd:b,onOpenFile:c,entryId:d,onFork:e,forking:f,onNavigate:g,prevAssistantEntryId:h,onEditContent:i}){let{t:j}=(0,ap.s)(),[k,l]=(0,af.useState)(!1),[m,n]=(0,af.useState)(!1),[o,p]=(0,af.useState)(!1),q="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),r="string"==typeof a.content?[]:a.content.filter(a=>"image"===a.type),s=ak(q),t=s?.search(/\s/)??-1,u=s?-1===t?s:s.slice(0,t):"",v=s&&-1!==t?s.slice(t+1):"",w=qq(a.timestamp),x=!!d&&!!e,y=s??q,z=s?function(a,b){if("string"==typeof a.content)return{...a,content:b};let c=[],d=!1;for(let e of a.content){if("text"!==e.type){c.push(e);continue}d||(c.push({...e,text:b}),d=!0)}return d||c.unshift({type:"text",text:b}),{...a,content:c}}(a,s):a,A=r.length>0&&(0,ae.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!q},children:r.map((a,b)=>{let c=a.source?"base64"===a.source.type?`data:${a.source.media_type};base64,${a.source.data}`:a.source.url??"":a.data?`data:${a.mimeType};base64,${a.data}`:"";return(0,ae.jsx)(qg,{src:c,children:(0,ae.jsx)("img",{src:c,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},b)})}),B=!!h&&!!g;return(0,ae.jsxs)("div",{style:{marginBottom:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,ae.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,ae.jsx)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(59,130,246,0.2)",borderRadius:12,padding:"8px 12px",fontSize:14,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",maxHeight:300,overflowY:"auto"},children:s?(0,ae.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,minWidth:0},children:[A,(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,flexWrap:"wrap"},children:[(0,ae.jsxs)("button",{onClick:()=>p(a=>!a),title:j(o?"i18n.collapse":"i18n.expand"),"aria-expanded":o,style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,padding:0,background:"none",border:"none",cursor:"pointer",color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:13,textAlign:"left"},children:[(0,ae.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u}),(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,opacity:.75,transform:o?"rotate(180deg)":"none",transition:"transform 0.15s"},"aria-hidden":"true",children:(0,ae.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),v&&(0,ae.jsx)("span",{style:{color:"var(--text)",fontSize:14,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",minWidth:0,flex:1},children:v})]}),o&&(0,ae.jsx)(qf,{className:"markdown-user-message",cwd:b,onOpenFile:c,children:q})]}):(0,ae.jsxs)(ae.Fragment,{children:[A,q&&(0,ae.jsx)(qp,{className:"markdown-user-message",cwd:b,onOpenFile:c,children:q})]})})}),(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,ae.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!k,pointerEvents:k?"auto":"none",transition:"opacity 0.12s"},children:(0,ae.jsxs)("button",{onClick:()=>{pZ(y).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})},title:j("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:m?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{m||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{m||(a.currentTarget.style.color="var(--text-dim)")},children:[m?(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ae.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,ae.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),j(m?"i18n.copied":"i18n.copy")]})}),(x||B)&&(0,ae.jsxs)("div",{style:{display:"flex",gap:3,opacity:k||f?1:0,pointerEvents:k||f?"auto":"none",transition:"opacity 0.12s"},children:[B&&(0,ae.jsxs)("button",{onClick:()=>{g(h),i?.(z)},title:j("i18n.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:[(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,ae.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),j("i18n.editFromHere")]}),x&&(0,ae.jsxs)("button",{onClick:()=>{e(d)},disabled:f,title:j(f?"i18n.creatingSession":"i18n.newSessionTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:f?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:a=>{f||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{f||(a.currentTarget.style.color="var(--text-dim)")},children:[(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,ae.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,ae.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,ae.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),j(f?"i18n.creating":"i18n.newSession")]})]}),w&&(0,ae.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:w})]})]})}function qt({message:a,isStreaming:b,toolResults:c,modelNames:d,cwd:e,onOpenFile:f,showTimestamp:g,prevTimestamp:h,sessionId:i,entryId:j,writtenFiles:k}){var l;let m,n,o,{t:p}=(0,ap.s)(),q=g?qq(a.timestamp):null,r=(0,af.useMemo)(()=>(a.content??[]).map((a,b)=>({block:a,originalIndex:b})).filter(({block:a})=>!a8(a,{isStreaming:b})),[a.content,b]),s=(0,af.useMemo)(()=>r.map(({block:a})=>a),[r]),t=ba(a,{isStreaming:b}),[u,v]=(0,af.useState)(!1),[w,x]=(0,af.useState)(!1);(0,af.useRef)(null);let[y,z]=(0,af.useState)(null);(0,af.useRef)(r).current=r;let A=(0,af.useRef)(new Map),B=(0,af.useMemo)(()=>{if(!b)return A.current=new Map,0;let a=new Map,c=0;for(let{block:b,originalIndex:d}of r){let e="text"===b.type?b.text:"thinking"===b.type?b.thinking:"toolCall"===b.type?b.rawInput??JSON.stringify(b.input??{})??"":null;if(null===e)continue;let f=function(a,b){var c,d;if(!a||!b.startsWith(a.text))return qn(b);let e=a.tokens,f=a.text.length;return f>0&&f<b.length&&(c=a.text.charCodeAt(f-1))>=55296&&c<=56319&&(d=b.charCodeAt(f))>=56320&&d<=57343&&(e-=1/4,f--),e+qn(b.slice(f))}(A.current.get(d),e);a.set(d,{text:e,tokens:f}),c+=f}return A.current=a,c},[r,b]);(0,af.useRef)(B).current=B,(0,af.useRef)(new Map);let[C,D]=(0,af.useState)(new Map),E=(0,af.useMemo)(()=>{if(!a.timestamp||!h)return;let b=Math.round((a.timestamp-h)/1e3);return b>0?b:void 0},[a.timestamp,h]),F=(0,af.useMemo)(()=>{let b=new Map;if(!c||!a.timestamp)return b;for(let[d,e]of c)if(e.timestamp&&a.timestamp){let c=Math.round((e.timestamp-a.timestamp)/1e3);c>0&&b.set(d,c)}return b},[c,a.timestamp]),G=s.filter(a=>"text"===a.type).map(a=>a.text).join("\n");if(0===s.length&&!b&&!t)return null;return(0,ae.jsxs)("div",{style:{marginBottom:16},onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),children:[(0,ae.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[a.provider&&(0,ae.jsx)("span",{children:d?.[`${a.provider}:${a.model}`]??d?.[a.model]??a.model}),b&&(n=Math.round(B),(0,ae.jsx)(ae.Fragment,{children:n>0&&(0,ae.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:p("i18n.estimatedTokens"),children:[(0,ae.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,ae.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,ae.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),n]}),null!==y&&(o=y>=50?"#53b3cb":y>=30?"#9bc53d":y>=15?"#f9c22e":"#e01a4f",(0,ae.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:o,color:"#fff",fontSize:11,fontWeight:400},children:[y.toFixed(1)," t/s"]}))]})}))]}),(0,ae.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:r.map(({block:a,originalIndex:d})=>(0,ae.jsx)(qu,{block:a,toolResults:c,isStreaming:b,streamingDuration:C.get(d)??("thinking"===a.type?E:void 0),toolCallDurations:F,cwd:e,onOpenFile:f,sessionId:i,entryId:j,blockIndex:d},`${j??"stream"}-${d}`))}),t&&(0,ae.jsxs)("div",{role:"alert",style:{marginTop:8*(s.length>0),padding:"7px 10px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,background:"rgba(239,68,68,0.07)",color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:["Error: ",t]}),k&&k.length>0&&(0,ae.jsx)(ql,{files:k,onOpenFile:f}),(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[a.usage&&!b&&(0,ae.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(l=a.usage,m=[],l.input&&m.push(`${l.input.toLocaleString()} in`),l.output&&m.push(`${l.output.toLocaleString()} out`),l.cacheRead&&m.push(`${l.cacheRead.toLocaleString()} cache R`),l.cacheWrite&&m.push(`${l.cacheWrite.toLocaleString()} cache W`),l.cost?.total&&m.push(`$${l.cost.total.toFixed(4)}`),m.join(" \xb7 "))}),G&&!b&&(0,ae.jsxs)("button",{onClick:()=>{pZ(G).then(()=>{x(!0),setTimeout(()=>x(!1),1500)})},title:p("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:w?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",opacity:+!!u,pointerEvents:u?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:a=>{w||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{w||(a.currentTarget.style.color="var(--text-dim)")},children:[w?(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ae.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,ae.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),p(w?"i18n.copied":"i18n.copy")]}),q&&!b&&(0,ae.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:q})]})]})}function qu({block:a,toolResults:b,isStreaming:c,streamingDuration:d,toolCallDurations:e,cwd:f,onOpenFile:g,sessionId:h,entryId:i,blockIndex:j}){if("text"===a.type)return(0,ae.jsx)(qv,{block:a,isStreaming:c,cwd:f,onOpenFile:g});if("thinking"===a.type)return(0,ae.jsx)(qw,{block:a,duration:d,sessionId:h,entryId:i,blockIndex:j});if("toolCall"===a.type){let c=b?.get(a.toolCallId),d=e?.get(a.toolCallId);return(0,ae.jsx)(qx,{block:a,result:c,duration:d})}return null}function qv({block:a,isStreaming:b,cwd:c,onOpenFile:d}){return(0,ae.jsx)(qp,{isStreaming:b,cwd:c,onOpenFile:d,children:a.text})}function qw({block:a,duration:b,sessionId:c,entryId:d,blockIndex:e}){let{t:f}=(0,ap.s)(),[g,h]=(0,af.useState)(!1),[i,j]=(0,af.useState)(null),[k,l]=(0,af.useState)(!1),[m,n]=(0,af.useState)(null),o=async()=>{let b=!g;if(h(b),b&&a.deferred&&null===i){if(!c||!d)return void n(f("i18n.thinkingUnavailable"));l(!0),n(null);try{j(await function(a,b,c){let d=`${a}:${b}:${c}`,e=qo.get(d);if(e)return qo.delete(d),qo.set(d,e),e;let f=fetch(`/api/sessions/${encodeURIComponent(a)}/entries/${encodeURIComponent(b)}/thinking?blockIndex=${c}`).then(async a=>{if(!a.ok)throw Error(`HTTP ${a.status}`);let b=await a.json();if("string"!=typeof b.thinking)throw Error("Invalid thinking response");return b.thinking}).catch(a=>{throw qo.delete(d),a});if(qo.set(d,f),qo.size>100){let a=qo.keys().next().value;a&&qo.delete(a)}return f}(c,d,e))}catch(a){n(a instanceof Error?a.message:String(a))}finally{l(!1)}}};return(0,ae.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:[(0,ae.jsxs)("button",{onClick:()=>void o(),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,ae.jsx)("span",{children:f("i18n.thinking")}),void 0!==b&&(0,ae.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[b,"s"]})]}),g&&(0,ae.jsx)("div",{style:{padding:"8px 10px",color:m?"#f87171":"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)"},children:k?f("i18n.loadingThinking"):m??(a.deferred?i:a.thinking)})]})}function qx({block:a,result:b,duration:c}){var d;let{t:e}=(0,ap.s)(),[f,g]=(0,af.useState)(!1),h=(d=a).rawInput??JSON.stringify(d.input,null,2),i=void 0!==a.rawInput,j=bh(a.toolName),k=b&&!b.isError?function(a){var b;let c=a.details;if(!("object"==typeof(b=c)&&null!==b&&!Array.isArray(b)))return null;let d="string"==typeof c.patch?c.patch:null;if(d)return{text:d};let e="string"==typeof c.diff?c.diff:null;return e?{text:e}:null}(b):null,l=b?b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):null,m=null!==l&&("(no output)"===l.trim()||""===l.trim()),n=b?.isError??!1;return(0,ae.jsxs)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:12,border:n?"1px solid rgba(248,113,113,0.45)":"1px solid rgba(34,197,94,0.25)",background:n?"rgba(248,113,113,0.05)":"rgba(34,197,94,0.04)"},children:[(0,ae.jsxs)("button",{onClick:()=>g(a=>!a),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},children:[(0,ae.jsx)("span",{style:{color:n?"#f87171":"#16a34a",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:a.toolName}),(0,ae.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:i?e("chat.generatingToolInput"):function(a){let b=a.input;if(!b||"object"!=typeof b)return"";let c=Object.keys(b);return 0===c.length?"":"command"in b?String(b.command).slice(0,120):"path"in b?String(b.path).slice(0,120):"file_path"in b?String(b.file_path).slice(0,120):"pattern"in b?String(b.pattern).slice(0,120):"query"in b?String(b.query).slice(0,120):String(b[c[0]]).slice(0,120)}(a)}),void 0!==c&&(0,ae.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[c,"s"]}),(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:f?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,ae.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),f&&(i||!j)&&(0,ae.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",background:"var(--bg-subtle)",borderTop:n?"1px solid rgba(248,113,113,0.25)":"1px solid rgba(34,197,94,0.2)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:h}),f&&b&&(k?(0,ae.jsx)(qy,{diff:k}):(0,ae.jsx)(qD,{text:l??"",isEmpty:m,isError:n}))]})}function qy({diff:a}){return(0,ae.jsx)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,ae.jsx)(qz,{text:a.text})})}function qz({text:a}){let{t:b}=(0,ap.s)(),c=(0,af.useMemo)(()=>qj(a),[a]);if(!c)return(0,ae.jsx)(qC,{text:a});let d=c.length>1;return(0,ae.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:c.map((a,c)=>(0,ae.jsxs)("div",{style:{minWidth:0,borderTop:0===c?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[d&&(0,ae.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,ae.jsx)(qA,{title:a.oldPath||b("i18n.before"),side:"left"}),(0,ae.jsx)(qA,{title:a.newPath||b("i18n.after"),side:"right"})]}),(0,ae.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:a.rows.map((a,b)=>"hunk"===a.type?null:(0,ae.jsxs)("div",{style:{display:"contents"},children:[(0,ae.jsx)(qB,{cell:a.left,side:"left"}),(0,ae.jsx)(qB,{cell:a.right,side:"right"})]},b))})]},c))})}function qA({title:a,side:b}){return(0,ae.jsx)("div",{title:a,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===b?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a})}function qB({cell:a,side:b}){let c="added"===a.type?"rgba(34,197,94,0.12)":"removed"===a.type?"rgba(248,113,113,0.13)":"empty"===a.type?"var(--bg-subtle)":"transparent",d="added"===a.type?"+":"removed"===a.type?"-":" ",e="added"===a.type?"#22c55e":"removed"===a.type?"#f87171":"var(--text-dim)";return(0,ae.jsxs)("div",{style:{display:"flex",minWidth:0,background:c,borderRight:"left"===b?"1px solid var(--border)":"none"},children:[(0,ae.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:a.lineNo??""}),(0,ae.jsx)("span",{style:{width:18,padding:"0 5px",color:e,userSelect:"none",fontWeight:"context"===a.type||"empty"===a.type?400:700,flexShrink:0},children:d}),(0,ae.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===a.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:a.text||"\xa0"})]})}function qC({text:a}){let b=a.split(/\r?\n/);return(0,ae.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:b.map((a,b)=>{let c=a.startsWith("@@")?"hunk":a.startsWith("+")&&!a.startsWith("+++")?"added":a.startsWith("-")&&!a.startsWith("---")?"removed":"context";return(0,ae.jsxs)("div",{style:{display:"flex",background:"added"===c?"rgba(34,197,94,0.12)":"removed"===c?"rgba(248,113,113,0.13)":"hunk"===c?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===c?"3px solid #22c55e":"removed"===c?"3px solid #f87171":"hunk"===c?"3px solid var(--accent)":"3px solid transparent"},children:[(0,ae.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:b+1}),(0,ae.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===c?"#22c55e":"removed"===c?"#f87171":"hunk"===c?"var(--accent)":"var(--text)"},children:a||"\xa0"})]},b)})})}function qD({text:a,isEmpty:b,isError:c}){let{t:d}=(0,ap.s)();return(0,ae.jsx)("div",{style:{borderTop:`1px solid ${c?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:c?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:(0,ae.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:c?"#f87171":b?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:b?"italic":"normal",opacity:b?.6:1},children:b?d("i18n.noOutput"):a})})}function qE({message:a}){let{t:b}=(0,ap.s)(),c=qI(a.content),d=(0,af.useMemo)(()=>{let a,b,d,e,f;return a=[],b=[],d=c.match(qi),e=d?.[1]??"",f=d?.index===void 0?c:c.slice(0,d.index),e.replace(qh,(c,d,e)=>{let f=e.split(/\r?\n/).map(a=>a.trim()).filter(Boolean);return"read-files"===d?a.push(...f):b.push(...f),""}),{body:f.trim(),readFiles:a,modifiedFiles:b}},[c]),e=qq(a.timestamp);return(0,ae.jsx)("div",{style:{marginBottom:16},children:(0,ae.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,ae.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:"compaction"}),e&&(0,ae.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:e})]}),(0,ae.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,ae.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:b("i18n.conversationCompacted")}),(0,ae.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:14,lineHeight:1.5},children:b("i18n.compactionDescription")}),d.body?(0,ae.jsx)(qf,{className:"markdown-compaction-message",children:d.body}):(0,ae.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:b("i18n.noSummary")}),(0,ae.jsx)(qF,{readFiles:d.readFiles,modifiedFiles:d.modifiedFiles})]})]})})}function qF({readFiles:a,modifiedFiles:b}){let{t:c}=(0,ap.s)();if(0===a.length+b.length)return null;let d=[];return a.length>0&&d.push(`${a.length} read`),b.length>0&&d.push(`${b.length} modified`),(0,ae.jsxs)("details",{className:"compaction-file-details",children:[(0,ae.jsx)("summary",{children:c("i18n.fileContext",{details:d.join(", ")})}),b.length>0&&(0,ae.jsx)(qG,{title:c("i18n.modifiedFiles"),files:b}),a.length>0&&(0,ae.jsx)(qG,{title:c("i18n.readFiles"),files:a})]})}function qG({title:a,files:b}){return(0,ae.jsxs)("div",{className:"compaction-file-section",children:[(0,ae.jsx)("div",{className:"compaction-file-title",children:a}),(0,ae.jsx)("ul",{className:"compaction-file-list",children:b.map(a=>(0,ae.jsx)("li",{children:a},a))})]})}function qH({message:a,cwd:b,onOpenFile:c}){var d;let e,{t:f}=(0,ap.s)(),g=!1===a.display,[h,i]=(0,af.useState)(!g),[j,k]=(0,af.useState)(!1),[l,m]=(0,af.useState)(!1),n=qI(a.content),o="string"==typeof(d=a.content)?[]:d.filter(a=>"image"===a.type),p=void 0!==a.details,q=p?function(a){try{return JSON.stringify(a,null,2)}catch{return String(a)}}(a.details):"",r=a.customType||"extension",s=qq(a.timestamp);return(0,ae.jsx)("div",{style:{marginBottom:16},children:(0,ae.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:g?"var(--bg-subtle)":"var(--bg)",opacity:g&&!h?.82:1},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,ae.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:r}),g&&(0,ae.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:f("i18n.hiddenExtensionMessage")}),s&&(0,ae.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:s})]}),h?(0,ae.jsxs)("div",{style:{padding:"6px 9px"},children:[o.length>0&&(0,ae.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!n},children:o.map((a,b)=>{var c;let d=(c=a).source?"base64"===c.source.type?`data:${c.source.media_type};base64,${c.source.data}`:c.source.url??"":c.data?`data:${c.mimeType};base64,${c.data}`:"";return d?(0,ae.jsx)(qg,{src:d,children:(0,ae.jsx)("img",{src:d,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},b):null})}),n?(0,ae.jsx)(qf,{className:"markdown-custom-message",cwd:b,onOpenFile:c,children:n}):(0,ae.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:f("i18n.noMessage")})]}):(0,ae.jsx)("button",{onClick:()=>i(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:n?(e=n.replace(/\s+/g," ").trim())?e.length>140?`${e.slice(0,140)}...`:e:"Show extension message":f("i18n.showExtensionMessage")}),(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[n||q?(0,ae.jsx)("button",{onClick:()=>{pZ(n||q).then(()=>{m(!0),setTimeout(()=>m(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:l?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:f(l?"i18n.copied":"i18n.copy")}):null,(p||g)&&(0,ae.jsx)("button",{onClick:()=>{g?i(a=>!a):k(a=>!a)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:f(g?h?"i18n.collapse":"i18n.expand":j?"i18n.hideDetails":"i18n.showDetails")})]}),p&&(g&&h||!g&&j)&&(0,ae.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:q})]})})}function qI(a){return"string"==typeof a?a:a.filter(a=>"text"===a.type).map(a=>a.text).join("\n")}function qJ({message:a,sessionId:b}){let[c,d]=(0,af.useState)(null),[e,f]=(0,af.useState)(!1),[g,h]=(0,af.useState)(null),i=!a.output&&void 0===a.exitCode&&!a.cancelled,j=a.cancelled||void 0!==a.exitCode&&0!==a.exitCode,k=b&&a.fullOutputPath?`/api/agent/${encodeURIComponent(b)}/bash-output?path=${encodeURIComponent(a.fullOutputPath)}`:null,l=a.truncated&&k&&null===c,m=c??a.output;async function n(){if(k){f(!0),h(null);try{let a=await fetch(k),b=await a.json();b.success?d(b.data?.output??""):h(b.error??"failed")}catch(a){h(String(a))}finally{f(!1)}}}let o=a.excludeFromContext?"bash (local)":"bash",p={type:"toolCall",toolCallId:`bash-${a.timestamp??""}`,toolName:o,input:{command:a.command}},q=i?void 0:{role:"toolResult",toolCallId:p.toolCallId,toolName:o,content:m?[{type:"text",text:m}]:[],isError:j,timestamp:a.timestamp};return(0,ae.jsxs)("div",{style:{margin:"6px 0"},children:[(0,ae.jsx)(qx,{block:p,result:q}),a.truncated&&k&&(0,ae.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[l&&(0,ae.jsx)("button",{onClick:n,disabled:e,style:{background:"none",border:"none",color:"var(--accent)",cursor:e?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:e?"loading…":"view full output"}),(0,ae.jsx)("a",{href:`${k}&download=1`,style:{marginLeft:10*!!l,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:"download full output"}),g&&(0,ae.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",g,")"]})]})]})}function qK(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}let qL=new Map;function qM(a){return{value:a.value,images:a.images.map(a=>({...a})),...a.docs?{docs:a.docs.map(a=>({...a}))}:{}}}function qN(a){return!a.value&&0===a.images.length&&(a.docs?.length??0)===0}function qO(a){let b=qL.get(a);return b?qM(b):null}function qP(a,b){qN(b)?qL.delete(a):qL.set(a,qM(b))}function qQ(a){qL.delete(a)}function qR(a,b){return a.trim()?b.trim()?`${a}
|
|
3
3
|
|
|
4
4
|
${b}`:a:b}function qS(a,b,c,d){let e=[...b??[],...d].filter(qK).slice(0,10).map(({data:a,mimeType:b})=>({data:a,mimeType:b}));return{value:qR(a,c),images:e}}function qT(a,b,c){if(a===b)return c?qM(c):qO(b);let d=qO(a),e=c&&!qN(c)?qM(c):d??(c?qM(c):null),f=qO(b);if(qQ(a),!e)return f;let g=f?qS(f.value,f.images,e.value,e.images):e;return f&&!g.docs&&e.docs&&(g.docs=e.docs),qP(b,g),qM(g)}let qU=/^(text\/|application\/(json|xml|javascript|x-yaml|yaml|toml|sql|graphql|x-sh|svg))/,qV=new Set(["ts","tsx","js","jsx","mjs","cjs","vue","svelte","php","lua","r","dart","py","rb","go","rs","java","kt","swift","c","cpp","h","hpp","cs","html","htm","css","scss","less","styl","json","jsonl","yaml","yml","toml","xml","md","mdx","csv","tsv","sh","bash","zsh","sql","graphql","gql","txt","log","ini","cfg","conf","env","properties","dockerfile","makefile","gitignore","svg","bat","ps1","diff","patch","rst","tex"]);function qW(a){return a>=1048576?`${(a/1048576).toFixed(1)}MB`:a>=1024?`${Math.round(a/1024)}KB`:`${a}B`}async function qX(a,b){if(b.size>0x1900000)throw Error("文件超过 25MB 上限");let c=async c=>{let d=new FormData;return d.append("files",b,c),fetch((0,ai.DP)(`/api/files/${ax(a)}?type=upload&conflict=error`),{method:"POST",body:d})},d=await c(b.name),e=b.name;if(409===d.status){let a=b.name.lastIndexOf(".");e=a>0?`${b.name.slice(0,a)}-${Date.now()}${b.name.slice(a)}`:`${b.name}-${Date.now()}`,d=await c(e)}let f=await d.json().catch(()=>null);if(!d.ok||!f?.uploaded?.includes(e))throw Error(f?.errors?.[0]?.error??f?.error??`上传失败(HTTP ${d.status})`);return`${a.replace(/\/+$/,"")}/${e}`}function qY(a){let b=/(?:^|\s)@"([^"\n]*)$/.exec(a);if(b)return{start:a.length-(b[1].length+2),query:b[1],quoted:!0};let c=/(?:^|\s)@([^\s"]*)$/.exec(a);return c?{start:a.length-(c[1].length+1),query:c[1],quoted:!1}:null}function qZ(a){let b=0;for(let c=0;c<a.length;c++)"/"===a[c]&&b++;return b}function q$(a,b){if(!a)return!0;let c=0;for(let d=0;d<b.length&&c<a.length;d++)b[d]===a[c]&&c++;return c===a.length}function q_(a,b){let c=b?`${a}/`:a;return c.includes(" ")?`@"${c}" `:`@${c} `}function q0(a){return()=>{}}function q1(){return!1}function q2(){return!1}function q3(){return(0,af.useSyncExternalStore)(q0,q1,q2)}let q4=[];function q5(){return`doc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function q6(a){return{fileName:a.fileName,size:a.size,inlineContent:a.inlineContent,serverPath:a.serverPath}}function q7(a){return(a??[]).map(a=>({id:q5(),fileName:a.fileName,size:a.size,inlineContent:a.inlineContent,serverPath:a.serverPath,status:"ready"}))}let q8=["off","read-only","default","full"],q9={off:"none","read-only":"read-only",default:"default",full:"full"},ra=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function rb(a,b){return ra.compare(a.name||a.modelId,b.name||b.modelId)||ra.compare(a.provider,b.provider)||ra.compare(a.modelId,b.modelId)}let rc=["auto","off","minimal","low","medium","high","xhigh","max"],rd={auto:"chat.thinkingUseDefault",off:"chat.thinkingOff",minimal:"chat.thinkingMinimal",low:"chat.thinkingLow",medium:"chat.thinkingMedium",high:"chat.thinkingHigh",xhigh:"chat.thinkingXhigh",max:"chat.thinkingMax"};function re(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${Math.round(a/1e3)}k`:a.toLocaleString()}let rf=[{name:"compact",description:"chat.commandCompact",source:"builtin"},{name:"reload",description:"chat.commandReload",source:"builtin"},{name:"name",description:"chat.commandName",source:"builtin"},{name:"session",description:"chat.commandSession",source:"builtin"},{name:"copy",description:"chat.commandCopy",source:"builtin"}],rg=["builtin","extension","prompt","skill"],rh={builtin:"chat.builtIn",extension:"chat.extensions",prompt:"chat.prompts",skill:"chat.skills"},ri={builtin:0,extension:1,prompt:2,skill:3};function rj(a,b,c){let d=a.name.toLowerCase(),e=rk(a,c).toLowerCase();return d===b?0:d.startsWith(b)?1:d.includes(b)?2:e.includes(b)?3:4}function rk(a,b){return"builtin"===a.source?b(a.description):a.description??""}function rl(a,b){return"skill"===a.source&&!!a.name.startsWith("skill:")&&!0===b[a.name.slice(6)]}function rm(a){return{data:a.data,mimeType:a.mimeType}}function rn(a,b){let c=b.trim();return c?a?`${a}
|
|
5
|
-
${c}`:c:a}function ro(a){return{...a,previewUrl:`data:${a.mimeType};base64,${a.data}`}}function rp(a){return(a??[]).filter(qK).slice(0,10).map(ro)}function rq(a){a.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(a.previewUrl)}function rr({kind:a,text:b}){return(0,ae.jsxs)("div",{title:b,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,ae.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===a?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===a?"var(--accent)":"var(--text-dim)"},children:a}),(0,ae.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]})}function rs({tone:a,title:b,body:c}){let d="error"===a?"239,68,68":"234,179,8";return(0,ae.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:`1px solid rgba(${d},0.3)`,borderRadius:6,background:`rgba(${d},0.07)`,color:`rgb(${d})`,fontSize:11,lineHeight:1.45},children:[(0,ae.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,ae.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,ae.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,ae.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,ae.jsxs)("div",{style:{minWidth:0},children:[(0,ae.jsx)("div",{style:{fontWeight:600},children:b}),(0,ae.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:c})]})]})}function rt({error:a}){return a?(0,ae.jsx)(rs,{tone:"error",title:"Model error",body:a}):null}function ru({warnings:a}){return a&&0!==a.length?(0,ae.jsx)(rs,{tone:"warning",title:a.length>1?"Model scope warnings":"Model scope warning",body:a.join("\n")}):null}let rv=(0,af.forwardRef)(function({onSend:a,onAbort:b,onSteer:c,onFollowUp:d,isStreaming:e,model:f,isAutoModelSelection:g,modelNames:h,modelList:i,modelError:j,modelScopeWarnings:k,onModelChange:l,modelSwitching:m,onCompact:n,onAbortCompaction:o,isCompacting:p,compactError:q,compactResult:r,toolPreset:s,onToolPresetChange:t,thinkingLevel:u,onThinkingLevelChange:v,availableThinkingLevels:w,thinkingLevelMap:x,retryInfo:y,queuedMessages:z,inputHistory:A=[],onRecallQueue:B,slashCommands:C,slashCommandsLoading:D,onLoadSlashCommands:E,onBuiltinCommand:F,soundEnabled:G,onSoundToggle:H,onAudioUnlock:I,onPromptWithStreamingBehavior:J,draftKey:K,cwd:L},M){let N,O,P,Q,R,S,T,U,V,W,X,{t:Y}=(0,ap.s)(),Z=q3(),[$,_]=(0,af.useState)(()=>K?qO(K)?.value??"":""),[aa,ab]=(0,af.useState)(!1),[ac,ad]=(0,af.useState)(null),[ah,ai]=(0,af.useState)(""),[aj,ak]=(0,af.useState)(!1),[al,am]=(0,af.useState)(!1),[an,ao]=(0,af.useState)(!1),[aq,ar]=(0,af.useState)(()=>K?rp(qO(K)?.images):[]),[at,au]=(0,af.useState)(()=>K?q7(qO(K)?.docs):[]),aw=$.trimStart(),ax=at.some(a=>"uploading"===a.status),ay=at.some(a=>"ready"===a.status),az=0===aq.length&&0===at.length&&aw.startsWith("!"),aA=az&&aw.startsWith("!!"),aB=function(){let[a,b]=(0,af.useState)(q4);return a}(),[aC,aD]=(0,af.useState)(null),aE=(0,af.useRef)(null),aF=!ax&&($.trim().length>0||aq.length>0||ay),[aG,aH]=(0,af.useState)(!1),[aI,aJ]=(0,af.useState)(0),[aK,aL]=(0,af.useState)(null),[aM,aN]=(0,af.useState)(null),[aO,aP]=(0,af.useState)(!1),[aQ,aR]=(0,af.useState)(0),[aS,aT]=(0,af.useState)(!1),[aU,aV]=(0,af.useState)(0),[aW,aX]=(0,af.useState)(null),[aY,aZ]=(0,af.useState)(!1),[a$,a_]=(0,af.useState)(null),[a0,a1]=(0,af.useState)(null),a2=L&&a0?.cwd===L?a0.values:{},a3=(0,af.useRef)(null),a4=(0,af.useRef)(null),a5=(0,af.useRef)(null),a6=(0,af.useRef)(null),a7=(0,af.useRef)(null),a8=(0,af.useRef)(null),a9=(0,af.useRef)(null),ba=(0,af.useRef)(null),bb=(0,af.useRef)(!1),bc=(0,af.useRef)(0),bd=(0,af.useRef)(!1),be=(0,af.useRef)(null),bf=(0,af.useRef)([]),bg=(0,af.useRef)([]),bh=(0,af.useRef)([]),bi=(0,af.useRef)(null),bj=(0,af.useRef)(null),bk=(0,af.useRef)(K),bl=(0,af.useRef)($),bm=(0,af.useRef)(aq),bn=(0,af.useRef)(at),bo=(0,af.useRef)(0),bp=(0,af.useRef)(0);bl.current=$,bm.current=aq,bn.current=at,(0,af.useImperativeHandle)(M,()=>({insertIfEmpty(a){let b=a3.current;(b?b.value:$).trim()||(bl.current=a,_(a),aN(null),requestAnimationFrame(()=>{b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)}))},replaceMessage(a){var b,c,d;let e=a3.current;if(b=e?e.value:$,c=bm.current.length,d=bo.current,b.trim()||0!==c||0!==d)return;let f="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),g=rp("string"==typeof a.content?[]:a.content.flatMap(a=>{if("image"!==a.type)return[];let b=a.source?.type==="base64"?a.source.data:a.data,c=a.source?.type==="base64"?a.source.media_type:a.mimeType;if("string"!=typeof b||"string"!=typeof c)return[];let d={data:b,mimeType:c};return qK(d)?[d]:[]}));bl.current=f,bm.current=g,_(f),aE.current=null,aD(null),aN(null),aT(!1),ar(a=>(a.forEach(rq),g)),requestAnimationFrame(()=>{e&&(e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},prependText(a){if(!a.trim())return;let b=a3.current,c=[a,b?b.value:$].filter(a=>a.trim()).join("\n\n");bl.current=c,_(c),aN(null),requestAnimationFrame(()=>{b&&(b.focus(),b.setSelectionRange(c.length,c.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)})},rekeyDraft(a,b){if(a===b)return;if(bk.current!==a)return void qT(a,b);let c={value:bl.current,images:bm.current.map(rm),docs:bn.current.filter(a=>"ready"===a.status).map(q6)},d=qT(a,b,c)??{value:"",images:[]},e=d.value===c.value&&d.images.length===c.images.length&&d.images.every((a,b)=>a.data===c.images[b]?.data&&a.mimeType===c.images[b]?.mimeType)&&(d.docs?.length??0)===c.docs.length&&(d.docs??[]).every((a,b)=>a.fileName===c.docs[b]?.fileName&&a.inlineContent===c.docs[b]?.inlineContent&&a.serverPath===c.docs[b]?.serverPath);if(bk.current=b,e)return;let f=rp(d.images),g=q7(d.docs);bl.current=d.value,bm.current=f,bn.current=g,_(d.value),ar(a=>(a.forEach(rq),f)),au(g),aN(null),aT(!1)},restoreSubmission(a,b,c){if(!a.trim()&&!b?.length)return;aE.current=null,aD(null);let d=bk.current,e=c??d,f=e===d,g=!f&&e?qO(e):null,h=qS(a,b,f?bl.current:g?.value??"",f?bm.current.map(rm):g?.images??[]);if(e&&qP(e,h),!f)return;let i=b?.length?[...rp(b).slice(0,Math.max(0,10-bm.current.length)),...bm.current].slice(0,10):bm.current;bl.current=h.value,bm.current=i,_(b=>{let c=qR(a,b);return bl.current=c,c}),aN(null),aT(!1),b?.length&&ar(a=>{let c=Math.max(0,10-a.length),d=rp(b).slice(0,c),e=d.length>0?[...d,...a]:a;return bm.current=e,e}),requestAnimationFrame(()=>{let a=a3.current;a&&(a.focus(),a.setSelectionRange(a.value.length,a.value.length),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},insertText(a){let b=a3.current;if(!b)return void _(b=>b+(b?" ":"")+a);let c=b.selectionStart??b.value.length,d=b.selectionEnd??b.value.length,e=b.value.slice(0,c),f=b.value.slice(d),g=e.length>0&&!e.endsWith(" ")?" ":"",h=e+g+a+f;bl.current=h,_(h),aN(null),requestAnimationFrame(()=>{if(!b)return;let d=c+g.length+a.length;b.setSelectionRange(d,d),b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`})},addImages(a){let b=a.filter(a=>a.type.startsWith("image/")),c=a.filter(a=>!a.type.startsWith("image/"));b.length&&bq(b),c.length&&bt(c)}}));let bq=(0,af.useCallback)(async a=>{let b=Math.max(0,10-bm.current.length-bo.current),c=a.filter(a=>a.type.startsWith("image/")&&a.size<=0xa00000).slice(0,b);if(c.length){bo.current+=c.length;try{let a=await Promise.all(c.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=()=>{let c=d.result.split(",")[1];b({data:c,mimeType:a.type,previewUrl:URL.createObjectURL(a)})},d.onerror=c,d.readAsDataURL(a)})));ar(b=>{let c=a.slice(0,Math.max(0,10-b.length));a.slice(c.length).forEach(rq);let d=[...b,...c];return bm.current=d,d})}finally{bo.current-=c.length}}},[]),br=(0,af.useCallback)(a=>{ar(b=>{let c=[...b],[d]=c.splice(a,1);return d&&rq(d),bm.current=c,c})},[]),bs=(0,af.useCallback)((a,b)=>{au(c=>{let d=c.map(c=>c.id===a?{...c,...b}:c);return bn.current=d,d})},[]),bt=(0,af.useCallback)(async a=>{let b=Math.max(0,10-bn.current.length-bp.current),c=a.filter(a=>a.size<=0x1900000).slice(0,b);if(!c.length)return;bp.current+=c.length;let d=c.map(a=>({id:q5(),fileName:a.name,size:a.size,inlineContent:null,serverPath:null,status:"uploading"}));au(a=>{let b=[...a,...d];return bn.current=b,b});try{await Promise.all(d.map(async(a,b)=>{let d=c[b];try{if(function(a){if(a.type.startsWith("image/"))return!1;if(qU.test(a.type))return!0;let b=a.name.toLowerCase(),c=b.includes(".")?b.split(".").pop()??"":b;return qV.has(c)}(d)&&d.size<=524288){let b=await new Promise((a,b)=>{let c=new FileReader;c.onload=()=>a(c.result),c.onerror=()=>b(Error(`读取文件失败: ${d.name}`)),c.readAsText(d)});bs(a.id,{inlineContent:b,status:"ready"});return}if(!L)return void bs(a.id,{status:"error",error:"当前会话没有工作目录,无法上传"});let b=await qX(L,d);bs(a.id,{serverPath:b,status:"ready"})}catch(b){bs(a.id,{status:"error",error:b instanceof Error?b.message:String(b)})}}))}finally{bp.current-=c.length}},[L,bs]),bu=(0,af.useCallback)(a=>{au(b=>{let c=b.filter(b=>b.id!==a);return bn.current=c,c})},[]),bv=(0,af.useCallback)(()=>{bm.current=[],ar(a=>(a.forEach(rq),[]))},[]),bw=(0,af.useCallback)(()=>{bn.current=[],au([])},[]),bx=(0,af.useCallback)(()=>{bl.current="",_(""),aE.current=null,aD(null),aN(null),aT(!1),K&&qQ(K),bk.current&&bk.current!==K&&qQ(bk.current),bv(),bw(),a3.current&&(a3.current.style.height="auto")},[bv,bw,K]);(0,af.useEffect)(()=>{K&&bk.current===K&&qP(K,{value:$,images:aq.map(rm),docs:at.filter(a=>"ready"===a.status).map(q6)})},[aq,at,K,$]),(0,af.useEffect)(()=>{let a=bk.current;if(a===K)return;a&&qP(a,{value:bl.current,images:bm.current.map(rm)});let b=K?qO(K):null;bk.current=K;let c=b?.value??"",d=rp(b?.images),e=q7(b?.docs);bl.current=c,bm.current=d,bn.current=e,_(c),aE.current=null,aD(null),aN(null),aT(!1),ar(a=>(a.forEach(rq),d)),au(e)},[K]),(0,af.useEffect)(()=>{let a=a3.current;a&&(a.style.height="auto",$&&(a.style.height=`${Math.min(a.scrollHeight,200)}px`))},[$]),(0,af.useEffect)(()=>()=>{bm.current.forEach(rq)},[]);let by=(0,af.useCallback)(async()=>{let b=$.trim(),c=at.filter(a=>"ready"===a.status);if(ax||!b&&!aq.length&&!c.length||e)return;I?.();let d=c.length?c.map(a=>{if(null!=a.inlineContent){let b=a.inlineContent.length>0?a.inlineContent:"(空文件)";return[`[附件:${a.fileName}(${qW(a.size)}),内容开始]`,b,`[附件:${a.fileName} 内容结束]`].join("\n")}return`[附件:${a.fileName}(${qW(a.size)}),已保存到工作区 ${a.serverPath},请先读取该文件的内容再回答]`}).join("\n\n"):"",f=aE.current,g=f?rn(f.prompt,b):b,h=d?g?`${g}
|
|
5
|
+
${c}`:c:a}function ro(a){return{...a,previewUrl:`data:${a.mimeType};base64,${a.data}`}}function rp(a){return(a??[]).filter(qK).slice(0,10).map(ro)}function rq(a){a.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(a.previewUrl)}function rr({kind:a,text:b}){return(0,ae.jsxs)("div",{title:b,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,ae.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===a?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===a?"var(--accent)":"var(--text-dim)"},children:a}),(0,ae.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]})}function rs({tone:a,title:b,body:c}){let d="error"===a?"239,68,68":"234,179,8";return(0,ae.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:`1px solid rgba(${d},0.3)`,borderRadius:6,background:`rgba(${d},0.07)`,color:`rgb(${d})`,fontSize:11,lineHeight:1.45},children:[(0,ae.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,ae.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,ae.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,ae.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,ae.jsxs)("div",{style:{minWidth:0},children:[(0,ae.jsx)("div",{style:{fontWeight:600},children:b}),(0,ae.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:c})]})]})}function rt({error:a}){return a?(0,ae.jsx)(rs,{tone:"error",title:"Model error",body:a}):null}function ru({warnings:a}){return a&&0!==a.length?(0,ae.jsx)(rs,{tone:"warning",title:a.length>1?"Model scope warnings":"Model scope warning",body:a.join("\n")}):null}let rv=(0,af.forwardRef)(function({onSend:a,onAbort:b,onSteer:c,onFollowUp:d,isStreaming:e,model:f,isAutoModelSelection:g,modelNames:h,modelList:i,modelError:j,modelScopeWarnings:k,onModelChange:l,modelSwitching:m,onCompact:n,onAbortCompaction:o,isCompacting:p,compactError:q,compactResult:r,toolPreset:s,onToolPresetChange:t,thinkingLevel:u,onThinkingLevelChange:v,availableThinkingLevels:w,thinkingLevelMap:x,retryInfo:y,queuedMessages:z,inputHistory:A=[],onRecallQueue:B,slashCommands:C,slashCommandsLoading:D,onLoadSlashCommands:E,onBuiltinCommand:F,soundEnabled:G,onSoundToggle:H,onAudioUnlock:I,onPromptWithStreamingBehavior:J,draftKey:K,cwd:L},M){let N,O,P,Q,R,S,T,U,V,W,X,{t:Y}=(0,ap.s)(),Z=q3(),[$,_]=(0,af.useState)(()=>K?qO(K)?.value??"":""),[aa,ab]=(0,af.useState)(!1),[ac,ad]=(0,af.useState)(null),[ah,ai]=(0,af.useState)(""),[aj,ak]=(0,af.useState)(!1),[al,am]=(0,af.useState)(!1),[an,ao]=(0,af.useState)(!1),[aq,ar]=(0,af.useState)(()=>K?rp(qO(K)?.images):[]),[at,au]=(0,af.useState)(()=>K?q7(qO(K)?.docs):[]),aw=$.trimStart(),ax=at.some(a=>"uploading"===a.status),ay=at.some(a=>"ready"===a.status),az=0===aq.length&&0===at.length&&aw.startsWith("!"),aA=az&&aw.startsWith("!!"),aB=function(){let[a,b]=(0,af.useState)(q4);return a}(),[aC,aD]=(0,af.useState)(null),aE=(0,af.useRef)(null),aF=!ax&&($.trim().length>0||aq.length>0||ay),[aG,aH]=(0,af.useState)(!1),[aI,aJ]=(0,af.useState)(0),[aK,aL]=(0,af.useState)(null),[aM,aN]=(0,af.useState)(null),[aO,aP]=(0,af.useState)(!1),[aQ,aR]=(0,af.useState)(0),[aS,aT]=(0,af.useState)(!1),[aU,aV]=(0,af.useState)(0),[aW,aX]=(0,af.useState)(null),[aY,aZ]=(0,af.useState)(!1),[a$,a_]=(0,af.useState)(null),[a0,a1]=(0,af.useState)(null),a2=L&&a0?.cwd===L?a0.values:{},a3=(0,af.useRef)(null),a4=(0,af.useRef)(null),a5=(0,af.useRef)(null),a6=(0,af.useRef)(null),a7=(0,af.useRef)(null),a8=(0,af.useRef)(null),a9=(0,af.useRef)(null),ba=(0,af.useRef)(null),bb=(0,af.useRef)(!1),bc=(0,af.useRef)(0),bd=(0,af.useRef)(!1),be=(0,af.useRef)(null),bf=(0,af.useRef)([]),bg=(0,af.useRef)([]),bh=(0,af.useRef)([]),bi=(0,af.useRef)(null),bj=(0,af.useRef)(null),bk=(0,af.useRef)(K),bl=(0,af.useRef)($),bm=(0,af.useRef)(aq),bn=(0,af.useRef)(at),bo=(0,af.useRef)(0),bp=(0,af.useRef)(0);bl.current=$,bm.current=aq,bn.current=at,(0,af.useImperativeHandle)(M,()=>({insertIfEmpty(a){let b=a3.current;(b?b.value:$).trim()||(bl.current=a,_(a),aN(null),requestAnimationFrame(()=>{b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)}))},replaceMessage(a){var b,c,d;let e=a3.current;if(b=e?e.value:$,c=bm.current.length,d=bo.current,b.trim()||0!==c||0!==d)return;let f="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),g=rp("string"==typeof a.content?[]:a.content.flatMap(a=>{if("image"!==a.type)return[];let b=a.source?.type==="base64"?a.source.data:a.data,c=a.source?.type==="base64"?a.source.media_type:a.mimeType;if("string"!=typeof b||"string"!=typeof c)return[];let d={data:b,mimeType:c};return qK(d)?[d]:[]}));bl.current=f,bm.current=g,_(f),aE.current=null,aD(null),aN(null),aT(!1),ar(a=>(a.forEach(rq),g)),requestAnimationFrame(()=>{e&&(e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},prependText(a){if(!a.trim())return;let b=a3.current,c=[a,b?b.value:$].filter(a=>a.trim()).join("\n\n");bl.current=c,_(c),aN(null),requestAnimationFrame(()=>{b&&(b.focus(),b.setSelectionRange(c.length,c.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)})},rekeyDraft(a,b){if(a===b)return;if(bk.current!==a)return void qT(a,b);let c={value:bl.current,images:bm.current.map(rm),docs:bn.current.filter(a=>"ready"===a.status).map(q6)},d=qT(a,b,c)??{value:"",images:[]},e=d.value===c.value&&d.images.length===c.images.length&&d.images.every((a,b)=>a.data===c.images[b]?.data&&a.mimeType===c.images[b]?.mimeType)&&(d.docs?.length??0)===c.docs.length&&(d.docs??[]).every((a,b)=>a.fileName===c.docs[b]?.fileName&&a.inlineContent===c.docs[b]?.inlineContent&&a.serverPath===c.docs[b]?.serverPath);if(bk.current=b,e)return;let f=rp(d.images),g=q7(d.docs);bl.current=d.value,bm.current=f,bn.current=g,_(d.value),ar(a=>(a.forEach(rq),f)),au(g),aN(null),aT(!1)},restoreSubmission(a,b,c){if(!a.trim()&&!b?.length)return;aE.current=null,aD(null);let d=bk.current,e=c??d,f=e===d,g=!f&&e?qO(e):null,h=qS(a,b,f?bl.current:g?.value??"",f?bm.current.map(rm):g?.images??[]);if(e&&qP(e,h),!f)return;let i=b?.length?[...rp(b).slice(0,Math.max(0,10-bm.current.length)),...bm.current].slice(0,10):bm.current;bl.current=h.value,bm.current=i,_(b=>{let c=qR(a,b);return bl.current=c,c}),aN(null),aT(!1),b?.length&&ar(a=>{let c=Math.max(0,10-a.length),d=rp(b).slice(0,c),e=d.length>0?[...d,...a]:a;return bm.current=e,e}),requestAnimationFrame(()=>{let a=a3.current;a&&(a.focus(),a.setSelectionRange(a.value.length,a.value.length),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},insertText(a){let b=a3.current;if(!b)return void _(b=>b+(b?" ":"")+a);let c=b.selectionStart??b.value.length,d=b.selectionEnd??b.value.length,e=b.value.slice(0,c),f=b.value.slice(d),g=e.length>0&&!e.endsWith(" ")?" ":"",h=e+g+a+f;bl.current=h,_(h),aN(null),requestAnimationFrame(()=>{if(!b)return;let d=c+g.length+a.length;b.setSelectionRange(d,d),b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`})},addImages(a){let b=a.filter(a=>a.type.startsWith("image/")),c=a.filter(a=>!a.type.startsWith("image/"));b.length&&bq(b),c.length&&bt(c)}}));let bq=(0,af.useCallback)(async a=>{let b=Math.max(0,10-bm.current.length-bo.current),c=a.filter(a=>a.type.startsWith("image/")&&a.size<=0xa00000).slice(0,b);if(c.length){bo.current+=c.length;try{let a=await Promise.all(c.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=()=>{let c=d.result.split(",")[1];b({data:c,mimeType:a.type,previewUrl:URL.createObjectURL(a)})},d.onerror=c,d.readAsDataURL(a)})));ar(b=>{let c=a.slice(0,Math.max(0,10-b.length));a.slice(c.length).forEach(rq);let d=[...b,...c];return bm.current=d,d})}finally{bo.current-=c.length}}},[]),br=(0,af.useCallback)(a=>{ar(b=>{let c=[...b],[d]=c.splice(a,1);return d&&rq(d),bm.current=c,c})},[]),bs=(0,af.useCallback)((a,b)=>{au(c=>{let d=c.map(c=>c.id===a?{...c,...b}:c);return bn.current=d,d})},[]),bt=(0,af.useCallback)(async a=>{let b=Math.max(0,10-bn.current.length-bp.current),c=a.filter(a=>a.size<=0x1900000).slice(0,b);if(!c.length)return;bp.current+=c.length;let d=c.map(a=>({id:q5(),fileName:a.name,size:a.size,inlineContent:null,serverPath:null,status:"uploading"}));au(a=>{let b=[...a,...d];return bn.current=b,b});try{await Promise.all(d.map(async(a,b)=>{let d=c[b];try{if(function(a){if(a.type.startsWith("image/"))return!1;if(qU.test(a.type))return!0;let b=a.name.toLowerCase(),c=b.includes(".")?b.split(".").pop()??"":b;return qV.has(c)}(d)&&d.size<=524288){let b=await new Promise((a,b)=>{let c=new FileReader;c.onload=()=>a(c.result),c.onerror=()=>b(Error(`读取文件失败: ${d.name}`)),c.readAsText(d)}),c=null;if(L)try{c=await qX(L,d)}catch{}bs(a.id,{inlineContent:b,serverPath:c,status:"ready"});return}if(!L)return void bs(a.id,{status:"error",error:"当前会话没有工作目录,无法上传"});let b=await qX(L,d);bs(a.id,{serverPath:b,status:"ready"})}catch(b){bs(a.id,{status:"error",error:b instanceof Error?b.message:String(b)})}}))}finally{bp.current-=c.length}},[L,bs]),bu=(0,af.useCallback)(a=>{au(b=>{let c=b.filter(b=>b.id!==a);return bn.current=c,c})},[]),bv=(0,af.useCallback)(()=>{bm.current=[],ar(a=>(a.forEach(rq),[]))},[]),bw=(0,af.useCallback)(()=>{bn.current=[],au([])},[]),bx=(0,af.useCallback)(()=>{bl.current="",_(""),aE.current=null,aD(null),aN(null),aT(!1),K&&qQ(K),bk.current&&bk.current!==K&&qQ(bk.current),bv(),bw(),a3.current&&(a3.current.style.height="auto")},[bv,bw,K]);(0,af.useEffect)(()=>{K&&bk.current===K&&qP(K,{value:$,images:aq.map(rm),docs:at.filter(a=>"ready"===a.status).map(q6)})},[aq,at,K,$]),(0,af.useEffect)(()=>{let a=bk.current;if(a===K)return;a&&qP(a,{value:bl.current,images:bm.current.map(rm)});let b=K?qO(K):null;bk.current=K;let c=b?.value??"",d=rp(b?.images),e=q7(b?.docs);bl.current=c,bm.current=d,bn.current=e,_(c),aE.current=null,aD(null),aN(null),aT(!1),ar(a=>(a.forEach(rq),d)),au(e)},[K]),(0,af.useEffect)(()=>{let a=a3.current;a&&(a.style.height="auto",$&&(a.style.height=`${Math.min(a.scrollHeight,200)}px`))},[$]),(0,af.useEffect)(()=>()=>{bm.current.forEach(rq)},[]);let by=(0,af.useCallback)(async()=>{let b=$.trim(),c=at.filter(a=>"ready"===a.status);if(ax||!b&&!aq.length&&!c.length||e)return;I?.();let d=c.length?c.map(a=>{if(null!=a.inlineContent){let b=a.inlineContent.length>0?a.inlineContent:"(空文件)",c=[`[附件:${a.fileName}(${qW(a.size)}),内容开始]`,b,`[附件:${a.fileName} 内容结束]`];return a.serverPath&&c.push(`[附件:${a.fileName} 原件已保存到工作区 ${a.serverPath}]`),c.join("\n")}return`[附件:${a.fileName}(${qW(a.size)}),已保存到工作区 ${a.serverPath},请先读取该文件的内容再回答]`}).join("\n\n"):"",f=aE.current,g=f?rn(f.prompt,b):b,h=d?g?`${g}
|
|
6
6
|
|
|
7
7
|
${d}`:d:g;if(!aq.length&&!c.length&&h.startsWith("/")&&F){let a=await F(h);if(a.handled){a.error||bx();return}}bx(),a(h,aq.length?aq:void 0)},[$,aq,at,ax,e,F,a,bx,I]),bz=(0,af.useCallback)(b=>{if(b.sendDirect){if(e)return;I?.(),bx(),a(b.prompt);return}aE.current={label:b.label,prompt:b.prompt},aD({label:b.label,prompt:b.prompt}),aN(null),requestAnimationFrame(()=>{let a=a3.current;a&&(a.focus(),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},[e,a,bx,I]),bA=(0,af.useCallback)(()=>{aE.current=null,aD(null)},[]),bB=$.startsWith("/")&&!/\s/.test($.slice(1))?$.slice(1).toLowerCase():null,bC=null===bB?[]:[...e?[]:rf,...C??[]].filter(a=>{let b=a.name.toLowerCase(),c=rk(a,Y).toLowerCase();return b.includes(bB)||c.includes(bB)}).sort((a,b)=>{let c=rj(a,bB,Y)-rj(b,bB,Y);return 0!==c?c:ri[a.source]-ri[b.source]||ra.compare(a.name,b.name)}),{commands:bD,groups:bE}=(N=0,{commands:(O=rg.map(a=>{let b=bC.filter(b=>b.source===a),c="skill"===a?[...b.filter(a=>!rl(a,a2)),...b.filter(a=>rl(a,a2))]:b;return{source:a,items:c.map(a=>({command:a,index:N++}))}}).filter(a=>a.items.length>0)).flatMap(a=>a.items.map(({command:a})=>a)),groups:O}),bF=1===bC.length?Y(bB?"chat.match":"chat.command"):Y(bB?"chat.matches":"chat.commands",{count:bC.length}),bG=(0,af.useCallback)((a,b)=>{if(!L)return void aN(null);let c=b??a.length;aN(qY(a.slice(0,c)))},[L]),bH=aM?.query??null,bI=ag().useMemo(()=>null!==bH&&aW&&aW.cwd===L?function(a,b,c=20){let d=b.toLowerCase();if(!d)return a.slice(0,c);let e=[];for(let b of a){let a=function(a,b){let c=a.path.toLowerCase(),d=0;if(b.includes("/"))c===b?d=100:c.startsWith(b)?d=80:c.includes(b)?d=50:q$(b,c)&&(d=10);else{let a=c.lastIndexOf("/"),e=-1===a?c:c.slice(a+1);e===b?d=100:e.startsWith(b)?d=80:e.includes(b)?d=50:c.includes(b)?d=30:q$(b,c)&&(d=10)}return a.isDir&&d>0&&(d+=10),d}(b,d);a>0&&e.push({entry:b,score:a})}return e.sort((a,b)=>b.score-a.score||qZ(a.entry.path)-qZ(b.entry.path)||a.entry.path.localeCompare(b.entry.path)),e.slice(0,c).map(a=>a.entry)}(aW.entries,bH):[],[bH,aW,L]),bJ=!!(bH&&aW?.truncated&&aW.cwd===L);(0,af.useEffect)(()=>{if(!bJ||!L||!bH)return;let a=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(L)}&q=${encodeURIComponent(bH)}`).then(a=>{if(!a.ok)throw Error(`file search failed: ${a.status}`);return a.json()}).then(a=>a_({cwd:L,query:bH,matches:a.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(a)},[bJ,bH,L]);let bK=bJ&&null!==a$&&a$.cwd===L&&a$.query===bH,bL=bK?a$.matches:bI,bM=null===aM?null:`${aM.start}:${+!!aM.quoted}:${aM.query}`;(0,af.useEffect)(()=>{if(null===bM){aP(!1),aR(0);return}aP(!0),aR(0)},[bM]);let bN=null!==aM;(0,af.useEffect)(()=>{if(!bN||!L)return;let a=bi.current;a&&a.cwd===L&&Date.now()-a.fetchedAt<1e4||bj.current===L||(bj.current=L,aZ(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(L)}`).then(a=>{if(!a.ok)throw Error(`file index failed: ${a.status}`);return a.json()}).then(a=>{aX({cwd:L,entries:function(a){let b=new Set;for(let c of a){let a=c.indexOf("/");for(;-1!==a;)b.add(c.slice(0,a)),a=c.indexOf("/",a+1)}let c=[];for(let a of b)c.push({path:a,isDir:!0});for(let b of a)b&&c.push({path:b,isDir:!1});return c.sort((a,b)=>qZ(a.path)-qZ(b.path)||a.path.localeCompare(b.path)),c}(a.files??[]),truncated:!!a.truncated}),bi.current={cwd:L,fetchedAt:Date.now()}}).catch(()=>{bi.current=null}).finally(()=>{bj.current=null,aZ(!1)}))},[bN,L]);let bO=(0,af.useCallback)(a=>{if(!aM)return;let b=a3.current,c=b?.selectionStart??$.length,d=$.slice(0,aM.start),e=$.slice(c);aM.quoted&&e.startsWith('"')&&(e=e.slice(1));let f=function(a,b,c=!1){let d=b?`${a}/`:a,e=c||d.includes(" ");if(b){let a=e?`@"${d}"`:`@${d}`;return{text:a,cursorOffset:e?a.length-1:a.length}}let f=e?`@"${d}" `:`@${d} `;return{text:f,cursorOffset:f.length}}(a.path,a.isDir,aM.quoted),g=d+f.text+e,h=d.length+f.cursorOffset;_(g),aN(qY(g.slice(0,h))),requestAnimationFrame(()=>{let a=a3.current;a&&(a.focus(),a.setSelectionRange(h,h),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},[aM,$]);(0,af.useEffect)(()=>{aQ>=bL.length&&aR(Math.max(0,bL.length-1))},[bL.length,aQ]),(0,af.useEffect)(()=>{bg.current.length=bL.length},[bL.length]),(0,af.useEffect)(()=>{aO&&bg.current[aQ]?.scrollIntoView({block:"nearest",inline:"nearest"})},[aQ,aO]),(0,af.useEffect)(()=>{aU>=A.length&&aV(Math.max(0,A.length-1))},[A.length,aU]),(0,af.useEffect)(()=>{bh.current.length=A.length},[A.length]),(0,af.useEffect)(()=>{aS&&bh.current[aU]?.scrollIntoView({block:"nearest",inline:"nearest"})},[aU,aS]);let bP=(0,af.useCallback)(a=>{_(a),aT(!1),aV(0),aN(null),requestAnimationFrame(()=>{let b=a3.current;b&&(b.focus(),b.setSelectionRange(a.length,a.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)})},[]),bQ=(0,af.useCallback)(a=>{let b=`/${a.name} `;_(b),aH(!1),aJ(0),requestAnimationFrame(()=>{let a=a3.current;a&&(a.focus(),a.setSelectionRange(b.length,b.length),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},[]),bR=(0,af.useCallback)(a=>{let b=$.trim();if(!b&&!aq.length)return;I?.();let e=aE.current,f=e?rn(e.prompt,b):b;if(f.startsWith("/")&&J){bx(),J(f,"steer"===a?"steer":"followUp",aq.length?aq:void 0);return}bx(),"steer"===a&&c?c(f,aq.length?aq:void 0):"followup"===a&&d&&d(f,aq.length?aq:void 0)},[$,aq,J,c,d,bx,I]),bS=(0,af.useCallback)(a=>{let b=bD.length-1;if(b<0)return 0;if("left"===a)return Math.max(0,aI-1);if("right"===a)return Math.min(b,aI+1);let c=bf.current[aI];if(!c)return"down"===a?Math.min(b,aI+1):Math.max(0,aI-1);let d=c.getBoundingClientRect(),e=d.left+d.width/2,f=d.top+d.height/2,g=-1,h=1/0;for(let c=0;c<=b;c+=1){if(c===aI)continue;let b=bf.current[c];if(!b)continue;let d=b.getBoundingClientRect(),i=d.top+d.height/2-f;if("down"===a?i<=4:i>=-4)continue;let j=1e3*Math.abs(i)+Math.abs(d.left+d.width/2-e);j<h&&(g=c,h=j)}return g>=0?g:"down"===a?Math.min(b,aI+1):Math.max(0,aI-1)},[bD.length,aI]),bT=(0,af.useCallback)(a=>{let f=a.nativeEvent,g="Enter"===a.key&&!a.shiftKey&&(!Z||a.ctrlKey||a.metaKey),h=Date.now()-bc.current<100,i=bb.current||f.isComposing||229===f.keyCode;if(g&&(i||h)){h&&a.preventDefault();return}if(aS&&!i){if("ArrowDown"===a.key){a.preventDefault(),aV(a=>Math.min(Math.max(0,A.length-1),a+1));return}if("ArrowUp"===a.key){a.preventDefault(),aV(a=>Math.max(0,a-1));return}if("Escape"===a.key){a.preventDefault(),aT(!1);return}if(("Tab"===a.key||g)&&A[aU]){a.preventDefault(),bP(A[aU]);return}}if(aG&&null!==bB){if("ArrowDown"===a.key){a.preventDefault(),aJ(bS("down"));return}if("ArrowUp"===a.key){a.preventDefault(),aJ(bS("up"));return}if("ArrowRight"===a.key){a.preventDefault(),aJ(bS("right"));return}if("ArrowLeft"===a.key){a.preventDefault(),aJ(bS("left"));return}if("Escape"===a.key){a.preventDefault(),aH(!1);return}if(("Tab"===a.key||g)&&bD[aI]){a.preventDefault(),bQ(bD[aI]);return}}if(aO&&null!==aM&&!i){if("ArrowDown"===a.key){a.preventDefault(),aR(a=>Math.min(Math.max(0,bL.length-1),a+1));return}if("ArrowUp"===a.key){a.preventDefault(),aR(a=>Math.max(0,a-1));return}if("Escape"===a.key){a.preventDefault(),aP(!1);return}if(("Tab"===a.key||g)&&bL[aQ]){a.preventDefault(),bO(bL[aQ]);return}}if("ArrowUp"===a.key&&!i&&!e&&A.length>0&&0===$.trim().length){a.preventDefault(),aH(!1),aP(!1),aV(A.length-1),aT(!0);return}if("Escape"===a.key&&!i&&e&&b){a.preventDefault(),b();return}g&&(a.preventDefault(),e&&(c||d)?bR(c?"steer":"followup"):by())},[Z,e,c,d,b,aG,bB,bD,aI,bQ,bR,by,bS,aO,aM,bL,aQ,bO,aS,A,aU,bP,$]),bU=(0,af.useCallback)(()=>{let a=a3.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)},[]),bV=(0,af.useCallback)(a=>{let b=Array.from(a.clipboardData?.items??[]).filter(a=>a.type.startsWith("image/"));b.length&&(a.preventDefault(),bq(b.map(a=>a.getAsFile()).filter(a=>null!==a)))},[bq]);(0,af.useEffect)(()=>{if(null===bB){aH(!1),aJ(0),bd.current=!1;return}aH(!0),aJ(0),!bd.current&&E&&(bd.current=!0,Promise.resolve(E()).catch(()=>{bd.current=!1}))},[bB,E]),(0,af.useEffect)(()=>{if(!aG||!L)return;let a=!1;return a1({cwd:L,values:{}}),fetch(`/api/skills?cwd=${encodeURIComponent(L)}`).then(a=>{if(!a.ok)throw Error(`skills fetch failed: ${a.status}`);return a.json()}).then(b=>{if(a)return;let c={};for(let a of b.skills??[])c[a.name]=a.disableModelInvocation;a1({cwd:L,values:c})}).catch(()=>{a||a1({cwd:L,values:{}})}),()=>{a=!0}},[aG,L]),(0,af.useEffect)(()=>{aI>=bD.length&&aJ(Math.max(0,bD.length-1))},[bD.length,aI]),(0,af.useEffect)(()=>{bf.current.length=bD.length},[bD.length]),(0,af.useEffect)(()=>{aG&&bf.current[aI]?.scrollIntoView({block:"nearest",inline:"nearest"})},[aI,aG]),(0,af.useLayoutEffect)(()=>{if(!aG||null===bB)return void aL(null);let a=be.current;if(!a)return;let b=null,c=()=>{b=null;let c=function(a,b,c=8){return Math.max(0,Math.floor(a-b-c))}(a.getBoundingClientRect().bottom,function(a){let b=window.visualViewport?.offsetTop??0;for(let c=a.parentElement;c;c=c.parentElement){let a=window.getComputedStyle(c).overflowY;("auto"===a||"scroll"===a||"hidden"===a||"clip"===a)&&(b=Math.max(b,c.getBoundingClientRect().top+c.clientTop))}return b}(a));aL(a=>a===c?a:c)},d=()=>{null!==b&&cancelAnimationFrame(b),b=requestAnimationFrame(c)};c();let e="u">typeof ResizeObserver&&a.parentElement?new ResizeObserver(d):null;a.parentElement&&e?.observe(a.parentElement);let f=window.visualViewport;return f?.addEventListener("resize",d),f?.addEventListener("scroll",d),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),()=>{e?.disconnect(),f?.removeEventListener("resize",d),f?.removeEventListener("scroll",d),window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0),null!==b&&cancelAnimationFrame(b)}},[aG,bB]);let bW=i&&i.length>0?i.map(a=>({provider:a.provider,modelId:a.id,name:a.name})).sort(rb):Object.entries(h??{}).map(([a,b])=>({provider:f?.provider??"unknown",modelId:a,name:b})).sort(rb),bX=(P=ah.trim().toLocaleLowerCase())?bW.filter(a=>`${a.name} ${a.modelId}`.toLocaleLowerCase().includes(P)):bW,bY=bW.length>8,bZ=[];for(let a of bX){let b=bZ.find(b=>b.provider===a.provider);b?b.options.push(a):bZ.push({provider:a.provider,options:[a]})}let b$=f?bW.find(a=>a.modelId===f.modelId&&a.provider===f.provider)?.name??f.modelId:null,b_=r?Math.max(0,r.tokensBefore-r.estimatedTokensAfter):0,b0=r?`${r.reason&&"manual"!==r.reason?`${r.reason[0].toUpperCase()}${r.reason.slice(1)} `:Y("chat.compacted")} ${re(r.tokensBefore)} -> ${re(r.estimatedTokensAfter)} tokens (${Y("chat.tokensSaved",{saved:re(b_)})})`:null,b1="auto"!==(Q=u??"auto")&&x?x[Q]??Q:Q,b2=Object.entries(q9).find(([,a])=>a===(s??"default"))?.[0]??"default";return(0,af.useEffect)(()=>{let a=a=>{a4.current&&!a4.current.contains(a.target)&&a5.current&&!a5.current.contains(a.target)&&(ab(!1),ai("")),a6.current&&!a6.current.contains(a.target)&&ak(!1),a7.current&&!a7.current.contains(a.target)&&am(!1),a8.current&&!a8.current.contains(a.target)&&ao(!1),!a9.current||a9.current.contains(a.target)||a3.current?.contains(a.target)||aT(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,af.useEffect)(()=>{Z||ao(!1)},[Z]),(0,ae.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px 8px",paddingRight:Z?16:52},children:[(0,ae.jsx)("input",{ref:ba,type:"file",multiple:!0,style:{display:"none"},onChange:a=>{let b=Array.from(a.target.files??[]),c=b.filter(a=>a.type.startsWith("image/")),d=b.filter(a=>!a.type.startsWith("image/"));c.length&&bq(c),d.length&&bt(d),a.target.value=""}}),(0,ae.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[(0,ae.jsx)(rt,{error:j}),(0,ae.jsx)(ru,{warnings:k}),(z?.steering.length??0)+(z?.followUp.length??0)>0&&(0,ae.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0"},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,ae.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:Y("chat.queued",{count:(z?.steering.length??0)+(z?.followUp.length??0)})}),B&&(0,ae.jsxs)("button",{onClick:B,title:Y("chat.recallTitle"),style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--text)",background:"transparent",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.borderColor="var(--border)"},children:[(0,ae.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("polyline",{points:"9 14 4 9 9 4"}),(0,ae.jsx)("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})]}),Y("chat.recall")]})]}),z?.steering.map((a,b)=>(0,ae.jsx)(rr,{kind:"steer",text:a},`steer-${b}`)),z?.followUp.map((a,b)=>(0,ae.jsx)(rr,{kind:"follow-up",text:a},`followup-${b}`))]}),y&&(0,ae.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,ae.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,ae.jsx)("path",{d:"M3 3v5h5"})]}),Y("chat.retrying",{attempt:y.attempt,max:y.maxAttempts}),y.errorMessage&&(0,ae.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",y.errorMessage]})]}),b0&&(0,ae.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",display:"flex",alignItems:"center",gap:6},children:[(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,ae.jsx)("polyline",{points:"20 6 9 17 4 12"})}),b0]}),q&&(0,ae.jsx)("div",{role:"alert",style:{marginBottom:8,padding:"7px 10px",background:"rgba(239,68,68,0.07)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:q}),aq.length>0&&(0,ae.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:aq.map((a,b)=>(0,ae.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,ae.jsx)("img",{src:a.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,ae.jsx)("button",{onClick:()=>br(b),style:{position:"absolute",top:-4,right:-4,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,ae.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,ae.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,ae.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},b))}),at.length>0&&(0,ae.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:at.map(a=>(0,ae.jsxs)("div",{title:a.serverPath??a.error??a.fileName,style:{display:"inline-flex",alignItems:"center",gap:6,maxWidth:280,padding:"4px 8px",border:`1px solid ${"error"===a.status?"rgba(239,68,68,0.4)":"var(--border)"}`,borderRadius:6,background:"error"===a.status?"rgba(239,68,68,0.07)":"var(--bg-panel)",fontSize:12,color:"error"===a.status?"#ef4444":"var(--text-muted)"},children:[(0,ae.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,ae.jsx)("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"})}),(0,ae.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},children:a.fileName}),(0,ae.jsx)("span",{style:{flexShrink:0,opacity:.75},children:"uploading"===a.status?Y("chat.attachmentUploading"):"error"===a.status?a.error??Y("chat.attachmentFailed"):qW(a.size)}),(0,ae.jsx)("button",{onClick:()=>bu(a.id),style:{flexShrink:0,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,ae.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,ae.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,ae.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},a.id))}),aB.length>0&&(0,ae.jsx)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginBottom:8},children:aB.map(a=>(0,ae.jsxs)("button",{type:"button",onClick:()=>bz(a),title:a.prompt||a.label,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"3px 11px",border:"1px solid var(--border)",borderRadius:999,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,lineHeight:"20px",whiteSpace:"nowrap",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 55%, var(--border))",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.background="color-mix(in srgb, var(--accent) 8%, var(--bg-panel))"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:[a.sendDirect&&(0,ae.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,ae.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,ae.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]}),(0,ae.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:a.label})]},a.label))}),(0,ae.jsxs)("div",{style:{position:"relative",minWidth:0},children:[aS&&A.length>0&&(0,ae.jsxs)("div",{ref:a9,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(44vh, 360px)"},children:[(0,ae.jsx)("div",{title:"Input history",style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,ae.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,ae.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,ae.jsx)("path",{d:"M3 4v5h5"}),(0,ae.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,ae.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:A.map((a,b)=>{let c=b===aU;return(0,ae.jsxs)("button",{ref:a=>{bh.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bP(a)},onMouseEnter:()=>aV(b),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:c?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,ae.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:b+1}),(0,ae.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:a})]},`${b}:${a}`)})})]}),aG&&null!==bB&&(0,ae.jsxs)("div",{ref:be,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===aK?"min(72.8vh, 598px)":`min(72.8vh, 598px, ${aK}px)`},children:[(0,ae.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,ae.jsx)("span",{children:D?Y("chat.loadingCommands"):Y("chat.slashCommands",{label:bF})}),(0,ae.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:Y("chat.tabEnter")})]}),(0,ae.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:10},children:D||0!==bC.length?bE.map(a=>(0,ae.jsxs)("section",{style:{marginBottom:12},children:[(0,ae.jsxs)("div",{style:{position:"sticky",top:-10,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"4px 0 6px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,ae.jsx)("span",{children:Y(rh[a.source])}),(0,ae.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:a.items.length})]}),(0,ae.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:a.items.map(({command:a,index:b})=>{let c=b===aI,d=rl(a,a2);return(0,ae.jsxs)("button",{ref:a=>{bf.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bQ(a)},onMouseEnter:()=>aJ(b),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${c?"var(--accent)":"var(--border)"}`,borderRadius:7,background:c?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:c?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,ae.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word",color:d?"var(--text-dim)":void 0},children:["/",a.name,d&&(0,ae.jsx)("span",{style:{marginLeft:6,padding:"0 4px",border:"1px solid var(--border)",borderRadius:3,fontSize:9,color:"var(--text-dim)",whiteSpace:"nowrap"},children:Y("chat.dormant")})]}),a.description&&(0,ae.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:rk(a,Y)})]},`${a.source}:${a.name}`)})})]},a.source)):(0,ae.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:Y("chat.noCommands")})})]}),aO&&null!==aM&&(R=aY&&(!aW||aW.cwd!==L),S=1===bL.length?Y("chat.match"):Y("chat.matches",{count:bL.length}),T=aW?.truncated&&!bK?aM.query?Y("chat.searchingAll"):Y("chat.indexTruncated"):"",(0,ae.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(48vh, 400px)"},children:[(0,ae.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,ae.jsx)("span",{children:R?Y("chat.loadingFiles"):Y("chat.files",{label:S,hint:T})}),(0,ae.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:Y("chat.tabEnter")})]}),(0,ae.jsx)("div",{style:{maxHeight:"calc(min(48vh, 400px) - 34px)",overflowY:"auto",padding:4},children:R||0!==bL.length?bL.map((a,b)=>{let c=b===aQ,d=a.path.split("/").pop()??a.path,e=a.path.slice(0,a.path.length-d.length);return(0,ae.jsxs)("button",{ref:a=>{bg.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bO(a)},onMouseEnter:()=>aR(b),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:6,background:c?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,ae.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:a.isDir?(0,ae.jsx)(as,{size:14}):av(d,14)}),(0,ae.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e&&(0,ae.jsx)("span",{style:{color:"var(--text-dim)"},children:e}),d,a.isDir&&(0,ae.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${a.isDir?"d":"f"}:${a.path}`)}):(0,ae.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:bJ&&!bK?Y("chat.searching"):Y("chat.noMatchingFiles")})})]})),(0,ae.jsxs)("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:6,background:"var(--bg)",border:`1px solid ${az?"var(--tool-bg)":e&&(c||d)?"rgba(234,179,8,0.4)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:14,padding:aC?"8px 8px 4px 10px":"10px 10px 10px 14px",boxShadow:"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[aC&&(0,ae.jsx)("div",{style:{display:"flex",alignItems:"center",minWidth:0},children:(0,ae.jsxs)("span",{title:`${aC.label}: ${aC.prompt}`,style:{display:"inline-flex",alignItems:"center",gap:5,maxWidth:"100%",padding:"1px 3px 1px 10px",border:"1px solid color-mix(in srgb, var(--accent) 45%, var(--border))",borderRadius:999,background:"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))",color:"var(--accent)",fontSize:12,lineHeight:"20px"},children:[(0,ae.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:aC.label}),(0,ae.jsx)("button",{type:"button",onClick:bA,title:Y("chat.removePrefix"),"aria-label":Y("chat.removePrefix"),style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:16,height:16,padding:0,border:"none",borderRadius:"50%",background:"transparent",color:"inherit",cursor:"pointer",opacity:.75},onMouseEnter:a=>{a.currentTarget.style.background="color-mix(in srgb, var(--accent) 18%, transparent)",a.currentTarget.style.opacity="1"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.opacity="0.75"},children:(0,ae.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,ae.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,ae.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]})}),(0,ae.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",minWidth:0},children:[(0,ae.jsx)("textarea",{ref:a3,value:$,onChange:a=>{bl.current=a.target.value,_(a.target.value),aT(!1),bG(a.target.value,a.target.selectionStart)},onSelect:a=>{let b=a.currentTarget;bG(b.value,b.selectionStart)},onKeyDown:bT,onCompositionStart:()=>{bb.current=!0},onCompositionEnd:a=>{bb.current=!1,bc.current=Date.now();let b=a.currentTarget;bG(b.value,b.selectionStart)},onInput:bU,onPaste:bV,placeholder:e&&(c||d)?Y("chat.steerPlaceholder"):e?Y("chat.agentPlaceholder"):Y("chat.messagePlaceholder"),rows:1,style:{flex:1,minWidth:0,width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto"}}),e?(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,alignSelf:"flex-end"},children:[c&&(0,ae.jsxs)("button",{onClick:()=>bR("steer"),disabled:!aF,title:"Interrupt the current run and inject this message now",style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:aF?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:aF?"rgba(180,130,0,1)":"var(--text-dim)",cursor:aF?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,ae.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,ae.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),Y("chat.steer")]}),d&&(0,ae.jsxs)("button",{onClick:()=>bR("followup"),disabled:!aF,title:"Queue this message after the agent finishes",style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:aF?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:aF?"rgba(99,102,241,1)":"var(--text-dim)",cursor:aF?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,ae.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,ae.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,ae.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),Y("chat.followUp")]}),b&&(0,ae.jsxs)("button",{onClick:b,title:Y("chat.stopAgent"),"aria-label":Y("chat.stopAgent"),style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:"rgba(239,68,68,0.10)",border:"1px solid rgba(239,68,68,0.40)",borderRadius:8,color:"#ef4444",cursor:"pointer",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.18)"},onMouseLeave:a=>{a.currentTarget.style.background="rgba(239,68,68,0.10)"},children:[(0,ae.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor",children:(0,ae.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"1.5"})}),Y("chat.stop")]})]}):(0,ae.jsxs)("button",{onClick:by,disabled:!aF,style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",gap:6,padding:"7px 14px",background:aF?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:aF?"#fff":"var(--text-dim)",cursor:aF?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:aF?"0 1px 3px rgba(37,99,235,0.25)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,ae.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,ae.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),Y("chat.send")]})]})]})]}),az&&(0,ae.jsxs)("div",{className:"text-xs px-2 py-1",style:{color:aA?"var(--text-muted)":"var(--accent)",marginTop:4},children:[Y("chat.shell")," \xb7 ",aA?Y("chat.outputLocal"):Y("chat.outputModel")]}),(0,ae.jsxs)("div",{style:{marginTop:8,display:Z?"grid":"flex",gridTemplateColumns:Z?"minmax(0, 1fr) auto":void 0,alignItems:"center",gap:6},children:[(0,ae.jsxs)("div",{style:{flex:Z?"1 1 auto":"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:[(0,ae.jsx)("button",{onClick:()=>ba.current?.click(),title:Y("chat.attachFile"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:aq.length||at.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",opacity:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=aq.length||at.length?"var(--accent)":"var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=aq.length||at.length?"var(--accent)":"var(--text-muted)"},children:(0,ae.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ae.jsx)("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"})})}),(bW.length>0||b$||j)&&l&&(0,ae.jsxs)("div",{ref:a4,style:{position:"relative",flex:Z?"1 1 auto":void 0,minWidth:0},children:[(0,ae.jsxs)("button",{onClick:a=>{let b=a.currentTarget.getBoundingClientRect();ad({top:b.top,left:b.left,width:b.width}),ab(a=>(a&&ai(""),!a))},disabled:e||m,"aria-busy":m||void 0,style:{display:"flex",alignItems:"center",gap:6,justifyContent:Z?"flex-start":void 0,padding:Z?"8px 10px":"8px 12px",height:32,width:Z?"100%":void 0,maxWidth:Z?"100%":220,overflow:"hidden",background:aa?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:e||m?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{e||m||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=aa?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},title:m?"Switching model":bW.length>0?"Change model":"No available models",children:[m?(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:(0,ae.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}):(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,ae.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,ae.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,ae.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,ae.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,ae.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,ae.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,ae.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,ae.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,ae.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,ae.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:b$??(bW.length>0?"Select model":"No models")})]}),aa&&ac&&(V=(U=window.visualViewport?.height??window.innerHeight)-ac.top+6,W=Math.max(120,Math.min(ac.top-8,.6*U)),X=Z?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:ac.left,width:"max-content",minWidth:ac.width},(0,ae.jsxs)("div",{ref:a5,style:{position:"fixed",bottom:V,...X,zIndex:500,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",maxHeight:W,display:"flex",flexDirection:"column"},children:[bY&&(0,ae.jsx)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,ae.jsx)("input",{value:ah,onChange:a=>ai(a.target.value),onKeyDown:a=>{"Escape"===a.key&&(ai(""),ab(!1))},placeholder:Y("chat.filterModels"),"aria-label":Y("chat.filterModels"),autoFocus:!0,autoComplete:"off",spellCheck:!1,style:{width:"100%",minWidth:220*!Z,fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}})}),(0,ae.jsx)("div",{style:{minHeight:0,overflowY:"auto"},children:0===bZ.length?(0,ae.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:ah.trim()?Y("chat.noMatchingModels"):"No available models"}):bZ.map((a,b)=>(0,ae.jsxs)("div",{children:[bZ.length>1&&(0,ae.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:b>0?"1px solid var(--border)":"none"},children:a.provider}),a.options.map(a=>{let b=a.modelId===f?.modelId&&a.provider===f?.provider;return(0,ae.jsxs)("button",{onClick:()=>{ab(!1),ai(""),(!b||g)&&l(a.provider,a.modelId)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:b?600:400,whiteSpace:"nowrap"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[b?(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,ae.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,ae.jsx)("span",{style:{width:10,flexShrink:0}}),a.name]},`${a.provider}:${a.modelId}`)})]},a.provider))})]}))]})]}),!Z&&(0,ae.jsx)("div",{style:{flex:1}}),(0,ae.jsxs)("div",{ref:a8,style:{flex:"0 0 auto",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:Z?0:"auto"},children:[Z&&(0,ae.jsx)("button",{type:"button",title:an?void 0:Y("chat.moreControls"),"aria-label":Y("chat.moreControls"),"aria-expanded":an,"aria-hidden":an||void 0,tabIndex:an?-1:void 0,onClick:()=>{ab(!1),ai(""),ao(!0)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:32,padding:"8px 10px",background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:an?"default":"pointer",fontSize:12,fontWeight:500,visibility:an?"hidden":"visible",pointerEvents:an?"none":"auto",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{an||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{an||(a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)")},children:Y("chat.moreControls")}),(0,ae.jsxs)("div",{style:{display:Z?an?"flex":"none":"flex",alignItems:"center",gap:Z?1:2,...Z?{position:"absolute",right:0,bottom:0,zIndex:60,padding:1,width:"max-content",maxWidth:"calc(100vw - 32px)",flexWrap:"nowrap",justifyContent:"flex-end",border:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:10,background:"color-mix(in srgb, var(--bg-panel) 92%, var(--bg))",boxShadow:"0 8px 24px rgba(0,0,0,0.14)",backdropFilter:"blur(10px)"}:null},children:[!e&&v&&(0,ae.jsxs)("div",{ref:a7,style:{position:"relative"},children:[(0,ae.jsxs)("button",{onClick:()=>!e&&am(a=>!a),disabled:e,title:Y("chat.changeReasoning",{level:b1}),"aria-label":Y("chat.changeReasoningLabel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:Z?"0 6px":"8px 12px",width:Z?"auto":void 0,height:32,background:al?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{e||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=al?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z"}),(0,ae.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,ae.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]}),(!Z||an)&&(0,ae.jsx)("span",{style:{whiteSpace:"nowrap"},children:b1})]}),al&&(0,ae.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",...Z?{left:0}:{right:0},zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:180},children:rc.filter(a=>!w||"auto"===a||w.includes(a)).map(a=>{let b=(u??"auto")===a,c=Y(rd[a]),d="auto"!==a&&x?x[a]:void 0,e=null!=d&&d!==a?d:a,f=null!=d&&d!==a;return(0,ae.jsxs)("button",{onClick:()=>{am(!1),b||v(a)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:b?600:400,whiteSpace:"nowrap"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[b?(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,ae.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,ae.jsx)("span",{style:{width:10,flexShrink:0}}),(0,ae.jsxs)("span",{style:{flex:1},children:[e,f&&(0,ae.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginLeft:5},children:["(",a,")"]})]}),(0,ae.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:c})]},a)})})]}),!e&&t&&(0,ae.jsxs)("div",{ref:a6,style:{position:"relative"},children:[(0,ae.jsxs)("button",{onClick:()=>!e&&ak(a=>!a),disabled:e,title:Y("chat.changeToolPreset")+`: ${b2}`,"aria-label":Y("chat.changeToolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:Z?"0 6px":"8px 12px",width:Z?"auto":void 0,height:32,background:aj?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{e||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=aj?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,ae.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ae.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),(!Z||an)&&(0,ae.jsx)("span",{style:{whiteSpace:"nowrap"},children:b2})]}),aj&&(0,ae.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",right:Z?void 0:0,left:Z?0:void 0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:120},children:q8.map(a=>{let b,c=q9[a],d=(s??"default")===c;return b="off"===a?Y("chat.noTools"):"read-only"===a?Y("chat.readOnlyTools",{count:4}):"default"===a?Y("chat.builtInTools",{count:4}):Y("chat.allBuiltInTools"),(0,ae.jsxs)("button",{onClick:()=>{ak(!1),d||t(c)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:d?"var(--bg-selected)":"none",border:"none",color:d?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:d?600:400,whiteSpace:"nowrap"},onMouseEnter:a=>{d||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{d||(a.currentTarget.style.background="none")},children:[d?(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,ae.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,ae.jsx)("span",{style:{width:10,flexShrink:0}}),(0,ae.jsx)("span",{style:{flex:1},children:a}),(0,ae.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:b})]},a)})})]}),!e&&n&&(0,ae.jsx)("div",{children:(0,ae.jsx)("button",{onClick:p?o:n,disabled:e&&!p,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:Z?"0 6px":"8px 12px",width:Z?"auto":void 0,height:32,background:p?"rgba(239,68,68,0.08)":"none",border:"none",borderRadius:9,color:p?"#ef4444":"var(--text-muted)",cursor:e&&!p?"not-allowed":"pointer",fontSize:12,opacity:e&&!p?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{(!e||p)&&(a.currentTarget.style.background=p?"rgba(239,68,68,0.16)":"var(--bg-hover)",a.currentTarget.style.color=p?"#ef4444":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=p?"rgba(239,68,68,0.08)":"none",a.currentTarget.style.color=p?"#ef4444":"var(--text-muted)"},title:p?Y("chat.stopCompaction"):Y("chat.compactContext"),"aria-label":p?Y("chat.stopCompaction"):Y("chat.compactContext"),children:p?(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,ae.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}),(!Z||an)&&(0,ae.jsx)("span",{style:{whiteSpace:"nowrap"},children:Y("chat.compacting")})]}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,ae.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,ae.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,ae.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]}),(!Z||an)&&(0,ae.jsx)("span",{style:{whiteSpace:"nowrap"},children:Y("chat.compact")})]})})}),e&&(0,ae.jsxs)("button",{onClick:b,title:Y("chat.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:32,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:9,color:"#ef4444",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)"},children:[(0,ae.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,ae.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),Y("chat.stop")]}),void 0!==H&&(0,ae.jsx)("button",{onClick:H,title:G?Y("chat.disableSound"):Y("chat.enableSound"),"aria-label":G?Y("chat.disableSound"):Y("chat.enableSound"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:G?"var(--text-muted)":"var(--text-dim)",cursor:"pointer",opacity:G?1:.55,transition:"background 0.12s, color 0.12s, opacity 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)",a.currentTarget.style.opacity="1"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=G?"var(--text-muted)":"var(--text-dim)",a.currentTarget.style.opacity=G?"1":"0.55"},children:G?(0,ae.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,ae.jsx)("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"}),(0,ae.jsx)("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14"})]}):(0,ae.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ae.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,ae.jsx)("line",{x1:"23",y1:"9",x2:"17",y2:"15"}),(0,ae.jsx)("line",{x1:"17",y1:"9",x2:"23",y2:"15"})]})}),Z&&an&&(0,ae.jsx)("button",{type:"button",title:Y("chat.collapseControls"),"aria-label":Y("chat.collapseControls"),"aria-expanded":!0,onClick:()=>{ak(!1),am(!1),ao(!1)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:32,padding:0,marginLeft:0,background:"var(--bg-hover)",border:"none",borderLeft:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:"0 9px 9px 0",color:"var(--text)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)"},children:(0,ae.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,ae.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,ae.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})]})]})]})});var rw=c(96201),rx=c.n(rw);function ry({level:a,children:b,headingIndex:c,onClick:d}){return(0,ae.jsx)("button",{type:"button",className:rx().heading,"data-level":a,"data-preview-heading-index":c??void 0,disabled:null===c||!d,onClick:a=>{a.stopPropagation(),null!==c&&d?.(c)},children:b})}let rz=[...ky??[],function(){return a=>{if(!Array.isArray(a.children))return;let b=a.children.filter(a=>"heading"===a.type&&"number"==typeof a.depth&&a.depth<=3);if(b.length>0){b.forEach((a,b)=>{a.data={...a.data,hProperties:{...a.data?.hProperties,"data-preview-heading-index":b}}}),a.children=b;return}let c=a.children.find(a=>"paragraph"===a.type);a.children=c?[c]:[]}}],rA=[[gW,{throwOnError:!1,strict:!1}]];function rB(a){let b=a?.properties,c=b?.dataPreviewHeadingIndex??b?.["data-preview-heading-index"];return"number"==typeof c?c:"string"==typeof c&&/^\d+$/.test(c)?Number(c):null}let rC=(0,af.memo)(function({markdown:a,onHeadingClick:b,onAnswerClick:c}){let d=(0,af.useMemo)(()=>kt(a),[a]);return a?(0,ae.jsx)("div",{className:rx().outline,children:(0,ae.jsx)(eG,{remarkPlugins:rz,rehypePlugins:rA,components:{h1:({children:a,node:c})=>(0,ae.jsx)(ry,{level:1,headingIndex:rB(c),onClick:b,children:a}),h2:({children:a,node:c})=>(0,ae.jsx)(ry,{level:2,headingIndex:rB(c),onClick:b,children:a}),h3:({children:a,node:c})=>(0,ae.jsx)(ry,{level:3,headingIndex:rB(c),onClick:b,children:a}),h4:()=>null,h5:()=>null,h6:()=>null,p:({children:a})=>(0,ae.jsx)("button",{type:"button",className:rx().paragraph,onClick:c,children:a}),blockquote:()=>null,ul:()=>null,ol:()=>null,pre:()=>null,table:()=>null,hr:()=>null,a:({children:a})=>(0,ae.jsx)(ae.Fragment,{children:a}),code:({children:a})=>(0,ae.jsx)(ae.Fragment,{children:a})},children:d})}):null});function rD({messages:a,streamingMessage:b,scrollContainer:c,messageRefs:d,onRevealHistory:e}){let[f,g]=(0,af.useState)(!1),[h,i]=(0,af.useState)([]),[j,k]=(0,af.useState)(null),[l,m]=(0,af.useState)(600),[n,o]=(0,af.useState)(!1),[p,q]=(0,af.useState)(null),r=(0,af.useRef)(!1),s=(0,af.useRef)(null),t=(0,af.useRef)([]),u=(0,af.useRef)({nodes:[],gap:50,fillsHeight:!1}),v=(0,af.useRef)(null),w=(0,af.useRef)(new Map),x=(0,af.useRef)(null),y=(0,af.useRef)(null),z=(0,af.useRef)(null),A=(0,af.useMemo)(()=>b?[...a,b]:a,[a,b]),B=(0,af.useRef)(A);B.current=A;let C=(0,af.useMemo)(()=>(function(a,b){if(0===a.length)return{nodes:[],gap:50,fillsHeight:!1};let c=Math.max(1,b),d=Math.max(0,c-24);if(1===a.length)return{nodes:[{...a[0],topRatio:12/c}],gap:50,fillsHeight:!1};let e=d/(a.length-1),f=Math.min(50,e);return{nodes:a.map((a,b)=>({...a,topRatio:(12+b*f)/c})),gap:f,fillsHeight:e<=50}})(h,l),[h,l]),{nodes:D,gap:E}=C;u.current=C;let F=(0,af.useCallback)(a=>{y.current={index:a,until:Date.now()+1600},k(a)},[]),G=(0,af.useCallback)((a,b)=>{let c=y.current;if(c&&Date.now()<c.until)return void k(c.index);y.current=null;let d=b.filter(a=>null!==a.targetTurn.scrollTop);if(0===d.length)return void k(null);let e=a.scrollTop+.3*a.clientHeight;k(d.reduce((a,b)=>Math.abs((b.targetTurn.scrollTop??0)-e)<Math.abs((a.targetTurn.scrollTop??0)-e)?b:a,d[0]).index)},[]);(0,af.useCallback)(()=>{let a=c.current;if(!a)return;let b=a.scrollHeight-a.clientHeight,d=t.current;g(b>20),G(a,d)},[c,G]);let H=(0,af.useRef)(null);(0,af.useCallback)(()=>{H.current||(H.current=setTimeout(()=>{H.current=null;let a=c.current,b=s.current;if(!a||!b)return;let e=d.current,f=a.getBoundingClientRect(),h=[],j=0,k=null;for(let b of B.current){if("user"!==b.role&&"assistant"!==b.role)continue;let c=e?.[j];if(j++,"user"===b.role){k=null;let d=c?.getBoundingClientRect();k={userMessage:b,assistantPreviews:[],scrollTop:d?d.top-f.top+a.scrollTop:null},h.push(k);continue}if(!k)continue;let d=function(a){if("assistant"!==a.role)return"";let{answerBlocks:b}=bb(a);return b.filter(a=>"text"===a.type).map(a=>a.text).join("\n\n").trim()}(b);d&&k.assistantPreviews.push({markdown:d,element:c})}let l=h.map((a,b)=>({topRatio:0,targetTurn:a,index:b}));m(b.clientHeight),t.current=l,i(l),g(a.scrollHeight-a.clientHeight>20),G(a,l);let n=z.current,o=n?l[n.nodeIndex]:null;if(n&&o){let b=void 0===n.assistantIndex?null:o.targetTurn.assistantPreviews[n.assistantIndex],c=o.targetTurn.scrollTop;if("assistant"===n.target){let d=b?.element?.getBoundingClientRect();c=d?d.top-f.top+a.scrollTop:null}else if("heading"===n.target){let d=void 0===n.headingIndex?null:b?.element?.querySelectorAll("h1, h2, h3").item(n.headingIndex),e=d?.getBoundingClientRect();c=e?e.top-f.top+a.scrollTop:null}if(null===c)return;z.current=null,F(o.index);let d=.3*a.clientHeight;a.scrollTo({top:Math.max(0,c-d),behavior:"smooth"})}},150))},[F,d,c,G]);let I=(0,af.useCallback)((a,b)=>{let d=c.current;if(!d)return;if(F(a.index),null===a.targetTurn.scrollTop){z.current={nodeIndex:a.index,target:"user"},e();return}let f=Math.max(0,a.targetTurn.scrollTop-.3*d.clientHeight);d.scrollTo({top:f,behavior:b})},[F,e,c]),J=(0,af.useCallback)((a,b)=>{let d=c.current;if(!d)return;let f=a.targetTurn.assistantPreviews[b]?.element;if(!f){z.current={nodeIndex:a.index,target:"assistant",assistantIndex:b},e();return}let g=d.getBoundingClientRect(),h=f.getBoundingClientRect().top-g.top+d.scrollTop-.3*d.clientHeight;F(a.index),d.scrollTo({top:Math.max(0,h),behavior:"smooth"})},[F,e,c]),K=(0,af.useCallback)(a=>{let{nodes:b,gap:c,fillsHeight:d}=u.current,e=s.current?.clientHeight??0;if(0===b.length||e<=0)return null;let f=Math.max(0,Math.min(e,a*e)),g=b[0].topRatio*e,h=c>0?Math.round((f-g)/c):0,i=Math.max(0,Math.min(b.length-1,h)),j=b[i];if(!d&&Math.abs(f-j.topRatio*e)>Math.max(10,c/2))return null;return j},[]),L=(0,af.useCallback)((a,b,d)=>{let f=c.current;if(!f)return;let g=a.targetTurn.assistantPreviews[b]?.element;if(!g){z.current={nodeIndex:a.index,target:"heading",assistantIndex:b,headingIndex:d},e();return}let h=g.querySelectorAll("h1, h2, h3").item(d);if(!h)return;let i=f.getBoundingClientRect(),j=h.getBoundingClientRect().top-i.top+f.scrollTop-.3*f.clientHeight;F(a.index),f.scrollTo({top:Math.max(0,j),behavior:"smooth"})},[F,e,c]),M=(0,af.useCallback)(()=>{x.current&&(clearTimeout(x.current),x.current=null)},[]),N=(0,af.useCallback)(()=>{M(),o(!0)},[M]),O=(0,af.useCallback)(()=>{M(),x.current=setTimeout(()=>{x.current=null,o(!1),q(null)},250)},[M]),P=(0,af.useCallback)(a=>{if(!f)return;r.current=!0,N();let b=a.currentTarget.getBoundingClientRect();q(Math.max(0,Math.min(1,(a.clientY-b.top)/b.height)));let c=(a,c)=>{let d=K(Math.max(0,Math.min(1,(a-b.top)/b.height)));d&&I(d,c)};c(a.clientY,"smooth");let d=a=>{r.current&&c(a.clientY,"auto")},e=()=>{r.current=!1,window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},[K,I,N,f]),Q=null===p?null:K(p),R=Q?.index??null;if(!f)return null;let S=Math.max(1,(D.length>0?D[D.length-1].topRatio*l:12)-12);return(0,ae.jsxs)("div",{ref:s,onMouseDown:P,onMouseEnter:N,onMouseLeave:O,onMouseMove:a=>{let b=a.currentTarget.getBoundingClientRect();q((a.clientY-b.top)/b.height)},style:{width:36,flexShrink:0,position:"relative",cursor:"pointer",userSelect:"none",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"visible"},children:[(0,ae.jsx)("div",{style:{position:"absolute",left:"50%",top:12,height:S,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),D.map(a=>{let b=n&&Q?.index===a.index,c=j===a.index;return(0,ae.jsx)("div",{"data-minimap-node-index":a.index,"data-minimap-node-active":c?"":void 0,style:{position:"absolute",top:`${100*a.topRatio}%`,transform:"translateY(-50%)",left:0,right:0,height:Math.max(1,E),display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",zIndex:2},children:(0,ae.jsx)("div",{style:{width:8,height:8,borderRadius:2,background:c?"rgba(128,128,128,0.42)":"rgba(128,128,128,0.16)",border:`1.5px solid ${c?"rgba(128,128,128,0.95)":"rgba(128,128,128,0.58)"}`,boxShadow:c?"0 0 0 2px var(--bg-panel)":"none",transition:"transform 0.1s, background 0.1s",transform:b?"scale(1.25)":"scale(1)"}})},a.index)}),n&&h.length>0&&(0,ae.jsx)("div",{ref:v,className:rx().preview,"data-minimap-preview-box":"",onMouseEnter:N,onMouseDown:a=>a.stopPropagation(),onMouseMove:a=>a.stopPropagation(),children:h.map(a=>{var b;let c=R===a.index;return(0,ae.jsxs)("div",{ref:b=>{b?w.current.set(a.index,b):w.current.delete(a.index)},className:rx().turn,"data-minimap-preview-index":a.index,"data-located":c?"true":void 0,children:[(0,ae.jsx)("span",{className:rx().number,"aria-hidden":"true",children:String(a.index+1).padStart(2,"0")}),(0,ae.jsxs)("div",{className:rx().content,children:[(0,ae.jsx)("button",{type:"button",className:rx().user,"data-minimap-preview-user":a.index,onClick:()=>{I(a,"smooth")},children:(0,ae.jsx)("span",{className:rx().userText,children:"string"==typeof(b=a.targetTurn.userMessage).content?b.content.trim():b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").trim()})}),a.targetTurn.assistantPreviews.map((b,c)=>(0,ae.jsxs)("div",{className:rx().assistant,children:[(0,ae.jsx)("button",{type:"button",className:rx().assistantJump,"data-minimap-preview-assistant":`${a.index}-${c}`,onClick:()=>J(a,c),"aria-label":"Locate assistant message",title:"Locate assistant message",children:"A"}),(0,ae.jsx)(rC,{markdown:b.markdown,onAnswerClick:()=>J(a,c),onHeadingClick:b=>L(a,c,b)})]},c))]})]},a.index)})})]})}function rE({widgets:a}){let b,c,d,{t:e}=(0,ap.s)(),f=(0,af.useId)();(0,af.useRef)(null),(0,af.useRef)(new Map);let[g,h]=(0,af.useState)(()=>a.find(a=>{let b=a.lines.length;return b>1&&b<=3})?.key??null),[i,j]=(0,af.useState)(()=>new Set);if(0===a.length)return null;let k=a.find(a=>a.key===g&&a.lines.length>1);return(0,ae.jsxs)(ae.Fragment,{children:[k&&(0,ae.jsx)("div",{className:"extension-widget-panels",children:(b=a.indexOf(k),c=`${f}-trigger-${b}`,d=`${f}-panel-${b}`,(0,ae.jsxs)("section",{id:d,className:"extension-widget-panel","aria-labelledby":c,children:[(0,ae.jsx)("div",{className:"extension-widget-panel-heading",children:k.key}),(0,ae.jsx)("pre",{className:"extension-widget-content",children:k.lines.join("\n")})]},k.key))}),(0,ae.jsx)("div",{className:"extension-widget-triggers","aria-label":e("chat.extensionWidgets"),children:a.map((a,b)=>{let c=a.lines.length>1,d=c&&a.key===k?.key,g=i.has(a.key),j=e(1===a.lines.length?"chat.extensionWidgetLine":"chat.extensionWidgetLines",{count:a.lines.length}),l=e("belowEditor"===a.placement?"chat.extensionWidgetBelow":"chat.extensionWidgetAbove"),m=`${f}-trigger-${b}`,n=`${f}-panel-${b}`,o=(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("span",{className:"extension-widget-update-pulse","aria-hidden":"true"}),(0,ae.jsx)("span",{className:"extension-widget-placement","aria-hidden":"true",children:(0,ae.jsx)("svg",{className:"extension-widget-placement-icon",viewBox:"0 0 8 6",width:"8",height:"6","data-direction":"belowEditor"===a.placement?"down":"up",focusable:"false",children:(0,ae.jsx)("path",{d:"belowEditor"===a.placement?"M0 0h8L4 6z":"M4 0l4 6H0z"})})}),(0,ae.jsx)("span",{className:"extension-widget-key",children:a.key})]});return c?(0,ae.jsx)("button",{id:m,type:"button",className:`extension-widget-trigger${d?" is-expanded":""}${g?" is-updating":""}`,"aria-controls":n,"aria-expanded":d,"aria-label":`${l}: ${a.key}, ${j}`,title:`${a.key} - ${l} - ${d?e("i18n.collapse"):e("i18n.expand")}`,onClick:()=>{h(b=>{var c;return b===(c=a.key)?null:c})},children:o},a.key):(0,ae.jsx)("div",{className:`extension-widget-trigger${g?" is-updating":""}`,"aria-label":`${l}: ${a.key}, ${j}`,title:`${a.key} - ${l}`,children:o},a.key)})})]})}function rF({statuses:a,widgets:b=[]}){if(0===a.length&&0===b.length)return null;let c=[...a].sort((a,b)=>a.key.localeCompare(b.key)).map(({text:a})=>a.replace(/[\r\n\t]/g," ").replace(/ +/g," ").trim()).join(" "),d=a1(c);return(0,ae.jsxs)("div",{className:`extension-status-shelf${b.length>0?" has-widgets":""}${a.length>0?" has-status":""}`,children:[b.length>0&&(0,ae.jsx)(rE,{widgets:b}),a.length>0&&(0,ae.jsx)("div",{role:"status",className:"extension-status-line","aria-label":d,title:d,children:(0,ae.jsx)("span",{className:"extension-status-text",children:a5(c).map((a,b)=>(0,ae.jsx)("span",{style:a.style,children:a.text},b))})})]})}function rG(a=document){return"visible"!==a.visibilityState||!a.hasFocus()}function rH(a){switch(a.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==a.closed;default:return!1}}async function rI(a,b={createWindowNotification:(a,b)=>new Notification(a,b),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null}){let c={body:a.body,...a.tag?{tag:a.tag}:{}};if(b.getServiceWorkerRegistration)try{let d=await b.getServiceWorkerRegistration();if(d)return await d.showNotification(a.title,{...c,data:{url:a.sessionUrl}}),"service-worker"}catch{}try{let d=b.createWindowNotification(a.title,c);return d.onclick=()=>{d.close(),a.onClick()},"window"}catch{return null}}function rJ(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function rK(a,b={}){if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let d=c.map(a=>(function(a,b={}){if(!rJ(a)||"toolCall"!==a.type)return null;let c={type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input},d=b.includeStreamingRawInput?function(a){if("string"==typeof a.rawInput)return a.rawInput;if("string"==typeof a.partialJson)return a.partialJson;if("string"==typeof a.partialArgs)return a.partialArgs;let b=rJ(a.customInput)?a.customInput:null,c=b&&"string"==typeof b.property?b.property:null,d=rJ(a.arguments)?a.arguments:null;return c&&d&&"string"==typeof d[c]?d[c]:void 0}(a):void 0;return void 0===d?c:{...c,rawInput:d}})(a,b)??a);return{...a,content:d}}class rL extends Error{constructor(a,b,c,d){super(a),this.status=b,this.code=c,this.accepted=d,this.name="AgentCommandError"}}function rM(a){return a instanceof rL&&"prompt_rejected"===a.code&&!1===a.accepted}async function rN(a,b){let c=await fetch(`/api/agent/${encodeURIComponent(a)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>({}));if(!c.ok||d.error)throw new rL(d.error??`HTTP ${c.status}`,c.status,d.code,d.accepted);return d.data}var rO=c(29947);function rP(a){if(!a||"object"!=typeof a||"image"!==a.type)return"";let b=a.source;return b&&"object"==typeof b?["url"===b.type?"url":"base64","string"==typeof b.media_type?b.media_type:"","string"==typeof b.data?b.data:"","string"==typeof b.url?b.url:""].join(":"):["base64","string"==typeof a.mimeType?a.mimeType:"","string"==typeof a.data?a.data:"",""].join(":")}function rQ(a){let b,c=a.content;return"string"==typeof c?JSON.stringify({text:c,images:[]}):Array.isArray(c)?JSON.stringify({text:"string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):"",images:c.map(rP).filter(Boolean)}):JSON.stringify({text:"",images:[]})}class rR extends Error{constructor(a,b){super(b??("ready_timeout"===a?"Timed out starting the agent session. Please try again.":"Failed to connect to the agent event stream. Please try again.")),this.status=a,this.name="AgentEventConnectionError"}}class rS{constructor(a){this.options=a,this.current=null,this.retry=null,this.retryGeneration=0}close(){this.stopRetrying(),this.current&&this.discard(this.current,new rR("closed"))}maintain(a){if(!this.options.shouldMaintain(a))return;let b=this.retryGeneration;this.ensureConnected(a).catch(c=>{b===this.retryGeneration&&(c instanceof rR?"startup_error"===c.status?this.stopRetrying():this.scheduleRetry(a):this.options.onUnexpectedError?.(c))})}async ensureConnected(a){for(;;){let b=this.current;if(b&&b.sessionId===a){if(b.attempt.ready&&1===b.source.readyState)return}else b=this.open(a);if(await b.attempt.promise,this.current!==b){if(this.current?.sessionId===a)continue;throw new rR("closed")}if(1===b.source.readyState)return;this.discard(b,new rR("closed"))}}open(a){let b,c,d;this.current&&this.discard(this.current,new rR("closed"));try{b=this.options.createSource(a)}catch(a){throw new rR("closed",a instanceof Error?a.message:String(a))}let e=!1,f=new Promise((a,b)=>{c=a,d=b}),g=setTimeout(()=>{this.fail(i,new rR("ready_timeout"))},this.options.readinessTimeoutMs),h={promise:f,ready:!1,succeed(){e||(e=!0,clearTimeout(g),c())},fail(a){e||(e=!0,clearTimeout(g),d(a))}},i={sessionId:a,source:b,attempt:h};return this.current=i,b.onmessage=a=>{let b;if(this.current===i){try{b=JSON.parse(a.data)}catch{return}if("connected"===b.type)h.ready=!0,h.succeed(),this.stopRetrying();else if("startup_error"===b.type){let a="string"==typeof b.errorMessage?b.errorMessage:void 0;this.fail(i,new rR("startup_error",a));return}this.options.onEvent(b)}},b.onerror=()=>{this.fail(i,new rR("closed"))},i}fail(a,b){this.current===a&&(this.discard(a,b),"startup_error"===b.status?this.stopRetrying():this.scheduleRetry(a.sessionId))}discard(a,b){a.attempt.fail(b),a.source.close(),this.current===a&&(this.current=null)}scheduleRetry(a){if(!this.options.shouldMaintain(a)||this.retry?.sessionId===a)return;this.clearRetry();let b=setTimeout(()=>{this.retry?.timer===b&&(this.retry=null,this.maintain(a))},this.options.reconnectDelayMs);this.retry={sessionId:a,timer:b}}stopRetrying(){this.retryGeneration+=1,this.clearRetry()}clearRetry(){this.retry&&clearTimeout(this.retry.timer),this.retry=null}}function rT(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function rU(a,b,c,d=8){return a+b>=c-d}let rV={isStreaming:!1,streamingMessage:null};function rW(a,b,c){let d=a.streamingMessage;if(!d||!Number.isInteger(b)||b<0)return a;let e=[...d.content],f=c(e[b]);return f?(e[b]=f,{isStreaming:!0,streamingMessage:{...d,content:e}}):a}function rX(a,b){switch(b.type){case"start":return{isStreaming:!0,streamingMessage:null};case"snapshot":{let c=rK(b.message,{includeStreamingRawInput:!0});return"assistant"===c.role?{isStreaming:!0,streamingMessage:c}:a}case"delta":var c=b.event;switch(c.type){case"text_start":return rW(a,c.contentIndex,a=>a?.type==="text"?a:{type:"text",text:""});case"text_delta":return rW(a,c.contentIndex,a=>a?.type==="text"?{...a,text:a.text+c.delta}:null);case"text_end":return rW(a,c.contentIndex,a=>({...a?.type==="text"?a:{},type:"text",text:c.content}));case"thinking_start":return rW(a,c.contentIndex,a=>a?.type==="thinking"?a:{type:"thinking",thinking:""});case"thinking_delta":return rW(a,c.contentIndex,a=>a?.type==="thinking"?{...a,thinking:a.thinking+c.delta}:null);case"thinking_end":return rW(a,c.contentIndex,a=>({...a?.type==="thinking"?a:{},type:"thinking",thinking:c.content}));case"toolcall_start":return rW(a,c.contentIndex,a=>a?.type==="toolCall"?{...a,toolCallId:c.id??a.toolCallId,toolName:c.toolName??a.toolName,rawInput:a.rawInput??""}:"string"!=typeof c.toolName?null:{type:"toolCall",toolCallId:c.id??"",toolName:c.toolName,input:{},rawInput:""});case"toolcall_delta":return rW(a,c.contentIndex,a=>a?.type==="toolCall"?{...a,toolCallId:c.id||a.toolCallId,toolName:c.toolName||a.toolName,rawInput:(a.rawInput??"")+c.delta}:null);case"toolcall_end":return rW(a,c.contentIndex,()=>({type:"toolCall",toolCallId:c.toolCall.id,toolName:c.toolCall.name,input:c.toolCall.arguments}));default:return a}case"end":return rV;default:return a}}function rY(a){return{steering:a?.steering??[],followUp:a?.followUp??[]}}function rZ(a){return new Promise(b=>setTimeout(b,a))}function r$(a){let b=a.findIndex(a=>!a.exiting);return -1===b?a:a.map((a,c)=>c===b?{...a,exiting:!0}:a)}function r_(a,b){switch(b.type){case"add":if(a.visible.some(a=>a.exiting)||a.visible.length>=5)return{visible:a.visible.some(a=>a.exiting)?a.visible:r$(a.visible),pending:[...a.pending,b.notice]};return{...a,visible:[...a.visible,b.notice]};case"mark_oldest_exiting":return{...a,visible:r$(a.visible)};case"remove":return function(a,b){let c=a,d=b;for(;d.length>0&&c.length<5;){let[a,...b]=d;c=[...c,a],d=b}return d.length>0&&!c.some(a=>a.exiting)&&(c=r$(c)),{visible:c,pending:d}}(a.visible.filter(a=>a.id!==b.id),a.pending);default:return a}}function r0(a,b){return a&&"object"==typeof a?"number"!=typeof a.tokensBefore||"number"!=typeof a.estimatedTokensAfter?null:{reason:b,tokensBefore:a.tokensBefore,estimatedTokensAfter:a.estimatedTokensAfter}:null}function r1(a){return"user"===a.role||"custom"===a.role&&"compaction"===a.customType}function r2(a,b,c={}){let d={...a,content:b};return c.omitUsage&&(d.usage=void 0),d}function r3({messageCount:a,toolCallCount:b,defaultExpanded:c=!1,children:d,t:e}){let[f,g]=(0,af.useState)(c),h=[e("chat.processDetails"),`${a} ${e(1===a?"chat.message":"chat.messages")}`];return b>0&&h.push(`${b} ${e(1===b?"chat.toolCall":"chat.toolCalls")}`),(0,ae.jsxs)("div",{style:{marginBottom:14},children:[(0,ae.jsxs)("button",{type:"button","aria-expanded":f,onClick:()=>g(a=>!a),style:{display:"flex",alignItems:"center",gap:8,width:"auto",minHeight:24,padding:"2px 0",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},title:e(f?"chat.collapseProcess":"chat.expandProcess"),children:[(0,ae.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:f?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,ae.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,ae.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.join(" \xb7 ")})]}),f&&(0,ae.jsx)("div",{style:{marginTop:8},children:d})]})}function r4({session:a,sessionRunning:b,newSessionCwd:d,newSessionDraftKey:e,onAgentEnd:f,onAttentionNeeded:g,onSessionCreated:h,onSessionForked:i,modelsRefreshKey:j,chatInputRef:k,onBranchDataChange:l,onSystemPromptChange:m,onSystemPromptLoaderChange:n,onSessionStatsChange:o,onSessionStatsPanelOpen:p,onContextUsageChange:q,onOpenFile:r,soundEnabled:s=!0,onSoundToggle:t,playDoneSound:u=()=>{},unlockAudio:v}){var w;let x,{t:y}=(0,ap.s)(),z=q3(),A=(0,af.useRef)(u);A.current=u;let B=(0,af.useRef)(s);B.current=s,(0,af.useRef)(null);let C=(0,af.useCallback)(()=>{B.current&&A.current(),f?.()},[f]),D=(0,af.useCallback)(a=>{k?.current?.replaceMessage(a)},[k]),{loading:E,error:F,messages:G,entryIds:H,streamState:I,agentRunning:J,bashRunning:K,pendingBash:L,modelNames:M,modelList:N,modelError:O,modelScopeWarnings:P,modelThinkingLevels:Q,modelThinkingLevelMaps:R,toolPreset:S,thinkingLevel:T,retryInfo:U,contextUsage:V,forkingEntryId:W,isCompacting:X,compactError:Y,compactResult:Z,displayModel:$,modelSwitching:_,sessionStats:aa,slashCommands:ab,slashCommandsLoading:ac,queuedMessages:ad,notices:ag,extensionDialog:ah,extensionCustomUi:ai,extensionStatuses:aj,extensionWidgets:ak,respondToExtensionUi:al,sendExtensionCustomInput:am,isAutoModelSelection:an,agentPhase:ao,isNew:aq,sessionIdRef:ar,messagesEndRef:as,scrollContainerRef:at,lastUserMsgRef:au,promptAnchorActive:av,handleSend:aw,handleAbort:ax,handleFork:ay,handleNavigate:az,handleModelChange:aA,handleCompact:aB,handleSteer:aC,handleFollowUp:aD,handlePromptWithStreamingBehavior:aE,handleAbortCompaction:aF,handleRecallQueue:aG,handleBuiltinSlashCommand:aH,handleToolPresetChange:aI,handleThinkingLevelChange:aJ,loadSlashCommands:aK,scrollUserMsgToTop:aL}=function(a){let{session:b,sessionRunning:d,newSessionCwd:e,newSessionDraftKey:f,onAgentEnd:g,onAttentionNeeded:h,onSessionCreated:i,onSessionForked:j,modelsRefreshKey:k,onBranchDataChange:l,onSystemPromptChange:m,onSystemPromptLoaderChange:n,onSessionStatsPanelOpen:o}=a,p=null===b&&null!==e,[q,r]=(0,af.useState)(null),[s,t]=(0,af.useState)(!p),[u,v]=(0,af.useState)(null),[w,x]=(0,af.useState)(null),[y,z]=(0,af.useState)([]),[A,B]=(0,af.useState)([]),[C,D]=(0,af.useReducer)(rX,rV),[E,F]=(0,af.useState)(!1),[G,H]=(0,af.useState)(!1),[I,J]=(0,af.useState)(null),[K,L]=(0,af.useState)({}),[M,N]=(0,af.useState)([]),[O,P]=(0,af.useState)(null),[Q,R]=(0,af.useState)([]),[S,T]=(0,af.useState)({}),[U,V]=(0,af.useState)({}),[W,X]=(0,af.useState)(null),[Y,Z]=(0,af.useState)(null),[$,_]=(0,af.useState)("default"),[aa,ab]=(0,af.useState)("auto"),[ac,ad]=(0,af.useState)(null),[ae,ag]=(0,af.useState)(null),[ah,ai]=(0,af.useState)(null),[aj,ak]=(0,af.useState)(null),[al,am]=(0,af.useState)(null),[an,ao]=(0,af.useState)(null),[ap,aq]=(0,af.useState)(!1),[ar,as]=(0,af.useState)(!1),[at,au]=(0,af.useState)(null),[av,aw]=(0,af.useState)(null),[ax,ay]=(0,af.useState)(null),[az,aA]=(0,af.useState)(!1),[aB,aC]=(0,af.useState)([]),[aD,aE]=(0,af.useState)(!1),[aF,aG]=(0,af.useReducer)(r_,{visible:[],pending:[]}),[aH,aI]=(0,af.useState)(null),[aJ,aK]=(0,af.useState)(null),[aL,aM]=(0,af.useState)(null),[aN,aO]=(0,af.useState)([]),[aP,aQ]=(0,af.useState)([]),[aR,aS]=(0,af.useState)({steering:[],followUp:[]}),aT=(0,af.useRef)(null),aU=(0,af.useRef)(null),aV=(0,af.useRef)(0),aW=(0,af.useRef)(!1),aX=(0,af.useRef)(b?.id??null),aY=(0,af.useRef)(b?.id??null),aZ=(0,af.useRef)(!!d),a$=(0,af.useRef)(!1),a_=(0,af.useRef)(!1),a0=(0,af.useRef)(!1),a1=(0,af.useRef)(-1),a2=(0,af.useRef)(!1),a3=(0,af.useRef)(0),a4=(0,af.useRef)(null),a5=(0,af.useRef)(!1),a6=(0,af.useRef)(null),a7=(0,af.useRef)(!1),a8=(0,af.useRef)(!0),a9=(0,af.useRef)(0),ba=(0,af.useRef)(null),bb=(0,af.useRef)(void 0),bc=(0,af.useRef)(null),bd=(0,af.useRef)(null),be=(0,af.useRef)(null),bf=(0,af.useRef)(!1),bg=(0,af.useRef)(null),bh=(0,af.useRef)(null),bi=(0,af.useRef)(0),bj=(0,af.useRef)(null),bk=(0,af.useRef)(!1),bl=(0,af.useRef)(new Map),bm=(0,af.useRef)(!0);aY.current=b?.id??null,aZ.current=!!d,aT.current||(aT.current=new rS({createSource:a=>new EventSource(`/api/agent/${encodeURIComponent(a)}/events`),onEvent:a=>a4.current?.(a),shouldMaintain:a=>bm.current&&aX.current===a&&(a$.current||aW.current||aY.current===a&&aZ.current),readinessTimeoutMs:6e4,reconnectDelayMs:1e3,onUnexpectedError:a=>{console.error("Failed to maintain the agent event stream:",a)}}));let bn=a.setToolPreset??_,bo=(0,af.useCallback)((a="smooth")=>{let b=bd.current;bc.current?.scrollIntoView({behavior:a}),b&&(a9.current=b.scrollTop)},[]),bp=al??q?.context.model??an??null,bq=p?W??Y:bp,br=b?.id??f??void 0,bs=(0,af.useCallback)(a=>{if(!a)return;let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=bl.current.get(b);if(!a)break;b=a}return b},[]),bt=(0,af.useCallback)((b,c,d)=>{let e=c?.map(({data:a,mimeType:b})=>({data:a,mimeType:b})),g=bs(d);if(!bm.current&&!bf.current&&d===f)return;let h=a.chatInputRef?.current;if(h)h.restoreSubmission(b,e,g);else{let a,c;g&&(c=qS(b,e,(a=qO(g)??{value:"",images:[]}).value,a.images),qP(g,c))}},[f,a.chatInputRef,bs]),bu=(0,af.useMemo)(()=>{if(aH)return{...aH,totalActiveMs:q?.totalActiveMs};let a={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},c=0,d=0,e=0,f=0,g=0;for(let b of y){if("user"===b.role&&(d+=1),"toolResult"===b.role&&(f+=1),"assistant"!==b.role)continue;e+=1;let h=b.usage;g+=b.content.filter(a=>"toolCall"===a.type).length,h&&(a.input+=h.input??0,a.output+=h.output??0,a.cacheRead+=h.cacheRead??0,a.cacheWrite+=h.cacheWrite??0,c+=h.cost?.total??0)}return(a.total=a.input+a.output+a.cacheRead+a.cacheWrite,0===a.total&&0===y.length)?null:{sessionFile:q?.filePath||void 0,sessionId:aX.current??b?.id??"",sessionName:b?.name,userMessages:d,assistantMessages:e,toolCalls:g,toolResults:f,totalMessages:y.length,tokens:a,cost:c,totalActiveMs:q?.totalActiveMs,...ae?{contextUsage:ae}:{}}},[y,aH,ae,q?.filePath,q?.totalActiveMs,b?.id,b?.name]),bv=(0,af.useCallback)(async(a,b=!1,c=!1)=>{let d=!1;try{b&&t(!0);let e=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),f=await fetch(`/api/sessions/${encodeURIComponent(a)}?${e}`);if(404===f.status)return b&&(r(null),x(null),z([]),v(null)),null;if(!f.ok)throw Error(`HTTP ${f.status}`);let g=await f.json();if(aX.current!==a)return null;let h=g.context.messages;if(r(g),x(g.leafId),z(h),B(g.context.entryIds??[]),am(a=>bk.current?a:null),v(null),g.context.thinkingLevel&&"off"!==g.context.thinkingLevel&&ab(g.context.thinkingLevel),d=!0,b&&t(!1),!c)return null;try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/state`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();if(aX.current!==a)return null;let d=c.state;return d?(void 0!==d.contextUsage&&ag(d.contextUsage??null),void 0!==d.systemPrompt&&ai(d.systemPrompt??null),void 0!==d.thinkingLevel&&ab(d.thinkingLevel??"auto"),void 0!==d.extensionStatuses&&aO(d.extensionStatuses??[]),void 0!==d.extensionWidgets&&aQ(d.extensionWidgets??[]),void 0!==d.queuedMessages&&aS(rY(d.queuedMessages))):c.running||aS({steering:[],followUp:[]}),c}catch(a){return console.error("Failed to load agent state:",a),null}}catch(a){return v(String(a)),null}finally{b&&!d&&t(!1)}},[]),bw=(0,af.useCallback)(async(a,b)=>{try{let c=new URLSearchParams({deferThinking:"1",deferMedia:"1"});b&&c.set("leafId",b);let d=`/api/sessions/${encodeURIComponent(a)}/context?${c}`,e=await fetch(d);if(!e.ok)throw Error(`HTTP ${e.status}`);let f=await e.json();z(f.context.messages),B(f.context.entryIds??[])}catch(a){console.error("Failed to load context:",a)}},[]),bx=(0,af.useCallback)(async a=>{try{let b=await rN(a,{type:"get_tools"});if(b){let{getPresetFromTools:a}=await Promise.resolve().then(c.bind(c,29947));bn(a(b))}}catch(a){console.error("Failed to load tools:",a)}},[bn]),by=(0,af.useCallback)((b=0,c="(no messages)")=>{let d=aX.current;if(p&&e&&d&&!bf.current&&(bf.current=!0,f)){if(f!==d){bl.current.set(f,d);let b=a.chatInputRef?.current;b?b.rekeyDraft(f,d):qT(f,d)}i?.({id:d,path:"",cwd:e,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:b,firstMessage:c,transient:!0},f)}},[p,e,f,i,a.chatInputRef]),bz=(0,af.useCallback)(async()=>{if(aX.current||!p||!e)return aX.current;if(be.current)return be.current;let a=(async()=>{let a=bg.current,b=bh.current;a&&ao(a);let c=(0,rO.xG)($),d=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,type:"ensure_session",toolNames:c,...a?{provider:a.provider,modelId:a.modelId}:{},...b?{thinkingLevel:b}:{}})});if(!d.ok)throw Error(`HTTP ${d.status}`);let f=await d.json(),g=f.sessionId;return aX.current=g,f.model&&bg.current===a&&(ao(f.model),a||Z(f.model)),f.thinkingLevel&&bh.current===b&&ab(f.thinkingLevel),g})();be.current=a;try{return await a}finally{be.current=null}},[p,e,$]);(0,af.useCallback)(async()=>{let a=aX.current??await bz();if(!a)return;let b=await rN(a,{type:"get_state"});bm.current&&aX.current===a&&ai(b.systemPrompt??"")},[bz]);let bA=(0,af.useCallback)(async()=>{let a=aX.current??await bz();if(!a)return aC([]),[];aE(!0);try{let b=await rN(a,{type:"get_commands"}),c=b?.commands??[];return aC(c),c}catch(a){return console.error("Failed to load slash commands:",a),aC([]),[]}finally{aE(!1)}},[bz]),bB=(0,af.useCallback)(()=>{aV.current+=1,aW.current=!1,aU.current&&(clearTimeout(aU.current),aU.current=null)},[]),bC=(0,af.useCallback)(()=>{aT.current?.close()},[]),bD=(0,af.useCallback)(a=>aT.current.ensureConnected(a),[]);(0,af.useCallback)(a=>{aT.current.maintain(a)},[]);let bE=(0,af.useCallback)(async(a,b)=>{let c=aX.current;if(aK(b=>b?.id===a.id?null:b),c)try{await rN(c,{type:"extension_ui_response",id:a.id,...b})}catch(a){console.error("Failed to send extension UI response:",a)}},[]),bF=(0,af.useCallback)(async(a,b)=>{let c=aX.current;if(c)try{await rN(c,{type:"extension_ui_input",id:a.id,data:b})}catch(a){console.error("Failed to send extension custom UI input:",a)}},[]),bG=(0,af.useCallback)(a=>{let b=a.message.trim();b&&aG({type:"add",notice:{id:a.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:b,type:a.type??"info"}})},[]),bH=(0,af.useCallback)(b=>{switch(rH(b)&&h?.(b),b.method){case"select":case"confirm":case"input":case"editor":aK(b);break;case"notify":bG({id:b.id,message:b.message,type:b.notifyType??"info"});break;case"setStatus":aO(a=>{let c=a.filter(a=>a.key!==b.statusKey);return void 0!==b.statusText?[...c,{key:b.statusKey,text:b.statusText}]:c});break;case"setWidget":aQ(a=>{let c=a.filter(a=>a.key!==b.widgetKey);return b.widgetLines?[...c,{key:b.widgetKey,lines:b.widgetLines,placement:b.widgetPlacement??"aboveEditor"}]:c});break;case"setTitle":b.title&&(document.title=b.title);break;case"set_editor_text":a.chatInputRef?.current?.insertText(b.text);break;case"page_ability_list":(async()=>{try{let a=await p3(),c=aX.current;c&&await rN(c,{type:"extension_ui_response",id:b.id,data:a})}catch(a){console.error("page_ability_list 响应失败:",a)}})();break;case"page_ability":(async()=>{try{let a=await p4(b.ability,b.params),c=aX.current;c&&await rN(c,{type:"extension_ui_response",id:b.id,data:a})}catch(a){console.error("page_ability 响应失败:",a)}})();break;case"custom":aM(a=>b.closed?a?.id===b.id?null:a:b)}},[bG,h,a.chatInputRef]),bI=(0,af.useCallback)(()=>{let a=a$.current;return a$.current=!1,F(!1),ay(null),ad(null),D({type:"end"}),a},[]),bJ=(0,af.useCallback)(a=>a1.current!==a&&(a1.current=a,g?.(),!0),[g]),bK=(0,af.useCallback)(a=>{bB(),aW.current=!0;let b=aV.current,c=async()=>{if(b===aV.current&&aX.current===a&&aW.current)try{let d=await fetch(`/api/agent/${encodeURIComponent(a)}`);if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.json();if(b!==aV.current||aX.current!==a||!aW.current)return;let f=e.state;if(e.running&&f&&(f.isStreaming||f.isPromptRunning)){aW.current=!1,aU.current=null,a_.current=!!f?.isStreaming,a0.current=!!f?.isPromptRunning,a$.current=!0,F(!0),ay(f?.isStreaming?{kind:"waiting_model"}:{kind:"running_command"});return}if(e.running&&f?.isCompacting){as(!0),aU.current=setTimeout(()=>void c(),600);return}aW.current=!1,aU.current=null,bC()}catch{if(b!==aV.current||aX.current!==a||!aW.current)return;aU.current=setTimeout(()=>void c(),600)}};aU.current=setTimeout(()=>void c(),3e4)},[bB,bC]),bL=(0,af.useCallback)(async(a=aX.current,b=bi.current)=>{if(bi.current===b)try{a&&await bv(a)}finally{if(bi.current!==b)return;let c=a0.current,d=a_.current;a0.current=!1,a_.current=!1,bj.current=null;let e=bI();c?bJ(b):d&&e&&g?.(),a&&bK(a)}},[bv,bJ,g,bK,bI]),bM=(0,af.useCallback)(async(a,b)=>{await rZ(800);let c=Date.now();for(;a$.current&&Date.now()-c<2e4;){if(void 0!==b&&bi.current!==b)return;try{let c=await fetch(`/api/agent/${encodeURIComponent(a)}`);if(c.ok){let d=await c.json(),e=d.state;if(!d.running||!e||!e.isStreaming&&!e.isPromptRunning)return void await bL(a,b)}}catch{}await rZ(600)}},[bL]);(0,af.useCallback)(async a=>{let b=a3.current+1;for(a3.current=b;a2.current&&a3.current===b&&aX.current===a;){await rZ(1e3);try{let c=await fetch(`/api/agent/${encodeURIComponent(a)}`);if(!c.ok)continue;let d=await c.json();if(d.state?.isBashRunning)continue;if(await bv(a),a3.current!==b||aX.current!==a)return;a2.current=!1,H(!1),J(null);return}catch{}}},[bv]);let bN=(0,af.useCallback)(async a=>{if(!a$.current||aX.current!==a)return;let b=bi.current;try{let c=await fetch(`/api/agent/${encodeURIComponent(a)}`);if(!c.ok)return;let d=await c.json();if(aX.current!==a||bi.current!==b)return;let e=d.state;if(as(e?.isCompacting??!1),aS(rY(e?.queuedMessages)),d.running&&e&&(e.isStreaming||e.isPromptRunning||e.isCompacting)){a_.current=!!e.isStreaming,a0.current=!!e.isPromptRunning;return}if(!a$.current)return;e&&(void 0!==e.contextUsage&&ag(e.contextUsage??null),void 0!==e.systemPrompt&&ai(e.systemPrompt??null),void 0!==e.extensionStatuses&&aO(e.extensionStatuses??[]),void 0!==e.extensionWidgets&&aQ(e.extensionWidgets??[])),await bL(a,b)}catch{}},[bL]);a4.current=(0,af.useCallback)(a=>{switch(a.type){case"connected":D({type:"end"}),!0===a.isStreaming&&(bB(),a_.current=!0,a$.current=!0,F(!0),ay({kind:"waiting_model"}));break;case"agent_start":bB(),a_.current=!0,a$.current=!0,F(!0),ay({kind:"waiting_model"}),D({type:"start"});break;case"agent_end":if(!a$.current)break;ay(null),ad(null),D({type:"end"}),aX.current&&(bv(aX.current),fetch(`/api/agent/${encodeURIComponent(aX.current)}`).then(a=>a.json()).then(a=>{a.state?.contextUsage!==void 0&&ag(a.state.contextUsage??null),a.state?.systemPrompt!==void 0&&ai(a.state.systemPrompt??null),a.state?.extensionStatuses!==void 0&&aO(a.state.extensionStatuses??[]),a.state?.extensionWidgets!==void 0&&aQ(a.state.extensionWidgets??[]),aS(rY(a.state?.queuedMessages))}).catch(()=>{}));break;case"agent_settled":{let a=a_.current;if(a_.current=!1,!a||a0.current)break;let b=aX.current,c=bI();as(!1),b&&(bv(b),bK(b)),c&&g?.();break}case"prompt_done":{let a=bi.current,b=a0.current;a0.current=!1,bj.current=null;let c=bJ(a);if(!b&&!c)break;let d=aX.current;d&&bv(d),!a_.current&&(bI(),d&&bK(d))}break;case"prompt_error":bG({type:"error",message:a.errorMessage??"Command failed"});break;case"extension_error":bG({type:"error",message:a.error??"Extension command failed"});break;case"message_start":case"message_update":if(!a$.current)break;if("message_start"===a.type){let b=a.message;if(b?.role==="user")break;b?.role==="assistant"?(D({type:"snapshot",message:b}),b.content.length>0&&ay(null)):b&&ay(null)}else{let b=a.assistantMessageEvent;b&&(D({type:"delta",event:b}),"toolcall_start"!==b.type&&"toolcall_delta"!==b.type&&ay(null))}!a7.current&&a8.current&&null===ba.current&&(ba.current=requestAnimationFrame(()=>{ba.current=null,a8.current&&bo("auto")}));break;case"message_end":{if(!a$.current)break;let b=a.message;if(b&&"user"===b.role){let a=rK(b),c=rQ(a),d=bj.current;bj.current=null,z(b=>{let e=b[b.length-1];return d&&e?.role==="user"&&rQ(e)===d?d===c?b:[...b.slice(0,-1),a]:[...b,a]})}else b&&z(a=>[...a,rK(b)]);D({type:"end"}),ay({kind:"waiting_model"});break}case"tool_execution_start":{let b=a.toolCallId,c=a.toolName;ay(a=>{let d=a?.kind==="running_tools"?[...a.tools]:[];return d.some(a=>a.id===b)||d.push({id:b,name:c}),{kind:"running_tools",tools:d}});break}case"tool_execution_update":{let b=a.toolCallId,c=a.toolName,d=function(a){if(!rT(a))return null;let b=a.content;if(!Array.isArray(b))return null;let c=b.filter(a=>rT(a)&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n").split(/\r?\n/),d="";for(let a=c.length-1;a>=0&&!(d=c[a].trim());a-=1);if(!d)return null;let e=d.replace(/\s+/g," ");return e.length<=500?e:`...${e.slice(-497)}`}(a.partialResult);ay(a=>{let e=a?.kind==="running_tools"?[...a.tools]:[],f=e.find(a=>a.id===b),g={id:b,name:c||f?.name||"tool",progress:d??f?.progress};return{kind:"running_tools",tools:[...e.filter(a=>a.id!==b),g]}});break}case"tool_execution_end":{let b=a.toolCallId;ay(a=>{if(a?.kind!=="running_tools")return a;let c=a.tools.filter(a=>a.id!==b);return 0===c.length?{kind:"waiting_model"}:{kind:"running_tools",tools:c}});break}case"queue_update":aS({steering:[...a.steering??[]],followUp:[...a.followUp??[]]});break;case"auto_retry_start":ad({attempt:a.attempt,maxAttempts:a.maxAttempts,errorMessage:a.errorMessage});break;case"auto_retry_end":ad(null);break;case"auto_compaction_start":case"compaction_start":as(!0),au(null),aw(null);break;case"auto_compaction_end":case"compaction_end":as(!1),a.errorMessage?(au(a.errorMessage),aw(null)):!a.aborted&&(aw(r0(a.result,a.reason??"auto")),aX.current&&bv(aX.current));break;case"extension_ui_request":bH(a)}},[bG,bB,bH,bv,bJ,g,bK,bo,bI]);let bO=(0,af.useCallback)(async(a,c)=>{let d=a.trim();if(!d&&!c?.length)return;if(a$.current||a2.current)return void bt(a,c,br);let f=!c?.length&&d.startsWith("/");if(!c?.length&&d.startsWith("!")){let b=d.startsWith("!!"),e=(b?d.slice(2):d.slice(1)).trim();return e?void await bb.current?.(e,b):void bt(a,c,br)}let g=bi.current+1;bB(),a0.current=!0;let h=c?.map(a=>({type:"image",source:{type:"base64",media_type:a.mimeType,data:a.data}})),i={role:"user",content:h?.length?[...a.trim()?[{type:"text",text:a}]:[],...h]:a,timestamp:Date.now()};z(a=>[...a,i]),bj.current=rQ(i),bi.current=g,a$.current=!0,F(!0),ay(f?{kind:"running_command"}:{kind:"waiting_model"}),D({type:"start"}),a7.current=!0,aA(!0);let j=c?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})),k=null,l=!1;try{if(p&&e){let b=aX.current??await be.current,c=b??await bz();if(!c)throw Error("Unable to create a session for the prompt");k=c,W&&(ao(W),b&&await rN(c,{type:"set_model",provider:W.provider,modelId:W.modelId})),await bD(c),l=!0,await rN(c,{type:"prompt",message:a,...j?.length?{images:j}:{}}),by(1,a)}else if(b)k=b.id,await bD(b.id),l=!0,await rN(b.id,{type:"prompt",message:a,...j?.length?{images:j}:{}});else throw Error("No active session for the prompt");f&&k&&bM(k,g)}catch(b){if(console.error("Failed to send message:",b),!(!l||rM(b))&&k)return void bM(k,g);if(a0.current=!1,z(a=>{let b=a.lastIndexOf(i);return -1===b?a:[...a.slice(0,b),...a.slice(b+1)]}),bG({type:"error",message:b instanceof Error?b.message:String(b)}),bt(a,c,br),bj.current=null,k)return void bN(k);a$.current=!1,bC(),F(!1),ay(null),D({type:"end"})}},[p,e,W,b,bz,bD,by,bM,bG,bB,bC,br,bN,bt]);bb.current=(0,af.useCallback)(async(a,c)=>{if(a$.current||a2.current)return;let d=`${c?"!!":"!"}${a}`;a2.current=!0,J({command:a,excludeFromContext:c}),H(!0);try{let e=aX.current??b?.id??await bz();if(!e)throw Error("Unable to create a session for the shell command");await rN(e,{type:"bash",command:a,excludeFromContext:c}),await bv(e),by(1,d)}catch(a){console.error("Failed to execute shell command:",a),bG({type:"error",message:a instanceof Error?a.message:String(a)}),bt(d,void 0,br)}finally{a2.current=!1,J(null),H(!1)}},[bG,br,bz,bv,by,bt,b]);let bP=(0,af.useCallback)(async()=>{let a=aX.current;if(a){if(a2.current){try{await rN(a,{type:"abort_bash"})}catch(a){console.error("Failed to abort bash:",a)}return}try{await rN(a,{type:"abort"})}catch(a){console.error("Failed to abort:",a)}}},[]),bQ=(0,af.useCallback)(async a=>{if(a2.current)return;let b=aX.current;if(b){ak(a);try{let{cancelled:c,newSessionId:d}=await rN(b,{type:"fork",entryId:a})??{};!c&&d&&j?.(d)}catch(a){console.error("Fork failed:",a)}finally{ak(null)}}},[j]),bR=(0,af.useCallback)(async a=>{if(a2.current)return;let b=aX.current;b&&(rN(b,{type:"navigate_tree",targetId:a}).catch(()=>{}),x(a),await bw(b,a))},[bw]);(0,af.useCallback)(async a=>{if(a2.current)return;x(a);let b=aX.current;b&&(await bw(b,a),a&&rN(b,{type:"navigate_tree",targetId:a}).catch(()=>{}))},[bw]);let bS=(0,af.useCallback)(async(a,b)=>{if(p){let c={provider:a,modelId:b};bg.current=c,X(c),ao(c);let d=aX.current??await be.current;if(!d)return;try{await rN(d,{type:"set_model",provider:a,modelId:b})}catch(a){console.error("Failed to set model:",a)}return}let c=aX.current;if(c&&!bk.current){bk.current=!0,am({provider:a,modelId:b}),aq(!0);try{await rN(c,{type:"set_model",provider:a,modelId:b}),bk.current=!1,await bv(c)}catch(a){console.error("Failed to set model:",a),bk.current=!1,am(al),bG({type:"error",message:`Failed to switch model: ${a instanceof Error?a.message:String(a)}`}),await bv(c)}finally{bk.current=!1,aq(!1)}}},[bG,al,p,bv,X]),bT=(0,af.useCallback)(async()=>{let a=aX.current;if(a&&!ar){as(!0),au(null),aw(null);try{let b=await rN(a,{type:"compact"});aw(r0(b,"manual")),await bv(a,!0)}catch(a){au(a instanceof Error?a.message:String(a)),aw(null)}finally{as(!1)}}},[ar,bv]),bU=(0,af.useCallback)(async a=>{let c=e??b?.cwd??"",d=c?`/api/models?cwd=${encodeURIComponent(c)}`:"/api/models",f=await fetch(d,a?{signal:a}:void 0);if(!f.ok)throw Error(`HTTP ${f.status}`);let g=await f.json();L(g.models),P(g.modelError??null),R(g.modelScopeWarnings??[]),T(g.thinkingLevels??{}),V(g.thinkingLevelMaps??{});let h=g.modelList??[];if(N(h),p&&!aX.current){let a=(g.defaultModel?h.find(a=>a.id===g.defaultModel?.modelId&&a.provider===g.defaultModel?.provider):void 0)??h[0];Z(a?{provider:a.provider,modelId:a.id}:null);let b=a&&g.thinkingLevelPins?.[`${a.provider}/${a.id}`];null===bh.current&&ab(b??"auto")}},[p,e,b?.cwd]),bV=(0,af.useCallback)(async a=>{if(!a.startsWith("/"))return{handled:!1};let b=a.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!b)return{handled:!1};let[,c,d=""]=b,e=d.trim(),f=aX.current??await bz(),g=a=>(a.handled&&(a.error?bG({type:"error",message:a.error}):"openSessionStats"!==a.action&&bG({type:"success",message:a.message??"Command completed"})),a);try{switch(c){case"compact":{if(!f||ar)return g({handled:!0,error:"No active session to compact"});as(!0),au(null),aw(null);let a=await rN(f,{type:"compact",...e?{customInstructions:e}:{}});return aw(r0(a,"manual")),await bv(f,!0)&&by(),g({handled:!0,message:"Compacted context"})}case"reload":if(!f)return g({handled:!0,error:"No active session to reload"});return await rN(f,{type:"reload"}),await Promise.all([bv(f,!1,!0),bx(f),bA(),bU()]),g({handled:!0,message:"Reloaded session resources"});case"name":if(!f)return g({handled:!0,error:"No active session to name"});if(!e)return g({handled:!0,error:"Usage: /name <name>"});return await rN(f,{type:"set_session_name",name:e}),await bv(f)&&by(),g({handled:!0,message:`Session renamed to ${e}`});case"session":{if(!f)return g({handled:!0,error:"No active session"});let a=await rN(f,{type:"get_session_stats"});return a&&aI(a),o?.(),g({handled:!0,action:"openSessionStats"})}case"copy":{if(!f)return g({handled:!0,error:"No active session"});let a=await rN(f,{type:"get_last_assistant_text"}),b=a?.text??"";if(!b)return g({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(b),g({handled:!0,message:"Copied last assistant message"})}default:return{handled:!1}}}catch(a){return g({handled:!0,error:a instanceof Error?a.message:String(a)})}finally{"compact"===c&&as(!1)}},[bG,bz,ar,bU,bv,bA,bx,by,o]),bW=(0,af.useCallback)(async(a,b,c)=>{let d=aX.current;if(!d){bt(a,c,br),bG({type:"error",message:"No active session for the queued message"});return}let e=c?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType}));try{await rN(d,{type:"prompt",message:a,streamingBehavior:b,...e?.length?{images:e}:{}})}catch(b){console.error("Failed to submit streaming prompt:",b),rM(b)&&bt(a,c,br),bG({type:"error",message:b instanceof Error?b.message:String(b)})}},[bG,br,bt]),bX=(0,af.useCallback)(async(a,b)=>{await bW(a,"steer",b)},[bW]),bY=(0,af.useCallback)(async(a,b,c)=>{await bW(a,b,c)},[bW]),bZ=(0,af.useCallback)(async(a,b)=>{await bW(a,"followUp",b)},[bW]),b$=(0,af.useCallback)(async()=>{let a=aX.current;if(a)try{await rN(a,{type:"abort_compaction"})}catch(a){console.error("Failed to abort compaction:",a)}},[]),b_=(0,af.useCallback)(async()=>{let b=aX.current;if(b)try{let c=await rN(b,{type:"clear_queue"});aS({steering:[],followUp:[]});let d=[...c?.steering??[],...c?.followUp??[]];d.length>0&&a.chatInputRef?.current?.prependText(d.join("\n\n"))}catch(a){console.error("Failed to recall queued messages:",a),bG({type:"error",message:"Failed to recall queued messages"})}},[a.chatInputRef,bG]),b0=(0,af.useCallback)(async a=>{if(ab(a),p&&!aX.current&&(bh.current="auto"===a?null:a),"auto"===a)return;let b=aX.current??await be.current;if(b)try{await rN(b,{type:"set_thinking_level",level:a})}catch(a){console.error("Failed to set thinking level:",a)}},[p]),b1=(0,af.useCallback)(async a=>{let b=(0,rO.xG)(a);!function(a,b=null){if(b)try{b.setItem("pi-tool-preset",a)}catch{}}(a),bn(a);let c=aX.current??await be.current;if(c)try{await rN(c,{type:"set_tools",toolNames:b})}catch(a){console.error("Failed to set tools:",a)}},[bn]),b2=(0,af.useCallback)(()=>{let a=bd.current,b=a6.current;if(!a||!b)return;let c=Math.min(Math.max(0,b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop-16),Math.max(0,a.scrollHeight-a.clientHeight));null!==ba.current&&(cancelAnimationFrame(ba.current),ba.current=null),a8.current=!0,a9.current=c,a.scrollTo({top:c,behavior:"auto"})},[]);return(0,af.useCallback)(()=>{let a=bd.current;if(a){let{scrollTop:b,clientHeight:c,scrollHeight:d}=a,e=a$.current,f=a8.current,g=function(a,b,c,d,e,f=96){return!!rU(c,d,e)||!(c<b)&&(!!(!a&&c>b&&rU(c,d,e,f))||a)}(f,a9.current,b,c,d,e?96:8);a8.current=g,a9.current=b,!f&&g&&e?bo("auto"):g||null===ba.current||(cancelAnimationFrame(ba.current),ba.current=null)}},[bo]),{data:q,loading:s,error:u,activeLeafId:w,messages:y,entryIds:A,streamState:C,agentRunning:E,modelNames:K,modelList:M,modelError:O,modelScopeWarnings:Q,modelThinkingLevels:S,modelThinkingLevelMaps:U,newSessionModel:W,toolPreset:$,thinkingLevel:aa,retryInfo:ac,contextUsage:ae,systemPrompt:ah,forkingEntryId:aj,isCompacting:ar,compactError:at,compactResult:av,currentModel:bp,displayModel:bq,modelSwitching:ap,sessionStats:bu,slashCommands:aB,slashCommandsLoading:aD,queuedMessages:aR,notices:aF.visible,extensionDialog:aJ,extensionCustomUi:aL,extensionStatuses:aN,extensionWidgets:aP,respondToExtensionUi:bE,sendExtensionCustomInput:bF,isAutoModelSelection:p&&null===W,agentPhase:ax,isNew:p,promptAnchorActive:az,sessionIdRef:aX,messagesEndRef:bc,scrollContainerRef:bd,lastUserMsgRef:a6,pendingScrollToUserRef:a7,initialScrollDoneRef:a5,handleSend:bO,handleAbort:bP,handleFork:bQ,handleNavigate:bR,handleModelChange:bS,handleCompact:bT,handleSteer:bX,handleFollowUp:bZ,handlePromptWithStreamingBehavior:bY,handleAbortCompaction:b$,handleRecallQueue:b_,handleBuiltinSlashCommand:bV,handleToolPresetChange:b1,handleThinkingLevelChange:b0,loadTools:bx,loadSlashCommands:bA,setActiveLeafId:x,setData:r,setMessages:z,scrollToBottom:bo,scrollUserMsgToTop:b2,dispatch:D,setAgentRunning:F,setForkingEntryId:ak,bashRunning:G,pendingBash:I,handleAgentEventRef:a4}}({session:a,sessionRunning:b,newSessionCwd:d,newSessionDraftKey:e,onAgentEnd:C,onAttentionNeeded:g,onSessionCreated:h,onSessionForked:i,modelsRefreshKey:j,chatInputRef:k,onBranchDataChange:l,onSystemPromptChange:m,onSystemPromptLoaderChange:n,onSessionStatsPanelOpen:p}),aM=J||K,[aN,aO]=(0,af.useState)(50),aP=(0,af.useRef)(null);(0,af.useRef)(null),aa&&[aa.sessionId,aa.sessionFile??"",aa.sessionName??"",aa.userMessages,aa.assistantMessages,aa.toolCalls,aa.toolResults,aa.totalMessages,aa.tokens.input,aa.tokens.output,aa.tokens.cacheRead,aa.tokens.cacheWrite,aa.tokens.total,aa.cost??0,aa.totalActiveMs??0].join("|"),(0,af.useRef)(aa).current=aa,V&&(V.percent,V.contextWindow,V.tokens),(0,af.useRef)(V).current=V;let{isDragOver:aQ,handleDragEnter:aR,handleDragOver:aS,handleDragLeave:aT,handleDrop:aU}=function(a){let[b,c]=(0,af.useState)(!1),d=(0,af.useRef)(0),e=(0,af.useCallback)(a=>{a.dataTransfer.types.includes("Files")&&(a.preventDefault(),d.current+=1,c(!0))},[]),f=(0,af.useCallback)(a=>{a.dataTransfer.types.includes("Files")&&a.preventDefault()},[]);return{isDragOver:b,handleDragEnter:e,handleDragOver:f,handleDragLeave:(0,af.useCallback)(()=>{d.current-=1,d.current<=0&&(d.current=0,c(!1))},[]),handleDrop:(0,af.useCallback)(b=>{b.preventDefault(),d.current=0,c(!1),a(Array.from(b.dataTransfer.files))},[a])}}((0,af.useCallback)(a=>{k?.current?.addImages(a)},[k])),aV=G.filter(a=>"user"===a.role||"assistant"===a.role),aW=(0,af.useMemo)(()=>{let a=new Map;for(let b of G)"toolResult"===b.role&&a.set(b.toolCallId,b);return a},[G]),aX=(0,af.useMemo)(()=>{let a=new Set,b=[];for(let c=G.length-1;c>=0;c-=1){let d=function(a){if("user"!==a.role)return null;if("string"==typeof a.content){let b=a.content.trim();return b.length>0?b:null}let b=a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").trim();return b.length>0?b:null}(G[c]);if(!(!d||a.has(d))&&(a.add(d),b.push(d),b.length>=50))break}return b.reverse()},[G]),aY=(w=aV.length,(x=(0,af.useRef)([])).current=Array(w).fill(null).map((a,b)=>x.current[b]??null),x),aZ=(0,af.useCallback)(()=>{aO(a=>Math.max(a,2*G.length))},[G.length]),a$=aq&&0===G.length&&!I.isStreaming&&!aM,a_=!!I.streamingMessage?.content.length,a0=a?.cwd??d??void 0,a1=(0,af.useRef)(null),a2=(0,af.useRef)(null);(0,af.useRef)(0),(0,af.useRef)(null),(0,af.useRef)(!1),(0,af.useRef)(null);let a3=$?Q[`${$.provider}:${$.modelId}`]??null:null,a4=$?R[`${$.provider}:${$.modelId}`]??null:null,a5=(0,ae.jsx)(rv,{ref:k,onSend:aw,onAbort:ax,onSteer:J?aC:void 0,onFollowUp:J?aD:void 0,onPromptWithStreamingBehavior:J?aE:void 0,isStreaming:aM,model:$,isAutoModelSelection:an,modelNames:M,modelList:N,modelError:O,modelScopeWarnings:P,onModelChange:aA,modelSwitching:_,onCompact:a||aq?aB:void 0,onAbortCompaction:aF,isCompacting:X,compactError:Y,compactResult:Z,toolPreset:S,onToolPresetChange:a||aq?aI:void 0,thinkingLevel:T,onThinkingLevelChange:a||aq?aJ:void 0,availableThinkingLevels:a3,thinkingLevelMap:a4,retryInfo:U,queuedMessages:ad,inputHistory:aX,onRecallQueue:aG,slashCommands:ab,slashCommandsLoading:ac,onLoadSlashCommands:aK,onBuiltinCommand:aH,soundEnabled:s,onSoundToggle:t,onAudioUnlock:v,draftKey:a?.id??e??void 0,cwd:a?.cwd??d});return E?(0,ae.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:y("chat.loadingSession")}):F?(0,ae.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:F}):(0,ae.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",style:{paddingBottom:"env(safe-area-inset-bottom)"},onDragEnter:aR,onDragOver:aS,onDragLeave:aT,onDrop:aU,children:[aQ&&(0,ae.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,ae.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(a=>(0,ae.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${a}s`}},a))}),(0,ae.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,ae.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,ae.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,ae.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,ae.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,ae.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,ae.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,ae.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,ae.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,ae.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,ae.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,ae.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,ae.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ah&&(0,ae.jsx)(r6,{request:ah,onRespond:al}),ai&&(0,ae.jsx)(r7,{request:ai,onInput:am}),(0,ae.jsx)("div",{style:{position:"absolute",top:12,left:0,right:36*!z,zIndex:40,display:"flex",justifyContent:"center",padding:"0 16px",pointerEvents:"none"},children:(0,ae.jsx)(r5,{notices:ag,floating:!0})}),a$?(0,ae.jsx)("div",{className:"flex flex-1 flex-col items-center justify-end overflow-y-auto px-4 pt-8 pb-2",children:(0,ae.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,ae.jsx)("div",{className:"mb-3",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginLeft:16,marginRight:z?16:52,fontFamily:"var(--font-mono)"}}),a5,(0,ae.jsx)(rF,{statuses:aj,widgets:ak})]})}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)("div",{className:"relative flex min-w-0 flex-1 overflow-hidden",children:[(0,ae.jsx)("div",{ref:at,className:"min-w-0 flex-1 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-width:none]",children:(0,ae.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,ae.jsxs)("div",{ref:a1,style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(()=>{var b;let c,d,e=-1;for(let a=G.length-1;a>=0;a--)if("user"===G[a].role){e=a;break}let f=-1;for(let a=G.length-1;a>=0;a--)if(r1(G[a])){f=a;break}let g=new Map,h=0;G.forEach((a,b)=>{("user"===a.role||"assistant"===a.role)&&g.set(b,h++)});let i=(b,c={})=>{let d=c.messageOverride??G[b],f="user"===d.role&&b>0&&"assistant"===G[b-1].role?H[b-1]:void 0,h="user"===d.role||"assistant"===d.role,i=g.get(b),j=c.keyPrefix??"message",k=!1;if("assistant"===d.role){k=!0;for(let a=b+1;a<G.length;a++){let b=G[a].role;if("user"===b)break;if("assistant"===b){k=!1;break}}k&&I.isStreaming&&b===G.length-1&&(k=!1)}void 0!==c.showTimestamp&&(k=c.showTimestamp);let l=(0,ae.jsx)(qr,{message:d,toolResults:aW,modelNames:M,cwd:a0,onOpenFile:r,entryId:H[b],onFork:aM||aq||0===b&&"user"===d.role?void 0:ay,forking:W===H[b],onNavigate:aM?void 0:az,prevAssistantEntryId:aM?void 0:f,onEditContent:D,showTimestamp:k,prevTimestamp:b>0?G[b-1].timestamp:void 0,sessionId:a?.id??ar.current??void 0,writtenFiles:c.writtenFiles},`${j}-view-${b}`);return h&&!1!==c.attachRef&&void 0!==i?(0,ae.jsx)("div",{ref:a=>{aY.current[i]=a,b===e&&(au.current=a)},children:l},`${j}-${b}`):l},j=[];for(let a=0;a<G.length;){if(!r1(G[a])){j.push(i(a)),a+=1;continue}let b=a,c=b+1;for(;c<G.length&&!r1(G[c]);)c+=1;let d=function(a,b,c){for(let e=c-1;e>b;e--){var d;if("assistant"===(d=a[e]).role&&bb(d).answerBlocks.some(a=>"image"===a.type||"text"===a.type&&a.text.trim().length>0))return e}for(let d=c-1;d>b;d--)if(a[d]?.role==="assistant")return d;return -1}(G,b,c);if(-1===d||(aM||I.isStreaming)&&c===G.length&&b===f){for(let a=b;a<c;a++)j.push(i(a));a=c;continue}j.push(i(b));let e=[];for(let a=b+1;a<d;a++)e.push(a);let h=e.filter(a=>{var b;return"assistant"===(b=G[a]).role?a9(b).length>0:"custom"===b.role}),k=G[d],l=bb(k),m=l.processBlocks.length>0?r2(k,l.processBlocks,{omitUsage:!0}):null,n=l.answerBlocks.length>0||ba(k)?r2(k,l.answerBlocks):null,o=h.length+ +!!m;if(o>0){let a=h.map(a=>g.get(a)).find(a=>"number"==typeof a)??(n?void 0:g.get(d)),c=(0,ae.jsxs)(r3,{messageCount:o,defaultExpanded:!n,t:y,toolCallCount:function(a,b){let c=0;for(let d of b){let b=a[d];b?.role==="assistant"&&(c+=bc(a9(b)))}return c}(G,h)+bc(l.processBlocks),children:[h.map(a=>i(a,{attachRef:!1,keyPrefix:"process"})),m&&i(d,{attachRef:!1,keyPrefix:"process-final",messageOverride:m,showTimestamp:!1})]});j.push((0,ae.jsx)("div",{ref:void 0===a?void 0:b=>{aY.current[a]=b},children:c},`process-group-${b}-${d}`))}if(n){let a=[];for(let c=b+1;c<=d;c++){let b=G[c];if(b?.role==="assistant")for(let c of b.content??[])a.push(c)}let c=function(a,b,c){let d=new Set,e=[];for(let f of a){if("toolCall"!==f.type||!function(a){let b;return"write"===(b=a.toLowerCase())||b.startsWith("write_")||b.endsWith(".write")||b.endsWith("_write")||bh(a)}(f.toolName))continue;let a=b?.get(f.toolCallId);if(!a||a.isError)continue;let g=function(a){if(!a)return null;let b=a.file_path??a.path;return"string"==typeof b&&b.length>0?b:null}(f.input);if(!g)continue;let h=function(a,b){let c;if(!a)return null;let d=/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")||void 0!==b&&(/^[a-zA-Z]:[\\/]/.test(b)||b.startsWith("\\\\")),e=a=>d?a.replace(/\\/g,"/"):a,f=e(a),g=b?e(b).replace(/\/+$/,""):void 0,h=/^[a-zA-Z]:\//.test(f),i=f.startsWith("//");if(h||i)c=f;else if(f.startsWith("/")){let a=g?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??g?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];c=a?`${a}${f}`:f}else{if(!g)return null;c=`${g}/${f}`}return bf(c)}(g,c);h&&(d.has(h)||(d.add(h),e.push({filePath:h})))}return e}(a,aW,a0);j.push(i(d,{messageOverride:n,writtenFiles:c}))}for(let a=d+1;a<c;a++)j.push(i(a));a=c}let{startIndex:k,hasMore:l}=(c=Math.min(Math.max(aN,0),Math.max(b=j.length,0)),{startIndex:d=Math.max(0,b-c),hasMore:d>0});return(0,ae.jsxs)(ae.Fragment,{children:[l&&(0,ae.jsx)("div",{ref:aP,className:"py-3 text-center text-xs text-text-muted",children:y("chat.loadEarlier",{count:k})}),j.slice(k)]})})(),I.isStreaming&&a_&&I.streamingMessage&&(0,ae.jsx)(qr,{message:I.streamingMessage,isStreaming:!0,modelNames:M,cwd:a0,onOpenFile:r}),J&&!a_&&ao&&(0,ae.jsx)("div",{className:"break-words py-2 text-[13px] text-text-muted",children:(0,ae.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(a,b){if(a?.kind==="running_tools"){let c=a.tools[a.tools.length-1];if(c?.progress)return`${b("chat.runningNamedTool",{name:c.name})} ${c.progress}`;let d=a.tools.map(a=>a.name);return 0===d.length?b("chat.runningTool"):1===d.length?b("chat.runningNamedTool",{name:d[0]}):d.length<=3?b("chat.runningTools",{names:d.join(", ")}):b("chat.runningToolsMore",{names:d.slice(0,2).join(", "),count:d.length-2})}return a?.kind==="waiting_model"?b("chat.waitingModel"):a?.kind==="running_command"?b("chat.runningCommand"):null}(ao,y)})}),K&&!L&&(0,ae.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,ae.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:y("chat.runningCommand")})}),L&&(0,ae.jsx)(qr,{message:{role:"bashExecution",command:L.command,output:"",excludeFromContext:L.excludeFromContext},sessionId:a?.id??ar.current??void 0}),(0,ae.jsx)("div",{ref:a2,"aria-hidden":"true"}),(0,ae.jsx)("div",{ref:as})]})})}),z?null:(0,ae.jsx)(rD,{messages:G,streamingMessage:I.streamingMessage,scrollContainer:at,messageRefs:aY,onRevealHistory:aZ})]}),(0,ae.jsxs)("div",{className:"relative",children:[a5,(0,ae.jsx)(rF,{statuses:aj,widgets:ak})]})]})]})}function r5({notices:a,floating:b=!1}){return 0===a.length?null:(0,ae.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",marginBottom:10*!b},children:a.map((c,d)=>{let e="error"===c.type?"#ef4444":"warning"===c.type?"#d97706":"success"===c.type?"#10b981":"var(--accent)";return(0,ae.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:60,height:60,maxHeight:60,marginBottom:6*(d!==a.length-1),overflow:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:b?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:18,lineHeight:1.45,transformOrigin:"top center",animation:c.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,ae.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e,flexShrink:0}}),(0,ae.jsx)("span",{style:{padding:"14px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c.message})]},c.id)})})}function r6({request:a,onRespond:b}){let{t:c}=(0,ap.s)(),[d,e]=(0,af.useState)("editor"===a.method?a.prefill??"":""),f=()=>{"confirm"===a.method?b(a,{confirmed:!0}):b(a,{value:d})};return(0,ae.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,ae.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,ae.jsxs)("div",{style:{padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,ae.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650},children:a.title}),(0,ae.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:c("chat.extensionRequest")})]}),(0,ae.jsxs)("div",{style:{padding:14},children:["confirm"===a.method&&(0,ae.jsx)("div",{style:{color:"var(--text-muted)",fontSize:13,lineHeight:1.6,whiteSpace:"pre-wrap"},children:a.message}),"select"===a.method&&(0,ae.jsx)("div",{style:{display:"grid",gap:8},children:a.options.map(c=>(0,ae.jsx)("button",{onClick:()=>b(a,{value:c}),style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13},children:c},c))}),"input"===a.method&&(0,ae.jsx)("input",{autoFocus:!0,value:d,placeholder:a.placeholder,onChange:a=>e(a.target.value),onKeyDown:c=>{"Enter"===c.key&&f(),"Escape"===c.key&&b(a,{cancelled:!0})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===a.method&&(0,ae.jsx)("textarea",{autoFocus:!0,value:d,onChange:a=>e(a.target.value),onKeyDown:c=>{"Escape"===c.key&&b(a,{cancelled:!0}),(c.metaKey||c.ctrlKey)&&"Enter"===c.key&&f()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,ae.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,ae.jsx)("button",{onClick:()=>b(a,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:c("chat.cancel")}),"confirm"===a.method?(0,ae.jsx)("button",{onClick:f,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:c("chat.confirm")}):"select"!==a.method?(0,ae.jsx)("button",{onClick:f,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:c("chat.submit")}):null]})]})})}function r7({request:a,onInput:b}){let{t:c}=(0,ap.s)(),d=(0,af.useRef)(null),e=(0,af.useRef)(!1),f=function(a){let b=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,c=[];for(let d of a){let a=d.replace(a$,""),e=a1(a).trimEnd();if(b.test(e))continue;let f=a,g=a4(f);("│"===g||"┃"===g)&&" "===a4(f=a3(f,0))&&(f=a3(f,0));let h=function(a){let b=a2(a);for(let a=b.length-1;a>=0;a--)if(""!==b[a].char.trim())return a;return -1}(f),i=h>=0?a2(f)[h]?.char:void 0;("│"===i||"┃"===i)&&(f=a3(f,h)),c.push(function(a){let b=a;for(;;){let a=a2(b),c=a[a.length-1];if(!c||""!==c.char.trim())return b;b=b.slice(0,c.start)+b.slice(c.end)}}(f))}for(;c.length>0&&""===a1(c[0]).trim();)c.shift();for(;c.length>0&&""===a1(c[c.length-1]).trim();)c.pop();return c.length?c:a}(a.lines);return(0,ae.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,ae.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:a=>{a.target.closest("button")||d.current?.focus()},style:{position:"relative",width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,ae.jsx)("textarea",{ref:d,"aria-label":c("chat.extensionInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:c=>{if(e.current||c.nativeEvent.isComposing)return;let d=function(a){if(a.metaKey||a.ctrlKey&&!a.altKey&&"v"===a.key.toLowerCase())return null;if(a.ctrlKey&&!a.altKey){let b=function(a){if(1!==a.length)return null;let b=a.toUpperCase().charCodeAt(0);return b>=64&&b<=95?String.fromCharCode(31&b):"?"===a?"":null}(a.key);if(b)return b}if(a.altKey&&!a.ctrlKey){if("Backspace"===a.key)return"\x1b\x7f";let b=a7[a.key];if(b)return b;if(1===a.key.length)return`\x1b${a.key}`}return"Enter"===a.key?a.shiftKey?"\n":"\r":"Tab"===a.key?a.shiftKey?"\x1b[Z":" ":a6[a.key]??null}(c);d&&(c.preventDefault(),c.stopPropagation(),b(a,d))},onInput:c=>{if(e.current||c.nativeEvent.isComposing)return;let d=c.currentTarget.value;c.currentTarget.value="",d&&b(a,d)},onCompositionStart:()=>{e.current=!0},onCompositionEnd:c=>{e.current=!1;let d=c.currentTarget;queueMicrotask(()=>{let c=d.value;d.value="",c&&b(a,c)})},onPaste:c=>{c.preventDefault();let d=c.clipboardData.getData("text");d&&b(a,`\x1b[200~${d}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,ae.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:c("chat.extensionPanel")}),(0,ae.jsx)("button",{onClick:()=>b(a,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:c("chat.close")})]}),(0,ae.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(f.length?f:[""]).map((a,b,c)=>{var d;return(0,ae.jsxs)(af.Fragment,{children:[(d=`line-${b}`,a5(a).map((a,b)=>Object.keys(a.style).length>0?(0,ae.jsx)("span",{style:a.style,children:a.text},`${d}-${b}`):a.text)),b<c.length-1?"\n":null]},b)})})]})})}let r8={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},r9={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm",webm:"audio/webm"},sa={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xls:"application/vnd.ms-excel",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",ppt:"application/vnd.ms-powerpoint",doc:"application/msword"};function sb(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}var sc=Symbol("NOT_RESOLVED"),sd=Symbol("MERGE_KEY");function se(a,b){return{tagName:a,nodeKind:"scalar",implicit:b.implicit??!1,matchByTagPrefix:b.matchByTagPrefix??!1,implicitFirstChars:b.implicitFirstChars??null,resolve:b.resolve,identify:b.identify??null,represent:b.represent??(a=>String(a)),representTagName:b.representTagName??null}}function sf(a,b){let c=void 0===b.finalize;return{tagName:a,nodeKind:"sequence",implicit:!1,matchByTagPrefix:b.matchByTagPrefix??!1,create:b.create,addItem:b.addItem,finalize:b.finalize??(a=>a),carrierIsResult:c,identify:b.identify??null,represent:b.represent??(a=>a),representTagName:b.representTagName??null}}function sg(a,b){let c=void 0===b.finalize;return{tagName:a,nodeKind:"mapping",implicit:!1,matchByTagPrefix:b.matchByTagPrefix??!1,create:b.create,addPair:b.addPair,has:b.has,keys:b.keys,get:b.get,finalize:b.finalize??(a=>a),carrierIsResult:c,identify:b.identify??null,represent:b.represent??(a=>a),representTagName:b.representTagName??null}}var sh=se("tag:yaml.org,2002:str",{resolve:a=>a,identify:a=>"string"==typeof a}),si=["","~","null","Null","NULL"],sj=se("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["","~","n","N"],resolve:a=>-1!==si.indexOf(a)?null:sc,identify:a=>null===a,represent:()=>"null"}),sk=se("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["n"],resolve:(a,b)=>"null"===a||b&&""===a?null:sc,identify:a=>null===a,represent:()=>"null"}),sl=["","~","null","Null","NULL"],sm=se("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["","~","n","N"],resolve:a=>-1!==sl.indexOf(a)?null:sc,identify:a=>null===a,represent:()=>"null"}),sn=["true","True","TRUE"],so=["false","False","FALSE"],sp=se("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["t","T","f","F"],resolve:a=>-1!==sn.indexOf(a)||-1===so.indexOf(a)&&sc,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),sq=["true"],sr=["false"],ss=se("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["t","f"],resolve:a=>-1!==sq.indexOf(a)||-1===sr.indexOf(a)&&sc,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),st=["true","True","TRUE","y","Y","yes","Yes","YES","on","On","ON"],su=["false","False","FALSE","n","N","no","No","NO","off","Off","OFF"],sv=se("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["y","Y","n","N","t","T","f","F","o","O"],resolve:a=>-1!==st.indexOf(a)||-1===su.indexOf(a)&&sc,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),sw=RegExp("^(?:0o[0-7]+|0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),sx=RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),sy=se("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-","+",..."0123456789"],resolve:function(a,b){let c,d;if(b){if(!sx.test(a))return sc}else if(!sw.test(a))return sc;let e=(d=1,(("-"===(c=a)[0]||"+"===c[0])&&("-"===c[0]&&(d=-1),c=c.slice(1)),c.startsWith("0b"))?d*parseInt(c.slice(2),2):c.startsWith("0o")?d*parseInt(c.slice(2),8):c.startsWith("0x")?d*parseInt(c.slice(2),16):d*parseInt(c,10));return Number.isFinite(e)?e:sc},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),sz=RegExp("^-?(?:0|[1-9][0-9]*)$"),sA=RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),sB=se("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-",..."0123456789"],resolve:function(a,b){let c,d;if(b){if(!sA.test(a))return sc}else if(!sz.test(a))return sc;let e=(d=1,(("-"===(c=a)[0]||"+"===c[0])&&("-"===c[0]&&(d=-1),c=c.slice(1)),c.startsWith("0b"))?d*parseInt(c.slice(2),2):c.startsWith("0o")?d*parseInt(c.slice(2),8):c.startsWith("0x")?d*parseInt(c.slice(2),16):d*parseInt(c,10));return Number.isFinite(e)?e:sc},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),sC=RegExp("^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?0x[0-9a-fA-F_]+|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+|[-+]?(?:0|[1-9][0-9_]*))$"),sD=se("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-","+",..."0123456789"],resolve:function(a){if(!sC.test(a))return sc;let b=function(a){let b=a.replace(/_/g,""),c=1;if(("-"===b[0]||"+"===b[0])&&("-"===b[0]&&(c=-1),b=b.slice(1)),b.startsWith("0b"))return c*parseInt(b.slice(2),2);if(b.startsWith("0x"))return c*parseInt(b.slice(2),16);if(b.includes(":")){let a=0;for(let c of b.split(":"))a=60*a+Number(c);return c*a}return"0"!==b&&"0"===b[0]?c*parseInt(b,8):c*parseInt(b,10)}(a);return Number.isFinite(b)?b:sc},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),sE=RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),sF=RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),sG=se("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-","+",".",..."0123456789"],resolve:function(a){if(!sE.test(a))return sc;let b=a.toLowerCase(),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=c*parseFloat(b);return Number.isFinite(d)||sF.test(a)?d:sc},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),sH=RegExp("^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$"),sI=RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),sJ=se("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-",..."0123456789"],resolve:function(a,b){if(b){if(!sI.test(a))return sc;let b=a.toLowerCase(),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=c*parseFloat(b);return Number.isFinite(d)?d:sc}if(!sH.test(a))return sc;let c=Number(a);return Number.isFinite(c)?c:sc},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),sK=RegExp("^(?:[-+]?(?:(?:[0-9][0-9_]*)?\\.[0-9_]*)(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),sL=RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),sM=se("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-","+",".",..."0123456789"],resolve:function(a){if(!sK.test(a))return sc;let b=a.toLowerCase().replace(/_/g,""),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=0;if(b.includes(":")){for(let a of b.split(":"))d=60*d+Number(a);d*=c}else d=c*parseFloat(b);return Number.isFinite(d)||sL.test(a)?d:sc},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),sN=se("tag:yaml.org,2002:merge",{implicit:!0,implicitFirstChars:["<"],resolve:(a,b)=>"<<"===a||b&&""===a?sd:sc}),sO=/^[A-Za-z0-9+/]*={0,2}$/,sP=se("tag:yaml.org,2002:binary",{resolve:function(a){let b=a.replace(/\s/g,"");if(b.length%4!=0||!sO.test(b))return sc;let c=atob(b),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d},identify:a=>"[object Uint8Array]"===Object.prototype.toString.call(a),represent:function(a){let b="";for(let c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return btoa(b)}}),sQ=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),sR=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function sS(a,b,c,d=0,e=0,f=0,g=0){let h=new Date(Date.UTC(a,b,c,d,e,f,g));return h.setUTCFullYear(a,b,c),h}var sT=se("tag:yaml.org,2002:timestamp",{implicit:!0,implicitFirstChars:[..."0123456789"],resolve:function(a){let b=sQ.exec(a);if(null===b&&(b=sR.exec(a)),null===b)return sc;let c=+b[1],d=b[2]-1,e=+b[3];if(!b[4]){let a=sS(c,d,e);return a.getUTCFullYear()!==c||a.getUTCMonth()!==d||a.getUTCDate()!==e?sc:a}let f=+b[4],g=+b[5],h=+b[6],i=0;if(f>23||g>59||h>59)return sc;if(b[7]){let a=b[7].slice(0,3);for(;a.length<3;)a+="0";i=+a}let j=sS(c,d,e,f,g,h,i);if(j.getUTCFullYear()!==c||j.getUTCMonth()!==d||j.getUTCDate()!==e)return sc;if(b[9]){let a=+b[10],c=+(b[11]||0);if(a>23||c>59)return sc;let d=(60*a+c)*6e4;j.setTime(j.getTime()-("-"===b[9]?-d:d))}return j},identify:a=>a instanceof Date,represent:a=>a.toISOString()}),sU=sf("tag:yaml.org,2002:seq",{create:()=>[],addItem:(a,b)=>{a.push(b)},identify:Array.isArray});function sV(a){if(null===a||"object"!=typeof a||Array.isArray(a))return!1;let b=Object.getPrototypeOf(a);return null===b||b===Object.prototype}function sW(a,b){let c={};for(let d of b)void 0!==a[d]&&(c[d]=a[d]);return c}var sX=sf("tag:yaml.org,2002:omap",{create:()=>({list:[],seen:new Set}),addItem:(a,b)=>{let c;if(b instanceof Map){if(1!==b.size)return"cannot resolve an ordered map item";c=b.keys().next().value}else{if(!sV(b))return"cannot resolve an ordered map item";let a=Object.keys(b);if(1!==a.length)return"cannot resolve an ordered map item";c=a[0]}return a.seen.has(c)?"duplicate key in ordered map":(a.seen.add(c),a.list.push(b),"")},finalize:a=>a.list}),sY=sf("tag:yaml.org,2002:pairs",{create:()=>[],addItem:(a,b)=>{if(b instanceof Map)return 1!==b.size?"cannot resolve a pairs item":(a.push(b.entries().next().value),"");if("[object Object]"!==Object.prototype.toString.call(b))return"cannot resolve a pairs item";let c=Object.keys(b);return 1!==c.length?"cannot resolve a pairs item":(a.push([c[0],b[c[0]]]),"")}}),sZ=sg("tag:yaml.org,2002:map",{create:()=>({}),identify:sV,represent:a=>{let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b},addPair:(a,b,c)=>{if(null!==b&&"object"==typeof b)return"object-based map does not support complex keys";let d=String(b);return"__proto__"===d?Object.defineProperty(a,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[d]=c,""},has:(a,b)=>(null===b||"object"!=typeof b)&&Object.prototype.hasOwnProperty.call(a,String(b)),keys:a=>Object.keys(a),get:(a,b)=>{let c=String(b);return Object.prototype.hasOwnProperty.call(a,c)?a[c]:null}}),s$=sg("tag:yaml.org,2002:set",{create:()=>new Set,identify:a=>a instanceof Set,represent:a=>{let b=new Map;for(let c of a)b.set(c,null);return b},addPair:(a,b,c)=>null!==c?"cannot resolve a set item":(a.add(b),""),has:(a,b)=>a.has(b),keys:a=>a.keys(),get:()=>null}),s_=class a{tags;implicitScalarTags;implicitScalarByFirstChar;implicitScalarAnyFirstChar;defaultScalarTag;defaultSequenceTag;defaultMappingTag;exact;prefix;constructor(a){const b=function(a){let b=[];for(let c of a){let a=b.length;for(let d=0;d<b.length;d++){let e=b[d];if(e.nodeKind===c.nodeKind&&e.tagName===c.tagName&&e.matchByTagPrefix===c.matchByTagPrefix){a=d;break}}b[a]=c}return b}(a),c=[],d={scalar:Object.create(null),sequence:Object.create(null),mapping:Object.create(null)},e={scalar:[],sequence:[],mapping:[]};for(const a of b){if("scalar"===a.nodeKind&&a.implicit){if(a.matchByTagPrefix)throw Error("Implicit scalar tags cannot match by tag prefix");c.push(a)}switch(a.nodeKind){case"scalar":a.matchByTagPrefix?e.scalar.push(a):d.scalar[a.tagName]=a;break;case"sequence":a.matchByTagPrefix?e.sequence.push(a):d.sequence[a.tagName]=a;break;case"mapping":a.matchByTagPrefix?e.mapping.push(a):d.mapping[a.tagName]=a}}const f=c.filter(a=>null===a.implicitFirstChars),g=new Set;for(const a of c)if(null!==a.implicitFirstChars)for(const b of a.implicitFirstChars)g.add(b);const h=new Map;for(const a of g)h.set(a,c.filter(b=>null===b.implicitFirstChars||-1!==b.implicitFirstChars.indexOf(a)));const i=d.scalar["tag:yaml.org,2002:str"];if(!i)throw Error("schema does not define the default scalar tag (tag:yaml.org,2002:str)");this.tags=b,this.implicitScalarTags=c,this.implicitScalarByFirstChar=h,this.implicitScalarAnyFirstChar=f,this.defaultScalarTag=i,this.defaultSequenceTag=d.sequence["tag:yaml.org,2002:seq"],this.defaultMappingTag=d.mapping["tag:yaml.org,2002:map"],this.exact=d,this.prefix=e}withTags(...b){let c=[];for(let a of b)c=c.concat(a);return new a([...this.tags,...c])}},s0=new s_([sh,sU,sZ]);new s_([...s0.tags,sk,ss,sB,sJ]);var s1=new s_([...s0.tags,sj,sp,sy,sG]),s2=new s_([...s0.tags,sm,sv,sD,sM,sT,sN,sP,sX,sY,s$]);function s3(a){if(Array.isArray(a)){let b=Array.prototype.slice.call(a);for(let a=0;a<b.length;a++){if(Array.isArray(b[a]))return null;"object"==typeof b[a]&&"[object Object]"===Object.prototype.toString.call(b[a])&&(b[a]="[object Object]")}return String(b)}return"object"==typeof a&&"[object Object]"===Object.prototype.toString.call(a)?"[object Object]":String(a)}sg("tag:yaml.org,2002:map",{create:()=>new Map,addPair:(a,b,c)=>(a.set(b,c),""),has:(a,b)=>a.has(b),keys:a=>a.keys(),get:(a,b)=>a.get(b),identify:a=>a instanceof Map||sV(a),represent:a=>{if(a instanceof Map)return a;let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b}}),sg("tag:yaml.org,2002:map",{create:()=>({}),identify:sV,represent:a=>{let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b},addPair:(a,b,c)=>{let d=s3(b);return null===d?"nested arrays are not supported inside keys":("__proto__"===d?Object.defineProperty(a,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[d]=c,"")},has:(a,b)=>{let c=s3(b);return null!==c&&Object.prototype.hasOwnProperty.call(a,c)},keys:a=>Object.keys(a),get:(a,b)=>{let c=String(b);return Object.prototype.hasOwnProperty.call(a,c)?a[c]:null}});var s4={maxLength:79,indent:1,linesBefore:3,linesAfter:2};function s5(a,b,c,d,e){let f="",g="",h=Math.floor(e/2)-1;return d-b>h&&(b=d-h+(f=" ... ").length),c-d>h&&(c=d+h-(g=" ...").length),{str:f+a.slice(b,c).replace(/\t/g,"→")+g,pos:d-b+f.length}}function s6(a,b){return" ".repeat(Math.max(b-a.length,0))+a}function s7(a,b){let c="";return a.mark?(a.mark.name&&(c+=`in "${a.mark.name}" `),c+=`(${a.mark.line+1}:${a.mark.column+1})`,!b&&a.mark.snippet&&(c+=`
|
|
8
8
|
|