ai-helper-agent 2.4.1 → 2.4.2

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.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,l as n,r}from"./i18n-ouMgDZ2t.js";import{Q as i,b as a}from"./model-profiles-6dzdrSS4.js";import{m as o}from"./session-store-CmGs_rhh.js";import{o as s}from"./agent-store-Ce3f4Ya3.js";e(`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 时必须单独调用,同一轮响应中不要同时返回其他工具调用;其他想执行的动作请编入子任务描述,由子任务执行。`,artifactDeclTitle:`## 文件产物声明`,artifactDeclDesc:`当本次任务通过脚本或命令在工作目录内创建/修改了文件(尤其是运行时才确定路径的文件,如带日期的报表),请在最终回答末尾各用一行声明每个产物,格式严格为:[[artifact:相对工作目录或绝对路径|可选中文说明]]。示例:[[artifact:报表_2026-10-20.xlsx|书签统计报表]]。只列本次真实产生的文件,不要虚构、不要列未生成的文件;说明可省略。这些标记不会展示给用户。`,memoryTitle:`## 记忆`,memoryRules:`- 统一工具 agent_memory,通过 action 区分:store(增删改)/recall(检索)/manage(审查清理)
1
+ import{a as e,c as t,l as n,r}from"./i18n-D9_2eWuQ.js";import{Q as i,b as a}from"./model-profiles-DfZDoMBc.js";import{m as o}from"./session-store-CEnfKdIz.js";import{o as s}from"./agent-store-Cqyodrcc.js";e(`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 时必须单独调用,同一轮响应中不要同时返回其他工具调用;其他想执行的动作请编入子任务描述,由子任务执行。`,artifactDeclTitle:`## 文件产物声明`,artifactDeclDesc:`当本次任务通过脚本或命令在工作目录内创建/修改了文件(尤其是运行时才确定路径的文件,如带日期的报表),请在最终回答末尾各用一行声明每个产物,格式严格为:[[artifact:相对工作目录或绝对路径|可选中文说明]]。示例:[[artifact:报表_2026-10-20.xlsx|书签统计报表]]。只列本次真实产生的文件,不要虚构、不要列未生成的文件;说明可省略。这些标记不会展示给用户。`,memoryTitle:`## 记忆`,memoryRules:`- 统一工具 agent_memory,通过 action 区分:store(增删改)/recall(检索)/manage(审查清理)
2
2
  - store: subAction=add需type+content,update需memoryId+type,**delete仅需memoryId无需type**。**删除前先recall查id**
3
3
  - recall: query用关键词(如"考试"),不用完整句子。可选memoryType和limit
4
4
  - manage: subAction=review审查价值,compact清理低价值
@@ -1 +1 @@
1
- var e=`appTheme`,t=[`light`,`dark`,`system`],n=`light`,r=`light`,i=null,a=null,o=[],s=!1;function c(e){let t=e!==r;r=e,typeof document<`u`&&document.documentElement.setAttribute(`data-theme`,e);try{localStorage.setItem(`appThemeResolved`,e)}catch{}t&&o.slice().forEach(t=>{try{t(e)}catch(e){console.warn(`[theme] subscriber error`,e)}})}function l(e){return e===`system`?typeof matchMedia<`u`&&matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:e===`dark`?`dark`:`light`}(function(){try{let e=typeof localStorage<`u`&&localStorage.getItem(`appThemeResolved`);(e===`dark`||e===`light`)&&(r=e,typeof document<`u`&&document.documentElement.setAttribute(`data-theme`,e))}catch{}})();function u(){return n}function d(){return r}function f(e){o.push(e)}async function p(){typeof matchMedia<`u`&&(i=matchMedia(`(prefers-color-scheme: dark)`),a&&i.removeEventListener(`change`,a),a=()=>{n===`system`&&c(l(`system`))},i.addEventListener(`change`,a)),!s&&typeof chrome<`u`&&chrome.storage&&chrome.storage.onChanged&&(chrome.storage.onChanged.addListener((e,r)=>{r===`local`&&e.appTheme&&t.includes(e.appTheme.newValue)&&(n=e.appTheme.newValue,c(l(n)))}),s=!0);let r=await new Promise(t=>{try{chrome.storage.local.get([e],e=>{if(chrome.runtime&&chrome.runtime.lastError){t(null);return}t(e||{})})}catch{t(null)}});r!==null&&(n=t.includes(r[e])?r[e]:`light`,c(l(n)))}async function m(e){t.includes(e)&&(n=e,c(l(e)),await new Promise(t=>chrome.storage.local.set({appTheme:e},t)))}var h={version:`2.4.1`,tag:`v2.4.1`,commitId:`01484eb01652291a052bc74d0e3a730f15d297de`,publishedAt:`2026-10-21T15:00:23.634Z`};export{m as a,p as i,d as n,f as o,u as r,h as t};
1
+ var e=`appTheme`,t=[`light`,`dark`,`system`],n=`light`,r=`light`,i=null,a=null,o=[],s=!1;function c(e){let t=e!==r;r=e,typeof document<`u`&&document.documentElement.setAttribute(`data-theme`,e);try{localStorage.setItem(`appThemeResolved`,e)}catch{}t&&o.slice().forEach(t=>{try{t(e)}catch(e){console.warn(`[theme] subscriber error`,e)}})}function l(e){return e===`system`?typeof matchMedia<`u`&&matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:e===`dark`?`dark`:`light`}(function(){try{let e=typeof localStorage<`u`&&localStorage.getItem(`appThemeResolved`);(e===`dark`||e===`light`)&&(r=e,typeof document<`u`&&document.documentElement.setAttribute(`data-theme`,e))}catch{}})();function u(){return n}function d(){return r}function f(e){o.push(e)}async function p(){typeof matchMedia<`u`&&(i=matchMedia(`(prefers-color-scheme: dark)`),a&&i.removeEventListener(`change`,a),a=()=>{n===`system`&&c(l(`system`))},i.addEventListener(`change`,a)),!s&&typeof chrome<`u`&&chrome.storage&&chrome.storage.onChanged&&(chrome.storage.onChanged.addListener((e,r)=>{r===`local`&&e.appTheme&&t.includes(e.appTheme.newValue)&&(n=e.appTheme.newValue,c(l(n)))}),s=!0);let r=await new Promise(t=>{try{chrome.storage.local.get([e],e=>{if(chrome.runtime&&chrome.runtime.lastError){t(null);return}t(e||{})})}catch{t(null)}});r!==null&&(n=t.includes(r[e])?r[e]:`light`,c(l(n)))}async function m(e){t.includes(e)&&(n=e,c(l(e)),await new Promise(t=>chrome.storage.local.set({appTheme:e},t)))}var h={version:`2.4.2`,tag:`v2.4.2`,commitId:`d0bb0f1b751ef1ef68d0db5ac9fa9904a7b23205`,publishedAt:`2026-10-22T14:33:06.343Z`};export{m as a,p as i,d as n,f as o,u as r,h as t};
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 3,
3
3
  "default_locale": "zh_CN",
4
4
  "name": "__MSG_extName__",
5
- "version": "2.4.1",
5
+ "version": "2.4.2",
6
6
  "description": "__MSG_extDescription__",
7
7
  "permissions": [
8
8
  "activeTab",
@@ -22,7 +22,7 @@
22
22
 
23
23
  ## \u6267\u884C\u6B65\u9AA4
24
24
  1. \u6B65\u9AA41
25
- 2. \u6B65\u9AA42`,existingResources:"\u5DF2\u6709\u8D44\u6E90\u6587\u4EF6",skillNameRequired:"\u8BF7\u8F93\u5165\u6280\u80FD\u540D\u79F0",skillMarkdownRequired:"\u8BF7\u8F93\u5165 SKILL.md \u5185\u5BB9",agentSkillSaved:'Agent \u6280\u80FD "{name}" \u4FDD\u5B58\u6210\u529F',saveFailedShort:"\u4FDD\u5B58\u5931\u8D25",saveFailed:"\u4FDD\u5B58\u5931\u8D25: {error}",viewSkillTitle:"\u67E5\u770B\u6280\u80FD: {name}",importSkillTitle:"\u5BFC\u5165\u6280\u80FD",importBtn:"\u5BFC\u5165",jsonImport:"JSON \u5BFC\u5165",newAuthoring:"\u65B0\u5EFA\u7F16\u5199",zipPackage:"Zip \u5305",urlImport:"URL \u5BFC\u5165",jsonImportDesc:"\u5BFC\u5165 JSON \u683C\u5F0F\u7684 Workflow \u6280\u80FD\uFF08\u786E\u5B9A\u6027\u81EA\u52A8\u5316\u6D41\u7A0B\uFF09",clickOrDragJson:"\u70B9\u51FB\u9009\u62E9 JSON \u6587\u4EF6\u6216\u62D6\u62FD\u5230\u6B64\u5904",jsonFileHint:"\u652F\u6301 .json \u683C\u5F0F\u7684 Workflow \u6280\u80FD\u5B9A\u4E49\u6587\u4EF6",markdownImportDesc:"\u76F4\u63A5\u7F16\u5199 SKILL.md \u5185\u5BB9\uFF0C\u521B\u5EFA Agent \u6280\u80FD\uFF08AI \u80FD\u529B\u6269\u5C55\uFF09",zipImportDesc:"\u5BFC\u5165\u5305\u542B SKILL.md \u7684 Zip \u538B\u7F29\u5305\uFF0C\u53EF\u9644\u5E26 scripts/templates/assets \u7B49\u8F85\u52A9\u8D44\u6E90",clickOrDragZip:"\u70B9\u51FB\u9009\u62E9 Zip \u6587\u4EF6\u6216\u62D6\u62FD\u5230\u6B64\u5904",zipFileHint:"Zip \u5305\u5185\u9700\u5305\u542B SKILL.md \u6587\u4EF6\uFF0C\u53EF\u9009\u7684 scripts/ templates/ assets/ \u5B50\u76EE\u5F55",urlImportDesc:"\u4ECE\u8FDC\u7A0B URL \u4E0B\u8F7D\u6280\u80FD\u7684 Zip \u5305\u5E76\u81EA\u52A8\u5BFC\u5165",downloadUrl:"\u4E0B\u8F7D\u5730\u5740",selectJsonFile:"\u8BF7\u9009\u62E9 JSON \u6587\u4EF6",workflowSkillImported:'Workflow \u6280\u80FD "{name}" \u5BFC\u5165\u6210\u529F',agentSkillCreated:'Agent \u6280\u80FD "{name}" \u521B\u5EFA\u6210\u529F',createFailedShort:"\u521B\u5EFA\u5931\u8D25",selectZipFile:"\u8BF7\u9009\u62E9 Zip \u6587\u4EF6",fileTooLarge:"\u6587\u4EF6\u8FC7\u5927\uFF0C\u6700\u5927\u652F\u6301 50MB",fileReadFailed:"\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25",agentSkillImported:'Agent \u6280\u80FD "{name}" \u5BFC\u5165\u6210\u529F',urlRequired:"\u8BF7\u8F93\u5165 URL",importFailed:"\u5BFC\u5165\u5931\u8D25: {error}",searchMcpPlaceholder:"\u641C\u7D22 MCP \u670D\u52A1\u5668...",searchSkillPlaceholder:"\u641C\u7D22\u6280\u80FD...",filterAll:"\u5168\u90E8",filterEnabled:"\u5DF2\u542F\u7528",filterDisabled:"\u5DF2\u505C\u7528",noMatchResult:"\u65E0\u5339\u914D\u7ED3\u679C"},memoryPanel:{tabTitle:"\u8BB0\u5FC6",title:"\u8BB0\u5FC6\u5411\u91CF",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",statusTitle:"\u5411\u91CF\u7D22\u5F15\u72B6\u6001",statusLoading:"\u8BFB\u53D6\u4E2D\u2026",statusOffline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u6682\u65F6\u8BFB\u4E0D\u5230\u5411\u91CF\u72B6\u6001",statusFail:"\u5411\u91CF\u72B6\u6001\u8BFB\u53D6\u5931\u8D25",statusOldAgent:"\u5F53\u524D\u4EE3\u7406\u7248\u672C\u6CA1\u6709\u8FD9\u4E2A\u72B6\u6001\u63A5\u53E3\uFF0C\u8BF7\u91CD\u542F\u4EE3\u7406\u540E\u518D\u770B",statusDetail:"\u8FD4\u56DE\u4FE1\u606F",statusIndexed:"\u5DF2\u7D22\u5F15 {indexed} / \u5171 {total} \u6761",statusStored:"\u5411\u91CF\u6307\u7EB9",statusCurrent:"\u5F53\u524D\u914D\u7F6E\u6307\u7EB9",statusTier:"\u751F\u6548\u6863\u4F4D",statusStale:"\u5DF2\u9648\u65E7\uFF1A\u6A21\u578B\u53D8\u66F4\u540E\u672A\u91CD\u5EFA",statusFresh:"\u4E0E\u5F53\u524D\u914D\u7F6E\u4E00\u81F4",staleHint:"\u65E7\u5411\u91CF\u4E0E\u65B0\u914D\u7F6E\u4E0D\u53EF\u6BD4\uFF0C\u8BED\u4E49\u53EC\u56DE\u4F1A\u9759\u9ED8\u9000\u5316\u3002\u8BF7\u70B9\u300C\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15\u300D\uFF08\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\u5148\u4FDD\u5B58\uFF09\u3002",modeLabel:"\u5D4C\u5165\u6765\u6E90",modeRemote:"\u8FDC\u7AEF\u670D\u52A1\uFF08OpenAI \u517C\u5BB9\u63A5\u53E3\uFF09",modeLocal:"\u672C\u5730\u6A21\u578B",baseUrlLabel:"\u670D\u52A1\u5730\u5740",baseUrlPlaceholder:"https://api.openai.com/v1",modelLabel:"\u6A21\u578B\u540D\u79F0",modelPlaceholder:"BAAI/bge-m3",apiKeyLabel:"API Key",apiKeyPlaceholder:"\u7559\u7A7A\u8868\u793A\u4E0D\u4FEE\u6539",apiKeyClearBtn:"\u6E05\u9664\u5DF2\u5B58 Key",apiKeyClearConfirm:"\u6E05\u9664\u540E\u8FDC\u7AEF\u8BED\u4E49\u53EC\u56DE\u968F\u5373\u505C\u7528\uFF08\u964D\u56DE\u5173\u952E\u8BCD\u6863\uFF09\uFF0C\u76F4\u5230\u91CD\u65B0\u586B\u5165\u5E76\u4FDD\u5B58\u65B0 Key\u3002\u786E\u5B9A\u6E05\u9664\uFF1F",apiKeyCleared:"\u5DF2\u6E05\u9664\u5DF2\u5B58\u7684 API Key",apiKeyClearFail:"\u6E05\u9664 Key \u5931\u8D25\uFF1A{error}",configNotLoaded:"\u914D\u7F6E\u672A\u6210\u529F\u52A0\u8F7D\uFF0C\u4E3A\u907F\u514D\u628A\u4EE3\u7406\u91CC\u7684\u8BBE\u7F6E\u8986\u76D6\u6210\u7A7A\uFF0C\u8BF7\u5237\u65B0\u9762\u677F\u540E\u91CD\u8BD5",dimsLabel:"\u5411\u91CF\u7EF4\u5EA6\uFF08\u53EF\u7559\u7A7A\uFF0C\u6D4B\u8BD5\u65F6\u81EA\u52A8\u63A2\u6D4B\uFF09",prefixLabel:"\u67E5\u8BE2\u524D\u7F00\uFF08queryPrefix\uFF0C\u53EF\u7559\u7A7A\uFF09",localNotice:"\u672C\u5730\u6863\u65E0\u9700\u6D4B\u8BD5\u8FDE\u901A\u6027\uFF1A\u4FDD\u5B58\u540E\u76F4\u63A5\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15\uFF08\u9996\u6B21\u4F7F\u7528\u9700\u4E0B\u8F7D\u6A21\u578B\uFF0C\u53EF\u80FD\u6570\u5341\u5206\u949F\uFF09\u3002\u5D4C\u5165\u5728 512 token \u5904\u9759\u9ED8\u622A\u65AD\uFF0C\u8D85\u957F\u6761\u76EE\u53EA\u6709\u524D\u90E8\u8FDB\u5165\u5411\u91CF\u3002",testBtn:"\u6D4B\u8BD5\u8FDE\u901A\u6027",testRunning:"\u6D4B\u8BD5\u4E2D\u2026",testOk:"\u8FDE\u901A\u6B63\u5E38\uFF1A{model} \u8F93\u51FA {dims} \u7EF4",testFail:"\u6D4B\u8BD5\u5931\u8D25\uFF1A{error}",scopeHint:"\u672C Tab \u7684\u914D\u7F6E\u4F1A\u5728\u70B9\u51FB\u5E95\u90E8\u300C\u4FDD\u5B58\u914D\u7F6E\u300D\u65F6\u4E00\u5E76\u5199\u5165\u4EE3\u7406\uFF08\u672C\u5730 agent \u670D\u52A1\uFF09\u7684 config.json\uFF1B\u4EE3\u7406\u672A\u8FDE\u63A5\u65F6\u8DF3\u8FC7\u8BE5\u9879\uFF0C\u4EC5\u4FDD\u5B58\u6269\u5C55\u81EA\u8EAB\u8BBE\u7F6E",saveSkippedOffline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u672A\u4FDD\u5B58\uFF08\u4EC5\u4FDD\u5B58\u4E86\u6269\u5C55\u8BBE\u7F6E\uFF09",saveSuccess:"\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u5DF2\u4FDD\u5B58",saveFail:"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}",toggleOnSaved:"\u5DF2\u542F\u7528\u8BED\u4E49\u5411\u91CF\u53EC\u56DE",toggleOffSaved:"\u5DF2\u505C\u7528\uFF0C\u53EC\u56DE\u56DE\u843D\u5173\u952E\u8BCD\u901A\u9053",toggleFail:"\u5F00\u5173\u5207\u6362\u5931\u8D25\uFF1A{error}",reindexBtn:"\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15",reindexConfirm:"\u91CD\u5EFA\u4F1A\u7528\u5F53\u524D\u914D\u7F6E\u91CD\u65B0\u8BA1\u7B97\u5168\u90E8\u8BB0\u5FC6\u7684\u5411\u91CF\u3002\u672C\u5730\u6863 41 \u6761\u5B9E\u6D4B\u7EA6 23 \u5206\u949F\uFF08\u8FDC\u7AEF\u7EA6 2 \u5206\u949F\uFF09\uFF0C\u671F\u95F4\u8BF7\u52FF\u5173\u95ED\u672C\u9875\u9762\u3002\u786E\u5B9A\u7EE7\u7EED\uFF1F",reindexRunning:"\u91CD\u5EFA\u8FDB\u884C\u4E2D\uFF0C\u8BF7\u52FF\u5173\u95ED\u9875\u9762\u2026",reindexDone:"\u91CD\u5EFA\u5B8C\u6210\uFF1A\u5DF2\u7D22\u5F15 {indexed} / {total}",reindexBatchFail:"\uFF08{count} \u6279\u5931\u8D25\uFF0C\u8BE6\u89C1 agent \u65E5\u5FD7\uFF09",reindexOverWindow:"\uFF08{count} \u6761\u8D85\u51FA {window} token \u7A97\u53E3\uFF0C\u5C3E\u90E8\u672A\u8FDB\u5411\u91CF\uFF09",reindexSkipped:"\u672A\u91CD\u5EFA\uFF1A\u5411\u91CF\u6863\u672A\u542F\u7528",reindexFail:"\u91CD\u5EFA\u5931\u8D25\uFF1A{error}",gateAgentOffTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",gateAgentOffBody:"\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u7531\u672C\u5730\u4EE3\u7406\u63D0\u4F9B\u3002\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875\u5B8C\u6210\u4EE3\u7406\u8FDE\u63A5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u914D\u7F6E\u3002",gateRagTitle:"\u672C\u5730\u6A21\u578B\u4F9D\u8D56\u672A\u5C31\u7EEA",gateRagMissing:"\u672C\u5730\u6A21\u578B\u9700\u8981 RAG \u4F9D\u8D56\u3002\u8BF7\u5148\u5728\u300C\u6269\u5C55\u300D\u9762\u677F\u5B8C\u6210\u5B89\u88C5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u914D\u7F6E\u3002",goToAgentTab:"\u524D\u5F80\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875",goToToolboxTab:"\u524D\u5F80\u300C\u6269\u5C55\u300D\u6807\u7B7E\u9875"},memoryEntries:{title:"\u8BB0\u5FC6\u6761\u76EE",refreshBtn:"\u5237\u65B0",searchPlaceholder:"\u641C\u7D22\u5185\u5BB9\u6216\u6807\u7B7E\u2026",filterAll:"\u5168\u90E8\u7C7B\u578B",filterFact:"\u4E8B\u5B9E",filterSummary:"\u6458\u8981",sortCreatedDesc:"\u521B\u5EFA\u65F6\u95F4\uFF08\u65B0\u2192\u65E7\uFF09",sortImportanceDesc:"\u91CD\u8981\u5EA6\uFF08\u9AD8\u2192\u4F4E\uFF09",sortValueDesc:"\u4EF7\u503C\u5206\uFF08\u9AD8\u2192\u4F4E\uFF09",sortValueAsc:"\u4EF7\u503C\u5206\uFF08\u4F4E\u2192\u9AD8\uFF09",count:"{shown} / {total} \u6761",loading:"\u8BFB\u53D6\u4E2D\u2026",empty:"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u8BB0\u5FC6\u6761\u76EE",noMatch:"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u6761\u76EE",offline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u6682\u65F6\u8BFB\u4E0D\u5230\u8BB0\u5FC6\u6761\u76EE",unsupported:"\u5F53\u524D\u4EE3\u7406\u7248\u672C\u4E0D\u652F\u6301\u8BB0\u5FC6\u6761\u76EE\u7BA1\u7406\uFF0C\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u4EE3\u7406",loadFail:"\u8BB0\u5FC6\u6761\u76EE\u8BFB\u53D6\u5931\u8D25\uFF1A{error}",importanceShort:"\u91CD\u8981\u5EA6",valueShort:"\u4EF7\u503C",createdLabel:"\u521B\u5EFA",lastAccessLabel:"\u6700\u8FD1\u8BBF\u95EE",neverAccessed:"\u4ECE\u672A",accessCount:"\u8BBF\u95EE {count} \u6B21",tagsLabel:"\u6807\u7B7E",editBtn:"\u7F16\u8F91",deleteBtn:"\u5220\u9664",editTitle:"\u7F16\u8F91\u8BB0\u5FC6\u6761\u76EE",typeLabel:"\u7C7B\u578B",contentLabel:"\u5185\u5BB9",importanceLabel:"\u91CD\u8981\u5EA6\uFF081-10\uFF09",tagsPlaceholder:"\u9017\u53F7\u5206\u9694\uFF0C\u5982\uFF1A\u73AF\u5883\u3001\u504F\u597D",saveBtn:"\u4FDD\u5B58\u4FEE\u6539",cancelBtn:"\u53D6\u6D88",contentEmpty:"\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A",saved:"\u8BB0\u5FC6\u5DF2\u66F4\u65B0",saveFail:"\u66F4\u65B0\u5931\u8D25\uFF1A{error}",deleteConfirm:"\u5220\u9664\u8FD9\u6761\u8BB0\u5FC6\uFF1F\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\uFF0C\u5176\u5411\u91CF\u7F13\u5B58\u4F1A\u540C\u6B65\u6458\u9664\u3002",deleted:"\u8BB0\u5FC6\u5DF2\u5220\u9664",deleteFail:"\u5220\u9664\u5931\u8D25\uFF1A{error}",candidatesHint:"{count} \u6761\u4F4E\u4EF7\u503C\u8BB0\u5FC6\u5EFA\u8BAE\u6DD8\u6C70\uFF08\u4EF7\u503C\u5206\u4F4E\u4E8E 10\uFF09",compactBtn:"\u4E00\u952E\u538B\u7F29",compactConfirm:"\u5C06\u5220\u9664 {count} \u6761\u4EF7\u503C\u5206\u4F4E\u4E8E {threshold} \u7684\u8BB0\u5FC6\uFF0C\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\u3002\u786E\u5B9A\u538B\u7F29\uFF1F",compactDone:"\u538B\u7F29\u5B8C\u6210\uFF1A\u5220\u9664\u4E8B\u5B9E {facts} \u6761\u3001\u6458\u8981 {summaries} \u6761",compactFail:"\u538B\u7F29\u5931\u8D25\uFF1A{error}"},knowledge:{tabTitle:"\u77E5\u8BC6\u5E93",gateAgentOffTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",gateAgentOffDesc:"\u77E5\u8BC6\u5E93\u529F\u80FD\u7531\u672C\u5730\u4EE3\u7406\u63D0\u4F9B\u3002\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875\u5B8C\u6210\u4EE3\u7406\u8FDE\u63A5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u7BA1\u7406\u77E5\u8BC6\u5E93\u3002",gateRagOffTitle:"\u77E5\u8BC6\u5E93\u529F\u80FD\u672A\u542F\u7528",gateRagOffDesc:"\u5F00\u542F\u4E0A\u65B9\u300C\u77E5\u8BC6\u5E93\u68C0\u7D22\u300D\u603B\u5F00\u5173\u540E\uFF0C\u5373\u53EF\u521B\u5EFA\u548C\u7BA1\u7406\u77E5\u8BC6\u5E93\u3002",gateRagUnavailableTitle:"\u4EE3\u7406\u7AEF\u80FD\u529B\u672A\u5C31\u7EEA",gateRagUnavailableDesc:"RAG \u4F9D\u8D56\u5C1A\u672A\u5B89\u88C5\uFF0C\u6216 Node \u7248\u672C\u4E0D\u6EE1\u8DB3\u8981\u6C42\uFF08\u9700 Node 22+\uFF09\u3002\u8BF7\u67E5\u770B\u4E0B\u65B9\u5B89\u88C5\u5F15\u5BFC\u3002",goToAgentTab:"\u524D\u5F80\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875",goToToolboxTab:"\u524D\u5F80\u300C\u6269\u5C55\u300D\u6807\u7B7E\u9875",enableNow:"\u7ACB\u5373\u542F\u7528",title:"\u77E5\u8BC6\u5E93",createBtn:"+ \u65B0\u5EFA\u77E5\u8BC6\u5E93",searchPlaceholder:"\u641C\u7D22\u77E5\u8BC6\u5E93...",emptyTitle:"\u8FD8\u6CA1\u6709\u77E5\u8BC6\u5E93",emptyDesc:"\u70B9\u51FB\u300C\u65B0\u5EFA\u77E5\u8BC6\u5E93\u300D\u521B\u5EFA\u7B2C\u4E00\u4E2A\u77E5\u8BC6\u5E93\uFF0C\u7136\u540E\u5BFC\u5165\u6587\u6863\u5F00\u59CB\u4F7F\u7528\u3002",loadFailed:"\u52A0\u8F7D\u5931\u8D25: {error}",retry:"\u91CD\u8BD5",statsSummary:"{docs} \u6587\u6863 \xB7 {chunks} \u5206\u5757",modeLocal:"\u672C\u5730\u6A21\u578B",modeRemote:"\u8FDC\u7AEF\u670D\u52A1",actionEdit:"\u7F16\u8F91",actionIngest:"\u5BFC\u5165",actionSearch:"\u68C0\u7D22\u6D4B\u8BD5",actionDocs:"\u6587\u6863",actionDelete:"\u5220\u9664",actionEnable:"\u542F\u7528",actionDisable:"\u505C\u7528",badgeDisabled:"\u5DF2\u505C\u7528",enableSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u542F\u7528",disableSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u505C\u7528",createTitle:"\u65B0\u5EFA\u77E5\u8BC6\u5E93",nameLabel:"\u540D\u79F0",namePlaceholder:"\u4F8B\u5982\uFF1A\u4EA7\u54C1\u6587\u6863\u96C6",descLabel:"\u63CF\u8FF0\uFF08\u53EF\u9009\uFF09",descPlaceholder:"\u7B80\u8981\u8BF4\u660E\u8FD9\u4E2A\u77E5\u8BC6\u5E93\u5B58\u653E\u4EC0\u4E48\u5185\u5BB9",createConfirm:"\u521B\u5EFA",creating:"\u521B\u5EFA\u4E2D...",createSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u521B\u5EFA",nameRequired:"\u8BF7\u8F93\u5165\u77E5\u8BC6\u5E93\u540D\u79F0",editTitle:"\u7F16\u8F91\u77E5\u8BC6\u5E93",editConfirm:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D...",editSuccess:"\u77E5\u8BC6\u5E93\u4FE1\u606F\u5DF2\u66F4\u65B0",vectorSectionTitle:"\u5411\u91CF\u6A21\u578B",vectorModeLocal:"\u672C\u5730\u6A21\u578B\uFF08\u5185\u7F6E BGE \u4E2D\u6587\u6A21\u578B\uFF09",vectorModeRemote:"\u8FDC\u7AEF\u670D\u52A1\uFF08OpenAI \u517C\u5BB9\u63A5\u53E3\uFF09",vectorModeLocalHint:"\u4F7F\u7528\u4EE3\u7406\u7AEF\u5185\u7F6E BGE \u4E2D\u6587\u6A21\u578B\u751F\u6210\u5411\u91CF\uFF0C\u65E0\u9700\u989D\u5916\u914D\u7F6E\uFF1B\u9996\u6B21\u5BFC\u5165\u9700\u4E0B\u8F7D\u6A21\u578B\u6587\u4EF6\u3002",vectorModeRemoteHint:"\u8C03\u7528\u8FDC\u7AEF OpenAI \u517C\u5BB9\u7684\u5411\u91CF\u670D\u52A1\uFF08\u5982\u7845\u57FA\u6D41\u52A8\u3001\u667A\u8C31\u3001OpenAI \u7B49\uFF09\u3002",vectorEndpointLabel:"\u63A5\u53E3\u5730\u5740\uFF08Base URL\uFF0C\u542B\u7248\u672C\u6BB5\uFF09",vectorEndpointPlaceholder:"\u4F8B\u5982 https://api.siliconflow.cn/v1",vectorApiKeyLabel:"API Key",vectorApiKeyPlaceholder:"\u7C98\u8D34 API Key",vectorApiKeyKeep:"\u7559\u7A7A\u5219\u6CBF\u7528\u5DF2\u4FDD\u5B58\u7684 Key",vectorModelLabel:"\u6A21\u578B\u540D\u79F0",vectorModelPlaceholder:"\u4F8B\u5982 BAAI/bge-m3",vectorDimsLabel:"\u5411\u91CF\u7EF4\u5EA6\uFF08\u53EF\u7559\u7A7A\uFF0C\u6D4B\u8BD5\u65F6\u81EA\u52A8\u63A2\u6D4B\uFF09",vectorDimsPlaceholder:"\u81EA\u52A8",vectorTestBtn:"\u6D4B\u8BD5\u8FDE\u901A\u6027",vectorTesting:"\u6D4B\u8BD5\u4E2D...",vectorTestOk:"\u8FDE\u63A5\u6210\u529F\uFF1A{model}\uFF08{dims} \u7EF4\uFF09",vectorDimsFilled:"\u5DF2\u81EA\u52A8\u586B\u5145\u7EF4\u5EA6\uFF1A{dims}",vectorTestFailed:"\u6D4B\u8BD5\u5931\u8D25: {error}",vectorEndpointRequired:"\u8BF7\u586B\u5199\u8FDC\u7AEF\u63A5\u53E3\u5730\u5740",vectorModelRequired:"\u8BF7\u586B\u5199\u6A21\u578B\u540D\u79F0",rebuildConfirmTitle:"\u53D8\u66F4\u5411\u91CF\u914D\u7F6E",rebuildConfirm:"\u5411\u91CF\u6A21\u578B\u6216\u5206\u5757\u53C2\u6570\u53D8\u66F4\u540E\u9700\u8981\u91CD\u5EFA\u7D22\u5F15\uFF08\u91CD\u65B0\u5411\u91CF\u5316\u5168\u90E8\u6587\u6863\uFF09\u3002\u91CD\u5EFA\u671F\u95F4\u4ECD\u53EF\u68C0\u7D22\u65E7\u7D22\u5F15\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u5207\u6362\u3002\u786E\u5B9A\u7EE7\u7EED\u5417\uFF1F",rebuildStarted:"\u5DF2\u5F00\u59CB\u91CD\u5EFA\u7D22\u5F15\uFF0C\u5B8C\u6210\u540E\u5C06\u81EA\u52A8\u5237\u65B0...",progressRebuilding:"\u6B63\u5728\u91CD\u5EFA\u7D22\u5F15 {current}/{total} \u7BC7\u6587\u6863\u2026",rebuildDone:"\u7D22\u5F15\u91CD\u5EFA\u5B8C\u6210",rebuildFailed:"\u7D22\u5F15\u91CD\u5EFA\u5931\u8D25: {error}",deleteConfirmTitle:"\u5220\u9664\u77E5\u8BC6\u5E93",deleteConfirm:"\u786E\u5B9A\u5220\u9664\u300C{name}\u300D\u5417\uFF1F\u5176\u4E2D\u7684 {docs} \u4E2A\u6587\u6863\u3001{chunks} \u4E2A\u5206\u5757\u5C06\u4E00\u5E76\u5220\u9664\uFF0C\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002",deleteSuccess:"\u77E5\u8BC6\u5E93\u5DF2\u5220\u9664",ingestTitle:"\u5BFC\u5165\u6587\u6863\u5230\u300C{name}\u300D",tabFile:"\u6587\u4EF6",tabText:"\u6587\u672C",tabUrl:"URL",dropHint:"\u62D6\u62FD\u6587\u4EF6\u5230\u6B64\u5904\uFF0C\u6216\u70B9\u51FB\u9009\u62E9",dropSupported:"\u652F\u6301 txt / md / pdf / docx / xlsx / html \u7B49\u683C\u5F0F\uFF0C\u5355\u6587\u4EF6 \u2264 50MB",selectedFile:"\u5DF2\u9009\u62E9\uFF1A{name}",textContentLabel:"\u6587\u672C\u5185\u5BB9",textContentPlaceholder:"\u5728\u6B64\u7C98\u8D34\u8981\u5BFC\u5165\u7684\u6587\u672C\u5185\u5BB9...",textNameLabel:"\u6587\u6863\u540D\u79F0\uFF08\u53EF\u9009\uFF09",textNamePlaceholder:"\u7559\u7A7A\u5219\u81EA\u52A8\u547D\u540D",urlLabel:"\u7F51\u9875\u5730\u5740",urlPlaceholder:"https://example.com/page",chunkSettingsTitle:"\u5206\u5757\u8BBE\u7F6E",chunkSizeLabel:"\u5757\u5927\u5C0F\uFF08\u5B57\u7B26\uFF09",chunkOverlapLabel:"\u91CD\u53E0\uFF08\u5B57\u7B26\uFF09",ingestConfirm:"\u5F00\u59CB\u5BFC\u5165",ingesting:"\u6B63\u5728\u89E3\u6790\u5E76\u5411\u91CF\u5316\uFF0C\u9996\u6B21\u5BFC\u5165\u53EF\u80FD\u9700\u8981\u4E0B\u8F7D\u6A21\u578B\uFF0C\u8BF7\u7A0D\u5019...",progressParsing:"\u6B63\u5728\u89E3\u6790\u6587\u6863\u2026",progressChunking:"\u6B63\u5728\u5206\u5757\u2026",progressEmbedding:"\u6B63\u5728\u5411\u91CF\u5316 {current}/{total} \u5757\u2026",progressStoring:"\u6B63\u5728\u5199\u5165\u7D22\u5F15\u2026",ingestSuccess:"\u5BFC\u5165\u5B8C\u6210\uFF1A{name}\uFF08{chunks} \u4E2A\u5206\u5757\uFF09",ingestFailed:"\u5BFC\u5165\u5931\u8D25: {error}",fileRequired:"\u8BF7\u5148\u9009\u62E9\u6587\u4EF6",contentRequired:"\u8BF7\u8F93\u5165\u8981\u5BFC\u5165\u7684\u6587\u672C\u5185\u5BB9",urlRequired:"\u8BF7\u8F93\u5165\u7F51\u9875\u5730\u5740",fileTooLarge:"\u6587\u4EF6\u8FC7\u5927\uFF0C\u6700\u5927\u652F\u6301 50MB",docsTitle:"\u300C{name}\u300D\u7684\u6587\u6863",docsEmpty:"\u8FD8\u6CA1\u6709\u5BFC\u5165\u4EFB\u4F55\u6587\u6863",docChunkCount:"{count} \u5206\u5757",docDeleteConfirmTitle:"\u5220\u9664\u6587\u6863",docDeleteConfirm:"\u786E\u5B9A\u5220\u9664\u6587\u6863\u300C{name}\u300D\u5417\uFF1F\u8BE5\u6587\u6863\u7684\u6240\u6709\u5206\u5757\u5C06\u4ECE\u77E5\u8BC6\u5E93\u4E2D\u79FB\u9664\u3002",docDeleteSuccess:"\u6587\u6863\u5DF2\u5220\u9664",searchTitle:"\u68C0\u7D22\u6D4B\u8BD5",searchScope:"\u68C0\u7D22\u8303\u56F4\uFF1A\u300C{name}\u300D",searchQueryPlaceholder:"\u8F93\u5165\u67E5\u8BE2\u8BED\u53E5\uFF0C\u4F8B\u5982\uFF1A\u5982\u4F55\u5BFC\u51FA\u6570\u636E\uFF1F",searchBtn:"\u68C0\u7D22",searching:"\u68C0\u7D22\u4E2D...",searchTopKLabel:"\u8FD4\u56DE\u6761\u6570",searchThresholdLabel:"\u76F8\u4F3C\u5EA6\u9608\u503C",searchHitCount:"\u547D\u4E2D {count} \u6761",searchNoHits:"\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u5185\u5BB9\uFF0C\u53EF\u5C1D\u8BD5\u964D\u4F4E\u76F8\u4F3C\u5EA6\u9608\u503C\u3002",searchFallbackHint:"\u76F8\u4F3C\u5EA6\u5747\u4F4E\u4E8E\u9608\u503C\uFF0C\u4EE5\u4E0B\u4E3A\u6700\u4F73\u5339\u914D\uFF08\u4EC5\u4F9B\u53C2\u8003\uFF09\uFF1A",searchFailed:"\u68C0\u7D22\u5931\u8D25: {error}",expandFull:"\u5C55\u5F00\u5168\u6587",collapse:"\u6536\u8D77",scoreLabel:"\u76F8\u4F3C\u5EA6",opFailed:"\u64CD\u4F5C\u5931\u8D25: {error}"},contextBubble:{labelSelection:"\u9009\u4E2D\u5185\u5BB9",labelQuoted:"\u5F15\u7528",labelSkill:"\u6280\u80FD",labelMcp:"MCP",labelPage:"\u7F51\u9875",labelFile:"\u6587\u4EF6",labelKnowledge:"\u77E5\u8BC6\u5E93",clickToExpand:"\u70B9\u51FB\u5C55\u5F00",bubbleSkill:"{name} \u{1F9E9}",bubbleMcp:"{name} \u{1F50C}",bubblePage:"{title} \u{1F310}",bubbleKnowledge:"{name} \u{1F4DA} \xB7 \u547D\u4E2D {count} \u6761",bubbleKnowledgeMiss:"{name} \u{1F4DA} \xB7 \u672A\u547D\u4E2D",bubbleKnowledgeFailed:"{name} \u{1F4DA} \xB7 \u68C0\u7D22\u5931\u8D25",bubbleKnowledgeSearching:"\u6B63\u5728\u68C0\u7D22\u77E5\u8BC6\u5E93\u2026",kbHitToggle:"\u70B9\u51FB\u5C55\u5F00/\u6536\u8D77\u5168\u6587",kbHitTruncated:"\u2702 \u5DF2\u622A\u65AD \xB7 \u539F\u6587 {total} \u5B57\uFF0C\u524D {kept} \u5B57\u5DF2\u53D1\u9001",kbHitTruncatedTitle:"\u4E3A\u63A7\u5236\u4E0A\u4E0B\u6587\u4F53\u79EF\uFF0C\u5185\u5BB9\u622A\u65AD\u540E\u518D\u53D1\u9001\u7ED9\u6A21\u578B\uFF1B\u6B64\u5904\u663E\u793A\u7684\u5373\u6A21\u578B\u5B9E\u9645\u6536\u5230\u7684\u7248\u672C",kbHitTruncatedBadge:"\u2702 {count} \u6761\u5DF2\u622A\u65AD"},configDialog:{exportTitle:"\u5BFC\u51FA\u914D\u7F6E",includeSecrets:"\u5305\u542B API \u5BC6\u94A5",secretWarn:"\u26A0 \u654F\u611F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u6587\u4EF6\u5B89\u5168",exportDesc:"\u5BFC\u51FA\u6587\u4EF6\u5C06\u5305\u542B\u9664 Agent \u8FDE\u63A5\u4FE1\u606F\u5916\u7684\u6240\u6709\u914D\u7F6E\uFF0C\u53EF\u9009\u62E9\u662F\u5426\u5305\u542B API \u5BC6\u94A5\u3002",export:"\u5BFC\u51FA",importTitle:"\u5BFC\u5165\u914D\u7F6E",mergeImport:"\u5408\u5E76\u5BFC\u5165 \u2014 \u4EC5\u8986\u76D6\u6587\u4EF6\u4E2D\u5B58\u5728\u7684\u914D\u7F6E\u9879\uFF0C\u4FDD\u7559\u5176\u4ED6",replaceImport:"\u5B8C\u5168\u66FF\u6362 \u2014 \u6E05\u7A7A\u5F53\u524D\u914D\u7F6E\uFF0C\u4F7F\u7528\u6587\u4EF6\u4E2D\u7684\u914D\u7F6E",confirmImport:"\u786E\u8BA4\u5BFC\u5165",exportSuccess:"\u914D\u7F6E\u5DF2\u5BFC\u51FA",exportFailed:"\u5BFC\u51FA\u5931\u8D25: {error}",unknownTime:"\u672A\u77E5",importSummary:"\u5BFC\u51FA\u65F6\u95F4: {time}\uFF0C\u5305\u542B {count} \u9879\u914D\u7F6E",invalidFileFormat:"\u65E0\u6548\u7684\u6587\u4EF6\u683C\u5F0F",unrecognizedFormat:"\u65E0\u6CD5\u8BC6\u522B\u7684\u914D\u7F6E\u683C\u5F0F",unknownConfigKey:"\u672A\u77E5\u7684\u914D\u7F6E\u9879: {key}",importFailed:"\u5BFC\u5165\u5931\u8D25: {error}",importParseFailed:"\u5BFC\u5165\u5931\u8D25: \u65E0\u6CD5\u89E3\u6790\u6587\u4EF6\u683C\u5F0F",importedCount:"\u5DF2\u5BFC\u5165 {count} \u9879\u914D\u7F6E"}};var m={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",ok:"OK",save:"Save",delete:"Delete",edit:"Edit",retry:"Retry",loading:"Loading...",none:"None",add:"Add",clear:"Clear",selectAll:"Select All",deselectAll:"Deselect All",refresh:"Refresh",enabled:"Enabled",disabled:"Disabled",bytes:"bytes",copy:"Copy",copySuccess:"Copied",copyFailed:"Copy failed"},dialog:{operationConfirm:"Operation Confirmation",confirmDefaultMessage:"The model requests to execute a sensitive operation. Allow?",confirmAction:"The model requests to execute: {name}",remainingTime:"Time remaining: {time}",deny:"Deny",approveOnce:"Allow Once",approveLoop:"Allow for This Task",pendingQueue:"(+{count} queued)",pendingQueueClarify:"(+{count} awaiting clarification)",otherPending:"(+{count} other waiting)"},sensitiveTool:{manage_cookies:"Manage Cookies",manage_storage:"Page Storage Operation",download_file:"Download File",manage_tab:"Tab Management",agent_file:"File Operations",agent_exec:"Local Command Execution",debug_page:"Page Debugger",debuggerAttachHint:`
25
+ 2. \u6B65\u9AA42`,existingResources:"\u5DF2\u6709\u8D44\u6E90\u6587\u4EF6",skillNameRequired:"\u8BF7\u8F93\u5165\u6280\u80FD\u540D\u79F0",skillMarkdownRequired:"\u8BF7\u8F93\u5165 SKILL.md \u5185\u5BB9",agentSkillSaved:'Agent \u6280\u80FD "{name}" \u4FDD\u5B58\u6210\u529F',saveFailedShort:"\u4FDD\u5B58\u5931\u8D25",saveFailed:"\u4FDD\u5B58\u5931\u8D25: {error}",viewSkillTitle:"\u67E5\u770B\u6280\u80FD: {name}",importSkillTitle:"\u5BFC\u5165\u6280\u80FD",importBtn:"\u5BFC\u5165",jsonImport:"JSON \u5BFC\u5165",newAuthoring:"\u65B0\u5EFA\u7F16\u5199",zipPackage:"Zip \u5305",urlImport:"URL \u5BFC\u5165",jsonImportDesc:"\u5BFC\u5165 JSON \u683C\u5F0F\u7684 Workflow \u6280\u80FD\uFF08\u786E\u5B9A\u6027\u81EA\u52A8\u5316\u6D41\u7A0B\uFF09",clickOrDragJson:"\u70B9\u51FB\u9009\u62E9 JSON \u6587\u4EF6\u6216\u62D6\u62FD\u5230\u6B64\u5904",jsonFileHint:"\u652F\u6301 .json \u683C\u5F0F\u7684 Workflow \u6280\u80FD\u5B9A\u4E49\u6587\u4EF6",markdownImportDesc:"\u76F4\u63A5\u7F16\u5199 SKILL.md \u5185\u5BB9\uFF0C\u521B\u5EFA Agent \u6280\u80FD\uFF08AI \u80FD\u529B\u6269\u5C55\uFF09",zipImportDesc:"\u5BFC\u5165\u5305\u542B SKILL.md \u7684 Zip \u538B\u7F29\u5305\uFF0C\u53EF\u9644\u5E26 scripts/templates/assets \u7B49\u8F85\u52A9\u8D44\u6E90",clickOrDragZip:"\u70B9\u51FB\u9009\u62E9 Zip \u6587\u4EF6\u6216\u62D6\u62FD\u5230\u6B64\u5904",zipFileHint:"Zip \u5305\u5185\u9700\u5305\u542B SKILL.md \u6587\u4EF6\uFF0C\u53EF\u9009\u7684 scripts/ templates/ assets/ \u5B50\u76EE\u5F55",urlImportDesc:"\u4ECE\u8FDC\u7A0B URL \u4E0B\u8F7D\u6280\u80FD\u7684 Zip \u5305\u5E76\u81EA\u52A8\u5BFC\u5165",downloadUrl:"\u4E0B\u8F7D\u5730\u5740",selectJsonFile:"\u8BF7\u9009\u62E9 JSON \u6587\u4EF6",workflowSkillImported:'Workflow \u6280\u80FD "{name}" \u5BFC\u5165\u6210\u529F',agentSkillCreated:'Agent \u6280\u80FD "{name}" \u521B\u5EFA\u6210\u529F',createFailedShort:"\u521B\u5EFA\u5931\u8D25",selectZipFile:"\u8BF7\u9009\u62E9 Zip \u6587\u4EF6",fileTooLarge:"\u6587\u4EF6\u8FC7\u5927\uFF0C\u6700\u5927\u652F\u6301 50MB",fileReadFailed:"\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25",agentSkillImported:'Agent \u6280\u80FD "{name}" \u5BFC\u5165\u6210\u529F',urlRequired:"\u8BF7\u8F93\u5165 URL",importFailed:"\u5BFC\u5165\u5931\u8D25: {error}",searchMcpPlaceholder:"\u641C\u7D22 MCP \u670D\u52A1\u5668...",searchSkillPlaceholder:"\u641C\u7D22\u6280\u80FD...",filterAll:"\u5168\u90E8",filterEnabled:"\u5DF2\u542F\u7528",filterDisabled:"\u5DF2\u505C\u7528",noMatchResult:"\u65E0\u5339\u914D\u7ED3\u679C"},memoryPanel:{tabTitle:"\u8BB0\u5FC6",title:"\u8BB0\u5FC6\u5411\u91CF",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",statusTitle:"\u5411\u91CF\u7D22\u5F15\u72B6\u6001",statusLoading:"\u8BFB\u53D6\u4E2D\u2026",statusOffline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u6682\u65F6\u8BFB\u4E0D\u5230\u5411\u91CF\u72B6\u6001",statusFail:"\u5411\u91CF\u72B6\u6001\u8BFB\u53D6\u5931\u8D25",statusOldAgent:"\u5F53\u524D\u4EE3\u7406\u7248\u672C\u6CA1\u6709\u8FD9\u4E2A\u72B6\u6001\u63A5\u53E3\uFF0C\u8BF7\u91CD\u542F\u4EE3\u7406\u540E\u518D\u770B",statusDetail:"\u8FD4\u56DE\u4FE1\u606F",statusIndexed:"\u5DF2\u7D22\u5F15 {indexed} / \u5171 {total} \u6761",statusStored:"\u5411\u91CF\u6307\u7EB9",statusCurrent:"\u5F53\u524D\u914D\u7F6E\u6307\u7EB9",statusTier:"\u751F\u6548\u6863\u4F4D",statusStale:"\u5DF2\u9648\u65E7\uFF1A\u6A21\u578B\u53D8\u66F4\u540E\u672A\u91CD\u5EFA",statusFresh:"\u4E0E\u5F53\u524D\u914D\u7F6E\u4E00\u81F4",staleHint:"\u65E7\u5411\u91CF\u4E0E\u65B0\u914D\u7F6E\u4E0D\u53EF\u6BD4\uFF0C\u8BED\u4E49\u53EC\u56DE\u4F1A\u9759\u9ED8\u9000\u5316\u3002\u8BF7\u70B9\u300C\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15\u300D\uFF08\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\u5148\u4FDD\u5B58\uFF09\u3002",modeLabel:"\u5D4C\u5165\u6765\u6E90",modeRemote:"\u8FDC\u7AEF\u670D\u52A1\uFF08OpenAI \u517C\u5BB9\u63A5\u53E3\uFF09",modeLocal:"\u672C\u5730\u6A21\u578B",baseUrlLabel:"\u670D\u52A1\u5730\u5740",baseUrlPlaceholder:"https://api.openai.com/v1",modelLabel:"\u6A21\u578B\u540D\u79F0",modelPlaceholder:"BAAI/bge-m3",apiKeyLabel:"API Key",apiKeyPlaceholder:"\u7559\u7A7A\u8868\u793A\u4E0D\u4FEE\u6539",apiKeyClearBtn:"\u6E05\u9664\u5DF2\u5B58 Key",apiKeyClearConfirm:"\u6E05\u9664\u540E\u8FDC\u7AEF\u8BED\u4E49\u53EC\u56DE\u968F\u5373\u505C\u7528\uFF08\u964D\u56DE\u5173\u952E\u8BCD\u6863\uFF09\uFF0C\u76F4\u5230\u91CD\u65B0\u586B\u5165\u5E76\u4FDD\u5B58\u65B0 Key\u3002\u786E\u5B9A\u6E05\u9664\uFF1F",apiKeyCleared:"\u5DF2\u6E05\u9664\u5DF2\u5B58\u7684 API Key",apiKeyClearFail:"\u6E05\u9664 Key \u5931\u8D25\uFF1A{error}",configNotLoaded:"\u914D\u7F6E\u672A\u6210\u529F\u52A0\u8F7D\uFF0C\u4E3A\u907F\u514D\u628A\u4EE3\u7406\u91CC\u7684\u8BBE\u7F6E\u8986\u76D6\u6210\u7A7A\uFF0C\u8BF7\u5237\u65B0\u9762\u677F\u540E\u91CD\u8BD5",dimsLabel:"\u5411\u91CF\u7EF4\u5EA6\uFF08\u53EF\u7559\u7A7A\uFF0C\u6D4B\u8BD5\u65F6\u81EA\u52A8\u63A2\u6D4B\uFF09",prefixLabel:"\u67E5\u8BE2\u524D\u7F00\uFF08queryPrefix\uFF0C\u53EF\u7559\u7A7A\uFF09",localNotice:"\u672C\u5730\u6863\u65E0\u9700\u6D4B\u8BD5\u8FDE\u901A\u6027\uFF1A\u4FDD\u5B58\u540E\u76F4\u63A5\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15\uFF08\u9996\u6B21\u4F7F\u7528\u9700\u4E0B\u8F7D\u6A21\u578B\uFF0C\u53EF\u80FD\u6570\u5341\u5206\u949F\uFF09\u3002\u5D4C\u5165\u5728 512 token \u5904\u9759\u9ED8\u622A\u65AD\uFF0C\u8D85\u957F\u6761\u76EE\u53EA\u6709\u524D\u90E8\u8FDB\u5165\u5411\u91CF\u3002",testBtn:"\u6D4B\u8BD5\u8FDE\u901A\u6027",testRunning:"\u6D4B\u8BD5\u4E2D\u2026",testOk:"\u8FDE\u901A\u6B63\u5E38\uFF1A{model} \u8F93\u51FA {dims} \u7EF4",testFail:"\u6D4B\u8BD5\u5931\u8D25\uFF1A{error}",scopeHint:"\u672C Tab \u7684\u914D\u7F6E\u4F1A\u5728\u70B9\u51FB\u5E95\u90E8\u300C\u4FDD\u5B58\u914D\u7F6E\u300D\u65F6\u4E00\u5E76\u5199\u5165\u4EE3\u7406\uFF08\u672C\u5730 agent \u670D\u52A1\uFF09\u7684 config.json\uFF1B\u4EE3\u7406\u672A\u8FDE\u63A5\u65F6\u8DF3\u8FC7\u8BE5\u9879\uFF0C\u4EC5\u4FDD\u5B58\u6269\u5C55\u81EA\u8EAB\u8BBE\u7F6E",saveSkippedOffline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u672A\u4FDD\u5B58\uFF08\u4EC5\u4FDD\u5B58\u4E86\u6269\u5C55\u8BBE\u7F6E\uFF09",saveSuccess:"\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u5DF2\u4FDD\u5B58",saveFail:"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}",toggleOnSaved:"\u5DF2\u542F\u7528\u8BED\u4E49\u5411\u91CF\u53EC\u56DE",toggleOffSaved:"\u5DF2\u505C\u7528\uFF0C\u53EC\u56DE\u56DE\u843D\u5173\u952E\u8BCD\u901A\u9053",toggleFail:"\u5F00\u5173\u5207\u6362\u5931\u8D25\uFF1A{error}",reindexBtn:"\u91CD\u5EFA\u5411\u91CF\u7D22\u5F15",reindexConfirm:"\u91CD\u5EFA\u4F1A\u7528\u5F53\u524D\u914D\u7F6E\u91CD\u65B0\u8BA1\u7B97\u5168\u90E8\u8BB0\u5FC6\u7684\u5411\u91CF\u3002\u672C\u5730\u6863 41 \u6761\u5B9E\u6D4B\u7EA6 23 \u5206\u949F\uFF08\u8FDC\u7AEF\u7EA6 2 \u5206\u949F\uFF09\uFF0C\u671F\u95F4\u8BF7\u52FF\u5173\u95ED\u672C\u9875\u9762\u3002\u786E\u5B9A\u7EE7\u7EED\uFF1F",reindexRunning:"\u91CD\u5EFA\u8FDB\u884C\u4E2D\uFF0C\u8BF7\u52FF\u5173\u95ED\u9875\u9762\u2026",reindexDone:"\u91CD\u5EFA\u5B8C\u6210\uFF1A\u5DF2\u7D22\u5F15 {indexed} / {total}",reindexBatchFail:"\uFF08{count} \u6279\u5931\u8D25\uFF0C\u8BE6\u89C1 agent \u65E5\u5FD7\uFF09",reindexOverWindow:"\uFF08{count} \u6761\u8D85\u51FA {window} token \u7A97\u53E3\uFF0C\u5C3E\u90E8\u672A\u8FDB\u5411\u91CF\uFF09",reindexSkipped:"\u672A\u91CD\u5EFA\uFF1A\u5411\u91CF\u6863\u672A\u542F\u7528",reindexFail:"\u91CD\u5EFA\u5931\u8D25\uFF1A{error}",gateAgentOffTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",gateAgentOffBody:"\u8BB0\u5FC6\u5411\u91CF\u914D\u7F6E\u7531\u672C\u5730\u4EE3\u7406\u63D0\u4F9B\u3002\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875\u5B8C\u6210\u4EE3\u7406\u8FDE\u63A5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u914D\u7F6E\u3002",gateRagTitle:"\u672C\u5730\u6A21\u578B\u4F9D\u8D56\u672A\u5C31\u7EEA",gateRagMissing:"\u672C\u5730\u6A21\u578B\u9700\u8981 RAG \u4F9D\u8D56\u3002\u8BF7\u5148\u5728\u300C\u6269\u5C55\u300D\u9762\u677F\u5B8C\u6210\u5B89\u88C5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u914D\u7F6E\u3002",goToAgentTab:"\u524D\u5F80\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875",goToToolboxTab:"\u524D\u5F80\u300C\u6269\u5C55\u300D\u6807\u7B7E\u9875"},memoryEntries:{title:"\u8BB0\u5FC6\u6761\u76EE",refreshBtn:"\u5237\u65B0",searchPlaceholder:"\u641C\u7D22\u5185\u5BB9\u6216\u6807\u7B7E\u2026",filterAll:"\u5168\u90E8\u7C7B\u578B",filterFact:"\u4E8B\u5B9E",filterSummary:"\u6458\u8981",sortCreatedDesc:"\u521B\u5EFA\u65F6\u95F4\uFF08\u65B0\u2192\u65E7\uFF09",sortImportanceDesc:"\u91CD\u8981\u5EA6\uFF08\u9AD8\u2192\u4F4E\uFF09",sortValueDesc:"\u4EF7\u503C\u5206\uFF08\u9AD8\u2192\u4F4E\uFF09",sortValueAsc:"\u4EF7\u503C\u5206\uFF08\u4F4E\u2192\u9AD8\uFF09",count:"{shown} / {total} \u6761",loading:"\u8BFB\u53D6\u4E2D\u2026",empty:"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u8BB0\u5FC6\u6761\u76EE",noMatch:"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u6761\u76EE",offline:"\u4EE3\u7406\u672A\u8FDE\u63A5\uFF0C\u6682\u65F6\u8BFB\u4E0D\u5230\u8BB0\u5FC6\u6761\u76EE",unsupported:"\u5F53\u524D\u4EE3\u7406\u7248\u672C\u4E0D\u652F\u6301\u8BB0\u5FC6\u6761\u76EE\u7BA1\u7406\uFF0C\u8BF7\u5347\u7EA7\u5E76\u91CD\u542F\u4EE3\u7406",loadFail:"\u8BB0\u5FC6\u6761\u76EE\u8BFB\u53D6\u5931\u8D25\uFF1A{error}",importanceShort:"\u91CD\u8981\u5EA6",valueShort:"\u4EF7\u503C",createdLabel:"\u521B\u5EFA",lastAccessLabel:"\u6700\u8FD1\u8BBF\u95EE",neverAccessed:"\u4ECE\u672A",accessCount:"\u8BBF\u95EE {count} \u6B21",tagsLabel:"\u6807\u7B7E",editBtn:"\u7F16\u8F91",deleteBtn:"\u5220\u9664",editTitle:"\u7F16\u8F91\u8BB0\u5FC6\u6761\u76EE",typeLabel:"\u7C7B\u578B",contentLabel:"\u5185\u5BB9",importanceLabel:"\u91CD\u8981\u5EA6\uFF081-10\uFF09",tagsPlaceholder:"\u9017\u53F7\u5206\u9694\uFF0C\u5982\uFF1A\u73AF\u5883\u3001\u504F\u597D",saveBtn:"\u4FDD\u5B58\u4FEE\u6539",cancelBtn:"\u53D6\u6D88",contentEmpty:"\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A",saved:"\u8BB0\u5FC6\u5DF2\u66F4\u65B0",saveFail:"\u66F4\u65B0\u5931\u8D25\uFF1A{error}",deleteConfirm:"\u5220\u9664\u8FD9\u6761\u8BB0\u5FC6\uFF1F\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\uFF0C\u5176\u5411\u91CF\u7F13\u5B58\u4F1A\u540C\u6B65\u6458\u9664\u3002",deleted:"\u8BB0\u5FC6\u5DF2\u5220\u9664",deleteFail:"\u5220\u9664\u5931\u8D25\uFF1A{error}",candidatesHint:"{count} \u6761\u4F4E\u4EF7\u503C\u8BB0\u5FC6\u5EFA\u8BAE\u6DD8\u6C70\uFF08\u4EF7\u503C\u5206\u4F4E\u4E8E 10\uFF09",compactBtn:"\u4E00\u952E\u538B\u7F29",compactConfirm:"\u5C06\u5220\u9664 {count} \u6761\u4EF7\u503C\u5206\u4F4E\u4E8E {threshold} \u7684\u8BB0\u5FC6\uFF0C\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\u3002\u786E\u5B9A\u538B\u7F29\uFF1F",compactDone:"\u538B\u7F29\u5B8C\u6210\uFF1A\u5220\u9664\u4E8B\u5B9E {facts} \u6761\u3001\u6458\u8981 {summaries} \u6761",compactFail:"\u538B\u7F29\u5931\u8D25\uFF1A{error}"},knowledge:{tabTitle:"\u77E5\u8BC6\u5E93",gateAgentOffTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",gateAgentOffDesc:"\u77E5\u8BC6\u5E93\u529F\u80FD\u7531\u672C\u5730\u4EE3\u7406\u63D0\u4F9B\u3002\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875\u5B8C\u6210\u4EE3\u7406\u8FDE\u63A5\uFF0C\u518D\u56DE\u5230\u8FD9\u91CC\u7BA1\u7406\u77E5\u8BC6\u5E93\u3002",gateRagOffTitle:"\u77E5\u8BC6\u5E93\u529F\u80FD\u672A\u542F\u7528",gateRagOffDesc:"\u5F00\u542F\u4E0A\u65B9\u300C\u77E5\u8BC6\u5E93\u68C0\u7D22\u300D\u603B\u5F00\u5173\u540E\uFF0C\u5373\u53EF\u521B\u5EFA\u548C\u7BA1\u7406\u77E5\u8BC6\u5E93\u3002",gateRagUnavailableTitle:"\u4EE3\u7406\u7AEF\u80FD\u529B\u672A\u5C31\u7EEA",gateRagUnavailableDesc:"RAG \u4F9D\u8D56\u5C1A\u672A\u5B89\u88C5\uFF0C\u6216 Node \u7248\u672C\u4E0D\u6EE1\u8DB3\u8981\u6C42\uFF08\u9700 Node 22+\uFF09\u3002\u8BF7\u67E5\u770B\u4E0B\u65B9\u5B89\u88C5\u5F15\u5BFC\u3002",goToAgentTab:"\u524D\u5F80\u300C\u4EE3\u7406\u300D\u6807\u7B7E\u9875",goToToolboxTab:"\u524D\u5F80\u300C\u6269\u5C55\u300D\u6807\u7B7E\u9875",enableNow:"\u7ACB\u5373\u542F\u7528",title:"\u77E5\u8BC6\u5E93",createBtn:"+ \u65B0\u5EFA\u77E5\u8BC6\u5E93",searchPlaceholder:"\u641C\u7D22\u77E5\u8BC6\u5E93...",emptyTitle:"\u8FD8\u6CA1\u6709\u77E5\u8BC6\u5E93",emptyDesc:"\u70B9\u51FB\u300C\u65B0\u5EFA\u77E5\u8BC6\u5E93\u300D\u521B\u5EFA\u7B2C\u4E00\u4E2A\u77E5\u8BC6\u5E93\uFF0C\u7136\u540E\u5BFC\u5165\u6587\u6863\u5F00\u59CB\u4F7F\u7528\u3002",loadFailed:"\u52A0\u8F7D\u5931\u8D25: {error}",retry:"\u91CD\u8BD5",statsSummary:"{docs} \u6587\u6863 \xB7 {chunks} \u5206\u5757",modeLocal:"\u672C\u5730\u6A21\u578B",modeRemote:"\u8FDC\u7AEF\u670D\u52A1",actionEdit:"\u7F16\u8F91",actionIngest:"\u5BFC\u5165",actionSearch:"\u68C0\u7D22\u6D4B\u8BD5",actionDocs:"\u6587\u6863",actionDelete:"\u5220\u9664",actionEnable:"\u542F\u7528",actionDisable:"\u505C\u7528",badgeDisabled:"\u5DF2\u505C\u7528",enableSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u542F\u7528",disableSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u505C\u7528",createTitle:"\u65B0\u5EFA\u77E5\u8BC6\u5E93",nameLabel:"\u540D\u79F0",namePlaceholder:"\u4F8B\u5982\uFF1A\u4EA7\u54C1\u6587\u6863\u96C6",descLabel:"\u63CF\u8FF0\uFF08\u53EF\u9009\uFF09",descPlaceholder:"\u7B80\u8981\u8BF4\u660E\u8FD9\u4E2A\u77E5\u8BC6\u5E93\u5B58\u653E\u4EC0\u4E48\u5185\u5BB9",createConfirm:"\u521B\u5EFA",creating:"\u521B\u5EFA\u4E2D...",createSuccess:"\u77E5\u8BC6\u5E93\u300C{name}\u300D\u5DF2\u521B\u5EFA",nameRequired:"\u8BF7\u8F93\u5165\u77E5\u8BC6\u5E93\u540D\u79F0",editTitle:"\u7F16\u8F91\u77E5\u8BC6\u5E93",editConfirm:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D...",editSuccess:"\u77E5\u8BC6\u5E93\u4FE1\u606F\u5DF2\u66F4\u65B0",vectorSectionTitle:"\u5411\u91CF\u6A21\u578B",vectorModeLocal:"\u672C\u5730\u6A21\u578B\uFF08\u5185\u7F6E BGE \u4E2D\u6587\u6A21\u578B\uFF09",vectorModeRemote:"\u8FDC\u7AEF\u670D\u52A1\uFF08OpenAI \u517C\u5BB9\u63A5\u53E3\uFF09",vectorModeLocalHint:"\u4F7F\u7528\u4EE3\u7406\u7AEF\u5185\u7F6E BGE \u4E2D\u6587\u6A21\u578B\u751F\u6210\u5411\u91CF\uFF0C\u65E0\u9700\u989D\u5916\u914D\u7F6E\uFF1B\u9996\u6B21\u5BFC\u5165\u9700\u4E0B\u8F7D\u6A21\u578B\u6587\u4EF6\u3002",vectorModeRemoteHint:"\u8C03\u7528\u8FDC\u7AEF OpenAI \u517C\u5BB9\u7684\u5411\u91CF\u670D\u52A1\uFF08\u5982\u7845\u57FA\u6D41\u52A8\u3001\u667A\u8C31\u3001OpenAI \u7B49\uFF09\u3002",vectorEndpointLabel:"\u63A5\u53E3\u5730\u5740\uFF08Base URL\uFF0C\u542B\u7248\u672C\u6BB5\uFF09",vectorEndpointPlaceholder:"\u4F8B\u5982 https://api.siliconflow.cn/v1",vectorApiKeyLabel:"API Key",vectorApiKeyPlaceholder:"\u7C98\u8D34 API Key",vectorApiKeyKeep:"\u7559\u7A7A\u5219\u6CBF\u7528\u5DF2\u4FDD\u5B58\u7684 Key",vectorModelLabel:"\u6A21\u578B\u540D\u79F0",vectorModelPlaceholder:"\u4F8B\u5982 BAAI/bge-m3",vectorDimsLabel:"\u5411\u91CF\u7EF4\u5EA6\uFF08\u53EF\u7559\u7A7A\uFF0C\u6D4B\u8BD5\u65F6\u81EA\u52A8\u63A2\u6D4B\uFF09",vectorDimsPlaceholder:"\u81EA\u52A8",vectorTestBtn:"\u6D4B\u8BD5\u8FDE\u901A\u6027",vectorTesting:"\u6D4B\u8BD5\u4E2D...",vectorTestOk:"\u8FDE\u63A5\u6210\u529F\uFF1A{model}\uFF08{dims} \u7EF4\uFF09",vectorDimsFilled:"\u5DF2\u81EA\u52A8\u586B\u5145\u7EF4\u5EA6\uFF1A{dims}",vectorTestFailed:"\u6D4B\u8BD5\u5931\u8D25: {error}",vectorEndpointRequired:"\u8BF7\u586B\u5199\u8FDC\u7AEF\u63A5\u53E3\u5730\u5740",vectorModelRequired:"\u8BF7\u586B\u5199\u6A21\u578B\u540D\u79F0",rebuildConfirmTitle:"\u53D8\u66F4\u5411\u91CF\u914D\u7F6E",rebuildConfirm:"\u5411\u91CF\u6A21\u578B\u6216\u5206\u5757\u53C2\u6570\u53D8\u66F4\u540E\u9700\u8981\u91CD\u5EFA\u7D22\u5F15\uFF08\u91CD\u65B0\u5411\u91CF\u5316\u5168\u90E8\u6587\u6863\uFF09\u3002\u91CD\u5EFA\u671F\u95F4\u4ECD\u53EF\u68C0\u7D22\u65E7\u7D22\u5F15\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u5207\u6362\u3002\u786E\u5B9A\u7EE7\u7EED\u5417\uFF1F",rebuildStarted:"\u5DF2\u5F00\u59CB\u91CD\u5EFA\u7D22\u5F15\uFF0C\u5B8C\u6210\u540E\u5C06\u81EA\u52A8\u5237\u65B0...",progressRebuilding:"\u6B63\u5728\u91CD\u5EFA\u7D22\u5F15 {current}/{total} \u7BC7\u6587\u6863\u2026",rebuildDone:"\u7D22\u5F15\u91CD\u5EFA\u5B8C\u6210",rebuildFailed:"\u7D22\u5F15\u91CD\u5EFA\u5931\u8D25: {error}",deleteConfirmTitle:"\u5220\u9664\u77E5\u8BC6\u5E93",deleteConfirm:"\u786E\u5B9A\u5220\u9664\u300C{name}\u300D\u5417\uFF1F\u5176\u4E2D\u7684 {docs} \u4E2A\u6587\u6863\u3001{chunks} \u4E2A\u5206\u5757\u5C06\u4E00\u5E76\u5220\u9664\uFF0C\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002",deleteSuccess:"\u77E5\u8BC6\u5E93\u5DF2\u5220\u9664",ingestTitle:"\u5BFC\u5165\u6587\u6863\u5230\u300C{name}\u300D",tabFile:"\u6587\u4EF6",tabText:"\u6587\u672C",tabUrl:"URL",dropHint:"\u62D6\u62FD\u6587\u4EF6\u5230\u6B64\u5904\uFF0C\u6216\u70B9\u51FB\u9009\u62E9\uFF08\u53EF\u591A\u9009\uFF09",dropSupported:"\u652F\u6301 txt / md / pdf / docx / xlsx / html \u7B49\u683C\u5F0F\uFF0C\u5355\u6587\u4EF6 \u2264 50MB\uFF0C\u5355\u6B21\u2264 20 \u4E2A",selectedFile:"\u5DF2\u9009\u62E9\uFF1A{name}",selectedCount:"\u5DF2\u9009\u62E9 {count} \u4E2A\u6587\u4EF6\uFF08\u5355\u6B21\u6700\u591A {max} \u4E2A\uFF09",removeFile:"\u79FB\u9664",textContentLabel:"\u6587\u672C\u5185\u5BB9",textContentPlaceholder:"\u5728\u6B64\u7C98\u8D34\u8981\u5BFC\u5165\u7684\u6587\u672C\u5185\u5BB9...",textNameLabel:"\u6587\u6863\u540D\u79F0\uFF08\u53EF\u9009\uFF09",textNamePlaceholder:"\u7559\u7A7A\u5219\u81EA\u52A8\u547D\u540D",urlLabel:"\u7F51\u9875\u5730\u5740",urlPlaceholder:"https://example.com/page",chunkSettingsTitle:"\u5206\u5757\u8BBE\u7F6E",chunkSizeLabel:"\u5757\u5927\u5C0F\uFF08\u5B57\u7B26\uFF09",chunkOverlapLabel:"\u91CD\u53E0\uFF08\u5B57\u7B26\uFF09",ingestConfirm:"\u5F00\u59CB\u5BFC\u5165",ingesting:"\u6B63\u5728\u89E3\u6790\u5E76\u5411\u91CF\u5316\uFF0C\u9996\u6B21\u5BFC\u5165\u53EF\u80FD\u9700\u8981\u4E0B\u8F7D\u6A21\u578B\uFF0C\u8BF7\u7A0D\u5019...",progressParsing:"\u6B63\u5728\u89E3\u6790\u6587\u6863\u2026",progressChunking:"\u6B63\u5728\u5206\u5757\u2026",progressEmbedding:"\u6B63\u5728\u5411\u91CF\u5316 {current}/{total} \u5757\u2026",progressStoring:"\u6B63\u5728\u5199\u5165\u7D22\u5F15\u2026",ingestSuccess:"\u5BFC\u5165\u5B8C\u6210\uFF1A{name}\uFF08{chunks} \u4E2A\u5206\u5757\uFF09",ingestFailed:"\u5BFC\u5165\u5931\u8D25: {error}",fileRequired:"\u8BF7\u5148\u9009\u62E9\u6587\u4EF6",contentRequired:"\u8BF7\u8F93\u5165\u8981\u5BFC\u5165\u7684\u6587\u672C\u5185\u5BB9",urlRequired:"\u8BF7\u8F93\u5165\u7F51\u9875\u5730\u5740",fileTooLarge:"\u6587\u4EF6\u8FC7\u5927\uFF0C\u6700\u5927\u652F\u6301 50MB",fileTypeUnsupported:"\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\uFF1A{name}",maxBatchFiles:"\u5355\u6B21\u6700\u591A\u5BFC\u5165 {max} \u4E2A\u6587\u4EF6\uFF0C\u8BF7\u5206\u6279\u5BFC\u5165",importingBatch:"\u6B63\u5728\u5BFC\u5165 {current}/{total}\uFF1A{name}",batchAllSuccess:"\u6279\u91CF\u5BFC\u5165\u5B8C\u6210\uFF1A{count} \u4E2A\u6587\u6863\uFF08\u5171 {chunks} \u4E2A\u5206\u5757\uFF09",batchPartial:"\u5BFC\u5165\u5B8C\u6210\uFF1A\u6210\u529F {success} \u4E2A\uFF0C\u5931\u8D25 {fail} \u4E2A\uFF08\u9996\u4E2A\u9519\u8BEF\uFF1A{error}\uFF09",batchAllFailed:"\u5168\u90E8\u5BFC\u5165\u5931\u8D25\uFF1A{error}",docsTitle:"\u300C{name}\u300D\u7684\u6587\u6863",docsEmpty:"\u8FD8\u6CA1\u6709\u5BFC\u5165\u4EFB\u4F55\u6587\u6863",docChunkCount:"{count} \u5206\u5757",docDeleteConfirmTitle:"\u5220\u9664\u6587\u6863",docDeleteConfirm:"\u786E\u5B9A\u5220\u9664\u6587\u6863\u300C{name}\u300D\u5417\uFF1F\u8BE5\u6587\u6863\u7684\u6240\u6709\u5206\u5757\u5C06\u4ECE\u77E5\u8BC6\u5E93\u4E2D\u79FB\u9664\u3002",docDeleteSuccess:"\u6587\u6863\u5DF2\u5220\u9664",searchTitle:"\u68C0\u7D22\u6D4B\u8BD5",searchScope:"\u68C0\u7D22\u8303\u56F4\uFF1A\u300C{name}\u300D",searchQueryPlaceholder:"\u8F93\u5165\u67E5\u8BE2\u8BED\u53E5\uFF0C\u4F8B\u5982\uFF1A\u5982\u4F55\u5BFC\u51FA\u6570\u636E\uFF1F",searchBtn:"\u68C0\u7D22",searching:"\u68C0\u7D22\u4E2D...",searchTopKLabel:"\u8FD4\u56DE\u6761\u6570",searchThresholdLabel:"\u76F8\u4F3C\u5EA6\u9608\u503C",searchHitCount:"\u547D\u4E2D {count} \u6761",searchNoHits:"\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u5185\u5BB9\uFF0C\u53EF\u5C1D\u8BD5\u964D\u4F4E\u76F8\u4F3C\u5EA6\u9608\u503C\u3002",searchFallbackHint:"\u76F8\u4F3C\u5EA6\u5747\u4F4E\u4E8E\u9608\u503C\uFF0C\u4EE5\u4E0B\u4E3A\u6700\u4F73\u5339\u914D\uFF08\u4EC5\u4F9B\u53C2\u8003\uFF09\uFF1A",searchFailed:"\u68C0\u7D22\u5931\u8D25: {error}",expandFull:"\u5C55\u5F00\u5168\u6587",collapse:"\u6536\u8D77",scoreLabel:"\u76F8\u4F3C\u5EA6",opFailed:"\u64CD\u4F5C\u5931\u8D25: {error}"},contextBubble:{labelSelection:"\u9009\u4E2D\u5185\u5BB9",labelQuoted:"\u5F15\u7528",labelSkill:"\u6280\u80FD",labelMcp:"MCP",labelPage:"\u7F51\u9875",labelFile:"\u6587\u4EF6",labelKnowledge:"\u77E5\u8BC6\u5E93",clickToExpand:"\u70B9\u51FB\u5C55\u5F00",bubbleSkill:"{name} \u{1F9E9}",bubbleMcp:"{name} \u{1F50C}",bubblePage:"{title} \u{1F310}",bubbleKnowledge:"{name} \u{1F4DA} \xB7 \u547D\u4E2D {count} \u6761",bubbleKnowledgeMiss:"{name} \u{1F4DA} \xB7 \u672A\u547D\u4E2D",bubbleKnowledgeFailed:"{name} \u{1F4DA} \xB7 \u68C0\u7D22\u5931\u8D25",bubbleKnowledgeSearching:"\u6B63\u5728\u68C0\u7D22\u77E5\u8BC6\u5E93\u2026",kbHitToggle:"\u70B9\u51FB\u5C55\u5F00/\u6536\u8D77\u5168\u6587",kbHitTruncated:"\u2702 \u5DF2\u622A\u65AD \xB7 \u539F\u6587 {total} \u5B57\uFF0C\u524D {kept} \u5B57\u5DF2\u53D1\u9001",kbHitTruncatedTitle:"\u4E3A\u63A7\u5236\u4E0A\u4E0B\u6587\u4F53\u79EF\uFF0C\u5185\u5BB9\u622A\u65AD\u540E\u518D\u53D1\u9001\u7ED9\u6A21\u578B\uFF1B\u6B64\u5904\u663E\u793A\u7684\u5373\u6A21\u578B\u5B9E\u9645\u6536\u5230\u7684\u7248\u672C",kbHitTruncatedBadge:"\u2702 {count} \u6761\u5DF2\u622A\u65AD"},configDialog:{exportTitle:"\u5BFC\u51FA\u914D\u7F6E",includeSecrets:"\u5305\u542B API \u5BC6\u94A5",secretWarn:"\u26A0 \u654F\u611F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u6587\u4EF6\u5B89\u5168",exportDesc:"\u5BFC\u51FA\u6587\u4EF6\u5C06\u5305\u542B\u9664 Agent \u8FDE\u63A5\u4FE1\u606F\u5916\u7684\u6240\u6709\u914D\u7F6E\uFF0C\u53EF\u9009\u62E9\u662F\u5426\u5305\u542B API \u5BC6\u94A5\u3002",export:"\u5BFC\u51FA",importTitle:"\u5BFC\u5165\u914D\u7F6E",mergeImport:"\u5408\u5E76\u5BFC\u5165 \u2014 \u4EC5\u8986\u76D6\u6587\u4EF6\u4E2D\u5B58\u5728\u7684\u914D\u7F6E\u9879\uFF0C\u4FDD\u7559\u5176\u4ED6",replaceImport:"\u5B8C\u5168\u66FF\u6362 \u2014 \u6E05\u7A7A\u5F53\u524D\u914D\u7F6E\uFF0C\u4F7F\u7528\u6587\u4EF6\u4E2D\u7684\u914D\u7F6E",confirmImport:"\u786E\u8BA4\u5BFC\u5165",exportSuccess:"\u914D\u7F6E\u5DF2\u5BFC\u51FA",exportFailed:"\u5BFC\u51FA\u5931\u8D25: {error}",unknownTime:"\u672A\u77E5",importSummary:"\u5BFC\u51FA\u65F6\u95F4: {time}\uFF0C\u5305\u542B {count} \u9879\u914D\u7F6E",invalidFileFormat:"\u65E0\u6548\u7684\u6587\u4EF6\u683C\u5F0F",unrecognizedFormat:"\u65E0\u6CD5\u8BC6\u522B\u7684\u914D\u7F6E\u683C\u5F0F",unknownConfigKey:"\u672A\u77E5\u7684\u914D\u7F6E\u9879: {key}",importFailed:"\u5BFC\u5165\u5931\u8D25: {error}",importParseFailed:"\u5BFC\u5165\u5931\u8D25: \u65E0\u6CD5\u89E3\u6790\u6587\u4EF6\u683C\u5F0F",importedCount:"\u5DF2\u5BFC\u5165 {count} \u9879\u914D\u7F6E"}};var m={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",ok:"OK",save:"Save",delete:"Delete",edit:"Edit",retry:"Retry",loading:"Loading...",none:"None",add:"Add",clear:"Clear",selectAll:"Select All",deselectAll:"Deselect All",refresh:"Refresh",enabled:"Enabled",disabled:"Disabled",bytes:"bytes",copy:"Copy",copySuccess:"Copied",copyFailed:"Copy failed"},dialog:{operationConfirm:"Operation Confirmation",confirmDefaultMessage:"The model requests to execute a sensitive operation. Allow?",confirmAction:"The model requests to execute: {name}",remainingTime:"Time remaining: {time}",deny:"Deny",approveOnce:"Allow Once",approveLoop:"Allow for This Task",pendingQueue:"(+{count} queued)",pendingQueueClarify:"(+{count} awaiting clarification)",otherPending:"(+{count} other waiting)"},sensitiveTool:{manage_cookies:"Manage Cookies",manage_storage:"Page Storage Operation",download_file:"Download File",manage_tab:"Tab Management",agent_file:"File Operations",agent_exec:"Local Command Execution",debug_page:"Page Debugger",debuggerAttachHint:`
26
26
 
27
27
  After enabling, a yellow "extension is debugging this browser" infobar appears on the tab until the session ends.`,unknown:"Unknown Operation",tabInfo:`
28
28
 
@@ -46,4 +46,4 @@ You will need to pair again after deletion.`,deleteAgentTitle:"Delete Agent",age
46
46
 
47
47
  ## Execution steps
48
48
  1. Step 1
49
- 2. Step 2`,existingResources:"Existing resource files",skillNameRequired:"Please enter the Skill name",skillMarkdownRequired:"Please enter the SKILL.md content",agentSkillSaved:'Agent Skill "{name}" saved successfully',saveFailedShort:"Save failed",saveFailed:"Save failed: {error}",viewSkillTitle:"View Skill: {name}",importSkillTitle:"Import Skill",importBtn:"Import",jsonImport:"JSON Import",newAuthoring:"New Authoring",zipPackage:"Zip",urlImport:"URL Import",jsonImportDesc:"Import a Workflow Skill in JSON format (deterministic automated flow)",clickOrDragJson:"Click to select a JSON file or drag it here",jsonFileHint:"Supports .json Workflow Skill definition files",markdownImportDesc:"Write SKILL.md content directly to create an Agent Skill (AI capability extension)",zipImportDesc:"Import a Zip archive containing SKILL.md, with optional scripts/templates/assets resources",clickOrDragZip:"Click to select a Zip file or drag it here",zipFileHint:"The Zip must contain a SKILL.md file; optional scripts/ templates/ assets/ subdirectories",urlImportDesc:"Download a Skill Zip from a remote URL and import automatically",downloadUrl:"Download URL",selectJsonFile:"Please select a JSON file",workflowSkillImported:'Workflow Skill "{name}" imported successfully',agentSkillCreated:'Agent Skill "{name}" created successfully',createFailedShort:"Create failed",selectZipFile:"Please select a Zip file",fileTooLarge:"File too large; max 50MB supported",fileReadFailed:"File read failed",agentSkillImported:'Agent Skill "{name}" imported successfully',urlRequired:"Please enter a URL",importFailed:"Import failed: {error}",searchMcpPlaceholder:"Search MCP servers...",searchSkillPlaceholder:"Search skills...",filterAll:"All",filterEnabled:"Enabled",filterDisabled:"Disabled",noMatchResult:"No matching results"},memoryPanel:{tabTitle:"Memory",title:"Memory Vectors",enabled:"Enabled",disabled:"Disabled",statusTitle:"Vector index status",statusLoading:"Loading\u2026",statusOffline:"Agent is not connected, vector status unavailable",statusFail:"Failed to read vector status",statusOldAgent:"This agent version has no such status endpoint \u2014 restart the agent",statusDetail:"Response",statusIndexed:"Indexed {indexed} of {total}",statusStored:"Stored vector fingerprint",statusCurrent:"Current config fingerprint",statusTier:"Active tier",statusStale:"Stale: model changed without rebuild",statusFresh:"Matches current config",staleHint:"Old vectors are incomparable with the new config, so semantic recall degrades silently. Click \u201CRebuild vector index\u201D (save unsaved edits first).",modeLabel:"Embedding source",modeRemote:"Remote service (OpenAI-compatible API)",modeLocal:"Local model",baseUrlLabel:"Endpoint",baseUrlPlaceholder:"https://api.openai.com/v1",modelLabel:"Model name",modelPlaceholder:"BAAI/bge-m3",apiKeyLabel:"API Key",apiKeyPlaceholder:"Leave blank to keep the stored key",apiKeyClearBtn:"Clear stored key",apiKeyClearConfirm:"Remote semantic recall stops (falls back to keywords) until a new key is saved. Clear the stored key?",apiKeyCleared:"Stored API key cleared",apiKeyClearFail:"Failed to clear key: {error}",configNotLoaded:"Config failed to load. Refresh the panel before saving so the agent\u2019s stored settings are not overwritten with blanks",dimsLabel:"Vector dimensions (blank is fine, detected on test)",prefixLabel:"Query prefix (optional)",localNotice:"Local mode needs no connectivity test: save, then rebuild the vector index (the first run downloads the model and may take tens of minutes). Embeddings are silently truncated at 512 tokens, so only the head of an over-long entry is indexed.",testBtn:"Test connectivity",testRunning:"Testing\u2026",testOk:"OK: {model} returns {dims} dimensions",testFail:"Test failed: {error}",scopeHint:"Clicking the bottom \u201CSave\u201D also writes this tab\u2019s config into the agent service config.json; when the agent is offline this item is skipped and only extension settings are saved",saveSkippedOffline:"Agent not connected \u2014 memory vector config was not saved (only extension settings saved)",saveSuccess:"Memory vector config saved",saveFail:"Save failed: {error}",toggleOnSaved:"Semantic vector recall enabled",toggleOffSaved:"Semantic vector recall disabled - recall falls back to keywords",toggleFail:"Failed to toggle: {error}",reindexBtn:"Rebuild vector index",reindexConfirm:"Rebuilding recomputes vectors for every memory with the current config. On local mode 41 entries measured about 23 minutes (remote about 2). Keep this page open. Continue?",reindexRunning:"Rebuilding, please keep this page open\u2026",reindexDone:"Rebuild done: indexed {indexed} of {total}",reindexBatchFail:" ({count} batches failed, see agent logs)",reindexOverWindow:" ({count} entries exceed the {window}-token window, their tails are not indexed)",reindexSkipped:"Rebuild skipped: vector tier is disabled",reindexFail:"Rebuild failed: {error}",gateAgentOffTitle:"Agent not connected",gateAgentOffBody:'Memory vector config is provided by the local agent. Connect an agent in the "Agent" tab first, then come back here.',gateRagTitle:"Local model dependency missing",gateRagMissing:'Local models require the RAG dependency. Install it in the "Extensions" panel first, then come back here.',goToAgentTab:'Go to "Agent" tab',goToToolboxTab:'Go to "Extensions" tab'},memoryEntries:{title:"Memory Entries",refreshBtn:"Refresh",searchPlaceholder:"Search content or tags\u2026",filterAll:"All types",filterFact:"Facts",filterSummary:"Summaries",sortCreatedDesc:"Created (newest first)",sortImportanceDesc:"Importance (high \u2192 low)",sortValueDesc:"Value (high \u2192 low)",sortValueAsc:"Value (low \u2192 high)",count:"{shown} of {total}",loading:"Loading\u2026",empty:"No memories yet",noMatch:"No entries match the filter",offline:"Agent not connected - memory entries unavailable",unsupported:"This agent version does not support memory entry management - upgrade and restart the agent",loadFail:"Failed to load memory entries: {error}",importanceShort:"Imp",valueShort:"Value",createdLabel:"Created",lastAccessLabel:"Last accessed",neverAccessed:"never",accessCount:"{count} accesses",tagsLabel:"Tags",editBtn:"Edit",deleteBtn:"Delete",editTitle:"Edit memory entry",typeLabel:"Type",contentLabel:"Content",importanceLabel:"Importance (1-10)",tagsPlaceholder:"comma-separated, e.g. environment, preference",saveBtn:"Save",cancelBtn:"Cancel",contentEmpty:"Content cannot be empty",saved:"Memory updated",saveFail:"Update failed: {error}",deleteConfirm:"Delete this memory? It cannot be undone, and its vector cache entry is dropped as well.",deleted:"Memory deleted",deleteFail:"Delete failed: {error}",candidatesHint:"{count} low-value memories are suggested for removal (value below 10)",compactBtn:"Compact now",compactConfirm:"Compacting deletes {count} memories with value below {threshold}. This cannot be undone. Continue?",compactDone:"Compact done: removed {facts} facts and {summaries} summaries",compactFail:"Compact failed: {error}"},knowledge:{tabTitle:"Knowledge",gateAgentOffTitle:"Agent not connected",gateAgentOffDesc:'Knowledge base is provided by the local agent. Connect an agent in the "Agent" tab first, then come back here.',gateRagOffTitle:"Knowledge base feature is disabled",gateRagOffDesc:'Turn on the "Knowledge Retrieval" master switch above to create and manage knowledge bases.',gateRagUnavailableTitle:"Agent capability not ready",gateRagUnavailableDesc:"RAG dependencies are not installed or the Node version is unsupported (Node 22+ required). See the install guide below.",goToAgentTab:'Go to "Agent" tab',goToToolboxTab:'Go to "Extensions" tab',enableNow:"Enable Now",title:"Knowledge Bases",createBtn:"+ New Knowledge Base",searchPlaceholder:"Search knowledge bases...",emptyTitle:"No knowledge base yet",emptyDesc:'Click "New Knowledge Base" to create one, then import documents to get started.',loadFailed:"Failed to load: {error}",retry:"Retry",statsSummary:"{docs} docs \xB7 {chunks} chunks",modeLocal:"Local model",modeRemote:"Remote service",actionEdit:"Edit",actionIngest:"Import",actionSearch:"Test Search",actionDocs:"Docs",actionDelete:"Delete",actionEnable:"Enable",actionDisable:"Disable",badgeDisabled:"Disabled",enableSuccess:'Knowledge base "{name}" enabled',disableSuccess:'Knowledge base "{name}" disabled',createTitle:"New Knowledge Base",nameLabel:"Name",namePlaceholder:"e.g. Product Docs",descLabel:"Description (optional)",descPlaceholder:"Briefly describe what this knowledge base contains",createConfirm:"Create",creating:"Creating...",createSuccess:'Knowledge base "{name}" created',nameRequired:"Please enter a name",editTitle:"Edit Knowledge Base",editConfirm:"Save",saving:"Saving...",editSuccess:"Knowledge base updated",vectorSectionTitle:"Embedding model",vectorModeLocal:"Local model (bundled BGE Chinese model)",vectorModeRemote:"Remote service (OpenAI-compatible API)",vectorModeLocalHint:"Use the agent-bundled BGE Chinese model. No extra config needed; the model file downloads on first import.",vectorModeRemoteHint:"Call a remote OpenAI-compatible embedding service (SiliconFlow, Zhipu, OpenAI, etc.).",vectorEndpointLabel:"Endpoint (Base URL with version segment)",vectorEndpointPlaceholder:"e.g. https://api.siliconflow.cn/v1",vectorApiKeyLabel:"API Key",vectorApiKeyPlaceholder:"Paste API key",vectorApiKeyKeep:"Leave empty to keep the saved key",vectorModelLabel:"Model name",vectorModelPlaceholder:"e.g. BAAI/bge-m3",vectorDimsLabel:"Dimensions (optional, auto-detected on test)",vectorDimsPlaceholder:"Auto",vectorTestBtn:"Test Connection",vectorTesting:"Testing...",vectorTestOk:"Connected: {model} ({dims} dims)",vectorDimsFilled:"Dimensions auto-filled: {dims}",vectorTestFailed:"Test failed: {error}",vectorEndpointRequired:"Remote endpoint is required",vectorModelRequired:"Model name is required",rebuildConfirmTitle:"Change Embedding Config",rebuildConfirm:"Changing the embedding model or chunk settings requires rebuilding the index (all documents will be re-embedded). The old index stays searchable during the rebuild and switches automatically when done. Continue?",rebuildStarted:"Index rebuild started, refreshing when complete...",progressRebuilding:"Rebuilding index {current}/{total} documents\u2026",rebuildDone:"Index rebuild complete",rebuildFailed:"Index rebuild failed: {error}",deleteConfirmTitle:"Delete Knowledge Base",deleteConfirm:'Delete "{name}"? Its {docs} documents and {chunks} chunks will be removed permanently.',deleteSuccess:"Knowledge base deleted",ingestTitle:'Import documents into "{name}"',tabFile:"File",tabText:"Text",tabUrl:"URL",dropHint:"Drag & drop a file here, or click to choose",dropSupported:"Supports txt / md / pdf / docx / xlsx / html, up to 50MB per file",selectedFile:"Selected: {name}",textContentLabel:"Text content",textContentPlaceholder:"Paste the text to import here...",textNameLabel:"Document name (optional)",textNamePlaceholder:"Leave empty to auto-name",urlLabel:"Web page URL",urlPlaceholder:"https://example.com/page",chunkSettingsTitle:"Chunk settings",chunkSizeLabel:"Chunk size (chars)",chunkOverlapLabel:"Overlap (chars)",ingestConfirm:"Start Import",ingesting:"Parsing and embedding. The first import may download the model, please wait...",progressParsing:"Parsing document\u2026",progressChunking:"Splitting into chunks\u2026",progressEmbedding:"Embedding chunks {current}/{total}\u2026",progressStoring:"Writing to index\u2026",ingestSuccess:"Imported: {name} ({chunks} chunks)",ingestFailed:"Import failed: {error}",fileRequired:"Please choose a file first",contentRequired:"Please enter the text content",urlRequired:"Please enter the URL",fileTooLarge:"File too large, 50MB max",docsTitle:'Documents in "{name}"',docsEmpty:"No documents imported yet",docChunkCount:"{count} chunks",docDeleteConfirmTitle:"Delete Document",docDeleteConfirm:'Delete document "{name}"? All its chunks will be removed from the knowledge base.',docDeleteSuccess:"Document deleted",searchTitle:"Test Search",searchScope:'Scope: "{name}"',searchQueryPlaceholder:"Enter a query, e.g. How to export data?",searchBtn:"Search",searching:"Searching...",searchTopKLabel:"Top K",searchThresholdLabel:"Threshold",searchHitCount:"{count} hits",searchNoHits:"No hits. Try lowering the similarity threshold.",searchFallbackHint:"All scores are below the threshold. Best matches for reference:",searchFailed:"Search failed: {error}",expandFull:"Expand",collapse:"Collapse",scoreLabel:"Score",opFailed:"Operation failed: {error}"},contextBubble:{labelSelection:"Selection",labelQuoted:"Quote",labelSkill:"Skill",labelMcp:"MCP",labelPage:"Page",labelFile:"File",labelKnowledge:"Knowledge",clickToExpand:"Click to expand",bubbleSkill:"{name} \u{1F9E9}",bubbleMcp:"{name} \u{1F50C}",bubblePage:"{title} \u{1F310}",bubbleKnowledge:"{name} \u{1F4DA} \xB7 {count} hits",bubbleKnowledgeMiss:"{name} \u{1F4DA} \xB7 no match",bubbleKnowledgeFailed:"{name} \u{1F4DA} \xB7 retrieval failed",bubbleKnowledgeSearching:"Searching knowledge base\u2026",kbHitToggle:"Click to expand/collapse",kbHitTruncated:"\u2702 Truncated \xB7 {total} chars total, first {kept} sent",kbHitTruncatedTitle:"Truncated to fit the context window; what is shown here is exactly what the model received",kbHitTruncatedBadge:"\u2702 {count} truncated"},configDialog:{exportTitle:"Export Settings",includeSecrets:"Include API keys",secretWarn:"\u26A0 Sensitive information; keep the file safe",exportDesc:"The exported file will contain all settings except Agent connection info. You can choose whether to include API keys.",export:"Export",importTitle:"Import Settings",mergeImport:"Merge import \u2014 only overwrite settings present in the file; keep the rest",replaceImport:"Full replace \u2014 clear current settings and use the file content",confirmImport:"Confirm Import",exportSuccess:"Settings exported",exportFailed:"Export failed: {error}",unknownTime:"Unknown",importSummary:"Exported at: {time}, containing {count} settings",invalidFileFormat:"Invalid file format",unrecognizedFormat:"Unrecognized settings format",unknownConfigKey:"Unknown setting key: {key}",importFailed:"Import failed: {error}",importParseFailed:"Import failed: cannot parse file format",importedCount:"Imported {count} settings"}};var f="zh";var u=f,l={zh:d,en:m};function p(e,n){if(!e||!n)return;let t=n.split("."),o=e;for(let a of t){if(o==null||typeof o!="object")return;o=o[a]}return typeof o=="string"?o:void 0}function g(e,n){return!n||typeof e!="string"?e:e.replace(/\{(\w+)\}/g,(t,o)=>n[o]!==void 0&&n[o]!==null?String(n[o]):t)}function i(e,n){let t=p(l[u],e);if(t!==void 0)return g(t,n);if(u!=="en"){let o=p(l.en,e);if(o!==void 0)return g(o,n)}return e}function s(e,n){l[e]||(l[e]={}),l[e]=h(l[e],n)}function h(e,n){for(let t of Object.keys(n||{}))n[t]&&typeof n[t]=="object"&&!Array.isArray(n[t])?((!e[t]||typeof e[t]!="object")&&(e[t]={}),h(e[t],n[t])):e[t]=n[t];return e}s("zh",{offscreen:{copiedToClipboard:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyFailed:"\u590D\u5236\u5931\u8D25: {error}",pasteFailed:"\u65E0\u6CD5\u8BFB\u53D6\u526A\u8D34\u677F\uFF1A{error}"}});s("en",{offscreen:{copiedToClipboard:"Copied to clipboard",copyFailed:"Copy failed: {error}",pasteFailed:"Cannot read clipboard: {error}"}});chrome.runtime.onMessage.addListener((e,n,t)=>{if(e.type==="COPY_TO_CLIPBOARD")return navigator.clipboard.writeText(e.text).then(()=>{t({success:!0,message:i("offscreen.copiedToClipboard")})}).catch(o=>{try{let a=document.getElementById("clipboard-textarea");a.value=e.text,a.select();let r=document.execCommand("copy");a.value="",t(r?{success:!0,message:i("offscreen.copiedToClipboard")}:{success:!1,error:i("offscreen.copyFailed",{error:o.message||o})})}catch(a){t({success:!1,error:i("offscreen.copyFailed",{error:a.message||a})})}}),!0;if(e.type==="PASTE_FROM_CLIPBOARD")return navigator.clipboard.readText().then(o=>{t({success:!0,text:o})}).catch(o=>{try{let a=document.getElementById("clipboard-textarea");a.value="",a.focus();let r=document.execCommand("paste"),c=a.value;a.value="",t(r&&c?{success:!0,text:c}:{success:!1,error:i("offscreen.pasteFailed",{error:o.message||o})})}catch(a){t({success:!1,error:i("offscreen.pasteFailed",{error:a.message||a})})}}),!0});})();
49
+ 2. Step 2`,existingResources:"Existing resource files",skillNameRequired:"Please enter the Skill name",skillMarkdownRequired:"Please enter the SKILL.md content",agentSkillSaved:'Agent Skill "{name}" saved successfully',saveFailedShort:"Save failed",saveFailed:"Save failed: {error}",viewSkillTitle:"View Skill: {name}",importSkillTitle:"Import Skill",importBtn:"Import",jsonImport:"JSON Import",newAuthoring:"New Authoring",zipPackage:"Zip",urlImport:"URL Import",jsonImportDesc:"Import a Workflow Skill in JSON format (deterministic automated flow)",clickOrDragJson:"Click to select a JSON file or drag it here",jsonFileHint:"Supports .json Workflow Skill definition files",markdownImportDesc:"Write SKILL.md content directly to create an Agent Skill (AI capability extension)",zipImportDesc:"Import a Zip archive containing SKILL.md, with optional scripts/templates/assets resources",clickOrDragZip:"Click to select a Zip file or drag it here",zipFileHint:"The Zip must contain a SKILL.md file; optional scripts/ templates/ assets/ subdirectories",urlImportDesc:"Download a Skill Zip from a remote URL and import automatically",downloadUrl:"Download URL",selectJsonFile:"Please select a JSON file",workflowSkillImported:'Workflow Skill "{name}" imported successfully',agentSkillCreated:'Agent Skill "{name}" created successfully',createFailedShort:"Create failed",selectZipFile:"Please select a Zip file",fileTooLarge:"File too large; max 50MB supported",fileReadFailed:"File read failed",agentSkillImported:'Agent Skill "{name}" imported successfully',urlRequired:"Please enter a URL",importFailed:"Import failed: {error}",searchMcpPlaceholder:"Search MCP servers...",searchSkillPlaceholder:"Search skills...",filterAll:"All",filterEnabled:"Enabled",filterDisabled:"Disabled",noMatchResult:"No matching results"},memoryPanel:{tabTitle:"Memory",title:"Memory Vectors",enabled:"Enabled",disabled:"Disabled",statusTitle:"Vector index status",statusLoading:"Loading\u2026",statusOffline:"Agent is not connected, vector status unavailable",statusFail:"Failed to read vector status",statusOldAgent:"This agent version has no such status endpoint \u2014 restart the agent",statusDetail:"Response",statusIndexed:"Indexed {indexed} of {total}",statusStored:"Stored vector fingerprint",statusCurrent:"Current config fingerprint",statusTier:"Active tier",statusStale:"Stale: model changed without rebuild",statusFresh:"Matches current config",staleHint:"Old vectors are incomparable with the new config, so semantic recall degrades silently. Click \u201CRebuild vector index\u201D (save unsaved edits first).",modeLabel:"Embedding source",modeRemote:"Remote service (OpenAI-compatible API)",modeLocal:"Local model",baseUrlLabel:"Endpoint",baseUrlPlaceholder:"https://api.openai.com/v1",modelLabel:"Model name",modelPlaceholder:"BAAI/bge-m3",apiKeyLabel:"API Key",apiKeyPlaceholder:"Leave blank to keep the stored key",apiKeyClearBtn:"Clear stored key",apiKeyClearConfirm:"Remote semantic recall stops (falls back to keywords) until a new key is saved. Clear the stored key?",apiKeyCleared:"Stored API key cleared",apiKeyClearFail:"Failed to clear key: {error}",configNotLoaded:"Config failed to load. Refresh the panel before saving so the agent\u2019s stored settings are not overwritten with blanks",dimsLabel:"Vector dimensions (blank is fine, detected on test)",prefixLabel:"Query prefix (optional)",localNotice:"Local mode needs no connectivity test: save, then rebuild the vector index (the first run downloads the model and may take tens of minutes). Embeddings are silently truncated at 512 tokens, so only the head of an over-long entry is indexed.",testBtn:"Test connectivity",testRunning:"Testing\u2026",testOk:"OK: {model} returns {dims} dimensions",testFail:"Test failed: {error}",scopeHint:"Clicking the bottom \u201CSave\u201D also writes this tab\u2019s config into the agent service config.json; when the agent is offline this item is skipped and only extension settings are saved",saveSkippedOffline:"Agent not connected \u2014 memory vector config was not saved (only extension settings saved)",saveSuccess:"Memory vector config saved",saveFail:"Save failed: {error}",toggleOnSaved:"Semantic vector recall enabled",toggleOffSaved:"Semantic vector recall disabled - recall falls back to keywords",toggleFail:"Failed to toggle: {error}",reindexBtn:"Rebuild vector index",reindexConfirm:"Rebuilding recomputes vectors for every memory with the current config. On local mode 41 entries measured about 23 minutes (remote about 2). Keep this page open. Continue?",reindexRunning:"Rebuilding, please keep this page open\u2026",reindexDone:"Rebuild done: indexed {indexed} of {total}",reindexBatchFail:" ({count} batches failed, see agent logs)",reindexOverWindow:" ({count} entries exceed the {window}-token window, their tails are not indexed)",reindexSkipped:"Rebuild skipped: vector tier is disabled",reindexFail:"Rebuild failed: {error}",gateAgentOffTitle:"Agent not connected",gateAgentOffBody:'Memory vector config is provided by the local agent. Connect an agent in the "Agent" tab first, then come back here.',gateRagTitle:"Local model dependency missing",gateRagMissing:'Local models require the RAG dependency. Install it in the "Extensions" panel first, then come back here.',goToAgentTab:'Go to "Agent" tab',goToToolboxTab:'Go to "Extensions" tab'},memoryEntries:{title:"Memory Entries",refreshBtn:"Refresh",searchPlaceholder:"Search content or tags\u2026",filterAll:"All types",filterFact:"Facts",filterSummary:"Summaries",sortCreatedDesc:"Created (newest first)",sortImportanceDesc:"Importance (high \u2192 low)",sortValueDesc:"Value (high \u2192 low)",sortValueAsc:"Value (low \u2192 high)",count:"{shown} of {total}",loading:"Loading\u2026",empty:"No memories yet",noMatch:"No entries match the filter",offline:"Agent not connected - memory entries unavailable",unsupported:"This agent version does not support memory entry management - upgrade and restart the agent",loadFail:"Failed to load memory entries: {error}",importanceShort:"Imp",valueShort:"Value",createdLabel:"Created",lastAccessLabel:"Last accessed",neverAccessed:"never",accessCount:"{count} accesses",tagsLabel:"Tags",editBtn:"Edit",deleteBtn:"Delete",editTitle:"Edit memory entry",typeLabel:"Type",contentLabel:"Content",importanceLabel:"Importance (1-10)",tagsPlaceholder:"comma-separated, e.g. environment, preference",saveBtn:"Save",cancelBtn:"Cancel",contentEmpty:"Content cannot be empty",saved:"Memory updated",saveFail:"Update failed: {error}",deleteConfirm:"Delete this memory? It cannot be undone, and its vector cache entry is dropped as well.",deleted:"Memory deleted",deleteFail:"Delete failed: {error}",candidatesHint:"{count} low-value memories are suggested for removal (value below 10)",compactBtn:"Compact now",compactConfirm:"Compacting deletes {count} memories with value below {threshold}. This cannot be undone. Continue?",compactDone:"Compact done: removed {facts} facts and {summaries} summaries",compactFail:"Compact failed: {error}"},knowledge:{tabTitle:"Knowledge",gateAgentOffTitle:"Agent not connected",gateAgentOffDesc:'Knowledge base is provided by the local agent. Connect an agent in the "Agent" tab first, then come back here.',gateRagOffTitle:"Knowledge base feature is disabled",gateRagOffDesc:'Turn on the "Knowledge Retrieval" master switch above to create and manage knowledge bases.',gateRagUnavailableTitle:"Agent capability not ready",gateRagUnavailableDesc:"RAG dependencies are not installed or the Node version is unsupported (Node 22+ required). See the install guide below.",goToAgentTab:'Go to "Agent" tab',goToToolboxTab:'Go to "Extensions" tab',enableNow:"Enable Now",title:"Knowledge Bases",createBtn:"+ New Knowledge Base",searchPlaceholder:"Search knowledge bases...",emptyTitle:"No knowledge base yet",emptyDesc:'Click "New Knowledge Base" to create one, then import documents to get started.',loadFailed:"Failed to load: {error}",retry:"Retry",statsSummary:"{docs} docs \xB7 {chunks} chunks",modeLocal:"Local model",modeRemote:"Remote service",actionEdit:"Edit",actionIngest:"Import",actionSearch:"Test Search",actionDocs:"Docs",actionDelete:"Delete",actionEnable:"Enable",actionDisable:"Disable",badgeDisabled:"Disabled",enableSuccess:'Knowledge base "{name}" enabled',disableSuccess:'Knowledge base "{name}" disabled',createTitle:"New Knowledge Base",nameLabel:"Name",namePlaceholder:"e.g. Product Docs",descLabel:"Description (optional)",descPlaceholder:"Briefly describe what this knowledge base contains",createConfirm:"Create",creating:"Creating...",createSuccess:'Knowledge base "{name}" created',nameRequired:"Please enter a name",editTitle:"Edit Knowledge Base",editConfirm:"Save",saving:"Saving...",editSuccess:"Knowledge base updated",vectorSectionTitle:"Embedding model",vectorModeLocal:"Local model (bundled BGE Chinese model)",vectorModeRemote:"Remote service (OpenAI-compatible API)",vectorModeLocalHint:"Use the agent-bundled BGE Chinese model. No extra config needed; the model file downloads on first import.",vectorModeRemoteHint:"Call a remote OpenAI-compatible embedding service (SiliconFlow, Zhipu, OpenAI, etc.).",vectorEndpointLabel:"Endpoint (Base URL with version segment)",vectorEndpointPlaceholder:"e.g. https://api.siliconflow.cn/v1",vectorApiKeyLabel:"API Key",vectorApiKeyPlaceholder:"Paste API key",vectorApiKeyKeep:"Leave empty to keep the saved key",vectorModelLabel:"Model name",vectorModelPlaceholder:"e.g. BAAI/bge-m3",vectorDimsLabel:"Dimensions (optional, auto-detected on test)",vectorDimsPlaceholder:"Auto",vectorTestBtn:"Test Connection",vectorTesting:"Testing...",vectorTestOk:"Connected: {model} ({dims} dims)",vectorDimsFilled:"Dimensions auto-filled: {dims}",vectorTestFailed:"Test failed: {error}",vectorEndpointRequired:"Remote endpoint is required",vectorModelRequired:"Model name is required",rebuildConfirmTitle:"Change Embedding Config",rebuildConfirm:"Changing the embedding model or chunk settings requires rebuilding the index (all documents will be re-embedded). The old index stays searchable during the rebuild and switches automatically when done. Continue?",rebuildStarted:"Index rebuild started, refreshing when complete...",progressRebuilding:"Rebuilding index {current}/{total} documents\u2026",rebuildDone:"Index rebuild complete",rebuildFailed:"Index rebuild failed: {error}",deleteConfirmTitle:"Delete Knowledge Base",deleteConfirm:'Delete "{name}"? Its {docs} documents and {chunks} chunks will be removed permanently.',deleteSuccess:"Knowledge base deleted",ingestTitle:'Import documents into "{name}"',tabFile:"File",tabText:"Text",tabUrl:"URL",dropHint:"Drag & drop files here, or click to choose (multiple allowed)",dropSupported:"Supports txt / md / pdf / docx / xlsx / html, up to 50MB per file, 20 files per batch",selectedFile:"Selected: {name}",selectedCount:"Selected {count} file(s) (max {max} per batch)",removeFile:"Remove",textContentLabel:"Text content",textContentPlaceholder:"Paste the text to import here...",textNameLabel:"Document name (optional)",textNamePlaceholder:"Leave empty to auto-name",urlLabel:"Web page URL",urlPlaceholder:"https://example.com/page",chunkSettingsTitle:"Chunk settings",chunkSizeLabel:"Chunk size (chars)",chunkOverlapLabel:"Overlap (chars)",ingestConfirm:"Start Import",ingesting:"Parsing and embedding. The first import may download the model, please wait...",progressParsing:"Parsing document\u2026",progressChunking:"Splitting into chunks\u2026",progressEmbedding:"Embedding chunks {current}/{total}\u2026",progressStoring:"Writing to index\u2026",ingestSuccess:"Imported: {name} ({chunks} chunks)",ingestFailed:"Import failed: {error}",fileRequired:"Please choose a file first",contentRequired:"Please enter the text content",urlRequired:"Please enter the URL",fileTooLarge:"File too large, 50MB max",fileTypeUnsupported:"Unsupported file type: {name}",maxBatchFiles:"Up to {max} files per batch; please import in smaller batches",importingBatch:"Importing {current}/{total}: {name}",batchAllSuccess:"Batch import done: {count} documents ({chunks} chunks)",batchPartial:"Import done: {success} succeeded, {fail} failed (first error: {error})",batchAllFailed:"All imports failed: {error}",docsTitle:'Documents in "{name}"',docsEmpty:"No documents imported yet",docChunkCount:"{count} chunks",docDeleteConfirmTitle:"Delete Document",docDeleteConfirm:'Delete document "{name}"? All its chunks will be removed from the knowledge base.',docDeleteSuccess:"Document deleted",searchTitle:"Test Search",searchScope:'Scope: "{name}"',searchQueryPlaceholder:"Enter a query, e.g. How to export data?",searchBtn:"Search",searching:"Searching...",searchTopKLabel:"Top K",searchThresholdLabel:"Threshold",searchHitCount:"{count} hits",searchNoHits:"No hits. Try lowering the similarity threshold.",searchFallbackHint:"All scores are below the threshold. Best matches for reference:",searchFailed:"Search failed: {error}",expandFull:"Expand",collapse:"Collapse",scoreLabel:"Score",opFailed:"Operation failed: {error}"},contextBubble:{labelSelection:"Selection",labelQuoted:"Quote",labelSkill:"Skill",labelMcp:"MCP",labelPage:"Page",labelFile:"File",labelKnowledge:"Knowledge",clickToExpand:"Click to expand",bubbleSkill:"{name} \u{1F9E9}",bubbleMcp:"{name} \u{1F50C}",bubblePage:"{title} \u{1F310}",bubbleKnowledge:"{name} \u{1F4DA} \xB7 {count} hits",bubbleKnowledgeMiss:"{name} \u{1F4DA} \xB7 no match",bubbleKnowledgeFailed:"{name} \u{1F4DA} \xB7 retrieval failed",bubbleKnowledgeSearching:"Searching knowledge base\u2026",kbHitToggle:"Click to expand/collapse",kbHitTruncated:"\u2702 Truncated \xB7 {total} chars total, first {kept} sent",kbHitTruncatedTitle:"Truncated to fit the context window; what is shown here is exactly what the model received",kbHitTruncatedBadge:"\u2702 {count} truncated"},configDialog:{exportTitle:"Export Settings",includeSecrets:"Include API keys",secretWarn:"\u26A0 Sensitive information; keep the file safe",exportDesc:"The exported file will contain all settings except Agent connection info. You can choose whether to include API keys.",export:"Export",importTitle:"Import Settings",mergeImport:"Merge import \u2014 only overwrite settings present in the file; keep the rest",replaceImport:"Full replace \u2014 clear current settings and use the file content",confirmImport:"Confirm Import",exportSuccess:"Settings exported",exportFailed:"Export failed: {error}",unknownTime:"Unknown",importSummary:"Exported at: {time}, containing {count} settings",invalidFileFormat:"Invalid file format",unrecognizedFormat:"Unrecognized settings format",unknownConfigKey:"Unknown setting key: {key}",importFailed:"Import failed: {error}",importParseFailed:"Import failed: cannot parse file format",importedCount:"Imported {count} settings"}};var f="zh";var u=f,l={zh:d,en:m};function p(e,n){if(!e||!n)return;let t=n.split("."),o=e;for(let a of t){if(o==null||typeof o!="object")return;o=o[a]}return typeof o=="string"?o:void 0}function g(e,n){return!n||typeof e!="string"?e:e.replace(/\{(\w+)\}/g,(t,o)=>n[o]!==void 0&&n[o]!==null?String(n[o]):t)}function i(e,n){let t=p(l[u],e);if(t!==void 0)return g(t,n);if(u!=="en"){let o=p(l.en,e);if(o!==void 0)return g(o,n)}return e}function s(e,n){l[e]||(l[e]={}),l[e]=h(l[e],n)}function h(e,n){for(let t of Object.keys(n||{}))n[t]&&typeof n[t]=="object"&&!Array.isArray(n[t])?((!e[t]||typeof e[t]!="object")&&(e[t]={}),h(e[t],n[t])):e[t]=n[t];return e}s("zh",{offscreen:{copiedToClipboard:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyFailed:"\u590D\u5236\u5931\u8D25: {error}",pasteFailed:"\u65E0\u6CD5\u8BFB\u53D6\u526A\u8D34\u677F\uFF1A{error}"}});s("en",{offscreen:{copiedToClipboard:"Copied to clipboard",copyFailed:"Copy failed: {error}",pasteFailed:"Cannot read clipboard: {error}"}});chrome.runtime.onMessage.addListener((e,n,t)=>{if(e.type==="COPY_TO_CLIPBOARD")return navigator.clipboard.writeText(e.text).then(()=>{t({success:!0,message:i("offscreen.copiedToClipboard")})}).catch(o=>{try{let a=document.getElementById("clipboard-textarea");a.value=e.text,a.select();let r=document.execCommand("copy");a.value="",t(r?{success:!0,message:i("offscreen.copiedToClipboard")}:{success:!1,error:i("offscreen.copyFailed",{error:o.message||o})})}catch(a){t({success:!1,error:i("offscreen.copyFailed",{error:a.message||a})})}}),!0;if(e.type==="PASTE_FROM_CLIPBOARD")return navigator.clipboard.readText().then(o=>{t({success:!0,text:o})}).catch(o=>{try{let a=document.getElementById("clipboard-textarea");a.value="",a.focus();let r=document.execCommand("paste"),c=a.value;a.value="",t(r&&c?{success:!0,text:c}:{success:!1,error:i("offscreen.pasteFailed",{error:o.message||o})})}catch(a){t({success:!1,error:i("offscreen.pasteFailed",{error:a.message||a})})}}),!0});})();
package/dist/options.html CHANGED
@@ -5,13 +5,13 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title data-i18n="settings.docTitle">AI Helper - 配置</title>
7
7
  <script type="module" crossorigin src="/assets/theme-CLwYsx9o.js"></script>
8
- <script type="module" crossorigin src="/assets/i18n-ouMgDZ2t.js"></script>
9
- <script type="module" crossorigin src="/assets/model-profiles-6dzdrSS4.js"></script>
10
- <script type="module" crossorigin src="/assets/version-BrT5Y9A7.js"></script>
8
+ <script type="module" crossorigin src="/assets/i18n-D9_2eWuQ.js"></script>
9
+ <script type="module" crossorigin src="/assets/model-profiles-DfZDoMBc.js"></script>
10
+ <script type="module" crossorigin src="/assets/version-8JfKpCto.js"></script>
11
11
  <script type="module" crossorigin src="/assets/network-scope-CNRYXk74.js"></script>
12
12
  <script type="module" crossorigin src="/assets/options.js"></script>
13
13
  <link rel="stylesheet" crossorigin href="/assets/theme-BRAX5X2F.css">
14
- <link rel="stylesheet" crossorigin href="/assets/options-Cp1UMkjK.css">
14
+ <link rel="stylesheet" crossorigin href="/assets/options-BuHUzyz4.css">
15
15
  </head>
16
16
  <body>
17
17
  <div class="container">
@@ -6,12 +6,12 @@
6
6
  <title data-i18n="header.docTitle">AI Helper - 模型问答</title>
7
7
  <script type="module" crossorigin src="/assets/theme-CLwYsx9o.js"></script>
8
8
  <script type="module" crossorigin src="/assets/chunk-CMxvf4Kt.js"></script>
9
- <script type="module" crossorigin src="/assets/i18n-ouMgDZ2t.js"></script>
10
- <script type="module" crossorigin src="/assets/session-store-CmGs_rhh.js"></script>
11
- <script type="module" crossorigin src="/assets/model-profiles-6dzdrSS4.js"></script>
12
- <script type="module" crossorigin src="/assets/version-BrT5Y9A7.js"></script>
13
- <script type="module" crossorigin src="/assets/agent-store-Ce3f4Ya3.js"></script>
14
- <script type="module" crossorigin src="/assets/utils-9i9g8vW8.js"></script>
9
+ <script type="module" crossorigin src="/assets/i18n-D9_2eWuQ.js"></script>
10
+ <script type="module" crossorigin src="/assets/session-store-CEnfKdIz.js"></script>
11
+ <script type="module" crossorigin src="/assets/model-profiles-DfZDoMBc.js"></script>
12
+ <script type="module" crossorigin src="/assets/version-8JfKpCto.js"></script>
13
+ <script type="module" crossorigin src="/assets/agent-store-Cqyodrcc.js"></script>
14
+ <script type="module" crossorigin src="/assets/utils-DP0OkHUf.js"></script>
15
15
  <script type="module" crossorigin src="/assets/side_panel.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="/assets/theme-BRAX5X2F.css">
17
17
  <link rel="stylesheet" crossorigin href="/assets/side_panel.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-helper-agent",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "AI Helper Agent - Local file access and system command execution proxy for Chrome extension / AI Helper 代理服务,为 Chrome 扩展提供本地文件读写和系统命令执行",
5
5
  "type": "module",
6
6
  "main": "./src/server.js",
@@ -1 +0,0 @@
1
- *{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-subtle);color:var(--text-primary);padding:30px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.container{background:var(--bg-surface);max-width:600px;box-shadow:0 2px 12px rgba(var(--overlay-rgb), .1);border-radius:12px;margin:0 auto;padding:30px}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.header-left h1{color:var(--brand-500);text-align:left;margin-top:0;margin-bottom:6px;font-size:24px}.header-left .subtitle{color:var(--text-tertiary);text-align:left;margin-bottom:0;font-size:14px}.header-actions{flex-shrink:0;gap:8px;padding-top:6px;display:flex}.icon-btn{border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer;width:38px;height:38px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:relative}.icon-btn:hover{background:var(--border-subtle);color:var(--brand-500);border-color:var(--brand-500)}.icon-btn svg{pointer-events:none;width:18px;height:18px}.form-group{margin-bottom:20px}label{color:var(--text-secondary);margin-bottom:8px;font-weight:500;display:block}label .hint{color:var(--text-tertiary);font-size:12px;font-weight:400}label .info-icon{text-align:center;background:var(--brand-gradient);width:16px;height:16px;color:var(--text-on-brand);cursor:help;vertical-align:middle;border-radius:50%;margin-left:4px;font-size:11px;line-height:16px;display:inline-block}input[type=text],input[type=url],input[type=password],input[type=number],textarea{border:1px solid var(--border-default);background-color:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:8px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}input[type=text]::placeholder,input[type=url]::placeholder,input[type=password]::placeholder,input[type=number]::placeholder,textarea::placeholder{color:var(--text-tertiary)}input[type=text]:focus,input[type=url]:focus,input[type=password]:focus,input[type=number]:focus,textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}select{border:1px solid var(--border-default);background-color:var(--bg-surface);width:100%;color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><polygon points='0,2 10,2 5,8' fill='%23999'/></svg>");background-position:right 12px center;background-repeat:no-repeat;border-radius:8px;padding:12px 40px 12px 12px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}textarea{resize:vertical;height:120px;min-height:80px}.btn{cursor:pointer;border:none;border-radius:8px;padding:12px 30px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{background:var(--brand-gradient);color:var(--text-on-brand);width:100%}.btn-primary:hover{box-shadow:0 4px 12px rgba(var(--brand-rgb), .4);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-save{cursor:pointer;background:var(--brand-gradient);width:100%;color:var(--text-on-brand);box-shadow:0 4px 15px rgba(var(--brand-rgb), .3);border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:14px 0;font-size:15px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.btn-save .save-icon{flex-shrink:0;width:20px;height:20px;transition:transform .3s}.btn-save:hover{box-shadow:0 8px 25px rgba(var(--brand-rgb), .5);transform:translateY(-2px)}.btn-save:hover .save-icon{transform:scale(1.1)}.btn-save:active{transition:transform .1s;transform:scale(.98)}.btn-save .save-shine{pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:60%;height:100%;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.btn-save:hover .save-shine{animation:.6s ease-out saveShine}@keyframes saveShine{0%{left:-100%}to{left:150%}}.btn-save.saved{background:linear-gradient(135deg, var(--toast-success) 0%, var(--success-strong) 100%);pointer-events:none;box-shadow:0 4px 20px rgba(var(--success-rgb), .4)}.btn-save.saved .save-icon{animation:.5s ease-out savePulse}@keyframes savePulse{0%{transform:scale(1)}30%{transform:scale(1.3)}to{transform:scale(1)}}.save-bar{z-index:50;background:var(--bg-surface);margin-top:8px;padding:12px 24px 24px;transition:box-shadow .2s;position:sticky;bottom:0}.save-bar.floating{box-shadow:0 -6px 16px rgba(var(--overlay-rgb), .1)}.status{border-radius:8px;margin-top:20px;padding:12px 16px;font-size:14px;display:none}.status.success{background:var(--success-soft-bg);color:var(--success-strong);border:1px solid var(--success-soft-border);display:block}.status.error{background:var(--danger-soft-bg);color:var(--danger-500);border:1px solid var(--danger-soft-bg);display:block}.info-box{background:var(--info-soft-bg);border:1px solid var(--info-soft-border);border-radius:8px;margin-bottom:20px;padding:16px}.info-box h3{color:var(--info-strong);margin-bottom:10px;font-size:14px}.info-box p{color:var(--text-secondary);font-size:13px;line-height:1.6}.info-box code{background:var(--border-default);border-radius:4px;padding:2px 6px;font-family:Consolas,Monaco,monospace;font-size:12px}.agent-install-guide{background:var(--success-soft-bg);border:1px solid var(--success-soft-border);border-radius:8px;margin-top:15px;margin-bottom:20px;padding:16px}.agent-install-guide h3{color:var(--success-strong);margin:0;font-size:14px}.agent-install-guide-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.agent-install-guide-header .btn{flex-shrink:0;width:auto;margin:0}.agent-install-guide-hint{color:var(--text-secondary);margin:10px 0 14px;font-size:13px;line-height:1.6}.agent-install-cmd-row{align-items:stretch;gap:8px;margin-bottom:10px;display:flex}.agent-install-cmd-row:last-child{margin-bottom:0}.agent-install-cmd-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.agent-install-os-label{color:var(--text-secondary);font-size:12px;font-weight:600}.agent-install-cmd{background:var(--border-default);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;border-radius:4px;padding:8px 10px;font-family:Consolas,Monaco,monospace;font-size:12px}.agent-install-copy-btn{flex-shrink:0;align-self:flex-end;width:auto;min-width:64px;margin:0}.warning-box{background:var(--warning-soft-bg);border:1px solid var(--warning-soft-border);border-radius:8px;margin-bottom:20px;padding:16px}.warning-box h3{color:var(--warning-text-soft);margin-bottom:8px;font-size:14px}.warning-box p{color:var(--warning-text-soft);font-size:13px;line-height:1.6}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.collapsible-header:hover{opacity:.85}.collapsible-arrow{color:inherit;font-size:10px;transition:transform .2s}.collapsible-header.open .collapsible-arrow,.collapsible.open .collapsible-arrow{transform:rotate(90deg)}.toast-container{z-index:100000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{background:var(--toast-neutral);color:var(--text-on-brand);box-shadow:0 4px 12px var(--shadow-lg);opacity:0;pointer-events:auto;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:200px;padding:12px 24px;font-size:13px;transition:opacity .3s,transform .3s;display:flex;transform:translateY(-20px)}.toast.toast-show{opacity:1;transform:translateY(0)}.toast.success{background:var(--toast-success)}.toast.error{background:var(--fill-danger)}.toast.warning{background:var(--toast-warning);color:var(--text-primary)}.toast.info{background:var(--fill-info)}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.model-selector{position:relative}.model-selector input{border:1px solid var(--border-default);background:var(--bg-surface);border-radius:8px;width:100%;padding:12px 40px 12px 12px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}.model-selector input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}.model-selector:after{content:"▼";color:var(--text-tertiary);pointer-events:none;font-size:10px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.model-dropdown{background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:0 4px 12px var(--shadow-sm);z-index:1000;border-radius:8px;max-height:240px;display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow:hidden auto}.model-dropdown.show{display:block}.model-dropdown-empty{color:var(--text-tertiary);text-align:center;padding:10px 12px;font-size:13px}.model-option{color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 12px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:background .2s;display:flex}.model-option:last-child{border-bottom:none}.model-option:hover{background:var(--bg-subtle)}.model-option.selected{color:var(--brand-500);background:var(--brand-soft-bg);font-weight:500}.model-option .delete-model-btn{color:var(--danger-500);cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1;transition:opacity .2s;display:none}.model-option:hover .delete-model-btn{opacity:1;display:inline-block}.model-option .delete-model-btn:hover{opacity:1;color:var(--danger-strong)}.model-option .model-ctx-badge{background:var(--info-soft-bg);color:var(--brand-500);white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:8px;padding:1px 6px;font-family:Consolas,Monaco,monospace;font-size:11px}.model-option .model-ctx-badge.is-auto{background:var(--border-subtle);border:1px dashed var(--text-disabled);color:var(--text-tertiary);padding:0 5px}.model-option-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.model-option .ctx-set-btn{color:var(--text-tertiary);cursor:pointer;opacity:.75;background:0 0;border:none;align-items:center;padding:0 2px;line-height:1;transition:opacity .2s,color .2s;display:inline-flex}.model-option .ctx-set-btn svg{pointer-events:none;display:block}.model-option .ctx-set-btn:hover{opacity:1;color:var(--brand-500)}.model-option .ctx-set-btn:focus-visible{outline:2px solid rgba(var(--brand-rgb), .4);outline-offset:2px;border-radius:3px}.ctx-popover{z-index:1200;box-sizing:border-box;background:var(--bg-surface);border:1px solid var(--border-default);width:240px;box-shadow:0 4px 12px var(--shadow-sm);border-radius:8px;padding:12px;position:fixed}.ctx-popover-title-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.ctx-popover-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1;font-family:Consolas,Monaco,monospace;font-size:12px;overflow:hidden}.ctx-popover-auto-btn{color:var(--brand-500);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:12px;transition:background .2s}.ctx-popover-auto-btn:hover{background:var(--brand-soft-bg)}.ctx-popover-value-row{align-items:baseline;gap:6px;margin-bottom:8px;display:flex}.ctx-popover-value{color:var(--brand-500);font-family:Consolas,Monaco,monospace;font-size:18px;font-weight:600}.ctx-popover-value.is-auto{color:var(--text-tertiary)}.ctx-popover-auto-tag{color:var(--text-tertiary);background:var(--border-subtle);border-radius:4px;padding:1px 6px;font-size:11px}.ctx-popover-slider{appearance:none;cursor:pointer;--ctx-fill:0%;background:0 0;outline:none;width:100%;height:14px;margin:0}.ctx-popover-slider::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--brand-500) 0%, var(--brand-500) var(--ctx-fill), var(--info-soft-bg) var(--ctx-fill), var(--info-soft-bg) 100%);border-radius:2px;height:4px}.ctx-popover-slider::-webkit-slider-thumb{appearance:none;background:var(--brand-500);border:2px solid var(--border-default);width:14px;height:14px;box-shadow:0 1px 3px var(--shadow-lg);cursor:grab;border-radius:50%;margin-top:-5px}.ctx-popover-slider:active::-webkit-slider-thumb{cursor:grabbing}.ctx-popover-slider:focus-visible{outline:2px solid rgba(var(--brand-rgb), .4);outline-offset:4px;border-radius:2px}.ctx-popover-scale{pointer-events:none;justify-content:space-between;align-items:center;height:6px;margin:2px 5.5px 0;display:flex}.ctx-popover-scale-dot{background:var(--bg-subtle);border-radius:50%;width:3px;height:3px;transition:transform .12s,background .12s}.ctx-popover-scale-dot.is-active{background:var(--brand-500);transform:scale(1.6)}.ctx-popover-scale-labels{color:var(--text-tertiary);pointer-events:none;justify-content:space-between;margin-top:3px;font-family:Consolas,Monaco,monospace;font-size:10px;line-height:1;display:flex}.model-option-right .model-ctx-badge{margin-left:0}.model-option-left{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.api-base-url-hint{color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;font-family:Consolas,Monaco,monospace;font-size:11px}.profile-switcher-row{align-items:center;gap:8px;display:flex}.profile-switcher-row .profile-selector{flex:1;min-width:0}.profile-actions{flex-shrink:0;gap:6px;display:flex}.profile-action-btn{border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:12px;transition:all .2s}.profile-action-btn:hover{border-color:var(--brand-500);color:var(--brand-500);background:var(--brand-soft-bg)}.profile-action-danger:hover{border-color:var(--danger-500);color:var(--danger-500);background:var(--danger-soft-bg)}.profile-option{color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;transition:background .2s;display:flex}.profile-option:last-child{border-bottom:none}.profile-option:hover{background:var(--bg-subtle)}.profile-option.selected{color:var(--brand-500);background:var(--brand-soft-bg);font-weight:500}.profile-option-left{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-option-right{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:55%;font-family:Consolas,Monaco,monospace;font-size:11px;overflow:hidden}#profileGroup{margin-bottom:12px}.profile-scope{background:var(--bg-subtle);border-radius:0 10px 10px 0;margin:0 0 20px;padding:12px 14px 0 18px;position:relative}.profile-scope:before{content:"";background:linear-gradient(180deg, var(--brand-500), var(--brand-accent));border-radius:3px;width:3px;position:absolute;top:0;bottom:0;left:0}.profile-scope-hint{color:var(--text-tertiary);-webkit-user-select:none;user-select:none;margin-bottom:12px;font-size:12px}.profile-scope>.form-group{margin-bottom:16px}.profile-scope>.form-group:last-child{margin-bottom:14px}.selected-ctx-badge{background:var(--info-soft-bg);color:var(--brand-500);white-space:nowrap;z-index:1;pointer-events:none;border-radius:4px;padding:2px 6px;font-family:Consolas,Monaco,monospace;font-size:11px;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.add-model-section{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.add-model-section>.add-model-toggle-btn{flex:auto;width:auto;min-width:0}.add-model-section>.add-model-form{flex:1 0 100%}.fetch-models-btn{white-space:nowrap}.add-model-toggle-btn{border:1px dashed var(--brand-500);color:var(--brand-500);cursor:pointer;text-align:center;background:0 0;border-radius:6px;width:100%;padding:6px 12px;font-size:13px;transition:all .2s}.add-model-toggle-btn:hover{background:var(--brand-soft-bg);border-style:solid}.add-model-form{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:12px;display:flex}.add-model-form input{border:1px solid var(--border-default);border-radius:6px;padding:8px 12px;font-family:Consolas,Monaco,monospace;font-size:13px}.add-model-form input:focus{border-color:var(--brand-500);box-shadow:0 0 0 2px rgba(var(--brand-rgb), .15);outline:none}.add-model-form-actions{justify-content:flex-end;gap:8px;display:flex}.add-model-form-actions .btn-primary{background:var(--brand-500);color:var(--text-on-brand);cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-size:13px;transition:background .2s}.add-model-form-actions .btn-primary:hover{background:var(--brand-600)}.add-model-form-actions .btn-cancel{background:var(--border-subtle);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;min-width:56px;padding:6px 16px;font-size:13px;transition:background .2s}.add-model-form-actions .btn-cancel:hover{background:var(--border-default)}.token-input-wrapper{align-items:center;display:flex;position:relative}.token-input-wrapper input{border:1px solid var(--border-default);border-radius:8px;width:100%;padding:12px 45px 12px 12px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}.token-input-wrapper input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}.toggle-token-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;transition:color .2s;display:flex;position:absolute;right:8px}.toggle-token-btn:hover{color:var(--brand-500)}.tools-config{border-top:2px solid var(--border-default);margin-top:30px;padding-top:20px}.tools-config h2{color:var(--brand-500);margin-bottom:10px;font-size:18px}.tools-config .subtitle{margin-bottom:20px}.tool-item{border:1px solid var(--border-default);border-radius:8px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px;transition:border-color .2s;display:flex}.tool-item:hover{border-color:var(--brand-500)}.tool-item input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--brand-500);margin-top:3px}.tool-item-content{flex:1}.tool-item-name{color:var(--text-primary);margin-bottom:4px;font-weight:500}.tool-item-desc{color:var(--text-tertiary);font-size:12px;line-height:1.4}.tool-item-name code{background:var(--border-subtle);color:var(--brand-500);border-radius:4px;padding:2px 6px;font-family:Consolas,Monaco,monospace;font-size:12px}.system-prompt-wrapper{position:relative}.reset-system-prompt-btn{background:rgba(var(--brand-rgb), .1);cursor:pointer;color:var(--brand-500);z-index:10;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px 8px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.reset-system-prompt-btn:hover{background:rgba(var(--brand-rgb), .2)}.react-config{margin-top:0}.react-config h2{color:var(--brand-500);margin-bottom:10px;font-size:18px}.react-config .subtitle{margin-bottom:20px}.react-config-item{margin-bottom:15px}.react-config-item label{align-items:center;gap:8px;margin-bottom:5px;display:flex}.react-config-item .hint-text{color:var(--text-tertiary);font-size:12px;font-weight:400}.react-config-item input[type=number]{border:1px solid var(--border-default);border-radius:8px;width:100%;padding:10px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}.react-config-item input[type=number]:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}.react-config-item .range-labels{color:var(--text-tertiary);justify-content:space-between;margin-top:3px;font-size:11px;display:flex}.react-config-item .unit{color:var(--text-tertiary);margin-left:4px;font-size:12px}.chat-config{border-top:2px solid var(--border-default);margin-top:30px;padding-top:20px}.chat-config h2{color:var(--brand-500);margin-bottom:10px;font-size:18px}.chat-config .subtitle{margin-bottom:20px}.chat-config-item{margin-bottom:15px}.chat-config-item label{align-items:center;gap:8px;margin-bottom:5px;display:flex}.chat-config-item .hint-text{color:var(--text-tertiary);font-size:12px;font-weight:400}.chat-config-item input[type=number]{border:1px solid var(--border-default);border-radius:8px;width:100%;padding:10px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}.chat-config-item input[type=number]:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}.chat-config-item .range-labels{color:var(--text-tertiary);justify-content:space-between;margin-top:3px;font-size:11px;display:flex}.chat-config-item .unit{color:var(--text-tertiary);margin-left:4px;font-size:12px}.toggle-label{cursor:pointer;align-items:center;gap:10px;display:flex}.toggle-label input[type=checkbox]{appearance:none;background:var(--border-subtle);cursor:pointer;width:40px;height:22px;box-shadow:inset 0 0 0 1px rgba(var(--overlay-rgb), .12);border-radius:11px;transition:background .3s;position:relative}.toggle-label input[type=checkbox]:before{content:"";background:var(--bg-surface);width:18px;height:18px;box-shadow:0 1px 3px var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;font-weight:700;line-height:1;transition:transform .3s;display:flex;position:absolute;top:2px;left:2px}.toggle-label input[type=checkbox]:checked{background:var(--brand-500)}.toggle-label input[type=checkbox]:checked:before{content:"✓";color:var(--brand-500);transform:translate(18px)}.toggle-label .toggle-text{color:var(--text-primary);font-weight:500}.toggle-label:has(input:disabled){cursor:not-allowed;opacity:.5}.toggle-label input[type=checkbox]:disabled{cursor:not-allowed}.toolbar-config{margin-top:0}.toolbar-config h2{color:var(--brand-500);margin-bottom:10px;font-size:18px}.toolbar-config .subtitle{margin-bottom:20px}.toolbar-tools-list{margin-top:15px}.tool-item{border:1px solid var(--border-default);background:var(--bg-subtle);border-radius:8px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;transition:border-color .2s,background .2s;display:flex}.tool-item:hover{border-color:var(--brand-500);background:var(--brand-soft-bg)}.tool-item .tool-drag-handle{cursor:grab;color:var(--text-tertiary);letter-spacing:-2px;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;padding:2px 4px;font-size:14px;display:flex}.tool-item .tool-drag-handle:active{cursor:grabbing}.tool-item.dragging{opacity:.4}.tool-item.drag-over{border-color:var(--brand-500);background:var(--brand-soft-bg)}.tool-item .tool-order-btns{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.tool-item .tool-order-btn{width:20px;height:16px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:10px;line-height:1;display:flex}.tool-item .tool-order-btn:hover{background:var(--border-default);color:var(--text-primary)}.tool-item .tool-order-btn:disabled{opacity:.3;cursor:not-allowed}.tool-item .tool-info{flex:1;min-width:0}.tool-item .tool-name{color:var(--text-primary);font-size:14px;font-weight:500}.tool-item .tool-badge{border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:400;display:inline-block}.tool-item .tool-badge.builtin{background:var(--info-soft-bg);color:var(--brand-500)}.tool-item .tool-badge.custom{background:var(--warning-soft-bg);color:var(--warning-strong)}.tool-item .tool-prompt-preview{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:300px;margin-top:2px;font-size:12px;overflow:hidden}.tool-item .tool-actions{flex-shrink:0;gap:4px;display:flex}.tool-item .tool-action-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px;transition:background .15s}.tool-item .tool-action-btn:hover{background:var(--border-default);color:var(--text-primary)}.tool-item .tool-action-btn.danger:hover{background:var(--danger-soft-bg);color:var(--danger-500)}.btn-secondary{background:var(--border-subtle);color:var(--text-secondary);border:1px dashed var(--border-strong);cursor:pointer;border-radius:8px;padding:10px 20px;font-family:inherit;font-size:13px;transition:all .2s}.btn-secondary:hover{background:var(--border-subtle);border-color:var(--brand-500);color:var(--brand-500)}.btn-cancel{background:var(--border-subtle);color:var(--text-secondary);cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-family:inherit;font-size:13px}.btn-cancel:hover{background:var(--border-default)}.domain-blocklist-section{border-top:2px solid var(--border-default);margin-top:20px;padding-top:16px}.domain-blocklist-title{color:var(--brand-500);margin-bottom:4px;font-size:15px}.domain-add-row{gap:8px;margin-top:12px;margin-bottom:12px;display:flex}.domain-add-input{border:1px solid var(--border-strong);border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .2s}.domain-add-input:focus{border-color:var(--brand-500)}.domain-blocklist-list{max-height:200px;overflow-y:auto}.domain-blocklist-empty{text-align:center;color:var(--text-tertiary);padding:16px;font-size:13px}.domain-blocklist-item{border:1px solid var(--border-default);background:var(--bg-subtle);color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px;font-size:13px;transition:border-color .2s,background .2s;display:flex}.domain-blocklist-item:hover{border-color:var(--brand-500);background:var(--brand-soft-bg)}.domain-blocklist-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:8px;overflow:hidden}.domain-blocklist-item-remove{color:var(--text-disabled);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px 8px;font-size:12px;transition:all .15s;display:flex}.domain-blocklist-item-remove:hover{color:var(--danger-500);background:var(--danger-soft-bg)}.modal-overlay{background:var(--scrim);z-index:10000;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--bg-surface);width:90%;max-width:500px;box-shadow:0 8px 30px var(--shadow-md);border-radius:12px;padding:24px}.modal-content h3{color:var(--text-primary);margin-bottom:16px;font-size:16px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3{color:var(--text-primary);margin-bottom:0;font-size:16px}.modal-close-btn{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;transition:all .15s;display:flex}.modal-close-btn:hover{background:var(--border-subtle);color:var(--text-primary)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-actions .btn{width:auto;padding:8px 24px}.modal-actions .btn-primary{background:var(--brand-gradient);width:auto;color:var(--text-on-brand);padding:8px 24px}.modal-actions .btn-secondary{width:auto;padding:8px 24px}.import-tabs{border-bottom:2px solid var(--border-default);gap:4px;margin-bottom:20px;padding:0 2px;display:flex}.import-tab{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:8px 16px;font-family:inherit;font-size:13px;transition:all .2s}.import-tab:hover{color:var(--text-secondary);background:var(--bg-subtle)}.import-tab.active{color:var(--brand-500);border-bottom-color:var(--brand-500);background:var(--brand-soft-bg);font-weight:600}.import-panel{display:none}.import-panel.active{display:block}.import-panel-desc{color:var(--text-tertiary);margin-bottom:16px;font-size:13px;line-height:1.5}.upload-drop-zone{border:2px dashed var(--border-default);text-align:center;cursor:pointer;background:var(--bg-subtle);border-radius:10px;padding:28px 20px;transition:all .2s}.upload-drop-zone:hover{border-color:var(--brand-500);background:var(--brand-soft-bg)}.upload-drop-zone.has-file{border-style:solid;border-color:var(--success-strong);background:var(--success-soft-bg)}.upload-drop-zone .upload-icon{margin-bottom:8px;font-size:32px;display:block}.upload-drop-zone .upload-text{color:var(--text-secondary);font-size:13px}.upload-drop-zone .upload-hint{color:var(--text-disabled);margin-top:4px;font-size:11px}.upload-drop-zone .file-name{color:var(--success-strong);margin-top:4px;font-size:13px;font-weight:500}.upload-drop-zone input[type=file]{display:none}.url-input-wrapper{align-items:center;display:flex;position:relative}.url-input-wrapper .url-input-icon{z-index:1;pointer-events:none;font-size:14px;position:absolute;left:12px}.url-input-wrapper input[type=url]{padding-left:34px}.agent-skill-editor-container{flex-direction:column;max-height:85vh;display:flex;overflow:hidden}.agent-skill-editor-container .modal-body{flex:1;margin-bottom:16px;padding-right:4px;overflow-y:auto}.agent-skill-editor-container .modal-header{justify-content:center;position:relative}.agent-skill-editor-container .modal-header .modal-close-btn{position:absolute;top:-4px;right:-4px}.skill-resource-list{flex-wrap:wrap;gap:6px;display:flex}.skill-resource-tag{background:var(--brand-soft-bg);border:1px solid var(--brand-soft-border);color:var(--text-secondary);border-radius:4px;padding:4px 10px;font-family:monospace;font-size:12px;display:inline-block}.skill-section-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:16px 0 8px;font-size:13px;font-weight:600}.skill-section-title:first-child{padding-top:0}.skill-card-badge{border-radius:3px;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.badge-workflow{background:var(--brand-soft-bg);color:var(--brand-500)}.badge-agent{background:var(--success-soft-bg);color:var(--success-strong)}.badge-disabled{background:var(--warning-soft-bg);color:var(--warning-strong)}.badge-builtin{background:var(--brand-violet-soft-bg);color:var(--brand-violet-600)}.skill-card-workflow{border-left:3px solid var(--brand-500)}.skill-card-agent{border-left:3px solid var(--success-strong)}.skill-card.skill-disabled{opacity:.6;background:var(--bg-subtle);border-left-color:var(--text-tertiary)}.skill-card-body.disabled{opacity:.6}.skill-card-body.disabled .skill-card-desc,.skill-card-body.disabled .skill-card-params{display:none}.skill-card.skill-disabled .skill-card-name{color:var(--text-tertiary)}.param-required{color:var(--danger-500);font-size:11px;font-weight:500}.param-optional{color:var(--text-tertiary);font-size:11px}.skill-run-summary{background:var(--bg-subtle);color:var(--text-secondary);border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.skill-run-step{border:1px solid var(--border-default);border-radius:6px;margin-bottom:8px;overflow:hidden}.skill-run-step.step-success{border-left:3px solid var(--success-strong)}.skill-run-step.step-error{border-left:3px solid var(--danger-500)}.skill-run-step.step-skipped{border-left:3px solid var(--border-strong);opacity:.7}.skill-run-step .step-header{background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:8px 12px;display:flex}.skill-run-step .step-status-icon{text-align:center;width:20px;font-size:14px;font-weight:700}.step-success .step-status-icon{color:var(--success-strong)}.step-error .step-status-icon{color:var(--danger-500)}.step-skipped .step-status-icon{color:var(--text-tertiary)}.skill-run-step .step-title{flex:1;font-size:13px;font-weight:500}.skill-run-step .step-tool-tag{background:var(--border-subtle);color:var(--text-secondary);border-radius:3px;padding:1px 6px;font-family:Consolas,Monaco,monospace;font-size:11px}.skill-run-step .step-output{white-space:pre-wrap;word-break:break-all;background:var(--bg-surface);max-height:200px;color:var(--text-primary);margin:0;padding:10px 12px;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;overflow-y:auto}#toolbarMaxVisible{border:1px solid var(--border-default);border-radius:8px;width:100%;padding:10px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:border-color .2s,box-shadow .2s}#toolbarMaxVisible:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15);outline:none}.tab-nav{border-bottom:2px solid var(--border-default);flex-wrap:wrap;gap:4px 2px;margin-bottom:24px;padding-bottom:0;display:flex}.tab-nav-btn{color:var(--text-tertiary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;flex:auto;margin-bottom:-2px;padding:10px 4px;font-family:inherit;font-size:14px;transition:all .2s;overflow:hidden}.tab-nav-btn:hover{color:var(--text-secondary);background:var(--bg-subtle)}.tab-nav-btn.active{color:var(--brand-500);border-bottom-color:var(--brand-500);font-weight:500}.tab-panel{display:none}.tab-panel.active{display:block}@media (width<=640px){.tab-nav-btn{padding:10px 3px;font-size:13px}}.toolbar-title-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.toolbar-title-row h2{color:var(--brand-500);margin:0;font-size:18px}.toolbar-config.disabled .toolbar-config-body{display:none}.toolbar-config.disabled .subtitle,.toolbar-config.disabled .hint{opacity:.4}.agent-config{margin-top:0}.agent-config h2{color:var(--brand-500);margin-bottom:10px;font-size:18px}.agent-config .subtitle{margin-bottom:20px}.agent-status{border-radius:8px;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.agent-status-row{align-items:center;gap:12px;margin-bottom:20px;display:flex}.agent-status-row .agent-status{flex:1;margin-bottom:0}.agent-status-row #disconnectGroup{flex-shrink:0;margin-bottom:0}.agent-status.connected{background:var(--success-soft-bg);border:1px solid var(--success-soft-border);color:var(--success-strong)}.agent-status.disconnected{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-bg);color:var(--danger-500)}.agent-status.checking{background:var(--warning-soft-bg);border:1px solid var(--warning-soft-bg);color:var(--warning-500)}.agent-status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:10px;height:10px}.agent-info{background:var(--brand-soft-bg);border:1px solid var(--brand-soft-border);color:var(--text-secondary);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.agent-detail-toggle{border:1px dashed var(--border-default);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:6px;margin-bottom:8px;padding:8px 14px;font-size:13px;transition:all .2s}.agent-detail-toggle:hover{background:var(--bg-subtle);border-color:var(--text-tertiary);color:var(--text-secondary)}.agent-detail-toggle.open{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.agent-detail-panel{background:var(--bg-subtle);border:1px dashed var(--border-default);color:var(--text-secondary);border-top:none;border-radius:0 0 6px 6px;margin-bottom:16px;padding:12px 14px;font-size:13px;display:none}.detail-row{border-bottom:1px solid var(--border-subtle);padding:5px 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-tertiary);flex:0 0 120px;font-weight:500}.detail-value{word-break:break-all;flex:1;line-height:1.6}.detail-value code{background:var(--border-subtle);border-radius:3px;padding:1px 6px;font-size:12px}.paired-agents-section{margin-bottom:20px}.paired-agents-section h3{color:var(--brand-500);margin-bottom:10px;font-size:14px}.paired-agents-list{flex-direction:column;gap:8px;display:flex}.paired-agent-item{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;transition:all .2s;display:flex}.paired-agent-item:hover,.paired-agent-item.active{border-color:var(--brand-500);background:var(--brand-soft-bg)}.paired-agent-item.active{flex-wrap:wrap}.paired-agent-item.active>#agentDetailArea{border-top:1px dashed var(--border-default);flex-basis:100%;width:100%;margin-top:6px;padding-top:8px}.paired-agent-item.active>#agentDetailArea .agent-status-row{margin-bottom:8px}.paired-agent-item.active>#agentDetailArea .agent-status{margin-bottom:0;padding:8px 12px;font-size:13px}.paired-agent-item.active>#agentDetailArea .agent-info{margin-bottom:8px;padding:6px 10px;font-size:12px}.paired-agent-item.active>#agentDetailArea .agent-detail-toggle{margin-bottom:6px;padding:6px 10px;font-size:12px}.paired-agent-item.active>#agentDetailArea .agent-detail-panel{margin-bottom:0;font-size:12px}.paired-agent-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:all .2s}.paired-agent-dot.online{border:2.5px solid var(--success-500);background:0 0}.paired-agent-dot.offline{border:2.5px solid var(--border-default);background:0 0}.paired-agent-dot.checking{border:2.5px solid var(--warning-500);background:0 0}.paired-agent-dot.active-online{background:var(--success-500);box-shadow:0 0 0 3px rgba(var(--success-rgb), .2)}.paired-agent-dot.active-offline{background:var(--border-default);box-shadow:0 0 0 3px rgba(var(--overlay-rgb), .3)}.paired-agent-dot.active-checking{background:var(--warning-500);box-shadow:0 0 0 3px rgba(var(--warning-rgb), .2)}.paired-agent-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;cursor:text;border-radius:4px;flex:1;padding:2px 4px;font-size:14px;font-weight:500;transition:background .15s;overflow:hidden}.paired-agent-name:hover{background:rgba(var(--brand-rgb), .08)}.paired-agent-url{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:11px;overflow:hidden}.paired-agent-actions{flex-shrink:0;gap:6px;display:flex}.paired-agent-btn{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:4px 12px;font-size:12px;transition:all .15s}.paired-agent-btn:hover{background:var(--brand-500);color:var(--text-inverse);border-color:var(--brand-500)}.paired-agent-btn.delete-btn{color:var(--danger-500);border-color:var(--danger-soft-bg);background:var(--danger-soft-bg)}.paired-agent-btn.delete-btn:hover{background:var(--fill-danger);color:var(--text-inverse);border-color:var(--fill-danger)}.paired-agent-btn.disconnect-btn{color:var(--danger-500);border-color:var(--danger-soft-bg);background:var(--danger-soft-bg)}.paired-agent-btn.disconnect-btn:hover{background:var(--fill-danger);color:var(--text-inverse);border-color:var(--fill-danger)}.paired-agent-status-text{flex-shrink:0;font-size:11px}.paired-agent-status-text.online{color:var(--success-500)}.paired-agent-status-text.connected{color:var(--success-500);font-weight:600}.paired-agent-status-text.offline{color:var(--text-tertiary)}.paired-agent-status-text.disabled{color:var(--text-tertiary);font-style:italic}.paired-agent-item.disabled{opacity:.6}.paired-agent-item.disabled .paired-agent-name{text-decoration:line-through}.paired-agent-dot.disabled{border:2.5px solid var(--text-tertiary);background:0 0}.paired-agent-dot.active-disabled{background:var(--text-tertiary);box-shadow:0 0 0 3px rgba(var(--overlay-rgb), .2)}.paired-agent-btn.disable-btn{color:var(--text-secondary);border-color:var(--border-default);background:var(--bg-subtle)}.paired-agent-btn.disable-btn:hover{background:var(--border-subtle);color:var(--text-secondary);border-color:var(--border-default)}.paired-agent-btn.enable-btn{color:var(--info-strong);border-color:var(--info-soft-border);background:var(--info-soft-bg)}.paired-agent-btn.enable-btn:hover{background:var(--fill-info);color:var(--text-inverse);border-color:var(--fill-info)}.add-agent-section{border-top:1px solid var(--border-subtle);margin-top:4px;padding-top:16px}.add-agent-section h3{color:var(--brand-500);margin-bottom:12px;font-size:14px}.toolbox-agent-status{border-radius:8px;align-items:center;gap:8px;margin-bottom:20px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.toolbox-agent-status.connected{background:var(--success-soft-bg);border:1px solid var(--success-soft-border);color:var(--success-strong)}.toolbox-agent-status.disconnected{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-bg);color:var(--danger-500)}.toolbox-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.toolbox-status-dot.connected{background:var(--success-strong)}.toolbox-status-dot.disconnected{background:var(--danger-500)}.toolbox-section{margin-bottom:24px}.toolbox-section-header{margin-bottom:12px}.toolbox-section-title-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.toolbox-section-title{color:var(--brand-500);margin:0;font-size:16px}.toolbox-tool-count{color:var(--text-tertiary);background:var(--brand-soft-bg);white-space:nowrap;border-radius:10px;margin-left:10px;padding:2px 8px;font-size:12px}.toolbox-section-desc{color:var(--text-tertiary);font-size:12px}.global-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:8px;display:flex}.global-toggle input{display:none}.global-toggle-slider{background:var(--border-subtle);width:40px;height:22px;box-shadow:inset 0 0 0 1px rgba(var(--overlay-rgb), .12);border-radius:11px;transition:background .2s;position:relative}.global-toggle-slider:after{content:"";background:var(--bg-surface);width:18px;height:18px;box-shadow:0 1px 3px var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:1;transition:transform .2s;display:flex;position:absolute;top:2px;left:2px}.global-toggle input:checked+.global-toggle-slider{background:var(--brand-500)}.global-toggle input:checked+.global-toggle-slider:after{content:"✓";color:var(--brand-500);transform:translate(18px)}.global-toggle-label{color:var(--text-secondary);min-width:48px;font-size:13px}.theme-segment{border:1px solid var(--border-default);background:var(--bg-subtle);border-radius:8px;display:inline-flex;overflow:hidden}.theme-segment-opt{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin:0;padding:7px 16px;font-size:13px;transition:background .15s,color .15s;display:inline-flex}.theme-segment-opt+.theme-segment-opt{border-left:1px solid var(--border-default)}.theme-segment-opt input{display:none}.theme-segment-opt:hover{color:var(--text-primary)}.theme-segment-opt:has(input:checked){background:var(--brand-500);color:var(--text-inverse);font-weight:600}.toolbox-section-content{opacity:0;max-height:0;transition:max-height .3s ease-out,opacity .3s ease-out;overflow:hidden}.toolbox-filter-bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.toolbox-search-input{border:1px solid var(--border-default);border-radius:6px;outline:none;flex:1;width:100%;padding:6px 28px 6px 10px;font-size:13px;transition:border-color .2s}.toolbox-search-input:focus{border-color:var(--brand-500)}.toolbox-search-wrapper{flex:1;position:relative}.toolbox-search-clear{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:12px;line-height:1;display:none;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.toolbox-search-clear:hover{color:var(--danger-500);background:rgba(var(--danger-rgb), .08)}.toolbox-search-wrapper:has(.toolbox-search-input:not(:placeholder-shown)) .toolbox-search-clear{display:block}.toolbox-filter-tabs{flex-shrink:0;gap:4px;display:flex}.toolbox-filter-tab{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12px;transition:all .2s}.toolbox-filter-tab:hover{border-color:var(--brand-500);color:var(--brand-500)}.toolbox-filter-tab.active{background:var(--brand-500);border-color:var(--brand-500);color:var(--text-inverse)}.toolbox-list{max-height:400px;padding-right:4px;overflow-y:auto}.toolbox-list::-webkit-scrollbar{width:6px}.toolbox-list::-webkit-scrollbar-track{background:var(--bg-subtle);border-radius:3px}.toolbox-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.toolbox-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.toolbox-section:not(.disabled-section) .toolbox-section-content{opacity:1;max-height:2000px}.toolbox-section.disabled-section .toolbox-section-content{opacity:0;pointer-events:none;max-height:0}.toolbox-empty{text-align:center;color:var(--text-tertiary);padding:32px 16px}.toolbox-empty-icon{margin-bottom:10px;font-size:36px}.toolbox-empty-title{color:var(--text-secondary);margin-bottom:6px;font-size:14px;font-weight:500}.toolbox-empty-desc{color:var(--text-tertiary);font-size:12px}.mcp-server-card{border:1px solid var(--border-default);background:var(--bg-subtle);border-radius:8px;margin-bottom:8px;padding:12px 14px;transition:border-color .2s,background .2s}.mcp-server-card:hover{border-color:var(--brand-500);background:var(--brand-soft-bg)}.mcp-server-card.disabled{opacity:.55}.mcp-card-body.disabled{display:none}.mcp-server-card.editing{border-color:var(--brand-500);background:var(--bg-subtle)}.mcp-server-card.editing .mcp-add-form{background:0 0;border:none;margin-top:0;padding:0}.mcp-server-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mcp-server-info{align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.mcp-server-header-right{align-items:center;gap:12px;display:flex}.mcp-server-status{font-size:12px}.mcp-server-name{color:var(--text-primary)}.mcp-server-badge{background:var(--info-soft-bg);color:var(--brand-500);border-radius:4px;padding:1px 8px;font-size:11px;font-weight:400}.mcp-server-tools-count{color:var(--text-tertiary);font-size:12px}.mcp-server-command{margin-bottom:4px}.mcp-server-command code{background:var(--border-subtle);color:var(--text-secondary);word-break:break-all;border-radius:4px;padding:2px 8px;font-size:12px}.mcp-server-meta{color:var(--text-tertiary);margin-bottom:6px;font-size:11px}.mcp-tools-section{margin-bottom:10px}.mcp-tools-toggle{color:var(--brand-500);cursor:pointer;background:0 0;border:none;padding:2px 0;font-family:inherit;font-size:12px}.mcp-tools-toggle:hover{color:var(--brand-600);text-decoration:underline}.mcp-tools-list{border-top:1px solid var(--border-subtle);margin-top:6px;padding-top:6px}.mcp-tool-item{border-left:2px solid var(--border-subtle);margin-bottom:4px;padding:4px 0 4px 14px}.mcp-tool-name{color:var(--text-primary);font-family:Consolas,Monaco,monospace;font-size:13px;font-weight:500}.mcp-tool-desc{color:var(--text-tertiary);margin-top:2px;font-size:11px}.mcp-server-actions{align-items:center;gap:6px;display:flex}.skill-card{border:1px solid var(--border-default);background:var(--bg-subtle);border-radius:8px;margin-bottom:8px;padding:12px 14px;transition:border-color .2s,background .2s}.skill-card:hover{border-color:var(--brand-500);background:var(--brand-soft-bg)}.skill-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.skill-card-info{align-items:center;gap:8px;font-size:14px;display:flex}.skill-card-icon{font-size:16px}.skill-card-name{color:var(--text-primary);font-weight:500}.skill-card-version{background:var(--border-subtle);color:var(--text-tertiary);border-radius:4px;padding:1px 6px;font-size:11px}.skill-card-step-count{background:var(--info-soft-bg);color:var(--brand-500);border-radius:4px;padding:1px 6px;font-size:11px}.skill-card-desc{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.5}.skill-card-params{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.skill-param-tag{background:var(--warning-soft-bg);color:var(--warning-strong);border-radius:4px;padding:1px 8px;font-family:Consolas,Monaco,monospace;font-size:11px}.skill-param-tag.required{background:var(--danger-soft-bg);color:var(--danger-strong)}.skill-param-tag.skill-more-tag{background:var(--border-default);color:var(--text-secondary);font-style:italic}.skill-expand-btn{color:var(--brand-500);cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:2px 0;font-family:inherit;font-size:12px;transition:color .2s}.skill-expand-btn:hover{color:var(--brand-600);text-decoration:underline}.skill-expand-btn.skill-expand-resources{background:var(--border-default);color:var(--text-secondary);border-radius:4px;margin-bottom:0;padding:1px 8px;font-family:Consolas,Monaco,monospace;display:inline-block}.skill-expand-btn.skill-expand-resources:hover{background:var(--bg-subtle);color:var(--text-secondary);text-decoration:none}.skill-card-actions{gap:6px;display:flex}.toolbox-btn{cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:12px;transition:all .2s}.toolbox-btn:disabled{opacity:.5;cursor:not-allowed}.toolbox-btn-primary{background:var(--brand-500);color:var(--text-on-brand)}.toolbox-btn-primary:hover:not(:disabled){background:var(--brand-600)}.toolbox-btn-warn{background:var(--fill-warning);color:var(--text-on-brand)}.toolbox-btn-warn:hover:not(:disabled){background:var(--fill-warning)}.toolbox-btn-danger{color:var(--danger-500);background:0 0;border:1px solid #0000}.toolbox-btn-danger:hover:not(:disabled){background:var(--danger-soft-bg);border-color:var(--danger-soft-bg)}.toolbox-btn-edit{background:var(--brand-soft-bg);color:var(--brand-500);border:1px solid var(--brand-soft-border)}.toolbox-btn-edit:hover:not(:disabled){background:var(--brand-soft-bg)}.toolbox-btn-cancel{background:var(--border-subtle);color:var(--text-secondary)}.toolbox-btn-cancel:hover{background:var(--border-default)}.toolbox-add-btn{border:1px dashed var(--border-strong);width:100%;color:var(--text-tertiary);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:10px 16px;font-family:inherit;font-size:13px;transition:all .2s}.toolbox-add-btn:hover:not(:disabled){border-color:var(--brand-500);color:var(--brand-500);background:var(--brand-soft-bg)}.toolbox-add-btn:disabled{opacity:.4;cursor:not-allowed}.toolbox-section-actions{gap:8px;margin-top:8px;display:flex}.toolbox-section-actions .toolbox-add-btn{flex:1;margin-top:0}.toolbox-toggle{cursor:pointer;width:36px;height:20px;margin-right:auto;display:inline-block;position:relative}.toolbox-toggle input{opacity:0;width:0;height:0}.toolbox-toggle-slider{background:var(--border-subtle);box-shadow:inset 0 0 0 1px rgba(var(--overlay-rgb), .12);border-radius:20px;transition:background .3s;position:absolute;inset:0}.toolbox-toggle-slider:before{content:"";background:var(--bg-surface);width:16px;height:16px;box-shadow:0 1px 3px var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;transition:transform .3s;display:flex;position:absolute;bottom:2px;left:2px}.toolbox-toggle input:checked+.toolbox-toggle-slider{background:var(--brand-500)}.toolbox-toggle input:checked+.toolbox-toggle-slider:before{content:"✓";color:var(--brand-500);transform:translate(16px)}.mcp-add-form{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:8px;margin-top:8px;padding:12px}.mcp-add-form-row{gap:8px;margin-bottom:8px;display:flex}.mcp-transport-group{background:var(--bg-sunken);border-radius:8px;gap:0;margin-bottom:8px;padding:3px;display:flex}.mcp-transport-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 12px;font-family:inherit;font-size:13px;transition:all .2s}.mcp-transport-btn:hover{color:var(--text-primary);background:rgba(var(--brand-rgb), .08)}.mcp-transport-btn.active{background:var(--bg-surface);color:var(--brand-500);box-shadow:0 1px 3px rgba(var(--overlay-rgb), .1);font-weight:500}.mcp-add-form-actions{justify-content:flex-end;gap:8px;display:flex}.mcp-env-section{margin-bottom:8px}.mcp-env-header{align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.mcp-env-title{color:var(--text-primary);font-size:13px;font-weight:500}.mcp-env-hint{color:var(--text-tertiary);font-size:11px}.mcp-env-rows{flex-direction:column;gap:4px;margin-bottom:4px;display:flex}.mcp-env-row{align-items:center;gap:4px;display:flex}.mcp-env-row .mcp-env-key{border-radius:6px;padding:8px 10px;font-size:13px}.mcp-env-row .mcp-env-value{border-radius:6px;padding:8px 40px 8px 10px;font-family:inherit;font-size:13px}.mcp-env-value-wrap.token-input-wrapper{flex:2}.mcp-env-add-row{color:var(--brand-500)!important;border:1px dashed var(--brand-500)!important;background:0 0!important;padding:2px 10px!important;font-size:12px!important}.mcp-env-add-row:hover{background:rgba(var(--brand-rgb), .05)!important}.toolbox-input{border:1px solid var(--border-default);border-radius:6px;flex:1;min-width:0;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .2s}.toolbox-input:focus{border-color:var(--brand-500);box-shadow:0 0 0 2px rgba(var(--brand-rgb), .1);outline:none}.knowledge-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.knowledge-title-row{align-items:center;gap:10px;min-width:0;display:flex}.knowledge-title{color:var(--text-primary);margin:0;font-size:18px}.knowledge-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.kb-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;flex-direction:column;gap:8px;padding:16px;transition:box-shadow .15s,border-color .15s;display:flex}.kb-card:hover{border-color:var(--brand-soft-border);box-shadow:0 2px 12px rgba(var(--brand-rgb), .08)}.kb-card-title{color:var(--text-primary);align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:600;display:flex}.kb-card-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kb-card-desc{color:var(--text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.kb-card-meta{color:var(--brand-500);font-size:12px;font-weight:500}.kb-card-model{color:var(--text-disabled);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.kb-card.kb-card-disabled{opacity:.6;background:var(--bg-subtle)}.kb-card-disabled .kb-card-name{color:var(--text-tertiary)}.kb-card-badge{border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:500}.kb-card-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px;display:flex}.kb-action-btn{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:12px;transition:all .15s}.kb-action-btn:hover{border-color:var(--brand-500);color:var(--brand-500);background:var(--brand-soft-bg)}.kb-action-danger{color:var(--danger-strong)}.kb-action-danger:hover{border-color:var(--danger-500);color:var(--danger-500);background:var(--danger-soft-bg)}.kb-modal{max-width:560px}.kb-modal-wide{max-width:680px}.kb-modal-body{max-height:62vh;overflow-y:auto}.kb-chunk-row{border-top:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding-top:12px;display:flex}.kb-chunk-title{color:var(--text-secondary);font-size:13px;font-weight:600}.kb-chunk-inline{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:0;font-size:12px;font-weight:400;display:inline-flex}.kb-chunk-inline input[type=number]{border:1px solid var(--border-default);border-radius:6px;width:76px;padding:5px 8px;font-family:inherit;font-size:12px}.kb-chunk-inline input[type=number]:focus{border-color:var(--brand-500);outline:none}.kb-radio-row{flex-wrap:wrap;gap:16px;margin-top:6px;display:flex}.kb-radio-inline{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.kb-radio-inline input[type=radio]{cursor:pointer;margin:0}.kb-vec-hint{color:var(--text-tertiary);margin-top:6px;font-size:12px;line-height:1.6}.kb-vec-test-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.kb-vec-test-row input[type=number]{border:1px solid var(--border-default);border-radius:6px;width:110px;padding:5px 8px;font-family:inherit;font-size:12px}.kb-vec-test-row input[type=number]:focus{border-color:var(--brand-500);outline:none}.kb-vec-test-result{color:var(--success-strong);word-break:break-all;flex:100%;font-size:12px}.kb-status{background:var(--brand-soft-bg);border:1px solid var(--brand-soft-border);color:var(--brand-500);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:12px;line-height:1.6}.kb-doc-list{flex-direction:column;gap:6px;display:flex}.kb-doc-row{border:1px solid var(--border-subtle);background:var(--bg-subtle);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.kb-doc-row:hover{border-color:var(--border-subtle);background:var(--brand-soft-bg)}.kb-doc-info{flex:1;min-width:0}.kb-doc-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.kb-doc-meta{color:var(--text-tertiary);margin-top:2px;font-size:11px}.kb-doc-del{width:26px;height:26px;color:var(--text-disabled);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;font-size:13px;line-height:1;transition:all .15s}.kb-doc-del:hover{background:var(--danger-soft-bg);color:var(--danger-500)}.kb-search-scope{color:var(--text-tertiary);margin-bottom:10px;font-size:12px}.kb-search-bar{gap:8px;display:flex}.kb-search-bar input{flex:1;min-width:0}.kb-search-opts{flex-wrap:wrap;gap:14px;margin-top:10px;display:flex}.kb-hit-count{color:var(--text-secondary);margin-top:14px;font-size:12px;font-weight:600}.kb-fallback-hint{background:var(--warning-soft-bg);border:1px solid var(--warning-soft-border);color:var(--warning-strong);border-radius:8px;margin-top:12px;padding:8px 12px;font-size:12px;line-height:1.6}.kb-hit-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.kb-hit{border:1px solid var(--border-subtle);background:var(--bg-subtle);border-radius:8px;padding:12px}.kb-hit-head{align-items:center;gap:8px;min-width:0;margin-bottom:6px;display:flex}.kb-hit-score{background:var(--brand-soft-bg);color:var(--brand-500);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:600}.kb-hit-doc{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.kb-hit-text{color:var(--text-primary);word-break:break-word;font-size:13px;line-height:1.7}.kb-hit-collapsed{-webkit-line-clamp:4;cursor:pointer;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.memory-status{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;display:flex}.memory-status-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.memory-status-keys{flex-direction:column;gap:2px;font-size:12px;display:flex}.memory-status-keys code{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.memory-status-badge{border-radius:10px;padding:2px 8px;font-size:12px}.memory-status-badge.stale{background:var(--danger-soft-bg);color:var(--danger-strong)}.memory-status-badge.fresh{background:var(--info-soft-bg);color:var(--info-strong)}.memory-status-hint{color:var(--danger-strong);font-size:12px}.memory-status-muted{color:var(--text-tertiary);font-size:12px}.memory-status-badge.fail{background:var(--danger-soft-bg);color:var(--danger-strong)}.memory-scope-hint{color:var(--text-tertiary);margin:-6px 0 12px;font-size:12px;line-height:1.5}.memory-entries-section{margin-top:20px}.memory-entries-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.memory-entries-head label{margin-bottom:0}.memory-entries-count{color:var(--text-tertiary);font-size:12px}.memory-entries-head .toolbox-add-btn{margin-left:auto}.memory-entries-filter{gap:8px;margin-bottom:10px;display:flex}.memory-entries-filter input[type=text]{flex:1;min-width:0;margin-bottom:0}.memory-entries-filter select{flex-shrink:0;width:130px}#memoryEntriesSort{width:auto;min-width:168px}.memory-entries-candidates{background:var(--warning-soft-bg);border:1px solid var(--warning-soft-border);color:var(--warning-text-soft);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-size:13px;display:flex}.memory-entries-candidates .memory-entries-compact-btn{border:1px solid var(--warning-500);background:var(--bg-surface);color:var(--warning-500);cursor:pointer;border-radius:6px;margin-left:auto;padding:4px 14px;font-family:inherit;font-size:12px}.memory-entries-candidates .memory-entries-compact-btn:hover{background:var(--fill-warning);color:var(--text-inverse)}.memory-entries-status{color:var(--text-tertiary);margin-bottom:8px;font-size:12px}.memory-entries-list{flex-direction:column;gap:8px;max-height:min(420px,50vh);padding-right:4px;display:flex;overflow-y:auto}.memory-entries-list::-webkit-scrollbar{width:6px}.memory-entries-list::-webkit-scrollbar-track{background:var(--bg-subtle);border-radius:3px}.memory-entries-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.memory-entries-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.memory-entries-empty{color:var(--text-tertiary);padding:12px 0;font-size:13px}.memory-entry-item{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;font-size:13px}.memory-entry-item:hover{border-color:var(--brand-soft-border)}.memory-entry-item.low-value{background:var(--warning-soft-bg);border-color:var(--warning-soft-border)}.memory-entry-top{align-items:flex-start;gap:8px;display:flex}.memory-entry-badge{border-radius:9px;flex-shrink:0;padding:1px 8px;font-size:11px}.memory-entry-badge.fact{background:var(--brand-soft-bg);color:var(--brand-500)}.memory-entry-badge.summary{background:var(--success-soft-bg);color:var(--success-strong)}.memory-entry-content{min-width:0;color:var(--text-primary);cursor:pointer;-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;flex:1;line-height:1.6;display:-webkit-box;overflow:hidden}.memory-entry-item.expanded .memory-entry-content{-webkit-line-clamp:unset;display:block;overflow:visible}.memory-entry-actions{flex-shrink:0;gap:6px;display:flex}.memory-entry-actions button{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:3px 10px;font-family:inherit;font-size:12px}.memory-entry-actions button:hover{color:var(--brand-500);border-color:var(--brand-500)}.memory-entry-actions button.memory-entry-del:hover{color:var(--danger-strong);border-color:var(--danger-strong)}.memory-entry-actions button:disabled{opacity:.5;cursor:default}.memory-entry-meta{color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;font-size:11px;display:flex}.memory-entry-tag-chip{background:var(--border-subtle);color:var(--brand-500);border-radius:8px;margin-right:3px;padding:0 7px;font-size:11px;display:inline-block}