ai-helper-agent 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{agent-store-qLZ_Nmmz.js → agent-store-DcAs6YyA.js} +2 -2
- package/dist/assets/{agent-store-qLZ_Nmmz.js.map → agent-store-DcAs6YyA.js.map} +1 -1
- package/dist/assets/background.js +2 -2
- package/dist/assets/background.js.map +1 -1
- package/dist/assets/content.js +66 -50
- package/dist/assets/{i18n-sOTxZemV.js → i18n-C4jSRoCH.js} +3 -3
- package/dist/assets/i18n-C4jSRoCH.js.map +1 -0
- package/dist/assets/{model-profiles-DcTdflVP.js → model-profiles-Dl_MsXWa.js} +2 -2
- package/dist/assets/{model-profiles-DcTdflVP.js.map → model-profiles-Dl_MsXWa.js.map} +1 -1
- package/dist/assets/{options-B6ca-cwx.css → options-8-nu3P5K.css} +1 -1
- package/dist/assets/options.js +254 -208
- package/dist/assets/options.js.map +1 -1
- package/dist/assets/{page-snapshot-renderer-C-4bo-cW.js → page-snapshot-renderer-CVL6r6Kf.js} +2 -2
- package/dist/assets/{page-snapshot-renderer-C-4bo-cW.js.map → page-snapshot-renderer-CVL6r6Kf.js.map} +1 -1
- package/dist/assets/{session-store-U8WKrdGX.js → session-store-CzVQCgQ_.js} +4 -4
- package/dist/assets/{session-store-U8WKrdGX.js.map → session-store-CzVQCgQ_.js.map} +1 -1
- package/dist/assets/side_panel.js +8 -8
- package/dist/assets/side_panel.js.map +1 -1
- package/dist/assets/version-CNG2KGnJ.js +2 -0
- package/dist/assets/version-CNG2KGnJ.js.map +1 -0
- package/dist/libs/jspdf.min.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/offscreen/offscreen.js +2 -2
- package/dist/options.html +33 -4
- package/dist/side_panel.html +5 -5
- package/package.json +1 -1
- package/dist/assets/i18n-sOTxZemV.js.map +0 -1
- package/dist/assets/version-DzUoXKcK.js +0 -2
- package/dist/assets/version-DzUoXKcK.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-store-
|
|
2
|
-
import{i as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{a as r,c as i,i as a,l as o,n as s,r as c,s as l}from"./i18n-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-store-DcAs6YyA.js","assets/rolldown-runtime-C0FnF6B9.js","assets/i18n-C4jSRoCH.js","assets/session-store-CzVQCgQ_.js","assets/pdf-HiJ0icvU.js","assets/lib-Bi7BFuND.js","assets/jszip.min-BXqW2-9v.js","assets/dist-BQOFgIxk.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{a as r,c as i,i as a,l as o,n as s,r as c,s as l}from"./i18n-C4jSRoCH.js";import{A as u,C as d,E as f,F as p,G as m,I as h,N as g,P as _,R as v,S as y,T as b,W as x,Z as S,b as C,c as w,d as T,i as E,k as D,r as O,u as k,w as A,y as j,z as M}from"./model-profiles-Dl_MsXWa.js";import{C as ee,F as N,G as P,H as F,M as I,O as L,R,S as z,T as te,U as ne,W as re,X as ie,a as ae,b as oe,c as B,d as se,f as V,g as ce,h as le,i as ue,k as de,l as fe,m as H,n as pe,o as me,p as he,s as ge,t as _e,u as ve,w as ye,x as be,y as xe}from"./session-store-CzVQCgQ_.js";import{a as Se,c as Ce,i as we,n as Te,o as Ee,r as De,s as Oe}from"./agent-store-DcAs6YyA.js";import{t as ke}from"./version-CNG2KGnJ.js";var Ae=le.map(e=>e.id),je=[...new Set([...m,`mcp`,`knowledge`])],Me=[{labelKey:`presetMode.preciseLabel`,tipKey:`presetMode.preciseTip`,temp:.2,topP:1},{labelKey:`presetMode.generalLabel`,tipKey:`presetMode.generalTip`,temp:.45,topP:.9},{labelKey:`presetMode.divergentLabel`,tipKey:`presetMode.divergentTip`,temp:.65,topP:.9},{labelKey:`presetMode.creativeLabel`,tipKey:`presetMode.creativeTip`,temp:.9,topP:.9}];r(`zh`,{util:{cmdHintPowerShell:"(请使用 PowerShell 语法,如 `Get-ChildItem`、`Set-Content`、`Remove-Item` 等)",cmdHintCmd:"(请使用 CMD 语法,如 `dir`、`echo`、`del` 等)",cmdHintGitBash:"(请使用 Unix 命令,如 `ls`、`cat`、`rm` 等,路径使用正斜杠 `/`)",cmdHintPowerShellShort:`(请使用 PowerShell 语法)`,cmdHintUnix:"(请使用 Unix 命令,如 `ls`、`cat`、`rm` 等)",cmdExecEnvTitle:`## 命令执行环境`,cmdExecOsShell:`**操作系统/Shell**`,cmdExecWorkdir:`工作目录`,cmdExecWorkdirUnset:`未设置`,assistantTerm:`- **助手**:用户创建的 AI 智能体,每个助手有独立的系统提示词和工具权限,可独立工作或被其他助手调度执行子任务`,noDesc:`无描述`,subDispatchTitle:`## 子助手调度`,subDispatchDesc:`使用 dispatch_task(subAgentId, task) 分派子任务给其他助手执行,支持并行调用。`,subDispatchAvailable:`可用子助手:`,agentTerm:`- **代理**:远端执行服务,提供文件操作、命令执行等能力。可通过 manage_agent 工具查询或切换代理`,agentHostLabel:`- 代理主机地址:`,agentHostHint:`(访问代理端服务时请优先使用此地址)`,terminologyTitle:`## 术语定义`,taskPlanningTitle:`## 任务拆解`,taskPlanningDesc:`复杂任务(多步骤、有依赖)拆解为子任务,通常 2-6 个、最多不超过 8 个;简单任务(1-2 步即可完成)直接执行,不要为凑数而拆分。使用 plan_task(taskDescription, subtasks) 提交方案。重要:调用 plan_task 时必须单独调用,同一轮响应中不要同时返回其他工具调用;其他想执行的动作请编入子任务描述,由子任务执行。`,memoryTitle:`## 记忆`,memoryRules:`- 统一工具 agent_memory,通过 action 区分:store(增删改)/recall(检索)/manage(审查清理)
|
|
3
3
|
- store: subAction=add需type+content,update需memoryId+type,**delete仅需memoryId无需type**。**删除前先recall查id**
|
|
4
4
|
- recall: query用关键词(如"考试"),不用完整句子。可选memoryType和limit
|
|
5
5
|
- manage: subAction=review审查价值,compact清理低价值
|
|
@@ -132,7 +132,7 @@ ${t} | Chrome Side Panel / ${n}${d}${a}
|
|
|
132
132
|
</ul>
|
|
133
133
|
</div>
|
|
134
134
|
</div>
|
|
135
|
-
`,xt(`toc`).appendChild(r),H.messageTocContainer=r;let s=r.querySelector(`.message-toc-toggle`),c=r.querySelector(`.message-toc-panel`);s.addEventListener(`mouseenter`,()=>{c.classList.add(`expanded`),it(c)}),s.addEventListener(`click`,()=>{c.classList.toggle(`expanded`)?it(c):at(c)}),c.addEventListener(`mouseenter`,()=>{c.classList.add(`expanded`)}),r.querySelectorAll(`.message-toc-item`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.dataset.target,n=document.getElementById(t);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`}),n.classList.add(`toc-highlight`),setTimeout(()=>{n.classList.remove(`toc-highlight`)},1500))})})}function Ot(){H.tocHideTimer&&(clearTimeout(H.tocHideTimer),H.tocHideTimer=null),H.messageTocContainer&&(H.messageTocContainer.remove(),H.messageTocContainer=null)}var kt=`completedSessionIds`;async function At(){try{let e=(await chrome.storage.local.get([kt]))[kt]||[];H.completedSessionIds=new Set(e)}catch(e){o.warn(`[SessionManager] restore completedSessionIds failed:`,e)}}async function jt(){try{await chrome.storage.local.set({[kt]:Array.from(H.completedSessionIds)})}catch(e){o.warn(`[SessionManager] persist completedSessionIds failed:`,e)}}async function Mt(e){e&&e!==H.activeSessionId&&(H.completedSessionIds.has(e)||(H.completedSessionIds.add(e),await jt(),document.dispatchEvent(new CustomEvent(`generating-state-changed`))))}async function Nt(e){e&&H.completedSessionIds.has(e)&&(H.completedSessionIds.delete(e),await jt(),document.dispatchEvent(new CustomEvent(`generating-state-changed`)))}async function Pt(){return B()}async function Ft(){return se()}async function It(){return ue()}async function Lt(e){return V(e)}async function Rt(e){let t=await ae(e);return H.completedSessionIds.has(e)&&(H.completedSessionIds.delete(e),await jt()),t}async function zt(e,t){return fe(e,t)}async function Bt(e){return ve(e)}async function Vt(){return pe()}async function Ht(e){return ge(e)}async function Ut(e,t){return _e(e,t)}async function Wt(e,t=null){return me(e,t)}r(`zh`,{toolPanel:{agentRestrictedBanner:`当前 Agent 限制了可用工具,部分工具已禁用`,noMatch:`没有匹配的工具`,enabledCount:`已启用 {enabled}/{total} 个工具`,toolsEnabled:`工具已启用`,allToolsDisabled:`所有工具已禁用`,toggleBtnEnabled:`禁用所有工具`,toggleBtnDisabled:`启用所有工具`,mcpServiceToolCount:`{count} 个工具`,mcpServiceExpand:`展开/收起工具列表`,mcpExcludedByAgent:`已被当前助手排除,可在助手编辑中调整`,categorySelectAllHint:`对该分类下可见项全选/取消全选`,stateOn:`已开启`,stateOff:`已关闭`,stateLine:`{name}:{state}`}}),r(`en`,{toolPanel:{agentRestrictedBanner:`Current agent has restricted available tools, some tools are disabled`,noMatch:`No matching tools`,enabledCount:`{enabled}/{total} tools enabled`,toolsEnabled:`Tools enabled`,allToolsDisabled:`All tools disabled`,toggleBtnEnabled:`Disable all tools`,toggleBtnDisabled:`Enable all tools`,mcpServiceToolCount:`{count} tools`,mcpServiceExpand:`Show/hide tool list`,mcpExcludedByAgent:`Excluded by current assistant; adjust in assistant editor`,categorySelectAllHint:`Select/deselect all visible items in this category`,stateOn:`On`,stateOff:`Off`,stateLine:`{name}: {state}`}});var Gt=[],Kt=[];function qt(e){if(!e)return``;let t=`tool.${e.id}`,n=i(t);return n===t?e.description||``:n}function Jt(e){if(!e)return``;let t=e.description||``;if(t.startsWith(`[MCP:`)){let e=t.indexOf(`]`);e!==-1&&(t=t.slice(e+1).trim())}return t===(e.name||``)?``:t}async function Yt(){try{let e=await chrome.runtime.sendMessage({type:`GET_MCP_TOOLS`});if(e?.success&&e.tools)return Gt=e.tools,Gt}catch{}try{return Gt=(await chrome.storage.local.get([`mcpTools`])).mcpTools||[],Gt}catch{return Gt=[],[]}}async function Xt(){try{Kt=(await chrome.storage.local.get([`ragTools`])).ragTools||[]}catch{Kt=[]}return Kt}async function Zt(){let e=`agentMcpClosedServers_${H.activeAgentId||`default`}`;try{let t=await chrome.storage.local.get([e]);H.mcpClosedServers=t[e]||[]}catch{H.mcpClosedServers=[]}try{let{getAgent:e}=await he(async()=>{let{getAgent:e}=await import(`./agent-store-
|
|
135
|
+
`,xt(`toc`).appendChild(r),H.messageTocContainer=r;let s=r.querySelector(`.message-toc-toggle`),c=r.querySelector(`.message-toc-panel`);s.addEventListener(`mouseenter`,()=>{c.classList.add(`expanded`),it(c)}),s.addEventListener(`click`,()=>{c.classList.toggle(`expanded`)?it(c):at(c)}),c.addEventListener(`mouseenter`,()=>{c.classList.add(`expanded`)}),r.querySelectorAll(`.message-toc-item`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.dataset.target,n=document.getElementById(t);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`}),n.classList.add(`toc-highlight`),setTimeout(()=>{n.classList.remove(`toc-highlight`)},1500))})})}function Ot(){H.tocHideTimer&&(clearTimeout(H.tocHideTimer),H.tocHideTimer=null),H.messageTocContainer&&(H.messageTocContainer.remove(),H.messageTocContainer=null)}var kt=`completedSessionIds`;async function At(){try{let e=(await chrome.storage.local.get([kt]))[kt]||[];H.completedSessionIds=new Set(e)}catch(e){o.warn(`[SessionManager] restore completedSessionIds failed:`,e)}}async function jt(){try{await chrome.storage.local.set({[kt]:Array.from(H.completedSessionIds)})}catch(e){o.warn(`[SessionManager] persist completedSessionIds failed:`,e)}}async function Mt(e){e&&e!==H.activeSessionId&&(H.completedSessionIds.has(e)||(H.completedSessionIds.add(e),await jt(),document.dispatchEvent(new CustomEvent(`generating-state-changed`))))}async function Nt(e){e&&H.completedSessionIds.has(e)&&(H.completedSessionIds.delete(e),await jt(),document.dispatchEvent(new CustomEvent(`generating-state-changed`)))}async function Pt(){return B()}async function Ft(){return se()}async function It(){return ue()}async function Lt(e){return V(e)}async function Rt(e){let t=await ae(e);return H.completedSessionIds.has(e)&&(H.completedSessionIds.delete(e),await jt()),t}async function zt(e,t){return fe(e,t)}async function Bt(e){return ve(e)}async function Vt(){return pe()}async function Ht(e){return ge(e)}async function Ut(e,t){return _e(e,t)}async function Wt(e,t=null){return me(e,t)}r(`zh`,{toolPanel:{agentRestrictedBanner:`当前 Agent 限制了可用工具,部分工具已禁用`,noMatch:`没有匹配的工具`,enabledCount:`已启用 {enabled}/{total} 个工具`,toolsEnabled:`工具已启用`,allToolsDisabled:`所有工具已禁用`,toggleBtnEnabled:`禁用所有工具`,toggleBtnDisabled:`启用所有工具`,mcpServiceToolCount:`{count} 个工具`,mcpServiceExpand:`展开/收起工具列表`,mcpExcludedByAgent:`已被当前助手排除,可在助手编辑中调整`,categorySelectAllHint:`对该分类下可见项全选/取消全选`,stateOn:`已开启`,stateOff:`已关闭`,stateLine:`{name}:{state}`}}),r(`en`,{toolPanel:{agentRestrictedBanner:`Current agent has restricted available tools, some tools are disabled`,noMatch:`No matching tools`,enabledCount:`{enabled}/{total} tools enabled`,toolsEnabled:`Tools enabled`,allToolsDisabled:`All tools disabled`,toggleBtnEnabled:`Disable all tools`,toggleBtnDisabled:`Enable all tools`,mcpServiceToolCount:`{count} tools`,mcpServiceExpand:`Show/hide tool list`,mcpExcludedByAgent:`Excluded by current assistant; adjust in assistant editor`,categorySelectAllHint:`Select/deselect all visible items in this category`,stateOn:`On`,stateOff:`Off`,stateLine:`{name}: {state}`}});var Gt=[],Kt=[];function qt(e){if(!e)return``;let t=`tool.${e.id}`,n=i(t);return n===t?e.description||``:n}function Jt(e){if(!e)return``;let t=e.description||``;if(t.startsWith(`[MCP:`)){let e=t.indexOf(`]`);e!==-1&&(t=t.slice(e+1).trim())}return t===(e.name||``)?``:t}async function Yt(){try{let e=await chrome.runtime.sendMessage({type:`GET_MCP_TOOLS`});if(e?.success&&e.tools)return Gt=e.tools,Gt}catch{}try{return Gt=(await chrome.storage.local.get([`mcpTools`])).mcpTools||[],Gt}catch{return Gt=[],[]}}async function Xt(){try{Kt=(await chrome.storage.local.get([`ragTools`])).ragTools||[]}catch{Kt=[]}return Kt}async function Zt(){let e=`agentMcpClosedServers_${H.activeAgentId||`default`}`;try{let t=await chrome.storage.local.get([e]);H.mcpClosedServers=t[e]||[]}catch{H.mcpClosedServers=[]}try{let{getAgent:e}=await he(async()=>{let{getAgent:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{getAgent:e}},__vite__mapDeps([0,1,2,3])),t=H.activeAgentId?await e(H.activeAgentId):null;H.activeAgentMcpExcludedServerIds=t?t.mcpExcludedServerIds??null:null}catch{}}var Qt=!1,$t=!0;chrome.storage.local.get([`enableToolPreselect`,`toolConfirmationEnabled`],e=>{Qt=e.enableToolPreselect===!0,$t=e.toolConfirmationEnabled!==!1,Tn()}),chrome.storage.onChanged.addListener((e,t)=>{if(t!==`local`)return;let n=!1;e.mcpTools&&(Gt=e.mcpTools.newValue||[],o.debug(`[SidePanel] MCP toolcache updated:`,Gt.length,``),n=!0),e.ragTools&&(Kt=e.ragTools.newValue||[],o.debug(`[SidePanel] RAG toolcache updated:`,Kt.length),n=!0),e.mcpEnabled&&(en=e.mcpEnabled.newValue===!0,o.debug(`[SidePanel] MCP globaltoggle changed:`,en),n=!0),e.skillsEnabled&&(tn=e.skillsEnabled.newValue!==!1,o.debug(`[SidePanel] Skill global toggle changed:`,tn),n=!0);let r=!1;e.enableToolPreselect&&(Qt=e.enableToolPreselect.newValue===!0,r=!0),e.toolConfirmationEnabled&&($t=e.toolConfirmationEnabled.newValue!==!1,r=!0),r&&Tn(),n&&(document.getElementById(`toolsPopupOverlay`)?.classList.contains(`show`)&&(bn(),xn(),fn()),wn())}),Yt().then(()=>wn()),Xt().then(()=>wn());var en=!1,tn=!0;chrome.storage.local.get([`mcpEnabled`,`skillsEnabled`],e=>{en=e.mcpEnabled===!0,tn=e.skillsEnabled!==!1,wn()});function nn(){let e=[...x,...Kt],t=H.activeAgentToolIds,n=e;if(t!=null){let r=new Set(t);n=e.filter(e=>r.has(e.id))}return tn||(n=n.filter(e=>e.id!==`agent_skill`)),H.agentPlatform?.connected!==!0&&(n=n.filter(e=>!e.id.startsWith(`agent_`)&&!e.id.startsWith(`knowledge_`))),n}function rn(){if(!en||H.agentPlatform?.connected!==!0)return[];let e=new Map;return Gt.forEach(t=>{let n=t.serverId||`unknown`;e.has(n)||e.set(n,{serverId:n,serverName:t.serverName||n,tools:[],toolCount:0});let r=e.get(n);r.tools.push(t),r.toolCount++}),Array.from(e.values())}function an(e){return Array.isArray(H.mcpClosedServers)&&H.mcpClosedServers.includes(e)}function on(e){return Array.isArray(H.activeAgentMcpExcludedServerIds)&&H.activeAgentMcpExcludedServerIds.includes(e)}function sn(e){return!an(e)&&!on(e)}function cn(){if(H.currentCategory!==`all`&&H.currentCategory!==`mcp`)return[];let e=rn();if(H.currentSearch){let t=H.currentSearch;e=e.filter(e=>(e.serverName||``).toLowerCase().includes(t)||(e.serverId||``).toLowerCase().includes(t)||e.tools.some(e=>(e.name||``).toLowerCase().includes(t)||qt(e).toLowerCase().includes(t)))}return e}function ln(e,t){Array.isArray(H.mcpClosedServers)||(H.mcpClosedServers=[]);let n=H.mcpClosedServers.indexOf(e);t?n>-1&&H.mcpClosedServers.splice(n,1):n===-1&&H.mcpClosedServers.push(e)}async function un(){let e=document.getElementById(`toolsPopupOverlay`);if(!e)return;H.currentCategory=`all`,H.currentSearch=``;let t=document.getElementById(`toolsSearchInput`);t&&(t.value=``),await Yt(),await Xt(),await Zt(),bn(),xn(),chrome.storage.local.get([`enableToolPreselect`,`toolConfirmationEnabled`],e=>{let t=document.getElementById(`toolsPreselectToggle`);t&&(t.checked=e.enableToolPreselect!==void 0&&e.enableToolPreselect);let n=document.getElementById(`toolConfirmToggle`);n&&(n.checked=e.toolConfirmationEnabled===void 0||e.toolConfirmationEnabled)}),document.querySelectorAll(`.category-btn`).forEach(e=>{e.classList.remove(`active`),e.classList.contains(`category-all`)?(e.classList.add(`active`),e.style.background=`linear-gradient(135deg, #667eea 0%, #764ba2 100%)`,e.style.color=`white`,e.style.borderColor=`transparent`):(e.style.background=`white`,e.style.color=`#555`,e.style.borderColor=`#ececec`)}),fn(),e.classList.add(`show`),o.debug(`[SidePanel] opentool popup`)}function dn(){let e=document.getElementById(`toolsPopupOverlay`);e&&(document.querySelectorAll(`.category-btn`).forEach(e=>{e.classList.remove(`active`),e.style.background=``,e.style.color=``,e.style.borderColor=``}),e.classList.remove(`show`),o.debug(`[SidePanel] closetool popup`))}function fn(){let e=document.getElementById(`toolsPopupList`);if(!e)return;e.innerHTML=``;let t=nn();if(H.activeAgentToolIds!==null&&H.activeAgentToolIds!==void 0){let t=document.createElement(`div`);t.className=`popup-tool-agent-banner`,t.innerHTML=`<span>${i(`toolPanel.agentRestrictedBanner`)}</span>`,e.appendChild(t)}let n={};t.forEach(e=>{if(H.currentCategory!==`all`&&e.category!==H.currentCategory)return;if(H.currentSearch){let t=e.name.toLowerCase().includes(H.currentSearch),n=qt(e).toLowerCase().includes(H.currentSearch);if(!t&&!n)return}let t=e.category||`other`;n[t]||(n[t]=[]),n[t].push(e)});let r=cn();if(je.forEach(a=>{let o=a===`mcp`,s=n[a]||[],c=o?r:[];if(o?c.length===0:s.length===0)return;let l;if(o)l=`${c.filter(e=>sn(e.serverId)).length}/${c.length}`;else{let e=t.filter(e=>e.category===a);l=`${e.filter(e=>H.enabledTools.includes(e.id)).length}/${e.length}`}let u=document.createElement(`div`);u.className=`popup-tool-category-group`,u.dataset.category=a;let d=document.createElement(`div`);d.className=`popup-tool-category`,d.dataset.category=a;let f=H.collapsedCategories[a]||!1;d.innerHTML=`
|
|
136
136
|
<span class="category-expand-icon">${f?`▶`:`▼`}</span>
|
|
137
137
|
<span class="category-name">${i(`toolCategory.`+a)}</span>
|
|
138
138
|
<span class="category-count">${l}</span>
|
|
@@ -1740,7 +1740,7 @@ After removal, the AI will no longer be able to access this directory. You can s
|
|
|
1740
1740
|
... (点击展开查看完整输出)`,execResult:`执行结果`,statusFailed:`失败`,statusCompleted:`完成`,preselectFiltered:`从 {total} 个工具中筛选出 <strong>{count}</strong> 个:`,preselectSkippedAll:`跳过筛选({reason}),使用全部工具`,preselectSkippedCount:`跳过筛选({reason}),工具总数 {count}`,preselectDirectAnswer:`模型直接回答:`,toolPreselect:`工具预筛选`,toolsAfterFilter:`筛选后工具数:<strong>{count}</strong>`,listSeparator:`、`,totalNodes:`总节点`,successLabel:`成功`,failedLabel:`失败`,tokenLabel:`Token`,tokenUsageTitle:`Token 消耗: {total} (Prompt: {prompt}, Completion: {completion})`,thinkingProcess:`思考过程`,copyMarkdown:`复制 Markdown 内容 (Ctrl/Cmd + 点击复制富文本)`,copy:`复制`,quoteTitle:`引用该内容问答`,quote:`引用`,export:`导出`,exportWord:`导出 Word`,exportPdf:`导出 PDF`,exportImage:`导出图片`,exportMarkdown:`导出 Markdown`,executionLog:`执行日志`,reflectionRoundsTag:` ({count}轮)`,qualityAssessmentTitle:`AI 质量评估: {score}/10{rounds}
|
|
1741
1741
|
点击查看评估详情`,reflectionFailedTitle:`反思评估失败(点击查看执行日志)`,reflectionFailedBadge:`⚠️ 反思失败`,prototypeOpenedLocal:`已在本地浏览器打开,点击可在面板内查看`,viewUiPrototype:`查看 UI 原型`,bookmarkMessage:`收藏消息`,removeBookmark:`取消收藏`,forkSession:`从此处分叉会话(仅复制到此条消息)`,deleteMessage:`删除消息`,stopping:`停止中...`,taskStopped:`任务已被用户停止`,cancelled:`已取消`}}),r(`en`,{chatStream:{thinking:`Thinking...`,outputting:`Outputting...`,stopGenerating:`Stop generating`,thinkingResult:`Thinking result`,toolActionOperate:`Operate`,toolActionUpload:`Upload`,toolActionDownload:`Download`,toolActionRequest:`Request`,toolActionInteract:`Interact`,toolActionFill:`Fill`,toolActionDispatch:`Dispatch`,toolActionPreview:`Preview`,toolActionRead:`Read`,toolActionWrite:`Write`,terminateCommand:`Terminate command`,abortWaiting:`Abort waiting (skip current tool wait, does not terminate the actual process)`,executing:`Executing...`,terminating:`Terminating...`,copyCode:`Copy code`,truncatedTitle:`Original result too large, truncated for display`,truncatedNote:`(output too long, truncated)`,noOutput:`(no output)`,execFailed:`Execution failed`,clickToExpand:`
|
|
1742
1742
|
... (click to expand and view full output)`,execResult:`Execution result`,statusFailed:`Failed`,statusCompleted:`Completed`,preselectFiltered:`Filtered <strong>{count}</strong> of {total} tools: `,preselectSkippedAll:`Skipped filtering ({reason}), using all tools`,preselectSkippedCount:`Skipped filtering ({reason}), total tools: {count}`,preselectDirectAnswer:`Model direct answer: `,toolPreselect:`Tool Pre-filter`,toolsAfterFilter:`Tools after filtering: <strong>{count}</strong>`,listSeparator:`, `,totalNodes:`Total nodes`,successLabel:`Success`,failedLabel:`Failed`,tokenLabel:`Token`,tokenUsageTitle:`Token usage: {total} (Prompt: {prompt}, Completion: {completion})`,thinkingProcess:`Thinking process`,copyMarkdown:`Copy Markdown content (Ctrl/Cmd + click to copy rich text)`,copy:`Copy`,quoteTitle:`Quote this content for Q&A`,quote:`Quote`,export:`Export`,exportWord:`Export Word`,exportPdf:`Export PDF`,exportImage:`Export Image`,exportMarkdown:`Export Markdown`,executionLog:`Execution log`,reflectionRoundsTag:` ({count} rounds)`,qualityAssessmentTitle:`AI quality assessment: {score}/10{rounds}
|
|
1743
|
-
Click to view assessment details`,reflectionFailedTitle:`Reflection assessment failed (click to view execution log)`,reflectionFailedBadge:`⚠️ Reflection failed`,prototypeOpenedLocal:`Already opened in local browser, click to view in panel`,viewUiPrototype:`View UI prototype`,bookmarkMessage:`Bookmark message`,removeBookmark:`Remove bookmark`,forkSession:`Fork session from here (copy up to this message only)`,deleteMessage:`Delete message`,stopping:`Stopping...`,taskStopped:`Task stopped by user`,cancelled:`Cancelled`}});var mD=new Map,hD=!1,gD=!1,_D=!1,vD=!1;function yD(){let e=document.getElementById(`scrollToBottomBtn`),t=document.getElementById(`scrollToBottomBadge`);if(!e)return;let n=document.getElementById(`chatContainer`);if(!n)return;let r=n.scrollHeight-n.scrollTop-n.clientHeight<80;r?(e.classList.remove(`visible`),vD=!1):e.classList.add(`visible`),t&&(vD&&!r?(t.classList.add(`active`),H.isGenerating?t.classList.add(`pulsing`):t.classList.remove(`pulsing`)):t.classList.remove(`active`,`pulsing`))}function bD(){if(_D)return;let e=document.getElementById(`chatContainer`);e&&(_D=!0,e.addEventListener(`scroll`,()=>{if(hD)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;gD=!t,t?vD=!1:H.isGenerating&&(vD=!0),yD()},{passive:!0}),document.addEventListener(`generating-state-changed`,()=>{H.isGenerating&&(vD=!0),requestAnimationFrame(()=>yD())}))}function xD(e,t={}){if(!e)return;bD();let{force:n=!1,smooth:r=!1}=t;if(!n&&gD){vD=!0,yD();return}if(hD=!0,r){e.scrollTo({top:e.scrollHeight,behavior:`smooth`}),requestAnimationFrame(()=>{hD=!1});return}e.scrollTop=e.scrollHeight,requestAnimationFrame(()=>{gD||(e.scrollTop=e.scrollHeight),requestAnimationFrame(()=>{hD=!1})})}function SD(e){if(!e||!e.isConnected)return;let t=document.getElementById(`chatContainer`);t&&xD(t)}function CD(){gD=!1,vD=!1,H.isGenerating&&(vD=!0),yD()}function wD(){bD();let e=document.getElementById(`scrollToBottomBtn`);if(!e||e.dataset.bound)return;e.dataset.bound=`1`;let t=localStorage.getItem(`scrollBtnPosition`)||`center`;e.classList.add(`pos-${t}`);let n=!1,r=0,i=0,a=!1,o=0,s=!1;function c(){let t=document.getElementById(`chatContainer`);if(!t)return;let n=t.clientWidth,r={left:n/6,center:n/2,right:n*5/6},i=`center`,a=1/0;for(let[e,t]of Object.entries(r)){let n=Math.abs(o-t);n<a&&(a=n,i=e)}e.classList.remove(`pos-left`,`pos-center`,`pos-right`),e.classList.add(`pos-${i}`),e.style.left=``,e.style.marginLeft=``,e.style.right=``,localStorage.setItem(`scrollBtnPosition`,i)}function l(){let t=document.getElementById(`chatContainer`),n=e.getBoundingClientRect(),a=t?t.getBoundingClientRect():null,o=a?n.left-a.left+n.width/2:r;e.classList.remove(`pos-left`,`pos-center`,`pos-right`),e.style.left=`${o}px`,e.style.marginLeft=`0`,e.style.right=`auto`,e.classList.add(`dragging`),i=o,s=!0}function u(e){(e.type!==`mousedown`||e.button===0)&&(e.preventDefault(),n=!0,a=!1,s=!1,r=e.touches?e.touches[0].clientX:e.clientX)}function d(t){if(!n)return;let c=t.touches?t.touches[0].clientX:t.clientX;if(!s){if(Math.abs(c-r)<=3)return;a=!0,l()}let u=document.getElementById(`chatContainer`);if(!u)return;let d=u.getBoundingClientRect(),f=i+(c-r),p=e.offsetWidth/2;f=Math.max(p,Math.min(d.width-p,f)),o=f,e.style.left=`${f}px`}function f(){if(n){if(n=!1,a)e.classList.remove(`dragging`),c();else{s&&(e.classList.remove(`dragging`),e.style.left=``,e.style.marginLeft=``,e.style.right=``);let t=document.getElementById(`chatContainer`);t&&(gD=!1,vD=!1,yD(),xD(t,{force:!0,smooth:!0}))}a=!1,s=!1}}e.addEventListener(`mousedown`,u),e.addEventListener(`touchstart`,u,{passive:!1}),document.addEventListener(`mousemove`,d),document.addEventListener(`touchmove`,d,{passive:!1}),document.addEventListener(`mouseup`,f),document.addEventListener(`touchend`,f),yD()}function TD(){bD();let e=document.getElementById(`chatContainer`);e&&(e.scrollHeight-e.scrollTop-e.clientHeight<80||(vD=!0),yD())}function ED(e,t){let n=e.querySelector(`.thinking-process-content`);if(!n)return;e.dataset.activeFilter=t,e.querySelectorAll(`.thinking-process-stat[data-filter]`).forEach(e=>{e.classList.toggle(`active`,e.dataset.filter===t)});let r=e=>t===`all`||e===t;n.querySelectorAll(`.tool-call-item`).forEach(e=>{e.classList.contains(`preselect-card`)||(e.style.display=r(e.dataset.status)?``:`none`)}),n.querySelectorAll(`.thinking-badge`).forEach(e=>{let t=r(e.dataset.status||`success`);e.style.display=t?``:`none`;let n=e.nextElementSibling;n&&n.classList.contains(`thinking-content`)&&(n.style.display=t?``:`none`)}),n.querySelectorAll(`.thinking-content`).forEach(e=>{let t=e.previousElementSibling;t&&t.classList.contains(`thinking-badge`)||(e.style.display=r(`success`)?``:`none`)})}function DD(e){if(!e||e._filterBound)return;e._filterBound=!0;let t=[``,`success`,`failed`];e.querySelectorAll(`.thinking-process-stat`).forEach((e,n)=>{t[n]&&(e.dataset.filter=t[n],e.classList.add(`filterable`))}),e.querySelectorAll(`.token-stat`).forEach(e=>{e.style.cursor=`pointer`}),e.addEventListener(`click`,t=>{if(t.ctrlKey||t.metaKey)return;let n=t.target.closest(`.thinking-process-stat`),r=e.closest(`.thinking-process`);if(r){if(n&&n.classList.contains(`token-stat`)){let e=r.closest(`.message`);if(e)try{let t=e.dataset.executionLog,r=Ue(t?JSON.parse(t):[]);r&&We(r,n)}catch{}return}n&&n.dataset.filter?ED(r,r.dataset.activeFilter===n.dataset.filter?`all`:n.dataset.filter):r.classList.toggle(`collapsed`)}});let n=e.closest(`.thinking-process`);n&&ED(n,n.dataset.activeFilter||`all`)}async function OD(){try{let{getAllAgents:e}=await he(async()=>{let{getAllAgents:e}=await import(`./agent-store-
|
|
1743
|
+
Click to view assessment details`,reflectionFailedTitle:`Reflection assessment failed (click to view execution log)`,reflectionFailedBadge:`⚠️ Reflection failed`,prototypeOpenedLocal:`Already opened in local browser, click to view in panel`,viewUiPrototype:`View UI prototype`,bookmarkMessage:`Bookmark message`,removeBookmark:`Remove bookmark`,forkSession:`Fork session from here (copy up to this message only)`,deleteMessage:`Delete message`,stopping:`Stopping...`,taskStopped:`Task stopped by user`,cancelled:`Cancelled`}});var mD=new Map,hD=!1,gD=!1,_D=!1,vD=!1;function yD(){let e=document.getElementById(`scrollToBottomBtn`),t=document.getElementById(`scrollToBottomBadge`);if(!e)return;let n=document.getElementById(`chatContainer`);if(!n)return;let r=n.scrollHeight-n.scrollTop-n.clientHeight<80;r?(e.classList.remove(`visible`),vD=!1):e.classList.add(`visible`),t&&(vD&&!r?(t.classList.add(`active`),H.isGenerating?t.classList.add(`pulsing`):t.classList.remove(`pulsing`)):t.classList.remove(`active`,`pulsing`))}function bD(){if(_D)return;let e=document.getElementById(`chatContainer`);e&&(_D=!0,e.addEventListener(`scroll`,()=>{if(hD)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;gD=!t,t?vD=!1:H.isGenerating&&(vD=!0),yD()},{passive:!0}),document.addEventListener(`generating-state-changed`,()=>{H.isGenerating&&(vD=!0),requestAnimationFrame(()=>yD())}))}function xD(e,t={}){if(!e)return;bD();let{force:n=!1,smooth:r=!1}=t;if(!n&&gD){vD=!0,yD();return}if(hD=!0,r){e.scrollTo({top:e.scrollHeight,behavior:`smooth`}),requestAnimationFrame(()=>{hD=!1});return}e.scrollTop=e.scrollHeight,requestAnimationFrame(()=>{gD||(e.scrollTop=e.scrollHeight),requestAnimationFrame(()=>{hD=!1})})}function SD(e){if(!e||!e.isConnected)return;let t=document.getElementById(`chatContainer`);t&&xD(t)}function CD(){gD=!1,vD=!1,H.isGenerating&&(vD=!0),yD()}function wD(){bD();let e=document.getElementById(`scrollToBottomBtn`);if(!e||e.dataset.bound)return;e.dataset.bound=`1`;let t=localStorage.getItem(`scrollBtnPosition`)||`center`;e.classList.add(`pos-${t}`);let n=!1,r=0,i=0,a=!1,o=0,s=!1;function c(){let t=document.getElementById(`chatContainer`);if(!t)return;let n=t.clientWidth,r={left:n/6,center:n/2,right:n*5/6},i=`center`,a=1/0;for(let[e,t]of Object.entries(r)){let n=Math.abs(o-t);n<a&&(a=n,i=e)}e.classList.remove(`pos-left`,`pos-center`,`pos-right`),e.classList.add(`pos-${i}`),e.style.left=``,e.style.marginLeft=``,e.style.right=``,localStorage.setItem(`scrollBtnPosition`,i)}function l(){let t=document.getElementById(`chatContainer`),n=e.getBoundingClientRect(),a=t?t.getBoundingClientRect():null,o=a?n.left-a.left+n.width/2:r;e.classList.remove(`pos-left`,`pos-center`,`pos-right`),e.style.left=`${o}px`,e.style.marginLeft=`0`,e.style.right=`auto`,e.classList.add(`dragging`),i=o,s=!0}function u(e){(e.type!==`mousedown`||e.button===0)&&(e.preventDefault(),n=!0,a=!1,s=!1,r=e.touches?e.touches[0].clientX:e.clientX)}function d(t){if(!n)return;let c=t.touches?t.touches[0].clientX:t.clientX;if(!s){if(Math.abs(c-r)<=3)return;a=!0,l()}let u=document.getElementById(`chatContainer`);if(!u)return;let d=u.getBoundingClientRect(),f=i+(c-r),p=e.offsetWidth/2;f=Math.max(p,Math.min(d.width-p,f)),o=f,e.style.left=`${f}px`}function f(){if(n){if(n=!1,a)e.classList.remove(`dragging`),c();else{s&&(e.classList.remove(`dragging`),e.style.left=``,e.style.marginLeft=``,e.style.right=``);let t=document.getElementById(`chatContainer`);t&&(gD=!1,vD=!1,yD(),xD(t,{force:!0,smooth:!0}))}a=!1,s=!1}}e.addEventListener(`mousedown`,u),e.addEventListener(`touchstart`,u,{passive:!1}),document.addEventListener(`mousemove`,d),document.addEventListener(`touchmove`,d,{passive:!1}),document.addEventListener(`mouseup`,f),document.addEventListener(`touchend`,f),yD()}function TD(){bD();let e=document.getElementById(`chatContainer`);e&&(e.scrollHeight-e.scrollTop-e.clientHeight<80||(vD=!0),yD())}function ED(e,t){let n=e.querySelector(`.thinking-process-content`);if(!n)return;e.dataset.activeFilter=t,e.querySelectorAll(`.thinking-process-stat[data-filter]`).forEach(e=>{e.classList.toggle(`active`,e.dataset.filter===t)});let r=e=>t===`all`||e===t;n.querySelectorAll(`.tool-call-item`).forEach(e=>{e.classList.contains(`preselect-card`)||(e.style.display=r(e.dataset.status)?``:`none`)}),n.querySelectorAll(`.thinking-badge`).forEach(e=>{let t=r(e.dataset.status||`success`);e.style.display=t?``:`none`;let n=e.nextElementSibling;n&&n.classList.contains(`thinking-content`)&&(n.style.display=t?``:`none`)}),n.querySelectorAll(`.thinking-content`).forEach(e=>{let t=e.previousElementSibling;t&&t.classList.contains(`thinking-badge`)||(e.style.display=r(`success`)?``:`none`)})}function DD(e){if(!e||e._filterBound)return;e._filterBound=!0;let t=[``,`success`,`failed`];e.querySelectorAll(`.thinking-process-stat`).forEach((e,n)=>{t[n]&&(e.dataset.filter=t[n],e.classList.add(`filterable`))}),e.querySelectorAll(`.token-stat`).forEach(e=>{e.style.cursor=`pointer`}),e.addEventListener(`click`,t=>{if(t.ctrlKey||t.metaKey)return;let n=t.target.closest(`.thinking-process-stat`),r=e.closest(`.thinking-process`);if(r){if(n&&n.classList.contains(`token-stat`)){let e=r.closest(`.message`);if(e)try{let t=e.dataset.executionLog,r=Ue(t?JSON.parse(t):[]);r&&We(r,n)}catch{}return}n&&n.dataset.filter?ED(r,r.dataset.activeFilter===n.dataset.filter?`all`:n.dataset.filter):r.classList.toggle(`collapsed`)}});let n=e.closest(`.thinking-process`);n&&ED(n,n.dataset.activeFilter||`all`)}async function OD(){try{let{getAllAgents:e}=await he(async()=>{let{getAllAgents:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{getAllAgents:e}},__vite__mapDeps([0,1,2,3])),t=await e();mD.clear();for(let e of t)mD.set(e.id,e.name||e.id)}catch{}}function kD(e){return mD.get(e)||e}var AD=new Map,jD=new Map,MD=null,ND=0,PD=0;function FD(e){return t=>t===void 0?AD.get(e)||null:(AD.set(e,t),t)}function ID(e){AD.delete(e),jD.delete(e)}function LD(e,t){jD.set(e,t)}function RD(){return MD}function zD(e){MD=e}function BD(e){ND=e}function VD(e){PD=e}function HD(e){}function UD(e){let t=document.getElementById(`chatContainer`),n=document.createElement(`div`);n.className=`message-wrapper assistant streaming`;let r=`msg_`+Date.now().toString(36)+`_`+Math.random().toString(36).substring(2,8);n.dataset.messageId=r,n.dataset.sessionId=e||``,n.innerHTML=`
|
|
1744
1744
|
<div class="message-content">
|
|
1745
1745
|
<div class="stream-content"></div>
|
|
1746
1746
|
<div class="thinking-indicator">
|
|
@@ -1920,7 +1920,7 @@ Click to view assessment details`,reflectionFailedTitle:`Reflection assessment f
|
|
|
1920
1920
|
点击查看评估详情`,reflectionFailedTitle:`反思评估失败(点击查看执行日志)`,reflectionFailedBadge:`⚠️ 反思失败`,prototypeLocalOpened:`已在本地浏览器打开,点击可在面板内查看`,prototypeView:`查看 UI 原型`,bookmarkMessage:`收藏消息`,unbookmarkMessage:`取消收藏`,forkSession:`从此处分叉会话(仅复制到此条消息)`,deleteMessageTitle:`删除消息`,resumeTaskTitle:`从上次中断处继续执行任务`,resumeTaskBtn:`继续执行`,clickToEnlarge:`点击查看大图`,fileExtracting:` 提取中...`,fileFailed:` 失败`,fileExtractFailed:`提取失败`,copyMessageTitle:`复制消息内容`,editAndResend:`编辑后重新发送`,thinking:`思考中...`,stopTask:`停止任务`,viewExecutionLog:`查看执行日志`,preparing:`准备中...`,emptyModelReply:`模型未返回任何内容。若你发送了图片,请确认所选模型支持视觉识别(图片识别需选择支持多模态视觉的模型),或更换模型后重试。`,stopping:`停止中...`,retrying:`连接异常,正在重试 ({attempt}/{max})...`,copyCode:`复制代码`,aborting:`正在终止...`,terminateCommandTitle:`终止命令执行`,terminateCommandPrompt:`请选择终止方式:`,terminateWaitTitle:`终止等待`,terminateWaitDesc:`仅停止等待命令输出,后台进程继续运行。<br/>适用于挂起型服务(如 npm run dev)。`,terminateCommandBtnTitle:`终止命令`,terminateCommandBtnDesc:`直接终止后台命令进程,释放资源。`,confirmDeleteMessage:`确认删除消息`,deleteMessageWarning:`删除后消息将从对话历史中移除,且无法恢复。`,confirmDelete:`确认删除`,quotedContextLabel:`💬 已引用: {text}`,selectedContextLabel:`📌 已选中: {text}`,subtaskDone:`完成`,subtaskFailed:`失败`,subtaskPartial:`部分完成`,subtaskFailReason:`中断原因:{error}`,subtaskExecuting:`执行中...`,subtaskPending:`待执行`,subtaskDescLabel:`任务描述:`,subtaskResultLabel:`产出摘要:`,subtaskAllDone:`✓ 全部完成`,subtaskFilterEmpty:`当前过滤下无匹配节点`,subtaskFilterHint:`点击按此状态过滤节点,再点取消`,subtaskPartialFail:`✗ {success}/{total} 完成,{fail} 个节点失败`,unknownNode:`未知`,stopGeneration:`停止生成`,toolResultTitle:`执行结果`,reflectionInProgress:`质量评估中...`,cannotGetMessageContent:`无法获取消息内容`,editFailed:`编辑失败: {message}`,errTaskStopped:`任务已被用户停止`,errTaskReplaced:`任务已被新请求替代`,errSwRestarted:`后台服务异常重启,API 调用已中断`,errTimeout:`请求超时({seconds}秒)`,cancelBtn:`取消`}}),r(`en`,{chatMsg:{searchPrompt:`Search`,exportWord:`Export Word`,exportPdf:`Export PDF`,exportImage:`Export Image`,exportMarkdown:`Export Markdown`,executionLogTitle:`Execution Log`,revisedTag:`Revised`,roundsTag:` ({count} rounds)`,revisedSuffix:` (Revised)`,scoreBadgeTitle:`AI Quality Assessment: {score}/10{rounds}{revised}
|
|
1921
1921
|
Click to view assessment details`,reflectionFailedTitle:`Reflection assessment failed (click to view execution log)`,reflectionFailedBadge:`⚠️ Reflection Failed`,prototypeLocalOpened:`Opened in local browser, click to view in panel`,prototypeView:`View UI Prototype`,bookmarkMessage:`Bookmark message`,unbookmarkMessage:`Remove bookmark`,forkSession:`Fork session from here (copy up to this message only)`,deleteMessageTitle:`Delete message`,resumeTaskTitle:`Resume task from last interruption`,resumeTaskBtn:`Resume`,clickToEnlarge:`Click to view full size`,fileExtracting:` extracting...`,fileFailed:` failed`,fileExtractFailed:`Extraction failed`,copyMessageTitle:`Copy message content`,editAndResend:`Edit and resend`,thinking:`Thinking...`,stopTask:`Stop task`,viewExecutionLog:`View execution log`,preparing:`Preparing...`,emptyModelReply:`The model returned no content. If you sent an image, make sure the selected model supports vision (image recognition requires a multimodal vision model), or switch model and retry.`,stopping:`Stopping...`,retrying:`Connection unstable, retrying ({attempt}/{max})...`,copyCode:`Copy code`,aborting:`Aborting...`,terminateCommandTitle:`Terminate Command Execution`,terminateCommandPrompt:`Please select a termination method:`,terminateWaitTitle:`Stop Waiting`,terminateWaitDesc:`Only stop waiting for command output; the background process continues running.<br/>Suitable for hanging services (e.g. npm run dev).`,terminateCommandBtnTitle:`Terminate Command`,terminateCommandBtnDesc:`Directly terminate the background command process and release resources.`,confirmDeleteMessage:`Confirm Delete Message`,deleteMessageWarning:`After deletion, the message will be removed from the conversation history and cannot be recovered.`,confirmDelete:`Confirm Delete`,quotedContextLabel:`💬 Quoted: {text}`,selectedContextLabel:`📌 Selected: {text}`,subtaskDone:`Done`,subtaskFailed:`Failed`,subtaskPartial:`Partial`,subtaskFailReason:`Interrupted: {error}`,subtaskExecuting:`Executing...`,subtaskPending:`Pending`,subtaskDescLabel:`Description: `,subtaskResultLabel:`Output summary: `,subtaskAllDone:`✓ All done`,subtaskFilterEmpty:`No nodes match this filter`,subtaskFilterHint:`Click to filter nodes by this status, click again to clear`,subtaskPartialFail:`✗ {success}/{total} done, {fail} nodes failed`,unknownNode:`Unknown`,stopGeneration:`Stop generation`,toolResultTitle:`Execution Result`,reflectionInProgress:`Assessing quality...`,cannotGetMessageContent:`Cannot get message content`,editFailed:`Edit failed: {message}`,errTaskStopped:`Task stopped by user`,errTaskReplaced:`Task replaced by new request`,errSwRestarted:`Background service restarted unexpectedly, API call interrupted`,errTimeout:`Request timeout ({seconds}s)`,cancelBtn:`Cancel`}});var $D=`pendingCallApiSessions`;function eO(){chrome.storage.session.set({[$D]:[...H.pendingCallApiSessionIds]}).catch(()=>{})}async function tO(){try{let e=await chrome.storage.session.get([$D]);e[$D]&&Array.isArray(e[$D])&&(H.pendingCallApiSessionIds=new Set(e[$D]))}catch{}}function nO(e){if(Array.isArray(e))return e.filter(e=>e.type===`text`).map(e=>e.text).join(``);if(typeof e==`string`&&e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>e.type===`text`).map(e=>e.text).join(``)}catch{}return e}function rO(e){let t=nO(e);H.quotedContextText=t;let n=document.getElementById(`selectionIndicator`),r=document.getElementById(`selectionText`),a=document.getElementById(`userInput`);if(n&&r&&a){let e;e=t.length>100?t.substring(0,100)+`...`:t.length>50?t.substring(0,50)+`...`:t,r.textContent=i(`chat.quotedPrefix`,{text:e}),n.classList.add(`show`)}}function iO(){o.debug(`[SidePanel] clear selectedcontenttext `),H.selectedContextText=``,H.quotedContextText=``;let e=document.getElementById(`selectionIndicator`),t=document.getElementById(`userInput`);if(e&&(e.classList.remove(`show`),o.debug(`[SidePanel] hiddenselected contentprompt`)),typeof window.hideFloatingMenu==`function`&&window.hideFloatingMenu(),t&&t.value.startsWith(`[选中内容]`)){let e=t.value.split(`
|
|
1922
1922
|
`),n=e.findIndex(e=>e.startsWith(`[用户问题]`));t.value=n===-1?``:e.slice(n+1).join(`
|
|
1923
|
-
`).trim()}}var aO,oO=new Promise(e=>{aO=e});async function sO(){try{await cO()}finally{aO()}}async function cO(){let e=await Pt();if(e.activeSessionId&&e.list.length>0){H.activeSessionId=e.activeSessionId,H.sessions=e.list;let t=e.list.find(t=>t.id===e.activeSessionId);if(t){if(H.messageHistory=t.messageHistory||[],H.activeCompaction=t.contextCompaction||null,H.currentModel=t.model||H.currentModel,H.useTools=t.useTools===void 0?H.useTools:t.useTools,H.temperature=t.temperature===void 0?H.temperature:t.temperature,H.topP=t.topP===void 0?H.topP:t.topP,H.activeAgentId=t.agentId||null,H.activeAgentId&&H.activeAgentId!=="default"){try{let{getAgent:e}=await he(async()=>{let{getAgent:e}=await import(`./agent-store-
|
|
1923
|
+
`).trim()}}var aO,oO=new Promise(e=>{aO=e});async function sO(){try{await cO()}finally{aO()}}async function cO(){let e=await Pt();if(e.activeSessionId&&e.list.length>0){H.activeSessionId=e.activeSessionId,H.sessions=e.list;let t=e.list.find(t=>t.id===e.activeSessionId);if(t){if(H.messageHistory=t.messageHistory||[],H.activeCompaction=t.contextCompaction||null,H.currentModel=t.model||H.currentModel,H.useTools=t.useTools===void 0?H.useTools:t.useTools,H.temperature=t.temperature===void 0?H.temperature:t.temperature,H.topP=t.topP===void 0?H.topP:t.topP,H.activeAgentId=t.agentId||null,H.activeAgentId&&H.activeAgentId!=="default"){try{let{getAgent:e}=await he(async()=>{let{getAgent:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{getAgent:e}},__vite__mapDeps([0,1,2,3])),t=await e(H.activeAgentId);t&&(H.activeAgentMcpExcludedServerIds=t.mcpExcludedServerIds??null,t.model&&(H.currentModel=t.model),t.temperature!==null&&t.temperature!==void 0&&(H.temperature=t.temperature,H.topP=t.topP!==null&&t.topP!==void 0?t.topP:1),document.dispatchEvent(new CustomEvent(`agent-model-changed`)))}catch{}H.activeAgentMcpExcludedServerIds=null}else{H.activeAgentMcpExcludedServerIds=null;try{let e=await chrome.storage.local.get([`modelName`,`temperature`,`topP`]);e.modelName&&(H.currentModel=e.modelName),e.temperature!==void 0&&(H.temperature=e.temperature),e.topP!==void 0&&(H.topP=e.topP)}catch{}document.dispatchEvent(new CustomEvent(`agent-model-changed`))}let e=`agentMcpClosedServers_${H.activeAgentId||`default`}`,n=await chrome.storage.local.get([e]);H.mcpClosedServers=n[e]||[]}let n=document.getElementById(`chatContainer`);n&&n.querySelectorAll(`.message, .user-context-bubble`).forEach(e=>e.remove()),H.messageHistory.forEach(e=>{let t=e.wasRevised;if(!t&&e.executionLog)try{t=(typeof e.executionLog==`string`?JSON.parse(e.executionLog):e.executionLog).some(e=>e.nodeType===`reflection`&&e.reflectionType===`post`&&e.action?.decision===`revised`)}catch{}if(e.role===`user`&&e.contextBubbles&&Array.isArray(e.contextBubbles)&&e.contextBubbles.forEach(e=>{let t=``;switch(e.type){case`skill`:t=i(`contextBubble.bubbleSkill`,{name:e.name,desc:e.description?`:`+e.description:``});break;case`mcp`:t=i(`contextBubble.bubbleMcp`,{name:e.serverName});break;case`page`:t=i(`contextBubble.bubblePage`,{title:e.title,url:e.url});break;case`file`:t=`${e.name} (${ol(e.size||0)})`;break;case`knowledge`:{let t=Array.isArray(e.refs)?e.refs:[];t.length>0&&gO(t,e.failed===!0);break}}t&&e.type!==`file`&&jO(e.type,t,!1)}),e.htmlContent)UO(e.htmlContent,e.messageId,e.resumable);else{let n=(e.contextBubbles||[]).filter(e=>e.type===`file`).map(e=>({name:e.name,size:e.size||0,type:e.fileType||``}));PO(e.role,e.content,!1,e.executionLog||[],e.reflectionScore,t,null,e.messageId,n,e.resumable,e.timestamp??null)}}),LO(),zO();let r=document.querySelector(`.welcome-message`);r&&H.messageHistory.length>0&&r.remove(),Bi(),$i(),aj(),e.activeSessionId===H.activeSessionId?la(e):la(),await dD();let a=`scrollPosition_`+(H.activeSessionId||`default`);chrome.storage.local.get([a],e=>{e[a]!==void 0&&setTimeout(()=>{let t=document.getElementById(`chatContainer`);t.scrollTop=e[a]},100)})}else{await It();let e=await Pt();e.activeSessionId&&(H.activeSessionId=e.activeSessionId,H.sessions=e.list),la(e)}}function lO(){try{Ft().catch(e=>{o.error(`[SidePanel] save currentsession failed:`,e)})}catch(e){o.error(`[SidePanel] save conversationhistory exception:`,e)}}async function uO(){try{await Ft()}catch(e){o.error(`[SidePanel] save conversationhistory exception:`,e)}}function dO(){H.messageHistory&&H.messageHistory.length>0&&Vt().then(()=>{H.messageHistory=[],H.activeCompaction=null;let e=document.getElementById(`chatContainer`);if(e){e.innerHTML=``;let t=document.createElement(`div`);t.className=`welcome-message`,t.innerHTML=`
|
|
1924
1924
|
<div class="icon-wrapper">
|
|
1925
1925
|
<div class="icon">💬</div>
|
|
1926
1926
|
</div>
|
|
@@ -2701,7 +2701,7 @@ Agent address: {url}
|
|
|
2701
2701
|
Are you sure you want to update the agent? It will install the latest version via npm, then restart the service. The service will be unavailable during update.`,updateAgentTitle:`Update Agent`,agentUpdating:`Updating agent (may take a few minutes)...`,agentUpdateRestarting:`Agent is updating and restarting...`,updateFailed:`Update failed: {error}`,updateRequestFailed:`Update request failed: {error}`,stopAgentConfirm:`Agent name: {name}
|
|
2702
2702
|
Agent address: {url}
|
|
2703
2703
|
|
|
2704
|
-
Are you sure you want to stop the agent service? You will not be able to connect and will need to manually restart it.`,stopAgentTitle:`Stop Agent`,agentStopped:`Agent service stopped, agent is offline`,stopFailed:`Stop failed: {error}`,stopRequestFailed:`Stop request failed: {error}`,agentStatusRefreshed:`Agent status refreshed`,deleteAgentTitle:`Delete Agent`,deleteAgentConfirm:`Are you sure you want to delete agent "{name}"? This action cannot be undone.`,welcomeTitle:`Start a Conversation`,welcomeSubtitle:`Enter your question and the AI assistant will help you`,sendBtnStop:`Stop generating`,sendBtnSend:`Send`,imageNotEnabled:`Image recognition not enabled, image attached as file`,screenshotFailed:`Screenshot failed, please retry`,auditCategoryAuth:`Auth`,auditCategoryFs:`File`,auditCategoryExec:`Command`,auditCategorySecurity:`Security`,auditCategorySystem:`System`,auditDetailSeparator:`; `,auditQueryFailed:`Query failed: {error}`,auditLoadFailed:`Load failed: {error}`,auditNoMatch:`No matching audit logs`,auditEmpty:`No audit logs`,clearStatsConfirm:`Are you sure you want to clear all tool usage stats? This action cannot be undone.`,clearStatsTitle:`Clear Stats`,toolStatsSummary:`Used {used} tools, unused {unused} tools`,toolStatsLoadFailed:`Load failed`,toolNameDescSeparator:`: `}}),window.showCustomConfirm=function(e,t=i(`sidePanel.confirmAction`)){return new Promise(n=>{let r=document.getElementById(`customConfirmOverlay`),i=document.getElementById(`customConfirmTitle`),a=document.getElementById(`customConfirmMessage`),o=document.getElementById(`customConfirmCancelBtn`),s=document.getElementById(`customConfirmOkBtn`);if(!r||!i||!a||!o||!s){n(confirm(e));return}let c=()=>{r.style.display=`none`,s.removeEventListener(`click`,l),o.removeEventListener(`click`,u),r.removeEventListener(`click`,d),document.removeEventListener(`keydown`,f)},l=()=>{c(),n(!0)},u=()=>{c(),n(!1)},d=e=>{e.target===r&&(c(),n(!1))},f=e=>{e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),l()):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),u())};i.textContent=t,a.innerHTML=e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/\n/g,`<br>`),r.style.display=`flex`,s.addEventListener(`click`,l),o.addEventListener(`click`,u),r.addEventListener(`click`,d),document.addEventListener(`keydown`,f),requestAnimationFrame(()=>s.focus())})},chrome.storage.onChanged.addListener((e,t)=>{t===`local`&&e.chatAutoCompaction&&(H.chatConfig.autoCompaction=e.chatAutoCompaction.newValue===!0,fN(),o.debug(`[SidePanel] auto-compaction config updated:`,H.chatConfig.autoCompaction)),t===`local`&&e.chatPersistSummaryToMemory&&(H.chatConfig.persistSummaryToMemory=e.chatPersistSummaryToMemory.newValue!==!1,pN(),o.debug(`[SidePanel] persist-summary config updated:`,H.chatConfig.persistSummaryToMemory)),t===`local`&&e.chatMaxMemoryMessages&&(H.chatConfig.maxMemoryMessages=e.chatMaxMemoryMessages.newValue,dN(),o.debug(`[SidePanel] memory limitconfiguration updated:`,H.chatConfig.maxMemoryMessages))});function dN(){let e=document.getElementById(`memoryLimitLabel`);e&&(e.textContent=H.chatConfig.maxMemoryMessages!==null&&H.chatConfig.maxMemoryMessages!==void 0&&H.chatConfig.maxMemoryMessages>0?H.chatConfig.maxMemoryMessages:i(`sidePanel.memoryLimitAll`),e.title=i(`sidePanel.memoryLimitTitle`))}function fN(){let e=document.getElementById(`autoCompactBtn`);e&&(e.checked=H.chatConfig.autoCompaction===!0)}function pN(){let e=document.getElementById(`persistSummaryBtn`);e&&(e.checked=H.chatConfig.persistSummaryToMemory!==!1)}function mN(e){e.preventDefault(),e.stopPropagation();let t=document.getElementById(`memoryLimitDropdown`);if(t.classList.toggle(`show`),t.classList.contains(`show`)){let e=H.chatConfig.maxMemoryMessages;t.querySelectorAll(`.memory-limit-option`).forEach(t=>{t.classList.remove(`selected`);let n=parseInt(t.dataset.value);(e===null&&n===0||e!==null&&e>0&&n===e)&&t.classList.add(`selected`)});let n=t.querySelector(`#memoryLimitInput`);n.value=e!==null&&e>0?e:``}}function hN(){let e=document.getElementById(`memoryLimitDropdown`),t=document.getElementById(`memoryLimitLabel`),n=e?.querySelector(`#memoryLimitInput`);if(!e||!t)return;dN(),t.addEventListener(`click`,mN);let r=document.getElementById(`autoCompactBtn`);r&&(r.checked=H.chatConfig.autoCompaction===!0,r.addEventListener(`change`,()=>{let e=r.checked;chrome.storage.local.set({chatAutoCompaction:e},()=>{H.chatConfig.autoCompaction=e,U(i(`sidePanel.configUpdated`),`success`)})}));let a=document.getElementById(`persistSummaryBtn`);a&&(a.checked=H.chatConfig.persistSummaryToMemory!==!1,a.addEventListener(`change`,()=>{let e=a.checked;chrome.storage.local.set({chatPersistSummaryToMemory:e},()=>{H.chatConfig.persistSummaryToMemory=e,U(i(`sidePanel.configUpdated`),`success`)})}));let o=e.querySelectorAll(`.memory-limit-option`);o.forEach(e=>{e.addEventListener(`click`,t=>{t.stopPropagation();let r=parseInt(e.dataset.value),a=r===0?null:r;o.forEach(e=>e.classList.remove(`selected`)),e.classList.add(`selected`),n&&(n.value=r===0?``:r),chrome.storage.local.set({chatMaxMemoryMessages:a},()=>{H.chatConfig.maxMemoryMessages=a,dN(),U(i(`sidePanel.configUpdated`),`success`)})})}),n&&(n.addEventListener(`click`,e=>e.stopPropagation()),n.addEventListener(`mousedown`,e=>e.stopPropagation()),n.addEventListener(`change`,e=>{e.stopPropagation();let t=e.target.value.trim(),n=t&&parseInt(t)>0?parseInt(t):null;o.forEach(e=>e.classList.remove(`selected`)),chrome.storage.local.set({chatMaxMemoryMessages:n},()=>{H.chatConfig.maxMemoryMessages=n,dN(),U(i(`sidePanel.configUpdated`),`success`)})})),document.getElementById(`memoryLimitConfigEntry`)?.addEventListener(`click`,()=>{chrome.runtime.sendMessage({type:`OPEN_OPTIONS_PAGE`,hash:`memory`})}),document.addEventListener(`click`,n=>{!e.contains(n.target)&&n.target!==t&&e.classList.remove(`show`)})}async function gN(e){if(H.activeAgentId&&H.activeAgentId!=="default")try{let{updateAgent:t}=await he(async()=>{let{updateAgent:e}=await import(`./agent-store-
|
|
2704
|
+
Are you sure you want to stop the agent service? You will not be able to connect and will need to manually restart it.`,stopAgentTitle:`Stop Agent`,agentStopped:`Agent service stopped, agent is offline`,stopFailed:`Stop failed: {error}`,stopRequestFailed:`Stop request failed: {error}`,agentStatusRefreshed:`Agent status refreshed`,deleteAgentTitle:`Delete Agent`,deleteAgentConfirm:`Are you sure you want to delete agent "{name}"? This action cannot be undone.`,welcomeTitle:`Start a Conversation`,welcomeSubtitle:`Enter your question and the AI assistant will help you`,sendBtnStop:`Stop generating`,sendBtnSend:`Send`,imageNotEnabled:`Image recognition not enabled, image attached as file`,screenshotFailed:`Screenshot failed, please retry`,auditCategoryAuth:`Auth`,auditCategoryFs:`File`,auditCategoryExec:`Command`,auditCategorySecurity:`Security`,auditCategorySystem:`System`,auditDetailSeparator:`; `,auditQueryFailed:`Query failed: {error}`,auditLoadFailed:`Load failed: {error}`,auditNoMatch:`No matching audit logs`,auditEmpty:`No audit logs`,clearStatsConfirm:`Are you sure you want to clear all tool usage stats? This action cannot be undone.`,clearStatsTitle:`Clear Stats`,toolStatsSummary:`Used {used} tools, unused {unused} tools`,toolStatsLoadFailed:`Load failed`,toolNameDescSeparator:`: `}}),window.showCustomConfirm=function(e,t=i(`sidePanel.confirmAction`)){return new Promise(n=>{let r=document.getElementById(`customConfirmOverlay`),i=document.getElementById(`customConfirmTitle`),a=document.getElementById(`customConfirmMessage`),o=document.getElementById(`customConfirmCancelBtn`),s=document.getElementById(`customConfirmOkBtn`);if(!r||!i||!a||!o||!s){n(confirm(e));return}let c=()=>{r.style.display=`none`,s.removeEventListener(`click`,l),o.removeEventListener(`click`,u),r.removeEventListener(`click`,d),document.removeEventListener(`keydown`,f)},l=()=>{c(),n(!0)},u=()=>{c(),n(!1)},d=e=>{e.target===r&&(c(),n(!1))},f=e=>{e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),l()):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),u())};i.textContent=t,a.innerHTML=e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/\n/g,`<br>`),r.style.display=`flex`,s.addEventListener(`click`,l),o.addEventListener(`click`,u),r.addEventListener(`click`,d),document.addEventListener(`keydown`,f),requestAnimationFrame(()=>s.focus())})},chrome.storage.onChanged.addListener((e,t)=>{t===`local`&&e.chatAutoCompaction&&(H.chatConfig.autoCompaction=e.chatAutoCompaction.newValue===!0,fN(),o.debug(`[SidePanel] auto-compaction config updated:`,H.chatConfig.autoCompaction)),t===`local`&&e.chatPersistSummaryToMemory&&(H.chatConfig.persistSummaryToMemory=e.chatPersistSummaryToMemory.newValue!==!1,pN(),o.debug(`[SidePanel] persist-summary config updated:`,H.chatConfig.persistSummaryToMemory)),t===`local`&&e.chatMaxMemoryMessages&&(H.chatConfig.maxMemoryMessages=e.chatMaxMemoryMessages.newValue,dN(),o.debug(`[SidePanel] memory limitconfiguration updated:`,H.chatConfig.maxMemoryMessages))});function dN(){let e=document.getElementById(`memoryLimitLabel`);e&&(e.textContent=H.chatConfig.maxMemoryMessages!==null&&H.chatConfig.maxMemoryMessages!==void 0&&H.chatConfig.maxMemoryMessages>0?H.chatConfig.maxMemoryMessages:i(`sidePanel.memoryLimitAll`),e.title=i(`sidePanel.memoryLimitTitle`))}function fN(){let e=document.getElementById(`autoCompactBtn`);e&&(e.checked=H.chatConfig.autoCompaction===!0)}function pN(){let e=document.getElementById(`persistSummaryBtn`);e&&(e.checked=H.chatConfig.persistSummaryToMemory!==!1)}function mN(e){e.preventDefault(),e.stopPropagation();let t=document.getElementById(`memoryLimitDropdown`);if(t.classList.toggle(`show`),t.classList.contains(`show`)){let e=H.chatConfig.maxMemoryMessages;t.querySelectorAll(`.memory-limit-option`).forEach(t=>{t.classList.remove(`selected`);let n=parseInt(t.dataset.value);(e===null&&n===0||e!==null&&e>0&&n===e)&&t.classList.add(`selected`)});let n=t.querySelector(`#memoryLimitInput`);n.value=e!==null&&e>0?e:``}}function hN(){let e=document.getElementById(`memoryLimitDropdown`),t=document.getElementById(`memoryLimitLabel`),n=e?.querySelector(`#memoryLimitInput`);if(!e||!t)return;dN(),t.addEventListener(`click`,mN);let r=document.getElementById(`autoCompactBtn`);r&&(r.checked=H.chatConfig.autoCompaction===!0,r.addEventListener(`change`,()=>{let e=r.checked;chrome.storage.local.set({chatAutoCompaction:e},()=>{H.chatConfig.autoCompaction=e,U(i(`sidePanel.configUpdated`),`success`)})}));let a=document.getElementById(`persistSummaryBtn`);a&&(a.checked=H.chatConfig.persistSummaryToMemory!==!1,a.addEventListener(`change`,()=>{let e=a.checked;chrome.storage.local.set({chatPersistSummaryToMemory:e},()=>{H.chatConfig.persistSummaryToMemory=e,U(i(`sidePanel.configUpdated`),`success`)})}));let o=e.querySelectorAll(`.memory-limit-option`);o.forEach(e=>{e.addEventListener(`click`,t=>{t.stopPropagation();let r=parseInt(e.dataset.value),a=r===0?null:r;o.forEach(e=>e.classList.remove(`selected`)),e.classList.add(`selected`),n&&(n.value=r===0?``:r),chrome.storage.local.set({chatMaxMemoryMessages:a},()=>{H.chatConfig.maxMemoryMessages=a,dN(),U(i(`sidePanel.configUpdated`),`success`)})})}),n&&(n.addEventListener(`click`,e=>e.stopPropagation()),n.addEventListener(`mousedown`,e=>e.stopPropagation()),n.addEventListener(`change`,e=>{e.stopPropagation();let t=e.target.value.trim(),n=t&&parseInt(t)>0?parseInt(t):null;o.forEach(e=>e.classList.remove(`selected`)),chrome.storage.local.set({chatMaxMemoryMessages:n},()=>{H.chatConfig.maxMemoryMessages=n,dN(),U(i(`sidePanel.configUpdated`),`success`)})})),document.getElementById(`memoryLimitConfigEntry`)?.addEventListener(`click`,()=>{chrome.runtime.sendMessage({type:`OPEN_OPTIONS_PAGE`,hash:`memory`})}),document.addEventListener(`click`,n=>{!e.contains(n.target)&&n.target!==t&&e.classList.remove(`show`)})}async function gN(e){if(H.activeAgentId&&H.activeAgentId!=="default")try{let{updateAgent:t}=await he(async()=>{let{updateAgent:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{updateAgent:e}},__vite__mapDeps([0,1,2,3]));await t(H.activeAgentId,{model:e})}catch{}else chrome.storage.local.set({modelName:e}),j(e)}async function _N(){try{let e=await chrome.storage.local.get([`pairedAgents`,`activeAgentId`]),t=uN(e.pairedAgents),n=e.activeAgentId,r=t.find(e=>e.id===n&&!e.disabled);if(!r){H.agentPlatform={connected:!1},EN(H.agentPlatform);return}if(r.token)try{let e=await fetch(`${r.url}/api/status/detail`,{cache:`no-cache`,headers:{Authorization:`Bearer ${r.token}`}});if(e.ok){let t=await e.json();if(t.success){H.agentPlatform={platformName:t.platformName||`Unknown`,platform:t.platform||`unknown`,arch:t.arch||`unknown`,shell:t.shell||`/bin/sh`,homeDir:t.homeDir||``,workdir:t.workdir||``,connected:!0},t.version&&H.agentVersions.set(n,t.version),t.workdir&&H.agentWorkdirs.set(n,t.workdir),t.homeDir&&H.agentHomeDirs.set(n,t.homeDir);let e=AN(t.platformName||t.platform,t.arch);e&&H.agentSystemInfos.set(n,e)}else H.agentPlatform={connected:!1}}else H.agentPlatform={connected:!1}}catch{H.agentPlatform={connected:!1}}else H.agentPlatform={connected:!1};EN(H.agentPlatform),vu()}catch{}}async function vN(e,t,n){if(H.activeAgentId&&H.activeAgentId!=="default")try{let{updateAgent:n}=await he(async()=>{let{updateAgent:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{updateAgent:e}},__vite__mapDeps([0,1,2,3]));await n(H.activeAgentId,{temperature:e,topP:t})}catch{}else chrome.storage.local.set({temperature:e,topP:t,selectedTempIndex:n})}function yN(){let e=document.getElementById(`currentModelTag`);if(!e)return;let t=H.currentModel||``;e.textContent=t,e.title=t,e.style.display=t?``:`none`}function bN(){let e=document.getElementById(`currentModelTag`);e&&e.addEventListener(`click`,e=>{e.stopPropagation(),document.getElementById(`tempDisplay`)?.click()}),yN()}function xN(e){let t=0;document.querySelectorAll(`.model-option`).forEach(n=>{n.dataset.value===e?(n.classList.add(`selected`),n.querySelector(`.model-option-check`).textContent=`✓`,t=parseInt(n.dataset.contextWindow,10)||0):(n.classList.remove(`selected`),n.querySelector(`.model-option-check`).textContent=``)});let n=document.getElementById(`modelSelectValue`);n&&e&&(n.textContent=e);let r=document.getElementById(`modelSelectCtxBadge`);r&&(t>0?(r.textContent=D(t),r.style.display=``):r.style.display=`none`),yN()}function SN(e,t){let n=document.getElementById(`tempDropdown`);if(!n){typeof t==`function`&&t();return}let r=n.querySelector(`.model-section`),a=[];if((Array.isArray(e)?e:[]).forEach(e=>{typeof e==`string`?a.push({name:e,contextWindow:0}):e&&typeof e==`object`&&e.name&&a.push({name:e.name,contextWindow:e.contextWindow||0})}),r){r.innerHTML=`
|
|
2705
2705
|
<div class="model-section-title" data-i18n="model.selectModel">${i(`model.selectModel`)}</div>
|
|
2706
2706
|
<div class="section-select" id="modelSelect">
|
|
2707
2707
|
<div class="section-select-row" id="modelSelectRow">
|
|
@@ -2760,7 +2760,7 @@ Are you sure you want to stop the agent service? You will not be able to connect
|
|
|
2760
2760
|
<span class="audit-action">${e.action||`-`}</span>
|
|
2761
2761
|
</div>
|
|
2762
2762
|
${a?`<div class="audit-details">${a}</div>`:``}
|
|
2763
|
-
</div>`}).join(``)}function Re(){_e&&(_e.style.display=`flex`,Fe())}function ze(){_e&&(_e.style.display=`none`)}ge&&ge.addEventListener(`click`,e=>{e.stopPropagation(),ce.classList.remove(`show`),Re()}),ve&&ve.addEventListener(`click`,ze),ye&&ye.addEventListener(`click`,Fe),be&&be.addEventListener(`change`,Fe),xe&&xe.addEventListener(`change`,Fe),Se&&Se.addEventListener(`input`,()=>{Le()}),Ce&&Ce.addEventListener(`click`,()=>{Se&&(Se.value=``),Le()}),lN(()=>H.activeSessionId,showCustomConfirm);let Be=document.getElementById(`isolateChatBtn`),Ve=document.getElementById(`enableToolsBtn`),He=document.getElementById(`toolsConfigBtn`),Ue=`agentEnabledTools_${H.activeAgentId||`default`}`,We=`agentMcpClosedServers_${H.activeAgentId||`default`}`;chrome.storage.local.get([Ue,`enabledTools`,`isolateChat`,`enableSelectionQuery`,`enableTools`,We,`mcpTools`,`mcpEnabled`,`ragTools`,`ragToolsIntroduced`],e=>{e.isolateChat!==void 0&&(H.isolateChat=e.isolateChat),Be.checked=H.isolateChat,e.enableSelectionQuery!==void 0&&(H.enableSelectionQuery=e.enableSelectionQuery);let t=document.getElementById(`enableSelectionQueryBtn`);t&&(t.checked=H.enableSelectionQuery),e.enableTools!==void 0&&(H.useTools=e.enableTools),H.activeAgentId&&he(async()=>{let{getAgent:e}=await import(`./agent-store-
|
|
2763
|
+
</div>`}).join(``)}function Re(){_e&&(_e.style.display=`flex`,Fe())}function ze(){_e&&(_e.style.display=`none`)}ge&&ge.addEventListener(`click`,e=>{e.stopPropagation(),ce.classList.remove(`show`),Re()}),ve&&ve.addEventListener(`click`,ze),ye&&ye.addEventListener(`click`,Fe),be&&be.addEventListener(`change`,Fe),xe&&xe.addEventListener(`change`,Fe),Se&&Se.addEventListener(`input`,()=>{Le()}),Ce&&Ce.addEventListener(`click`,()=>{Se&&(Se.value=``),Le()}),lN(()=>H.activeSessionId,showCustomConfirm);let Be=document.getElementById(`isolateChatBtn`),Ve=document.getElementById(`enableToolsBtn`),He=document.getElementById(`toolsConfigBtn`),Ue=`agentEnabledTools_${H.activeAgentId||`default`}`,We=`agentMcpClosedServers_${H.activeAgentId||`default`}`;chrome.storage.local.get([Ue,`enabledTools`,`isolateChat`,`enableSelectionQuery`,`enableTools`,We,`mcpTools`,`mcpEnabled`,`ragTools`,`ragToolsIntroduced`],e=>{e.isolateChat!==void 0&&(H.isolateChat=e.isolateChat),Be.checked=H.isolateChat,e.enableSelectionQuery!==void 0&&(H.enableSelectionQuery=e.enableSelectionQuery);let t=document.getElementById(`enableSelectionQueryBtn`);t&&(t.checked=H.enableSelectionQuery),e.enableTools!==void 0&&(H.useTools=e.enableTools),H.activeAgentId&&he(async()=>{let{getAgent:e}=await import(`./agent-store-DcAs6YyA.js`).then(e=>e.t);return{getAgent:e}},__vite__mapDeps([0,1,2,3])).then(({getAgent:e})=>e(H.activeAgentId)).then(e=>{H.activeAgentMcpExcludedServerIds=e?e.mcpExcludedServerIds??null:null,wn()}).catch(()=>{}),H.mcpClosedServers=e[We]||[];let n=e.ragTools||[],r=e[Ue],i=e.enabledTools;if(Array.isArray(r)){let t=Dn(n),i=r.filter(e=>t.has(e));H.enabledTools=i;let a=En(H.enabledTools,n,e.ragToolsIntroduced);H.enabledTools=a.tools,a.migrated?chrome.storage.local.set({ragToolsIntroduced:!0,[Ue]:H.enabledTools}):H.enabledTools.length!==r.length&&chrome.storage.local.set({[Ue]:H.enabledTools})}else if(i&&i.length>0){let t=Dn(n),r=i.filter(e=>t.has(e)),a=x.filter(e=>e.enabled&&!r.includes(e.id)).map(e=>e.id);H.enabledTools=[...r,...a];let o=En(H.enabledTools,n,e.ragToolsIntroduced);H.enabledTools=o.tools,chrome.storage.local.set({[Ue]:H.enabledTools,...o.migrated?{ragToolsIntroduced:!0}:{}})}else{H.enabledTools=x.filter(e=>e.enabled).map(e=>e.id);let t=En(H.enabledTools,n,e.ragToolsIntroduced);H.enabledTools=t.tools,t.migrated&&chrome.storage.local.set({ragToolsIntroduced:!0,[Ue]:H.enabledTools})}Ve&&(Ve.checked=H.useTools),wn(),D()}),Be.addEventListener(`change`,()=>{H.isolateChat=Be.checked,chrome.storage.local.set({isolateChat:H.isolateChat}),o.debug(`[SidePanel] conv memory:`,H.isolateChat?`enabled`:`disabled`)});let Ge=document.getElementById(`enableSelectionQueryBtn`);Ge&&Ge.addEventListener(`change`,()=>{H.enableSelectionQuery=Ge.checked,chrome.storage.local.set({enableSelectionQuery:H.enableSelectionQuery}),o.debug(`[SidePanel] text Q&A:`,H.enableSelectionQuery?`enabled`:`disabled`),!H.enableSelectionQuery&&H.selectedContextText&&iO()}),Ve&&Ve.addEventListener(`change`,()=>{H.useTools=Ve.checked,chrome.storage.local.set({enableTools:H.useTools}),o.debug(`[SidePanel] tool master switch:`,H.useTools?`enabled`:`disabled`),wn()}),He&&He.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),un()});let Ke=document.getElementById(`toolsPopupOverlay`),qe=document.getElementById(`toolsPopupClose`),Je=Ke?Ke.querySelector(`.modal-container`):null;qe&&qe.addEventListener(`click`,dn),Je&&Je.addEventListener(`click`,e=>{e.stopPropagation()});let Ye=document.getElementById(`toolsSearchInput`),Xe=document.getElementById(`toolsSearchClear`);Ye&&Ye.addEventListener(`input`,e=>{H.currentSearch=e.target.value.toLowerCase(),Xe&&(Xe.style.display=e.target.value?``:`none`),fn()}),Xe&&Xe.addEventListener(`click`,()=>{Ye&&(Ye.value=``,Xe.style.display=`none`,H.currentSearch=``,fn())});let Ze=document.querySelectorAll(`.category-btn`);Ze.forEach(e=>{e.addEventListener(`click`,()=>{Ze.forEach(e=>{e.classList.remove(`active`),e.classList.contains(`category-all`)?(e.style.background=`#f5f3ff`,e.style.color=`#667eea`,e.style.borderColor=`#d4cfff`):(e.style.background=`white`,e.style.color=`#555`,e.style.borderColor=`#ececec`)}),e.classList.add(`active`),e.style.background=`linear-gradient(135deg, #667eea 0%, #764ba2 100%)`,e.style.color=`white`,e.style.borderColor=`transparent`,H.currentCategory=e.dataset.category,fn()})});let Qe=document.getElementById(`toolsCategories`);Qe&&Qe.addEventListener(`wheel`,e=>{e.preventDefault(),Qe.scrollLeft+=e.deltaY*2},{passive:!1});let $e=document.getElementById(`toolsSelectAll`),et=document.getElementById(`toolsSelectNone`);$e&&$e.addEventListener(`click`,()=>{vn().forEach(e=>{let t=document.getElementById(`tool_`+e.id);t&&(t.checked=!0),H.enabledTools.includes(e.id)||H.enabledTools.push(e.id)}),Cn(!0),yn(),bn(),xn()}),et&&et.addEventListener(`click`,()=>{vn().forEach(e=>{let t=document.getElementById(`tool_`+e.id);t&&(t.checked=!1);let n=H.enabledTools.indexOf(e.id);n>-1&&H.enabledTools.splice(n,1)}),Cn(!1),yn(),bn(),xn()});let tt=document.getElementById(`toolsPopupSave`);tt&&tt.addEventListener(`click`,()=>{Sn(),xn()});let rt=document.getElementById(`toolsPreselectToggle`);rt&&rt.addEventListener(`change`,()=>{chrome.storage.local.set({enableToolPreselect:rt.checked},()=>{o.debug(`[SidePanel] toolpre-filter toggle updated:`,rt.checked)})});let it=document.getElementById(`toolConfirmToggle`);it&&it.addEventListener(`change`,()=>{chrome.storage.local.set({toolConfirmationEnabled:it.checked},()=>{o.debug(`[SidePanel] sensitive-operation confirmation toggle updated:`,it.checked)})});let at=document.getElementById(`toolsPopupCancel`);at&&at.addEventListener(`click`,()=>{dn()});let ot=document.getElementById(`modalCancelBtn`),st=document.getElementById(`modalConfirmBtn`),ct=document.getElementById(`toolStatsOverlay`),lt=document.getElementById(`toolStatsClose`),ut=document.getElementById(`toolStatsBtn`);function dt(){ct&&(ct.style.display=`flex`,gt())}function ft(){ct&&(ct.style.display=`none`)}ut&&ut.addEventListener(`click`,e=>{e.stopPropagation(),dt()}),lt&<.addEventListener(`click`,ft),ct&&ct.addEventListener(`click`,e=>{e.target===ct&&ft()});let pt=document.getElementById(`toolStatsRefreshBtn`);pt&&pt.addEventListener(`click`,gt);let mt=document.getElementById(`toolStatsClearBtn`);mt&&mt.addEventListener(`click`,async()=>{await showCustomConfirm(i(`sidePanel.clearStatsConfirm`),i(`sidePanel.clearStatsTitle`))&&(await chrome.storage.local.remove([`toolUsageStats`]),gt())});let ht={column:`callCount`,asc:!1};async function gt(){let e=document.getElementById(`toolStatsTable`),t=document.getElementById(`toolStatsTableBody`),n=document.getElementById(`toolStatsLoading`),r=document.getElementById(`toolStatsEmpty`),a=document.getElementById(`toolStatsSummary`),s=document.getElementById(`toolStatsUnusedSection`),c=document.getElementById(`toolStatsUnusedList`);if(!(!e||!t||!n||!r)){e.style.display=`none`,r.style.display=`none`,s&&(s.style.display=`none`),a&&(a.textContent=``),n.style.display=``;try{let t=(await chrome.storage.local.get([`toolUsageStats`])).toolUsageStats||{},o=Object.entries(t);if(o.length===0){n.style.display=`none`,r.style.display=``;return}let l={};x.forEach(e=>{l[e.id]=e.name?`${e.name}${i(`sidePanel.toolNameDescSeparator`)}${e.description||``}`:e.description||e.id}),_t(o,l);let u=x.map(e=>e.id),d=new Set(o.map(([e])=>e)),f=u.filter(e=>!d.has(e)),p=o.length,m=f.length;a&&(a.textContent=i(`sidePanel.toolStatsSummary`,{used:p,unused:m})),s&&c&&m>0&&(c.innerHTML=f.sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).map(e=>`<code title="${W(l[e]||e)}" style="padding: 3px 10px; background: #f5f5f5; color: #aaa; border: 1px solid #eee; border-radius: 4px; font-size: 11px;">${e}</code>`).join(``),s.style.display=``),n.style.display=`none`,e.style.display=``}catch(e){o.error(`[SidePanel] loadstats failed:`,e),n.style.display=`none`,r.textContent=i(`sidePanel.toolStatsLoadFailed`),r.style.display=``}}}function _t(e,t){let n=document.getElementById(`toolStatsTableBody`);if(!n)return;let{column:r,asc:i}=ht;n.innerHTML=[...e].sort((e,t)=>{let[n,a]=e,[o,s]=t,c=a.callCount>0?a.successCount/a.callCount*100:0,l=s.callCount>0?s.successCount/s.callCount*100:0,u=a.callCount>0?a.totalDuration/a.callCount:0,d=s.callCount>0?s.totalDuration/s.callCount:0,f=0;switch(r){case`name`:f=n.toLowerCase().localeCompare(o.toLowerCase());break;case`callCount`:f=a.callCount-s.callCount;break;case`successCount`:f=a.successCount-s.successCount;break;case`successRate`:f=c-l;break;case`duration`:f=u-d}return i?f:-f}).map(([e,n])=>{let r=n.callCount>0?n.successCount/n.callCount*100:0,i=n.callCount>0?n.totalDuration/n.callCount:0,a=t[e]||e,o=`#38a169`;r<60?o=`#e53e3e`:r<85&&(o=`#d69e2e`);let s=Ie(i);return`<tr>
|
|
2764
2764
|
<td style="padding: 6px 10px; border-bottom: 1px solid #eee; color: #333;"><code title="${W(a)}">${e}</code></td>
|
|
2765
2765
|
<td style="padding: 6px 10px; text-align: right; border-bottom: 1px solid #eee; color: #666;">${n.callCount}</td>
|
|
2766
2766
|
<td style="padding: 6px 10px; text-align: right; border-bottom: 1px solid #eee; color: #666;">${n.successCount}</td>
|
|
@@ -2772,4 +2772,4 @@ Are you sure you want to stop the agent service? You will not be able to connect
|
|
|
2772
2772
|
</td>
|
|
2773
2773
|
<td style="padding: 6px 10px; text-align: right; border-bottom: 1px solid #eee; color: #888; font-size: 12px;">${s}</td>
|
|
2774
2774
|
</tr>`}).join(``),vt()}function vt(){let{column:e,asc:t}=ht,n=[`name`,`callCount`,`successCount`,`successRate`,`duration`],r={name:`sortByName`,callCount:`sortByCallCount`,successCount:`sortBySuccessCount`,successRate:`sortBySuccessRate`,duration:`sortByDuration`};n.forEach(n=>{let i=document.getElementById(r[n]);if(!i)return;let a=i.querySelector(`.sort-indicator`);a&&(n===e?(a.textContent=t?`▲`:`▼`,a.style.color=`#667eea`):(a.textContent=``,a.style.color=``))})}document.querySelectorAll(`#toolStatsTable th[data-sort]`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.dataset.sort;ht.column===t?ht.asc=!ht.asc:(ht.column=t,ht.asc=!1),gt()})}),ot.addEventListener(`click`,()=>{pO()}),st.addEventListener(`click`,()=>{pO(),dO()});let yt=document.getElementById(`confirmModal`);yt.addEventListener(`click`,e=>{e.target===yt&&pO()});let bt=document.getElementById(`selectionClose`);bt&&bt.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),o.debug(`[SidePanel] user clickcloseselected content by button`),iO(),window.hideFloatingMenu(),H.lastSelectedText=``,H.currentSelectionRange=null}),t.addEventListener(`input`,()=>{})}),et().then(()=>{dN(),FO(H.chatConfig.showMessageTimestamp!==!1),fN(),pN()}),document.addEventListener(`DOMContentLoaded`,()=>{hN()}),document.addEventListener(`DOMContentLoaded`,wt),document.addEventListener(`DOMContentLoaded`,XA),document.addEventListener(`DOMContentLoaded`,bN),document.addEventListener(`DOMContentLoaded`,fM),document.addEventListener(`DOMContentLoaded`,cN),document.addEventListener(`DOMContentLoaded`,async()=>{bt(),await yl(),Dl(),mj(),Lj(),RN(),Mx(),Gj();let{updateBookmarkButtons:e,updateBookmarkBadge:t}=await he(async()=>{let{updateBookmarkButtons:e,updateBookmarkBadge:t}=await Promise.resolve().then(()=>El);return{updateBookmarkButtons:e,updateBookmarkBadge:t}},void 0);e(),t()}),document.addEventListener(`DOMContentLoaded`,bk),document.addEventListener(`DOMContentLoaded`,Fk),document.addEventListener(`DOMContentLoaded`,Rk),document.addEventListener(`DOMContentLoaded`,Yk),document.addEventListener(`DOMContentLoaded`,JE),document.addEventListener(`DOMContentLoaded`,Bn),document.addEventListener(`DOMContentLoaded`,qn),document.addEventListener(`DOMContentLoaded`,jo),document.addEventListener(`DOMContentLoaded`,Ks),document.addEventListener(`DOMContentLoaded`,()=>Qk()),document.addEventListener(`DOMContentLoaded`,async()=>{let{refreshAgentNames:e,initScrollToBottomBtn:t}=await he(async()=>{let{refreshAgentNames:e,initScrollToBottomBtn:t}=await Promise.resolve().then(()=>pD);return{refreshAgentNames:e,initScrollToBottomBtn:t}},void 0);e(),t()}),document.addEventListener(`DOMContentLoaded`,()=>{let e=new URLSearchParams(window.location.search).has(`popup`),t=document.getElementById(`detachBtn`),n=document.getElementById(`attachBtn`),r=e?n:t;e?n&&(n.style.display=`flex`):t&&(t.style.display=`flex`);let a=()=>{if(!r)return;let t=H.pendingCallApiSessionIds&&H.pendingCallApiSessionIds.size>0;r.disabled=t,r.style.opacity=t?`0.35`:``,r.style.cursor=t?`not-allowed`:`pointer`,r.title=i(t?`detach.taskRunning`:e?`header.attachTitle`:`header.detachTitle`)};a(),document.addEventListener(`generating-state-changed`,a),t&&t.addEventListener(`click`,async()=>{if(H.pendingCallApiSessionIds&&H.pendingCallApiSessionIds.size>0){U(i(`detach.taskRunning`),`warning`);return}try{if((await chrome.runtime.sendMessage({type:`DETACH_SIDEPANEL`,width:window.innerWidth}))?.success)try{window.close()}catch{}}catch(e){o.warn(`[SidePanel] detach failed:`,e?.message)}}),n&&n.addEventListener(`click`,async()=>{if(H.pendingCallApiSessionIds&&H.pendingCallApiSessionIds.size>0){U(i(`detach.taskRunning`),`warning`);return}try{let e=(await chrome.windows.getCurrent()).id;await chrome.runtime.sendMessage({type:`ATTACH_SIDEPANEL`,windowId:e});try{window.close()}catch{}}catch(e){o.warn(`[SidePanel] attach failed:`,e?.message)}})});
|
|
2775
|
-
//# sourceMappingURL=side_panel-
|
|
2775
|
+
//# sourceMappingURL=side_panel-CRe_xJ9C.js.map
|