ai-helper-agent 1.15.6 → 1.15.7
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/_locales/en/messages.json +1 -1
- package/dist/_locales/zh/messages.json +1 -1
- package/dist/assets/content.js +3 -3
- package/dist/assets/{session-manager-ui-CfLTSEFf.js → session-manager-ui-DwceYZzF.js} +3 -3
- package/dist/assets/{session-manager-ui-CfLTSEFf.js.map → session-manager-ui-DwceYZzF.js.map} +1 -1
- package/dist/assets/side_panel.js +7 -7
- package/dist/assets/side_panel.js.map +1 -1
- package/dist/side_panel.html +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"message": "AI Helper - Web Smart Assistant"
|
|
4
4
|
},
|
|
5
5
|
"extDescription": {
|
|
6
|
-
"message": "
|
|
6
|
+
"message": "LLM-powered web assistant: side panel chat, selection Q&A, ReAct loop with 40+ tools and MCP extensions for browser automation"
|
|
7
7
|
},
|
|
8
8
|
"commandToggleSidepanel": {
|
|
9
9
|
"message": "Toggle side panel"
|
package/dist/assets/content.js
CHANGED
|
@@ -122,7 +122,7 @@ ${i.slice(1).map(l=>`| ${l.join(" | ")} |`).join(`
|
|
|
122
122
|
transform: translateY(2px);
|
|
123
123
|
white-space: nowrap;
|
|
124
124
|
}
|
|
125
|
-
#aih-selection-toolbar.show {
|
|
125
|
+
#aih-selection-toolbar.aih-show {
|
|
126
126
|
opacity: 1;
|
|
127
127
|
transform: translateY(0);
|
|
128
128
|
}
|
|
@@ -851,7 +851,7 @@ Question 3`}});var S={search:'<svg width="15" height="15" viewBox="0 0 24 24" fi
|
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
853
|
</div>
|
|
854
|
-
`,F(r),r.style.zIndex="2147483647",Be=!0;let s=e.getBoundingClientRect(),c=r.getBoundingClientRect(),m=s.top-c.height-8>0?s.top-c.height-8:s.bottom+8,p=s.left+s.width/2-c.width/2;p=Math.max(8,Math.min(p,window.innerWidth-c.width-8)),m+c.height>window.innerHeight-8&&(m=window.innerHeight-c.height-8),r.style.top=m+"px",r.style.left=p+"px",r.querySelector(".aih-token-popup-close").addEventListener("click",h=>{h.stopPropagation(),oe()});let u=h=>{!r.contains(h.target)&&!e.contains(h.target)&&(oe(),document.removeEventListener("click",u,!0))};setTimeout(()=>{document.addEventListener("click",u,!0)},0)}function fe(e,t){if(!b||!x||M)return;F(b);let o=window.innerWidth,n=window.innerHeight;b.style.display="flex",lastToolbarShowTime=Date.now(),requestAnimationFrame(()=>{let a=b.getBoundingClientRect(),i=a.width||300,l=a.height||40,r=e-i/2;r<8&&(r=8),r+i>o-8&&(r=o-i-8);let s=t-l-10;s<8&&(s=t+10),s<8&&(s=8),s+l>n-8&&(s=n-l-8),b.style.left=r+"px",b.style.top=s+"px",L||=(b.classList.add("show"),!0)})}function P(){!b||!L||(A&&(A=!1,we="",re=null,b.classList.remove("aih-ask-mode"),b.style.width="",ce&&=(b.style.left=ce,"")),b.classList.remove("show"),b.style.display="none",L=!1)}function So(){if(!b)return{x:0,y:0};let e=b.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}function vo(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top}}function Te(){if(!H()||!ge)return;if(!N){let i=G();if(v.debug("[SelectionToolbar] iframe onSelectionChange text:",i.text?.substring(0,30),"currentSelectedText:",!!x,"pendingIframeSelection:",!!R),i.text&&i.text.length>=2){let l=me(i.range);R={text:i.text,x:l.x,y:l.y},v.debug("[SelectionToolbar] iframe pendingIframeSelection set")}else if(x){x="",R=null;try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION_CLEAR"}).catch(()=>{})}catch{}}return}if(ie.length>0&&ie.includes(window.location.hostname)||rt)return;let e=window.getSelection(),t=e?e.toString().trim():"",o=null;if(t&&t.length>=2&&e.rangeCount>0)o=e.getRangeAt(0);else{let i=G();i.text&&i.text.length>=2&&(t=i.text,o=i.range)}if(!t||t.length<2){A||P(),x="",O=null;return}let n=5e3,a=t.length>n?t.substring(0,n)+"...":t;if(o){let i=o.commonAncestorContainer,l=i.nodeType===Node.TEXT_NODE?i.parentElement.closest("[contenteditable], input, textarea"):i.closest&&i.closest("[contenteditable], input, textarea");if(l instanceof HTMLElement&&(l.tagName==="INPUT"||l.tagName==="TEXTAREA")){P(),x="",O=null;return}}x=a,O=!0}function Co(e){if(!(b&&b.contains(e.target))&&!(f&&f.contains(e.target))&&!(e.target.closest&&e.target.closest(".aih-token-popup"))){if(de){de=!1;return}M&&!U&&Q(),L&&!A&&P(),chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}}function Ao(e){if(v.debug("[SelectionToolbar] onMouseUp isTopFrame:",N,"pendingSelection:",O,"pendingIframeSelection:",!!R,"currentSelectedText:",!!x,"isToolbarVisible:",L,"toolbarEl:",!!b),(e.detail||1)>=3&&(de=!0),!N){if(R){de=!0,R.text,x=R.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:R.text,x:R.x,y:R.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:R.text,x:R.x,y:R.y}).catch(()=>{})}catch{}R=null}else(e.detail||1)>=3&&setTimeout(()=>{let t=G();if(!t.text||t.text.length<2)return;let o=me(t.range);t.text,x=t.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y}).catch(()=>{})}catch{}},60);return}L||M||(O&&x?(de=!0,nt()):(e.detail||1)>=3&&setTimeout(()=>{A||(Te(),O&&x&&nt())},60))}function nt(){if(!O||!x||L)return;let e=window.innerWidth/2,t=window.innerHeight/2,o=window.getSelection();if(o&&o.rangeCount>0){let n=o.getRangeAt(0).getBoundingClientRect();(n.width>0||n.height>0)&&(e=n.left+n.width/2,t=n.top)}if(e===window.innerWidth/2&&t===window.innerHeight/2){let n=G();if(n.text&&n.text.length>=2){let a=me(n.range);e=a.x,t=a.y}}try{chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}catch{}fe(e,t),O=null}function Eo(){if(A)return;if(!N&&x){let o=G();if(o.text){let n=me(o.range);try{window.parent.postMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y}).catch(()=>{})}catch{}}return}if(!L)return;let e=window.getSelection();if(e&&e.rangeCount>0&&x){let o=e.getRangeAt(0).getBoundingClientRect();if(o.width>0||o.height>0){fe(o.left+o.width/2,o.top);return}}let t=G();if(t.text&&t.text.length>=2&&x){let o=me(t.range);fe(o.x,o.y);return}P()}function Mo(){A||L&&P()}function ft(e,t){if(!t)return;if(Ce=t,e==="copy"){Po(t),P();return}if(He=e,Oe="",["ai-search","explain","translate","summary"].includes(e)){qe(e,t);return}let o=D.find(n=>n.id===e);o&&(Oe=o.systemPrompt||"",qe(e,t,o.systemPrompt))}function Po(e){bt(e).then(()=>{Me()}).catch(t=>{v.error("[SelectionToolbar] copy failed:",t),pe()})}function Io(){let e=q;e&&bt(e).then(()=>{Me(d("selToolbar.copiedMarkdown"))}).catch(t=>{v.error("[SelectionToolbar] copyresult failed:",t),pe()})}function Ro(){let e=q;if(!e)return;let t=Lo(typeof marked<"u"?marked.parse(e):X(e).replace(/\n/g,"<br>"));if(navigator.clipboard&&typeof ClipboardItem<"u")try{let o=new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})});navigator.clipboard.write([o]).then(()=>{Me(d("selToolbar.copiedRich"))}).catch(n=>{v.error("[SelectionToolbar] richcopy failed:",n),it()});return}catch(o){v.error("[SelectionToolbar] richcopy failed:",o)}it()}function Lo(e){return`<!DOCTYPE html><html><head>
|
|
854
|
+
`,F(r),r.style.zIndex="2147483647",Be=!0;let s=e.getBoundingClientRect(),c=r.getBoundingClientRect(),m=s.top-c.height-8>0?s.top-c.height-8:s.bottom+8,p=s.left+s.width/2-c.width/2;p=Math.max(8,Math.min(p,window.innerWidth-c.width-8)),m+c.height>window.innerHeight-8&&(m=window.innerHeight-c.height-8),r.style.top=m+"px",r.style.left=p+"px",r.querySelector(".aih-token-popup-close").addEventListener("click",h=>{h.stopPropagation(),oe()});let u=h=>{!r.contains(h.target)&&!e.contains(h.target)&&(oe(),document.removeEventListener("click",u,!0))};setTimeout(()=>{document.addEventListener("click",u,!0)},0)}function fe(e,t){if(!b||!x||M)return;F(b);let o=window.innerWidth,n=window.innerHeight;b.style.display="flex",lastToolbarShowTime=Date.now(),requestAnimationFrame(()=>{let a=b.getBoundingClientRect(),i=a.width||300,l=a.height||40,r=e-i/2;r<8&&(r=8),r+i>o-8&&(r=o-i-8);let s=t-l-10;s<8&&(s=t+10),s<8&&(s=8),s+l>n-8&&(s=n-l-8),b.style.left=r+"px",b.style.top=s+"px",L||=(b.classList.add("aih-show"),!0)})}function P(){!b||!L||(A&&(A=!1,we="",re=null,b.classList.remove("aih-ask-mode"),b.style.width="",ce&&=(b.style.left=ce,"")),b.classList.remove("aih-show"),b.style.display="none",L=!1)}function So(){if(!b)return{x:0,y:0};let e=b.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}function vo(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top}}function Te(){if(!H()||!ge)return;if(!N){let i=G();if(v.debug("[SelectionToolbar] iframe onSelectionChange text:",i.text?.substring(0,30),"currentSelectedText:",!!x,"pendingIframeSelection:",!!R),i.text&&i.text.length>=2){let l=me(i.range);R={text:i.text,x:l.x,y:l.y},v.debug("[SelectionToolbar] iframe pendingIframeSelection set")}else if(x){x="",R=null;try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION_CLEAR"}).catch(()=>{})}catch{}}return}if(ie.length>0&&ie.includes(window.location.hostname)||rt)return;let e=window.getSelection(),t=e?e.toString().trim():"",o=null;if(t&&t.length>=2&&e.rangeCount>0)o=e.getRangeAt(0);else{let i=G();i.text&&i.text.length>=2&&(t=i.text,o=i.range)}if(!t||t.length<2){A||P(),x="",O=null;return}let n=5e3,a=t.length>n?t.substring(0,n)+"...":t;if(o){let i=o.commonAncestorContainer,l=i.nodeType===Node.TEXT_NODE?i.parentElement.closest("[contenteditable], input, textarea"):i.closest&&i.closest("[contenteditable], input, textarea");if(l instanceof HTMLElement&&(l.tagName==="INPUT"||l.tagName==="TEXTAREA")){P(),x="",O=null;return}}x=a,O=!0}function Co(e){if(!(b&&b.contains(e.target))&&!(f&&f.contains(e.target))&&!(e.target.closest&&e.target.closest(".aih-token-popup"))){if(de){de=!1;return}M&&!U&&Q(),L&&!A&&P(),chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}}function Ao(e){if(v.debug("[SelectionToolbar] onMouseUp isTopFrame:",N,"pendingSelection:",O,"pendingIframeSelection:",!!R,"currentSelectedText:",!!x,"isToolbarVisible:",L,"toolbarEl:",!!b),(e.detail||1)>=3&&(de=!0),!N){if(R){de=!0,R.text,x=R.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:R.text,x:R.x,y:R.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:R.text,x:R.x,y:R.y}).catch(()=>{})}catch{}R=null}else(e.detail||1)>=3&&setTimeout(()=>{let t=G();if(!t.text||t.text.length<2)return;let o=me(t.range);t.text,x=t.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y}).catch(()=>{})}catch{}},60);return}L||M||(O&&x?(de=!0,nt()):(e.detail||1)>=3&&setTimeout(()=>{A||(Te(),O&&x&&nt())},60))}function nt(){if(!O||!x||L)return;let e=window.innerWidth/2,t=window.innerHeight/2,o=window.getSelection();if(o&&o.rangeCount>0){let n=o.getRangeAt(0).getBoundingClientRect();(n.width>0||n.height>0)&&(e=n.left+n.width/2,t=n.top)}if(e===window.innerWidth/2&&t===window.innerHeight/2){let n=G();if(n.text&&n.text.length>=2){let a=me(n.range);e=a.x,t=a.y}}try{chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}catch{}fe(e,t),O=null}function Eo(){if(A)return;if(!N&&x){let o=G();if(o.text){let n=me(o.range);try{window.parent.postMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y}).catch(()=>{})}catch{}}return}if(!L)return;let e=window.getSelection();if(e&&e.rangeCount>0&&x){let o=e.getRangeAt(0).getBoundingClientRect();if(o.width>0||o.height>0){fe(o.left+o.width/2,o.top);return}}let t=G();if(t.text&&t.text.length>=2&&x){let o=me(t.range);fe(o.x,o.y);return}P()}function Mo(){A||L&&P()}function ft(e,t){if(!t)return;if(Ce=t,e==="copy"){Po(t),P();return}if(He=e,Oe="",["ai-search","explain","translate","summary"].includes(e)){qe(e,t);return}let o=D.find(n=>n.id===e);o&&(Oe=o.systemPrompt||"",qe(e,t,o.systemPrompt))}function Po(e){bt(e).then(()=>{Me()}).catch(t=>{v.error("[SelectionToolbar] copy failed:",t),pe()})}function Io(){let e=q;e&&bt(e).then(()=>{Me(d("selToolbar.copiedMarkdown"))}).catch(t=>{v.error("[SelectionToolbar] copyresult failed:",t),pe()})}function Ro(){let e=q;if(!e)return;let t=Lo(typeof marked<"u"?marked.parse(e):X(e).replace(/\n/g,"<br>"));if(navigator.clipboard&&typeof ClipboardItem<"u")try{let o=new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})});navigator.clipboard.write([o]).then(()=>{Me(d("selToolbar.copiedRich"))}).catch(n=>{v.error("[SelectionToolbar] richcopy failed:",n),it()});return}catch(o){v.error("[SelectionToolbar] richcopy failed:",o)}it()}function Lo(e){return`<!DOCTYPE html><html><head>
|
|
855
855
|
<style>
|
|
856
856
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; line-height: 1.6; color: #24292f; }
|
|
857
857
|
h1 { font-size: 24px; font-weight: bold; margin: 16px 0 8px; }
|
|
@@ -883,7 +883,7 @@ Question 3`}});var S={search:'<svg width="15" height="15" viewBox="0 0 24 24" fi
|
|
|
883
883
|
border: none;
|
|
884
884
|
border-radius: 0;
|
|
885
885
|
}
|
|
886
|
-
table { border-collapse: collapse; width:
|
|
886
|
+
table { border-collapse: collapse; width: auto; margin: 8px 0; }
|
|
887
887
|
th, td { border: 1px solid #ddd; padding: 6px 12px; text-align: left; }
|
|
888
888
|
th { background: #f9f9f9; font-weight: bold; }
|
|
889
889
|
strong { font-weight: bold; }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/side_panel-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/side_panel-D-ghUe7b.js","assets/rolldown-runtime-C0FnF6B9.js","assets/i18n-De3tbtBv.js","assets/constants-DBNqocFG.js","assets/agent-defaults-Ct1YxFzI.js","assets/state-B9PZN_fc.js","assets/agent-store-D0Es5Ite.js","assets/session-manager-UTq_z6mZ.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,c as n,l as r,r as i}from"./i18n-De3tbtBv.js";import{n as a,r as o}from"./constants-DBNqocFG.js";import{t as s}from"./agent-defaults-Ct1YxFzI.js";import{t as c}from"./state-B9PZN_fc.js";import{a as l,c as u,i as d,n as f,o as p,r as m,s as h}from"./agent-store-D0Es5Ite.js";import{a as g,b as _,c as v,d as ee,g as te,h as ne,i as re,k as y,m as ie,o as ae,p as b,r as oe,u as se,x}from"./session-manager-UTq_z6mZ.js";var ce=[...new Set([...o,`mcp`])],S=[{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}];t(`zh`,{toolPanel:{agentRestrictedBanner:`当前 Agent 限制了可用工具,部分工具已禁用`,noMatch:`没有匹配的工具`,enabledCount:`已启用 {count} 个工具`,toolsEnabled:`工具已启用`,allToolsDisabled:`所有工具已禁用`,toggleBtnEnabled:`禁用所有工具`,toggleBtnDisabled:`启用所有工具`}}),t(`en`,{toolPanel:{agentRestrictedBanner:`Current agent has restricted available tools, some tools are disabled`,noMatch:`No matching tools`,enabledCount:`{count} tools enabled`,toolsEnabled:`Tools enabled`,allToolsDisabled:`All tools disabled`,toggleBtnEnabled:`Disable all tools`,toggleBtnDisabled:`Enable all tools`}});var C=[];function w(e){if(!e)return``;let t=`tool.${e.id}`,r=n(t);return r===t?e.description||``:r}async function le(){try{let e=await chrome.runtime.sendMessage({type:`GET_MCP_TOOLS`});if(e?.success&&e.tools)return C=e.tools,C}catch{}try{return C=(await chrome.storage.local.get([`mcpTools`])).mcpTools||[],C}catch{return C=[],[]}}chrome.storage.onChanged.addListener((e,t)=>{if(t!==`local`)return;let n=!1;e.mcpTools&&(C=e.mcpTools.newValue||[],r.debug(`[SidePanel] MCP toolcache updated:`,C.length,``),n=!0),e.mcpEnabled&&(T=e.mcpEnabled.newValue===!0,r.debug(`[SidePanel] MCP globaltoggle changed:`,T),n=!0),e.skillsEnabled&&(E=e.skillsEnabled.newValue!==!1,r.debug(`[SidePanel] Skill global toggle changed:`,E),n=!0),n&&document.getElementById(`toolsPopupOverlay`)?.classList.contains(`show`)&&(k(),A(),O())}),le();var T=!1,E=!0;chrome.storage.local.get([`mcpEnabled`,`skillsEnabled`],e=>{T=e.mcpEnabled===!0,E=e.skillsEnabled!==!1});function D(){let e=T?C:[],t=[...a,...e],n=c.activeAgentToolIds,r=t;if(n!=null){let e=new Set(n);r=t.filter(t=>e.has(t.id))}return E||(r=r.filter(e=>e.id!==`agent_skill`)),c.agentPlatform?.connected!==!0&&(r=r.filter(e=>!e.id.startsWith(`agent_`)&&!e.id.startsWith(`mcp_`))),r}async function ue(){let e=document.getElementById(`toolsPopupOverlay`);if(!e)return;c.currentCategory=`all`,c.currentSearch=``;let t=document.getElementById(`toolsSearchInput`);t&&(t.value=``),await le(),k(),A(),chrome.storage.local.get([`enableToolPreselect`],e=>{let t=document.getElementById(`toolsPreselectToggle`);t&&(t.checked=e.enableToolPreselect!==void 0&&e.enableToolPreselect)}),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`)}),O(),e.classList.add(`show`),r.debug(`[SidePanel] opentool popup`)}function de(){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`),r.debug(`[SidePanel] closetool popup`))}function O(){let e=document.getElementById(`toolsPopupList`);if(!e)return;e.innerHTML=``;let t=D();if(c.activeAgentToolIds!==null&&c.activeAgentToolIds!==void 0){let t=document.createElement(`div`);t.className=`popup-tool-agent-banner`,t.innerHTML=`<span>${n(`toolPanel.agentRestrictedBanner`)}</span>`,e.appendChild(t)}let r={};if(t.forEach(e=>{if(c.currentCategory!==`all`&&e.category!==c.currentCategory)return;if(c.currentSearch){let t=e.name.toLowerCase().includes(c.currentSearch),n=w(e).toLowerCase().includes(c.currentSearch);if(!t&&!n)return}let t=e.category||`other`;r[t]||(r[t]=[]),r[t].push(e)}),ce.forEach(i=>{let a=r[i];if(!a||a.length===0)return;let o=t.filter(e=>e.category===i),s=o.length,l=o.filter(e=>c.enabledTools.includes(e.id)).length,u=document.createElement(`div`);u.className=`popup-tool-category-group`,u.dataset.category=i;let d=document.createElement(`div`);d.className=`popup-tool-category`,d.dataset.category=i;let f=c.collapsedCategories[i]||!1;d.innerHTML=`
|
|
3
3
|
<span class="category-expand-icon">${f?`▶`:`▼`}</span>
|
|
4
4
|
<span class="category-name">${n(`toolCategory.`+i)}</span>
|
|
@@ -67,5 +67,5 @@ Sessions using this assistant will revert to the default assistant.`,deleteAgent
|
|
|
67
67
|
<input type="checkbox" value="${G(e.name)}" ${t}>
|
|
68
68
|
<span class="agent-tool-name" title="${G(e.name)}">${W(e.name)}</span>
|
|
69
69
|
<span class="agent-tool-desc" title="${G(e.description||``)}">${W((e.description||``).substring(0,40))}${(e.description||``).length>40?`...`:``}</span>
|
|
70
|
-
</label>`}).join(``);let s=document.getElementById(`agentSkillCount`);s&&(s.textContent=n(`agentConfig.selectedTotalCount`,{selected:a,total:o}))}function st(){let e=document.getElementById(`agentSkillList`);if(!e)return null;let t=e.querySelectorAll(`input[type="checkbox"]:checked`),n=[];return t.forEach(e=>n.push(e.value)),n.length>0?n:null}async function ct(){let e=document.getElementById(`agentModelList`);if(!e)return;let t=[`deepseek-v4-pro`,`deepseek-v4-flash`];return new Promise(n=>{chrome.storage.local.get([`customModels`,`deletedPresetModels`],r=>{let i=new Set(r.deletedPresetModels||[]),a=t.filter(e=>!i.has(e));(r.customModels||[]).forEach(e=>{let t;typeof e==`string`?t=e:e&&e.name&&(t=e.name),t&&!a.includes(t)&&a.push(t)}),e.innerHTML=a.map(e=>`<option value="${G(e)}">`).join(``),n()})})}function U(e){let t=document.getElementById(`agentEditTempPreset`);if(t){for(;t.options.length>1;)t.remove(1);S.forEach((e,r)=>{let i=document.createElement(`option`);i.value=r,i.textContent=`${n(e.labelKey)}(${e.temp.toFixed(2)})`,t.appendChild(i)}),t.value=e!==void 0&&e>=0?e:``}}function lt(){let e=document.getElementById(`agentEditTempPreset`);if(!e||e.value===``)return{temperature:null,topP:null};let t=parseInt(e.value);if(isNaN(t)||t<0||t>=S.length)return{temperature:null,topP:null};let n=S[t];return{temperature:n.temp,topP:n.topP}}function ut(e,t){if(e==null)return-1;for(let n=0;n<S.length;n++){let r=S[n];if(Math.abs(r.temp-e)<.001&&Math.abs(r.topP-(t||1))<.001)return n}return-1}async function dt(){let e=document.getElementById(`agentEditModal`);if(!e)return;let t=e.querySelector(`#agentEditId`).value,i=e.querySelector(`#agentEditName`).value.trim(),a=e.querySelector(`#agentEditIcon`).value.trim()||`🤖`,o=e.querySelector(`#agentEditDesc`).value.trim(),s=e.querySelector(`#agentEditPrompt`).value.trim(),c=e.querySelector(`#agentEditAllowSub`).checked,l=ot(),d=st(),p=e.querySelector(`#agentEditModel`).value.trim()||null,{temperature:m,topP:h}=lt();if(!i){y(n(`agentMgr.nameRequired`),`warning`);return}let g={name:i,icon:a,description:o,systemPrompt:s,allowSubDispatch:c,toolIds:l,skillIds:d,model:p,temperature:m,topP:h};try{if(t)await u(t,g),y(n(`agentMgr.agentUpdated`),`success`);else{let e=await f(g);y(n(`agentMgr.agentCreated`,{name:e.name}),`success`)}await F(),await I(),B()}catch(e){r.error(`[AgentMgr] save Agent failed:`,e),y(n(`agentMgr.saveFailed`,{message:e.message}),`error`)}}async function ft(){let e=document.getElementById(`agentEditModal`);if(!e)return;let t=e.querySelector(`#agentEditId`)?.value;if(!t)return;let i=await l(t),a=i?i.name:``;if(await gt(n(`agentMgr.confirmDeleteAgentMessage`,{name:a}),n(`agentMgr.deleteAgentTitle`)))try{await m(t),y(n(`agentMgr.agentDeleted`),`success`),await F(),await I(),B()}catch(e){r.error(`[AgentMgr] delete Agent failed:`,e),y(n(`agentMgr.deleteFailed`,{message:e.message}),`error`)}}async function pt(e){if(!e)return!1;let t=await l(e);if(!t||t.isBuiltin)return y(n(`agentMgr.cannotDeleteDefault`),`warning`),!1;if(!await gt(n(`agentMgr.confirmDeleteAgentMessage`,{name:t.name}),n(`agentMgr.deleteAgentTitle`)))return!1;try{return await m(e),y(n(`agentMgr.agentDeleted`),`success`),await F(),await I(),!0}catch(e){return r.error(`[AgentMgr] delete Agent failed:`,e),y(n(`agentMgr.deleteFailed`,{message:e.message}),`error`),!1}}async function mt(){return c.activeAgentId?await l(c.activeAgentId):null}function ht(e){return e?e.toolIds:null}function W(e){if(!e)return``;let t=document.createElement(`div`);return t.textContent=e,t.innerHTML}function G(e){return e?e.replace(/["&<>]/g,e=>({'"':`"`,"&":`&`,"<":`<`,">":`>`})[e]):``}async function gt(e,t){return typeof window.showCustomConfirm==`function`?window.showCustomConfirm(e,t):new Promise(r=>{let i=document.getElementById(`agentConfirmModal`);if(!i){r(confirm(e));return}i.querySelector(`#agentConfirmMessage`).textContent=e,i.querySelector(`#agentConfirmTitle`).textContent=t||n(`agentMgr.confirm`),i.style.display=`flex`;let a=()=>{i.style.display=`none`,i.querySelector(`#agentConfirmOk`).removeEventListener(`click`,o),i.querySelector(`#agentConfirmCancel`).removeEventListener(`click`,s),i.removeEventListener(`click`,c)},o=()=>{a(),r(!0)},s=()=>{a(),r(!1)},c=e=>{e.target===i&&(a(),r(!1))};i.querySelector(`#agentConfirmOk`).addEventListener(`click`,o),i.querySelector(`#agentConfirmCancel`).addEventListener(`click`,s),i.addEventListener(`click`,c)})}var _t=e({closeCurrentSession:()=>Qt,handleDuplicateSession:()=>Q,newSession:()=>St,renderSessionTabs:()=>J});t(`zh`,{session:{newSession:`新会话`,closeSession:`关闭会话`,taskCompleted:`任务已完成`,closeAllCount:`关闭全部({count})`,noMatch:`未找到匹配的会话`,rename:`重命名`,duplicate:`复制会话`,confirmCloseMessageWithTitle:`确定要关闭会话 "{title}" 吗?`,confirmCloseAllMessage:`确定要关闭所有 {count} 个会话吗?`,confirmCloseAllTitle:`关闭全部会话`,forkedFrom:`已从 "{title}" 分叉`,forkedSession:`已复制会话 "{title}"`,operationFailed:`操作失败:{message}`,sessionListTitle:`会话列表`,closeGroupAll:`全部关闭`,confirmCloseGroupMessage:`确定要关闭“{group}”下的 {count} 个会话吗?`,today:`今天`,yesterday:`昨天`,last7Days:`近 7 天`,earlier:`更早`,todayFormat:`今天 {hour}:{minute}`,yesterdayFormat:`昨天 {hour}:{minute}`,daysAgo:`{count} 天前`}}),t(`en`,{session:{newSession:`New Session`,closeSession:`Close Session`,taskCompleted:`Task completed`,closeAllCount:`Close All ({count})`,noMatch:`No matching sessions found`,rename:`Rename`,duplicate:`Duplicate`,confirmCloseMessageWithTitle:`Are you sure you want to close session "{title}"?`,confirmCloseAllMessage:`Are you sure you want to close all {count} sessions?`,confirmCloseAllTitle:`Close All Sessions`,forkedFrom:`Forked from "{title}"`,forkedSession:`Duplicated session "{title}"`,operationFailed:`Operation failed: {message}`,sessionListTitle:`Sessions`,closeGroupAll:`Close all`,confirmCloseGroupMessage:`Are you sure you want to close {count} sessions in "{group}"?`,today:`Today`,yesterday:`Yesterday`,last7Days:`Last 7 days`,earlier:`Earlier`,todayFormat:`Today {hour}:{minute}`,yesterdayFormat:`Yesterday {hour}:{minute}`,daysAgo:`{count}d ago`}});var K={visible:!1,highlightIndex:-1,filteredSessions:[]},q={draggedId:null,sourceType:null};function vt(e){if(!e)return``;let t=new Date(e),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime(),a=t.getTime();if(a>=i)return n(`session.todayFormat`,{hour:String(t.getHours()).padStart(2,`0`),minute:String(t.getMinutes()).padStart(2,`0`)});if(a>=i-864e5)return n(`session.yesterdayFormat`,{hour:String(t.getHours()).padStart(2,`0`),minute:String(t.getMinutes()).padStart(2,`0`)});let o=Math.floor((i-a)/864e5);return o<=7?n(`session.daysAgo`,{count:o}):t.getFullYear()===r.getFullYear()?`${t.getMonth()+1}/${t.getDate()}`:`${t.getFullYear()}/${t.getMonth()+1}/${t.getDate()}`}function yt(e){return e.sort((e,t)=>{let n=e.updatedAt?new Date(e.updatedAt).getTime():0;return(t.updatedAt?new Date(t.updatedAt).getTime():0)-n})}function bt(e){if(!e)return`earlier`;let t=new Date(e),n=new Date,r=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),i=t.getTime();return i>=r?`today`:i>=r-864e5?`yesterday`:Math.floor((r-i)/864e5)<=7?`last7Days`:`earlier`}async function J(){let e=await v();c.sessions=e.list,c.activeSessionId=e.activeSessionId;let t=document.getElementById(`sessionTabs`),r=document.getElementById(`sessionTabsScroll`),i=document.getElementById(`sessionTabsActions`);!t||!r||!i||(r.style.opacity=``,r.innerHTML=``,e.list.forEach(e=>{let t=document.createElement(`div`);t.className=`session-tab`,t.dataset.sessionId=e.id,e.id===c.activeSessionId&&t.classList.add(`active`),t.title=e.title;let i=document.createElement(`span`);i.className=`session-tab-title`,i.textContent=e.title||n(`session.newSession`),t.appendChild(i);let a=document.createElement(`span`);if(a.className=`session-tab-close`,a.innerHTML=`✕`,a.title=n(`session.closeSession`),a.addEventListener(`click`,async t=>{if(t.stopPropagation(),(e.id===c.activeSessionId?c.messageHistory?.length||0:e.messageHistory?.length||0)===0){await g(e.id),await $();return}Yt(e,async()=>{await $()})}),t.appendChild(a),e.isGenerating||c.generatingSessionIds.has(e.id)){let e=document.createElement(`span`);e.className=`session-tab-indicator`,t.appendChild(e)}else if(c.completedSessionIds.has(e.id)&&e.id!==c.activeSessionId){let e=document.createElement(`span`);e.className=`session-tab-completed-indicator`,e.title=n(`session.taskCompleted`),t.appendChild(e)}t.addEventListener(`click`,async t=>{t.preventDefault(),e.id!==c.activeSessionId&&await Wt(e.id)}),t.addEventListener(`contextmenu`,t=>{t.preventDefault(),Xt(t,e)}),t.addEventListener(`mousedown`,async t=>{t.button===1&&(t.preventDefault(),t.stopPropagation(),await g(e.id),await $())}),t.draggable=!0,t.addEventListener(`dragstart`,t=>Ot(t,e.id)),t.addEventListener(`dragover`,e=>kt(e)),t.addEventListener(`dragleave`,e=>At(e)),t.addEventListener(`drop`,t=>jt(t,e.id)),t.addEventListener(`dragend`,e=>Mt(e)),r.appendChild(t)}),xt(),Ct(),Bt(),qt(r),wt(r),Dt(r))}function xt(){let e=document.getElementById(`sessionTabsMore`);if(!e)return;let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,e=>{e.stopPropagation(),Nt()})}async function St(){let e=c.activeSessionId;await b();let t=await re();c.activeSessionId=t.id,c.messageHistory=[],document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:t.id,previousSessionId:e}})),J()}function Ct(){let e=document.getElementById(`sessionTabsAdd`);if(!e)return;let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,()=>St())}function wt(e){let t=document.getElementById(`sessionTabsMore`);t&&(e.scrollWidth>e.clientWidth?t.style.display=`flex`:t.style.display=`none`)}var Tt=null;function Et(){if(Tt)return;let e=document.getElementById(`sessionTabsScroll`);e&&(Tt=new ResizeObserver(()=>{requestAnimationFrame(()=>{wt(e)})}),Tt.observe(e))}function Dt(e){let t=e.querySelector(`.session-tab.active`);if(t){let n=t.offsetLeft,r=t.offsetWidth;e.scrollLeft=n-(e.clientWidth-r)/2}e.style.opacity=`1`}function Ot(e,t){q.draggedId=t,q.sourceType=`tab`,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t),e.currentTarget.classList.add(`dragging`)}function kt(e){e.preventDefault(),e.dataTransfer.dropEffect=`move`,e.currentTarget.classList.add(`drag-over`)}function At(e){e.currentTarget.classList.remove(`drag-over`)}async function jt(e,t){e.preventDefault(),e.currentTarget.classList.remove(`drag-over`);let n=q.draggedId;if(!n||n===t)return;let r=c.sessions||[],i=r.findIndex(e=>e.id===n),a=r.findIndex(e=>e.id===t);if(i===-1||a===-1)return;let o=[...r],[s]=o.splice(i,1);o.splice(a,0,s),c.sessions=o,await ee(o.map(e=>e.id)),J()}function Mt(e){e.currentTarget.classList.remove(`dragging`),document.querySelectorAll(`.session-tab.drag-over`).forEach(e=>e.classList.remove(`drag-over`)),q.draggedId=null,q.sourceType=null}function Nt(){K.visible?Y():Pt()}async function Pt(){let e=document.getElementById(`sessionTabsMore`),t=document.getElementById(`sessionDropdown`);if(!e||!t)return;let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,K.filteredSessions=yt([...n.list]),K.highlightIndex=-1,K.visible=!0,X(),t.classList.add(`show`);let r=document.getElementById(`sessionDropdownCloseBtn`);r&&(r.onclick=()=>Y());let i=document.getElementById(`sessionDropdownSearch`),a=document.getElementById(`sessionDropdownSearchClear`);i&&(i.value=K.lastSearchText||``,Ft(),K.lastSearchText&&Z(K.lastSearchText),setTimeout(()=>i.focus(),50),i.oninput=()=>{K.lastSearchText=i.value,Ft(),Z(i.value)},i.onkeydown=e=>{Vt(e)}),a&&(a.onclick=()=>{i&&(i.value=``,K.lastSearchText=``,Ft(),Z(``),i.focus())}),e.classList.add(`active`)}function Y(){let e=document.getElementById(`sessionTabsMore`),t=document.getElementById(`sessionDropdown`);t&&t.classList.remove(`show`),e&&e.classList.remove(`active`);let n=document.getElementById(`sessionDropdownSearch`);n&&(K.lastSearchText=n.value,n.oninput=null,n.onkeydown=null);let r=document.getElementById(`sessionDropdownSearchClear`);r&&(r.onclick=null),K.visible=!1,K.highlightIndex=-1,K.filteredSessions=[]}function Ft(){let e=document.getElementById(`sessionDropdownSearch`),t=document.getElementById(`sessionDropdownSearchClear`);t&&e&&(t.style.display=e.value?`flex`:`none`)}function X(){let e=document.getElementById(`sessionDropdownList`);if(!e)return;e.innerHTML=``;let t=document.getElementById(`sessionDropdownCloseAll`);if(t){let e=(c.sessions||[]).length;t.textContent=n(`session.closeAllCount`,{count:e})}if(K.filteredSessions.length===0){let t=document.createElement(`div`);t.className=`session-dropdown-empty`,t.textContent=n(`session.noMatch`),e.appendChild(t);return}let r={today:n(`session.today`),yesterday:n(`session.yesterday`),last7Days:n(`session.last7Days`),earlier:n(`session.earlier`)},i={};K.filteredSessions.forEach(e=>{let t=bt(e.updatedAt);i[t]=(i[t]||0)+1});let a=null;K.filteredSessions.forEach((t,o)=>{let s=bt(t.updatedAt);if(s!==a){a=s;let t=document.createElement(`div`);t.className=`session-dropdown-group-header`;let o=document.createElement(`span`);if(o.textContent=r[s]||s,t.appendChild(o),(i[s]||0)>0){let e=document.createElement(`button`);e.className=`session-dropdown-group-close`,e.textContent=n(`session.closeGroupAll`),e.onclick=e=>{e.stopPropagation(),zt(s,r[s]||s)},t.appendChild(e)}e.appendChild(t)}let l=document.createElement(`div`);if(l.className=`session-dropdown-item`,l.dataset.sessionId=t.id,l.dataset.index=o,t.id===c.activeSessionId&&l.classList.add(`active`),o===K.highlightIndex&&l.classList.add(`highlighted`),c.completedSessionIds.has(t.id)&&t.id!==c.activeSessionId&&!t.isGenerating&&!c.generatingSessionIds.has(t.id)){let e=document.createElement(`span`);e.className=`session-dropdown-item-completed`,e.title=n(`session.taskCompleted`),l.appendChild(e)}let u=document.createElement(`span`);u.className=`session-dropdown-item-icon`,u.innerHTML=`<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>`,l.appendChild(u);let d=document.createElement(`span`);if(d.className=`session-dropdown-item-title`,d.textContent=t.title||n(`session.newSession`),d.title=t.title||n(`session.newSession`),l.appendChild(d),t.id===c.activeSessionId){let e=document.createElement(`span`);e.className=`session-dropdown-item-check`,e.innerHTML=`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>`,l.appendChild(e)}let f=document.createElement(`span`);f.className=`session-dropdown-item-time`,f.textContent=vt(t.updatedAt),l.appendChild(f);let p=document.createElement(`span`);p.className=`session-dropdown-item-actions`;let m=document.createElement(`span`);m.className=`session-dropdown-item-rename`,m.title=n(`session.rename`),m.innerHTML=`<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>`,m.addEventListener(`click`,e=>{e.stopPropagation(),e.preventDefault(),Jt(t)}),p.appendChild(m);let h=document.createElement(`span`);h.className=`session-dropdown-item-duplicate`,h.title=n(`session.duplicate`),h.innerHTML=`<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="6" r="2.5"/><path d="M6 8.5v7"/><path d="M18 8.5c0 4-6 3.5-6 3.5"/></svg>`,h.addEventListener(`click`,async e=>{e.stopPropagation(),e.preventDefault(),await Q(t.id);let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}),p.appendChild(h);let g=document.createElement(`span`);g.className=`session-dropdown-item-close`,g.innerHTML=`✕`,g.title=n(`session.closeSession`),g.addEventListener(`click`,async e=>{e.stopPropagation(),e.preventDefault(),await Lt(t.id)}),p.appendChild(g),l.appendChild(p),l.addEventListener(`click`,async e=>{e.preventDefault(),await It(t.id)}),e.appendChild(l)})}function Z(e){let t=c.sessions||[],r;if(!e.trim())r=[...t];else{let i=e.trim().toLowerCase();r=t.filter(e=>(e.title||n(`session.newSession`)).toLowerCase().includes(i))}K.filteredSessions=yt(r),K.highlightIndex=-1,X()}async function It(e){Y(),e!==c.activeSessionId&&await Wt(e)}async function Lt(e){let t=(c.sessions||[]).find(t=>t.id===e);t&&((e===c.activeSessionId?c.messageHistory?.length||0:t.messageHistory?.length||0)>0&&!await Ut(n(`session.confirmCloseMessageWithTitle`,{title:t.title}),n(`session.closeSession`))||(await g(e),await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)))}async function Rt(){let e=c.sessions||[];if(e.length!==0&&await Ut(n(`session.confirmCloseAllMessage`,{count:e.length}),n(`session.confirmCloseAllTitle`))){for(let t of e)await g(t.id);await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}}async function zt(e,t){let r=(c.sessions||[]).filter(t=>bt(t.updatedAt)===e);if(r.length!==0&&await Ut(n(`session.confirmCloseGroupMessage`,{group:t,count:r.length}),n(`session.closeSession`))){for(let e of r)await g(e.id);await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}}function Bt(){let e=document.getElementById(`sessionDropdownCloseAll`),t=document.getElementById(`sessionDropdown`);if(t){if(e){let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,async e=>{e.stopPropagation(),await Rt()})}t.addEventListener(`click`,e=>{e.stopPropagation()})}}function Vt(e){if(!K.visible)return;let t=K.filteredSessions.length;if(t===0){e.key===`Escape`&&Y();return}switch(e.key){case`ArrowDown`:e.preventDefault(),K.highlightIndex=Math.min(K.highlightIndex+1,t-1),X(),Ht();break;case`ArrowUp`:e.preventDefault(),K.highlightIndex=Math.max(K.highlightIndex-1,0),X(),Ht();break;case`Enter`:if(e.preventDefault(),K.highlightIndex>=0&&K.highlightIndex<t){let e=K.filteredSessions[K.highlightIndex];It(e.id)}break;case`Escape`:e.preventDefault(),Y()}}function Ht(){let e=document.querySelector(`.session-dropdown-item.highlighted`);e&&e.scrollIntoView({block:`nearest`})}function Ut(e,t){return new Promise(t=>{let n=document.getElementById(`sessionDeleteModal`),r=document.getElementById(`sessionDeleteMessage`),i=document.getElementById(`sessionDeleteConfirmBtn`),a=document.getElementById(`sessionDeleteCancelBtn`),o=document.getElementById(`sessionDeleteCloseBtn`);if(!n||!r){t(!1);return}r.textContent=e;let s=()=>{n.classList.remove(`show`),i.removeEventListener(`click`,c),a.removeEventListener(`click`,l),o.removeEventListener(`click`,l)},c=()=>{s(),t(!0)},l=()=>{s(),t(!1)};i.addEventListener(`click`,c),a.addEventListener(`click`,l),o.addEventListener(`click`,l),n.classList.add(`show`)})}async function Wt(e){let t=c.activeSessionId;if(!await ie(e))return;let n=`agentEnabledTools_${c.activeAgentId||`default`}`,[r,i,o,s]=await Promise.all([v(),chrome.storage.local.get([`mcpTools`]),chrome.storage.local.get([n,`enabledTools`]),c.activeAgentId?l(c.activeAgentId):Promise.resolve(null)]);c.sessions=r.list,c.activeSessionId=e;let u=i.mcpTools||[],d=!!o[n],f=o[n]||o.enabledTools;if(f&&f.length>0){let e=new Set([...a.map(e=>e.id),...u.map(e=>e.id)]),t=f.filter(t=>e.has(t));if(d){let e=u.filter(e=>!t.includes(e.id)).map(e=>e.id);c.enabledTools=[...t,...e]}else{let e=a.filter(e=>e.enabled&&!t.includes(e.id)).map(e=>e.id),n=u.filter(e=>!t.includes(e.id)).map(e=>e.id);c.enabledTools=[...t,...e,...n]}c.enabledTools.length!==f.length&&chrome.storage.local.set({[n]:c.enabledTools})}else c.enabledTools=[...a.filter(e=>e.enabled).map(e=>e.id),...u.map(e=>e.id)];c.activeAgentToolIds=s?s.toolIds:null,document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:e,previousSessionId:t}})),oe(e),J(),Gt(),I();try{let{refreshBookmarkPanel:e,updateBookmarkButtons:t}=await ne(async()=>{let{refreshBookmarkPanel:e,updateBookmarkButtons:t}=await import(`./side_panel-rVyRglOZ.js`).then(e=>e.t);return{refreshBookmarkPanel:e,updateBookmarkButtons:t}},__vite__mapDeps([0,1,2,3,4,5,6,7]));e(),setTimeout(()=>t(),100)}catch{}let p=document.getElementById(`toolsPopupOverlay`);p&&p.classList.contains(`show`)&&(O(),k(),A()),j()}async function Q(e,t=null){if(e)try{let r=await ae(e,t);await Wt(r.id),y(n(t?`session.forkedFrom`:`session.forkedSession`,{title:r.title}),`success`)}catch(e){r.error(`[SessionUI] copy/forksession failed:`,e),y(n(`session.operationFailed`,{message:e.message}),`error`)}}function Gt(){let e=document.querySelector(`.model-display`);e&&c.currentModel&&(e.textContent=c.currentModel);let t=document.getElementById(`enableToolsBtn`);t&&(t.checked=c.useTools);let n=document.getElementById(`tempIconValue`);n&&c.temperature!==void 0&&(n.textContent=c.temperature.toFixed(2))}var Kt=new WeakSet;function qt(e){Kt.has(e)||(Kt.add(e),e.addEventListener(`wheel`,t=>{e.scrollWidth<=e.clientWidth||(t.preventDefault(),e.scrollLeft+=t.deltaY)},{passive:!1}))}function Jt(e){let t=document.getElementById(`sessionRenameModal`),n=document.getElementById(`sessionRenameInput`),r=document.getElementById(`sessionRenameConfirmBtn`),i=document.getElementById(`sessionRenameCancelBtn`),a=document.getElementById(`sessionRenameCloseBtn`);if(!t||!n)return;n.value=e.title;let o=()=>{t.classList.remove(`show`),r.removeEventListener(`click`,s),i.removeEventListener(`click`,l),a.removeEventListener(`click`,l)},s=async()=>{let t=n.value.trim();if(t&&t!==e.title){await se(e.id,t),J();let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}o()},l=()=>{o()};r.addEventListener(`click`,s),i.addEventListener(`click`,l),a.addEventListener(`click`,l),n.onkeydown=e=>{e.key===`Enter`?s():e.key===`Escape`&&l()},t.classList.add(`show`),setTimeout(()=>{n.focus(),n.select()},50)}function Yt(e,t){let r=document.getElementById(`sessionDeleteModal`),i=document.getElementById(`sessionDeleteMessage`),a=document.getElementById(`sessionDeleteConfirmBtn`),o=document.getElementById(`sessionDeleteCancelBtn`),s=document.getElementById(`sessionDeleteCloseBtn`);if(!r||!i)return;i.textContent=n(`session.confirmCloseMessageWithTitle`,{title:e.title});let c=()=>{r.classList.remove(`show`),a.removeEventListener(`click`,l),o.removeEventListener(`click`,u),s.removeEventListener(`click`,u)},l=async()=>{await g(e.id),t&&await t(),c()},u=()=>{c()};a.addEventListener(`click`,l),o.addEventListener(`click`,u),s.addEventListener(`click`,u),r.classList.add(`show`),requestAnimationFrame(()=>a.focus())}function Xt(e,t){let r=document.querySelector(`.session-context-menu`);r&&r.remove();let i=document.createElement(`div`);i.className=`session-context-menu`,i.style.left=e.clientX+`px`,i.style.top=e.clientY+`px`;let a=Zt(n(`session.rename`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>`,()=>{i.remove(),Jt(t)});i.appendChild(a);let o=Zt(n(`session.duplicate`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="6" r="2.5"/><path d="M6 8.5v7"/><path d="M18 8.5c0 4-6 3.5-6 3.5"/></svg>`,()=>{i.remove(),Q(t.id)});i.appendChild(o);let s=Zt(n(`session.closeSession`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg>`,async()=>{if(i.remove(),(t.id===c.activeSessionId?c.messageHistory?.length||0:t.messageHistory?.length||0)===0){await g(t.id),await $();return}Yt(t,async()=>{await $()})},`danger`);i.appendChild(s),document.body.appendChild(i);let l=e=>{i.contains(e.target)||(i.remove(),document.removeEventListener(`click`,l))};setTimeout(()=>document.addEventListener(`click`,l),0)}function Zt(e,t=``,n,r=``){let i=document.createElement(`div`);return i.className=`session-context-menu-item `+r,t?i.innerHTML=`${t}<span>${e}</span>`:i.textContent=e,i.addEventListener(`click`,n),i}async function $(){let e=c.activeSessionId,t=await v();t.activeSessionId||(await re(),t=await v()),c.activeSessionId=t.activeSessionId,c.sessions=t.list;let n=t.list.find(e=>e.id===t.activeSessionId);if(c.messageHistory=n&&n.messageHistory||[],c.activeAgentId=n&&n.agentId||null,c.activeAgentId){let e=await l(c.activeAgentId);c.activeAgentToolIds=e?e.toolIds:null}else c.activeAgentToolIds=null;document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:c.activeSessionId,previousSessionId:e}})),J(),await I()}async function Qt(){let e=c.activeSessionId;if(!e)return;let t=c.sessions?.find(t=>t.id===e);if(t){if((c.messageHistory?.length||0)===0){await g(e),await $();return}Yt(t,async()=>{await $()})}}document.addEventListener(`generating-state-changed`,()=>{J()}),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,Et):Et();export{ue as A,Ne as C,we as D,Fe as E,k as F,A as I,S as L,O as M,ge as N,de as O,he as P,Ee as S,ke as T,N as _,_t as a,je as b,ht as c,Ke as d,Le as f,Me as g,P as h,J as i,_e as j,me as k,He as l,Re as m,Q as n,pt as o,De as p,St as r,mt as s,Qt as t,z as u,ze as v,xe as w,Ie as x,Oe as y};
|
|
71
|
-
//# sourceMappingURL=session-manager-ui-
|
|
70
|
+
</label>`}).join(``);let s=document.getElementById(`agentSkillCount`);s&&(s.textContent=n(`agentConfig.selectedTotalCount`,{selected:a,total:o}))}function st(){let e=document.getElementById(`agentSkillList`);if(!e)return null;let t=e.querySelectorAll(`input[type="checkbox"]:checked`),n=[];return t.forEach(e=>n.push(e.value)),n.length>0?n:null}async function ct(){let e=document.getElementById(`agentModelList`);if(!e)return;let t=[`deepseek-v4-pro`,`deepseek-v4-flash`];return new Promise(n=>{chrome.storage.local.get([`customModels`,`deletedPresetModels`],r=>{let i=new Set(r.deletedPresetModels||[]),a=t.filter(e=>!i.has(e));(r.customModels||[]).forEach(e=>{let t;typeof e==`string`?t=e:e&&e.name&&(t=e.name),t&&!a.includes(t)&&a.push(t)}),e.innerHTML=a.map(e=>`<option value="${G(e)}">`).join(``),n()})})}function U(e){let t=document.getElementById(`agentEditTempPreset`);if(t){for(;t.options.length>1;)t.remove(1);S.forEach((e,r)=>{let i=document.createElement(`option`);i.value=r,i.textContent=`${n(e.labelKey)}(${e.temp.toFixed(2)})`,t.appendChild(i)}),t.value=e!==void 0&&e>=0?e:``}}function lt(){let e=document.getElementById(`agentEditTempPreset`);if(!e||e.value===``)return{temperature:null,topP:null};let t=parseInt(e.value);if(isNaN(t)||t<0||t>=S.length)return{temperature:null,topP:null};let n=S[t];return{temperature:n.temp,topP:n.topP}}function ut(e,t){if(e==null)return-1;for(let n=0;n<S.length;n++){let r=S[n];if(Math.abs(r.temp-e)<.001&&Math.abs(r.topP-(t||1))<.001)return n}return-1}async function dt(){let e=document.getElementById(`agentEditModal`);if(!e)return;let t=e.querySelector(`#agentEditId`).value,i=e.querySelector(`#agentEditName`).value.trim(),a=e.querySelector(`#agentEditIcon`).value.trim()||`🤖`,o=e.querySelector(`#agentEditDesc`).value.trim(),s=e.querySelector(`#agentEditPrompt`).value.trim(),c=e.querySelector(`#agentEditAllowSub`).checked,l=ot(),d=st(),p=e.querySelector(`#agentEditModel`).value.trim()||null,{temperature:m,topP:h}=lt();if(!i){y(n(`agentMgr.nameRequired`),`warning`);return}let g={name:i,icon:a,description:o,systemPrompt:s,allowSubDispatch:c,toolIds:l,skillIds:d,model:p,temperature:m,topP:h};try{if(t)await u(t,g),y(n(`agentMgr.agentUpdated`),`success`);else{let e=await f(g);y(n(`agentMgr.agentCreated`,{name:e.name}),`success`)}await F(),await I(),B()}catch(e){r.error(`[AgentMgr] save Agent failed:`,e),y(n(`agentMgr.saveFailed`,{message:e.message}),`error`)}}async function ft(){let e=document.getElementById(`agentEditModal`);if(!e)return;let t=e.querySelector(`#agentEditId`)?.value;if(!t)return;let i=await l(t),a=i?i.name:``;if(await gt(n(`agentMgr.confirmDeleteAgentMessage`,{name:a}),n(`agentMgr.deleteAgentTitle`)))try{await m(t),y(n(`agentMgr.agentDeleted`),`success`),await F(),await I(),B()}catch(e){r.error(`[AgentMgr] delete Agent failed:`,e),y(n(`agentMgr.deleteFailed`,{message:e.message}),`error`)}}async function pt(e){if(!e)return!1;let t=await l(e);if(!t||t.isBuiltin)return y(n(`agentMgr.cannotDeleteDefault`),`warning`),!1;if(!await gt(n(`agentMgr.confirmDeleteAgentMessage`,{name:t.name}),n(`agentMgr.deleteAgentTitle`)))return!1;try{return await m(e),y(n(`agentMgr.agentDeleted`),`success`),await F(),await I(),!0}catch(e){return r.error(`[AgentMgr] delete Agent failed:`,e),y(n(`agentMgr.deleteFailed`,{message:e.message}),`error`),!1}}async function mt(){return c.activeAgentId?await l(c.activeAgentId):null}function ht(e){return e?e.toolIds:null}function W(e){if(!e)return``;let t=document.createElement(`div`);return t.textContent=e,t.innerHTML}function G(e){return e?e.replace(/["&<>]/g,e=>({'"':`"`,"&":`&`,"<":`<`,">":`>`})[e]):``}async function gt(e,t){return typeof window.showCustomConfirm==`function`?window.showCustomConfirm(e,t):new Promise(r=>{let i=document.getElementById(`agentConfirmModal`);if(!i){r(confirm(e));return}i.querySelector(`#agentConfirmMessage`).textContent=e,i.querySelector(`#agentConfirmTitle`).textContent=t||n(`agentMgr.confirm`),i.style.display=`flex`;let a=()=>{i.style.display=`none`,i.querySelector(`#agentConfirmOk`).removeEventListener(`click`,o),i.querySelector(`#agentConfirmCancel`).removeEventListener(`click`,s),i.removeEventListener(`click`,c)},o=()=>{a(),r(!0)},s=()=>{a(),r(!1)},c=e=>{e.target===i&&(a(),r(!1))};i.querySelector(`#agentConfirmOk`).addEventListener(`click`,o),i.querySelector(`#agentConfirmCancel`).addEventListener(`click`,s),i.addEventListener(`click`,c)})}var _t=e({closeCurrentSession:()=>Qt,handleDuplicateSession:()=>Q,newSession:()=>St,renderSessionTabs:()=>J});t(`zh`,{session:{newSession:`新会话`,closeSession:`关闭会话`,taskCompleted:`任务已完成`,closeAllCount:`关闭全部({count})`,noMatch:`未找到匹配的会话`,rename:`重命名`,duplicate:`复制会话`,confirmCloseMessageWithTitle:`确定要关闭会话 "{title}" 吗?`,confirmCloseAllMessage:`确定要关闭所有 {count} 个会话吗?`,confirmCloseAllTitle:`关闭全部会话`,forkedFrom:`已从 "{title}" 分叉`,forkedSession:`已复制会话 "{title}"`,operationFailed:`操作失败:{message}`,sessionListTitle:`会话列表`,closeGroupAll:`全部关闭`,confirmCloseGroupMessage:`确定要关闭“{group}”下的 {count} 个会话吗?`,today:`今天`,yesterday:`昨天`,last7Days:`近 7 天`,earlier:`更早`,todayFormat:`今天 {hour}:{minute}`,yesterdayFormat:`昨天 {hour}:{minute}`,daysAgo:`{count} 天前`}}),t(`en`,{session:{newSession:`New Session`,closeSession:`Close Session`,taskCompleted:`Task completed`,closeAllCount:`Close All ({count})`,noMatch:`No matching sessions found`,rename:`Rename`,duplicate:`Duplicate`,confirmCloseMessageWithTitle:`Are you sure you want to close session "{title}"?`,confirmCloseAllMessage:`Are you sure you want to close all {count} sessions?`,confirmCloseAllTitle:`Close All Sessions`,forkedFrom:`Forked from "{title}"`,forkedSession:`Duplicated session "{title}"`,operationFailed:`Operation failed: {message}`,sessionListTitle:`Sessions`,closeGroupAll:`Close all`,confirmCloseGroupMessage:`Are you sure you want to close {count} sessions in "{group}"?`,today:`Today`,yesterday:`Yesterday`,last7Days:`Last 7 days`,earlier:`Earlier`,todayFormat:`Today {hour}:{minute}`,yesterdayFormat:`Yesterday {hour}:{minute}`,daysAgo:`{count}d ago`}});var K={visible:!1,highlightIndex:-1,filteredSessions:[]},q={draggedId:null,sourceType:null};function vt(e){if(!e)return``;let t=new Date(e),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime(),a=t.getTime();if(a>=i)return n(`session.todayFormat`,{hour:String(t.getHours()).padStart(2,`0`),minute:String(t.getMinutes()).padStart(2,`0`)});if(a>=i-864e5)return n(`session.yesterdayFormat`,{hour:String(t.getHours()).padStart(2,`0`),minute:String(t.getMinutes()).padStart(2,`0`)});let o=Math.floor((i-a)/864e5);return o<=7?n(`session.daysAgo`,{count:o}):t.getFullYear()===r.getFullYear()?`${t.getMonth()+1}/${t.getDate()}`:`${t.getFullYear()}/${t.getMonth()+1}/${t.getDate()}`}function yt(e){return e.sort((e,t)=>{let n=e.updatedAt?new Date(e.updatedAt).getTime():0;return(t.updatedAt?new Date(t.updatedAt).getTime():0)-n})}function bt(e){if(!e)return`earlier`;let t=new Date(e),n=new Date,r=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),i=t.getTime();return i>=r?`today`:i>=r-864e5?`yesterday`:Math.floor((r-i)/864e5)<=7?`last7Days`:`earlier`}async function J(){let e=await v();c.sessions=e.list,c.activeSessionId=e.activeSessionId;let t=document.getElementById(`sessionTabs`),r=document.getElementById(`sessionTabsScroll`),i=document.getElementById(`sessionTabsActions`);!t||!r||!i||(r.style.opacity=``,r.innerHTML=``,e.list.forEach(e=>{let t=document.createElement(`div`);t.className=`session-tab`,t.dataset.sessionId=e.id,e.id===c.activeSessionId&&t.classList.add(`active`),t.title=e.title;let i=document.createElement(`span`);i.className=`session-tab-title`,i.textContent=e.title||n(`session.newSession`),t.appendChild(i);let a=document.createElement(`span`);if(a.className=`session-tab-close`,a.innerHTML=`✕`,a.title=n(`session.closeSession`),a.addEventListener(`click`,async t=>{if(t.stopPropagation(),(e.id===c.activeSessionId?c.messageHistory?.length||0:e.messageHistory?.length||0)===0){await g(e.id),await $();return}Yt(e,async()=>{await $()})}),t.appendChild(a),e.isGenerating||c.generatingSessionIds.has(e.id)){let e=document.createElement(`span`);e.className=`session-tab-indicator`,t.appendChild(e)}else if(c.completedSessionIds.has(e.id)&&e.id!==c.activeSessionId){let e=document.createElement(`span`);e.className=`session-tab-completed-indicator`,e.title=n(`session.taskCompleted`),t.appendChild(e)}t.addEventListener(`click`,async t=>{t.preventDefault(),e.id!==c.activeSessionId&&await Wt(e.id)}),t.addEventListener(`contextmenu`,t=>{t.preventDefault(),Xt(t,e)}),t.addEventListener(`mousedown`,async t=>{t.button===1&&(t.preventDefault(),t.stopPropagation(),await g(e.id),await $())}),t.draggable=!0,t.addEventListener(`dragstart`,t=>Ot(t,e.id)),t.addEventListener(`dragover`,e=>kt(e)),t.addEventListener(`dragleave`,e=>At(e)),t.addEventListener(`drop`,t=>jt(t,e.id)),t.addEventListener(`dragend`,e=>Mt(e)),r.appendChild(t)}),xt(),Ct(),Bt(),qt(r),wt(r),Dt(r))}function xt(){let e=document.getElementById(`sessionTabsMore`);if(!e)return;let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,e=>{e.stopPropagation(),Nt()})}async function St(){let e=c.activeSessionId;await b();let t=await re();c.activeSessionId=t.id,c.messageHistory=[],document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:t.id,previousSessionId:e}})),J()}function Ct(){let e=document.getElementById(`sessionTabsAdd`);if(!e)return;let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,()=>St())}function wt(e){let t=document.getElementById(`sessionTabsMore`);t&&(e.scrollWidth>e.clientWidth?t.style.display=`flex`:t.style.display=`none`)}var Tt=null;function Et(){if(Tt)return;let e=document.getElementById(`sessionTabsScroll`);e&&(Tt=new ResizeObserver(()=>{requestAnimationFrame(()=>{wt(e)})}),Tt.observe(e))}function Dt(e){let t=e.querySelector(`.session-tab.active`);if(t){let n=t.offsetLeft,r=t.offsetWidth;e.scrollLeft=n-(e.clientWidth-r)/2}e.style.opacity=`1`}function Ot(e,t){q.draggedId=t,q.sourceType=`tab`,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t),e.currentTarget.classList.add(`dragging`)}function kt(e){e.preventDefault(),e.dataTransfer.dropEffect=`move`,e.currentTarget.classList.add(`drag-over`)}function At(e){e.currentTarget.classList.remove(`drag-over`)}async function jt(e,t){e.preventDefault(),e.currentTarget.classList.remove(`drag-over`);let n=q.draggedId;if(!n||n===t)return;let r=c.sessions||[],i=r.findIndex(e=>e.id===n),a=r.findIndex(e=>e.id===t);if(i===-1||a===-1)return;let o=[...r],[s]=o.splice(i,1);o.splice(a,0,s),c.sessions=o,await ee(o.map(e=>e.id)),J()}function Mt(e){e.currentTarget.classList.remove(`dragging`),document.querySelectorAll(`.session-tab.drag-over`).forEach(e=>e.classList.remove(`drag-over`)),q.draggedId=null,q.sourceType=null}function Nt(){K.visible?Y():Pt()}async function Pt(){let e=document.getElementById(`sessionTabsMore`),t=document.getElementById(`sessionDropdown`);if(!e||!t)return;let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,K.filteredSessions=yt([...n.list]),K.highlightIndex=-1,K.visible=!0,X(),t.classList.add(`show`);let r=document.getElementById(`sessionDropdownCloseBtn`);r&&(r.onclick=()=>Y());let i=document.getElementById(`sessionDropdownSearch`),a=document.getElementById(`sessionDropdownSearchClear`);i&&(i.value=K.lastSearchText||``,Ft(),K.lastSearchText&&Z(K.lastSearchText),setTimeout(()=>i.focus(),50),i.oninput=()=>{K.lastSearchText=i.value,Ft(),Z(i.value)},i.onkeydown=e=>{Vt(e)}),a&&(a.onclick=()=>{i&&(i.value=``,K.lastSearchText=``,Ft(),Z(``),i.focus())}),e.classList.add(`active`)}function Y(){let e=document.getElementById(`sessionTabsMore`),t=document.getElementById(`sessionDropdown`);t&&t.classList.remove(`show`),e&&e.classList.remove(`active`);let n=document.getElementById(`sessionDropdownSearch`);n&&(K.lastSearchText=n.value,n.oninput=null,n.onkeydown=null);let r=document.getElementById(`sessionDropdownSearchClear`);r&&(r.onclick=null),K.visible=!1,K.highlightIndex=-1,K.filteredSessions=[]}function Ft(){let e=document.getElementById(`sessionDropdownSearch`),t=document.getElementById(`sessionDropdownSearchClear`);t&&e&&(t.style.display=e.value?`flex`:`none`)}function X(){let e=document.getElementById(`sessionDropdownList`);if(!e)return;e.innerHTML=``;let t=document.getElementById(`sessionDropdownCloseAll`);if(t){let e=(c.sessions||[]).length;t.textContent=n(`session.closeAllCount`,{count:e})}if(K.filteredSessions.length===0){let t=document.createElement(`div`);t.className=`session-dropdown-empty`,t.textContent=n(`session.noMatch`),e.appendChild(t);return}let r={today:n(`session.today`),yesterday:n(`session.yesterday`),last7Days:n(`session.last7Days`),earlier:n(`session.earlier`)},i={};K.filteredSessions.forEach(e=>{let t=bt(e.updatedAt);i[t]=(i[t]||0)+1});let a=null;K.filteredSessions.forEach((t,o)=>{let s=bt(t.updatedAt);if(s!==a){a=s;let t=document.createElement(`div`);t.className=`session-dropdown-group-header`;let o=document.createElement(`span`);if(o.textContent=r[s]||s,t.appendChild(o),(i[s]||0)>0){let e=document.createElement(`button`);e.className=`session-dropdown-group-close`,e.textContent=n(`session.closeGroupAll`),e.onclick=e=>{e.stopPropagation(),zt(s,r[s]||s)},t.appendChild(e)}e.appendChild(t)}let l=document.createElement(`div`);if(l.className=`session-dropdown-item`,l.dataset.sessionId=t.id,l.dataset.index=o,t.id===c.activeSessionId&&l.classList.add(`active`),o===K.highlightIndex&&l.classList.add(`highlighted`),c.completedSessionIds.has(t.id)&&t.id!==c.activeSessionId&&!t.isGenerating&&!c.generatingSessionIds.has(t.id)){let e=document.createElement(`span`);e.className=`session-dropdown-item-completed`,e.title=n(`session.taskCompleted`),l.appendChild(e)}let u=document.createElement(`span`);u.className=`session-dropdown-item-icon`,u.innerHTML=`<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>`,l.appendChild(u);let d=document.createElement(`span`);if(d.className=`session-dropdown-item-title`,d.textContent=t.title||n(`session.newSession`),d.title=t.title||n(`session.newSession`),l.appendChild(d),t.id===c.activeSessionId){let e=document.createElement(`span`);e.className=`session-dropdown-item-check`,e.innerHTML=`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>`,l.appendChild(e)}let f=document.createElement(`span`);f.className=`session-dropdown-item-time`,f.textContent=vt(t.updatedAt),l.appendChild(f);let p=document.createElement(`span`);p.className=`session-dropdown-item-actions`;let m=document.createElement(`span`);m.className=`session-dropdown-item-rename`,m.title=n(`session.rename`),m.innerHTML=`<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>`,m.addEventListener(`click`,e=>{e.stopPropagation(),e.preventDefault(),Jt(t)}),p.appendChild(m);let h=document.createElement(`span`);h.className=`session-dropdown-item-duplicate`,h.title=n(`session.duplicate`),h.innerHTML=`<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="6" r="2.5"/><path d="M6 8.5v7"/><path d="M18 8.5c0 4-6 3.5-6 3.5"/></svg>`,h.addEventListener(`click`,async e=>{e.stopPropagation(),e.preventDefault(),await Q(t.id);let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}),p.appendChild(h);let g=document.createElement(`span`);g.className=`session-dropdown-item-close`,g.innerHTML=`✕`,g.title=n(`session.closeSession`),g.addEventListener(`click`,async e=>{e.stopPropagation(),e.preventDefault(),await Lt(t.id)}),p.appendChild(g),l.appendChild(p),l.addEventListener(`click`,async e=>{e.preventDefault(),await It(t.id)}),e.appendChild(l)})}function Z(e){let t=c.sessions||[],r;if(!e.trim())r=[...t];else{let i=e.trim().toLowerCase();r=t.filter(e=>(e.title||n(`session.newSession`)).toLowerCase().includes(i))}K.filteredSessions=yt(r),K.highlightIndex=-1,X()}async function It(e){Y(),e!==c.activeSessionId&&await Wt(e)}async function Lt(e){let t=(c.sessions||[]).find(t=>t.id===e);t&&((e===c.activeSessionId?c.messageHistory?.length||0:t.messageHistory?.length||0)>0&&!await Ut(n(`session.confirmCloseMessageWithTitle`,{title:t.title}),n(`session.closeSession`))||(await g(e),await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)))}async function Rt(){let e=c.sessions||[];if(e.length!==0&&await Ut(n(`session.confirmCloseAllMessage`,{count:e.length}),n(`session.confirmCloseAllTitle`))){for(let t of e)await g(t.id);await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}}async function zt(e,t){let r=(c.sessions||[]).filter(t=>bt(t.updatedAt)===e);if(r.length!==0&&await Ut(n(`session.confirmCloseGroupMessage`,{group:t,count:r.length}),n(`session.closeSession`))){for(let e of r)await g(e.id);await $(),Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}}function Bt(){let e=document.getElementById(`sessionDropdownCloseAll`),t=document.getElementById(`sessionDropdown`);if(t){if(e){let t=e.cloneNode(!0);e.parentNode.replaceChild(t,e),t.addEventListener(`click`,async e=>{e.stopPropagation(),await Rt()})}t.addEventListener(`click`,e=>{e.stopPropagation()})}}function Vt(e){if(!K.visible)return;let t=K.filteredSessions.length;if(t===0){e.key===`Escape`&&Y();return}switch(e.key){case`ArrowDown`:e.preventDefault(),K.highlightIndex=Math.min(K.highlightIndex+1,t-1),X(),Ht();break;case`ArrowUp`:e.preventDefault(),K.highlightIndex=Math.max(K.highlightIndex-1,0),X(),Ht();break;case`Enter`:if(e.preventDefault(),K.highlightIndex>=0&&K.highlightIndex<t){let e=K.filteredSessions[K.highlightIndex];It(e.id)}break;case`Escape`:e.preventDefault(),Y()}}function Ht(){let e=document.querySelector(`.session-dropdown-item.highlighted`);e&&e.scrollIntoView({block:`nearest`})}function Ut(e,t){return new Promise(t=>{let n=document.getElementById(`sessionDeleteModal`),r=document.getElementById(`sessionDeleteMessage`),i=document.getElementById(`sessionDeleteConfirmBtn`),a=document.getElementById(`sessionDeleteCancelBtn`),o=document.getElementById(`sessionDeleteCloseBtn`);if(!n||!r){t(!1);return}r.textContent=e;let s=()=>{n.classList.remove(`show`),i.removeEventListener(`click`,c),a.removeEventListener(`click`,l),o.removeEventListener(`click`,l)},c=()=>{s(),t(!0)},l=()=>{s(),t(!1)};i.addEventListener(`click`,c),a.addEventListener(`click`,l),o.addEventListener(`click`,l),n.classList.add(`show`)})}async function Wt(e){let t=c.activeSessionId;if(!await ie(e))return;let n=`agentEnabledTools_${c.activeAgentId||`default`}`,[r,i,o,s]=await Promise.all([v(),chrome.storage.local.get([`mcpTools`]),chrome.storage.local.get([n,`enabledTools`]),c.activeAgentId?l(c.activeAgentId):Promise.resolve(null)]);c.sessions=r.list,c.activeSessionId=e;let u=i.mcpTools||[],d=!!o[n],f=o[n]||o.enabledTools;if(f&&f.length>0){let e=new Set([...a.map(e=>e.id),...u.map(e=>e.id)]),t=f.filter(t=>e.has(t));if(d){let e=u.filter(e=>!t.includes(e.id)).map(e=>e.id);c.enabledTools=[...t,...e]}else{let e=a.filter(e=>e.enabled&&!t.includes(e.id)).map(e=>e.id),n=u.filter(e=>!t.includes(e.id)).map(e=>e.id);c.enabledTools=[...t,...e,...n]}c.enabledTools.length!==f.length&&chrome.storage.local.set({[n]:c.enabledTools})}else c.enabledTools=[...a.filter(e=>e.enabled).map(e=>e.id),...u.map(e=>e.id)];c.activeAgentToolIds=s?s.toolIds:null,document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:e,previousSessionId:t}})),oe(e),J(),Gt(),I();try{let{refreshBookmarkPanel:e,updateBookmarkButtons:t}=await ne(async()=>{let{refreshBookmarkPanel:e,updateBookmarkButtons:t}=await import(`./side_panel-D-ghUe7b.js`).then(e=>e.t);return{refreshBookmarkPanel:e,updateBookmarkButtons:t}},__vite__mapDeps([0,1,2,3,4,5,6,7]));e(),setTimeout(()=>t(),100)}catch{}let p=document.getElementById(`toolsPopupOverlay`);p&&p.classList.contains(`show`)&&(O(),k(),A()),j()}async function Q(e,t=null){if(e)try{let r=await ae(e,t);await Wt(r.id),y(n(t?`session.forkedFrom`:`session.forkedSession`,{title:r.title}),`success`)}catch(e){r.error(`[SessionUI] copy/forksession failed:`,e),y(n(`session.operationFailed`,{message:e.message}),`error`)}}function Gt(){let e=document.querySelector(`.model-display`);e&&c.currentModel&&(e.textContent=c.currentModel);let t=document.getElementById(`enableToolsBtn`);t&&(t.checked=c.useTools);let n=document.getElementById(`tempIconValue`);n&&c.temperature!==void 0&&(n.textContent=c.temperature.toFixed(2))}var Kt=new WeakSet;function qt(e){Kt.has(e)||(Kt.add(e),e.addEventListener(`wheel`,t=>{e.scrollWidth<=e.clientWidth||(t.preventDefault(),e.scrollLeft+=t.deltaY)},{passive:!1}))}function Jt(e){let t=document.getElementById(`sessionRenameModal`),n=document.getElementById(`sessionRenameInput`),r=document.getElementById(`sessionRenameConfirmBtn`),i=document.getElementById(`sessionRenameCancelBtn`),a=document.getElementById(`sessionRenameCloseBtn`);if(!t||!n)return;n.value=e.title;let o=()=>{t.classList.remove(`show`),r.removeEventListener(`click`,s),i.removeEventListener(`click`,l),a.removeEventListener(`click`,l)},s=async()=>{let t=n.value.trim();if(t&&t!==e.title){await se(e.id,t),J();let n=await v();c.sessions=n.list,c.activeSessionId=n.activeSessionId,Z(document.getElementById(`sessionDropdownSearch`)?.value||``)}o()},l=()=>{o()};r.addEventListener(`click`,s),i.addEventListener(`click`,l),a.addEventListener(`click`,l),n.onkeydown=e=>{e.key===`Enter`?s():e.key===`Escape`&&l()},t.classList.add(`show`),setTimeout(()=>{n.focus(),n.select()},50)}function Yt(e,t){let r=document.getElementById(`sessionDeleteModal`),i=document.getElementById(`sessionDeleteMessage`),a=document.getElementById(`sessionDeleteConfirmBtn`),o=document.getElementById(`sessionDeleteCancelBtn`),s=document.getElementById(`sessionDeleteCloseBtn`);if(!r||!i)return;i.textContent=n(`session.confirmCloseMessageWithTitle`,{title:e.title});let c=()=>{r.classList.remove(`show`),a.removeEventListener(`click`,l),o.removeEventListener(`click`,u),s.removeEventListener(`click`,u)},l=async()=>{await g(e.id),t&&await t(),c()},u=()=>{c()};a.addEventListener(`click`,l),o.addEventListener(`click`,u),s.addEventListener(`click`,u),r.classList.add(`show`),requestAnimationFrame(()=>a.focus())}function Xt(e,t){let r=document.querySelector(`.session-context-menu`);r&&r.remove();let i=document.createElement(`div`);i.className=`session-context-menu`,i.style.left=e.clientX+`px`,i.style.top=e.clientY+`px`;let a=Zt(n(`session.rename`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>`,()=>{i.remove(),Jt(t)});i.appendChild(a);let o=Zt(n(`session.duplicate`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="6" r="2.5"/><path d="M6 8.5v7"/><path d="M18 8.5c0 4-6 3.5-6 3.5"/></svg>`,()=>{i.remove(),Q(t.id)});i.appendChild(o);let s=Zt(n(`session.closeSession`),`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg>`,async()=>{if(i.remove(),(t.id===c.activeSessionId?c.messageHistory?.length||0:t.messageHistory?.length||0)===0){await g(t.id),await $();return}Yt(t,async()=>{await $()})},`danger`);i.appendChild(s),document.body.appendChild(i);let l=e=>{i.contains(e.target)||(i.remove(),document.removeEventListener(`click`,l))};setTimeout(()=>document.addEventListener(`click`,l),0)}function Zt(e,t=``,n,r=``){let i=document.createElement(`div`);return i.className=`session-context-menu-item `+r,t?i.innerHTML=`${t}<span>${e}</span>`:i.textContent=e,i.addEventListener(`click`,n),i}async function $(){let e=c.activeSessionId,t=await v();t.activeSessionId||(await re(),t=await v()),c.activeSessionId=t.activeSessionId,c.sessions=t.list;let n=t.list.find(e=>e.id===t.activeSessionId);if(c.messageHistory=n&&n.messageHistory||[],c.activeAgentId=n&&n.agentId||null,c.activeAgentId){let e=await l(c.activeAgentId);c.activeAgentToolIds=e?e.toolIds:null}else c.activeAgentToolIds=null;document.dispatchEvent(new CustomEvent(`session-switched`,{detail:{sessionId:c.activeSessionId,previousSessionId:e}})),J(),await I()}async function Qt(){let e=c.activeSessionId;if(!e)return;let t=c.sessions?.find(t=>t.id===e);if(t){if((c.messageHistory?.length||0)===0){await g(e),await $();return}Yt(t,async()=>{await $()})}}document.addEventListener(`generating-state-changed`,()=>{J()}),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,Et):Et();export{ue as A,Ne as C,we as D,Fe as E,k as F,A as I,S as L,O as M,ge as N,de as O,he as P,Ee as S,ke as T,N as _,_t as a,je as b,ht as c,Ke as d,Le as f,Me as g,P as h,J as i,_e as j,me as k,He as l,Re as m,Q as n,pt as o,De as p,St as r,mt as s,Qt as t,z as u,ze as v,xe as w,Ie as x,Oe as y};
|
|
71
|
+
//# sourceMappingURL=session-manager-ui-DwceYZzF.js.map
|