ai-helper-agent 2.3.1 → 2.4.0

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.
Files changed (74) hide show
  1. package/README.md +13 -3
  2. package/dist/assets/__vite-browser-external-CM3Eme-n.js +1 -0
  3. package/dist/assets/agent-store-Ce3f4Ya3.js +1 -0
  4. package/dist/assets/background.js +104 -80
  5. package/dist/assets/chat-export-BNCkL6fS.js +37 -0
  6. package/dist/assets/chunk-CMxvf4Kt.js +1 -0
  7. package/dist/assets/content.js +159 -156
  8. package/dist/assets/{dist-BQOFgIxk.js → dist-DhUTa_WT.js} +5 -6
  9. package/dist/assets/dist-LQPh1k0y.js +24 -0
  10. package/dist/assets/i18n-ouMgDZ2t.js +49 -0
  11. package/dist/assets/jszip.min-Bm_16osY.js +2 -0
  12. package/dist/assets/lib-33nIefF6.js +220 -0
  13. package/dist/assets/{marked.min.js-08SGy6CO.js → marked.min.js-D2rXgLAQ.js} +7 -8
  14. package/dist/assets/{marked.min.js-loader-4kRZ9iCP.js → marked.min.js-loader-tKH5SQVQ.js} +1 -1
  15. package/dist/assets/model-profiles-6dzdrSS4.js +24 -0
  16. package/dist/assets/network-scope-CNRYXk74.js +1 -0
  17. package/dist/assets/options-Cp1UMkjK.css +1 -0
  18. package/dist/assets/options.js +108 -102
  19. package/dist/assets/{page-snapshot-renderer-CVL6r6Kf.js → page-snapshot-renderer-j72q92KH.js} +2 -3
  20. package/dist/assets/pdf-DnVqBaAN.js +6 -0
  21. package/dist/assets/session-store-CmGs_rhh.js +76 -0
  22. package/dist/assets/side_panel.css +1 -1
  23. package/dist/assets/side_panel.js +958 -1124
  24. package/dist/assets/theme-BRAX5X2F.css +1 -0
  25. package/dist/assets/{modulepreload-polyfill-P2Xu9kJm.js → theme-CLwYsx9o.js} +1 -1
  26. package/dist/assets/utils-9i9g8vW8.js +112 -0
  27. package/dist/assets/version-t8HzLv3V.js +1 -0
  28. package/dist/assets/xlsx-DGkz7cnk.js +105 -0
  29. package/dist/manifest.json +2 -5
  30. package/dist/offscreen/offscreen.js +7 -7
  31. package/dist/options.html +151 -75
  32. package/dist/side_panel.html +167 -137
  33. package/package.json +1 -1
  34. package/src/config.js +3 -2
  35. package/src/executor.js +99 -18
  36. package/src/locales/en.json +16 -2
  37. package/src/locales/zh.json +16 -2
  38. package/src/memory/injection.js +12 -2
  39. package/src/memory/routes.js +6 -0
  40. package/src/memory/service.js +57 -2
  41. package/src/rag/manager.js +1 -1
  42. package/src/rag/url-guard.js +27 -12
  43. package/src/security.js +433 -31
  44. package/src/server.js +28 -8
  45. package/dist/assets/agent-store-DcAs6YyA.js +0 -2
  46. package/dist/assets/agent-store-DcAs6YyA.js.map +0 -1
  47. package/dist/assets/background.js.map +0 -1
  48. package/dist/assets/dist-BQOFgIxk.js.map +0 -1
  49. package/dist/assets/i18n-C4jSRoCH.js +0 -50
  50. package/dist/assets/i18n-C4jSRoCH.js.map +0 -1
  51. package/dist/assets/jszip.min-BXqW2-9v.js +0 -3
  52. package/dist/assets/jszip.min-BXqW2-9v.js.map +0 -1
  53. package/dist/assets/lib-Bi7BFuND.js +0 -221
  54. package/dist/assets/lib-Bi7BFuND.js.map +0 -1
  55. package/dist/assets/marked.min.js-08SGy6CO.js.map +0 -1
  56. package/dist/assets/model-profiles-Dl_MsXWa.js +0 -25
  57. package/dist/assets/model-profiles-Dl_MsXWa.js.map +0 -1
  58. package/dist/assets/options-8-nu3P5K.css +0 -1
  59. package/dist/assets/options.js.map +0 -1
  60. package/dist/assets/page-snapshot-renderer-CVL6r6Kf.js.map +0 -1
  61. package/dist/assets/pdf-HiJ0icvU.js +0 -7
  62. package/dist/assets/pdf-HiJ0icvU.js.map +0 -1
  63. package/dist/assets/rolldown-runtime-C0FnF6B9.js +0 -1
  64. package/dist/assets/session-store-CzVQCgQ_.js +0 -77
  65. package/dist/assets/session-store-CzVQCgQ_.js.map +0 -1
  66. package/dist/assets/side_panel.js.map +0 -1
  67. package/dist/assets/version-CNG2KGnJ.js +0 -2
  68. package/dist/assets/version-CNG2KGnJ.js.map +0 -1
  69. package/dist/assets/xlsx-BHKh7vjA.js +0 -106
  70. package/dist/assets/xlsx-BHKh7vjA.js.map +0 -1
  71. package/dist/icons/badges/license-MIT.svg +0 -21
  72. package/dist/icons/badges/platform.svg +0 -21
  73. package/dist/icons/badges/prs-welcome.svg +0 -21
  74. package/dist/icons/badges/version.svg +0 -21
@@ -1,13 +1,13 @@
1
- (()=>{var ce={DEBUG:0,INFO:1,WARN:2,ERROR:3},ie=ce.DEBUG;function Ut(e){ie=e}function Kt(){return ie}function $t(...e){ie<=ce.DEBUG&&console.debug("[AIH]",...e)}function Gt(...e){ie<=ce.INFO&&console.info("[AIH]",...e)}function zt(...e){ie<=ce.WARN&&console.warn("[AIH]",...e)}function Wt(...e){ie<=ce.ERROR&&console.error("[AIH]",...e)}var E={debug:$t,info:Gt,warn:zt,error:Wt,setLogLevel:Ut,getLogLevel:Kt},jt={common:{confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88",close:"\u5173\u95ED",ok:"\u786E\u5B9A",save:"\u4FDD\u5B58",delete:"\u5220\u9664",edit:"\u7F16\u8F91",retry:"\u91CD\u8BD5",loading:"\u52A0\u8F7D\u4E2D...",none:"\u65E0",add:"\u6DFB\u52A0",clear:"\u6E05\u7A7A",selectAll:"\u5168\u9009",deselectAll:"\u53D6\u6D88\u5168\u9009",refresh:"\u5237\u65B0",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",bytes:"\u5B57\u8282",copy:"\u590D\u5236",copySuccess:"\u5DF2\u590D\u5236",copyFailed:"\u590D\u5236\u5931\u8D25"},dialog:{operationConfirm:"\u64CD\u4F5C\u786E\u8BA4",confirmDefaultMessage:"\u6A21\u578B\u8BF7\u6C42\u6267\u884C\u654F\u611F\u64CD\u4F5C\uFF0C\u662F\u5426\u5141\u8BB8\uFF1F",confirmAction:"\u6A21\u578B\u8BF7\u6C42\u6267\u884C\u64CD\u4F5C: {name}",remainingTime:"\u5269\u4F59\u65F6\u95F4: {time}",deny:"\u62D2\u7EDD",approveOnce:"\u672C\u6B21\u653E\u884C",approveLoop:"\u5F53\u524D\u4EFB\u52A1\u653E\u884C"},sensitiveTool:{manage_cookies:"\u7BA1\u7406 Cookie",clear_data:"\u6E05\u9664\u9875\u9762\u6570\u636E",download_file:"\u4E0B\u8F7D\u6587\u4EF6",manage_tab:"\u6807\u7B7E\u9875\u7BA1\u7406",agent_file:"\u6587\u4EF6\u64CD\u4F5C",debug_page:"\u9875\u9762\u8C03\u8BD5\uFF08Debugger\uFF09",debuggerAttachHint:`
1
+ (()=>{var de={DEBUG:0,INFO:1,WARN:2,ERROR:3},ie=de.DEBUG;function Qt(e){ie=e}function Yt(){return ie}function Xt(...e){ie<=de.DEBUG&&console.debug("[AIH]",...e)}function Zt(...e){ie<=de.INFO&&console.info("[AIH]",...e)}function Jt(...e){ie<=de.WARN&&console.warn("[AIH]",...e)}function eo(...e){ie<=de.ERROR&&console.error("[AIH]",...e)}var E={debug:Xt,info:Zt,warn:Jt,error:eo,setLogLevel:Qt,getLogLevel:Yt},to={common:{confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88",close:"\u5173\u95ED",ok:"\u786E\u5B9A",save:"\u4FDD\u5B58",delete:"\u5220\u9664",edit:"\u7F16\u8F91",retry:"\u91CD\u8BD5",loading:"\u52A0\u8F7D\u4E2D...",none:"\u65E0",add:"\u6DFB\u52A0",clear:"\u6E05\u7A7A",selectAll:"\u5168\u9009",deselectAll:"\u53D6\u6D88\u5168\u9009",refresh:"\u5237\u65B0",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",bytes:"\u5B57\u8282",copy:"\u590D\u5236",copySuccess:"\u5DF2\u590D\u5236",copyFailed:"\u590D\u5236\u5931\u8D25"},dialog:{operationConfirm:"\u64CD\u4F5C\u786E\u8BA4",confirmDefaultMessage:"\u6A21\u578B\u8BF7\u6C42\u6267\u884C\u654F\u611F\u64CD\u4F5C\uFF0C\u662F\u5426\u5141\u8BB8\uFF1F",confirmAction:"\u6A21\u578B\u8BF7\u6C42\u6267\u884C\u64CD\u4F5C: {name}",remainingTime:"\u5269\u4F59\u65F6\u95F4: {time}",deny:"\u62D2\u7EDD",approveOnce:"\u672C\u6B21\u653E\u884C",approveLoop:"\u5F53\u524D\u4EFB\u52A1\u653E\u884C",pendingQueue:"\uFF08\u53E6\u6709 {count} \u6761\u5F85\u786E\u8BA4\uFF09",pendingQueueClarify:"\uFF08\u53E6\u6709 {count} \u6761\u5F85\u6F84\u6E05\uFF09",otherPending:"\uFF08\u53E6\u6709 {count} \u6761\u5176\u4ED6\u8BF7\u6C42\u5728\u6392\u961F\uFF09"},sensitiveTool:{manage_cookies:"\u7BA1\u7406 Cookie",manage_storage:"\u9875\u9762\u5B58\u50A8\u64CD\u4F5C",download_file:"\u4E0B\u8F7D\u6587\u4EF6",manage_tab:"\u6807\u7B7E\u9875\u7BA1\u7406",agent_file:"\u6587\u4EF6\u64CD\u4F5C",agent_exec:"\u672C\u5730\u547D\u4EE4\u6267\u884C",debug_page:"\u9875\u9762\u8C03\u8BD5\uFF08Debugger\uFF09",debuggerAttachHint:`
2
2
 
3
3
  \u5F00\u542F\u540E\u8BE5\u6807\u7B7E\u9875\u9876\u90E8\u4F1A\u663E\u793A"\u6269\u5C55\u7A0B\u5E8F\u6B63\u5728\u8C03\u8BD5\u6B64\u6D4F\u89C8\u5668"\u63D0\u793A\u6761\uFF0C\u7ED3\u675F\u540E\u81EA\u52A8\u6D88\u5931\u3002`,unknown:"\u672A\u77E5\u64CD\u4F5C",tabInfo:`
4
4
 
5
5
  \u6807\u7B7E\u9875\u6807\u9898: {title}
6
6
  \u6807\u7B7E\u9875 URL: {url}`,tabInfoError:`
7
7
 
8
- \uFF08\u65E0\u6CD5\u83B7\u53D6\u6807\u7B7E\u9875\u4FE1\u606F: {error}\uFF09`,untitled:"\u65E0\u6807\u9898",unknownUrl:"\u672A\u77E5"},settings:{docTitle:"AI Helper - \u914D\u7F6E",language:"\u754C\u9762\u8BED\u8A00",languageChanged:"\u8BED\u8A00\u5DF2\u5207\u6362\uFF0C\u90E8\u5206\u9875\u9762\u5237\u65B0\u540E\u751F\u6548",pageTitle:"AI Helper \u914D\u7F6E",subtitle:"\u7F51\u9875\u667A\u80FD\u52A9\u624B - OpenAI \u517C\u5BB9\u63A5\u53E3",importConfigTitle:"\u5BFC\u5165\u914D\u7F6E",exportConfigTitle:"\u5BFC\u51FA\u914D\u7F6E",tabBasic:"\u57FA\u7840",tabReact:"\u63A8\u7406",tabReflection:"\u53CD\u601D",tabToolbar:"\u5212\u8BCD",tabAgent:"\u4EE3\u7406",tabToolbox:"\u6269\u5C55",saveConfig:"\u4FDD\u5B58\u914D\u7F6E",apiBaseHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u624B\u52A8\u8F93\u5165\uFF09",addApiBaseTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49 API Base URL",addAddress:"+ \u6DFB\u52A0\u5730\u5740",apiBaseUrlPlaceholder:"API Base URL\uFF08\u5982 https://api.example.com/v1\uFF09",apiBaseLabelPlaceholder:"\u6807\u7B7E/\u5907\u6CE8\uFF08\u53EF\u9009\uFF0C\u5982 \u6211\u7684\u4EE3\u7406\uFF09",confirmAdd:"\u786E\u8BA4\u6DFB\u52A0",requiredHint:"\uFF08\u5FC5\u586B\uFF09",apiKeyHint:"\u8BF7\u4ECE\u60A8\u4F7F\u7528\u7684\u5927\u6A21\u578B\u5E73\u53F0\u83B7\u53D6\u5BF9\u5E94\u7684 API Key\uFF0C\u5E76\u5728\u6B64\u914D\u7F6E\u4E2D\u586B\u5199\u3002\u8BF7\u59A5\u5584\u4FDD\u7BA1\u60A8\u7684 API Key\uFF0C\u907F\u514D\u6CC4\u9732\u3002",apiKeyPlaceholder:"\u8BF7\u8F93\u5165\u60A8\u7684 API Key",toggleApiKey:"\u663E\u793A/\u9690\u85CF API Key",modelName:"\u6A21\u578B\u540D\u79F0",modelNameHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u6DFB\u52A0\u65B0\u6A21\u578B\uFF09",selectModelPlaceholder:"\u8BF7\u4ECE\u4E0B\u65B9\u9009\u62E9\u6A21\u578B",noMatch:"\u65E0\u5339\u914D\u9879",addModelTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u6A21\u578B",addModel:"+ \u6DFB\u52A0\u6A21\u578B",fetchModels:"\u27F3 \u4ECE API \u83B7\u53D6",fetchModelsTitle:"\u4ECE\u5F53\u524D\u5382\u5546 API \u62C9\u53D6\u53EF\u7528\u6A21\u578B\u5217\u8868",fetchModelsLoading:"\u83B7\u53D6\u4E2D\u2026",fetchModelsNeedConfig:"\u8BF7\u5148\u586B\u5199 API Base URL \u548C API Key",fetchModelsSuccess:"\u2705 \u5DF2\u83B7\u53D6 {total} \u4E2A\u6A21\u578B\uFF08\u65B0\u589E {added} \u4E2A\uFF09",fetchModelsEmpty:"\u672A\u83B7\u53D6\u5230\u6A21\u578B\uFF0C\u8BF7\u624B\u52A8\u6DFB\u52A0",fetchModelsFailed:"\u274C \u83B7\u53D6\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6216\u624B\u52A8\u6DFB\u52A0\u6A21\u578B",fetchModelsAuthFailed:"\u274C \u8BA4\u8BC1\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5 API Key",modelNameInputPlaceholder:"\u6A21\u578B\u540D\u79F0\uFF08\u5982 gpt-4o\uFF09",contextWindowPlaceholder:"\u4E0A\u4E0B\u6587\u7A97\u53E3\u5927\u5C0F\uFF08tokens\uFF09",contextWindowHint:"128K=128000, 200K=200000, 1M=1000000, \u7559\u7A7A\u5219\u81EA\u52A8\u63A8\u65AD",enableImageInput:"\u542F\u7528\u56FE\u7247\u8BC6\u522B\u529F\u80FD",enableImageInputHint:"\uFF08\u5F00\u542F\u540E\u53EF\u5728\u4FA7\u8FB9\u680F\u53D1\u9001\u56FE\u7247\u7ED9\u591A\u6A21\u6001\u6A21\u578B\u8FDB\u884C\u5206\u6790\uFF09",imageApiBaseHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u624B\u52A8\u8F93\u5165\uFF1B\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E\uFF09",addImageApiBaseTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u56FE\u7247 API Base URL",useBaseModelPlaceholder:"\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E",imageApiKeyHint:"\uFF08\u53EF\u9009\uFF0C\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E\uFF09",imageApiKeyPlaceholder:"\u8BF7\u8F93\u5165\u56FE\u7247\u8BC6\u522B API Key",imageModelNameHint:"\uFF08\u652F\u6301\u591A\u6A21\u6001\u89C6\u89C9\u80FD\u529B\u7684\u6A21\u578B\uFF0C\u4ECE\u5217\u8868\u9009\u62E9\u6216\u6DFB\u52A0\u65B0\u6A21\u578B\uFF1B\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u7684\u6A21\u578B\u540D\u79F0\uFF09",useBaseModelPlaceholderShort:"\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B",addImageModelTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u56FE\u7247\u8BC6\u522B\u6A21\u578B",systemPrompt:"\u7CFB\u7EDF\u63D0\u793A\u8BCD",systemPromptHint:"\uFF08\u53EF\u9009\uFF0C\u7559\u7A7A\u5219\u4F7F\u7528\u9ED8\u8BA4\u503C\uFF09",resetToDefault:"\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C",systemPromptTip:"\u{1F4A1} \u63D0\u793A\uFF1A\u7CFB\u7EDF\u63D0\u793A\u8BCD\u7528\u4E8E\u5B9A\u4E49 AI \u52A9\u624B\u7684\u884C\u4E3A\u548C\u89D2\u8272\u3002",collapse:"\u2212 \u6536\u8D77",modelNameRequired:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",modelAdded:"\u6A21\u578B\u5DF2\u6DFB\u52A0",imageModelAdded:"\u56FE\u7247\u6A21\u578B\u5DF2\u6DFB\u52A0",apiBaseSwitched:"API Base URL \u5DF2\u5207\u6362\uFF0C\u8BF7\u786E\u4FDD API Key \u5BF9\u5E94\u6709\u6548",apiBaseRequired:"\u8BF7\u8F93\u5165 API Base URL",urlInvalid:"URL \u683C\u5F0F\u4E0D\u6B63\u786E",apiBaseAdded:"API Base URL \u5DF2\u6DFB\u52A0",imageApiBaseSwitched:"\u56FE\u7247 API Base URL \u5DF2\u5207\u6362",imageApiBaseAdded:"\u56FE\u7247 API Base URL \u5DF2\u6DFB\u52A0",maxIterationsRangeError:"\u6700\u5927\u5FAA\u73AF\u6B21\u6570\u5FC5\u987B\u5728 10-1000 \u4E4B\u95F4",apiTimeoutRangeError:"API \u8BF7\u6C42\u8D85\u65F6\u5FC5\u987B\u5728 1-10 \u5206\u949F \u4E4B\u95F4",loopTimeoutRangeError:"\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6\u5FC5\u987B\u5728 1-120 \u5206\u949F \u4E4B\u95F4",toolTimeoutRangeError:"\u5DE5\u5177\u6267\u884C\u8D85\u65F6\u5FC5\u987B\u5728 1-30 \u5206\u949F \u4E4B\u95F4",apiKeyEmpty:"API Key \u4E0D\u80FD\u4E3A\u7A7A",saveFailed:"\u4FDD\u5B58\u5931\u8D25\uFF1A{message}",saveSuccess:"\u914D\u7F6E\u5DF2\u4FDD\u5B58\u6210\u529F\uFF01",deleteModel:"\u5220\u9664\u6B64\u6A21\u578B",ctxSliderIconTitle:"\u8BBE\u7F6E\u8BE5\u6A21\u578B\u7684\u4E0A\u4E0B\u6587\u7A97\u53E3",ctxSliderAuto:"\u81EA\u52A8",ctxSliderAutoTitle:"\u6062\u590D\u81EA\u52A8\u63A8\u65AD",ctxBadgeAutoTip:"\u81EA\u52A8\u63A8\u65AD\uFF08\u672A\u624B\u52A8\u8BBE\u7F6E\uFF09",ctxSliderResetAuto:"\u6062\u590D\u81EA\u52A8",deleteApiBase:"\u5220\u9664\u6B64\u5730\u5740",providerConfig:"\u5382\u5546\u914D\u7F6E",providerConfigHint:"\uFF08\u5207\u6362\u540E\u7ACB\u5373\u751F\u6548\uFF1B\u6BCF\u4E2A\u914D\u7F6E\u72EC\u7ACB\u8BB0\u5FC6\u5730\u5740\u3001API Key\u3001\u6A21\u578B\u5217\u8868\uFF09",profileScopeHint:"\u4EE5\u4E0B\u8BBE\u7F6E\u4FDD\u5B58\u5230\u5382\u5546\u914D\u7F6E\u201C{name}\u201D\uFF0C\u5207\u6362\u5382\u5546\u65F6\u81EA\u52A8\u8054\u52A8",newProfile:"+ \u65B0\u5EFA",newProfileTitle:"\u65B0\u5EFA\u4E00\u4E2A\u7A7A\u7684\u5382\u5546\u914D\u7F6E",profileNameTitle:"\u65B0\u5EFA\u5382\u5546\u914D\u7F6E",saveAsProfile:"\u53E6\u5B58\u4E3A",saveAsProfileTitle:"\u4EE5\u5F53\u524D\u914D\u7F6E\u53E6\u5B58\u4E3A\u65B0\u7684\u5382\u5546\u914D\u7F6E",renameProfile:"\u91CD\u547D\u540D",renameProfileTitle:"\u91CD\u547D\u540D\u5F53\u524D\u914D\u7F6E",deleteProfile:"\u5220\u9664",deleteProfileTitle:"\u5220\u9664\u5F53\u524D\u914D\u7F6E",profileNamePlaceholder:"\u914D\u7F6E\u540D\u79F0\uFF08\u5982 DeepSeek \u5B98\u65B9\u3001\u6211\u7684\u4E2D\u8F6C\uFF09",profileNameRequired:"\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0",deleteProfileConfirm:"\u786E\u5B9A\u8981\u5220\u9664\u5382\u5546\u914D\u7F6E\u201C{name}\u201D\u5417\uFF1F\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\u3002",atLeastOneProfile:"\u81F3\u5C11\u4FDD\u7559\u4E00\u4E2A\u5382\u5546\u914D\u7F6E",profileSwitched:"\u5DF2\u5207\u6362\u5230 {name}",profileCreated:"\u5DF2\u521B\u5EFA\u914D\u7F6E {name}",profileRenamed:"\u5DF2\u91CD\u547D\u540D\u4E3A {name}",profileDeleted:"\u5DF2\u5220\u9664\u914D\u7F6E {name}",profileCopySuffix:"\u526F\u672C",completionFeedbackTitle:"\u5B8C\u6210\u53CD\u9988",completionSound:"\u64AD\u653E\u63D0\u793A\u97F3\uFF08\u6210\u529F\u4E0E\u5931\u8D25\u97F3\u6548\u4E0D\u540C\uFF09",completionSoundHint:"\u6210\u529F\u65F6\u6E05\u8106\u4E09\u8FDE\u97F3\uFF08Do-Mi-Sol \u4E0A\u626C\uFF09\uFF0C\u5931\u8D25\u65F6\u4F4E\u6C89\u65B9\u6CE2\u53CC\u97F3\uFF1B\u7528\u6237\u4E3B\u52A8\u53D6\u6D88\u4E0D\u64AD\u653E",completionConfetti:"\u64AD\u653E\u5F69\u5E26\u52A8\u753B",completionConfettiHint:"\u4EC5\u5728\u56DE\u7B54\u6210\u529F\u5B8C\u6210\u65F6\u64AD\u653E\uFF1B\u5931\u8D25\u548C\u53D6\u6D88\u4E0D\u64AD\u653E",completionNotification:"\u4EFB\u52A1\u5B8C\u6210\u6216\u5931\u8D25\u65F6\u5F39\u51FA\u684C\u9762\u901A\u77E5",completionNotificationHint:"\u4EC5\u5728\u770B\u4E0D\u5230\u4FA7\u8FB9\u680F\u65F6\u5F39\u51FA\uFF1B\u6210\u529F\u81EA\u52A8\u6D88\u5931\uFF0C\u5931\u8D25\u505C\u7559\u81F3\u624B\u52A8\u5173\u95ED\uFF1B\u70B9\u51FB\u901A\u77E5\u6253\u5F00\u4FA7\u8FB9\u680F",scheduledNotification:"\u5B9A\u65F6\u4EFB\u52A1\u5B8C\u6210\u6216\u5931\u8D25\u65F6\u5F39\u51FA\u684C\u9762\u901A\u77E5",scheduledNotificationHint:"\u5B9A\u65F6\u4EFB\u52A1\u5728\u540E\u53F0\u6267\u884C\u3001\u65E0\u58F0\u97F3\u7B49\u5176\u4ED6\u63D0\u9192\u6E20\u9053\uFF0C\u5F00\u5173\u5F00\u542F\u65F6\u603B\u662F\u5F39\u51FA\uFF1B\u9ED8\u8BA4\u5F00\u542F\uFF0C\u53EF\u624B\u52A8\u5173\u95ED",interactionNotification:"AI \u9700\u8981\u4F60\u786E\u8BA4\u6216\u6F84\u6E05\u65F6\u63D0\u9192\u6211",interactionNotificationHint:"\u63A8\u7406\u5FAA\u73AF\u7B49\u5F85\u4F60\u64CD\u4F5C\u65F6\u5F39\u684C\u9762\u63D0\u9192\uFF1B\u4EC5\u5728\u770B\u5F97\u5230\u4FA7\u8FB9\u680F\u65F6\u4E0D\u6253\u6270\uFF0C\u70B9\u51FB\u901A\u77E5\u6253\u5F00\u4FA7\u8FB9\u680F",showMessageTimestamp:"\u663E\u793A\u6D88\u606F\u65F6\u95F4\u6233",showMessageTimestampHint:"\uFF08\u5728\u7528\u6237\u95EE\u9898\u6C14\u6CE1\u4E0B\u65B9\u663E\u793A\u53D1\u95EE\u65F6\u95F4\uFF0C\u4ECA\u5929\u663E\u793A\u65F6\u5206\uFF0C\u975E\u4ECA\u5929\u663E\u793A\u65E5\u671F\uFF09",sidePanelScopeTitle:"\u4FA7\u8FB9\u680F\u4F5C\u7528\u57DF",sidePanelScopeGlobal:"\u5168\u5C40\u6A21\u5F0F",sidePanelScopeTab:"\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F",sidePanelScopeGlobalHint:"\u540C\u4E00\u7A97\u53E3\u5185\u6240\u6709\u6807\u7B7E\u9875\u5171\u4EAB\u540C\u4E00\u4EFD\u4FA7\u8FB9\u680F\u5B9E\u4F8B\uFF0C\u5207\u6362\u6807\u7B7E\u9875\u65F6\u59CB\u7EC8\u53EF\u89C1",sidePanelScopeTabHint:"\u4FA7\u8FB9\u680F\u53EA\u5728\u6253\u5F00\u5B83\u7684\u6807\u7B7E\u9875\u663E\u793A\uFF1B\u53EF\u5728\u591A\u4E2A\u6807\u7B7E\u9875\u5404\u81EA\u6253\u5F00\uFF0C\u5207\u8D70\u81EA\u52A8\u9690\u85CF\u3001\u5207\u56DE\u81EA\u52A8\u6062\u590D",autoGroupTabs:"\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F\u4E0B\uFF0C\u628A\u6253\u5F00\u4FA7\u8FB9\u680F\u7684\u6807\u7B7E\u9875\u5F52\u5165\u5206\u7EC4",autoGroupTabsHint:"\u4EC5\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F\u751F\u6548\uFF1B\u628A\u8FD9\u4E9B\u6807\u7B7E\u9875\u5F52\u5165\u4E00\u4E2A\u5F69\u8272\u6807\u7B7E\u7EC4\u4FBF\u4E8E\u8BC6\u522B\uFF08\u6807\u7B7E\u9875\u4F1A\u88AB\u79FB\u52A8\u5230\u5206\u7EC4\u6240\u5728\u4F4D\u7F6E\uFF09\uFF0C\u5173\u95ED\u67D0\u4E2A\u6807\u7B7E\u9875\u7684\u4FA7\u8FB9\u680F\u6216\u5207\u56DE\u5168\u5C40\u6A21\u5F0F\u65F6\u4F1A\u79FB\u51FA\u5206\u7EC4"},header:{docTitle:"AI Helper - \u6A21\u578B\u95EE\u7B54",settingsTitle:"\u63D2\u4EF6\u8BBE\u7F6E",switchAgent:"\u5207\u6362\u52A9\u624B",defaultAssistant:"\u{1F916} \u9ED8\u8BA4\u52A9\u624B",notConnected:"\u672A\u8FDE\u63A5",agentAddress:"\u4EE3\u7406\u5730\u5740",copyAgentAddress:"\u590D\u5236\u4EE3\u7406\u5730\u5740",refreshAgentStatus:"\u5237\u65B0\u4EE3\u7406\u5728\u7EBF\u72B6\u6001",restart:"\u91CD\u542F",restartAgent:"\u91CD\u542F\u4EE3\u7406\u670D\u52A1",update:"\u66F4\u65B0",updateAndRestart:"\u66F4\u65B0\u5E76\u91CD\u542F\u4EE3\u7406",stop:"\u505C\u6B62",stopAgent:"\u505C\u6B62\u4EE3\u7406\u670D\u52A1",addEditAgent:"\u65B0\u589E/\u7F16\u8F91\u4EE3\u7406",addEditAssistant:"\u65B0\u589E/\u7F16\u8F91\u52A9\u624B",manageKnowledge:"\u7BA1\u7406\u77E5\u8BC6\u5E93",moreActions:"\u66F4\u591A\u64CD\u4F5C",clearChat:"\u6E05\u9664\u5BF9\u8BDD",exportChat:"\u5BFC\u51FA\u5BF9\u8BDD",importChat:"\u5BFC\u5165\u5BF9\u8BDD",prototypeLibrary:"\u539F\u578B\u9875\u9762\u5E93",tokenStats:"Token \u7EDF\u8BA1",auditLog:"\u547D\u4EE4\u6267\u884C\u5BA1\u8BA1",shortcuts:"\u67E5\u770B\u5FEB\u6377\u952E",versionInfo:"\u7248\u672C\u4FE1\u606F",detachTitle:"\u8131\u79BB\u4E3A\u72EC\u7ACB\u7A97\u53E3",attachTitle:"\u56DE\u5F52\u4FA7\u8FB9\u680F"},detach:{taskRunning:"\u4EFB\u52A1\u6267\u884C\u4E2D\uFF0C\u8BF7\u7B49\u5F85\u5B8C\u6210\u540E\u518D\u64CD\u4F5C"},session:{allSessions:"\u5168\u90E8\u4F1A\u8BDD",newSessionTitle:"\u65B0\u5EFA\u4F1A\u8BDD (Alt+N)",searchPlaceholder:"\u641C\u7D22\u4F1A\u8BDD...",closeAll:"\u5173\u95ED\u5168\u90E8",renameTitle:"\u91CD\u547D\u540D\u4F1A\u8BDD",renamePlaceholder:"\u8BF7\u8F93\u5165\u4F1A\u8BDD\u540D\u79F0",confirmCloseTitle:"\u786E\u8BA4\u5173\u95ED\u4F1A\u8BDD",confirmCloseMessage:"\u786E\u5B9A\u8981\u5173\u95ED\u8BE5\u4F1A\u8BDD\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002"},chat:{welcomeTitle:"\u5F00\u59CB\u5BF9\u8BDD",welcomeSubtitle:"\u8F93\u5165\u60A8\u7684\u95EE\u9898\uFF0CAI \u52A9\u624B\u5C06\u4E3A\u60A8\u89E3\u7B54",askBasedOnSelection:"\u57FA\u4E8E\u9009\u4E2D\u5185\u5BB9\u63D0\u95EE",confirmClearTitle:"\u786E\u8BA4\u6E05\u9664",confirmClearMessage:"\u786E\u5B9A\u8981\u6E05\u9664\u6240\u6709\u5BF9\u8BDD\u5386\u53F2\u5417\uFF1F",confirmDeletePromptTitle:"\u786E\u8BA4\u5220\u9664",confirmDeletePromptMessage:"\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u63D0\u793A\u8BCD\u5417\uFF1F",requestFailed:"\u8BF7\u6C42\u5931\u8D25: {message}",networkError:"\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5",timeoutError:"\u8BF7\u6C42\u8D85\u65F6: {message}",taskInterruptedSwRestart:"\u540E\u53F0\u670D\u52A1\u5F02\u5E38\u91CD\u542F\uFF0CAPI \u8C03\u7528\u5DF2\u4E2D\u65AD",quote:"\u5F15\u7528",export:"\u5BFC\u51FA",quoteTitle:"\u5F15\u7528\u6B64\u6D88\u606F",quotedPrefix:"\u{1F4AC} \u5DF2\u5F15\u7528: {text}",navPrevTitle:"\u4E0A\u4E00\u6761\u6D88\u606F (Alt+\u2191)\uFF0CCtrl/Cmd+\u70B9\u51FB\u56DE\u5230\u6700\u9876\u7AEF",navNextTitle:"\u4E0B\u4E00\u6761\u6D88\u606F (Alt+\u2193)\uFF0CCtrl/Cmd+\u70B9\u51FB\u8DF3\u5230\u5E95\u7AEF",navQuestionTitle:"\u95EE\u9898\u5217\u8868",navEmptyLabel:"\u6682\u65E0\u95EE\u9898",navQuestionNoText:"(\u56FE\u7247/\u9644\u4EF6\u6D88\u606F)"},toolPanel:{title:"\u5DE5\u5177\u914D\u7F6E",searchPlaceholder:"\u641C\u7D22\u5DE5\u5177\u540D\u79F0\u6216\u63CF\u8FF0...",categoryAll:"\u5168\u90E8",preselect:"\u5DE5\u5177\u9884\u7B5B\u9009",preselectHint:`\u5F00\u542F\uFF1AAI \u5148\u5224\u65AD\u54EA\u4E9B\u5DE5\u5177\u53EF\u80FD\u7528\u5F97\u4E0A\uFF0C\u53EA\u4F20\u76F8\u5173\u5DE5\u5177\u3002\u597D\u5904\u662F Token \u7701\u4E86\uFF0C\u4F46\u4E07\u4E00\u5224\u65AD\u4E0D\u51C6\uFF0C\u6F0F\u6389\u4E86\u5173\u952E\u5DE5\u5177\uFF0C\u4EFB\u52A1\u53EF\u80FD\u505A\u4E0D\u597D
8
+ \uFF08\u65E0\u6CD5\u83B7\u53D6\u6807\u7B7E\u9875\u4FE1\u606F: {error}\uFF09`,untitled:"\u65E0\u6807\u9898",unknownUrl:"\u672A\u77E5"},settings:{docTitle:"AI Helper - \u914D\u7F6E",language:"\u754C\u9762\u8BED\u8A00",languageChanged:"\u8BED\u8A00\u5DF2\u5207\u6362\uFF0C\u90E8\u5206\u9875\u9762\u5237\u65B0\u540E\u751F\u6548",appearance:"\u5916\u89C2",themeHint:"\u4E3B\u9898\u5373\u65F6\u751F\u6548\u5E76\u5728\u6240\u6709\u9875\u9762\u540C\u6B65",themeSystem:"\u8DDF\u968F\u7CFB\u7EDF",themeLight:"\u4EAE\u8272",themeDark:"\u6697\u8272",pageTitle:"AI Helper \u914D\u7F6E",subtitle:"\u7F51\u9875\u667A\u80FD\u52A9\u624B - OpenAI \u517C\u5BB9\u63A5\u53E3",importConfigTitle:"\u5BFC\u5165\u914D\u7F6E",exportConfigTitle:"\u5BFC\u51FA\u914D\u7F6E",tabBasic:"\u57FA\u7840",tabReact:"\u63A8\u7406",tabToolbar:"\u5212\u8BCD",tabAgent:"\u4EE3\u7406",tabToolbox:"\u6269\u5C55",saveConfig:"\u4FDD\u5B58\u914D\u7F6E",apiBaseHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u624B\u52A8\u8F93\u5165\uFF09",addApiBaseTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49 API Base URL",addAddress:"+ \u6DFB\u52A0\u5730\u5740",apiBaseUrlPlaceholder:"API Base URL\uFF08\u5982 https://api.example.com/v1\uFF09",apiBaseLabelPlaceholder:"\u6807\u7B7E/\u5907\u6CE8\uFF08\u53EF\u9009\uFF0C\u5982 \u6211\u7684\u4EE3\u7406\uFF09",confirmAdd:"\u786E\u8BA4\u6DFB\u52A0",requiredHint:"\uFF08\u5FC5\u586B\uFF09",apiKeyHint:"\u8BF7\u4ECE\u60A8\u4F7F\u7528\u7684\u5927\u6A21\u578B\u5E73\u53F0\u83B7\u53D6\u5BF9\u5E94\u7684 API Key\uFF0C\u5E76\u5728\u6B64\u914D\u7F6E\u4E2D\u586B\u5199\u3002\u8BF7\u59A5\u5584\u4FDD\u7BA1\u60A8\u7684 API Key\uFF0C\u907F\u514D\u6CC4\u9732\u3002",apiKeyPlaceholder:"\u8BF7\u8F93\u5165\u60A8\u7684 API Key",toggleApiKey:"\u663E\u793A/\u9690\u85CF API Key",modelName:"\u6A21\u578B\u540D\u79F0",modelNameHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u6DFB\u52A0\u65B0\u6A21\u578B\uFF09",selectModelPlaceholder:"\u8BF7\u4ECE\u4E0B\u65B9\u9009\u62E9\u6A21\u578B",noMatch:"\u65E0\u5339\u914D\u9879",addModelTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u6A21\u578B",addModel:"+ \u6DFB\u52A0\u6A21\u578B",fetchModels:"\u27F3 \u4ECE API \u83B7\u53D6",fetchModelsTitle:"\u4ECE\u5F53\u524D\u5382\u5546 API \u62C9\u53D6\u53EF\u7528\u6A21\u578B\u5217\u8868",fetchModelsLoading:"\u83B7\u53D6\u4E2D\u2026",fetchModelsNeedConfig:"\u8BF7\u5148\u586B\u5199 API Base URL \u548C API Key",fetchModelsSuccess:"\u2705 \u5DF2\u83B7\u53D6 {total} \u4E2A\u6A21\u578B\uFF08\u65B0\u589E {added} \u4E2A\uFF09",fetchModelsEmpty:"\u672A\u83B7\u53D6\u5230\u6A21\u578B\uFF0C\u8BF7\u624B\u52A8\u6DFB\u52A0",fetchModelsFailed:"\u274C \u83B7\u53D6\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6216\u624B\u52A8\u6DFB\u52A0\u6A21\u578B",fetchModelsAuthFailed:"\u274C \u8BA4\u8BC1\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5 API Key",modelNameInputPlaceholder:"\u6A21\u578B\u540D\u79F0\uFF08\u5982 gpt-4o\uFF09",contextWindowPlaceholder:"\u4E0A\u4E0B\u6587\u7A97\u53E3\u5927\u5C0F\uFF08tokens\uFF09",contextWindowHint:"128K=128000, 200K=200000, 1M=1000000, \u7559\u7A7A\u5219\u81EA\u52A8\u63A8\u65AD",enableImageInput:"\u542F\u7528\u56FE\u7247\u8BC6\u522B\u529F\u80FD",enableImageInputHint:"\uFF08\u5F00\u542F\u540E\u53EF\u5728\u4FA7\u8FB9\u680F\u53D1\u9001\u56FE\u7247\u7ED9\u591A\u6A21\u6001\u6A21\u578B\u8FDB\u884C\u5206\u6790\uFF09",imageApiBaseHint:"\uFF08\u4ECE\u4E0B\u62C9\u5217\u8868\u9009\u62E9\uFF0C\u6216\u624B\u52A8\u8F93\u5165\uFF1B\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E\uFF09",addImageApiBaseTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u56FE\u7247 API Base URL",useBaseModelPlaceholder:"\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E",imageApiKeyHint:"\uFF08\u53EF\u9009\uFF0C\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u914D\u7F6E\uFF09",imageApiKeyPlaceholder:"\u8BF7\u8F93\u5165\u56FE\u7247\u8BC6\u522B API Key",imageModelNameHint:"\uFF08\u652F\u6301\u591A\u6A21\u6001\u89C6\u89C9\u80FD\u529B\u7684\u6A21\u578B\uFF0C\u4ECE\u5217\u8868\u9009\u62E9\u6216\u6DFB\u52A0\u65B0\u6A21\u578B\uFF1B\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B\u7684\u6A21\u578B\u540D\u79F0\uFF09",useBaseModelPlaceholderShort:"\u7559\u7A7A\u5219\u4F7F\u7528\u57FA\u7840\u6A21\u578B",addImageModelTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u56FE\u7247\u8BC6\u522B\u6A21\u578B",systemPrompt:"\u7CFB\u7EDF\u63D0\u793A\u8BCD",systemPromptHint:"\uFF08\u53EF\u9009\uFF0C\u7559\u7A7A\u5219\u4F7F\u7528\u9ED8\u8BA4\u503C\uFF09",resetToDefault:"\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C",systemPromptTip:"\u{1F4A1} \u63D0\u793A\uFF1A\u7CFB\u7EDF\u63D0\u793A\u8BCD\u7528\u4E8E\u5B9A\u4E49 AI \u52A9\u624B\u7684\u884C\u4E3A\u548C\u89D2\u8272\u3002",collapse:"\u2212 \u6536\u8D77",modelNameRequired:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",modelAdded:"\u6A21\u578B\u5DF2\u6DFB\u52A0",imageModelAdded:"\u56FE\u7247\u6A21\u578B\u5DF2\u6DFB\u52A0",apiBaseSwitched:"API Base URL \u5DF2\u5207\u6362\uFF0C\u8BF7\u786E\u4FDD API Key \u5BF9\u5E94\u6709\u6548",apiBaseRequired:"\u8BF7\u8F93\u5165 API Base URL",urlInvalid:"URL \u683C\u5F0F\u4E0D\u6B63\u786E",apiBaseAdded:"API Base URL \u5DF2\u6DFB\u52A0",imageApiBaseSwitched:"\u56FE\u7247 API Base URL \u5DF2\u5207\u6362",imageApiBaseAdded:"\u56FE\u7247 API Base URL \u5DF2\u6DFB\u52A0",maxIterationsRangeError:"\u6700\u5927\u5FAA\u73AF\u6B21\u6570\u5FC5\u987B\u5728 10-1000 \u4E4B\u95F4",apiTimeoutRangeError:"API \u8BF7\u6C42\u8D85\u65F6\u5FC5\u987B\u5728 1-10 \u5206\u949F \u4E4B\u95F4",loopTimeoutRangeError:"\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6\u5FC5\u987B\u5728 1-120 \u5206\u949F \u4E4B\u95F4",toolTimeoutRangeError:"\u5DE5\u5177\u6267\u884C\u8D85\u65F6\u5FC5\u987B\u5728 1-30 \u5206\u949F \u4E4B\u95F4",apiKeyEmpty:"API Key \u4E0D\u80FD\u4E3A\u7A7A",saveFailed:"\u4FDD\u5B58\u5931\u8D25\uFF1A{message}",saveSuccess:"\u914D\u7F6E\u5DF2\u4FDD\u5B58\u6210\u529F\uFF01",deleteModel:"\u5220\u9664\u6B64\u6A21\u578B",ctxSliderIconTitle:"\u8BBE\u7F6E\u8BE5\u6A21\u578B\u7684\u4E0A\u4E0B\u6587\u7A97\u53E3",ctxSliderAuto:"\u81EA\u52A8",ctxSliderAutoTitle:"\u6062\u590D\u81EA\u52A8\u63A8\u65AD",ctxBadgeAutoTip:"\u81EA\u52A8\u63A8\u65AD\uFF08\u672A\u624B\u52A8\u8BBE\u7F6E\uFF09",ctxSliderResetAuto:"\u6062\u590D\u81EA\u52A8",deleteApiBase:"\u5220\u9664\u6B64\u5730\u5740",providerConfig:"\u5382\u5546\u914D\u7F6E",providerConfigHint:"\uFF08\u5207\u6362\u540E\u7ACB\u5373\u751F\u6548\uFF1B\u6BCF\u4E2A\u914D\u7F6E\u72EC\u7ACB\u8BB0\u5FC6\u5730\u5740\u3001API Key\u3001\u6A21\u578B\u5217\u8868\uFF09",profileScopeHint:"\u4EE5\u4E0B\u8BBE\u7F6E\u4FDD\u5B58\u5230\u5382\u5546\u914D\u7F6E\u201C{name}\u201D\uFF0C\u5207\u6362\u5382\u5546\u65F6\u81EA\u52A8\u8054\u52A8",newProfile:"+ \u65B0\u5EFA",newProfileTitle:"\u65B0\u5EFA\u4E00\u4E2A\u7A7A\u7684\u5382\u5546\u914D\u7F6E",profileNameTitle:"\u65B0\u5EFA\u5382\u5546\u914D\u7F6E",saveAsProfile:"\u53E6\u5B58\u4E3A",saveAsProfileTitle:"\u4EE5\u5F53\u524D\u914D\u7F6E\u53E6\u5B58\u4E3A\u65B0\u7684\u5382\u5546\u914D\u7F6E",renameProfile:"\u91CD\u547D\u540D",renameProfileTitle:"\u91CD\u547D\u540D\u5F53\u524D\u914D\u7F6E",deleteProfile:"\u5220\u9664",deleteProfileTitle:"\u5220\u9664\u5F53\u524D\u914D\u7F6E",profileNamePlaceholder:"\u914D\u7F6E\u540D\u79F0\uFF08\u5982 DeepSeek \u5B98\u65B9\u3001\u6211\u7684\u4E2D\u8F6C\uFF09",profileNameRequired:"\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0",deleteProfileConfirm:"\u786E\u5B9A\u8981\u5220\u9664\u5382\u5546\u914D\u7F6E\u201C{name}\u201D\u5417\uFF1F\u5220\u9664\u540E\u4E0D\u53EF\u6062\u590D\u3002",atLeastOneProfile:"\u81F3\u5C11\u4FDD\u7559\u4E00\u4E2A\u5382\u5546\u914D\u7F6E",profileSwitched:"\u5DF2\u5207\u6362\u5230 {name}",profileCreated:"\u5DF2\u521B\u5EFA\u914D\u7F6E {name}",profileRenamed:"\u5DF2\u91CD\u547D\u540D\u4E3A {name}",profileDeleted:"\u5DF2\u5220\u9664\u914D\u7F6E {name}",profileCopySuffix:"\u526F\u672C",completionFeedbackTitle:"\u5B8C\u6210\u53CD\u9988",completionSound:"\u64AD\u653E\u63D0\u793A\u97F3\uFF08\u6210\u529F\u4E0E\u5931\u8D25\u97F3\u6548\u4E0D\u540C\uFF09",completionSoundHint:"\u6210\u529F\u65F6\u6E05\u8106\u4E09\u8FDE\u97F3\uFF08Do-Mi-Sol \u4E0A\u626C\uFF09\uFF0C\u5931\u8D25\u65F6\u4F4E\u6C89\u65B9\u6CE2\u53CC\u97F3\uFF1B\u7528\u6237\u4E3B\u52A8\u53D6\u6D88\u4E0D\u64AD\u653E",completionConfetti:"\u64AD\u653E\u5F69\u5E26\u52A8\u753B",completionConfettiHint:"\u4EC5\u5728\u56DE\u7B54\u6210\u529F\u5B8C\u6210\u65F6\u64AD\u653E\uFF1B\u5931\u8D25\u548C\u53D6\u6D88\u4E0D\u64AD\u653E",completionNotification:"\u4EFB\u52A1\u5B8C\u6210\u6216\u5931\u8D25\u65F6\u5F39\u51FA\u684C\u9762\u901A\u77E5",completionNotificationHint:"\u4EC5\u5728\u770B\u4E0D\u5230\u4FA7\u8FB9\u680F\u65F6\u5F39\u51FA\uFF1B\u6210\u529F\u81EA\u52A8\u6D88\u5931\uFF0C\u5931\u8D25\u505C\u7559\u81F3\u624B\u52A8\u5173\u95ED\uFF1B\u70B9\u51FB\u901A\u77E5\u6253\u5F00\u4FA7\u8FB9\u680F",scheduledNotification:"\u5B9A\u65F6\u4EFB\u52A1\u5B8C\u6210\u6216\u5931\u8D25\u65F6\u5F39\u51FA\u684C\u9762\u901A\u77E5",scheduledNotificationHint:"\u5B9A\u65F6\u4EFB\u52A1\u5728\u540E\u53F0\u6267\u884C\u3001\u65E0\u58F0\u97F3\u7B49\u5176\u4ED6\u63D0\u9192\u6E20\u9053\uFF0C\u5F00\u5173\u5F00\u542F\u65F6\u603B\u662F\u5F39\u51FA\uFF1B\u9ED8\u8BA4\u5F00\u542F\uFF0C\u53EF\u624B\u52A8\u5173\u95ED",interactionNotification:"AI \u9700\u8981\u4F60\u786E\u8BA4\u6216\u6F84\u6E05\u65F6\u63D0\u9192\u6211",interactionNotificationHint:"\u63A8\u7406\u5FAA\u73AF\u7B49\u5F85\u4F60\u64CD\u4F5C\u65F6\u5F39\u684C\u9762\u63D0\u9192\uFF1B\u4EC5\u5728\u770B\u5F97\u5230\u4FA7\u8FB9\u680F\u65F6\u4E0D\u6253\u6270\uFF0C\u70B9\u51FB\u901A\u77E5\u6253\u5F00\u4FA7\u8FB9\u680F",showMessageTimestamp:"\u663E\u793A\u6D88\u606F\u65F6\u95F4\u6233",showMessageTimestampHint:"\uFF08\u5728\u7528\u6237\u95EE\u9898\u6C14\u6CE1\u4E0B\u65B9\u663E\u793A\u53D1\u95EE\u65F6\u95F4\uFF0C\u4ECA\u5929\u663E\u793A\u65F6\u5206\uFF0C\u975E\u4ECA\u5929\u663E\u793A\u65E5\u671F\uFF09",sidePanelScopeTitle:"\u4FA7\u8FB9\u680F\u4F5C\u7528\u57DF",sidePanelScopeGlobal:"\u5168\u5C40\u6A21\u5F0F",sidePanelScopeTab:"\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F",sidePanelScopeGlobalHint:"\u540C\u4E00\u7A97\u53E3\u5185\u6240\u6709\u6807\u7B7E\u9875\u5171\u4EAB\u540C\u4E00\u4EFD\u4FA7\u8FB9\u680F\u5B9E\u4F8B\uFF0C\u5207\u6362\u6807\u7B7E\u9875\u65F6\u59CB\u7EC8\u53EF\u89C1",sidePanelScopeTabHint:"\u4FA7\u8FB9\u680F\u53EA\u5728\u6253\u5F00\u5B83\u7684\u6807\u7B7E\u9875\u663E\u793A\uFF1B\u53EF\u5728\u591A\u4E2A\u6807\u7B7E\u9875\u5404\u81EA\u6253\u5F00\uFF0C\u5207\u8D70\u81EA\u52A8\u9690\u85CF\u3001\u5207\u56DE\u81EA\u52A8\u6062\u590D",autoGroupTabs:"\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F\u4E0B\uFF0C\u628A\u6253\u5F00\u4FA7\u8FB9\u680F\u7684\u6807\u7B7E\u9875\u5F52\u5165\u5206\u7EC4",autoGroupTabsHint:"\u4EC5\u6807\u7B7E\u9875\u7ED1\u5B9A\u6A21\u5F0F\u751F\u6548\uFF1B\u628A\u8FD9\u4E9B\u6807\u7B7E\u9875\u5F52\u5165\u4E00\u4E2A\u5F69\u8272\u6807\u7B7E\u7EC4\u4FBF\u4E8E\u8BC6\u522B\uFF08\u6807\u7B7E\u9875\u4F1A\u88AB\u79FB\u52A8\u5230\u5206\u7EC4\u6240\u5728\u4F4D\u7F6E\uFF09\uFF0C\u5173\u95ED\u67D0\u4E2A\u6807\u7B7E\u9875\u7684\u4FA7\u8FB9\u680F\u6216\u5207\u56DE\u5168\u5C40\u6A21\u5F0F\u65F6\u4F1A\u79FB\u51FA\u5206\u7EC4"},header:{docTitle:"AI Helper - \u6A21\u578B\u95EE\u7B54",themeToggle:"\u4E3B\u9898\uFF1A{theme}",settingsTitle:"\u63D2\u4EF6\u8BBE\u7F6E",switchAgent:"\u5207\u6362\u52A9\u624B",defaultAssistant:"\u{1F916} \u9ED8\u8BA4\u52A9\u624B",notConnected:"\u672A\u8FDE\u63A5",agentAddress:"\u4EE3\u7406\u5730\u5740",copyAgentAddress:"\u590D\u5236\u4EE3\u7406\u5730\u5740",refreshAgentStatus:"\u5237\u65B0\u4EE3\u7406\u5728\u7EBF\u72B6\u6001",restart:"\u91CD\u542F",restartAgent:"\u91CD\u542F\u4EE3\u7406\u670D\u52A1",update:"\u66F4\u65B0",updateAndRestart:"\u66F4\u65B0\u5E76\u91CD\u542F\u4EE3\u7406",stop:"\u505C\u6B62",stopAgent:"\u505C\u6B62\u4EE3\u7406\u670D\u52A1",addEditAgent:"\u65B0\u589E/\u7F16\u8F91\u4EE3\u7406",addEditAssistant:"\u65B0\u589E/\u7F16\u8F91\u52A9\u624B",manageKnowledge:"\u7BA1\u7406\u77E5\u8BC6\u5E93",moreActions:"\u66F4\u591A\u64CD\u4F5C",clearChat:"\u6E05\u9664\u5BF9\u8BDD",exportChat:"\u5BFC\u51FA\u5BF9\u8BDD",importChat:"\u5BFC\u5165\u5BF9\u8BDD",prototypeLibrary:"\u539F\u578B\u9875\u9762\u5E93",tokenStats:"Token \u7EDF\u8BA1",auditLog:"\u547D\u4EE4\u6267\u884C\u5BA1\u8BA1",shortcuts:"\u67E5\u770B\u5FEB\u6377\u952E",versionInfo:"\u7248\u672C\u4FE1\u606F",detachTitle:"\u8131\u79BB\u4E3A\u72EC\u7ACB\u7A97\u53E3",attachTitle:"\u56DE\u5F52\u4FA7\u8FB9\u680F"},detach:{taskRunning:"\u4EFB\u52A1\u6267\u884C\u4E2D\uFF0C\u8BF7\u7B49\u5F85\u5B8C\u6210\u540E\u518D\u64CD\u4F5C"},session:{allSessions:"\u5168\u90E8\u4F1A\u8BDD",newSessionTitle:"\u65B0\u5EFA\u4F1A\u8BDD (Alt+N)",searchPlaceholder:"\u641C\u7D22\u4F1A\u8BDD...",closeAll:"\u5173\u95ED\u5168\u90E8",renameTitle:"\u91CD\u547D\u540D\u4F1A\u8BDD",renamePlaceholder:"\u8BF7\u8F93\u5165\u4F1A\u8BDD\u540D\u79F0",confirmCloseTitle:"\u786E\u8BA4\u5173\u95ED\u4F1A\u8BDD",confirmCloseMessage:"\u786E\u5B9A\u8981\u5173\u95ED\u8BE5\u4F1A\u8BDD\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002"},chat:{welcomeTitle:"\u5F00\u59CB\u5BF9\u8BDD",welcomeSubtitle:"\u8F93\u5165\u60A8\u7684\u95EE\u9898\uFF0CAI \u52A9\u624B\u5C06\u4E3A\u60A8\u89E3\u7B54",askBasedOnSelection:"\u57FA\u4E8E\u9009\u4E2D\u5185\u5BB9\u63D0\u95EE",confirmClearTitle:"\u786E\u8BA4\u6E05\u9664",confirmClearMessage:"\u786E\u5B9A\u8981\u6E05\u9664\u6240\u6709\u5BF9\u8BDD\u5386\u53F2\u5417\uFF1F",confirmDeletePromptTitle:"\u786E\u8BA4\u5220\u9664",confirmDeletePromptMessage:"\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u63D0\u793A\u8BCD\u5417\uFF1F",requestFailed:"\u8BF7\u6C42\u5931\u8D25: {message}",networkError:"\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5",timeoutError:"\u8BF7\u6C42\u8D85\u65F6: {message}",taskInterruptedSwRestart:"\u540E\u53F0\u670D\u52A1\u5F02\u5E38\u91CD\u542F\uFF0CAPI \u8C03\u7528\u5DF2\u4E2D\u65AD",quote:"\u5F15\u7528",export:"\u5BFC\u51FA",quoteTitle:"\u5F15\u7528\u6B64\u6D88\u606F",quotedPrefix:"\u{1F4AC} \u5DF2\u5F15\u7528: {text}",navPrevTitle:"\u4E0A\u4E00\u4E2A\u95EE\u9898 (Alt+\u2191)\uFF0CCtrl/Cmd+\u70B9\u51FB\u56DE\u5230\u6700\u9876\u7AEF",navNextTitle:"\u4E0B\u4E00\u4E2A\u95EE\u9898 (Alt+\u2193)\uFF0CCtrl/Cmd+\u70B9\u51FB\u8DF3\u5230\u5E95\u7AEF",navQuestionTitle:"\u95EE\u9898\u5217\u8868",navPosition:"{current} / {total}",navPinLabel:"\u9489\u4F4F",navUnpinLabel:"\u53D6\u6D88\u9489\u4F4F",navHotzoneTitle:"\u6D88\u606F\u8DF3\u8F6C\uFF1A\u60AC\u505C\u6216 Tab \u805A\u7126\u5C55\u5F00\u95EE\u9898\u5217\u8868\uFF0C\u70B9\u51FB/Enter \u9489\u4F4F\uFF0CEsc \u6536\u8D77",navQuestionNoText:"(\u56FE\u7247/\u9644\u4EF6\u6D88\u606F)",navSearchPlaceholder:"\u641C\u7D22\u95EE\u9898\u2026",navNoMatch:"\u6CA1\u6709\u5339\u914D\u7684\u95EE\u9898",navQuestionImageCount:"{count} \u5F20\u56FE\u7247"},toolPanel:{title:"\u5DE5\u5177\u914D\u7F6E",searchPlaceholder:"\u641C\u7D22\u5DE5\u5177\u540D\u79F0\u6216\u63CF\u8FF0...",categoryAll:"\u5168\u90E8",preselect:"\u5DE5\u5177\u9884\u7B5B\u9009",preselectHint:`\u5F00\u542F\uFF1AAI \u5148\u5224\u65AD\u54EA\u4E9B\u5DE5\u5177\u53EF\u80FD\u7528\u5F97\u4E0A\uFF0C\u53EA\u4F20\u76F8\u5173\u5DE5\u5177\u3002\u597D\u5904\u662F Token \u7701\u4E86\uFF0C\u4F46\u4E07\u4E00\u5224\u65AD\u4E0D\u51C6\uFF0C\u6F0F\u6389\u4E86\u5173\u952E\u5DE5\u5177\uFF0C\u4EFB\u52A1\u53EF\u80FD\u505A\u4E0D\u597D
9
9
  \u5173\u95ED\uFF1A\u5168\u90E8\u542F\u7528\u7684\u5DE5\u5177\u4E00\u6B21\u6027\u7ED9\u6A21\u578B\u3002\u6CA1\u6709\u5224\u65AD\u5F00\u9500\uFF0C\u542F\u52A8\u66F4\u5FEB\uFF0C\u4F46\u5DE5\u5177\u592A\u591A\u4F1A\u6D6A\u8D39 Token`,confirmHint:`\u542F\u7528\u540E\uFF0C\u5F53\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\uFF08\u5DE5\u5177\u8C03\u7528\u3001\u547D\u4EE4\u6267\u884C\u7B49\uFF09\u65F6\uFF0C\u4F1A\u5F39\u51FA\u786E\u8BA4\u6846\u7B49\u5F85\u7528\u6237\u786E\u8BA4\u3002
10
- \u5173\u95ED\u540E\uFF0C\u6240\u6709\u64CD\u4F5C\u5C06\u76F4\u63A5\u653E\u884C\u6267\u884C\uFF0C\u65E0\u9700\u786E\u8BA4\u3002`,clearSearch:"\u6E05\u9664\u641C\u7D22",configBtnTitle:"\u70B9\u51FB\u6253\u5F00\u5DE5\u5177\u8BE6\u7EC6\u914D\u7F6E"},toolStats:{title:"\u{1F4CA} \u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1",subtitle:"\u5404\u5DE5\u5177\u8C03\u7528\u9891\u7387\u3001\u6210\u529F\u7387\u3001\u5E73\u5747\u8017\u65F6",usedTools:"\u5DF2\u4F7F\u7528\u5DE5\u5177",calls:"\u8C03\u7528",success:"\u6210\u529F",successRate:"\u6210\u529F\u7387",avgDuration:"\u5E73\u5747\u8017\u65F6",unusedTools:"\u672A\u4F7F\u7528\u5DE5\u5177",noData:"\u6682\u65E0\u7EDF\u8BA1\u6570\u636E",btnTitle:"\u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1",clearTitle:"\u6E05\u7A7A\u7EDF\u8BA1"},tokenStatsPanel:{title:"\u{1FA99} Token \u4F7F\u7528\u7EDF\u8BA1",subtitle:"\u5355\u6B21\u95EE\u7B54 ReAct \u4F1A\u8BDD\u7EF4\u5EA6 & \u603B\u4F53\u7EF4\u5EA6",currentSession:"\u5F53\u524D\u4F1A\u8BDD",globalStats:"\u5168\u5C40\u7EDF\u8BA1",recentCalls:"\u8FD1\u671F\u8C03\u7528",noData:"\u6682\u65E0\u7EDF\u8BA1\u6570\u636E",tabTrend:"\u8D8B\u52BF",tabDistribution:"\u5206\u5E03",tabGlobal:"\u5168\u5C40",timeRangeToday:"\u4ECA\u65E5",timeRangeWeek:"\u672C\u5468",timeRangeMonth:"\u672C\u6708",timeRangeAll:"\u5168\u90E8",globalSparklineTitle:"\u6700\u8FD1 30 \u5929\u8D8B\u52BF"},customConfirm:{defaultTitle:"\u786E\u8BA4\u64CD\u4F5C"},promptDialog:{title:"\u63D0\u793A"},promptManager:{title:"\u63D0\u793A\u8BCD\u7BA1\u7406",codePlaceholder:"\u7F16\u7801\uFF08\u5982: code\uFF09",contentPlaceholder:"\u63D0\u793A\u8BCD\u5185\u5BB9",addPrompt:"\u6DFB\u52A0\u63D0\u793A\u8BCD"},clarify:{title:"\u9700\u8981\u60A8\u7684\u6F84\u6E05",selectOption:"\u8BF7\u9009\u62E9\u4E00\u4E2A\u9009\u9879",inputPlaceholder:"\u8BF7\u8F93\u5165\u8865\u5145\u4FE1\u606F\uFF08\u53EF\u9009\uFF09...",customPlaceholder:"\u8BF7\u8F93\u5165\u60A8\u7684\u81EA\u5B9A\u4E49\u5185\u5BB9...",additionalTitle:"\u8865\u5145\u8BF4\u660E\uFF08\u53EF\u9009\uFF09",additionalHint:"\u5982\u679C\u60A8\u6709\u66F4\u591A\u76F8\u5173\u4FE1\u606F\uFF0C\u53EF\u4EE5\u5728\u6B64\u8865\u5145\u8BF4\u660E",remainingTime:"\u5269\u4F59\u65F6\u95F4: 3:00"},prototype:{previewTitle:"UI \u539F\u578B\u9884\u89C8",continueOptimize:"\u{1F4A1} \u7EE7\u7EED\u4F18\u5316",libraryTitle:"\u{1F3A8} \u539F\u578B\u9875\u9762\u5E93",searchPlaceholder:"\u641C\u7D22\u539F\u578B...",sortTimeNew:"\u65F6\u95F4 (\u65B0\u2192\u65E7)",sortTimeOld:"\u65F6\u95F4 (\u65E7\u2192\u65B0)",sortTitleAz:"\u6807\u9898 (A\u2192Z)",sortTitleZa:"\u6807\u9898 (Z\u2192A)",empty:"\u6682\u65E0\u539F\u578B",zoomOut:"\u7F29\u5C0F (Ctrl+\u6EDA\u8F6E)",zoomReset:"\u70B9\u51FB\u91CD\u7F6E",resetZoom:"\u70B9\u51FB\u91CD\u7F6E",zoomIn:"\u653E\u5927 (Ctrl+\u6EDA\u8F6E)",download:"\u4E0B\u8F7D",openInTab:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00",openInNewTab:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00",openLocal:"\u672C\u5730\u6D4F\u89C8\u5668\u6253\u5F00"},shortcuts:{title:"\u2328\uFE0F \u5FEB\u6377\u952E",sendMessage:"\u53D1\u9001\u6D88\u606F",newLine:"\u6362\u884C",inputHistory:"\u8F93\u5165\u5386\u53F2\uFF08\u8F93\u5165\u6846\u5185\uFF09",clearInput:"\u6E05\u7A7A\u8F93\u5165\u6846",keyColumn:"\u5FEB\u6377\u952E",functionColumn:"\u529F\u80FD",platformColumn:"\u5E73\u53F0",platformWinMac:"Win / Mac",prevMessage:"\u8DF3\u8F6C\u5230\u4E0A\u4E00\u6761\u6D88\u606F",nextMessage:"\u8DF3\u8F6C\u5230\u4E0B\u4E00\u6761\u6D88\u606F",colShortcut:"\u5FEB\u6377\u952E",colFunction:"\u529F\u80FD",colPlatform:"\u5E73\u53F0",gotoPrev:"\u8DF3\u8F6C\u5230\u4E0A\u4E00\u6761\u6D88\u606F",gotoNext:"\u8DF3\u8F6C\u5230\u4E0B\u4E00\u6761\u6D88\u606F",scrollTop:"\u56DE\u5230\u5BF9\u8BDD\u9876\u90E8",scrollBottom:"\u8DF3\u5230\u5BF9\u8BDD\u5E95\u90E8",fullScreenshot:"\u5168\u9875\u9762\u622A\u56FE",areaScreenshot:"\u533A\u57DF\u622A\u56FE",regionScreenshot:"\u533A\u57DF\u622A\u56FE",toggleToolConfig:"\u6253\u5F00/\u5173\u95ED\u5DE5\u5177\u914D\u7F6E",openShortcutsPanel:"\u6253\u5F00\u5FEB\u6377\u952E\u9762\u677F",openShortcutPanel:"\u6253\u5F00\u5FEB\u6377\u952E\u9762\u677F",newSession:"\u65B0\u5EFA\u4F1A\u8BDD",closeSession:"\u5173\u95ED\u5F53\u524D\u4F1A\u8BDD",closeCurrentSession:"\u5173\u95ED\u5F53\u524D\u4F1A\u8BDD",editLastMessage:"\u7F16\u8F91\u6700\u8FD1\u4E00\u6761\u7528\u6237\u6D88\u606F"},versionInfo:{title:"\u2139\uFE0F \u7248\u672C\u4FE1\u606F",version:"\u7248\u672C\u53F7",tag:"Git Tag",commit:"Git \u63D0\u4EA4",publishedAt:"\u53D1\u5E03\u65F6\u95F4",website:"\u5B98\u7F51",discussions:"\u8BA8\u8BBA\u9891\u9053",reportIssue:"\u4E0A\u62A5\u95EE\u9898",githubRepo:"GitHub \u4ED3\u5E93",giteeRepo:"Gitee \u4ED3\u5E93",copy:"\u590D\u5236\u4FE1\u606F"},imageEditor:{editImage:"\u7F16\u8F91\u56FE\u7247",brush:"\u753B\u7B14 (B)",rect:"\u77E9\u5F62 (R)",ellipse:"\u692D\u5706 (E)",arrow:"\u7BAD\u5934 (A)",line:"\u76F4\u7EBF (L)",undo:"\u64A4\u9500 (Ctrl+Z)",confirm:"\u786E\u8BA4 (Enter)",cancel:"\u53D6\u6D88 (Esc)",downloadImage:"\u4E0B\u8F7D\u56FE\u7247",prev:"\u4E0A\u4E00\u5F20",next:"\u4E0B\u4E00\u5F20",prevImage:"\u4E0A\u4E00\u5F20",nextImage:"\u4E0B\u4E00\u5F20",brushSize:"\u753B\u7B14\u7C97\u7EC6",eraser:"\u6A61\u76AE\u64E6"},chatExport:{selectCurrentOnly:"\u4EC5\u9009\u5F53\u524D",selectedCount:"\u5DF2\u9009 {count} \u4E2A",exportSelected:"\u5BFC\u51FA\u9009\u4E2D",title:"\u5BFC\u51FA\u4F1A\u8BDD",exportSessions:"\u5BFC\u51FA\u4F1A\u8BDD"},agentEditor:{createNew:"\u521B\u5EFA\u65B0\u52A9\u624B",namePlaceholder:"\u52A9\u624B\u540D\u79F0",icon:"\u56FE\u6807",descPlaceholder:"\u8FD9\u4E2A\u52A9\u624B\u64C5\u957F\u4EC0\u4E48\uFF1F",templateQuickCreate:"\u6A21\u677F\u5FEB\u901F\u521B\u5EFA",promptPlaceholder:"\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684...",availableTools:"\u53EF\u7528\u5DE5\u5177",availableSkills:"\u53EF\u7528\u6280\u80FD",modelSettings:"\u6A21\u578B\u8BBE\u7F6E\uFF08\u7559\u7A7A\u5219\u4F7F\u7528\u5168\u5C40\u8BBE\u7F6E\uFF09",modelPlaceholder:"\u9009\u62E9\u6216\u8F93\u5165\u6A21\u578B\u540D\u79F0",allowSubAgent:"\u5141\u8BB8\u4F5C\u4E3A\u5B50\u52A9\u624B\u88AB\u8C03\u5EA6",name:"\u540D\u79F0",desc:"\u7B80\u77ED\u63CF\u8FF0",nameLabel:"\u540D\u79F0",descLabel:"\u7B80\u77ED\u63CF\u8FF0",selectTemplate:"-- \u9009\u62E9\u6A21\u677F\uFF08\u53EF\u9009\uFF09 --",systemPrompt:"\u7CFB\u7EDF\u63D0\u793A\u8BCD\uFF08\u5B9A\u4E49\u52A9\u624B\u7684\u89D2\u8272\u548C\u80FD\u529B\uFF09",inheritGlobalToolsHint:"\uFF08\u4E0D\u52FE\u9009\u5219\u7EE7\u627F\u5168\u5C40\u5DE5\u5177\u8BBE\u7F6E\uFF09",inheritGlobalSkillsHint:"\uFF08\u4E0D\u52FE\u9009\u5219\u4F7F\u7528\u5168\u90E8\u542F\u7528\u6280\u80FD\uFF09",toolsInheritGlobal:"\uFF08\u4E0D\u52FE\u9009\u5219\u7EE7\u627F\u5168\u5C40\u5DE5\u5177\u8BBE\u7F6E\uFF09",skillsInheritAll:"\uFF08\u4E0D\u52FE\u9009\u5219\u4F7F\u7528\u5168\u90E8\u542F\u7528\u6280\u80FD\uFF09",noSetting:"\u4E0D\u8BBE\u7F6E\uFF08\u4F7F\u7528\u5168\u5C40\uFF09",noPreset:"\u4E0D\u8BBE\u7F6E\uFF08\u4F7F\u7528\u5168\u5C40\uFF09",deleteTitle:"\u5220\u9664\u6B64\u52A9\u624B",deleteAgentTitle:"\u5220\u9664\u6B64\u52A9\u624B"},auditLog:{title:"\u{1F4CB} \u547D\u4EE4\u6267\u884C\u5BA1\u8BA1",filterAll:"\u5168\u90E8",filterCommand:"\u547D\u4EE4\u6267\u884C",filterFile:"\u6587\u4EF6\u64CD\u4F5C",filterAuth:"\u8BA4\u8BC1",filterSecurity:"\u5B89\u5168",filterSystem:"\u7CFB\u7EDF",recent50:"\u6700\u8FD150\u6761",recent100:"\u6700\u8FD1100\u6761",recent200:"\u6700\u8FD1200\u6761",recent500:"\u6700\u8FD1500\u6761",searchPlaceholder:"\u641C\u7D22\u64CD\u4F5C\u540D\u3001\u547D\u4EE4\u6216\u8DEF\u5F84...",categoryFilter:"\u5206\u7C7B\u7B5B\u9009:",countLabel:"\u6761\u6570:",clearSearch:"\u6E05\u9664",empty:"\u6682\u65E0\u5BA1\u8BA1\u65E5\u5FD7",noLogs:"\u6682\u65E0\u5BA1\u8BA1\u65E5\u5FD7",defaultRange:"\u9ED8\u8BA4\u67E5\u8BE2\u6700\u8FD17\u5929\u7684\u5BA1\u8BA1\u65E5\u5FD7"},input:{atHint:"\u63D0\u793A\u8BCD (\u5355\u51FB) / \u7F51\u9875 (Ctrl/Cmd+\u5355\u51FB)",placeholder:"\u8F93\u5165'/'\u5FEB\u6377\u63D0\u793A\u3001'@'\u5207\u6362\u52A9\u624B\u6216\u7F51\u9875\u3001'$'\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55\u6587\u4EF6\u3001'\u2191\u2193'\u5207\u6362\u5386\u53F2\u8F93\u5165\u3001Esc\u6E05\u7A7A",send:"\u53D1\u9001",clearSelection:"\u53D6\u6D88\u9009\u4E2D\u5185\u5BB9",pageLabel:"\u{1F310} \u7F51\u9875",clearPage:"\u53D6\u6D88\u7F51\u9875",mcpLabel:"\u{1F50C} MCP",clearMcp:"\u53D6\u6D88MCP\u670D\u52A1",skillLabel:"\u{1F9E9} \u6280\u80FD",clearSkill:"\u53D6\u6D88\u6280\u80FD",screenshotTitle:"\u622A\u53D6\u5F53\u524D\u9875\u9762",attachFileTitle:"\u4E0A\u4F20\u6587\u4EF6\uFF08PDF/Word/Excel/\u6587\u672C\uFF09",screenshot:"\u622A\u53D6\u5F53\u524D\u9875\u9762",uploadFile:"\u4E0A\u4F20\u6587\u4EF6\uFF08PDF/Word/Excel/\u6587\u672C\uFF09",aiDisclaimer:"\u5185\u5BB9\u7531 AI \u751F\u6210\uFF0C\u4EC5\u4F9B\u53C2\u8003",addMenuTitle:"\u6DFB\u52A0\u5185\u5BB9",addMenuPrompt:"\u63D0\u793A\u8BCD",addMenuScreenshot:"\u622A\u56FE",addMenuScreenshotFull:"\u6574\u9875\u622A\u56FE",addMenuScreenshotFullDesc:"\u622A\u53D6\u5F53\u524D\u53EF\u89C1\u9875\u9762",addMenuScreenshotRegion:"\u533A\u57DF\u622A\u56FE",addMenuScreenshotRegionDesc:"\u62D6\u62FD\u6846\u9009\u9875\u9762\u533A\u57DF",addMenuFile:"\u9644\u4EF6",addMenuSwitches:"\u5F00\u5173"},model:{selectModel:"\u9009\u62E9\u6A21\u578B",temperature:"\u6E29\u5EA6"},sectionSelect:{searchPlaceholder:"\u8F93\u5165\u5173\u952E\u5B57\u8FC7\u6EE4\u2026",noMatch:"\u65E0\u5339\u914D\u9879"},provider:{label:"API \u5382\u5546",manage:"\u7BA1\u7406\u5382\u5546\u914D\u7F6E"},promptSelector:{prompts:"\u63D0\u793A\u8BCD",skills:"\u6280\u80FD",pages:"\u7F51\u9875",agents:"\u52A9\u624B",proxies:"\u4EE3\u7406",knowledge:"\u77E5\u8BC6\u5E93",pagesCount:"\u7F51\u9875 ({count})",agentsCount:"\u52A9\u624B ({count})",proxiesCount:"\u4EE3\u7406 ({count})",knowledgeCount:"\u77E5\u8BC6\u5E93 ({count})",headerHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u53D1\u9001 \xB7 Ctrl+Enter\u5E26\u5165\u6587\u672C\u6846",agentHeaderHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u9009\u62E9 \xB7 Esc\u53D6\u6D88",switchHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u53D1\u9001 \xB7 Ctrl+Enter\u5E26\u5165\u6587\u672C\u6846",switchHintSelect:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u9009\u62E9 \xB7 Ctrl+Enter\u9009\u4E2D\u5E76\u5173\u95ED \xB7 Esc\u53D6\u6D88",mergedTitle:"\u805A\u5408\u641C\u7D22",mergedTitleCount:"\u805A\u5408\u641C\u7D22 ({count})"},memory:{label:"\u8BB0\u5FC6",historyLimit:"\u8BB0\u5FC6\u5386\u53F2\u9650\u5236",hint:"\u8BB0\u5FC6\u8D8A\u591A\uFF0C\u4E0A\u4E0B\u6587\u8D8A\u8FDE\u8D2F\uFF0C\u4F46 token \u6D88\u8017\u4E5F\u8D8A\u5927\uFF1B\u8BB0\u5FC6\u592A\u5C11\uFF0C\u5219\u53EF\u80FD\u65E0\u6CD5\u7ED3\u5408\u524D\u6587\u51C6\u786E\u56DE\u7B54\u3002",unlimited:"\u4E0D\u9650\u5236",recent200:"\u6700\u8FD1200\u6761",recent100:"\u6700\u8FD1100\u6761",recent50:"\u6700\u8FD150\u6761",recent20:"\u6700\u8FD120\u6761",recent10:"\u6700\u8FD110\u6761",recent5:"\u6700\u8FD15\u6761",recent2:"\u6700\u8FD12\u6761",custom:"\u81EA\u5B9A\u4E49:",unit:"\u6761",configEntry:"\u6253\u5F00\u8BB0\u5FC6\u914D\u7F6E",autoCompactLabel:"\u81EA\u52A8\u538B\u7F29",autoCompactHint:"\u4E0A\u4E0B\u6587\u5360\u7528\u8FBE\u5230 85% \u65F6\uFF0C\u53D1\u9001\u524D\u81EA\u52A8\u538B\u7F29\u4E00\u6B21\u4E3A\u6458\u8981\uFF08\u4F1A\u989D\u5916\u4EA7\u751F\u4E00\u6B21\u6458\u8981\u8C03\u7528\uFF09\u3002",persistSummaryLabel:"\u6458\u8981\u5B58\u5165\u8BB0\u5FC6",persistSummaryHint:"\u538B\u7F29\u65F6\u628A\u6458\u8981\u6C89\u6DC0\u4E3A\u8DE8\u4F1A\u8BDD\u957F\u671F\u8BB0\u5FC6\uFF1B\u540C\u4E00\u4F1A\u8BDD\u91CD\u590D\u538B\u7F29\u53EA\u66F4\u65B0\u540C\u4E00\u6761\u3002"},toggle:{memoryHint:"\u5F00\u542F\u540E\uFF0C\u524D\u6587\u95EE\u7B54\u5C06\u4F5C\u4E3A\u4E0A\u4E0B\u6587\uFF08\u9ED8\u8BA4\u5168\u90E8\uFF0C\u6761\u6570\u53EF\u914D\u7F6E\uFF09",toolsHint:"\u5DE5\u5177\u603B\u5F00\u5173\uFF1A\u70B9\u51FB\u5F00\u542F\u6216\u5173\u95ED\u5DE5\u5177\u8C03\u7528",selectionHint:"\u5F00\u542F\u540E\uFF0C\u5212\u8BCD\u9009\u4E2D\u5185\u5BB9\u65F6\u53EF\u5FEB\u901F\u63D0\u95EE",tools:"\u5DE5\u5177",selection:"\u5212\u8BCD",modelSettings:"\u6A21\u578B\u8BBE\u7F6E",toolsConfigTitle:"\u70B9\u51FB\u6253\u5F00\u5DE5\u5177\u8BE6\u7EC6\u914D\u7F6E"},selection:{clearSelection:"\u53D6\u6D88\u9009\u4E2D\u5185\u5BB9",page:"\u{1F310} \u7F51\u9875",clearPage:"\u53D6\u6D88\u7F51\u9875",clearMcp:"\u53D6\u6D88MCP\u670D\u52A1",skill:"\u{1F9E9} \u6280\u80FD",clearSkill:"\u53D6\u6D88\u6280\u80FD"},toolCategory:{page_interaction:"\u{1F5B1}\uFE0F \u9875\u9762\u4EA4\u4E92",form_operation:"\u{1F4DD} \u8868\u5355\u64CD\u4F5C",content_extraction:"\u{1F4C4} \u5185\u5BB9\u63D0\u53D6",tab_management:"\u{1F4D1} \u6807\u7B7E\u9875\u7BA1\u7406",bookmark_history:"\u{1F516} \u4E66\u7B7E\u5386\u53F2",storage_management:"\u{1F4BE} \u5B58\u50A8\u7BA1\u7406",network_request:"\u{1F310} \u7F51\u7EDC\u8BF7\u6C42",media_output:"\u{1F4F7} \u5A92\u4F53\u4E0E\u8F93\u51FA",debug_dev:"\u{1F527} \u8C03\u8BD5\u5F00\u53D1",ai_collaboration:"\u{1F916} AI\u534F\u4F5C",local_agent:"\u{1F5A5}\uFE0F \u4EE3\u7406",mcp:"\u{1F50C} MCP",knowledge:"\u{1F4DA} \u77E5\u8BC6\u5E93"},presetMode:{preciseLabel:"\u7CBE\u51C6\u4E25\u8C28",preciseTip:"\u6539\u9519\u3001\u8C03\u8BD5\u3001\u8981\u51C6\u786E\u7B54\u6848\uFF08\u4F4E\u968F\u673A\u6027\uFF0C\u9002\u5408\u4FEE bug\uFF09",generalLabel:"\u65E5\u5E38\u901A\u7528",generalTip:"\u591A\u6570\u573A\u666F\u90FD\u597D\u7528\uFF08\u5E73\u8861\u7A33\u5B9A\u4E0E\u7075\u6D3B\uFF0C\u9002\u5408\u5199\u811A\u672C\uFF09",divergentLabel:"\u601D\u8DEF\u53D1\u6563",divergentTip:"\u8981\u591A\u79CD\u65B9\u6848\u505A\u5BF9\u6BD4\uFF08\u9002\u5408\u91CD\u6784\u3001\u65B9\u6848\u5BF9\u6BD4\uFF09",creativeLabel:"\u521B\u610F\u8111\u66B4",creativeTip:"\u5199\u6587\u6848\u3001\u8D77\u540D\u3001\u5934\u8111\u98CE\u66B4\uFF08\u9AD8\u968F\u673A\u6027\uFF0C\u4E0D\u5EFA\u8BAE\u6B63\u5F0F\u4EE3\u7801\uFF09"},tool:{agent_file:"\u4EE3\u7406\u672C\u5730\u6587\u4EF6\u64CD\u4F5C\uFF08\u8BFB\u53D6/\u5199\u5165/\u5217\u8868/\u5220\u9664/\u4E0B\u8F7D\uFF09",agent_trash:"\u7BA1\u7406\u4EE3\u7406\u56DE\u6536\u7AD9\uFF08\u67E5\u770B/\u6062\u590D\u5DF2\u5220\u9664\u9879\uFF09",agent_exec:"\u5728\u4EE3\u7406\u673A\u5668\u4E0A\u6267\u884C Shell \u547D\u4EE4",agent_search:"\u5728\u4EE3\u7406\u673A\u5668\u4E0A\u641C\u7D22\u6587\u4EF6\u6216\u6587\u4EF6\u5185\u5BB9",agent_skill:"\u52A0\u8F7D\u6216\u8FD0\u884C Skill\uFF08run=\u5DE5\u4F5C\u6D41\uFF0Cload=Agent Skill\uFF09",manage_agent:"\u67E5\u770B\u6216\u5207\u6362\u5DF2\u914D\u5BF9\u7684 AI \u4EE3\u7406",exec_log:"\u63D0\u53D6\u6267\u884C\u65E5\u5FD7\uFF0C\u5206\u6790\u6210\u529F\u8DEF\u5F84\u4E0E\u5931\u8D25\u6559\u8BAD",clarify_question:"\u5411\u7528\u6237\u63D0\u95EE\u6F84\u6E05\uFF0C\u63D0\u4F9B\u9009\u9879\u4F9B\u9009\u62E9",highlight_text:"\u5728\u9875\u9762\u4E0A\u9AD8\u4EAE\u6587\u672C\uFF0C\u7528\u4E8E\u89C6\u89C9\u5F3A\u8C03",plan_task:"\u5C06\u590D\u6742\u4EFB\u52A1\u89C4\u5212\u62C6\u89E3\u4E3A\u5B50\u4EFB\u52A1",search_chats:"\u641C\u7D22\u5386\u53F2\u5BF9\u8BDD\u8BB0\u5F55",preview_ui:"\u9884\u89C8\u6216\u83B7\u53D6 UI \u539F\u578B",dispatch_task:"\u5411\u5B50\u4EE3\u7406\u6D3E\u53D1\u4EFB\u52A1",interact_element:"\u4EA4\u4E92\u9875\u9762\u5143\u7D20\uFF08ref/\u6587\u672C/\u9009\u62E9\u5668\u5B9A\u4F4D\uFF1B\u652F\u6301 click/hover/type \u8F93\u5165\uFF09",scroll_to:"\u6EDA\u52A8\u9875\u9762\u5230\u76EE\u6807\u4F4D\u7F6E\uFF08\u5143\u7D20/\u5750\u6807/\u6587\u672C\uFF09",wait_element:"\u7B49\u5F85\u5143\u7D20\u51FA\u73B0/\u6D88\u5931/\u53EF\u89C1\u6027\u53D8\u5316",drag_drop:"\u62D6\u62FD\u5143\u7D20\uFF08\u26A0\uFE0F \u8BD5\u9A8C\u6027\uFF0C\u591A\u6570\u9875\u9762\u53EF\u80FD\u65E0\u6548\uFF09",wait_navigation:"\u7B49\u5F85\u9875\u9762\u5BFC\u822A\u5B8C\u6210",handle_dialog:"\u5904\u7406\u9875\u9762\u5F39\u7A97\uFF08\u81EA\u52A8\u786E\u8BA4/\u53D6\u6D88/\u6062\u590D alert/confirm/prompt\uFF09",fill_form:"\u6279\u91CF\u586B\u5199\u591A\u4E2A\u8868\u5355\u5B57\u6BB5\uFF08\u652F\u6301 ref \u5B9A\u4F4D\uFF09",keyboard_input:"\u8F93\u5165\u6587\u672C\u6216\u6D3E\u53D1\u6309\u952E\u4E8B\u4EF6\uFF08\u53EF\u7ED5\u8FC7 React/Vue \u53D7\u63A7\u7EC4\u4EF6\uFF09",file_upload:"\u4E0A\u4F20\u6587\u4EF6\u5230\u9875\u9762",select_dropdown:"\u4E0B\u62C9\u6846\u9009\u62E9\uFF08\u652F\u6301\u81EA\u5B9A\u4E49\u7EC4\u4EF6\uFF09",page_content:"\u83B7\u53D6\u9875\u9762\u6587\u672C\u6216 HTML \u5185\u5BB9",extract_data:"\u63D0\u53D6\u7ED3\u6784\u5316\u6570\u636E\uFF08\u8868\u683C/\u94FE\u63A5/\u56FE\u7247/\u8868\u5355/\u5143\u4FE1\u606F\uFF09",query_elements:"\u67E5\u8BE2\u53EF\u4EA4\u4E92\u5143\u7D20\uFF0C\u8FD4\u56DE\u6811\u5F62\u5FEB\u7167\u4E0E ref \u7F16\u53F7\uFF08\u6253\u5F00\u7684\u5F39\u7A97/\u83DC\u5355\u63D0\u5347\u5230 [\u6253\u5F00\u5C42]\uFF1B\u53EF\u89C1 iframe \u4EE5 [frame #N] \u533A\u5757\u7EB3\u5165\uFF0C\u5176 ref \u5168\u5C40\u6709\u6548\uFF1B\u540C\u4E00\u5143\u7D20\u7F16\u53F7\u7A33\u5B9A\uFF0C\u9875\u9762\u53D8\u5316\u540E\u9700\u91CD\u65B0\u67E5\u8BE2\uFF1BhasMore \u4E3A\u771F\u65F6\u7528 page \u7FFB\u9875\uFF09",search_in_page:"\u5728\u5F53\u524D\u9875\u9762\u4E2D\u67E5\u627E\u6587\u672C",iframe_content:"\u83B7\u53D6\u9875\u9762\u4E2D iframe \u7684\u5185\u5BB9",scroll_collect:"\u6EDA\u52A8\u5E76\u6536\u96C6\u5185\u5BB9\uFF0C\u9002\u7528\u4E8E\u65E0\u9650\u6EDA\u52A8/\u61D2\u52A0\u8F7D\u9875\u9762",notify:"\u663E\u793A\u6D4F\u89C8\u5668\u901A\u77E5",clipboard:"\u526A\u8D34\u677F\u64CD\u4F5C\uFF08\u590D\u5236/\u7C98\u8D34/\u83B7\u53D6\u9009\u4E2D\u6587\u672C\uFF09",download_file:"\u4E0B\u8F7D\u6587\u4EF6\u5230\u672C\u5730",qrcode:"\u751F\u6210\u4E8C\u7EF4\u7801",capture_page:"\u622A\u53D6\u9875\u9762\u622A\u56FE\uFF08\u4E0B\u8F7D/\u5206\u6790/\u4E24\u8005\uFF09",browser_info:"\u83B7\u53D6\u6D4F\u89C8\u5668\u7248\u672C\u548C\u73AF\u5883\u4FE1\u606F",inject_css:"\u5411\u9875\u9762\u6CE8\u5165\u81EA\u5B9A\u4E49 CSS",agent_memory:"\u957F\u671F\u8BB0\u5FC6\u7BA1\u7406\uFF08\u5B58\u50A8/\u56DE\u5FC6/\u7EF4\u62A4\uFF09",manage_storage:"\u8BFB\u5199\u6D4F\u89C8\u5668 localStorage \u6216 sessionStorage",manage_cookies:"\u83B7\u53D6/\u8BBE\u7F6E/\u5220\u9664/\u5217\u51FA\u6D4F\u89C8\u5668 Cookie",clear_data:"\u6E05\u9664\u7AD9\u70B9\u7684 localStorage/sessionStorage",fetch_url:"\u5411\u6307\u5B9A URL \u53D1\u9001 HTTP GET/POST \u8BF7\u6C42",manage_tab:"\u7BA1\u7406\u6D4F\u89C8\u5668\u6807\u7B7E\u9875\uFF08\u6253\u5F00/\u5207\u6362/\u5173\u95ED/\u5237\u65B0/\u524D\u8FDB\u540E\u9000\uFF09",list_tabs:"\u83B7\u53D6\u5DF2\u6253\u5F00\u7684\u6807\u7B7E\u9875\u5217\u8868",search_browser_data:"\u641C\u7D22\u6D4F\u89C8\u5668\u4E66\u7B7E\u6216\u8BBF\u95EE\u5386\u53F2",debug_page:"\u9AD8\u7EA7\u9875\u9762\u8C03\u8BD5\uFF08CDP\uFF09\uFF1A\u539F\u751F\u8F93\u5165\u4E8B\u4EF6\u3001\u7F51\u7EDC\u6293\u5305\u3001\u6267\u884C JS\u3001\u6574\u9875/\u5143\u7D20\u622A\u56FE\u3001\u8BBE\u5907\u4E0E UA \u6A21\u62DF",knowledge_search:"\u68C0\u7D22\u77E5\u8BC6\u5E93\u83B7\u53D6\u76F8\u5173\u5185\u5BB9\uFF08\u53EA\u8BFB\uFF09",knowledge_ingest:"\u5C06\u6587\u672C/\u672C\u5730\u6587\u4EF6/\u7F51\u9875\u5BFC\u5165\u77E5\u8BC6\u5E93\uFF08\u5199\u5165\u64CD\u4F5C\uFF09",knowledge_list:"\u5217\u51FA\u53EF\u7528\u77E5\u8BC6\u5E93\u53CA\u5176\u6587\u6863\u6570\u91CF"},react:{title:"\u2699\uFE0F \u63A8\u7406\u5FAA\u73AF\u914D\u7F6E",subtitle:"\u63A7\u5236 AI \u63A8\u7406\u5FAA\u73AF\u7684\u884C\u4E3A\u53C2\u6570\uFF08\u9AD8\u7EA7\u914D\u7F6E\uFF09",maxIterations:"\u6700\u5927\u5FAA\u73AF\u6B21\u6570",maxIterationsHint:"\uFF08\u590D\u6742\u4EFB\u52A1\u53EF\u9002\u5F53\u589E\u52A0\uFF09",min:"\u6700\u5C0F: 10",max:"\u6700\u5927: 1000",apiTimeout:"API \u8BF7\u6C42\u8D85\u65F6",apiTimeoutHint:"\uFF08\u5355\u6B21 API \u8C03\u7528\u7684\u6700\u957F\u7B49\u5F85\u65F6\u95F4\uFF09",unitMinute:"\u5206\u949F (min)",min1Minute:"\u6700\u5C0F: 1\u5206\u949F",max10Minutes:"\u6700\u5927: 10\u5206\u949F",max120Minutes:"\u6700\u5927: 120\u5206\u949F",max30Minutes:"\u6700\u5927: 30\u5206\u949F",loopTimeout:"\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6",loopTimeoutHint:"\uFF08\u6574\u4E2A\u63A8\u7406\u5FAA\u73AF\u7684\u6700\u957F\u6267\u884C\u65F6\u95F4\uFF09",toolTimeout:"\u5DE5\u5177\u6267\u884C\u8D85\u65F6",toolTimeoutHint:"\uFF08\u5355\u4E2A\u5DE5\u5177\u6267\u884C\u7684\u6700\u957F\u7B49\u5F85\u65F6\u95F4\uFF09",toolConfirmation:"\u654F\u611F\u64CD\u4F5C\u786E\u8BA4",toolConfirmationHint:"\uFF08\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\u65F6\uFF0C\u5F39\u7A97\u786E\u8BA4\u540E\u518D\u6267\u884C\uFF09",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",toolConfirmationDesc1:"\u542F\u7528\u540E\uFF0C\u5F53\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\uFF08\u5DE5\u5177\u8C03\u7528\u3001\u547D\u4EE4\u6267\u884C\u7B49\uFF09\u65F6\uFF0C\u4F1A\u5F39\u51FA\u786E\u8BA4\u6846\u7B49\u5F85\u7528\u6237\u786E\u8BA4\u3002",toolConfirmationDesc2:"\u5173\u95ED\u540E\uFF0C\u6240\u6709\u64CD\u4F5C\u5C06\u76F4\u63A5\u653E\u884C\u6267\u884C\uFF0C\u65E0\u9700\u786E\u8BA4\u3002",enableExecutionLog:"\u542F\u7528\u6267\u884C\u65E5\u5FD7",enableExecutionLogHint:"\uFF08\u663E\u793A API \u8C03\u7528\u548C\u5DE5\u5177\u6267\u884C\u7684\u8BE6\u7EC6\u65E5\u5FD7\uFF0C\u5E2E\u52A9\u8C03\u8BD5\u548C\u7406\u89E3 AI \u601D\u8003\u8FC7\u7A0B\uFF09",enableExecutionLogDesc1:'\u542F\u7528\u540E\uFF0C\u6D88\u606F\u5E95\u90E8\u4F1A\u663E\u793A"\u6267\u884C\u65E5\u5FD7"\u6309\u94AE\uFF0C\u70B9\u51FB\u53EF\u67E5\u770B API \u8C03\u7528\u548C\u5DE5\u5177\u6267\u884C\u7684\u8BE6\u7EC6\u8FC7\u7A0B\u3002',enableExecutionLogDesc2:"\u5173\u95ED\u540E\uFF0C\u6D88\u606F\u5E95\u90E8\u4E0D\u518D\u663E\u793A\u8BE5\u6309\u94AE\u3002",streaming:"\u6D41\u5F0F\u8F93\u51FA",streamingHint:"\uFF08\u5F00\u542F\u540E AI \u56DE\u590D\u4F1A\u5B9E\u65F6\u9010\u5B57\u663E\u793A\uFF0C\u63D0\u4F9B\u66F4\u5FEB\u7684\u53CD\u9988\u611F\u77E5\uFF09",streamingDesc1:"\u5F00\u542F\u540E AI \u56DE\u590D\u4F1A\u5B9E\u65F6\u9010\u5B57\u663E\u793A\uFF0C\u4EE3\u7406\u7AEF\u547D\u4EE4\u6267\u884C\u65F6\u4E5F\u4F1A\u5B9E\u65F6\u8F93\u51FA\uFF0C\u63D0\u4F9B\u66F4\u5FEB\u7684\u53CD\u9988\u611F\u77E5\u3002",streamingDesc2:"\u5982\u679C\u9047\u5230\u517C\u5BB9\u6027\u95EE\u9898\uFF0C\u53EF\u5173\u95ED\u6B64\u5F00\u5173\u56DE\u9000\u5230\u4E00\u6B21\u6027\u8F93\u51FA\u6A21\u5F0F\u3002",streamExpandTools:"\u6D41\u5F0F\u5DE5\u5177\u5361\u7247\u9ED8\u8BA4\u5C55\u5F00",streamExpandToolsHint:"\uFF08\u5173\u95ED\u5219\u5DE5\u5177\u5361\u7247\u9ED8\u8BA4\u6298\u53E0\uFF0C\u4EC5\u663E\u793A\u6807\u9898\u4E0E\u72B6\u6001\uFF0C\u70B9\u51FB\u53EF\u5C55\u5F00\u8BE6\u60C5\uFF09",configGuide:"\u{1F4A1} \u914D\u7F6E\u8BF4\u660E",guideReasoningLoop:"\u63A8\u7406\u5FAA\u73AF",guideReasoningLoopDesc:"\u662F AI \u52A9\u624B\u8FDB\u884C\u591A\u6B65\u63A8\u7406\u548C\u5DE5\u5177\u8C03\u7528\u7684\u6838\u5FC3\u673A\u5236\u3002",guideLoopCount:"\u5FAA\u73AF\u6B21\u6570",guideLoopCountDesc:"\uFF1A\u51B3\u5B9A AI \u53EF\u4EE5\u8FDB\u884C\u591A\u5C11\u8F6E\u63A8\u7406-\u884C\u52A8\u5FAA\u73AF",guideTimeout:"\u8D85\u65F6\u8BBE\u7F6E",guideTimeoutDesc:"\uFF1A\u9632\u6B62\u957F\u65F6\u95F4\u7B49\u5F85\u6216\u65E0\u9650\u5FAA\u73AF",guideClarifyWait:"\u6F84\u6E05\u7B49\u5F85",guideClarifyWaitDesc:"\uFF1A\u7528\u6237\u6F84\u6E05\u65F6\u95F4\u4E0D\u8BA1\u5165\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6\uFF08\u6682\u505C\u8BA1\u65F6\uFF09",guideTip:"\u2022 \u5EFA\u8BAE\u6839\u636E\u7F51\u7EDC\u72B6\u51B5\u548C\u4EFB\u52A1\u590D\u6742\u5EA6\u8C03\u6574\u8FD9\u4E9B\u53C2\u6570"},reflection:{title:"\u{1F3AF} AI \u81EA\u6211\u53CD\u601D\u914D\u7F6E",enabled:"\u5DF2\u542F\u7528",subtitle:"\u63A7\u5236 AI \u5BF9\u4EFB\u52A1\u6267\u884C\u7ED3\u679C\u7684\u81EA\u6211\u8BC4\u4F30\u548C\u4FEE\u8BA2\u884C\u4E3A",postReflection:"\u540E\u7F6E\u53CD\u601D",postReflectionHint:"\uFF08\u5B8C\u6210\u540E\u8BC4\u4F30\u7ED3\u679C\u8D28\u91CF\uFF09",subtaskReflection:"\u5B50\u4EFB\u52A1\u53CD\u601D",subtaskReflectionHint:"\uFF08\u9AD8\u7EA7\u529F\u80FD\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF09",configGuide:"\u{1F4A1} \u53CD\u601D\u914D\u7F6E\u8BF4\u660E",guidePostReflection:"\u540E\u7F6E\u53CD\u601D",guidePostReflectionDesc:"\uFF1A\u5728\u63A8\u7406\u5FAA\u73AF\u7ED3\u675F\u540E\uFF0CAI \u4F1A\u5BF9\u6700\u7EC8\u7ED3\u679C\u8FDB\u884C\u81EA\u6211\u8BC4\u4F30\u3002\u5982\u679C\u8BC4\u5206\u4F4E\u4E8E\u9608\u503C\uFF0C\u4F1A\u81EA\u52A8\u4FEE\u8BA2\u6216\u91CD\u65B0\u6267\u884C\u3002",guideSubtaskReflection:"\u5B50\u4EFB\u52A1\u53CD\u601D",guideSubtaskReflectionDesc:"\uFF1A\u5BF9\u4E8E\u590D\u6742\u4EFB\u52A1\u62C6\u89E3\u540E\u7684\u5B50\u4EFB\u52A1\u8FDB\u884C\u5355\u72EC\u8BC4\u4F30\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF08\u9AD8\u7EA7\u529F\u80FD\uFF09\u3002",guideTip:"\u2022 \u542F\u7528\u53CD\u601D\u4F1A\u589E\u52A0 API \u8C03\u7528\u6B21\u6570\uFF0C\u5EFA\u8BAE\u6839\u636E\u9700\u6C42\u6743\u8861"},toolbar:{title:"\u{1F527} \u5DE5\u5177\u680F\u8BBE\u7F6E",enabled:"\u5DF2\u542F\u7528",subtitle:"\u7BA1\u7406\u5212\u8BCD\u5DE5\u5177\u680F\u7684\u6309\u94AE\u548C\u987A\u5E8F",iconOnly:"\u5DE5\u5177\u680F\u56FE\u6807\u7CBE\u7B80\u6A21\u5F0F\uFF08\u4EC5\u663E\u793A\u56FE\u6807\uFF0C\u4E0D\u663E\u793A\u6587\u5B57\uFF09",addCustomTool:"\uFF0B \u6DFB\u52A0\u81EA\u5B9A\u4E49\u5DE5\u5177",domainBlocklistTitle:"\u57DF\u540D\u5C4F\u853D",domainBlocklistDesc:"\u5728\u6B64\u6DFB\u52A0\u9700\u8981\u5C4F\u853D\u5DE5\u5177\u680F\u7684\u57DF\u540D\uFF0C\u5C4F\u853D\u540E\u8BE5\u57DF\u540D\u4E0B\u4E0D\u518D\u663E\u793A\u5212\u8BCD\u5DE5\u5177\u680F",domainAddPlaceholder:"\u4F8B\u5982\uFF1Aexample.com\uFF08\u4E0D\u542B http/https\uFF09",add:"\u6DFB\u52A0",toolEditModalTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u5DE5\u5177",toolName:"\u5DE5\u5177\u540D\u79F0",toolNamePlaceholder:"\u4F8B\u5982\uFF1A\u6DA6\u8272\u3001\u6539\u5199\u3001\u4EE3\u7801\u5BA1\u67E5",systemPromptLabel:"\u7CFB\u7EDF\u63D0\u793A\u8BCD",systemPromptHint:"\uFF08\u5B9A\u4E49\u8BE5\u5DE5\u5177\u7684\u884C\u4E3A\uFF09",toolPromptPlaceholder:"\u4F8B\u5982\uFF1A\u4F60\u662F\u4E00\u4E2A\u6587\u672C\u6DA6\u8272\u52A9\u624B\uFF0C\u8BF7\u5C06\u7528\u6237\u8F93\u5165\u7684\u5185\u5BB9\u6DA6\u8272\u5F97\u66F4\u6D41\u7545\u3001\u66F4\u4E13\u4E1A\u3002",builtinBadge:"\u5185\u7F6E",customBadge:"\u81EA\u5B9A\u4E49",moveUp:"\u4E0A\u79FB",moveDown:"\u4E0B\u79FB",dragSort:"\u62D6\u62FD\u6392\u5E8F",editCustomToolTitle:"\u7F16\u8F91\u81EA\u5B9A\u4E49\u5DE5\u5177",toolNameEmpty:"\u5DE5\u5177\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",toolPromptEmpty:"\u7CFB\u7EDF\u63D0\u793A\u8BCD\u4E0D\u80FD\u4E3A\u7A7A",toolNotFound:"\u672A\u627E\u5230\u8BE5\u5DE5\u5177",cannotEditBuiltin:"\u4E0D\u80FD\u7F16\u8F91\u5185\u7F6E\u5DE5\u5177",noBlockedDomains:"\u6682\u65E0\u5C4F\u853D\u57DF\u540D\uFF0C\u5728\u4E0A\u65B9\u8F93\u5165\u57DF\u540D\u6DFB\u52A0",unblock:"\u53D6\u6D88\u5C4F\u853D",domainEmpty:"\u57DF\u540D\u4E0D\u80FD\u4E3A\u7A7A",domainInvalid:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u57DF\u540D\uFF0C\u4F8B\u5982 example.com",domainExists:"\u8BE5\u57DF\u540D\u5DF2\u5B58\u5728"},agentConfig:{title:"\u{1F5A5}\uFE0F \u4EE3\u7406\u914D\u7F6E",subtitle:"\u8FDE\u63A5\u4EE3\u7406\u670D\u52A1\uFF0C\u5B9E\u73B0\u6587\u4EF6\u8BFB\u5199\u3001\u7CFB\u7EDF\u547D\u4EE4\u6267\u884C\u3001\u5BF9\u8BDD\u8BB0\u5FC6\u7BA1\u7406\u3001Skill \u5DE5\u4F5C\u6D41\u53CA MCP \u534F\u8BAE\u6269\u5C55\u7B49\u9AD8\u7EA7\u80FD\u529B\u3002\u652F\u6301\u914D\u7F6E\u5E76\u5339\u914D\u591A\u4E2A\u4EE3\u7406\uFF0C\u4E00\u952E\u8FDE\u63A5\u3002",pairedAgents:"\u5DF2\u914D\u5BF9\u4EE3\u7406",notConnected:"\u672A\u8FDE\u63A5",detailToggle:"\u25B6 \u8BE6\u7EC6\u4FE1\u606F",addAgentTitle:"\u6DFB\u52A0\u65B0\u4EE3\u7406",agentName:"\u4EE3\u7406\u540D\u79F0",agentNameHint:"\uFF08\u81EA\u5B9A\u4E49\uFF0C\u7559\u7A7A\u5219\u81EA\u52A8\u83B7\u53D6\uFF09",agentNamePlaceholder:"\u4F8B\u5982\uFF1A\u529E\u516C\u5BA4 Mac",agentUrl:"\u4EE3\u7406\u5730\u5740",agentUrlHint:"\uFF08\u4EE3\u7406\u670D\u52A1\u7684 HTTP \u5730\u5740\uFF09",pairCode:"\u914D\u5BF9\u7801",pairCodeHint:"\uFF08\u5728 Agent \u7EC8\u7AEF\u7A97\u53E3\u4E2D\u67E5\u770B\uFF09",pairCodePlaceholder:"6\u4F4D\u914D\u5BF9\u7801",connect:"\u8FDE\u63A5",toolCount:"{count} \u4E2A\u5DE5\u5177",selectedTotalCount:"(\u5DF2\u9009 {selected} / \u5171 {total})",toggleCategoryAll:"\u70B9\u51FB\u5207\u6362\u8BE5\u5206\u7C7B\u5168\u9009/\u53D6\u6D88\u5168\u9009",useInstructionTitle:"\u{1F4A1} \u4F7F\u7528\u8BF4\u660E\u53CA\u5B89\u5168\u63D0\u793A",installGuideTitle:"\u{1F4E5} \u5B89\u88C5\u4EE3\u7406\u7AEF v{version}\uFF08\u4E0E\u5F53\u524D\u63D2\u4EF6\u7248\u672C\u5339\u914D\uFF09",installGuideHint:"\u590D\u5236\u4E0B\u65B9\u547D\u4EE4\u7C98\u8D34\u5230\u7EC8\u7AEF\u6267\u884C\uFF0C\u5C06\u5B89\u88C5\u4E0E\u5F53\u524D\u63D2\u4EF6\u7248\u672C\u4E00\u81F4\u7684\u4EE3\u7406\u7AEF\uFF0C\u907F\u514D\u7248\u672C\u4E0D\u5339\u914D\u5BFC\u81F4\u65E0\u6CD5\u8FDE\u63A5\u3002",installGuideMacLinux:"macOS / Linux",copyCmd:"\u590D\u5236",copyCmdAuto:"\u4E00\u952E\u590D\u5236\uFF08\u6309\u5F53\u524D\u7CFB\u7EDF\uFF09",copyCmdSuccess:"\u5B89\u88C5\u547D\u4EE4\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyCmdFailed:"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u547D\u4EE4\u590D\u5236",method1:"\u65B9\u5F0F\u4E00\uFF1ANPM \u5168\u5C40\u5B89\u88C5\uFF08\u63A8\u8350\uFF09",method1Step1:"\uFF08\u8981\u6C42 Node.js \u2265 18\uFF09",method1Step2:" \u6216\u7B80\u5199 ",method1Step3:'3. \u7EC8\u7AEF\u663E\u793A 6 \u4F4D\u914D\u5BF9\u7801\uFF0C\u5728\u6B64\u9875\u9762\u586B\u5165\u5E76\u70B9\u51FB"\u8FDE\u63A5"',method2:"\u65B9\u5F0F\u4E8C\uFF1A\u672C\u5730\u6E90\u7801\u8FD0\u884C\uFF08\u5F00\u53D1\u8C03\u8BD5\uFF09",method2Step2:'2. \u7EC8\u7AEF\u663E\u793A 6 \u4F4D\u914D\u5BF9\u7801\uFF0C\u5728\u6B64\u9875\u9762\u586B\u5165\u5E76\u70B9\u51FB"\u8FDE\u63A5"',cmdAlias:"\u547D\u4EE4\u522B\u540D",cmdAliasPrefix:" \u53EF\u7B80\u5199\u4E3A ",cmdAliasSuffix:"\uFF0C\u6240\u6709\u547D\u4EE4\u5747\u652F\u6301",bgRun:"\u540E\u53F0\u8FD0\u884C\uFF1A",bgRunMethod1:"\u3000\u65B9\u5F0F\u4E00\uFF1A",bgRunMethod1Mid:" \u6216 ",bgRunMethod2:"\u3000\u65B9\u5F0F\u4E8C\uFF1A",moreCmd:"\u66F4\u591A\u547D\u4EE4\uFF1A",moreCmdMid:" \u6216 ",securityTitle:"\u26A0\uFE0F \u5B89\u5168\u63D0\u793A",security1:"\u4EE3\u7406\u670D\u52A1\u9ED8\u8BA4\u4EC5\u76D1\u542C\u672C\u673A\u5730\u5740\uFF08127.0.0.1\uFF09\uFF0C\u5982\u9700\u8FDC\u7A0B\u8FDE\u63A5\u8BF7\u4FEE\u6539\u542F\u52A8\u53C2\u6570\u3002",security2:"\u6587\u4EF6\u64CD\u4F5C\u9650\u5236\u5728\u5DE5\u4F5C\u76EE\u5F55\u548C\u767D\u540D\u5355\u5141\u8BB8\u76EE\u5F55\u5185\uFF0C\u4E0D\u53EF\u8D8A\u6743\u8BBF\u95EE\u3002",security3:"\u9AD8\u5371\u547D\u4EE4\u81EA\u52A8\u62E6\u622A\uFF0C\u654F\u611F\u547D\u4EE4\u652F\u6301\u914D\u7F6E\u5316\u786E\u8BA4\u653E\u884C\u3002",addAnotherAgent:"\u518D\u6DFB\u52A0\u4E00\u4E2A\u4EE3\u7406",checking:"\u68C0\u6D4B\u4E2D",connected:"\u5DF2\u8FDE\u63A5",online:"\u5728\u7EBF",offline:"\u79BB\u7EBF",clickToEditName:"\u70B9\u51FB\u7F16\u8F91\u540D\u79F0",currentInUse:"\u5F53\u524D\u4F7F\u7528 \xB7 ",enable:"\u542F\u7528",disable:"\u505C\u7528",disconnect:"\u65AD\u5F00",connectedTo:"\u5DF2\u8FDE\u63A5\u5230: {name}",confirmDeleteAgent:`\u786E\u5B9A\u8981\u5220\u9664\u4EE3\u7406 "{name}" ({url}) \u5417\uFF1F
10
+ \u5173\u95ED\u540E\uFF0C\u6240\u6709\u64CD\u4F5C\u5C06\u76F4\u63A5\u653E\u884C\u6267\u884C\uFF0C\u65E0\u9700\u786E\u8BA4\u3002`,clearSearch:"\u6E05\u9664\u641C\u7D22",configBtnTitle:"\u70B9\u51FB\u6253\u5F00\u5DE5\u5177\u8BE6\u7EC6\u914D\u7F6E"},toolStats:{title:"\u{1F4CA} \u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1",subtitle:"\u5404\u5DE5\u5177\u8C03\u7528\u9891\u7387\u3001\u6210\u529F\u7387\u3001\u5E73\u5747\u8017\u65F6",usedTools:"\u5DF2\u4F7F\u7528\u5DE5\u5177",calls:"\u8C03\u7528",success:"\u6210\u529F",successRate:"\u6210\u529F\u7387",avgDuration:"\u5E73\u5747\u8017\u65F6",unusedTools:"\u672A\u4F7F\u7528\u5DE5\u5177",noData:"\u6682\u65E0\u7EDF\u8BA1\u6570\u636E",btnTitle:"\u5DE5\u5177\u4F7F\u7528\u7EDF\u8BA1",clearTitle:"\u6E05\u7A7A\u7EDF\u8BA1"},tokenStatsPanel:{title:"\u{1FA99} Token \u4F7F\u7528\u7EDF\u8BA1",subtitle:"\u5355\u6B21\u95EE\u7B54 ReAct \u4F1A\u8BDD\u7EF4\u5EA6 & \u603B\u4F53\u7EF4\u5EA6",currentSession:"\u5F53\u524D\u4F1A\u8BDD",globalStats:"\u5168\u5C40\u7EDF\u8BA1",recentCalls:"\u8FD1\u671F\u8C03\u7528",noData:"\u6682\u65E0\u7EDF\u8BA1\u6570\u636E",tabTrend:"\u8D8B\u52BF",tabDistribution:"\u5206\u5E03",tabGlobal:"\u5168\u5C40",timeRangeToday:"\u4ECA\u65E5",timeRangeWeek:"\u672C\u5468",timeRangeMonth:"\u672C\u6708",timeRangeAll:"\u5168\u90E8",globalSparklineTitle:"\u6700\u8FD1 30 \u5929\u8D8B\u52BF"},customConfirm:{defaultTitle:"\u786E\u8BA4\u64CD\u4F5C"},promptDialog:{title:"\u63D0\u793A"},promptManager:{title:"\u63D0\u793A\u8BCD\u7BA1\u7406",codePlaceholder:"\u7F16\u7801\uFF08\u5982: code\uFF09",contentPlaceholder:"\u63D0\u793A\u8BCD\u5185\u5BB9",addPrompt:"\u6DFB\u52A0\u63D0\u793A\u8BCD"},clarify:{title:"\u9700\u8981\u60A8\u7684\u6F84\u6E05",selectOption:"\u8BF7\u9009\u62E9\u4E00\u4E2A\u9009\u9879",inputPlaceholder:"\u8BF7\u8F93\u5165\u8865\u5145\u4FE1\u606F\uFF08\u53EF\u9009\uFF09...",customPlaceholder:"\u8BF7\u8F93\u5165\u60A8\u7684\u81EA\u5B9A\u4E49\u5185\u5BB9...",additionalTitle:"\u8865\u5145\u8BF4\u660E\uFF08\u53EF\u9009\uFF09",additionalHint:"\u5982\u679C\u60A8\u6709\u66F4\u591A\u76F8\u5173\u4FE1\u606F\uFF0C\u53EF\u4EE5\u5728\u6B64\u8865\u5145\u8BF4\u660E",remainingTime:"\u5269\u4F59\u65F6\u95F4: 3:00"},prototype:{previewTitle:"UI \u539F\u578B\u9884\u89C8",continueOptimize:"\u{1F4A1} \u7EE7\u7EED\u4F18\u5316",libraryTitle:"\u{1F3A8} \u539F\u578B\u9875\u9762\u5E93",searchPlaceholder:"\u641C\u7D22\u539F\u578B...",sortTimeNew:"\u65F6\u95F4 (\u65B0\u2192\u65E7)",sortTimeOld:"\u65F6\u95F4 (\u65E7\u2192\u65B0)",sortTitleAz:"\u6807\u9898 (A\u2192Z)",sortTitleZa:"\u6807\u9898 (Z\u2192A)",empty:"\u6682\u65E0\u539F\u578B",zoomOut:"\u7F29\u5C0F (Ctrl+\u6EDA\u8F6E)",zoomReset:"\u70B9\u51FB\u91CD\u7F6E",resetZoom:"\u70B9\u51FB\u91CD\u7F6E",zoomIn:"\u653E\u5927 (Ctrl+\u6EDA\u8F6E)",download:"\u4E0B\u8F7D",openInTab:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00",openInNewTab:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00",openLocal:"\u672C\u5730\u6D4F\u89C8\u5668\u6253\u5F00"},shortcuts:{title:"\u2328\uFE0F \u5FEB\u6377\u952E",sendMessage:"\u53D1\u9001\u6D88\u606F",newLine:"\u6362\u884C",inputHistory:"\u8F93\u5165\u5386\u53F2\uFF08\u8F93\u5165\u6846\u5185\uFF09",clearInput:"\u6E05\u7A7A\u8F93\u5165\u6846",keyColumn:"\u5FEB\u6377\u952E",functionColumn:"\u529F\u80FD",platformColumn:"\u5E73\u53F0",platformWinMac:"Win / Mac",colShortcut:"\u5FEB\u6377\u952E",colFunction:"\u529F\u80FD",colPlatform:"\u5E73\u53F0",gotoPrev:"\u8DF3\u8F6C\u5230\u4E0A\u4E00\u4E2A\u95EE\u9898",gotoNext:"\u8DF3\u8F6C\u5230\u4E0B\u4E00\u4E2A\u95EE\u9898",scrollTop:"\u56DE\u5230\u5BF9\u8BDD\u9876\u90E8",scrollBottom:"\u8DF3\u5230\u5BF9\u8BDD\u5E95\u90E8",navOpenByTab:"\u805A\u7126\u5DE6\u4FA7\u628A\u624B\u5E76\u5C55\u5F00\u95EE\u9898\u5217\u8868",navListArrows:"\u5728\u95EE\u9898\u5217\u8868\u6761\u76EE\u95F4\u79FB\u52A8\uFF08Enter \u8DF3\u8F6C\uFF09",navPinToggle:"\u9489\u4F4F / \u53D6\u6D88\u9489\u4F4F\u95EE\u9898\u5217\u8868",navEscCollapse:"\u6536\u8D77\u95EE\u9898\u5217\u8868 / \u53D6\u6D88\u9489\u4F4F\uFF08\u6709\u641C\u7D22\u8BCD\u65F6\u5148\u6E05\u7A7A\uFF09",fullScreenshot:"\u5168\u9875\u9762\u622A\u56FE",areaScreenshot:"\u533A\u57DF\u622A\u56FE",regionScreenshot:"\u533A\u57DF\u622A\u56FE",toggleToolConfig:"\u6253\u5F00/\u5173\u95ED\u5DE5\u5177\u914D\u7F6E",openShortcutsPanel:"\u6253\u5F00\u5FEB\u6377\u952E\u9762\u677F",openShortcutPanel:"\u6253\u5F00\u5FEB\u6377\u952E\u9762\u677F",newSession:"\u65B0\u5EFA\u4F1A\u8BDD",closeSession:"\u5173\u95ED\u5F53\u524D\u4F1A\u8BDD",closeCurrentSession:"\u5173\u95ED\u5F53\u524D\u4F1A\u8BDD",editLastMessage:"\u7F16\u8F91\u6700\u8FD1\u4E00\u6761\u7528\u6237\u6D88\u606F"},versionInfo:{title:"\u2139\uFE0F \u7248\u672C\u4FE1\u606F",version:"\u7248\u672C\u53F7",tag:"Git Tag",commit:"Git \u63D0\u4EA4",publishedAt:"\u53D1\u5E03\u65F6\u95F4",website:"\u5B98\u7F51",discussions:"\u8BA8\u8BBA\u9891\u9053",reportIssue:"\u4E0A\u62A5\u95EE\u9898",githubRepo:"GitHub \u4ED3\u5E93",giteeRepo:"Gitee \u4ED3\u5E93",copy:"\u590D\u5236\u4FE1\u606F"},imageEditor:{editImage:"\u7F16\u8F91\u56FE\u7247",brush:"\u753B\u7B14 (B)",rect:"\u77E9\u5F62 (R)",ellipse:"\u692D\u5706 (E)",arrow:"\u7BAD\u5934 (A)",line:"\u76F4\u7EBF (L)",undo:"\u64A4\u9500 (Ctrl+Z)",confirm:"\u786E\u8BA4 (Enter)",cancel:"\u53D6\u6D88 (Esc)",downloadImage:"\u4E0B\u8F7D\u56FE\u7247",prev:"\u4E0A\u4E00\u5F20",next:"\u4E0B\u4E00\u5F20",prevImage:"\u4E0A\u4E00\u5F20",nextImage:"\u4E0B\u4E00\u5F20",brushSize:"\u753B\u7B14\u7C97\u7EC6",eraser:"\u6A61\u76AE\u64E6"},chatExport:{selectCurrentOnly:"\u4EC5\u9009\u5F53\u524D",selectedCount:"\u5DF2\u9009 {count} \u4E2A",exportSelected:"\u5BFC\u51FA\u9009\u4E2D",title:"\u5BFC\u51FA\u4F1A\u8BDD",exportSessions:"\u5BFC\u51FA\u4F1A\u8BDD"},agentEditor:{createNew:"\u521B\u5EFA\u65B0\u52A9\u624B",namePlaceholder:"\u52A9\u624B\u540D\u79F0",icon:"\u56FE\u6807",descPlaceholder:"\u8FD9\u4E2A\u52A9\u624B\u64C5\u957F\u4EC0\u4E48\uFF1F",templateQuickCreate:"\u6A21\u677F\u5FEB\u901F\u521B\u5EFA",promptPlaceholder:"\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684...",availableTools:"\u53EF\u7528\u5DE5\u5177",availableSkills:"\u53EF\u7528\u6280\u80FD",modelSettings:"\u6A21\u578B\u8BBE\u7F6E\uFF08\u7559\u7A7A\u5219\u4F7F\u7528\u5168\u5C40\u8BBE\u7F6E\uFF09",modelPlaceholder:"\u9009\u62E9\u6216\u8F93\u5165\u6A21\u578B\u540D\u79F0",allowSubAgent:"\u5141\u8BB8\u4F5C\u4E3A\u5B50\u52A9\u624B\u88AB\u8C03\u5EA6",name:"\u540D\u79F0",desc:"\u7B80\u77ED\u63CF\u8FF0",nameLabel:"\u540D\u79F0",descLabel:"\u7B80\u77ED\u63CF\u8FF0",selectTemplate:"-- \u9009\u62E9\u6A21\u677F\uFF08\u53EF\u9009\uFF09 --",systemPrompt:"\u7CFB\u7EDF\u63D0\u793A\u8BCD\uFF08\u5B9A\u4E49\u52A9\u624B\u7684\u89D2\u8272\u548C\u80FD\u529B\uFF09",inheritGlobalToolsHint:"\uFF08\u4E0D\u52FE\u9009\u5219\u7EE7\u627F\u5168\u5C40\u5DE5\u5177\u8BBE\u7F6E\uFF09",inheritGlobalSkillsHint:"\uFF08\u4E0D\u52FE\u9009\u5219\u4F7F\u7528\u5168\u90E8\u542F\u7528\u6280\u80FD\uFF09",toolsInheritGlobal:"\uFF08\u4E0D\u52FE\u9009\u5219\u7EE7\u627F\u5168\u5C40\u5DE5\u5177\u8BBE\u7F6E\uFF09",skillsInheritAll:"\uFF08\u4E0D\u52FE\u9009\u5219\u4F7F\u7528\u5168\u90E8\u542F\u7528\u6280\u80FD\uFF09",noSetting:"\u4E0D\u8BBE\u7F6E\uFF08\u4F7F\u7528\u5168\u5C40\uFF09",noPreset:"\u4E0D\u8BBE\u7F6E\uFF08\u4F7F\u7528\u5168\u5C40\uFF09",deleteTitle:"\u5220\u9664\u6B64\u52A9\u624B",deleteAgentTitle:"\u5220\u9664\u6B64\u52A9\u624B"},auditLog:{title:"\u{1F4CB} \u547D\u4EE4\u6267\u884C\u5BA1\u8BA1",filterAll:"\u5168\u90E8",filterCommand:"\u547D\u4EE4\u6267\u884C",filterFile:"\u6587\u4EF6\u64CD\u4F5C",filterAuth:"\u8BA4\u8BC1",filterSecurity:"\u5B89\u5168",filterSystem:"\u7CFB\u7EDF",recent50:"\u6700\u8FD150\u6761",recent100:"\u6700\u8FD1100\u6761",recent200:"\u6700\u8FD1200\u6761",recent500:"\u6700\u8FD1500\u6761",searchPlaceholder:"\u641C\u7D22\u64CD\u4F5C\u540D\u3001\u547D\u4EE4\u6216\u8DEF\u5F84...",categoryFilter:"\u5206\u7C7B\u7B5B\u9009:",countLabel:"\u6761\u6570:",clearSearch:"\u6E05\u9664",empty:"\u6682\u65E0\u5BA1\u8BA1\u65E5\u5FD7",noLogs:"\u6682\u65E0\u5BA1\u8BA1\u65E5\u5FD7",defaultRange:"\u9ED8\u8BA4\u67E5\u8BE2\u6700\u8FD17\u5929\u7684\u5BA1\u8BA1\u65E5\u5FD7"},input:{atHint:"\u63D0\u793A\u8BCD (\u5355\u51FB) / \u7F51\u9875 (Ctrl/Cmd+\u5355\u51FB)",placeholder:"\u8F93\u5165'/'\u5FEB\u6377\u63D0\u793A\u3001'@'\u5207\u6362\u52A9\u624B\u6216\u7F51\u9875\u3001'$'\u9009\u62E9\u5DE5\u4F5C\u76EE\u5F55\u6587\u4EF6\u3001'\u2191\u2193'\u5207\u6362\u5386\u53F2\u8F93\u5165\u3001Esc\u6E05\u7A7A",send:"\u53D1\u9001",clearSelection:"\u53D6\u6D88\u9009\u4E2D\u5185\u5BB9",pageLabel:"\u{1F310} \u7F51\u9875",clearPage:"\u53D6\u6D88\u7F51\u9875",mcpLabel:"\u{1F50C} MCP",clearMcp:"\u53D6\u6D88MCP\u670D\u52A1",skillLabel:"\u{1F9E9} \u6280\u80FD",clearSkill:"\u53D6\u6D88\u6280\u80FD",screenshotTitle:"\u622A\u53D6\u5F53\u524D\u9875\u9762",attachFileTitle:"\u4E0A\u4F20\u6587\u4EF6\uFF08PDF/Word/Excel/\u6587\u672C\uFF09",screenshot:"\u622A\u53D6\u5F53\u524D\u9875\u9762",uploadFile:"\u4E0A\u4F20\u6587\u4EF6\uFF08PDF/Word/Excel/\u6587\u672C\uFF09",aiDisclaimer:"\u5185\u5BB9\u7531 AI \u751F\u6210\uFF0C\u4EC5\u4F9B\u53C2\u8003",addMenuTitle:"\u6DFB\u52A0\u5185\u5BB9",addMenuPrompt:"\u63D0\u793A\u8BCD",addMenuScreenshot:"\u622A\u56FE",addMenuScreenshotFull:"\u6574\u9875\u622A\u56FE",addMenuScreenshotFullDesc:"\u622A\u53D6\u5F53\u524D\u53EF\u89C1\u9875\u9762",addMenuScreenshotRegion:"\u533A\u57DF\u622A\u56FE",addMenuScreenshotRegionDesc:"\u62D6\u62FD\u6846\u9009\u9875\u9762\u533A\u57DF",addMenuFile:"\u9644\u4EF6",addMenuSwitches:"\u5F00\u5173"},model:{selectModel:"\u9009\u62E9\u6A21\u578B",temperature:"\u6E29\u5EA6"},sectionSelect:{searchPlaceholder:"\u8F93\u5165\u5173\u952E\u5B57\u8FC7\u6EE4\u2026",noMatch:"\u65E0\u5339\u914D\u9879"},provider:{label:"API \u5382\u5546",manage:"\u7BA1\u7406\u5382\u5546\u914D\u7F6E"},promptSelector:{prompts:"\u63D0\u793A\u8BCD",skills:"\u6280\u80FD",pages:"\u7F51\u9875",agents:"\u52A9\u624B",proxies:"\u4EE3\u7406",knowledge:"\u77E5\u8BC6\u5E93",pagesCount:"\u7F51\u9875 ({count})",agentsCount:"\u52A9\u624B ({count})",proxiesCount:"\u4EE3\u7406 ({count})",knowledgeCount:"\u77E5\u8BC6\u5E93 ({count})",headerHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u53D1\u9001 \xB7 Ctrl+Enter\u5E26\u5165\u6587\u672C\u6846",agentHeaderHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u9009\u62E9 \xB7 Esc\u53D6\u6D88",switchHint:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u53D1\u9001 \xB7 Ctrl+Enter\u5E26\u5165\u6587\u672C\u6846",switchHintSelect:"\u65B9\u5411\u952E\u5207\u6362 \xB7 Enter\u9009\u62E9 \xB7 Ctrl+Enter\u9009\u4E2D\u5E76\u5173\u95ED \xB7 Esc\u53D6\u6D88",mergedTitle:"\u805A\u5408\u641C\u7D22",mergedTitleCount:"\u805A\u5408\u641C\u7D22 ({count})"},memory:{label:"\u8BB0\u5FC6",historyLimit:"\u8BB0\u5FC6\u5386\u53F2\u9650\u5236",hint:"\u8BB0\u5FC6\u8D8A\u591A\uFF0C\u4E0A\u4E0B\u6587\u8D8A\u8FDE\u8D2F\uFF0C\u4F46 token \u6D88\u8017\u4E5F\u8D8A\u5927\uFF1B\u8BB0\u5FC6\u592A\u5C11\uFF0C\u5219\u53EF\u80FD\u65E0\u6CD5\u7ED3\u5408\u524D\u6587\u51C6\u786E\u56DE\u7B54\u3002",unlimited:"\u4E0D\u9650\u5236",recent200:"\u6700\u8FD1200\u6761",recent100:"\u6700\u8FD1100\u6761",recent50:"\u6700\u8FD150\u6761",recent20:"\u6700\u8FD120\u6761",recent10:"\u6700\u8FD110\u6761",recent5:"\u6700\u8FD15\u6761",recent2:"\u6700\u8FD12\u6761",custom:"\u81EA\u5B9A\u4E49:",unit:"\u6761",configEntry:"\u6253\u5F00\u8BB0\u5FC6\u914D\u7F6E",autoCompactLabel:"\u81EA\u52A8\u538B\u7F29",autoCompactHint:"\u4E0A\u4E0B\u6587\u5360\u7528\u8FBE\u5230 85% \u65F6\uFF0C\u53D1\u9001\u524D\u81EA\u52A8\u538B\u7F29\u4E00\u6B21\u4E3A\u6458\u8981\uFF08\u4F1A\u989D\u5916\u4EA7\u751F\u4E00\u6B21\u6458\u8981\u8C03\u7528\uFF09\u3002",persistSummaryLabel:"\u6458\u8981\u5B58\u5165\u8BB0\u5FC6",persistSummaryHint:"\u538B\u7F29\u65F6\u628A\u6458\u8981\u6C89\u6DC0\u4E3A\u8DE8\u4F1A\u8BDD\u957F\u671F\u8BB0\u5FC6\uFF1B\u540C\u4E00\u4F1A\u8BDD\u91CD\u590D\u538B\u7F29\u53EA\u66F4\u65B0\u540C\u4E00\u6761\u3002"},toggle:{memoryHint:"\u5F00\u542F\u540E\uFF0C\u524D\u6587\u95EE\u7B54\u5C06\u4F5C\u4E3A\u4E0A\u4E0B\u6587\uFF08\u9ED8\u8BA4\u5168\u90E8\uFF0C\u6761\u6570\u53EF\u914D\u7F6E\uFF09",toolsHint:"\u5DE5\u5177\u603B\u5F00\u5173\uFF1A\u70B9\u51FB\u5F00\u542F\u6216\u5173\u95ED\u5DE5\u5177\u8C03\u7528",selectionHint:"\u5F00\u542F\u540E\uFF0C\u5212\u8BCD\u9009\u4E2D\u5185\u5BB9\u65F6\u53EF\u5FEB\u901F\u63D0\u95EE",tools:"\u5DE5\u5177",selection:"\u5212\u8BCD",modelSettings:"\u6A21\u578B\u8BBE\u7F6E",toolsConfigTitle:"\u70B9\u51FB\u6253\u5F00\u5DE5\u5177\u8BE6\u7EC6\u914D\u7F6E"},selection:{clearSelection:"\u53D6\u6D88\u9009\u4E2D\u5185\u5BB9",page:"\u{1F310} \u7F51\u9875",clearPage:"\u53D6\u6D88\u7F51\u9875",clearMcp:"\u53D6\u6D88MCP\u670D\u52A1",skill:"\u{1F9E9} \u6280\u80FD",clearSkill:"\u53D6\u6D88\u6280\u80FD"},toolCategory:{page_interaction:"\u{1F5B1}\uFE0F \u9875\u9762\u4EA4\u4E92",form_operation:"\u{1F4DD} \u8868\u5355\u64CD\u4F5C",content_extraction:"\u{1F4C4} \u5185\u5BB9\u63D0\u53D6",tab_management:"\u{1F4D1} \u6807\u7B7E\u9875\u7BA1\u7406",bookmark_history:"\u{1F516} \u4E66\u7B7E\u5386\u53F2",storage_management:"\u{1F4BE} \u5B58\u50A8\u7BA1\u7406",network_request:"\u{1F310} \u7F51\u7EDC\u8BF7\u6C42",media_output:"\u{1F4F7} \u5A92\u4F53\u4E0E\u8F93\u51FA",debug_dev:"\u{1F527} \u8C03\u8BD5\u5F00\u53D1",ai_collaboration:"\u{1F916} AI\u534F\u4F5C",local_agent:"\u{1F5A5}\uFE0F \u4EE3\u7406",mcp:"\u{1F50C} MCP",knowledge:"\u{1F4DA} \u77E5\u8BC6\u5E93"},presetMode:{preciseLabel:"\u7CBE\u51C6\u4E25\u8C28",preciseTip:"\u6539\u9519\u3001\u8C03\u8BD5\u3001\u8981\u51C6\u786E\u7B54\u6848\uFF08\u4F4E\u968F\u673A\u6027\uFF0C\u9002\u5408\u4FEE bug\uFF09",generalLabel:"\u65E5\u5E38\u901A\u7528",generalTip:"\u591A\u6570\u573A\u666F\u90FD\u597D\u7528\uFF08\u5E73\u8861\u7A33\u5B9A\u4E0E\u7075\u6D3B\uFF0C\u9002\u5408\u5199\u811A\u672C\uFF09",divergentLabel:"\u601D\u8DEF\u53D1\u6563",divergentTip:"\u8981\u591A\u79CD\u65B9\u6848\u505A\u5BF9\u6BD4\uFF08\u9002\u5408\u91CD\u6784\u3001\u65B9\u6848\u5BF9\u6BD4\uFF09",creativeLabel:"\u521B\u610F\u8111\u66B4",creativeTip:"\u5199\u6587\u6848\u3001\u8D77\u540D\u3001\u5934\u8111\u98CE\u66B4\uFF08\u9AD8\u968F\u673A\u6027\uFF0C\u4E0D\u5EFA\u8BAE\u6B63\u5F0F\u4EE3\u7801\uFF09"},tool:{agent_file:"\u4EE3\u7406\u672C\u5730\u6587\u4EF6\u64CD\u4F5C\uFF08\u8BFB\u53D6/\u5199\u5165/\u5217\u8868/\u5220\u9664/\u4E0B\u8F7D\uFF09",agent_trash:"\u7BA1\u7406\u4EE3\u7406\u56DE\u6536\u7AD9\uFF08\u67E5\u770B/\u6062\u590D\u5DF2\u5220\u9664\u9879\uFF09",agent_exec:"\u5728\u4EE3\u7406\u673A\u5668\u4E0A\u6267\u884C Shell \u547D\u4EE4",agent_search:"\u5728\u4EE3\u7406\u673A\u5668\u4E0A\u641C\u7D22\u6587\u4EF6\u6216\u6587\u4EF6\u5185\u5BB9",agent_skill:"\u52A0\u8F7D\u6216\u8FD0\u884C Skill\uFF08run=\u5DE5\u4F5C\u6D41\uFF0Cload=Agent Skill\uFF09",manage_agent:"\u67E5\u770B\u6216\u5207\u6362\u5DF2\u914D\u5BF9\u7684 AI \u4EE3\u7406",exec_log:"\u63D0\u53D6\u6267\u884C\u65E5\u5FD7\uFF0C\u5206\u6790\u6210\u529F\u8DEF\u5F84\u4E0E\u5931\u8D25\u6559\u8BAD",clarify_question:"\u5411\u7528\u6237\u63D0\u95EE\u6F84\u6E05\uFF0C\u63D0\u4F9B\u9009\u9879\u4F9B\u9009\u62E9",plan_task:"\u5C06\u590D\u6742\u4EFB\u52A1\u89C4\u5212\u62C6\u89E3\u4E3A\u5B50\u4EFB\u52A1",search_chats:"\u641C\u7D22\u5386\u53F2\u5BF9\u8BDD\u8BB0\u5F55",preview_ui:"\u9884\u89C8\u6216\u83B7\u53D6 UI \u539F\u578B",dispatch_task:"\u5411\u5B50\u4EE3\u7406\u6D3E\u53D1\u4EFB\u52A1",take_note:"\u8BB0\u5F55\u5DE5\u4F5C\u4FBF\u7B7E\uFF0C\u8DE8\u4E0A\u4E0B\u6587\u538B\u7F29\u4FDD\u7559",interact_element:"\u4EA4\u4E92\u9875\u9762\u5143\u7D20\uFF08ref/\u6587\u672C/\u9009\u62E9\u5668\u5B9A\u4F4D\uFF1B\u652F\u6301 click/hover/type \u8F93\u5165\uFF09",scroll_to:"\u6EDA\u52A8\u9875\u9762\u5230\u76EE\u6807\u4F4D\u7F6E\uFF08\u5143\u7D20/\u5750\u6807/\u6587\u672C\uFF09",wait_element:"\u7B49\u5F85\u5143\u7D20\u51FA\u73B0/\u6D88\u5931/\u53EF\u89C1\u6027\u53D8\u5316",wait_navigation:"\u7B49\u5F85\u9875\u9762\u5BFC\u822A\u5B8C\u6210",handle_dialog:"\u5904\u7406\u9875\u9762\u5F39\u7A97\uFF08\u81EA\u52A8\u786E\u8BA4/\u53D6\u6D88/\u6062\u590D alert/confirm/prompt\uFF09",fill_form:"\u6279\u91CF\u586B\u5199\u591A\u4E2A\u8868\u5355\u5B57\u6BB5\uFF08\u652F\u6301 ref \u5B9A\u4F4D\uFF09",keyboard_input:"\u8F93\u5165\u6587\u672C\u6216\u6D3E\u53D1\u6309\u952E\u4E8B\u4EF6\uFF08\u53EF\u7ED5\u8FC7 React/Vue \u53D7\u63A7\u7EC4\u4EF6\uFF09",file_upload:"\u4E0A\u4F20\u6587\u4EF6\u5230\u9875\u9762",select_dropdown:"\u4E0B\u62C9\u6846\u9009\u62E9\uFF08\u652F\u6301\u81EA\u5B9A\u4E49\u7EC4\u4EF6\uFF09",page_content:"\u83B7\u53D6\u9875\u9762\u6587\u672C\u6216 HTML \u5185\u5BB9",extract_data:"\u63D0\u53D6\u7ED3\u6784\u5316\u6570\u636E\uFF08\u8868\u683C/\u94FE\u63A5/\u56FE\u7247/\u8868\u5355/\u5143\u4FE1\u606F\uFF09",query_elements:"\u67E5\u8BE2\u53EF\u4EA4\u4E92\u5143\u7D20\uFF0C\u8FD4\u56DE\u6811\u5F62\u5FEB\u7167\u4E0E ref \u7F16\u53F7\uFF08\u6253\u5F00\u7684\u5F39\u7A97/\u83DC\u5355\u63D0\u5347\u5230 [\u6253\u5F00\u5C42]\uFF1B\u53EF\u89C1 iframe \u4EE5 [frame #N] \u533A\u5757\u7EB3\u5165\uFF0C\u5176 ref \u5168\u5C40\u6709\u6548\uFF1B\u540C\u4E00\u5143\u7D20\u7F16\u53F7\u7A33\u5B9A\uFF0C\u9875\u9762\u53D8\u5316\u540E\u9700\u91CD\u65B0\u67E5\u8BE2\uFF1BhasMore \u4E3A\u771F\u65F6\u7528 page \u7FFB\u9875\uFF09",search_in_page:"\u5728\u5F53\u524D\u9875\u9762\u4E2D\u67E5\u627E\u6587\u672C",iframe_content:"\u83B7\u53D6\u9875\u9762\u4E2D iframe \u7684\u5185\u5BB9",scroll_collect:"\u6EDA\u52A8\u5E76\u6536\u96C6\u5185\u5BB9\uFF0C\u9002\u7528\u4E8E\u65E0\u9650\u6EDA\u52A8/\u61D2\u52A0\u8F7D\u9875\u9762",notify:"\u663E\u793A\u6D4F\u89C8\u5668\u901A\u77E5",clipboard:"\u526A\u8D34\u677F\u64CD\u4F5C\uFF08\u590D\u5236/\u7C98\u8D34/\u83B7\u53D6\u9009\u4E2D\u6587\u672C\uFF09",download_file:"\u4E0B\u8F7D\u6587\u4EF6\u5230\u672C\u5730",qrcode:"\u751F\u6210\u4E8C\u7EF4\u7801",capture_page:"\u622A\u53D6\u9875\u9762\u622A\u56FE\uFF08\u4E0B\u8F7D/\u5206\u6790/\u4E24\u8005\uFF09",inject_css:"\u4FEE\u6539\u9875\u9762\u5916\u89C2\uFF08\u6CE8\u5165\u6837\u5F0F\u8868/\u5185\u8054\u6837\u5F0F/\u9AD8\u4EAE\u6587\u672C\uFF09",agent_memory:"\u957F\u671F\u8BB0\u5FC6\u7BA1\u7406\uFF08\u5B58\u50A8/\u56DE\u5FC6/\u7EF4\u62A4\uFF09",manage_storage:"\u8BFB\u5199\u6D4F\u89C8\u5668 localStorage \u6216 sessionStorage\uFF08\u6E05\u9664\u9700\u786E\u8BA4\uFF09",manage_cookies:"\u83B7\u53D6/\u8BBE\u7F6E/\u5220\u9664/\u6279\u91CF\u6E05\u9664/\u5217\u51FA\u6D4F\u89C8\u5668 Cookie",fetch_url:"\u5411\u6307\u5B9A URL \u53D1\u9001 HTTP GET/POST \u8BF7\u6C42",manage_tab:"\u7BA1\u7406\u6D4F\u89C8\u5668\u6807\u7B7E\u9875\uFF08\u6253\u5F00/\u5207\u6362/\u5173\u95ED/\u5237\u65B0/\u524D\u8FDB\u540E\u9000\uFF09",list_tabs:"\u83B7\u53D6\u5DF2\u6253\u5F00\u7684\u6807\u7B7E\u9875\u5217\u8868",search_browser_data:"\u641C\u7D22\u6D4F\u89C8\u5668\u4E66\u7B7E\u6216\u8BBF\u95EE\u5386\u53F2",debug_page:"\u9AD8\u7EA7\u9875\u9762\u8C03\u8BD5\uFF08CDP\uFF09\uFF1A\u539F\u751F\u8F93\u5165\u4E8B\u4EF6\u3001\u7F51\u7EDC\u6293\u5305\u3001\u6267\u884C JS\u3001\u6574\u9875/\u5143\u7D20\u622A\u56FE\u3001\u8BBE\u5907\u4E0E UA \u6A21\u62DF",knowledge_search:"\u68C0\u7D22\u77E5\u8BC6\u5E93\u83B7\u53D6\u76F8\u5173\u5185\u5BB9\uFF08\u53EA\u8BFB\uFF09",knowledge_ingest:"\u5C06\u6587\u672C/\u672C\u5730\u6587\u4EF6/\u7F51\u9875\u5BFC\u5165\u77E5\u8BC6\u5E93\uFF08\u5199\u5165\u64CD\u4F5C\uFF09",knowledge_list:"\u5217\u51FA\u53EF\u7528\u77E5\u8BC6\u5E93\u53CA\u5176\u6587\u6863\u6570\u91CF"},react:{title:"\u2699\uFE0F \u63A8\u7406\u5FAA\u73AF\u914D\u7F6E",subtitle:"\u63A7\u5236 AI \u63A8\u7406\u5FAA\u73AF\u7684\u884C\u4E3A\u53C2\u6570\uFF08\u9AD8\u7EA7\u914D\u7F6E\uFF09",maxIterations:"\u6700\u5927\u5FAA\u73AF\u6B21\u6570",maxIterationsHint:"\uFF08\u590D\u6742\u4EFB\u52A1\u53EF\u9002\u5F53\u589E\u52A0\uFF09",min:"\u6700\u5C0F: 10",max:"\u6700\u5927: 1000",apiTimeout:"API \u8BF7\u6C42\u8D85\u65F6",apiTimeoutHint:"\uFF08\u5355\u6B21 API \u8C03\u7528\u7684\u6700\u957F\u7B49\u5F85\u65F6\u95F4\uFF09",unitMinute:"\u5206\u949F (min)",min1Minute:"\u6700\u5C0F: 1\u5206\u949F",max10Minutes:"\u6700\u5927: 10\u5206\u949F",max120Minutes:"\u6700\u5927: 120\u5206\u949F",max30Minutes:"\u6700\u5927: 30\u5206\u949F",loopTimeout:"\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6",loopTimeoutHint:"\uFF08\u6574\u4E2A\u63A8\u7406\u5FAA\u73AF\u7684\u6700\u957F\u6267\u884C\u65F6\u95F4\uFF09",toolTimeout:"\u5DE5\u5177\u6267\u884C\u8D85\u65F6",toolTimeoutHint:"\uFF08\u5355\u4E2A\u5DE5\u5177\u6267\u884C\u7684\u6700\u957F\u7B49\u5F85\u65F6\u95F4\uFF09",toolConfirmation:"\u654F\u611F\u64CD\u4F5C\u786E\u8BA4",toolConfirmationHint:"\uFF08\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\u65F6\uFF0C\u5F39\u7A97\u786E\u8BA4\u540E\u518D\u6267\u884C\uFF09",enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u505C\u7528",toolConfirmationDesc1:"\u542F\u7528\u540E\uFF0C\u5F53\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\uFF08\u5DE5\u5177\u8C03\u7528\u3001\u547D\u4EE4\u6267\u884C\u7B49\uFF09\u65F6\uFF0C\u4F1A\u5F39\u51FA\u786E\u8BA4\u6846\u7B49\u5F85\u7528\u6237\u786E\u8BA4\u3002",toolConfirmationDesc2:"\u5173\u95ED\u540E\uFF0C\u6240\u6709\u64CD\u4F5C\u5C06\u76F4\u63A5\u653E\u884C\u6267\u884C\uFF0C\u65E0\u9700\u786E\u8BA4\u3002",networkAccess:"\u5185\u7F51\u5730\u5740\u8BBF\u95EE",networkAccessHint:"\uFF08\u63A7\u5236 fetch_url \u8BF7\u6C42\u4E0E manage_tab \u6253\u5F00\u5185\u7F51\u9875\u9762\u7B49\u5DE5\u5177\u884C\u4E3A\u80FD\u5426\u8BBF\u95EE\u672C\u673A\u4E0E\u5185\u7F51\u5730\u5740\uFF09",networkAccessDesc1:"\u9ED8\u8BA4\u5173\u95ED\uFF1A\u5DE5\u5177\u53EA\u80FD\u8BBF\u95EE\u516C\u7F51\u5730\u5740\uFF0C127.0.0.1\u3001localhost\u3001192.168.x.x \u7B49\u672C\u673A\u4E0E\u5185\u7F51\u5730\u5740\u4F1A\u88AB\u76F4\u63A5\u62D2\u7EDD\u3002",networkAccessDesc2:"\u5F00\u542F\u540E\u4ECD\u9700\u5728\u4E0B\u65B9\u7684\u5141\u8BB8\u5217\u8868\u4E2D\u9010\u53F0\u6DFB\u52A0\u4E3B\u673A\uFF1B\u5217\u8868\u4E3A\u7A7A\u65F6\u4F9D\u7136\u62D2\u7EDD\u5168\u90E8\u5185\u7F51\u3002\u5173\u95ED\u5F00\u5173\u53EA\u662F\u6536\u8D77\u8BE5\u533A\u5757\uFF0C\u4E0D\u4F1A\u6E05\u7A7A\u5DF2\u5F55\u5165\u7684\u5217\u8868\u3002",completionVerification:"\u5B8C\u6210\u5EA6\u6821\u9A8C",completionVerificationHint:"\uFF08\u5B50\u4EFB\u52A1\u7ED3\u675F\u540E\u4F9D\u636E\u771F\u5B9E\u9875\u9762\u4E0E\u672C\u5730 Agent\uFF08\u547D\u4EE4\xB7\u6587\u4EF6\uFF09\u72EC\u7ACB\u5BA2\u89C2\u53D6\u8BC1\u6838\u9A8C\u662F\u5426\u771F\u6B63\u8FBE\u6807\uFF0C\u672A\u8FBE\u6807\u5982\u5B9E\u4E0A\u62A5\uFF09",completionVerificationDesc1:'\u542F\u7528\u540E\uFF0C\u5B50\u4EFB\u52A1\u6267\u884C\u5B8C\u6210\u65F6\u4F1A\u4F9D\u636E\u5176\u5B8C\u6210\u6807\u51C6\u72EC\u7ACB\u53D6\u8BC1\u6838\u9A8C\uFF0C\u672A\u8FBE\u6807\u7684\u9879\u76EE\u4F1A\u5982\u5B9E\u6807\u6CE8\u4E0A\u62A5\u7ED9\u6A21\u578B\uFF0C\u800C\u4E0D\u662F\u9ED8\u8BA4"\u8DD1\u5B8C\u5373\u6210\u529F"\u3002\u53D6\u8BC1\u4E0D\u9650\u4E8E\u7F51\u9875 DOM\uFF0C\u8FD8\u5305\u62EC\u7ECF\u7531\u672C\u5730 Agent \u6267\u884C\u7684\u547D\u4EE4\uFF08\u5982\u6D4B\u8BD5/\u6784\u5EFA\u7684\u9000\u51FA\u7801\uFF09\u4E0E\u6587\u4EF6\u68C0\u67E5\uFF08\u5B58\u5728/\u5185\u5BB9\uFF09\u3002\u5C5E\u5BA2\u89C2\u53D6\u8BC1\uFF08\u67E5\u73AF\u5883\u662F\u5426\u771F\u7684\u8FBE\u6210\u76EE\u6807\uFF09\uFF0C\u4E0E"AI \u81EA\u6211\u53CD\u601D"\u7684\u4E3B\u89C2\u81EA\u8BC4\u4E92\u8865\u3001\u4E0D\u91CD\u590D\u3002',completionVerificationDesc2:"\u5173\u95ED\u540E\uFF0C\u5B50\u4EFB\u52A1\u5B8C\u6210\u72B6\u6001\u4E0E\u6821\u9A8C\u524D\u9010\u5B57\u8282\u4E00\u81F4\uFF0C\u4E0D\u8FFD\u52A0\u4EFB\u4F55\u53D6\u8BC1\u4E0E\u6807\u6CE8\u3002",completionVerificationRerun:"\u5B8C\u6210\u5EA6\u81EA\u52A8\u91CD\u8DD1",completionVerificationRerunHint:"\uFF08\u5BF9\u672A\u8FBE\u6807\u4E14\u786E\u6709\u7F3A\u9879\u7684\u5B50\u4EFB\u52A1\u81EA\u52A8\u8865\u8DD1\u4E00\u8F6E\uFF0C\u53D7\u6B21\u6570\u4E0E\u9884\u7B97\u4E0A\u9650\u7EA6\u675F\uFF09",completionVerificationRerunDesc1:'\u5F00\u542F\u540E\uFF0C\u72EC\u7ACB\u53D6\u8BC1\u53D1\u73B0\u5B50\u4EFB\u52A1\u786E\u6709\u7F3A\u9879\uFF08\u672A\u8FBE\u6807\uFF09\u65F6\uFF0C\u4F1A\u628A"\u8FD8\u7F3A\u4EC0\u4E48"\u4F5C\u4E3A\u65B0\u6307\u4EE4\u8FFD\u52A0\u7ED9\u8BE5\u5B50\u4EFB\u52A1\u5E76\u518D\u8DD1\u4E00\u8F6E\uFF0C\u76F4\u5230\u8FBE\u6807\u6216\u89E6\u53CA\u5B89\u5168\u4E0A\u9650\uFF08\u7F3A\u9879\u5FC5\u987B\u9010\u8F6E\u4E25\u683C\u51CF\u5C11\u3001\u6B21\u6570\u4E0A\u9650\u3001\u65F6\u95F4/token \u9884\u7B97\u3001\u53D6\u6D88\u6216\u8D85\u65F6\u5373\u505C\uFF09\u3002\u6D4B\u8BD5/\u6784\u5EFA\u7C7B"\u5141\u8BB8\u6863"\u547D\u4EE4\u53EF\u88AB\u81EA\u52A8\u6267\u884C\u53D6\u8BC1\uFF1B\u9700\u786E\u8BA4\u6216\u88AB\u5B89\u5168\u7B56\u7565\u62D2\u7EDD\u7684\u547D\u4EE4\u7EDD\u4E0D\u5F3A\u5236\u8FD0\u884C\uFF0C\u53EA\u5224\u4E3A\u65E0\u6CD5\u53D6\u8BC1\u3002\u5F00\u542F\u6B64\u9879\u4F1A\u6267\u884C\u547D\u4EE4\u5E76\u589E\u52A0\u8017\u65F6\u4E0E token \u6D88\u8017\uFF0C\u9ED8\u8BA4\u5173\u95ED\u3002',completionVerificationRerunDesc2:'\u5173\u95ED\u65F6\uFF08\u9ED8\u8BA4\uFF09\uFF0C\u884C\u4E3A\u4E0E"\u4EC5\u6807\u6CE8\u3001\u4E0D\u91CD\u8DD1"\u9010\u5B57\u8282\u4E00\u81F4\uFF1A\u672A\u8FBE\u6807\u53EA\u5982\u5B9E\u4E0A\u62A5\uFF0C\u7EDD\u4E0D\u81EA\u52A8\u8865\u8DD1\u3002',networkAllowlistTitle:"\u5185\u7F51\u5141\u8BB8\u5217\u8868",networkAllowlistDesc:"\u652F\u6301\u4E3B\u673A\u540D\u3001IP \u4E0E *.example.com \u5B50\u57DF\u901A\u914D\uFF08\u4E0D\u586B\u534F\u8BAE\u4E0E\u7AEF\u53E3\uFF09\uFF1B\u53EA\u6709\u5217\u5728\u8FD9\u91CC\u7684\u5185\u7F51\u4E3B\u673A\u624D\u4F1A\u88AB\u653E\u884C\u3002",networkHostAddPlaceholder:"\u4F8B\u5982\uFF1A127.0.0.1 \u6216 intranet.example.com",networkHostAdd:"\u6DFB\u52A0",networkHostRemove:"\u79FB\u9664",networkAllowlistEmpty:"\u6682\u65E0\u5141\u8BB8\u7684\u4E3B\u673A\u3002\u5F00\u542F\u603B\u5F00\u5173\u540E\uFF0C\u5185\u7F51\u76EE\u6807\u4ECD\u9700\u547D\u4E2D\u6B64\u5217\u8868\u624D\u4F1A\u88AB\u8BBF\u95EE\u3002",networkHostEmpty:"\u8BF7\u8F93\u5165\u8981\u5141\u8BB8\u7684\u4E3B\u673A\u540D\u6216 IP",networkHostInvalid:"\u6761\u76EE\u4E0D\u80FD\u5305\u542B\u7A7A\u683C\uFF0C\u8BF7\u53EA\u586B\u5199\u4E3B\u673A\u540D\u6216 IP",networkHostExists:"\u8BE5\u4E3B\u673A\u5DF2\u5728\u5141\u8BB8\u5217\u8868\u4E2D",enableExecutionLog:"\u542F\u7528\u6267\u884C\u65E5\u5FD7",enableExecutionLogHint:"\uFF08\u663E\u793A API \u8C03\u7528\u548C\u5DE5\u5177\u6267\u884C\u7684\u8BE6\u7EC6\u65E5\u5FD7\uFF0C\u5E2E\u52A9\u8C03\u8BD5\u548C\u7406\u89E3 AI \u601D\u8003\u8FC7\u7A0B\uFF09",enableExecutionLogDesc1:'\u542F\u7528\u540E\uFF0C\u6D88\u606F\u5E95\u90E8\u4F1A\u663E\u793A"\u6267\u884C\u65E5\u5FD7"\u6309\u94AE\uFF0C\u70B9\u51FB\u53EF\u67E5\u770B API \u8C03\u7528\u548C\u5DE5\u5177\u6267\u884C\u7684\u8BE6\u7EC6\u8FC7\u7A0B\u3002',enableExecutionLogDesc2:"\u5173\u95ED\u540E\uFF0C\u6D88\u606F\u5E95\u90E8\u4E0D\u518D\u663E\u793A\u8BE5\u6309\u94AE\u3002",streaming:"\u6D41\u5F0F\u8F93\u51FA",streamingHint:"\uFF08\u5F00\u542F\u540E AI \u56DE\u590D\u4F1A\u5B9E\u65F6\u9010\u5B57\u663E\u793A\uFF0C\u63D0\u4F9B\u66F4\u5FEB\u7684\u53CD\u9988\u611F\u77E5\uFF09",streamingDesc1:"\u5F00\u542F\u540E AI \u56DE\u590D\u4F1A\u5B9E\u65F6\u9010\u5B57\u663E\u793A\uFF0C\u4EE3\u7406\u7AEF\u547D\u4EE4\u6267\u884C\u65F6\u4E5F\u4F1A\u5B9E\u65F6\u8F93\u51FA\uFF0C\u63D0\u4F9B\u66F4\u5FEB\u7684\u53CD\u9988\u611F\u77E5\u3002",streamingDesc2:"\u5982\u679C\u9047\u5230\u517C\u5BB9\u6027\u95EE\u9898\uFF0C\u53EF\u5173\u95ED\u6B64\u5F00\u5173\u56DE\u9000\u5230\u4E00\u6B21\u6027\u8F93\u51FA\u6A21\u5F0F\u3002",streamExpandTools:"\u6D41\u5F0F\u5DE5\u5177\u5361\u7247\u9ED8\u8BA4\u5C55\u5F00",streamExpandToolsHint:"\uFF08\u5173\u95ED\u5219\u5DE5\u5177\u5361\u7247\u9ED8\u8BA4\u6298\u53E0\uFF0C\u4EC5\u663E\u793A\u6807\u9898\u4E0E\u72B6\u6001\uFF0C\u70B9\u51FB\u53EF\u5C55\u5F00\u8BE6\u60C5\uFF09",configGuide:"\u{1F4A1} \u914D\u7F6E\u8BF4\u660E",guideReasoningLoop:"\u63A8\u7406\u5FAA\u73AF",guideReasoningLoopDesc:"\u662F AI \u52A9\u624B\u8FDB\u884C\u591A\u6B65\u63A8\u7406\u548C\u5DE5\u5177\u8C03\u7528\u7684\u6838\u5FC3\u673A\u5236\u3002",guideLoopCount:"\u5FAA\u73AF\u6B21\u6570",guideLoopCountDesc:"\uFF1A\u51B3\u5B9A AI \u53EF\u4EE5\u8FDB\u884C\u591A\u5C11\u8F6E\u63A8\u7406-\u884C\u52A8\u5FAA\u73AF",guideTimeout:"\u8D85\u65F6\u8BBE\u7F6E",guideTimeoutDesc:"\uFF1AAPI \u8BF7\u6C42 / \u6574\u4F53\u5FAA\u73AF / \u5DE5\u5177\u6267\u884C\u4E09\u9879\u8D85\u65F6\uFF0C\u9632\u6B62\u957F\u65F6\u95F4\u7B49\u5F85\u6216\u65E0\u9650\u5FAA\u73AF",guideToolConfirm:"\u654F\u611F\u64CD\u4F5C\u786E\u8BA4",guideToolConfirmDesc:"\uFF1A\u6A21\u578B\u6267\u884C\u654F\u611F\u64CD\u4F5C\u524D\u5F39\u7A97\u7B49\u5F85\u4F60\u786E\u8BA4\uFF0C\u9632\u6B62\u8BEF\u64CD\u4F5C",guideClarifyWait:"\u6F84\u6E05\u7B49\u5F85",guideClarifyWaitDesc:"\uFF1A\u7528\u6237\u6F84\u6E05\u65F6\u95F4\u4E0D\u8BA1\u5165\u6574\u4F53\u5FAA\u73AF\u8D85\u65F6\uFF08\u81EA\u52A8\u6682\u505C\u8BA1\u65F6\uFF0C\u975E\u914D\u7F6E\u9879\uFF09",guideTip:"\u2022 \u5EFA\u8BAE\u6839\u636E\u7F51\u7EDC\u72B6\u51B5\u548C\u4EFB\u52A1\u590D\u6742\u5EA6\u8C03\u6574\u8FD9\u4E9B\u53C2\u6570"},reflection:{title:"AI \u81EA\u6211\u53CD\u601D",enabled:"\u5DF2\u542F\u7528",subtitle:"\u63A7\u5236 AI \u5BF9\u4EFB\u52A1\u6267\u884C\u7ED3\u679C\u7684\u81EA\u6211\u8BC4\u4F30\u548C\u4FEE\u8BA2\u884C\u4E3A",subtitleHint:'\uFF08\u63A7\u5236 AI \u5BF9\u7B54\u6848\u8D28\u91CF\u7684\u81EA\u6211\u8BC4\u4F30\u548C\u4FEE\u8BA2\u884C\u4E3A\u2014\u2014\u5C5E\u4E3B\u89C2\u81EA\u8BC4\uFF0C\u4E0E"\u5B8C\u6210\u5EA6\u6821\u9A8C"\u7684\u5BA2\u89C2\u53D6\u8BC1\u4E92\u8865\uFF09',desc1:"\u542F\u7528\u540E\uFF0CAI \u4F1A\u5728\u63A8\u7406\u5FAA\u73AF\u7ED3\u675F\u540E\u5BF9\u7ED3\u679C\u81EA\u6211\u8BC4\u4F30\uFF0C\u8BC4\u5206\u4F4E\u4E8E\u9608\u503C\u65F6\u81EA\u52A8\u4FEE\u8BA2\u6216\u91CD\u65B0\u6267\u884C\u3002\u5C24\u5176\u9002\u5408\u65E0\u5BA2\u89C2\u5224\u636E\u7684\u5F00\u653E\u5F0F\u4EFB\u52A1\uFF08\u95EE\u7B54/\u5199\u4F5C/\u5206\u6790\uFF09\u2014\u2014\u8FD9\u7C7B\u4EFB\u52A1\u5B8C\u6210\u5EA6\u6821\u9A8C\u4E0D\u4F1A\u4ECB\u5165\u3002",desc2:"\u5173\u95ED\u540E\u6536\u8D77\u4E0B\u65B9\u4E8C\u7EA7\u5F00\u5173\uFF1B\u542F\u7528\u53CD\u601D\u4F1A\u589E\u52A0 API \u8C03\u7528\u6B21\u6570\uFF0C\u5EFA\u8BAE\u6309\u9700\u6743\u8861\u3002",postReflection:"\u540E\u7F6E\u53CD\u601D",postReflectionHint:"\uFF08\u5B8C\u6210\u540E\u8BC4\u4F30\u7ED3\u679C\u8D28\u91CF\uFF09",subtaskReflection:"\u5B50\u4EFB\u52A1\u53CD\u601D",subtaskReflectionHint:"\uFF08\u9AD8\u7EA7\u529F\u80FD\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF09",configGuide:"\u{1F4A1} \u53CD\u601D\u914D\u7F6E\u8BF4\u660E",guidePostReflection:"\u540E\u7F6E\u53CD\u601D",guidePostReflectionDesc:"\uFF1A\u5728\u63A8\u7406\u5FAA\u73AF\u7ED3\u675F\u540E\uFF0CAI \u4F1A\u5BF9\u6700\u7EC8\u7ED3\u679C\u8FDB\u884C\u81EA\u6211\u8BC4\u4F30\u3002\u5982\u679C\u8BC4\u5206\u4F4E\u4E8E\u9608\u503C\uFF0C\u4F1A\u81EA\u52A8\u4FEE\u8BA2\u6216\u91CD\u65B0\u6267\u884C\u3002",guideSubtaskReflection:"\u5B50\u4EFB\u52A1\u53CD\u601D",guideSubtaskReflectionDesc:"\uFF1A\u5BF9\u4E8E\u590D\u6742\u4EFB\u52A1\u62C6\u89E3\u540E\u7684\u5B50\u4EFB\u52A1\u8FDB\u884C\u5355\u72EC\u8BC4\u4F30\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF08\u9AD8\u7EA7\u529F\u80FD\uFF09\u3002",guideTip:"\u2022 \u542F\u7528\u53CD\u601D\u4F1A\u589E\u52A0 API \u8C03\u7528\u6B21\u6570\uFF0C\u5EFA\u8BAE\u6839\u636E\u9700\u6C42\u6743\u8861"},toolbar:{title:"\u{1F527} \u5DE5\u5177\u680F\u8BBE\u7F6E",enabled:"\u5DF2\u542F\u7528",subtitle:"\u7BA1\u7406\u5212\u8BCD\u5DE5\u5177\u680F\u7684\u6309\u94AE\u548C\u987A\u5E8F",iconOnly:"\u5DE5\u5177\u680F\u56FE\u6807\u7CBE\u7B80\u6A21\u5F0F\uFF08\u4EC5\u663E\u793A\u56FE\u6807\uFF0C\u4E0D\u663E\u793A\u6587\u5B57\uFF09",addCustomTool:"\uFF0B \u6DFB\u52A0\u81EA\u5B9A\u4E49\u5DE5\u5177",domainBlocklistTitle:"\u57DF\u540D\u5C4F\u853D",domainBlocklistDesc:"\u5728\u6B64\u6DFB\u52A0\u9700\u8981\u5C4F\u853D\u5DE5\u5177\u680F\u7684\u57DF\u540D\uFF0C\u5C4F\u853D\u540E\u8BE5\u57DF\u540D\u4E0B\u4E0D\u518D\u663E\u793A\u5212\u8BCD\u5DE5\u5177\u680F",domainAddPlaceholder:"\u4F8B\u5982\uFF1Aexample.com\uFF08\u4E0D\u542B http/https\uFF09",add:"\u6DFB\u52A0",toolEditModalTitle:"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u5DE5\u5177",toolName:"\u5DE5\u5177\u540D\u79F0",toolNamePlaceholder:"\u4F8B\u5982\uFF1A\u6DA6\u8272\u3001\u6539\u5199\u3001\u4EE3\u7801\u5BA1\u67E5",systemPromptLabel:"\u7CFB\u7EDF\u63D0\u793A\u8BCD",systemPromptHint:"\uFF08\u5B9A\u4E49\u8BE5\u5DE5\u5177\u7684\u884C\u4E3A\uFF09",toolPromptPlaceholder:"\u4F8B\u5982\uFF1A\u4F60\u662F\u4E00\u4E2A\u6587\u672C\u6DA6\u8272\u52A9\u624B\uFF0C\u8BF7\u5C06\u7528\u6237\u8F93\u5165\u7684\u5185\u5BB9\u6DA6\u8272\u5F97\u66F4\u6D41\u7545\u3001\u66F4\u4E13\u4E1A\u3002",builtinBadge:"\u5185\u7F6E",customBadge:"\u81EA\u5B9A\u4E49",moveUp:"\u4E0A\u79FB",moveDown:"\u4E0B\u79FB",dragSort:"\u62D6\u62FD\u6392\u5E8F",editCustomToolTitle:"\u7F16\u8F91\u81EA\u5B9A\u4E49\u5DE5\u5177",toolNameEmpty:"\u5DE5\u5177\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",toolPromptEmpty:"\u7CFB\u7EDF\u63D0\u793A\u8BCD\u4E0D\u80FD\u4E3A\u7A7A",toolNotFound:"\u672A\u627E\u5230\u8BE5\u5DE5\u5177",cannotEditBuiltin:"\u4E0D\u80FD\u7F16\u8F91\u5185\u7F6E\u5DE5\u5177",noBlockedDomains:"\u6682\u65E0\u5C4F\u853D\u57DF\u540D\uFF0C\u5728\u4E0A\u65B9\u8F93\u5165\u57DF\u540D\u6DFB\u52A0",unblock:"\u53D6\u6D88\u5C4F\u853D",domainEmpty:"\u57DF\u540D\u4E0D\u80FD\u4E3A\u7A7A",domainInvalid:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u57DF\u540D\uFF0C\u4F8B\u5982 example.com",domainExists:"\u8BE5\u57DF\u540D\u5DF2\u5B58\u5728"},agentConfig:{title:"\u{1F5A5}\uFE0F \u4EE3\u7406\u914D\u7F6E",subtitle:"\u8FDE\u63A5\u4EE3\u7406\u670D\u52A1\uFF0C\u5B9E\u73B0\u6587\u4EF6\u8BFB\u5199\u3001\u7CFB\u7EDF\u547D\u4EE4\u6267\u884C\u3001\u5BF9\u8BDD\u8BB0\u5FC6\u7BA1\u7406\u3001Skill \u5DE5\u4F5C\u6D41\u53CA MCP \u534F\u8BAE\u6269\u5C55\u7B49\u9AD8\u7EA7\u80FD\u529B\u3002\u652F\u6301\u914D\u7F6E\u5E76\u5339\u914D\u591A\u4E2A\u4EE3\u7406\uFF0C\u4E00\u952E\u8FDE\u63A5\u3002",pairedAgents:"\u5DF2\u914D\u5BF9\u4EE3\u7406",notConnected:"\u672A\u8FDE\u63A5",detailToggle:"\u25B6 \u8BE6\u7EC6\u4FE1\u606F",addAgentTitle:"\u6DFB\u52A0\u65B0\u4EE3\u7406",agentName:"\u4EE3\u7406\u540D\u79F0",agentNameHint:"\uFF08\u81EA\u5B9A\u4E49\uFF0C\u7559\u7A7A\u5219\u81EA\u52A8\u83B7\u53D6\uFF09",agentNamePlaceholder:"\u4F8B\u5982\uFF1A\u529E\u516C\u5BA4 Mac",agentUrl:"\u4EE3\u7406\u5730\u5740",agentUrlHint:"\uFF08\u4EE3\u7406\u670D\u52A1\u7684 HTTP \u5730\u5740\uFF09",pairCode:"\u914D\u5BF9\u7801",pairCodeHint:"\uFF08\u5728 Agent \u7EC8\u7AEF\u7A97\u53E3\u4E2D\u67E5\u770B\uFF09",pairCodePlaceholder:"6\u4F4D\u914D\u5BF9\u7801",connect:"\u8FDE\u63A5",toolCount:"{count} \u4E2A\u5DE5\u5177",selectedTotalCount:"(\u5DF2\u9009 {selected} / \u5171 {total})",toggleCategoryAll:"\u70B9\u51FB\u5207\u6362\u8BE5\u5206\u7C7B\u5168\u9009/\u53D6\u6D88\u5168\u9009",useInstructionTitle:"\u{1F4A1} \u4F7F\u7528\u8BF4\u660E\u53CA\u5B89\u5168\u63D0\u793A",installGuideTitle:"\u{1F4E5} \u5B89\u88C5\u4EE3\u7406\u7AEF v{version}\uFF08\u4E0E\u5F53\u524D\u63D2\u4EF6\u7248\u672C\u5339\u914D\uFF09",installGuideHint:"\u590D\u5236\u4E0B\u65B9\u547D\u4EE4\u7C98\u8D34\u5230\u7EC8\u7AEF\u6267\u884C\uFF0C\u5C06\u5B89\u88C5\u4E0E\u5F53\u524D\u63D2\u4EF6\u7248\u672C\u4E00\u81F4\u7684\u4EE3\u7406\u7AEF\uFF0C\u907F\u514D\u7248\u672C\u4E0D\u5339\u914D\u5BFC\u81F4\u65E0\u6CD5\u8FDE\u63A5\u3002",installGuideMacLinux:"macOS / Linux",copyCmd:"\u590D\u5236",copyCmdAuto:"\u4E00\u952E\u590D\u5236\uFF08\u6309\u5F53\u524D\u7CFB\u7EDF\uFF09",copyCmdSuccess:"\u5B89\u88C5\u547D\u4EE4\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyCmdFailed:"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u547D\u4EE4\u590D\u5236",method1:"\u65B9\u5F0F\u4E00\uFF1ANPM \u5168\u5C40\u5B89\u88C5\uFF08\u63A8\u8350\uFF09",method1Step1:"\uFF08\u8981\u6C42 Node.js \u2265 18\uFF09",method1Step2:" \u6216\u7B80\u5199 ",method1Step3:'3. \u7EC8\u7AEF\u663E\u793A 6 \u4F4D\u914D\u5BF9\u7801\uFF0C\u5728\u6B64\u9875\u9762\u586B\u5165\u5E76\u70B9\u51FB"\u8FDE\u63A5"',method2:"\u65B9\u5F0F\u4E8C\uFF1A\u672C\u5730\u6E90\u7801\u8FD0\u884C\uFF08\u5F00\u53D1\u8C03\u8BD5\uFF09",method2Step2:'2. \u7EC8\u7AEF\u663E\u793A 6 \u4F4D\u914D\u5BF9\u7801\uFF0C\u5728\u6B64\u9875\u9762\u586B\u5165\u5E76\u70B9\u51FB"\u8FDE\u63A5"',cmdAlias:"\u547D\u4EE4\u522B\u540D",cmdAliasPrefix:" \u53EF\u7B80\u5199\u4E3A ",cmdAliasSuffix:"\uFF0C\u6240\u6709\u547D\u4EE4\u5747\u652F\u6301",bgRun:"\u540E\u53F0\u8FD0\u884C\uFF1A",bgRunMethod1:"\u3000\u65B9\u5F0F\u4E00\uFF1A",bgRunMethod1Mid:" \u6216 ",bgRunMethod2:"\u3000\u65B9\u5F0F\u4E8C\uFF1A",moreCmd:"\u66F4\u591A\u547D\u4EE4\uFF1A",moreCmdMid:" \u6216 ",securityTitle:"\u26A0\uFE0F \u5B89\u5168\u63D0\u793A",security1:"\u4EE3\u7406\u670D\u52A1\u9ED8\u8BA4\u4EC5\u76D1\u542C\u672C\u673A\u5730\u5740\uFF08127.0.0.1\uFF09\uFF0C\u5982\u9700\u8FDC\u7A0B\u8FDE\u63A5\u8BF7\u4FEE\u6539\u542F\u52A8\u53C2\u6570\u3002",security2:"\u6587\u4EF6\u64CD\u4F5C\u9650\u5236\u5728\u5DE5\u4F5C\u76EE\u5F55\u548C\u767D\u540D\u5355\u5141\u8BB8\u76EE\u5F55\u5185\uFF0C\u4E0D\u53EF\u8D8A\u6743\u8BBF\u95EE\u3002",security3:"\u9AD8\u5371\u547D\u4EE4\u81EA\u52A8\u62E6\u622A\uFF0C\u654F\u611F\u547D\u4EE4\u652F\u6301\u914D\u7F6E\u5316\u786E\u8BA4\u653E\u884C\u3002",addAnotherAgent:"\u518D\u6DFB\u52A0\u4E00\u4E2A\u4EE3\u7406",checking:"\u68C0\u6D4B\u4E2D",connected:"\u5DF2\u8FDE\u63A5",online:"\u5728\u7EBF",offline:"\u79BB\u7EBF",clickToEditName:"\u70B9\u51FB\u7F16\u8F91\u540D\u79F0",currentInUse:"\u5F53\u524D\u4F7F\u7528 \xB7 ",enable:"\u542F\u7528",disable:"\u505C\u7528",disconnect:"\u65AD\u5F00",connectedTo:"\u5DF2\u8FDE\u63A5\u5230: {name}",confirmDeleteAgent:`\u786E\u5B9A\u8981\u5220\u9664\u4EE3\u7406 "{name}" ({url}) \u5417\uFF1F
11
11
  \u5220\u9664\u540E\u9700\u91CD\u65B0\u914D\u5BF9\u624D\u80FD\u4F7F\u7528\u3002`,deleteAgentTitle:"\u5220\u9664\u4EE3\u7406",agentDeleted:"\u5DF2\u5220\u9664\u4EE3\u7406: {name}",agentDisabledToast:"\u5DF2\u505C\u7528\u4EE3\u7406: {name}",agentEnabledToast:"\u5DF2\u542F\u7528\u4EE3\u7406: {name}",fetchingAgentInfo:"\u6B63\u5728\u83B7\u53D6\u4EE3\u7406\u4FE1\u606F...",agentUnreachable:"\u4EE3\u7406\u670D\u52A1\u4E0D\u53EF\u8FBE",tokenExpired:"Token \u5DF2\u5931\u6548 - \u8BF7\u91CD\u65B0\u914D\u5BF9",cannotConnectAgent:"\u65E0\u6CD5\u8FDE\u63A5\u5230\u4EE3\u7406 - \u8BF7\u786E\u8BA4\u4EE3\u7406\u670D\u52A1\u5DF2\u542F\u52A8",notConnectedSelect:"\u672A\u8FDE\u63A5 - \u8BF7\u4ECE\u5217\u8868\u4E2D\u9009\u62E9\u4EE3\u7406\u8FDE\u63A5",notConnectedAdd:"\u672A\u8FDE\u63A5 - \u8BF7\u6DFB\u52A0\u4EE3\u7406\u914D\u5BF9",unlimited:"\u65E0\u9650\u5236",idle:"\u7A7A\u95F2",unknownCommand:"(\u672A\u77E5\u547D\u4EE4)",detailVersion:"\u7248\u672C",detailSystem:"\u7CFB\u7EDF",detailHostname:"\u4E3B\u673A\u540D",detailHomeDir:"\u7528\u6237\u76EE\u5F55",detailRunningProcesses:"\u8FD0\u884C\u4E2D\u8FDB\u7A0B",detailRunningProcessesCount:"\u8FD0\u884C\u4E2D\u8FDB\u7A0B ({count})",detailMemoryUsage:"\u5185\u5B58\u4F7F\u7528",detailMemoryDetail:"\u5806 {used}MB / \u603B {total}MB \xB7 RSS {rss}MB",detailUptime:"\u8FD0\u884C\u65F6\u957F",detailCpuUser:"CPU \u7528\u6237\u6001",detailCpuSystem:"CPU \u5185\u6838\u6001",detailCommandTimeout:"\u547D\u4EE4\u8D85\u65F6",detailUploadMaxSize:"\u4E0A\u4F20\u5927\u5C0F\u9650\u5236",detailFileMaxSize:"\u8BFB\u53D6\u5927\u5C0F\u9650\u5236",detailAllowedPaths:"\u5141\u8BB8\u8BBF\u95EE\u7684\u76EE\u5F55",detailPairCodeTTL:"\u914D\u5BF9\u7801\u6709\u6548\u671F",detailWorkdir:"\u{1F4C1} \u5DE5\u4F5C\u76EE\u5F55: {dir}",pairCodeRequired:"\u8BF7\u8F93\u51656\u4F4D\u914D\u5BF9\u7801",pairing:"\u6B63\u5728\u914D\u5BF9...",pairingBtn:"\u914D\u5BF9\u4E2D...",unnamedAgent:"\u672A\u547D\u540D\u4EE3\u7406",pairSuccess:"\u914D\u5BF9\u6210\u529F\uFF01\u5DF2\u6DFB\u52A0: {name}",pairFailed:"\u914D\u5BF9\u5931\u8D25\uFF1A{error}",unknownError:"\u672A\u77E5\u9519\u8BEF",connectFailed:"\u8FDE\u63A5\u5931\u8D25 - \u8BF7\u786E\u8BA4\u4EE3\u7406\u670D\u52A1\u5DF2\u542F\u52A8",cannotConnectAgentMsg:"\u65E0\u6CD5\u8FDE\u63A5\u5230 Agent: {error}",disconnectedToast:"\u5DF2\u65AD\u5F00\u8FDE\u63A5",detailToggleOpen:"\u25BC \u8BE6\u7EC6\u4FE1\u606F",pairFailedShort:"\u914D\u5BF9\u5931\u8D25"},toolbox:{checkingAgent:"\u6B63\u5728\u68C0\u67E5 Agent \u8FDE\u63A5...",mcpTitle:"\u{1F50C} MCP \u670D\u52A1\u5668\u7BA1\u7406",mcpDisabled:"\u5DF2\u505C\u7528",mcpDesc:"\u901A\u8FC7 MCP \u534F\u8BAE\u8FDE\u63A5\u5916\u90E8\u5DE5\u5177\u670D\u52A1\u5668\uFF0C\u6269\u5C55 AI \u52A9\u624B\u7684\u5DE5\u5177\u80FD\u529B\u3002\u5173\u95ED\u540E\u6240\u6709 MCP \u5DE5\u5177\u5C06\u4E0D\u4F1A\u53D1\u9001\u5230 AI \u4E0A\u4E0B\u6587\u3002",loading:"\u52A0\u8F7D\u4E2D...",addMcpServer:"+ \u6DFB\u52A0 MCP \u670D\u52A1\u5668",skillTitle:"\u{1F9E9} \u6280\u80FD\u7BA1\u7406",skillDisabled:"\u5DF2\u505C\u7528",skillDesc:"\u7BA1\u7406\u53EF\u590D\u7528\u7684\u5DE5\u4F5C\u6D41\u548C Agent \u6280\u80FD\u3002\u5173\u95ED\u540E\u6240\u6709\u6280\u80FD\u5185\u5BB9\u5C06\u4E0D\u4F1A\u6CE8\u5165\u5230 AI \u7CFB\u7EDF\u63D0\u793A\u8BCD\u4E2D\u3002",ragTitle:"\u{1F4DA} \u77E5\u8BC6\u5E93\u68C0\u7D22\uFF08RAG\uFF09",ragDisabled:"\u5DF2\u505C\u7528",ragDesc:"\u5728\u4EE3\u7406\u7AEF\u672C\u5730\u6784\u5EFA\u77E5\u8BC6\u5E93\uFF0C\u5BF9\u8BDD\u65F6\u68C0\u7D22\u589E\u5F3A\u56DE\u7B54\u3002\u9700\u8981\u5B89\u88C5\u989D\u5916\u7684\u53EF\u9009\u4F9D\u8D56\uFF08\u7EA6 200-300MB\uFF09\uFF0C\u5173\u95ED\u540E\u77E5\u8BC6\u5E93\u5185\u5BB9\u4E0D\u4F1A\u53D1\u9001\u5230 AI \u4E0A\u4E0B\u6587\u3002",ragServiceEnabled:"\u77E5\u8BC6\u5E93\u68C0\u7D22\u5DF2\u542F\u7528",ragServiceDisabled:"\u77E5\u8BC6\u5E93\u68C0\u7D22\u5DF2\u505C\u7528",ragStatusChecking:"\u6B63\u5728\u68C0\u6D4B RAG \u80FD\u529B...",ragStatusReadyTitle:"RAG \u80FD\u529B\u5DF2\u5C31\u7EEA",ragStatusReadyDesc:"\u4EE3\u7406\u7AEF\u4F9D\u8D56\u5DF2\u5B89\u88C5\u3002\u77E5\u8BC6\u5E93\u7BA1\u7406\u529F\u80FD\u5C06\u5728\u540E\u7EED\u7248\u672C\u63D0\u4F9B\u3002",ragStatusNotInstalledTitle:"\u4EE3\u7406\u7AEF\u672A\u5B89\u88C5 RAG \u4F9D\u8D56",ragStatusNotInstalledDesc:"\u542F\u7528\u77E5\u8BC6\u5E93\u68C0\u7D22\u9700\u8981\u5148\u5728\u4EE3\u7406\u7AEF\u5B89\u88C5\u989D\u5916\u7684\u4F9D\u8D56\u5305\u3002",ragStatusNodeLowTitle:"\u8FD0\u884C\u73AF\u5883\u4E0D\u6EE1\u8DB3\u8981\u6C42",ragStatusNodeLowDesc:"RAG \u529F\u80FD\u9700\u8981 Node.js 22+\uFF08\u4EE3\u7406\u7AEF\u5F53\u524D\u4E3A {version}\uFF09\uFF0C\u8BF7\u5347\u7EA7 Node.js \u540E\u91CD\u542F\u4EE3\u7406\u3002",ragStatusAgentOffTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",ragStatusAgentOffDesc:"\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300DTab \u4E2D\u8FDE\u63A5 Agent \u670D\u52A1\u540E\u518D\u914D\u7F6E\u77E5\u8BC6\u5E93\u68C0\u7D22",ragStatusUnreachableTitle:"\u65E0\u6CD5\u83B7\u53D6\u4EE3\u7406\u72B6\u6001",ragStatusUnreachableDesc:"\u8BF7\u786E\u8BA4\u4EE3\u7406\u670D\u52A1\u8FD0\u884C\u6B63\u5E38\u540E\u70B9\u51FB\u300C\u91CD\u65B0\u68C0\u6D4B\u300D\u3002",ragInstallPackagesLabel:"\u9700\u8981\u5B89\u88C5\u7684\u5305\uFF1A",ragInstallRequirements:"\u8FD0\u884C\u73AF\u5883\u8981\u6C42 Node.js 22+\uFF1B\u9884\u8BA1\u4E0B\u8F7D\u7EA6 200-300MB\uFF08\u542B onnxruntime \u539F\u751F\u5E93\uFF0C\u89C6\u5E73\u53F0\u800C\u5B9A\uFF09\uFF1B\u9996\u6B21\u4F7F\u7528\u8FD8\u9700\u4E0B\u8F7D AI \u6A21\u578B\u7EA6 95MB\u3002",ragInstallNoRestartNeeded:"\u5B89\u88C5\u6210\u529F\u540E\u81EA\u52A8\u5C31\u7EEA\uFF0C\u65E0\u9700\u91CD\u542F\u4EE3\u7406\u670D\u52A1\u3002",ragInstallCommandLabel:"\u4E5F\u53EF\u5728\u4EE3\u7406\u7AEF\u5B89\u88C5\u76EE\u5F55\u624B\u52A8\u6267\u884C\uFF1A",ragCopyCmd:"\u{1F4CB} \u590D\u5236\u547D\u4EE4",ragCopied:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",ragCopyFailed:"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u62E9\u590D\u5236",ragInstallBtn:"\u2B07\uFE0F \u4E00\u952E\u5B89\u88C5 RAG \u4F9D\u8D56",ragInstallBtnBusy:"\u5B89\u88C5\u4E2D...",ragRedetectBtn:"\u{1F504} \u91CD\u65B0\u68C0\u6D4B",ragInstallStarted:"\u5B89\u88C5\u5DF2\u5F00\u59CB\uFF0C\u6B63\u5728\u4E0B\u8F7D\u4F9D\u8D56...",ragInstallRunning:"\u6B63\u5728\u5B89\u88C5 RAG \u4F9D\u8D56...",ragAutoRestoreRunning:"\u4EE3\u7406\u66F4\u65B0\u540E\u4F9D\u8D56\u7F3A\u5931\uFF0C\u6B63\u5728\u81EA\u52A8\u6062\u590D...",ragInstallTip:"\u5B89\u88C5\u8FC7\u7A0B\u53EF\u80FD\u9700\u8981\u51E0\u5206\u949F\uFF0C\u671F\u95F4\u8BF7\u52FF\u5173\u95ED\u4EE3\u7406\u670D\u52A1\u3002",ragInstallVerifying:"\u4F9D\u8D56\u5B89\u88C5\u5B8C\u6210\uFF0C\u6B63\u5728\u9A8C\u8BC1...",ragInstallSuccess:"RAG \u4F9D\u8D56\u5B89\u88C5\u6210\u529F\uFF0C\u80FD\u529B\u5DF2\u5C31\u7EEA",ragInstallFailedToast:"RAG \u4F9D\u8D56\u5B89\u88C5\u5931\u8D25",ragInstallFailedAdvice:"\u82E5\u591A\u6B21\u5B89\u88C5\u5931\u8D25\uFF0C\u53EF\u5C1D\u8BD5\u91CD\u542F\u4EE3\u7406\u670D\u52A1\uFF08\u6216\u7A0D\u540E\u91CD\u8BD5\uFF09\u540E\u70B9\u51FB\u300C\u91CD\u65B0\u68C0\u6D4B\u300D\u3002",ragInstallLogLabel:"\u5B89\u88C5\u65E5\u5FD7\uFF08\u6700\u8FD1\u8F93\u51FA\uFF09\uFF1A",ragRedetectReady:"\u91CD\u65B0\u68C0\u6D4B\u5B8C\u6210\uFF1ARAG \u80FD\u529B\u5DF2\u5C31\u7EEA",ragRedetectStillMissing:"\u91CD\u65B0\u68C0\u6D4B\u5B8C\u6210\uFF1A\u4ECD\u672A\u68C0\u6D4B\u5230 RAG \u4F9D\u8D56",ragRedetectStillMissingDetail:"\u4ECD\u672A\u68C0\u6D4B\u5230 RAG \u4F9D\u8D56 - {error}",ragRedetectFailed:"\u91CD\u65B0\u68C0\u6D4B\u5931\u8D25: {error}",importSkill:"+ \u5BFC\u5165\u6280\u80FD",reloadSkills:"\u{1F504} \u91CD\u65B0\u52A0\u8F7D",enabledCountTotal:"\u5DF2\u542F\u7528 {enabled} / \u5171 {total}",unknownAgent:"\u672A\u77E5\u4EE3\u7406",currentAgentSupports:"\u5F53\u524D\u4EE3\u7406\uFF1A<strong>{name}</strong> \u2014 \u652F\u6301MCP\u548C\u6280\u80FD",agentNotConnectedHint:"\u4EE3\u7406\u672A\u8FDE\u63A5 \u2014 \u8BF7\u5728\u300C\u4EE3\u7406\u300DTab \u4E2D\u8FDE\u63A5",mcpIdRequired:"\u8BF7\u586B\u5199\u670D\u52A1\u5668 ID",mcpUrlRequired:"\u8BF7\u586B\u5199\u670D\u52A1\u7AEF URL",mcpCommandRequired:"\u8BF7\u586B\u5199\u547D\u4EE4\u8DEF\u5F84",mcpReconnecting:"\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5...",mcpUpdateReconnected:"MCP \u670D\u52A1\u5668\u66F4\u65B0\u6210\u529F\uFF0C\u5DF2\u91CD\u8FDE\uFF08{count} \u5DE5\u5177\uFF09",mcpUnknownError:"\u672A\u77E5\u9519\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u547D\u4EE4\u4E0E\u53C2\u6570\u662F\u5426\u6B63\u786E",mcpUpdatedReconnectFailed:"\u914D\u7F6E\u5DF2\u66F4\u65B0\uFF0C\u4F46\u91CD\u8FDE\u5931\u8D25: {error}",mcpUpdateSuccess:"MCP \u670D\u52A1\u5668\u66F4\u65B0\u6210\u529F",mcpUpdateFailed:"\u66F4\u65B0\u5931\u8D25: {error}",mcpServiceEnabled:"MCP \u670D\u52A1\u5DF2\u542F\u7528",mcpServiceDisabled:"MCP \u670D\u52A1\u5DF2\u505C\u7528",skillServiceEnabled:"\u6280\u80FD\u670D\u52A1\u5DF2\u542F\u7528",skillServiceDisabled:"\u6280\u80FD\u670D\u52A1\u5DF2\u505C\u7528",mcpAddSuccess:"MCP \u670D\u52A1\u5668\u6DFB\u52A0\u6210\u529F",mcpAddFailed:"\u6DFB\u52A0\u5931\u8D25: {error}",mcpConnecting:"\u6B63\u5728\u8FDE\u63A5...",mcpConnectSuccess:"\u8FDE\u63A5\u6210\u529F",mcpDisconnectSuccess:"\u5DF2\u65AD\u5F00\u8FDE\u63A5",mcpEnabledToast:"\u5DF2\u542F\u7528",mcpDisabledToast:"\u5DF2\u7981\u7528",mcpConfirmDelete:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5 MCP \u670D\u52A1\u5668\u5417\uFF1F",deleteConfirmTitle:"\u5220\u9664\u786E\u8BA4",deleteSuccess:"\u5220\u9664\u6210\u529F",collapseTools:"\u6536\u8D77 {count} \u4E2A\u5DE5\u5177",viewTools:"\u67E5\u770B {count} \u4E2A\u5DE5\u5177",operationFailed:"\u64CD\u4F5C\u5931\u8D25: {error}",sizeBytes:"\u5927\u5C0F: {size} \u5B57\u8282",skillConfirmDelete:'\u786E\u5B9A\u8981\u5220\u9664\u6280\u80FD "{name}" \u5417\uFF1F',skillEnabledToast:'\u5DF2\u542F\u7528\u6280\u80FD "{name}"',skillDisabledToast:'\u5DF2\u505C\u7528\u6280\u80FD "{name}"',skillInfoFailed:"\u83B7\u53D6\u6280\u80FD\u4FE1\u606F\u5931\u8D25: {error}",skillRunning:'\u6B63\u5728\u8FD0\u884C\u6280\u80FD "{name}"...',skillContentFailed:"\u83B7\u53D6\u6280\u80FD\u5185\u5BB9\u5931\u8D25",skillGetFailed:"\u83B7\u53D6\u5931\u8D25: {error}",skillsReloaded:"\u5DF2\u91CD\u65B0\u52A0\u8F7D {count} \u4E2A\u6280\u80FD",skillsReloadFailed:"\u91CD\u65B0\u52A0\u8F7D\u5931\u8D25: {error}",emptyAgentNotConnectedTitle:"\u4EE3\u7406\u672A\u8FDE\u63A5",emptyAgentNotConnectedDescMcp:"\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300DTab \u4E2D\u8FDE\u63A5 Agent \u670D\u52A1\u540E\uFF0C\u518D\u914D\u7F6E MCP \u670D\u52A1\u5668",emptyNoMcpTitle:"\u6682\u65E0 MCP \u670D\u52A1\u5668",emptyNoMcpDesc:"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u6DFB\u52A0 MCP \u670D\u52A1\u5668\uFF0C\u6269\u5C55 AI \u52A9\u624B\u7684\u5DE5\u5177\u80FD\u529B",emptyAgentNotConnectedDescSkill:"\u8BF7\u5148\u5728\u300C\u4EE3\u7406\u300DTab \u4E2D\u8FDE\u63A5 Agent \u670D\u52A1\u540E\uFF0C\u518D\u7BA1\u7406\u6280\u80FD",emptyNoSkillTitle:"\u6682\u65E0\u6280\u80FD",emptyNoSkillDesc:"\u652F\u6301\u4E24\u79CD\u6280\u80FD\u7C7B\u578B\uFF1A<br><strong>Workflow \u6280\u80FD</strong>\uFF1A\u5BFC\u5165 JSON \u6587\u4EF6\uFF08\u786E\u5B9A\u6027\u81EA\u52A8\u5316\u6D41\u7A0B\uFF09<br><strong>Agent \u6280\u80FD</strong>\uFF1A\u5BFC\u5165 SKILL.md \u76EE\u5F55/Zip/URL\uFF08AI \u80FD\u529B\u6269\u5C55\uFF09",mcpIdPlaceholder:"\u670D\u52A1\u5668 ID",mcpIdPlaceholderUnique:"\u670D\u52A1\u5668 ID\uFF08\u552F\u4E00\u6807\u8BC6\uFF09",mcpNamePlaceholder:"\u663E\u793A\u540D\u79F0",mcpEnvVars:"\u73AF\u5883\u53D8\u91CF",mcpEnvVarsHint:"\uFF08\u4EC5 stdio \u4F20\u8F93\u9700\u8981\uFF0C\u654F\u611F\u503C\u4F18\u5148\u5728 shell \u914D\u7F6E\u4E2D export\uFF09",mcpAddVar:"+ \u6DFB\u52A0\u53D8\u91CF",mcpConnected:"\u5DF2\u8FDE\u63A5",mcpDisconnected:"\u672A\u8FDE\u63A5",mcpToggleEnabled:"\u542F\u7528\u4E2D\uFF0C\u70B9\u51FB\u505C\u7528",mcpToggleDisabled:"\u5DF2\u505C\u7528\uFF0C\u70B9\u51FB\u542F\u7528",mcpDisconnectBtn:"\u65AD\u5F00",mcpConnectBtn:"\u8FDE\u63A5",mcpVarNamePlaceholder:"\u53D8\u91CF\u540D",mcpVarValuePlaceholder:"\u503C",mcpToggleEye:"\u663E\u793A/\u9690\u85CF",mcpRemoveRow:"\u5220\u9664\u6B64\u884C",mcpHeaderNamePlaceholder:"Header \u540D",mcpHeaders:"\u8BF7\u6C42\u5934 (Headers)",mcpHeadersHint:"\uFF08HTTP \u4F20\u8F93\u65F6\u9644\u52A0\u7684\u8BF7\u6C42\u5934\uFF0C\u5982 Authorization\u3001X-API-Key \u7B49\uFF09",mcpAddHeader:"+ \u6DFB\u52A0\u8BF7\u6C42\u5934",transportStdioTitle:"\u5B50\u8FDB\u7A0B\u901A\u4FE1 (npx/python \u7B49)",transportSseTitle:"Server-Sent Events (HTTP GET \u957F\u8FDE\u63A5 + POST \u53D1\u6D88\u606F)",transportStreamableHttpTitle:"MCP \u5B98\u65B9\u63A8\u8350 HTTP \u4F20\u8F93 (POST + GET SSE)",transportWebsocketTitle:"WebSocket \u53CC\u5411\u901A\u4FE1",mcpCommandPlaceholder:"\u547D\u4EE4\u8DEF\u5F84\uFF0C\u5982 npx\u3001python",mcpArgsPlaceholder:"\u53C2\u6570\uFF0C\u7A7A\u683C\u5206\u9694",mcpCustomHeadersCount:"{count} \u4E2A\u81EA\u5B9A\u4E49\u8BF7\u6C42\u5934",mcpAddFailedShort:"\u6DFB\u52A0\u5931\u8D25",mcpDeleteFailedShort:"\u5220\u9664\u5931\u8D25",mcpConnectFailedShort:"\u8FDE\u63A5\u5931\u8D25",mcpDisconnectFailedShort:"\u65AD\u5F00\u5931\u8D25",mcpOperationFailedShort:"\u64CD\u4F5C\u5931\u8D25",workflowSkillsTitle:"Workflow \u6280\u80FD\uFF08\u81EA\u52A8\u5316\u6D41\u7A0B\uFF09",agentSkillsTitle:"Agent \u6280\u80FD\uFF08AI \u80FD\u529B\u6269\u5C55\uFF09",stepCount:"{count} \u6B65\u9AA4",resourceCount:"{count} \u8D44\u6E90",expand:"\u5C55\u5F00",run:"\u8FD0\u884C",enable:"\u542F\u7528",disable:"\u505C\u7528",builtin:"\u5185\u7F6E",moreCount:"+{count} \u66F4\u591A",editSkillMd:"\u7F16\u8F91 SKILL.md",viewDetails:"\u67E5\u770B\u8BE6\u60C5",required:"*\u5FC5\u586B",optional:"\u9009\u586B",runSkillTitle:'\u8FD0\u884C\u6280\u80FD "{name}"',fillParamsHint:"\u8BF7\u586B\u5199\u4EE5\u4E0B\u53C2\u6570\u540E\u8FD0\u884C\uFF1A",defaultParamHint:" (\u9ED8\u8BA4: {default})",noExecutionResult:"\u65E0\u6267\u884C\u7ED3\u679C",conditionNotMetSkipped:"\u6761\u4EF6\u4E0D\u6EE1\u8DB3\uFF0C\u5DF2\u8DF3\u8FC7",executionSuccess:"\u6267\u884C\u6210\u529F",executionFailed:"\u6267\u884C\u5931\u8D25",truncated:"... (\u5171 {count} \u5B57\u7B26\uFF0C\u5DF2\u622A\u65AD)",executionComplete:"\u6267\u884C\u5B8C\u6210",executionSummary:"{success} \u6210\u529F, {fail} \u5931\u8D25, {skip} \u8DF3\u8FC7",skillRunResultTitle:'\u6280\u80FD "{name}" {status}',skillImportFailedShort:"\u5BFC\u5165\u5931\u8D25",skillDeleteFailedShort:"\u5220\u9664\u5931\u8D25",skillOperationFailedShort:"\u64CD\u4F5C\u5931\u8D25",invalidSkillDataFormat:"\u65E0\u6548\u7684\u6280\u80FD\u6570\u636E\u683C\u5F0F",editAgentSkill:"\u7F16\u8F91 Agent \u6280\u80FD",newAgentSkill:"\u65B0\u5EFA Agent \u6280\u80FD",skillNameLabel:"\u6280\u80FD\u540D\u79F0",skillDescLabel:"\u63CF\u8FF0",skillVersionLabel:"\u7248\u672C",skillMarkdownLabel:"SKILL.md \u5185\u5BB9\uFF08Markdown\uFF09",skillDescPlaceholder:"\u7B80\u8981\u63CF\u8FF0\u6B64\u6280\u80FD\u7684\u529F\u80FD\uFF08\u5EFA\u8BAE\u7528\u201C\u5728\u9700\u8981\u2026\u2026\u65F6\u4F7F\u7528\u201D\u53E5\u5F0F\u5199\u660E\u89E6\u53D1\u573A\u666F\uFF0C\u4FBF\u4E8E\u6A21\u578B\u6309\u9700\u81EA\u52A8\u52A0\u8F7D\uFF09",skillDescScenePlaceholder:"\u7B80\u8981\u63CF\u8FF0\u6B64\u6280\u80FD\u7684\u529F\u80FD\u548C\u9002\u7528\u573A\u666F\uFF08\u5EFA\u8BAE\u7528\u201C\u5728\u9700\u8981\u2026\u2026\u65F6\u4F7F\u7528\u201D\u53E5\u5F0F\uFF0C\u4FBF\u4E8E\u6A21\u578B\u6309\u9700\u81EA\u52A8\u52A0\u8F7D\uFF09",skillNameExamplePlaceholder:"e.g. code-review \u6216 deploy-to-server",skillMarkdownPlaceholder:`# \u6280\u80FD\u540D\u79F0
12
12
 
13
13
  ## \u4F55\u65F6\u4F7F\u7528
@@ -22,16 +22,16 @@
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"}},Vt={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"},sensitiveTool:{manage_cookies:"Manage Cookies",clear_data:"Clear Page Data",download_file:"Download File",manage_tab:"Tab Management",agent_file:"File Operations",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",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"}},oo={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
 
29
29
  Tab title: {title}
30
30
  Tab URL: {url}`,tabInfoError:`
31
31
 
32
- (Unable to get tab info: {error})`,untitled:"Untitled",unknownUrl:"Unknown"},settings:{docTitle:"AI Helper - Settings",language:"Interface Language",languageChanged:"Language changed. Some pages will update after refresh.",pageTitle:"AI Helper Settings",subtitle:"Web AI Assistant - OpenAI Compatible API",importConfigTitle:"Import Settings",exportConfigTitle:"Export Settings",tabBasic:"Basic",tabReact:"Reasoning",tabReflection:"Reflection",tabToolbar:"Selection",tabAgent:"Agent",tabToolbox:"Extension",saveConfig:"Save Settings",apiBaseHint:"(Select from dropdown, or enter manually)",addApiBaseTitle:"Add custom API Base URL",addAddress:"+ Add address",apiBaseUrlPlaceholder:"API Base URL (e.g. https://api.example.com/v1)",apiBaseLabelPlaceholder:"Label/Note (optional, e.g. My proxy)",confirmAdd:"Confirm Add",requiredHint:"(required)",apiKeyHint:"Please obtain the API Key from your LLM provider and enter it here. Keep your API Key safe and avoid leakage.",apiKeyPlaceholder:"Enter your API Key",toggleApiKey:"Show/Hide API Key",modelName:"Model name",modelNameHint:"(Select from dropdown, or click the button below to add a new model)",selectModelPlaceholder:"Select a model below",noMatch:"No matches",addModelTitle:"Add custom model",addModel:"+ Add model",fetchModels:"\u27F3 Fetch from API",fetchModelsTitle:"Fetch available models from the current provider API",fetchModelsLoading:"Fetching\u2026",fetchModelsNeedConfig:"Please fill in API Base URL and API Key first",fetchModelsSuccess:"\u2705 Fetched {total} models ({added} new)",fetchModelsEmpty:"No models returned, please add manually",fetchModelsFailed:"\u274C Fetch failed, check config or add manually",fetchModelsAuthFailed:"\u274C Authentication failed, check API Key",modelNameInputPlaceholder:"Model name (e.g. gpt-4o)",contextWindowPlaceholder:"Context window size (tokens)",contextWindowHint:"128K=128000, 200K=200000, 1M=1000000; leave empty to auto-detect",enableImageInput:"Enable image recognition",enableImageInputHint:"(When enabled, you can send images to multimodal models in the sidebar)",imageApiBaseHint:"(Select from dropdown, or enter manually; leave empty to use base model config)",addImageApiBaseTitle:"Add custom image API Base URL",useBaseModelPlaceholder:"Leave empty to use base model config",imageApiKeyHint:"(optional; leave empty to use base model config)",imageApiKeyPlaceholder:"Enter image recognition API Key",imageModelNameHint:"(Models with multimodal vision capability; select from list or add a new one; leave empty to use base model name)",useBaseModelPlaceholderShort:"Leave empty to use base model",addImageModelTitle:"Add custom image recognition model",systemPrompt:"System prompt",systemPromptHint:"(optional; leave empty to use default)",resetToDefault:"Reset to default",systemPromptTip:"\u{1F4A1} Tip: The system prompt defines the behavior and role of the AI assistant.",collapse:"\u2212 Collapse",modelNameRequired:"Please enter a model name",modelAdded:"Model added",imageModelAdded:"Image model added",apiBaseSwitched:"API Base URL switched. Make sure the API Key is valid.",apiBaseRequired:"Please enter an API Base URL",urlInvalid:"Invalid URL format",apiBaseAdded:"API Base URL added",imageApiBaseSwitched:"Image API Base URL switched",imageApiBaseAdded:"Image API Base URL added",maxIterationsRangeError:"Max loop iterations must be between 10-1000",apiTimeoutRangeError:"API request timeout must be between 1-10 minutes",loopTimeoutRangeError:"Overall loop timeout must be between 1-120 minutes",toolTimeoutRangeError:"Tool execution timeout must be between 1-30 minutes",apiKeyEmpty:"API Key cannot be empty",saveFailed:"Save failed: {message}",saveSuccess:"Configuration saved successfully!",deleteModel:"Delete this model",ctxSliderIconTitle:"Set context window for this model",ctxSliderAuto:"Auto",ctxSliderAutoTitle:"Reset to auto-detect",ctxBadgeAutoTip:"Auto-inferred (not set manually)",ctxSliderResetAuto:"Reset to auto",deleteApiBase:"Delete this address",providerConfig:"Provider Profiles",providerConfigHint:"(Takes effect immediately after switching; each profile remembers its own API base, key and model list)",profileScopeHint:"The settings below are saved to provider profile \u201C{name}\u201D and follow profile switching",newProfile:"+ New",newProfileTitle:"Create an empty provider profile",profileNameTitle:"New Provider Profile",saveAsProfile:"Save As",saveAsProfileTitle:"Save current settings as a new provider profile",renameProfile:"Rename",renameProfileTitle:"Rename current profile",deleteProfile:"Delete",deleteProfileTitle:"Delete current profile",profileNamePlaceholder:"Profile name (e.g. DeepSeek Official, My Proxy)",profileNameRequired:"Please enter a profile name",deleteProfileConfirm:"Are you sure you want to delete provider profile \u201C{name}\u201D? This cannot be undone.",atLeastOneProfile:"At least one provider profile must be kept",profileSwitched:"Switched to {name}",profileCreated:"Profile {name} created",profileRenamed:"Renamed to {name}",profileDeleted:"Profile {name} deleted",profileCopySuffix:"Copy",completionFeedbackTitle:"Completion Feedback",completionSound:"Play sound (different tones for success and failure)",completionSoundHint:"Success: bright rising triad (Do-Mi-Sol); Failure: low square-wave double tone; user cancellation is silent",completionConfetti:"Play confetti animation",completionConfettiHint:"Only plays on successful completion; not on failures or cancellations",completionNotification:"Show a desktop notification when a task completes or fails",completionNotificationHint:"Only shown when the side panel is out of view; success auto-dismisses, failures stay until dismissed; click the notification to open the side panel",scheduledNotification:"Show a desktop notification when a scheduled task completes or fails",scheduledNotificationHint:"Scheduled tasks run in the background with no sound or other alerts, so notifications always appear when enabled; on by default, can be turned off",interactionNotification:"Remind me when AI needs confirmation or clarification",interactionNotificationHint:"Shows a desktop reminder while the reasoning loop waits for your action; stays quiet when the side panel is in view; click the notification to open the side panel",showMessageTimestamp:"Show message timestamps",showMessageTimestampHint:"(Shows the asking time below each user question; time only for today, date included for other days)",sidePanelScopeTitle:"Side Panel Scope",sidePanelScopeGlobal:"Global mode",sidePanelScopeTab:"Tab-bound mode",sidePanelScopeGlobalHint:"All tabs in the same window share one side panel instance, and it stays visible when you switch tabs",sidePanelScopeTabHint:"Side panel shows only on the tabs where you opened it; you can open it on multiple tabs, auto-hides when switching away and restores when switching back",autoGroupTabs:"In Tab-bound mode, group tabs where the side panel is opened",autoGroupTabsHint:"Applies to Tab-bound mode only; puts those tabs into a colored tab group for easy identification (tabs move to the group position), and removes a tab when its side panel is closed or you switch back to Global mode"},header:{docTitle:"AI Helper - Chat",settingsTitle:"Extension Settings",switchAgent:"Switch Assistant",defaultAssistant:"\u{1F916} Default Assistant",notConnected:"Not Connected",agentAddress:"Agent Address",copyAgentAddress:"Copy agent address",refreshAgentStatus:"Refresh agent status",restart:"Restart",restartAgent:"Restart agent service",update:"Update",updateAndRestart:"Update and restart agent",stop:"Stop",stopAgent:"Stop agent service",addEditAgent:"Add/Edit Agent",addEditAssistant:"Add/Edit Assistant",manageKnowledge:"Manage Knowledge",moreActions:"More actions",clearChat:"Clear Conversation",exportChat:"Export Conversation",importChat:"Import Conversation",prototypeLibrary:"Prototype Library",tokenStats:"Token Stats",auditLog:"Command Audit",shortcuts:"Shortcuts",versionInfo:"Version Info",detachTitle:"Detach to standalone window",attachTitle:"Attach back to side panel"},detach:{taskRunning:"Task is running, please wait until it finishes"},session:{allSessions:"All Sessions",newSessionTitle:"New Session (Alt+N)",searchPlaceholder:"Search sessions...",closeAll:"Close All",renameTitle:"Rename Session",renamePlaceholder:"Enter session name",confirmCloseTitle:"Confirm Close Session",confirmCloseMessage:"Are you sure you want to close this session? This action cannot be undone."},chat:{welcomeTitle:"Start a Conversation",welcomeSubtitle:"Enter your question and the AI assistant will help you",askBasedOnSelection:"Ask based on selection",confirmClearTitle:"Confirm Clear",confirmClearMessage:"Are you sure you want to clear all conversation history?",confirmDeletePromptTitle:"Confirm Delete",confirmDeletePromptMessage:"Are you sure you want to delete this prompt?",requestFailed:"Request failed: {message}",networkError:"Network error, please check your connection and try again",timeoutError:"Request timeout: {message}",taskInterruptedSwRestart:"Background service restarted unexpectedly, API call interrupted",quote:"Quote",export:"Export",quoteTitle:"Quote this message",quotedPrefix:"\u{1F4AC} Quoted: {text}",navPrevTitle:"Previous message (Alt+\u2191), Ctrl/Cmd+click to go to top",navNextTitle:"Next message (Alt+\u2193), Ctrl/Cmd+click to go to bottom",navQuestionTitle:"Questions",navEmptyLabel:"No questions",navQuestionNoText:"(image/attachment message)"},toolPanel:{title:"Tool Settings",searchPlaceholder:"Search tool name or description...",categoryAll:"All",preselect:"Tool Pre-filter",preselectHint:`On: The AI first decides which tools might be useful and only sends relevant ones. Saves tokens, but if it misjudges and misses a key tool, the task may fail.
32
+ (Unable to get tab info: {error})`,untitled:"Untitled",unknownUrl:"Unknown"},settings:{docTitle:"AI Helper - Settings",language:"Interface Language",languageChanged:"Language changed. Some pages will update after refresh.",appearance:"Appearance",themeHint:"Theme applies instantly and syncs across all pages",themeSystem:"Follow system",themeLight:"Light",themeDark:"Dark",pageTitle:"AI Helper Settings",subtitle:"Web AI Assistant - OpenAI Compatible API",importConfigTitle:"Import Settings",exportConfigTitle:"Export Settings",tabBasic:"Basic",tabReact:"Reasoning",tabToolbar:"Selection",tabAgent:"Agent",tabToolbox:"Extension",saveConfig:"Save Settings",apiBaseHint:"(Select from dropdown, or enter manually)",addApiBaseTitle:"Add custom API Base URL",addAddress:"+ Add address",apiBaseUrlPlaceholder:"API Base URL (e.g. https://api.example.com/v1)",apiBaseLabelPlaceholder:"Label/Note (optional, e.g. My proxy)",confirmAdd:"Confirm Add",requiredHint:"(required)",apiKeyHint:"Please obtain the API Key from your LLM provider and enter it here. Keep your API Key safe and avoid leakage.",apiKeyPlaceholder:"Enter your API Key",toggleApiKey:"Show/Hide API Key",modelName:"Model name",modelNameHint:"(Select from dropdown, or click the button below to add a new model)",selectModelPlaceholder:"Select a model below",noMatch:"No matches",addModelTitle:"Add custom model",addModel:"+ Add model",fetchModels:"\u27F3 Fetch from API",fetchModelsTitle:"Fetch available models from the current provider API",fetchModelsLoading:"Fetching\u2026",fetchModelsNeedConfig:"Please fill in API Base URL and API Key first",fetchModelsSuccess:"\u2705 Fetched {total} models ({added} new)",fetchModelsEmpty:"No models returned, please add manually",fetchModelsFailed:"\u274C Fetch failed, check config or add manually",fetchModelsAuthFailed:"\u274C Authentication failed, check API Key",modelNameInputPlaceholder:"Model name (e.g. gpt-4o)",contextWindowPlaceholder:"Context window size (tokens)",contextWindowHint:"128K=128000, 200K=200000, 1M=1000000; leave empty to auto-detect",enableImageInput:"Enable image recognition",enableImageInputHint:"(When enabled, you can send images to multimodal models in the sidebar)",imageApiBaseHint:"(Select from dropdown, or enter manually; leave empty to use base model config)",addImageApiBaseTitle:"Add custom image API Base URL",useBaseModelPlaceholder:"Leave empty to use base model config",imageApiKeyHint:"(optional; leave empty to use base model config)",imageApiKeyPlaceholder:"Enter image recognition API Key",imageModelNameHint:"(Models with multimodal vision capability; select from list or add a new one; leave empty to use base model name)",useBaseModelPlaceholderShort:"Leave empty to use base model",addImageModelTitle:"Add custom image recognition model",systemPrompt:"System prompt",systemPromptHint:"(optional; leave empty to use default)",resetToDefault:"Reset to default",systemPromptTip:"\u{1F4A1} Tip: The system prompt defines the behavior and role of the AI assistant.",collapse:"\u2212 Collapse",modelNameRequired:"Please enter a model name",modelAdded:"Model added",imageModelAdded:"Image model added",apiBaseSwitched:"API Base URL switched. Make sure the API Key is valid.",apiBaseRequired:"Please enter an API Base URL",urlInvalid:"Invalid URL format",apiBaseAdded:"API Base URL added",imageApiBaseSwitched:"Image API Base URL switched",imageApiBaseAdded:"Image API Base URL added",maxIterationsRangeError:"Max loop iterations must be between 10-1000",apiTimeoutRangeError:"API request timeout must be between 1-10 minutes",loopTimeoutRangeError:"Overall loop timeout must be between 1-120 minutes",toolTimeoutRangeError:"Tool execution timeout must be between 1-30 minutes",apiKeyEmpty:"API Key cannot be empty",saveFailed:"Save failed: {message}",saveSuccess:"Configuration saved successfully!",deleteModel:"Delete this model",ctxSliderIconTitle:"Set context window for this model",ctxSliderAuto:"Auto",ctxSliderAutoTitle:"Reset to auto-detect",ctxBadgeAutoTip:"Auto-inferred (not set manually)",ctxSliderResetAuto:"Reset to auto",deleteApiBase:"Delete this address",providerConfig:"Provider Profiles",providerConfigHint:"(Takes effect immediately after switching; each profile remembers its own API base, key and model list)",profileScopeHint:"The settings below are saved to provider profile \u201C{name}\u201D and follow profile switching",newProfile:"+ New",newProfileTitle:"Create an empty provider profile",profileNameTitle:"New Provider Profile",saveAsProfile:"Save As",saveAsProfileTitle:"Save current settings as a new provider profile",renameProfile:"Rename",renameProfileTitle:"Rename current profile",deleteProfile:"Delete",deleteProfileTitle:"Delete current profile",profileNamePlaceholder:"Profile name (e.g. DeepSeek Official, My Proxy)",profileNameRequired:"Please enter a profile name",deleteProfileConfirm:"Are you sure you want to delete provider profile \u201C{name}\u201D? This cannot be undone.",atLeastOneProfile:"At least one provider profile must be kept",profileSwitched:"Switched to {name}",profileCreated:"Profile {name} created",profileRenamed:"Renamed to {name}",profileDeleted:"Profile {name} deleted",profileCopySuffix:"Copy",completionFeedbackTitle:"Completion Feedback",completionSound:"Play sound (different tones for success and failure)",completionSoundHint:"Success: bright rising triad (Do-Mi-Sol); Failure: low square-wave double tone; user cancellation is silent",completionConfetti:"Play confetti animation",completionConfettiHint:"Only plays on successful completion; not on failures or cancellations",completionNotification:"Show a desktop notification when a task completes or fails",completionNotificationHint:"Only shown when the side panel is out of view; success auto-dismisses, failures stay until dismissed; click the notification to open the side panel",scheduledNotification:"Show a desktop notification when a scheduled task completes or fails",scheduledNotificationHint:"Scheduled tasks run in the background with no sound or other alerts, so notifications always appear when enabled; on by default, can be turned off",interactionNotification:"Remind me when AI needs confirmation or clarification",interactionNotificationHint:"Shows a desktop reminder while the reasoning loop waits for your action; stays quiet when the side panel is in view; click the notification to open the side panel",showMessageTimestamp:"Show message timestamps",showMessageTimestampHint:"(Shows the asking time below each user question; time only for today, date included for other days)",sidePanelScopeTitle:"Side Panel Scope",sidePanelScopeGlobal:"Global mode",sidePanelScopeTab:"Tab-bound mode",sidePanelScopeGlobalHint:"All tabs in the same window share one side panel instance, and it stays visible when you switch tabs",sidePanelScopeTabHint:"Side panel shows only on the tabs where you opened it; you can open it on multiple tabs, auto-hides when switching away and restores when switching back",autoGroupTabs:"In Tab-bound mode, group tabs where the side panel is opened",autoGroupTabsHint:"Applies to Tab-bound mode only; puts those tabs into a colored tab group for easy identification (tabs move to the group position), and removes a tab when its side panel is closed or you switch back to Global mode"},header:{docTitle:"AI Helper - Chat",themeToggle:"Theme: {theme}",settingsTitle:"Extension Settings",switchAgent:"Switch Assistant",defaultAssistant:"\u{1F916} Default Assistant",notConnected:"Not Connected",agentAddress:"Agent Address",copyAgentAddress:"Copy agent address",refreshAgentStatus:"Refresh agent status",restart:"Restart",restartAgent:"Restart agent service",update:"Update",updateAndRestart:"Update and restart agent",stop:"Stop",stopAgent:"Stop agent service",addEditAgent:"Add/Edit Agent",addEditAssistant:"Add/Edit Assistant",manageKnowledge:"Manage Knowledge",moreActions:"More actions",clearChat:"Clear Conversation",exportChat:"Export Conversation",importChat:"Import Conversation",prototypeLibrary:"Prototype Library",tokenStats:"Token Stats",auditLog:"Command Audit",shortcuts:"Shortcuts",versionInfo:"Version Info",detachTitle:"Detach to standalone window",attachTitle:"Attach back to side panel"},detach:{taskRunning:"Task is running, please wait until it finishes"},session:{allSessions:"All Sessions",newSessionTitle:"New Session (Alt+N)",searchPlaceholder:"Search sessions...",closeAll:"Close All",renameTitle:"Rename Session",renamePlaceholder:"Enter session name",confirmCloseTitle:"Confirm Close Session",confirmCloseMessage:"Are you sure you want to close this session? This action cannot be undone."},chat:{welcomeTitle:"Start a Conversation",welcomeSubtitle:"Enter your question and the AI assistant will help you",askBasedOnSelection:"Ask based on selection",confirmClearTitle:"Confirm Clear",confirmClearMessage:"Are you sure you want to clear all conversation history?",confirmDeletePromptTitle:"Confirm Delete",confirmDeletePromptMessage:"Are you sure you want to delete this prompt?",requestFailed:"Request failed: {message}",networkError:"Network error, please check your connection and try again",timeoutError:"Request timeout: {message}",taskInterruptedSwRestart:"Background service restarted unexpectedly, API call interrupted",quote:"Quote",export:"Export",quoteTitle:"Quote this message",quotedPrefix:"\u{1F4AC} Quoted: {text}",navPrevTitle:"Previous question (Alt+\u2191), Ctrl/Cmd+click to go to top",navNextTitle:"Next question (Alt+\u2193), Ctrl/Cmd+click to go to bottom",navQuestionTitle:"Questions",navPosition:"{current} / {total}",navPinLabel:"Pin",navUnpinLabel:"Unpin",navHotzoneTitle:"Message navigation: hover or Tab-focus to open questions, click/Enter to pin, Esc to collapse",navQuestionNoText:"(image/attachment message)",navSearchPlaceholder:"Search questions\u2026",navNoMatch:"No matching questions",navQuestionImageCount:"{count} image(s)"},toolPanel:{title:"Tool Settings",searchPlaceholder:"Search tool name or description...",categoryAll:"All",preselect:"Tool Pre-filter",preselectHint:`On: The AI first decides which tools might be useful and only sends relevant ones. Saves tokens, but if it misjudges and misses a key tool, the task may fail.
33
33
  Off: All enabled tools are sent at once. No judgment overhead, faster start, but too many tools waste tokens.`,confirmHint:`When enabled, the model will show a confirmation dialog for sensitive operations (tool calls, command execution, etc.) and wait for user approval.
34
- When disabled, all operations will be executed directly without confirmation.`,clearSearch:"Clear search",configBtnTitle:"Click to open detailed tool settings"},toolStats:{title:"\u{1F4CA} Tool Usage Stats",subtitle:"Call frequency, success rate, average duration per tool",usedTools:"Used Tools",calls:"Calls",success:"Success",successRate:"Success Rate",avgDuration:"Avg Duration",unusedTools:"Unused Tools",noData:"No data available",btnTitle:"Tool Usage Stats",clearTitle:"Clear stats"},tokenStatsPanel:{title:"\u{1FA99} Token Usage Stats",subtitle:"Per ReAct session & overall dimensions",currentSession:"Current Session",globalStats:"Global Stats",recentCalls:"Recent Calls",noData:"No data available",tabTrend:"Trend",tabDistribution:"Distribution",tabGlobal:"Global",timeRangeToday:"Today",timeRangeWeek:"Week",timeRangeMonth:"Month",timeRangeAll:"All",globalSparklineTitle:"Last 30 Days Trend"},customConfirm:{defaultTitle:"Confirm Action"},promptDialog:{title:"Notice"},promptManager:{title:"Prompt Manager",codePlaceholder:"Code (e.g. code)",contentPlaceholder:"Prompt content",addPrompt:"Add Prompt"},clarify:{title:"Clarification Needed",selectOption:"Please select an option",inputPlaceholder:"Enter additional info (optional)...",customPlaceholder:"Enter your custom content...",additionalTitle:"Additional Notes (optional)",additionalHint:"If you have more relevant information, you can add it here",remainingTime:"Time remaining: 3:00"},prototype:{previewTitle:"UI Prototype Preview",continueOptimize:"\u{1F4A1} Continue Optimizing",libraryTitle:"\u{1F3A8} Prototype Library",searchPlaceholder:"Search prototypes...",sortTimeNew:"Time (new\u2192old)",sortTimeOld:"Time (old\u2192new)",sortTitleAz:"Title (A\u2192Z)",sortTitleZa:"Title (Z\u2192A)",empty:"No prototypes",zoomOut:"Zoom out (Ctrl+scroll)",zoomReset:"Click to reset",resetZoom:"Click to reset",zoomIn:"Zoom in (Ctrl+scroll)",download:"Download",openInTab:"Open in new tab",openInNewTab:"Open in new tab",openLocal:"Open in local browser"},shortcuts:{title:"\u2328\uFE0F Shortcuts",sendMessage:"Send message",newLine:"New line",inputHistory:"Input history (in input box)",clearInput:"Clear input",keyColumn:"Shortcut",functionColumn:"Function",platformColumn:"Platform",platformWinMac:"Win / Mac",prevMessage:"Jump to previous message",nextMessage:"Jump to next message",colShortcut:"Shortcut",colFunction:"Function",colPlatform:"Platform",gotoPrev:"Jump to previous message",gotoNext:"Jump to next message",scrollTop:"Scroll to top of conversation",scrollBottom:"Scroll to bottom of conversation",fullScreenshot:"Full-page screenshot",areaScreenshot:"Area screenshot",regionScreenshot:"Area screenshot",toggleToolConfig:"Open/close tool settings",openShortcutsPanel:"Open shortcuts panel",openShortcutPanel:"Open shortcuts panel",newSession:"New session",closeSession:"Close current session",closeCurrentSession:"Close current session",editLastMessage:"Edit last user message"},versionInfo:{title:"\u2139\uFE0F Version Info",version:"Version",tag:"Git Tag",commit:"Git Commit",publishedAt:"Published At",website:"Website",discussions:"Discussions",reportIssue:"Report Issue",githubRepo:"GitHub Repository",giteeRepo:"Gitee Repository",copy:"Copy Info"},imageEditor:{editImage:"Edit Image",brush:"Brush (B)",rect:"Rectangle (R)",ellipse:"Ellipse (E)",arrow:"Arrow (A)",line:"Line (L)",undo:"Undo (Ctrl+Z)",confirm:"Confirm (Enter)",cancel:"Cancel (Esc)",downloadImage:"Download image",prev:"Previous",next:"Next",prevImage:"Previous",nextImage:"Next",brushSize:"Brush size",eraser:"Eraser"},chatExport:{selectCurrentOnly:"Select Current Only",selectedCount:"{count} selected",exportSelected:"Export Selected",title:"Export Conversations",exportSessions:"Export Conversations"},agentEditor:{createNew:"Create New Assistant",namePlaceholder:"Assistant name",icon:"Icon",descPlaceholder:"What is this assistant good at?",templateQuickCreate:"Quick create from template",promptPlaceholder:"You are a professional...",availableTools:"Available Tools",availableSkills:"Available Skills",modelSettings:"Model Settings (leave empty to use global settings)",modelPlaceholder:"Select or enter model name",allowSubAgent:"Allow being scheduled as a sub-assistant",name:"Name",desc:"Short description",nameLabel:"Name",descLabel:"Short description",selectTemplate:"-- Select template (optional) --",systemPrompt:"System prompt (defines the assistant role and capabilities)",inheritGlobalToolsHint:"(unchecked: inherit global tool settings)",inheritGlobalSkillsHint:"(unchecked: use all enabled skills)",toolsInheritGlobal:"(unchecked: inherit global tool settings)",skillsInheritAll:"(unchecked: use all enabled skills)",noSetting:"No setting (use global)",noPreset:"No setting (use global)",deleteTitle:"Delete this assistant",deleteAgentTitle:"Delete this assistant"},auditLog:{title:"\u{1F4CB} Command Audit",filterAll:"All",filterCommand:"Command Execution",filterFile:"File Operation",filterAuth:"Authentication",filterSecurity:"Security",filterSystem:"System",recent50:"Last 50",recent100:"Last 100",recent200:"Last 200",recent500:"Last 500",searchPlaceholder:"Search action name, command or path...",categoryFilter:"Category filter:",countLabel:"Count:",clearSearch:"Clear",empty:"No audit logs",noLogs:"No audit logs",defaultRange:"Defaults to querying the last 7 days of audit logs"},input:{atHint:"Prompts (click) / Pages (Ctrl/Cmd+click)",placeholder:"Type '/' for prompts, '@' to switch assistant/page, '$' to pick workspace file, '\u2191\u2193' for history, Esc to clear",send:"Send",clearSelection:"Clear selected content",pageLabel:"\u{1F310} Page",clearPage:"Clear page",mcpLabel:"\u{1F50C} MCP",clearMcp:"Clear MCP service",skillLabel:"\u{1F9E9} Skill",clearSkill:"Clear skill",screenshotTitle:"Capture current page",attachFileTitle:"Upload file (PDF/Word/Excel/Text)",screenshot:"Capture current page",uploadFile:"Upload file (PDF/Word/Excel/Text)",aiDisclaimer:"AI-generated content, for reference only.",addMenuTitle:"Add content",addMenuPrompt:"Prompts",addMenuScreenshot:"Screenshot",addMenuScreenshotFull:"Full page capture",addMenuScreenshotFullDesc:"Capture the current visible page",addMenuScreenshotRegion:"Area capture",addMenuScreenshotRegionDesc:"Drag to select an area on the page",addMenuFile:"Attachment",addMenuSwitches:"Toggles"},model:{selectModel:"Select model",temperature:"Temperature"},sectionSelect:{searchPlaceholder:"Type to filter\u2026",noMatch:"No matches"},provider:{label:"API Provider",manage:"Manage provider profiles"},promptSelector:{prompts:"Prompts",skills:"Skills",pages:"Pages",agents:"Assistants",proxies:"Agents",knowledge:"Knowledge",pagesCount:"Pages ({count})",agentsCount:"Assistants ({count})",proxiesCount:"Agents ({count})",knowledgeCount:"Knowledge ({count})",headerHint:"Arrow keys to switch \xB7 Enter to send \xB7 Ctrl+Enter to insert into input",agentHeaderHint:"Arrow keys to switch \xB7 Enter to select \xB7 Esc to cancel",switchHint:"Arrow keys to switch \xB7 Enter to send \xB7 Ctrl+Enter to insert into input",switchHintSelect:"Arrow keys to switch \xB7 Enter to select \xB7 Ctrl+Enter to select & close \xB7 Esc to cancel",mergedTitle:"Aggregated Search",mergedTitleCount:"Aggregated Search ({count})"},memory:{label:"Memory",historyLimit:"Memory History Limit",configEntry:"Open memory settings",hint:"More memory means more coherent context, but higher token consumption; too little memory may prevent accurate answers based on previous context.",unlimited:"Unlimited",recent200:"Last 200",recent100:"Last 100",recent50:"Last 50",recent20:"Last 20",recent10:"Last 10",recent5:"Last 5",recent2:"Last 2",custom:"Custom:",unit:"entries",autoCompactLabel:"Auto-compact",autoCompactHint:"Compact history into a summary once before sending when context usage reaches 85% (adds one summarization call).",persistSummaryLabel:"Save summary to memory",persistSummaryHint:"Store the compaction summary as cross-session long-term memory; repeated compaction in one session updates the same entry."},toggle:{memoryHint:"When enabled, previous Q&A will be used as context (all by default, configurable count)",toolsHint:"Master tool switch: click to enable or disable tool calls",selectionHint:"When enabled, select text on page to quickly ask questions",tools:"Tools",selection:"Selection",modelSettings:"Model Settings",toolsConfigTitle:"Click to open detailed tool settings"},selection:{clearSelection:"Clear selected content",page:"\u{1F310} Page",clearPage:"Clear page",clearMcp:"Clear MCP service",skill:"\u{1F9E9} Skill",clearSkill:"Clear skill"},toolCategory:{page_interaction:"\u{1F5B1}\uFE0F Page Interaction",form_operation:"\u{1F4DD} Form Operation",content_extraction:"\u{1F4C4} Content Extraction",tab_management:"\u{1F4D1} Tab Management",bookmark_history:"\u{1F516} Bookmarks & History",storage_management:"\u{1F4BE} Storage Management",network_request:"\u{1F310} Network Request",media_output:"\u{1F4F7} Media & Output",debug_dev:"\u{1F527} Debug & Dev",ai_collaboration:"\u{1F916} AI Collaboration",local_agent:"\u{1F5A5}\uFE0F Agent",mcp:"\u{1F50C} MCP",knowledge:"\u{1F4DA} Knowledge"},presetMode:{preciseLabel:"Precise",preciseTip:"Bug fixing, debugging, accurate answers (low randomness, good for fixing bugs)",generalLabel:"General",generalTip:"Works well for most cases (balanced stability & flexibility, good for scripts)",divergentLabel:"Divergent",divergentTip:"Multiple approaches to compare (good for refactoring, solution comparison)",creativeLabel:"Creative",creativeTip:"Copywriting, naming, brainstorming (high randomness, not for production code)"},tool:{agent_file:"File operations on agent machine (read/write/list/delete/download)",agent_trash:"Manage agent trash bin (list/restore deleted items)",agent_exec:"Execute shell commands on agent machine",agent_search:"Search files or content on agent machine",agent_skill:"Load or run a Skill (run=Workflow, load=Agent Skill)",manage_agent:"List or switch paired AI agents",exec_log:"Extract execution logs to analyze successful paths and failure lessons",clarify_question:"Ask user a clarifying question with options",highlight_text:"Highlight text on page for visual emphasis",plan_task:"Plan and decompose complex task into subtasks",search_chats:"Search past conversation history",preview_ui:"Preview or retrieve a UI prototype",dispatch_task:"Dispatch task to a sub-agent",interact_element:"Interact with page element (locate via ref/text/selector; click/hover/type)",scroll_to:"Scroll page to target (element/coordinates/text)",wait_element:"Wait for element to appear/disappear/change visibility",drag_drop:"Drag element (\u26A0\uFE0F experimental, may not work on most pages)",wait_navigation:"Wait for page navigation to complete",handle_dialog:"Handle page dialogs (accept/dismiss/restore alert/confirm/prompt)",fill_form:"Fill multiple form fields at once (supports ref)",keyboard_input:"Type text or dispatch key event (bypasses React/Vue controlled components)",file_upload:"Upload file to page",select_dropdown:"Dropdown selection (supports custom components)",page_content:"Get page text or HTML content",extract_data:"Extract structured data (tables/links/images/forms/metadata)",query_elements:"Query interactive elements, returns tree snapshot with ref numbers (open overlays lifted under [Open overlays]; visible iframes included as [frame #N] blocks with globally valid refs; refs stable for the same element; re-query after page changes; use page to paginate when hasMore)",search_in_page:"Find text in current page content",iframe_content:"Get content of an iframe in the page",scroll_collect:"Scroll and collect content from infinite scroll/lazy-loaded pages",notify:"Show browser notification",clipboard:"Clipboard operations (copy/paste/get selection)",download_file:"Download file to local",qrcode:"Generate QR code",capture_page:"Capture page screenshot (download/analyze/both)",browser_info:"Get browser version and environment info",inject_css:"Inject custom CSS into page",agent_memory:"Long-term memory management (store/recall/manage)",manage_storage:"Read/write browser localStorage or sessionStorage",manage_cookies:"Get/set/remove/list browser cookies",clear_data:"Clear localStorage/sessionStorage for a site",fetch_url:"Send HTTP GET/POST request to a URL",manage_tab:"Manage browser tabs (open/switch/close/reload/navigate)",list_tabs:"Get list of open tabs",search_browser_data:"Search browser bookmarks or history",debug_page:"Advanced page debugging via CDP: native input events, network capture, JS evaluation, full-page/element screenshots, device & UA emulation",knowledge_search:"Search knowledge bases for relevant content (read-only)",knowledge_ingest:"Import text/local file/web page into a knowledge base (write operation)",knowledge_list:"List available knowledge bases and document counts"},react:{title:"\u2699\uFE0F Reasoning Loop Settings",subtitle:"Control behavior parameters of the AI reasoning loop (advanced)",maxIterations:"Max loop iterations",maxIterationsHint:"(increase for complex tasks)",min:"Min: 10",max:"Max: 1000",apiTimeout:"API request timeout",apiTimeoutHint:"(max wait time for a single API call)",unitMinute:"minutes (min)",min1Minute:"Min: 1 minute",max10Minutes:"Max: 10 minutes",max120Minutes:"Max: 120 minutes",max30Minutes:"Max: 30 minutes",loopTimeout:"Overall loop timeout",loopTimeoutHint:"(max execution time for the entire reasoning loop)",toolTimeout:"Tool execution timeout",toolTimeoutHint:"(max wait time for a single tool execution)",toolConfirmation:"Sensitive operation confirmation",toolConfirmationHint:"(confirm via dialog before the model performs sensitive operations)",enabled:"Enabled",disabled:"Disabled",toolConfirmationDesc1:"When enabled, the model will show a confirmation dialog for sensitive operations (tool calls, command execution, etc.) and wait for user approval.",toolConfirmationDesc2:"When disabled, all operations will be executed directly without confirmation.",enableExecutionLog:"Enable execution log",enableExecutionLogHint:"(show detailed logs of API calls and tool execution to help debug and understand AI thinking)",enableExecutionLogDesc1:'When enabled, an "Execution Log" button appears under messages; click to view the detailed API call and tool execution process.',enableExecutionLogDesc2:"When disabled, the button no longer appears.",streaming:"Streaming output",streamingHint:"(when enabled, AI replies are streamed token-by-token for faster perceived response)",streamingDesc1:"When enabled, AI replies and agent-side command execution output stream in real time for faster feedback.",streamingDesc2:"If you encounter compatibility issues, disable this to fall back to one-shot output mode.",streamExpandTools:"Expand streaming tool cards by default",streamExpandToolsHint:"(when disabled, tool cards are collapsed by default; only title and status are shown, click to expand)",configGuide:"\u{1F4A1} Configuration Notes",guideReasoningLoop:"Reasoning loop",guideReasoningLoopDesc:" is the core mechanism for the AI assistant to perform multi-step reasoning and tool calls.",guideLoopCount:"Loop count",guideLoopCountDesc:": determines how many reason-act iterations the AI can perform",guideTimeout:"Timeout settings",guideTimeoutDesc:": prevent long waits or infinite loops",guideClarifyWait:"Clarification wait",guideClarifyWaitDesc:": user clarification time is not counted toward the overall loop timeout (paused)",guideTip:"\u2022 Adjust these parameters based on network conditions and task complexity"},reflection:{title:"\u{1F3AF} AI Self-Reflection Settings",enabled:"Enabled",subtitle:"Control the AI self-evaluation and revision behavior for task results",postReflection:"Post-reflection",postReflectionHint:"(evaluate result quality after completion)",subtaskReflection:"Subtask reflection",subtaskReflectionHint:"(advanced feature, off by default)",configGuide:"\u{1F4A1} Reflection Configuration Notes",guidePostReflection:"Post-reflection",guidePostReflectionDesc:": after the reasoning loop ends, the AI self-evaluates the final result. If the score is below the threshold, it will automatically revise or re-execute.",guideSubtaskReflection:"Subtask reflection",guideSubtaskReflectionDesc:": performs separate evaluation for subtasks after complex task decomposition; off by default (advanced feature).",guideTip:"\u2022 Enabling reflection increases the number of API calls; weigh this against your needs"},toolbar:{title:"\u{1F527} Toolbar Settings",enabled:"Enabled",subtitle:"Manage buttons and order of the selection toolbar",iconOnly:"Compact icon-only mode (show icons only, no text)",addCustomTool:"\uFF0B Add custom tool",domainBlocklistTitle:"Domain blocklist",domainBlocklistDesc:"Add domains where the toolbar should be blocked. Once blocked, the selection toolbar will not appear on those domains.",domainAddPlaceholder:"e.g. example.com (without http/https)",add:"Add",toolEditModalTitle:"Add custom tool",toolName:"Tool name",toolNamePlaceholder:"e.g. Polish, Rewrite, Code review",systemPromptLabel:"System prompt",systemPromptHint:"(defines the tool behavior)",toolPromptPlaceholder:"e.g. You are a text polishing assistant. Make the user input more fluent and professional.",builtinBadge:"Built-in",customBadge:"Custom",moveUp:"Move up",moveDown:"Move down",dragSort:"Drag to sort",editCustomToolTitle:"Edit custom tool",toolNameEmpty:"Tool name cannot be empty",toolPromptEmpty:"System prompt cannot be empty",toolNotFound:"Tool not found",cannotEditBuiltin:"Cannot edit built-in tools",noBlockedDomains:"No blocked domains. Enter a domain above to add.",unblock:"Unblock",domainEmpty:"Domain cannot be empty",domainInvalid:"Please enter a valid domain, e.g. example.com",domainExists:"This domain already exists"},agentConfig:{title:"\u{1F5A5}\uFE0F Agent Settings",subtitle:"Connect to the agent service for advanced capabilities such as file read/write, system command execution, conversation memory management, Skill workflows and MCP protocol extensions. Supports multiple agents with one-click connection.",pairedAgents:"Paired agents",notConnected:"Not connected",detailToggle:"\u25B6 Details",addAgentTitle:"Add new agent",agentName:"Agent name",agentNameHint:"(custom; auto-fetched if empty)",agentNamePlaceholder:"e.g. Office Mac",agentUrl:"Agent address",agentUrlHint:"(HTTP address of the agent service)",pairCode:"Pairing code",pairCodeHint:"(view it in the Agent terminal window)",pairCodePlaceholder:"6-digit pairing code",connect:"Connect",toolCount:"{count} tools",selectedTotalCount:"(Selected {selected} / Total {total})",toggleCategoryAll:"Click to toggle select all/deselect all in this category",useInstructionTitle:"\u{1F4A1} Usage Instructions and Safety Tips",installGuideTitle:"\u{1F4E5} Install Agent v{version} (matches current extension version)",installGuideHint:"Copy the command below and paste it into a terminal to install the agent version that matches this extension, avoiding version-mismatch connection failures.",installGuideMacLinux:"macOS / Linux",copyCmd:"Copy",copyCmdAuto:"Copy (for current OS)",copyCmdSuccess:"Install command copied to clipboard",copyCmdFailed:"Copy failed, please select and copy the command manually",method1:"Method 1: NPM global install (recommended)",method1Step1:"(requires Node.js \u2265 18)",method1Step2:" or shorthand ",method1Step3:'3. The terminal shows a 6-digit pairing code; enter it on this page and click "Connect"',method2:"Method 2: Run from source (for development)",method2Step2:'2. The terminal shows a 6-digit pairing code; enter it on this page and click "Connect"',cmdAlias:"Command alias",cmdAliasPrefix:" can be shortened to ",cmdAliasSuffix:"; all commands support this",bgRun:"Background run:",bgRunMethod1:"\u3000Method 1: ",bgRunMethod1Mid:" or ",bgRunMethod2:"\u3000Method 2: ",moreCmd:"More commands:",moreCmdMid:" or ",securityTitle:"\u26A0\uFE0F Security Tips",security1:"The agent service listens only on localhost (127.0.0.1) by default. Modify startup parameters for remote connections.",security2:"File operations are restricted to the working directory and whitelisted directories; no privilege escalation.",security3:"High-risk commands are automatically blocked; sensitive commands support configurable approval.",addAnotherAgent:"Add another agent",checking:"Checking",connected:"Connected",online:"Online",offline:"Offline",clickToEditName:"Click to edit name",currentInUse:"Current in use \xB7 ",enable:"Enable",disable:"Disable",disconnect:"Disconnect",connectedTo:"Connected to: {name}",confirmDeleteAgent:`Are you sure you want to delete agent "{name}" ({url})?
34
+ When disabled, all operations will be executed directly without confirmation.`,clearSearch:"Clear search",configBtnTitle:"Click to open detailed tool settings"},toolStats:{title:"\u{1F4CA} Tool Usage Stats",subtitle:"Call frequency, success rate, average duration per tool",usedTools:"Used Tools",calls:"Calls",success:"Success",successRate:"Success Rate",avgDuration:"Avg Duration",unusedTools:"Unused Tools",noData:"No data available",btnTitle:"Tool Usage Stats",clearTitle:"Clear stats"},tokenStatsPanel:{title:"\u{1FA99} Token Usage Stats",subtitle:"Per ReAct session & overall dimensions",currentSession:"Current Session",globalStats:"Global Stats",recentCalls:"Recent Calls",noData:"No data available",tabTrend:"Trend",tabDistribution:"Distribution",tabGlobal:"Global",timeRangeToday:"Today",timeRangeWeek:"Week",timeRangeMonth:"Month",timeRangeAll:"All",globalSparklineTitle:"Last 30 Days Trend"},customConfirm:{defaultTitle:"Confirm Action"},promptDialog:{title:"Notice"},promptManager:{title:"Prompt Manager",codePlaceholder:"Code (e.g. code)",contentPlaceholder:"Prompt content",addPrompt:"Add Prompt"},clarify:{title:"Clarification Needed",selectOption:"Please select an option",inputPlaceholder:"Enter additional info (optional)...",customPlaceholder:"Enter your custom content...",additionalTitle:"Additional Notes (optional)",additionalHint:"If you have more relevant information, you can add it here",remainingTime:"Time remaining: 3:00"},prototype:{previewTitle:"UI Prototype Preview",continueOptimize:"\u{1F4A1} Continue Optimizing",libraryTitle:"\u{1F3A8} Prototype Library",searchPlaceholder:"Search prototypes...",sortTimeNew:"Time (new\u2192old)",sortTimeOld:"Time (old\u2192new)",sortTitleAz:"Title (A\u2192Z)",sortTitleZa:"Title (Z\u2192A)",empty:"No prototypes",zoomOut:"Zoom out (Ctrl+scroll)",zoomReset:"Click to reset",resetZoom:"Click to reset",zoomIn:"Zoom in (Ctrl+scroll)",download:"Download",openInTab:"Open in new tab",openInNewTab:"Open in new tab",openLocal:"Open in local browser"},shortcuts:{title:"\u2328\uFE0F Shortcuts",sendMessage:"Send message",newLine:"New line",inputHistory:"Input history (in input box)",clearInput:"Clear input",keyColumn:"Shortcut",functionColumn:"Function",platformColumn:"Platform",platformWinMac:"Win / Mac",colShortcut:"Shortcut",colFunction:"Function",colPlatform:"Platform",gotoPrev:"Jump to previous question",gotoNext:"Jump to next question",scrollTop:"Scroll to top of conversation",scrollBottom:"Scroll to bottom of conversation",navOpenByTab:"Focus the left handle and open the question list",navListArrows:"Move between question items (Enter to jump)",navPinToggle:"Pin / unpin the question list",navEscCollapse:"Collapse question list / unpin (clears search text first)",fullScreenshot:"Full-page screenshot",areaScreenshot:"Area screenshot",regionScreenshot:"Area screenshot",toggleToolConfig:"Open/close tool settings",openShortcutsPanel:"Open shortcuts panel",openShortcutPanel:"Open shortcuts panel",newSession:"New session",closeSession:"Close current session",closeCurrentSession:"Close current session",editLastMessage:"Edit last user message"},versionInfo:{title:"\u2139\uFE0F Version Info",version:"Version",tag:"Git Tag",commit:"Git Commit",publishedAt:"Published At",website:"Website",discussions:"Discussions",reportIssue:"Report Issue",githubRepo:"GitHub Repository",giteeRepo:"Gitee Repository",copy:"Copy Info"},imageEditor:{editImage:"Edit Image",brush:"Brush (B)",rect:"Rectangle (R)",ellipse:"Ellipse (E)",arrow:"Arrow (A)",line:"Line (L)",undo:"Undo (Ctrl+Z)",confirm:"Confirm (Enter)",cancel:"Cancel (Esc)",downloadImage:"Download image",prev:"Previous",next:"Next",prevImage:"Previous",nextImage:"Next",brushSize:"Brush size",eraser:"Eraser"},chatExport:{selectCurrentOnly:"Select Current Only",selectedCount:"{count} selected",exportSelected:"Export Selected",title:"Export Conversations",exportSessions:"Export Conversations"},agentEditor:{createNew:"Create New Assistant",namePlaceholder:"Assistant name",icon:"Icon",descPlaceholder:"What is this assistant good at?",templateQuickCreate:"Quick create from template",promptPlaceholder:"You are a professional...",availableTools:"Available Tools",availableSkills:"Available Skills",modelSettings:"Model Settings (leave empty to use global settings)",modelPlaceholder:"Select or enter model name",allowSubAgent:"Allow being scheduled as a sub-assistant",name:"Name",desc:"Short description",nameLabel:"Name",descLabel:"Short description",selectTemplate:"-- Select template (optional) --",systemPrompt:"System prompt (defines the assistant role and capabilities)",inheritGlobalToolsHint:"(unchecked: inherit global tool settings)",inheritGlobalSkillsHint:"(unchecked: use all enabled skills)",toolsInheritGlobal:"(unchecked: inherit global tool settings)",skillsInheritAll:"(unchecked: use all enabled skills)",noSetting:"No setting (use global)",noPreset:"No setting (use global)",deleteTitle:"Delete this assistant",deleteAgentTitle:"Delete this assistant"},auditLog:{title:"\u{1F4CB} Command Audit",filterAll:"All",filterCommand:"Command Execution",filterFile:"File Operation",filterAuth:"Authentication",filterSecurity:"Security",filterSystem:"System",recent50:"Last 50",recent100:"Last 100",recent200:"Last 200",recent500:"Last 500",searchPlaceholder:"Search action name, command or path...",categoryFilter:"Category filter:",countLabel:"Count:",clearSearch:"Clear",empty:"No audit logs",noLogs:"No audit logs",defaultRange:"Defaults to querying the last 7 days of audit logs"},input:{atHint:"Prompts (click) / Pages (Ctrl/Cmd+click)",placeholder:"Type '/' for prompts, '@' to switch assistant/page, '$' to pick workspace file, '\u2191\u2193' for history, Esc to clear",send:"Send",clearSelection:"Clear selected content",pageLabel:"\u{1F310} Page",clearPage:"Clear page",mcpLabel:"\u{1F50C} MCP",clearMcp:"Clear MCP service",skillLabel:"\u{1F9E9} Skill",clearSkill:"Clear skill",screenshotTitle:"Capture current page",attachFileTitle:"Upload file (PDF/Word/Excel/Text)",screenshot:"Capture current page",uploadFile:"Upload file (PDF/Word/Excel/Text)",aiDisclaimer:"AI-generated content, for reference only.",addMenuTitle:"Add content",addMenuPrompt:"Prompts",addMenuScreenshot:"Screenshot",addMenuScreenshotFull:"Full page capture",addMenuScreenshotFullDesc:"Capture the current visible page",addMenuScreenshotRegion:"Area capture",addMenuScreenshotRegionDesc:"Drag to select an area on the page",addMenuFile:"Attachment",addMenuSwitches:"Toggles"},model:{selectModel:"Select model",temperature:"Temperature"},sectionSelect:{searchPlaceholder:"Type to filter\u2026",noMatch:"No matches"},provider:{label:"API Provider",manage:"Manage provider profiles"},promptSelector:{prompts:"Prompts",skills:"Skills",pages:"Pages",agents:"Assistants",proxies:"Agents",knowledge:"Knowledge",pagesCount:"Pages ({count})",agentsCount:"Assistants ({count})",proxiesCount:"Agents ({count})",knowledgeCount:"Knowledge ({count})",headerHint:"Arrow keys to switch \xB7 Enter to send \xB7 Ctrl+Enter to insert into input",agentHeaderHint:"Arrow keys to switch \xB7 Enter to select \xB7 Esc to cancel",switchHint:"Arrow keys to switch \xB7 Enter to send \xB7 Ctrl+Enter to insert into input",switchHintSelect:"Arrow keys to switch \xB7 Enter to select \xB7 Ctrl+Enter to select & close \xB7 Esc to cancel",mergedTitle:"Aggregated Search",mergedTitleCount:"Aggregated Search ({count})"},memory:{label:"Memory",historyLimit:"Memory History Limit",configEntry:"Open memory settings",hint:"More memory means more coherent context, but higher token consumption; too little memory may prevent accurate answers based on previous context.",unlimited:"Unlimited",recent200:"Last 200",recent100:"Last 100",recent50:"Last 50",recent20:"Last 20",recent10:"Last 10",recent5:"Last 5",recent2:"Last 2",custom:"Custom:",unit:"entries",autoCompactLabel:"Auto-compact",autoCompactHint:"Compact history into a summary once before sending when context usage reaches 85% (adds one summarization call).",persistSummaryLabel:"Save summary to memory",persistSummaryHint:"Store the compaction summary as cross-session long-term memory; repeated compaction in one session updates the same entry."},toggle:{memoryHint:"When enabled, previous Q&A will be used as context (all by default, configurable count)",toolsHint:"Master tool switch: click to enable or disable tool calls",selectionHint:"When enabled, select text on page to quickly ask questions",tools:"Tools",selection:"Selection",modelSettings:"Model Settings",toolsConfigTitle:"Click to open detailed tool settings"},selection:{clearSelection:"Clear selected content",page:"\u{1F310} Page",clearPage:"Clear page",clearMcp:"Clear MCP service",skill:"\u{1F9E9} Skill",clearSkill:"Clear skill"},toolCategory:{page_interaction:"\u{1F5B1}\uFE0F Page Interaction",form_operation:"\u{1F4DD} Form Operation",content_extraction:"\u{1F4C4} Content Extraction",tab_management:"\u{1F4D1} Tab Management",bookmark_history:"\u{1F516} Bookmarks & History",storage_management:"\u{1F4BE} Storage Management",network_request:"\u{1F310} Network Request",media_output:"\u{1F4F7} Media & Output",debug_dev:"\u{1F527} Debug & Dev",ai_collaboration:"\u{1F916} AI Collaboration",local_agent:"\u{1F5A5}\uFE0F Agent",mcp:"\u{1F50C} MCP",knowledge:"\u{1F4DA} Knowledge"},presetMode:{preciseLabel:"Precise",preciseTip:"Bug fixing, debugging, accurate answers (low randomness, good for fixing bugs)",generalLabel:"General",generalTip:"Works well for most cases (balanced stability & flexibility, good for scripts)",divergentLabel:"Divergent",divergentTip:"Multiple approaches to compare (good for refactoring, solution comparison)",creativeLabel:"Creative",creativeTip:"Copywriting, naming, brainstorming (high randomness, not for production code)"},tool:{agent_file:"File operations on agent machine (read/write/list/delete/download)",agent_trash:"Manage agent trash bin (list/restore deleted items)",agent_exec:"Execute shell commands on agent machine",agent_search:"Search files or content on agent machine",agent_skill:"Load or run a Skill (run=Workflow, load=Agent Skill)",manage_agent:"List or switch paired AI agents",exec_log:"Extract execution logs to analyze successful paths and failure lessons",clarify_question:"Ask user a clarifying question with options",plan_task:"Plan and decompose complex task into subtasks",search_chats:"Search past conversation history",preview_ui:"Preview or retrieve a UI prototype",dispatch_task:"Dispatch task to a sub-agent",take_note:"Record a working note, survives context compaction",interact_element:"Interact with page element (locate via ref/text/selector; click/hover/type)",scroll_to:"Scroll page to target (element/coordinates/text)",wait_element:"Wait for element to appear/disappear/change visibility",wait_navigation:"Wait for page navigation to complete",handle_dialog:"Handle page dialogs (accept/dismiss/restore alert/confirm/prompt)",fill_form:"Fill multiple form fields at once (supports ref)",keyboard_input:"Type text or dispatch key event (bypasses React/Vue controlled components)",file_upload:"Upload file to page",select_dropdown:"Dropdown selection (supports custom components)",page_content:"Get page text or HTML content",extract_data:"Extract structured data (tables/links/images/forms/metadata)",query_elements:"Query interactive elements, returns tree snapshot with ref numbers (open overlays lifted under [Open overlays]; visible iframes included as [frame #N] blocks with globally valid refs; refs stable for the same element; re-query after page changes; use page to paginate when hasMore)",search_in_page:"Find text in current page content",iframe_content:"Get content of an iframe in the page",scroll_collect:"Scroll and collect content from infinite scroll/lazy-loaded pages",notify:"Show browser notification",clipboard:"Clipboard operations (copy/paste/get selection)",download_file:"Download file to local",qrcode:"Generate QR code",capture_page:"Capture page screenshot (download/analyze/both)",inject_css:"Modify page appearance (inject stylesheet/inline style/highlight texts)",agent_memory:"Long-term memory management (store/recall/manage)",manage_storage:"Read/write browser localStorage or sessionStorage (clear requires confirmation)",manage_cookies:"Get/set/remove/clear/list browser cookies",fetch_url:"Send HTTP GET/POST request to a URL",manage_tab:"Manage browser tabs (open/switch/close/reload/navigate)",list_tabs:"Get list of open tabs",search_browser_data:"Search browser bookmarks or history",debug_page:"Advanced page debugging via CDP: native input events, network capture, JS evaluation, full-page/element screenshots, device & UA emulation",knowledge_search:"Search knowledge bases for relevant content (read-only)",knowledge_ingest:"Import text/local file/web page into a knowledge base (write operation)",knowledge_list:"List available knowledge bases and document counts"},react:{title:"\u2699\uFE0F Reasoning Loop Settings",subtitle:"Control behavior parameters of the AI reasoning loop (advanced)",maxIterations:"Max loop iterations",maxIterationsHint:"(increase for complex tasks)",min:"Min: 10",max:"Max: 1000",apiTimeout:"API request timeout",apiTimeoutHint:"(max wait time for a single API call)",unitMinute:"minutes (min)",min1Minute:"Min: 1 minute",max10Minutes:"Max: 10 minutes",max120Minutes:"Max: 120 minutes",max30Minutes:"Max: 30 minutes",loopTimeout:"Overall loop timeout",loopTimeoutHint:"(max execution time for the entire reasoning loop)",toolTimeout:"Tool execution timeout",toolTimeoutHint:"(max wait time for a single tool execution)",toolConfirmation:"Sensitive operation confirmation",toolConfirmationHint:"(confirm via dialog before the model performs sensitive operations)",enabled:"Enabled",disabled:"Disabled",toolConfirmationDesc1:"When enabled, the model will show a confirmation dialog for sensitive operations (tool calls, command execution, etc.) and wait for user approval.",toolConfirmationDesc2:"When disabled, all operations will be executed directly without confirmation.",networkAccess:"Private network access",networkAccessHint:"(controls whether tools such as fetch_url requests and manage_tab opening private pages may reach local and private-network addresses)",networkAccessDesc1:"Off by default: tools may only reach public addresses; loopback and private addresses such as 127.0.0.1, localhost and 192.168.x.x are refused outright.",networkAccessDesc2:"Even when on, each host must still be added to the allowlist below; while the list is empty every private target stays refused. Turning the switch off only collapses that block - the entries you saved are not cleared.",completionVerification:"Completion verification",completionVerificationHint:"(independently verifies subtasks against their done-criteria via objective evidence from the real page and the local agent (commands / files) after they finish, and honestly reports unmet ones)",completionVerificationDesc1:'When enabled, each subtask is independently verified against its done-criteria on completion; unmet items are honestly annotated and reported back to the model instead of defaulting to "finished equals success". Evidence is not limited to page DOM - it also covers commands run through the local agent (e.g. test/build exit codes) and file checks (existence/content). This is objective evidence collection (checking whether the environment truly reached the goal), complementing - not duplicating - the subjective self-review of AI Self-Reflection.',completionVerificationDesc2:"When disabled, subtask completion status stays byte-for-byte identical to before, with no extra evidence collection or annotation.",completionVerificationRerun:"Auto re-run on completion",completionVerificationRerunHint:"(automatically gives an unmet subtask one more attempt, bounded by retry and budget limits)",completionVerificationRerunDesc1:"When on, if independent evidence finds a subtask truly unmet, a directive listing exactly what is still missing is appended to that subtask and it runs one more round, until criteria are met or safety limits stop it (missing items must strictly shrink each round, plus retry cap, time/token budget, cancellation or timeout). Allow-tier test/build commands may be auto-run for evidence; commands needing confirmation or refused by the security policy are never force-run and are reported as evidence-unavailable. Enabling this runs commands and adds latency and token cost; off by default.",completionVerificationRerunDesc2:'When off (default), behavior is byte-for-byte identical to "annotate only, no re-run": unmet subtasks are honestly reported but never automatically re-run.',networkAllowlistTitle:"Private network allowlist",networkAllowlistDesc:"Accepts hostnames, IPs and *.example.com subdomain wildcards (no scheme or port); only the private hosts listed here are allowed through.",networkHostAddPlaceholder:"e.g. 127.0.0.1 or intranet.example.com",networkHostAdd:"Add",networkHostRemove:"Remove",networkAllowlistEmpty:"No allowed hosts yet. With the switch on, a private target is still refused unless it matches this list.",networkHostEmpty:"Enter the hostname or IP to allow",networkHostInvalid:"The entry must not contain spaces; give only the hostname or IP",networkHostExists:"This host is already in the allowlist",enableExecutionLog:"Enable execution log",enableExecutionLogHint:"(show detailed logs of API calls and tool execution to help debug and understand AI thinking)",enableExecutionLogDesc1:'When enabled, an "Execution Log" button appears under messages; click to view the detailed API call and tool execution process.',enableExecutionLogDesc2:"When disabled, the button no longer appears.",streaming:"Streaming output",streamingHint:"(when enabled, AI replies are streamed token-by-token for faster perceived response)",streamingDesc1:"When enabled, AI replies and agent-side command execution output stream in real time for faster feedback.",streamingDesc2:"If you encounter compatibility issues, disable this to fall back to one-shot output mode.",streamExpandTools:"Expand streaming tool cards by default",streamExpandToolsHint:"(when disabled, tool cards are collapsed by default; only title and status are shown, click to expand)",configGuide:"\u{1F4A1} Configuration Notes",guideReasoningLoop:"Reasoning loop",guideReasoningLoopDesc:" is the core mechanism for the AI assistant to perform multi-step reasoning and tool calls.",guideLoopCount:"Loop count",guideLoopCountDesc:": determines how many reason-act iterations the AI can perform",guideTimeout:"Timeout settings",guideTimeoutDesc:": API request / overall loop / tool execution timeouts, preventing long waits or infinite loops",guideToolConfirm:"Sensitive action confirmation",guideToolConfirmDesc:": prompts a confirmation dialog before the AI performs sensitive actions, preventing accidental operations",guideClarifyWait:"Clarification wait",guideClarifyWaitDesc:": user clarification time is not counted toward the overall loop timeout (automatically paused; not a configurable item)",guideTip:"\u2022 Adjust these parameters based on network conditions and task complexity"},reflection:{title:"AI Self-Reflection",enabled:"Enabled",subtitle:"Control the AI self-evaluation and revision behavior for task results",subtitleHint:"(control the AI self-evaluation and revision behavior for answer quality - a subjective self-review, complementing the objective evidence check of Completion verification)",desc1:"When enabled, the AI self-evaluates the result after the reasoning loop and auto-revises or re-executes when the score falls below the threshold. Especially suited to open-ended tasks without objective criteria (Q&A / writing / analysis), where Completion verification does not intervene.",desc2:"Turning this off collapses the sub-switches below; enabling reflection adds API calls, so weigh it against your needs.",postReflection:"Post-reflection",postReflectionHint:"(evaluate result quality after completion)",subtaskReflection:"Subtask reflection",subtaskReflectionHint:"(advanced feature, off by default)",configGuide:"\u{1F4A1} Reflection Configuration Notes",guidePostReflection:"Post-reflection",guidePostReflectionDesc:": after the reasoning loop ends, the AI self-evaluates the final result. If the score is below the threshold, it will automatically revise or re-execute.",guideSubtaskReflection:"Subtask reflection",guideSubtaskReflectionDesc:": performs separate evaluation for subtasks after complex task decomposition; off by default (advanced feature).",guideTip:"\u2022 Enabling reflection increases the number of API calls; weigh this against your needs"},toolbar:{title:"\u{1F527} Toolbar Settings",enabled:"Enabled",subtitle:"Manage buttons and order of the selection toolbar",iconOnly:"Compact icon-only mode (show icons only, no text)",addCustomTool:"\uFF0B Add custom tool",domainBlocklistTitle:"Domain blocklist",domainBlocklistDesc:"Add domains where the toolbar should be blocked. Once blocked, the selection toolbar will not appear on those domains.",domainAddPlaceholder:"e.g. example.com (without http/https)",add:"Add",toolEditModalTitle:"Add custom tool",toolName:"Tool name",toolNamePlaceholder:"e.g. Polish, Rewrite, Code review",systemPromptLabel:"System prompt",systemPromptHint:"(defines the tool behavior)",toolPromptPlaceholder:"e.g. You are a text polishing assistant. Make the user input more fluent and professional.",builtinBadge:"Built-in",customBadge:"Custom",moveUp:"Move up",moveDown:"Move down",dragSort:"Drag to sort",editCustomToolTitle:"Edit custom tool",toolNameEmpty:"Tool name cannot be empty",toolPromptEmpty:"System prompt cannot be empty",toolNotFound:"Tool not found",cannotEditBuiltin:"Cannot edit built-in tools",noBlockedDomains:"No blocked domains. Enter a domain above to add.",unblock:"Unblock",domainEmpty:"Domain cannot be empty",domainInvalid:"Please enter a valid domain, e.g. example.com",domainExists:"This domain already exists"},agentConfig:{title:"\u{1F5A5}\uFE0F Agent Settings",subtitle:"Connect to the agent service for advanced capabilities such as file read/write, system command execution, conversation memory management, Skill workflows and MCP protocol extensions. Supports multiple agents with one-click connection.",pairedAgents:"Paired agents",notConnected:"Not connected",detailToggle:"\u25B6 Details",addAgentTitle:"Add new agent",agentName:"Agent name",agentNameHint:"(custom; auto-fetched if empty)",agentNamePlaceholder:"e.g. Office Mac",agentUrl:"Agent address",agentUrlHint:"(HTTP address of the agent service)",pairCode:"Pairing code",pairCodeHint:"(view it in the Agent terminal window)",pairCodePlaceholder:"6-digit pairing code",connect:"Connect",toolCount:"{count} tools",selectedTotalCount:"(Selected {selected} / Total {total})",toggleCategoryAll:"Click to toggle select all/deselect all in this category",useInstructionTitle:"\u{1F4A1} Usage Instructions and Safety Tips",installGuideTitle:"\u{1F4E5} Install Agent v{version} (matches current extension version)",installGuideHint:"Copy the command below and paste it into a terminal to install the agent version that matches this extension, avoiding version-mismatch connection failures.",installGuideMacLinux:"macOS / Linux",copyCmd:"Copy",copyCmdAuto:"Copy (for current OS)",copyCmdSuccess:"Install command copied to clipboard",copyCmdFailed:"Copy failed, please select and copy the command manually",method1:"Method 1: NPM global install (recommended)",method1Step1:"(requires Node.js \u2265 18)",method1Step2:" or shorthand ",method1Step3:'3. The terminal shows a 6-digit pairing code; enter it on this page and click "Connect"',method2:"Method 2: Run from source (for development)",method2Step2:'2. The terminal shows a 6-digit pairing code; enter it on this page and click "Connect"',cmdAlias:"Command alias",cmdAliasPrefix:" can be shortened to ",cmdAliasSuffix:"; all commands support this",bgRun:"Background run:",bgRunMethod1:"\u3000Method 1: ",bgRunMethod1Mid:" or ",bgRunMethod2:"\u3000Method 2: ",moreCmd:"More commands:",moreCmdMid:" or ",securityTitle:"\u26A0\uFE0F Security Tips",security1:"The agent service listens only on localhost (127.0.0.1) by default. Modify startup parameters for remote connections.",security2:"File operations are restricted to the working directory and whitelisted directories; no privilege escalation.",security3:"High-risk commands are automatically blocked; sensitive commands support configurable approval.",addAnotherAgent:"Add another agent",checking:"Checking",connected:"Connected",online:"Online",offline:"Offline",clickToEditName:"Click to edit name",currentInUse:"Current in use \xB7 ",enable:"Enable",disable:"Disable",disconnect:"Disconnect",connectedTo:"Connected to: {name}",confirmDeleteAgent:`Are you sure you want to delete agent "{name}" ({url})?
35
35
  You will need to pair again after deletion.`,deleteAgentTitle:"Delete Agent",agentDeleted:"Agent deleted: {name}",agentDisabledToast:"Agent disabled: {name}",agentEnabledToast:"Agent enabled: {name}",fetchingAgentInfo:"Fetching agent info...",agentUnreachable:"Agent service unreachable",tokenExpired:"Token expired - please re-pair",cannotConnectAgent:"Cannot connect to agent - please make sure the agent service is running",notConnectedSelect:"Not connected - please select an agent from the list",notConnectedAdd:"Not connected - please add an agent pair",unlimited:"Unlimited",idle:"Idle",unknownCommand:"(unknown command)",detailVersion:"Version",detailSystem:"System",detailHostname:"Hostname",detailHomeDir:"Home directory",detailRunningProcesses:"Running processes",detailRunningProcessesCount:"Running processes ({count})",detailMemoryUsage:"Memory usage",detailMemoryDetail:"Heap {used}MB / Total {total}MB \xB7 RSS {rss}MB",detailUptime:"Uptime",detailCpuUser:"CPU user",detailCpuSystem:"CPU system",detailCommandTimeout:"Command timeout",detailUploadMaxSize:"Upload size limit",detailFileMaxSize:"Read size limit",detailAllowedPaths:"Allowed paths",detailPairCodeTTL:"Pairing code validity",detailWorkdir:"\u{1F4C1} Working directory: {dir}",pairCodeRequired:"Please enter the 6-digit pairing code",pairing:"Pairing...",pairingBtn:"Pairing...",unnamedAgent:"Unnamed agent",pairSuccess:"Pairing succeeded! Added: {name}",pairFailed:"Pairing failed: {error}",unknownError:"Unknown error",connectFailed:"Connection failed - please make sure the agent service is running",cannotConnectAgentMsg:"Cannot connect to Agent: {error}",disconnectedToast:"Disconnected",detailToggleOpen:"\u25BC Details",pairFailedShort:"Pairing failed"},toolbox:{checkingAgent:"Checking Agent connection...",mcpTitle:"\u{1F50C} MCP Server Management",mcpDisabled:"Disabled",mcpDesc:"Connect external tool servers via the MCP protocol to extend the AI assistant tool capabilities. When disabled, no MCP tools will be sent to the AI context.",loading:"Loading...",addMcpServer:"+ Add MCP server",skillTitle:"\u{1F9E9} Skill Management",skillDisabled:"Disabled",skillDesc:"Manage reusable workflows and Agent Skills. When disabled, no Skill content will be injected into the AI system prompt.",ragTitle:"\u{1F4DA} Knowledge Retrieval (RAG)",ragDisabled:"Disabled",ragDesc:"Build a knowledge base locally on the agent side for retrieval-augmented answers. Requires optional dependencies (~200-300MB). When disabled, knowledge base content will not be sent to the AI context.",ragServiceEnabled:"Knowledge retrieval enabled",ragServiceDisabled:"Knowledge retrieval disabled",ragStatusChecking:"Checking RAG capability...",ragStatusReadyTitle:"RAG capability ready",ragStatusReadyDesc:"Agent-side dependencies are installed. Knowledge base management will be available in a later version.",ragStatusNotInstalledTitle:"RAG dependencies not installed on agent",ragStatusNotInstalledDesc:"Enable knowledge retrieval by installing the extra dependency packages on the agent side first.",ragStatusNodeLowTitle:"Environment requirement not met",ragStatusNodeLowDesc:"RAG requires Node.js 22+ (agent currently runs {version}). Please upgrade Node.js and restart the agent.",ragStatusAgentOffTitle:"Agent not connected",ragStatusAgentOffDesc:'Please connect the Agent service in the "Agent" tab first, then configure knowledge retrieval',ragStatusUnreachableTitle:"Cannot fetch agent status",ragStatusUnreachableDesc:'Please make sure the agent service is running, then click "Re-detect".',ragInstallPackagesLabel:"Packages to install:",ragInstallRequirements:"Requires Node.js 22+; estimated download of about 200-300MB (includes onnxruntime native libraries, varies by platform); first use also downloads an AI model (~95MB).",ragInstallNoRestartNeeded:"Ready automatically after installation - no agent restart needed.",ragInstallCommandLabel:"Or run manually in the agent install directory:",ragCopyCmd:"\u{1F4CB} Copy command",ragCopied:"Copied to clipboard",ragCopyFailed:"Copy failed, please select and copy manually",ragInstallBtn:"\u2B07\uFE0F Install RAG dependencies",ragInstallBtnBusy:"Installing...",ragRedetectBtn:"\u{1F504} Re-detect",ragInstallStarted:"Installation started, downloading dependencies...",ragInstallRunning:"Installing RAG dependencies...",ragAutoRestoreRunning:"Dependencies missing after agent update - auto-restoring...",ragInstallTip:"Installation may take several minutes. Please do not close the agent service.",ragInstallVerifying:"Installation finished, verifying...",ragInstallSuccess:"RAG dependencies installed successfully, capability is ready",ragInstallFailedToast:"RAG dependency installation failed",ragInstallFailedAdvice:'If installation keeps failing, try restarting the agent service (or retry later), then click "Re-detect".',ragInstallLogLabel:"Installation log (recent output):",ragRedetectReady:"Re-detection finished: RAG capability is ready",ragRedetectStillMissing:"Re-detection finished: RAG dependencies still missing",ragRedetectStillMissingDetail:"RAG dependencies still missing - {error}",ragRedetectFailed:"Re-detection failed: {error}",importSkill:"+ Import Skill",reloadSkills:"\u{1F504} Reload",enabledCountTotal:"Enabled {enabled} / Total {total}",unknownAgent:"Unknown agent",currentAgentSupports:"Current agent: <strong>{name}</strong> \u2014 MCP and Skill supported",agentNotConnectedHint:'Agent not connected \u2014 please connect in the "Agent" tab',mcpIdRequired:"Please enter the server ID",mcpUrlRequired:"Please enter the server URL",mcpCommandRequired:"Please enter the command path",mcpReconnecting:"Reconnecting...",mcpUpdateReconnected:"MCP server updated, reconnected ({count} tools)",mcpUnknownError:"Unknown error, please check the command and arguments",mcpUpdatedReconnectFailed:"Config updated, but reconnect failed: {error}",mcpUpdateSuccess:"MCP server updated successfully",mcpUpdateFailed:"Update failed: {error}",mcpServiceEnabled:"MCP service enabled",mcpServiceDisabled:"MCP service disabled",skillServiceEnabled:"Skill service enabled",skillServiceDisabled:"Skill service disabled",mcpAddSuccess:"MCP server added successfully",mcpAddFailed:"Add failed: {error}",mcpConnecting:"Connecting...",mcpConnectSuccess:"Connected successfully",mcpDisconnectSuccess:"Disconnected",mcpEnabledToast:"Enabled",mcpDisabledToast:"Disabled",mcpConfirmDelete:"Are you sure you want to delete this MCP server?",deleteConfirmTitle:"Confirm Delete",deleteSuccess:"Deleted successfully",collapseTools:"Collapse {count} tools",viewTools:"View {count} tools",operationFailed:"Operation failed: {error}",sizeBytes:"Size: {size} bytes",skillConfirmDelete:'Are you sure you want to delete Skill "{name}"?',skillEnabledToast:'Enabled Skill "{name}"',skillDisabledToast:'Disabled Skill "{name}"',skillInfoFailed:"Failed to get Skill info: {error}",skillRunning:'Running Skill "{name}"...',skillContentFailed:"Failed to get Skill content",skillGetFailed:"Failed to fetch: {error}",skillsReloaded:"Reloaded {count} Skills",skillsReloadFailed:"Reload failed: {error}",emptyAgentNotConnectedTitle:"Agent not connected",emptyAgentNotConnectedDescMcp:'Please connect the Agent service in the "Agent" tab first, then configure MCP servers',emptyNoMcpTitle:"No MCP servers",emptyNoMcpDesc:"Click the button below to add an MCP server and extend the AI assistant tool capabilities",emptyAgentNotConnectedDescSkill:'Please connect the Agent service in the "Agent" tab first, then manage Skills',emptyNoSkillTitle:"No Skills",emptyNoSkillDesc:"Two Skill types are supported:<br><strong>Workflow Skill</strong>: import JSON files (deterministic automated flows)<br><strong>Agent Skill</strong>: import SKILL.md directory/Zip/URL (AI capability extension)",mcpIdPlaceholder:"Server ID",mcpIdPlaceholderUnique:"Server ID (unique identifier)",mcpNamePlaceholder:"Display name",mcpEnvVars:"Environment variables",mcpEnvVarsHint:"(Only needed for stdio transport; export sensitive values in shell config)",mcpAddVar:"+ Add variable",mcpConnected:"Connected",mcpDisconnected:"Not connected",mcpToggleEnabled:"Enabled, click to disable",mcpToggleDisabled:"Disabled, click to enable",mcpDisconnectBtn:"Disconnect",mcpConnectBtn:"Connect",mcpVarNamePlaceholder:"Variable name",mcpVarValuePlaceholder:"Value",mcpToggleEye:"Show/Hide",mcpRemoveRow:"Remove this row",mcpHeaderNamePlaceholder:"Header name",mcpHeaders:"Headers",mcpHeadersHint:"(HTTP request headers, e.g. Authorization, X-API-Key)",mcpAddHeader:"+ Add header",transportStdioTitle:"Subprocess communication (npx/python etc.)",transportSseTitle:"Server-Sent Events (HTTP GET long connection + POST to send)",transportStreamableHttpTitle:"MCP officially recommended HTTP transport (POST + GET SSE)",transportWebsocketTitle:"WebSocket bidirectional communication",mcpCommandPlaceholder:"Command path, e.g. npx, python",mcpArgsPlaceholder:"Arguments, space-separated",mcpCustomHeadersCount:"{count} custom headers",mcpAddFailedShort:"Add failed",mcpDeleteFailedShort:"Delete failed",mcpConnectFailedShort:"Connect failed",mcpDisconnectFailedShort:"Disconnect failed",mcpOperationFailedShort:"Operation failed",workflowSkillsTitle:"Workflow Skills (automated flows)",agentSkillsTitle:"Agent Skills (AI capability extension)",stepCount:"{count} steps",resourceCount:"{count} resources",expand:"Expand",run:"Run",enable:"Enable",disable:"Disable",builtin:"Built-in",moreCount:"+{count} more",editSkillMd:"Edit SKILL.md",viewDetails:"View details",required:"*Required",optional:"Optional",runSkillTitle:'Run Skill "{name}"',fillParamsHint:"Please fill in the following parameters and run:",defaultParamHint:" (default: {default})",noExecutionResult:"No execution result",conditionNotMetSkipped:"Condition not met, skipped",executionSuccess:"Executed successfully",executionFailed:"Execution failed",truncated:"... ({count} chars total, truncated)",executionComplete:"Execution complete",executionSummary:"{success} succeeded, {fail} failed, {skip} skipped",skillRunResultTitle:'Skill "{name}" {status}',skillImportFailedShort:"Import failed",skillDeleteFailedShort:"Delete failed",skillOperationFailedShort:"Operation failed",invalidSkillDataFormat:"Invalid Skill data format",editAgentSkill:"Edit Agent Skill",newAgentSkill:"New Agent Skill",skillNameLabel:"Skill name",skillDescLabel:"Description",skillVersionLabel:"Version",skillMarkdownLabel:"SKILL.md content (Markdown)",skillDescPlaceholder:'Briefly describe what this Skill does (prefer "Use when..." phrasing so the model can load it on demand)',skillDescScenePlaceholder:'Briefly describe the Skill functionality and applicable scenarios (prefer "Use when..." phrasing so the model can load it on demand)',skillNameExamplePlaceholder:"e.g. code-review or deploy-to-server",skillMarkdownPlaceholder:`# Skill name
36
36
 
37
37
  ## When to use
@@ -46,48 +46,48 @@ 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"}};function et(){if(typeof chrome>"u"||!chrome.i18n)return"zh";try{let e=chrome.i18n.getUILanguage();if(e&&e.startsWith("zh"))return"zh"}catch{}return"en"}var G="zh",V={zh:jt,en:Vt},Fe=new Set;function tt(e,t){if(!e||!t)return;let o=t.split("."),n=e;for(let a of o){if(typeof n!="object"||!n)return;n=n[a]}return typeof n=="string"?n:void 0}function ot(e,t){return!t||typeof e!="string"?e:e.replace(/\{(\w+)\}/g,(o,n)=>t[n]!==void 0&&t[n]!==null?String(t[n]):o)}function c(e,t){let o=tt(V[G],e);if(o!==void 0)return ot(o,t);if(G!=="en"){let n=tt(V.en,e);if(n!==void 0)return ot(n,t)}return e}function at(e){return typeof e=="function"&&Fe.add(e),()=>Fe.delete(e)}function A(e,t){V[e]||(V[e]={}),V[e]=it(V[e],t)}function it(e,t){for(let o of Object.keys(t||{}))t[o]&&typeof t[o]=="object"&&!Array.isArray(t[o])?((!e[o]||typeof e[o]!="object")&&(e[o]={}),it(e[o],t[o])):e[o]=t[o];return e}var nt=!1;async function rt(){if(typeof chrome>"u"||!chrome.storage||!chrome.storage.local)return G;try{let e=await chrome.storage.local.get("language");if(e.language&&V[e.language])G=e.language;else{let t=et();G=t,chrome.storage.local.set({language:t}).catch(()=>{})}}catch{G=et()}if(!nt){nt=!0;try{chrome.storage.onChanged.addListener((e,t)=>{if(t!=="local"||!e.language)return;let o=e.language.newValue;if(o&&V[o]&&o!==G){G=o;for(let n of Fe)try{n(o)}catch{}}})}catch{}}return G}A("zh",{pageInteraction:{refHint:"ref \u7F16\u53F7\u4EC5\u672C\u6B21\u67E5\u8BE2\u6709\u6548\uFF0C\u9875\u9762\u5BFC\u822A/\u5237\u65B0\u6216\u5207\u6362 tab \u540E\u9700\u91CD\u65B0 query_elements",snapshotHeader:"\u53EF\u4EA4\u4E92\u5143\u7D20\u5FEB\u7167\uFF1A{count} \u4E2A\u5143\u7D20",snapshotTruncated:"\uFF08\u5171 {total} \u4E2A\uFF0C\u5DF2\u622A\u65AD\uFF0C\u8BF7\u7528 filterByText \u7F29\u5C0F\u8303\u56F4\uFF09",snapshotPageInfo:"\uFF08\u7B2C {page}/{totalPages} \u9875\uFF0C\u672C\u6B21\u8F93\u51FA {count} \u4E2A\uFF09",snapshotHasMore:"\u8FD8\u6709\u66F4\u591A\u5143\u7D20\uFF1A\u8C03\u7528 query_elements \u65F6\u5E26 page={next} \u67E5\u770B",snapshotPageOutOfRange:"page={page} \u8D85\u51FA\u8303\u56F4\uFF08\u5171 {totalPages} \u9875\uFF09",snapshotOverlayBlock:"[\u6253\u5F00\u5C42]",snapshotBodyBlock:"[\u9875\u9762\u4E3B\u4F53]",snapshotFooter:"\uFF08ref \u7F16\u53F7\u4EC5\u5F53\u524D\u5FEB\u7167\u6709\u6548\uFF1B\u9875\u9762\u53D8\u5316\u540E\u8BF7\u91CD\u65B0\u8C03\u7528 query_elements\uFF09",snapshotHeaderFrames:"\uFF08\u542B {n} \u4E2A iframe\uFF09",snapshotFramesLimited:"\uFF08\u90E8\u5206 iframe \u8D85\u51FA\u6570\u91CF/\u6DF1\u5EA6\u4E0A\u9650\uFF0C\u672A\u5C55\u5F00\uFF09",snapshotFrameBlock:"[frame #{index}{title}{hostSeg}]",snapshotFramePlaceholder:"iframe #{index}{title}",snapshotFrameUnreachable:"\uFF08\u5185\u5BB9\u4E0D\u53EF\u8BBF\u95EE\uFF09"}}),A("en",{pageInteraction:{refHint:"ref numbers are only valid for the current query; re-run query_elements after page navigation/refresh or tab switch",snapshotHeader:"Interactive elements snapshot: {count} element(s)",snapshotTruncated:" (of {total} total; truncated \u2014 narrow down with filterByText)",snapshotPageInfo:" (page {page}/{totalPages}, {count} shown)",snapshotHasMore:"More elements available: call query_elements with page={next}",snapshotPageOutOfRange:"page={page} is out of range (only {totalPages} page(s))",snapshotOverlayBlock:"[Open overlays]",snapshotBodyBlock:"[Page body]",snapshotFooter:"(ref numbers are valid only for this snapshot; re-run query_elements after the page changes)",snapshotHeaderFrames:" ({n} iframe(s))",snapshotFramesLimited:" (some iframes exceed count/depth limits; not expanded)",snapshotFrameBlock:"[frame #{index}{title}{hostSeg}]",snapshotFramePlaceholder:"iframe #{index}{title}",snapshotFrameUnreachable:" (content inaccessible)"}});function Yt(e){if(!e)return"";if(e==="about:srcdoc")return"srcdoc";if(e==="about:blank")return"blank";try{return new URL(e).hostname||""}catch{return""}}function He(e,t){for(let o of e)o.t==="el"&&o.localRef!=null&&t.push(o),o.children&&o.children.length&&He(o.children,t)}function Xt(e,t,o){if(e.status==="hidden"||e.status==="off")return!1;let n=e.title?` "${e.title}"`:"",a;return a=e.status==="ok"&&e.frameIndex!=null?c("pageInteraction.snapshotFramePlaceholder",{index:e.frameIndex,title:n}):e.status==="unreachable"&&e.frameIndex!=null?c("pageInteraction.snapshotFramePlaceholder",{index:e.frameIndex,title:n})+c("pageInteraction.snapshotFrameUnreachable"):`iframe${n}`,a=" ".repeat(e.depth||0)+a,o.budget-=a.length+1,t.push(a),!0}function Be(e,t,o){if(!e)return!1;if(e.t==="frame")return Xt(e,t,o);let n=[],a=!1;for(let i of e.children||[])Be(i,n,o)&&(a=!0);if(e.t==="el"){if(e.localRef!=null&&o.selected.has(e)){if(o.budget<=0)return o.truncated=!0,a;let i=e.role||"",r=e.name||"",l=e.attrs||"",s=e.depth+i.length+(r?r.length+2:0)+(l?l.length+1:0)+12;if(o.budget-s<0)return o.truncated=!0,a;let d=`${" ".repeat(e.depth)}${i}${r?` "${r}"`:""} [ref ${e.localRef}]${l?" "+l:""}`;return o.budget-=d.length+1,o.count+=1,t.push(d,...n),!0}return a?(t.push(...n),!0):!1}if(e.t==="container"){if(a){let i=`${" ".repeat(e.depth)}${e.role}${e.name?` "${e.name}"`:""}`;return o.budget-=i.length+1,t.push(i,...n),!0}return!1}return a?(t.push(...n),!0):!1}function lt(e,t,o){let n=[];if((e.overlayTrees||[]).length){for(let a of e.overlayTrees)Be(a,n,o);n.length&&t.push(c("pageInteraction.snapshotOverlayBlock"),...n,c("pageInteraction.snapshotBodyBlock"))}for(let a of e.bodyTree||[])Be(a,t,o)}function st(e={}){let{frames:t=[],page:o=1,maxResults:n=100,maxChars:a=6e3,countOnly:i=!1,frameCount:r=0,framesLimited:l=0}=e||{},s=Number.isInteger(o)&&o>=1?o:1,d=Math.max(1,n),u=[];for(let C of t)He(C.overlayTrees||[],u),He(C.bodyTree||[],u);let p=u.length;if(i)return{success:!0,content:"",count:p,total:p,truncated:!1,hint:""};let m=Math.ceil(p/d),g=r>0?c("pageInteraction.snapshotHeaderFrames",{n:r}):"",h=l>0?c("pageInteraction.snapshotFramesLimited"):"";if(p>0&&s>m)return{success:!0,content:[c("pageInteraction.snapshotHeader",{count:p})+g+h,c("pageInteraction.snapshotPageOutOfRange",{page:s,totalPages:m}),c("pageInteraction.snapshotFooter")].join(`
50
- `),count:0,total:p,page:s,totalPages:m,hasMore:!1,truncated:!1,hint:""};let b=(s-1)*d,x=new Set(u.slice(b,b+d)),T=s<m,S={selected:x,budget:a,truncated:!1,count:0},I=[],B=t.find(C=>C.isTop)||t[0];B&&lt(B,I,S);for(let C of t.filter(W=>W!==B)){let W=[];if(lt(C,W,S),!W.length)continue;let se=" ".repeat(Math.max(0,(C.depth||1)-1)*2),ae=C.frameInfo&&C.frameInfo.title?` "${C.frameInfo.title}"`:"",j=Yt(C.frameInfo&&C.frameInfo.url);I.push(se+c("pageInteraction.snapshotFrameBlock",{index:C.frameIndex,title:ae,hostSeg:j?" \xB7 "+j:""}),...W.map(De=>se+" "+De))}let ne=m>1,z=c("pageInteraction.snapshotHeader",{count:ne?p:S.count})+g+h+(ne?c("pageInteraction.snapshotPageInfo",{page:s,totalPages:m,count:S.count}):"")+(S.truncated?c("pageInteraction.snapshotTruncated",{total:p}):"");return I.unshift(z),T&&I.push(c("pageInteraction.snapshotHasMore",{next:s+1})),I.push(c("pageInteraction.snapshotFooter")),{success:!0,content:I.join(`
51
- `),count:S.count,total:p,page:s,totalPages:m,hasMore:T,truncated:S.truncated,hint:T?c("pageInteraction.snapshotHasMore",{next:s+1}):c("pageInteraction.refHint")}}function P(e,t=document,o=5,n=0){if(n>o)return null;try{if(t.querySelectorAll)for(let i of t.querySelectorAll("*")){if(i.shadowRoot){let r=P(e,i.shadowRoot,o,n+1);if(r)return r}if(i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;if(r){let l=P(e,r,o,n+1);if(l)return l}}catch{}}let a=t.querySelector?.(e);if(a)return a}catch{}return null}function ee(e,t=document,o=5,n=0,a=new Set){if(n>o)return[];try{t.querySelectorAll&&(t.querySelectorAll(e).forEach(i=>{a.add(i)}),t.querySelectorAll("*").forEach(i=>{if(i.shadowRoot&&ee(e,i.shadowRoot,o,n+1,a),i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;r&&ee(e,r,o,n+1,a)}catch{}}))}catch{}return Array.from(a)}function Z(e=document,t=5,o=0){if(o>t)return{text:"",range:null};try{let n=e.getSelection?.();if(n&&!n.isCollapsed&&n.rangeCount>0){let a=n.toString().trim();if(a)return{text:a,range:n.getRangeAt(0),depth:o,source:"shadow"}}if(e.querySelectorAll){for(let a of e.querySelectorAll("*"))if(a.shadowRoot){let i=Z(a.shadowRoot,t,o+1);if(i.text)return i}}}catch{}return{text:"",range:null}}function Ae(e=document,t=5,o=0,n=new Set){if(o>t||n.has(e))return"";n.add(e);let a="";try{e.body?a+=e.body.innerText||"":e instanceof ShadowRoot&&(a+=e.textContent||""),e.querySelectorAll&&e.querySelectorAll("*").forEach(i=>{if(i.shadowRoot&&(a+=`
52
- `+Ae(i.shadowRoot,t,o+1,n)),i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;r&&r.body&&(a+=`
53
- `+Ae(r,t,o+1,n))}catch{}})}catch{}return a.trim().replace(/\n{3,}/g,`
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"}};function it(){if(typeof chrome>"u"||!chrome.i18n)return"zh";try{let e=chrome.i18n.getUILanguage();if(e&&e.startsWith("zh"))return"zh"}catch{}return"en"}var z="zh",V={zh:to,en:oo},Oe=new Set;function rt(e,t){if(!e||!t)return;let o=t.split("."),n=e;for(let a of o){if(typeof n!="object"||!n)return;n=n[a]}return typeof n=="string"?n:void 0}function lt(e,t){return!t||typeof e!="string"?e:e.replace(/\{(\w+)\}/g,(o,n)=>t[n]!==void 0&&t[n]!==null?String(t[n]):o)}function d(e,t){let o=rt(V[z],e);if(o!==void 0)return lt(o,t);if(z!=="en"){let n=rt(V.en,e);if(n!==void 0)return lt(n,t)}return e}function ct(e){return typeof e=="function"&&Oe.add(e),()=>Oe.delete(e)}function A(e,t){V[e]||(V[e]={}),V[e]=dt(V[e],t)}function dt(e,t){for(let o of Object.keys(t||{}))t[o]&&typeof t[o]=="object"&&!Array.isArray(t[o])?((!e[o]||typeof e[o]!="object")&&(e[o]={}),dt(e[o],t[o])):e[o]=t[o];return e}var st=!1;async function ut(){if(typeof chrome>"u"||!chrome.storage||!chrome.storage.local)return z;try{let e=await chrome.storage.local.get("language");if(e.language&&V[e.language])z=e.language;else{let t=it();z=t,chrome.storage.local.set({language:t}).catch(()=>{})}}catch{z=it()}if(!st){st=!0;try{chrome.storage.onChanged.addListener((e,t)=>{if(t!=="local"||!e.language)return;let o=e.language.newValue;if(o&&V[o]&&o!==z){z=o;for(let n of Oe)try{n(o)}catch{}}})}catch{}}return z}A("zh",{pageInteraction:{refHint:"ref \u7F16\u53F7\u4EC5\u672C\u6B21\u67E5\u8BE2\u6709\u6548\uFF0C\u9875\u9762\u5BFC\u822A/\u5237\u65B0\u6216\u5207\u6362 tab \u540E\u9700\u91CD\u65B0 query_elements",snapshotHeader:"\u53EF\u4EA4\u4E92\u5143\u7D20\u5FEB\u7167\uFF1A{count} \u4E2A\u5143\u7D20",snapshotTruncated:"\uFF08\u5171 {total} \u4E2A\uFF0C\u5DF2\u622A\u65AD\uFF0C\u8BF7\u7528 filterByText \u7F29\u5C0F\u8303\u56F4\uFF09",snapshotPageInfo:"\uFF08\u7B2C {page}/{totalPages} \u9875\uFF0C\u672C\u6B21\u8F93\u51FA {count} \u4E2A\uFF09",snapshotHasMore:"\u8FD8\u6709\u66F4\u591A\u5143\u7D20\uFF1A\u8C03\u7528 query_elements \u65F6\u5E26 page={next} \u67E5\u770B",snapshotPageOutOfRange:"page={page} \u8D85\u51FA\u8303\u56F4\uFF08\u5171 {totalPages} \u9875\uFF09",snapshotOverlayBlock:"[\u6253\u5F00\u5C42]",snapshotBodyBlock:"[\u9875\u9762\u4E3B\u4F53]",snapshotFooter:"\uFF08ref \u7F16\u53F7\u4EC5\u5F53\u524D\u5FEB\u7167\u6709\u6548\uFF1B\u9875\u9762\u53D8\u5316\u540E\u8BF7\u91CD\u65B0\u8C03\u7528 query_elements\uFF09",snapshotHeaderFrames:"\uFF08\u542B {n} \u4E2A iframe\uFF09",snapshotFramesLimited:"\uFF08\u90E8\u5206 iframe \u8D85\u51FA\u6570\u91CF/\u6DF1\u5EA6\u4E0A\u9650\uFF0C\u672A\u5C55\u5F00\uFF09",snapshotFrameBlock:"[frame #{index}{title}{hostSeg}]",snapshotFramePlaceholder:"iframe #{index}{title}",snapshotFrameUnreachable:"\uFF08\u5185\u5BB9\u4E0D\u53EF\u8BBF\u95EE\uFF09"}}),A("en",{pageInteraction:{refHint:"ref numbers are only valid for the current query; re-run query_elements after page navigation/refresh or tab switch",snapshotHeader:"Interactive elements snapshot: {count} element(s)",snapshotTruncated:" (of {total} total; truncated \u2014 narrow down with filterByText)",snapshotPageInfo:" (page {page}/{totalPages}, {count} shown)",snapshotHasMore:"More elements available: call query_elements with page={next}",snapshotPageOutOfRange:"page={page} is out of range (only {totalPages} page(s))",snapshotOverlayBlock:"[Open overlays]",snapshotBodyBlock:"[Page body]",snapshotFooter:"(ref numbers are valid only for this snapshot; re-run query_elements after the page changes)",snapshotHeaderFrames:" ({n} iframe(s))",snapshotFramesLimited:" (some iframes exceed count/depth limits; not expanded)",snapshotFrameBlock:"[frame #{index}{title}{hostSeg}]",snapshotFramePlaceholder:"iframe #{index}{title}",snapshotFrameUnreachable:" (content inaccessible)"}});function no(e){if(!e)return"";if(e==="about:srcdoc")return"srcdoc";if(e==="about:blank")return"blank";try{return new URL(e).hostname||""}catch{return""}}function Be(e,t){for(let o of e)o.t==="el"&&o.localRef!=null&&t.push(o),o.children&&o.children.length&&Be(o.children,t)}function ao(e,t,o){if(e.status==="hidden"||e.status==="off")return!1;let n=e.title?` "${e.title}"`:"",a;return a=e.status==="ok"&&e.frameIndex!=null?d("pageInteraction.snapshotFramePlaceholder",{index:e.frameIndex,title:n}):e.status==="unreachable"&&e.frameIndex!=null?d("pageInteraction.snapshotFramePlaceholder",{index:e.frameIndex,title:n})+d("pageInteraction.snapshotFrameUnreachable"):`iframe${n}`,a=" ".repeat(e.depth||0)+a,o.budget-=a.length+1,t.push(a),!0}function _e(e,t,o){if(!e)return!1;if(e.t==="frame")return ao(e,t,o);let n=[],a=!1;for(let i of e.children||[])_e(i,n,o)&&(a=!0);if(e.t==="el"){if(e.localRef!=null&&o.selected.has(e)){if(o.budget<=0)return o.truncated=!0,a;let i=e.role||"",r=e.name||"",l=e.attrs||"",s=e.depth+i.length+(r?r.length+2:0)+(l?l.length+1:0)+12;if(o.budget-s<0)return o.truncated=!0,a;let c=`${" ".repeat(e.depth)}${i}${r?` "${r}"`:""} [ref ${e.localRef}]${l?" "+l:""}`;return o.budget-=c.length+1,o.count+=1,t.push(c,...n),!0}return a?(t.push(...n),!0):!1}if(e.t==="container"){if(a){let i=`${" ".repeat(e.depth)}${e.role}${e.name?` "${e.name}"`:""}`;return o.budget-=i.length+1,t.push(i,...n),!0}return!1}return a?(t.push(...n),!0):!1}function pt(e,t,o){let n=[];if((e.overlayTrees||[]).length){for(let a of e.overlayTrees)_e(a,n,o);n.length&&t.push(d("pageInteraction.snapshotOverlayBlock"),...n,d("pageInteraction.snapshotBodyBlock"))}for(let a of e.bodyTree||[])_e(a,t,o)}function mt(e={}){let{frames:t=[],page:o=1,maxResults:n=100,maxChars:a=6e3,countOnly:i=!1,frameCount:r=0,framesLimited:l=0}=e||{},s=Number.isInteger(o)&&o>=1?o:1,c=Math.max(1,n),u=[];for(let C of t)Be(C.overlayTrees||[],u),Be(C.bodyTree||[],u);let p=u.length;if(i)return{success:!0,content:"",count:p,total:p,truncated:!1,hint:""};let m=Math.ceil(p/c),h=r>0?d("pageInteraction.snapshotHeaderFrames",{n:r}):"",g=l>0?d("pageInteraction.snapshotFramesLimited"):"";if(p>0&&s>m)return{success:!0,content:[d("pageInteraction.snapshotHeader",{count:p})+h+g,d("pageInteraction.snapshotPageOutOfRange",{page:s,totalPages:m}),d("pageInteraction.snapshotFooter")].join(`
50
+ `),count:0,total:p,page:s,totalPages:m,hasMore:!1,truncated:!1,hint:""};let b=(s-1)*c,x=new Set(u.slice(b,b+c)),v=s<m,S={selected:x,budget:a,truncated:!1,count:0},I=[],O=t.find(C=>C.isTop)||t[0];O&&pt(O,I,S);for(let C of t.filter(W=>W!==O)){let W=[];if(pt(C,W,S),!W.length)continue;let ce=" ".repeat(Math.max(0,(C.depth||1)-1)*2),ae=C.frameInfo&&C.frameInfo.title?` "${C.frameInfo.title}"`:"",j=no(C.frameInfo&&C.frameInfo.url);I.push(ce+d("pageInteraction.snapshotFrameBlock",{index:C.frameIndex,title:ae,hostSeg:j?" \xB7 "+j:""}),...W.map(He=>ce+" "+He))}let ne=m>1,G=d("pageInteraction.snapshotHeader",{count:ne?p:S.count})+h+g+(ne?d("pageInteraction.snapshotPageInfo",{page:s,totalPages:m,count:S.count}):"")+(S.truncated?d("pageInteraction.snapshotTruncated",{total:p}):"");return I.unshift(G),v&&I.push(d("pageInteraction.snapshotHasMore",{next:s+1})),I.push(d("pageInteraction.snapshotFooter")),{success:!0,content:I.join(`
51
+ `),count:S.count,total:p,page:s,totalPages:m,hasMore:v,truncated:S.truncated,hint:v?d("pageInteraction.snapshotHasMore",{next:s+1}):d("pageInteraction.refHint")}}function P(e,t=document,o=5,n=0){if(n>o)return null;try{if(t.querySelectorAll)for(let i of t.querySelectorAll("*")){if(i.shadowRoot){let r=P(e,i.shadowRoot,o,n+1);if(r)return r}if(i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;if(r){let l=P(e,r,o,n+1);if(l)return l}}catch{}}let a=t.querySelector?.(e);if(a)return a}catch{}return null}function ee(e,t=document,o=5,n=0,a=new Set){if(n>o)return[];try{t.querySelectorAll&&(t.querySelectorAll(e).forEach(i=>{a.add(i)}),t.querySelectorAll("*").forEach(i=>{if(i.shadowRoot&&ee(e,i.shadowRoot,o,n+1,a),i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;r&&ee(e,r,o,n+1,a)}catch{}}))}catch{}return Array.from(a)}function Z(e=document,t=5,o=0){if(o>t)return{text:"",range:null};try{let n=e.getSelection?.();if(n&&!n.isCollapsed&&n.rangeCount>0){let a=n.toString().trim();if(a)return{text:a,range:n.getRangeAt(0),depth:o,source:"shadow"}}if(e.querySelectorAll){for(let a of e.querySelectorAll("*"))if(a.shadowRoot){let i=Z(a.shadowRoot,t,o+1);if(i.text)return i}}}catch{}return{text:"",range:null}}function be(e=document,t=5,o=0,n=new Set){if(o>t||n.has(e))return"";n.add(e);let a="";try{e.body?a+=e.body.innerText||"":e instanceof ShadowRoot&&(a+=e.textContent||""),e.querySelectorAll&&e.querySelectorAll("*").forEach(i=>{if(i.shadowRoot&&(a+=`
52
+ `+be(i.shadowRoot,t,o+1,n)),i.tagName==="IFRAME"||i.tagName==="FRAME")try{let r=i.contentDocument||i.contentWindow?.document;r&&r.body&&(a+=`
53
+ `+be(r,t,o+1,n))}catch{}})}catch{}return a.trim().replace(/\n{3,}/g,`
54
54
 
55
- `)}function Ee(e=document,t=5,o=0,n=new Set){if(o>t||n.has(e))return"";n.add(e);let a="";try{e.documentElement?a=e.documentElement.outerHTML:e instanceof ShadowRoot&&(a=e.innerHTML||"");let i=[];e.querySelectorAll&&e.querySelectorAll("*").forEach(r=>{if(r.shadowRoot){let l=Ee(r.shadowRoot,t,o+1,n);l&&i.push(`<!-- shadow-root of ${r.tagName} -->
56
- ${l}`)}if(r.tagName==="IFRAME"||r.tagName==="FRAME")try{let l=r.contentDocument||r.contentWindow?.document;if(l&&l.documentElement){let s=Ee(l,t,o+1,n);s&&i.push(`<!-- iframe content -->
55
+ `)}function Ie(e=document,t=5,o=0,n=new Set){if(o>t||n.has(e))return"";n.add(e);let a="";try{e.documentElement?a=e.documentElement.outerHTML:e instanceof ShadowRoot&&(a=e.innerHTML||"");let i=[];e.querySelectorAll&&e.querySelectorAll("*").forEach(r=>{if(r.shadowRoot){let l=Ie(r.shadowRoot,t,o+1,n);l&&i.push(`<!-- shadow-root of ${r.tagName} -->
56
+ ${l}`)}if(r.tagName==="IFRAME"||r.tagName==="FRAME")try{let l=r.contentDocument||r.contentWindow?.document;if(l&&l.documentElement){let s=Ie(l,t,o+1,n);s&&i.push(`<!-- iframe content -->
57
57
  ${s}`)}}catch{}}),i.length>0&&(a+=`
58
58
  <!-- Shadow DOM and iframe content -->
59
59
  `+i.join(`
60
- `))}catch{}return a}function fe(e){if(!e)return{x:window.innerWidth/2,y:window.innerHeight/2};let t;try{t=e.getBoundingClientRect()}catch{t={left:0,top:0,width:0,height:0}}if(!t||t.width===0&&t.height===0){let a=e.commonAncestorContainer;if(a){let i=a.nodeType===Node.TEXT_NODE?a.parentElement:a;i&&i.getBoundingClientRect&&(t=i.getBoundingClientRect())}}let o=t.left+t.width/2,n=t.top;if(window.top!==window){let a=e.startContainer.ownerDocument;for(;a&&a!==window.top.document;){let i=a.defaultView?.frameElement;if(!i)break;let r=i.getBoundingClientRect();o+=r.left,n+=r.top,a=i.ownerDocument}}return{x:o,y:n}}function Ke(e,t=document,o=5,n=0,a=new Set){if(n>o||a.has(t))return a;try{let i=()=>e();t.addEventListener?.("selectionchange",i),a.add({root:t,listener:i}),t.querySelectorAll&&t.querySelectorAll("*").forEach(r=>{r.shadowRoot&&Ke(e,r.shadowRoot,o,n+1,a)})}catch{}return a}function Qt(e){for(let{root:t,listener:o}of e)try{t.removeEventListener?.("selectionchange",o)}catch{}e.clear()}function be(e){if(e.id)return`#${e.id}`;let t=[],o=e;for(;o&&o!==document.body&&o!==document.documentElement;){let n=o.tagName.toLowerCase();if(o.id){n=`#${o.id}`,t.unshift(n);break}if(o.className&&typeof o.className=="string"){let i=o.className.trim().split(/\s+/).filter(r=>r);i.length>0&&(n+="."+i[0])}let a=o.parentElement;if(a){let i=Array.from(a.children).filter(r=>r.tagName===o.tagName);if(i.length>1){let r=i.indexOf(o)+1;n+=`:nth-child(${r})`}}t.unshift(n),o=a}return t.join(" > ")}function ue(e){if(e.id)return`#${e.id}`;let t=e.tagName.toLowerCase();if(e.className){let o=e.className.split(" ").filter(n=>n).slice(0,2);o.length&&(t+="."+o.join("."))}return t}function $e(){document.querySelectorAll(".ai-helper-highlight").forEach(t=>{let o=t.parentNode;if(o&&o.insertBefore&&o.removeChild){for(;t.firstChild;)o.insertBefore(t.firstChild,t);o.removeChild(t),typeof o.normalize=="function"&&o.normalize()}});let e=document.getElementById("ai-helper-highlight-style");e&&e.remove()}function X(){let e=document.body,t=document.querySelectorAll('button, input, a[href], dialog, [role="dialog"], [role="alert"]').length;return`${location.href}|${e?e.childElementCount:0}|${t}`}async function Q(e,t=300,o=2e3){let n=Date.now();await new Promise(u=>setTimeout(u,Math.min(t,o)));let a=e.split("|")[0],i=location.href!==a,r=!1,l=e,s=0;for(;Date.now()-n<o;){let u=X();if(u===l?s++:(r=!0,s=0,l=u),s>=2)break;await new Promise(p=>setTimeout(p,100))}i=location.href!==a;let d={changed:i||r,urlChanged:i,domChanged:r,waitedMs:Date.now()-n};return i&&(d.newUrl=location.href),d}function Tt(e){return e.isContentEditable||e.getAttribute("contenteditable")==="true"}function Ie(e,t){let o=e.tagName==="TEXTAREA"?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(o,"value");n&&n.set?n.set.call(e,t):e.value=t}function Re(e,t){try{return e.focus(),document.execCommand("insertText",!1,t)||(e.textContent=t),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})),!0}catch{try{return e.textContent=t,e.dispatchEvent(new Event("input",{bubbles:!0})),!0}catch{return!1}}}A("zh",{pageExtract:{startedDownloadingImages:"\u5DF2\u5F00\u59CB\u4E0B\u8F7D {count} \u5F20\u56FE\u7247",targetElementNotFound:"\u672A\u627E\u5230\u76EE\u6807\u5143\u7D20",elementNotFound:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u5143\u7D20: {selector}",searchKeywordRequired:"\u9700\u8981\u63D0\u4F9B\u641C\u7D22\u5173\u952E\u8BCD",contentTruncated:"\u5185\u5BB9\u5DF2\u622A\u65AD"}}),A("en",{pageExtract:{startedDownloadingImages:"Started downloading {count} images",targetElementNotFound:"Target element not found",elementNotFound:"No element found matching selector: {selector}",searchKeywordRequired:"Search keyword is required",contentTruncated:"Content truncated"}});function Zt(){try{let e=a=>{let i=document.querySelector(`meta[name="${a}"]`)||document.querySelector(`meta[property="${a}"]`)||document.querySelector(`meta[property="og:${a}"]`);return i?i.content:null},t=a=>{let i=document.querySelectorAll(`meta[name="${a}"], meta[property="${a}"], meta[property="og:${a}"]`);return Array.from(i).map(r=>r.content).filter(Boolean)},o=[];document.querySelectorAll('script[type="application/ld+json"]').forEach(a=>{try{let i=JSON.parse(a.textContent);Array.isArray(i)?o.push(...i):i&&i["@graph"]&&Array.isArray(i["@graph"])?o.push(...i["@graph"]):i&&o.push(i)}catch{}});let n=[];return document.querySelectorAll("[itemscope]").forEach(a=>{let i=a.getAttribute("itemtype")||"";if(!i)return;let r={};a.querySelectorAll("[itemprop]").forEach(l=>{if(l.closest("[itemscope]")!==a)return;let s=l.getAttribute("itemprop")||"";if(!s)return;let d=l.getAttribute("content")||l.getAttribute("href")||l.getAttribute("src")||l.textContent?.trim();d&&(r[s]?r[s]=Array.isArray(r[s])?[...r[s],d]:[r[s],d]:r[s]=d)}),n.push({itemType:i,properties:r})}),{success:!0,data:{title:document.title,description:e("description"),keywords:e("keywords"),author:e("author"),ogTitle:e("og:title"),ogDescription:e("og:description"),ogImage:e("og:image"),ogUrl:e("og:url"),ogType:e("og:type"),ogSiteName:e("og:site_name"),ogLocale:e("og:locale"),articlePublishedTime:e("article:published_time"),articleModifiedTime:e("article:modified_time"),articleAuthor:e("article:author"),twitterCard:e("twitter:card"),twitterTitle:e("twitter:title"),twitterDescription:e("twitter:description"),twitterImage:e("twitter:image"),twitterSite:e("twitter:site"),twitterCreator:e("twitter:creator"),canonicalUrl:document.querySelector('link[rel="canonical"]')?.href,links:t("citation_author"),jsonLd:o.length>0?o:void 0,microdata:n.length>0?n:void 0}}}catch(e){return{success:!1,error:e.message}}}function Jt(e="all",t=!1){try{let o=window.location.hostname,n=[];return document.querySelectorAll("a[href]").forEach(a=>{try{let i=a.href;if(!i||i.startsWith("javascript:")||i.startsWith("#"))return;let r=new URL(i),l=r.hostname!==o;if(e==="internal"&&l||e==="external"&&!l)return;n.push({href:i,text:a.textContent.trim(),title:a.title,domain:r.hostname,isExternal:l,target:a.target})}catch{}}),t&&document.querySelectorAll("img[src]").forEach(a=>{try{let i=a.src;if(!i)return;let r=new URL(i),l=r.hostname!==o;if(e==="internal"&&l||e==="external"&&!l)return;n.push({href:i,text:a.alt||"",title:a.title,domain:r.hostname,isExternal:l,type:"image"})}catch{}}),{success:!0,total:n.length,links:n}}catch(o){return{success:!1,error:o.message}}}function eo(e=null){try{let t=(e?[document.querySelector(e)].filter(Boolean):Array.from(document.querySelectorAll("form"))).map((o,n)=>{let a=[],i=o.id||`form-${n}`;return o.querySelectorAll("input").forEach(r=>{a.push({tag:"input",name:r.name,id:r.id,type:r.type,placeholder:r.placeholder,required:r.required,selector:ue(r)})}),o.querySelectorAll("textarea").forEach(r=>{a.push({tag:"textarea",name:r.name,id:r.id,placeholder:r.placeholder,required:r.required,selector:ue(r)})}),o.querySelectorAll("select").forEach(r=>{let l=Array.from(r.options).map(s=>({value:s.value,text:s.textContent.trim()}));a.push({tag:"select",name:r.name,id:r.id,required:r.required,options:l,selector:ue(r)})}),{formId:i,action:o.action,method:o.method,fields:a}});return{success:!0,total:t.length,forms:t}}catch(t){return{success:!1,error:t.message}}}function to(e={}){try{let{minWidth:t=0,minHeight:o=0,includeBackgroundImages:n=!1,download:a=!1,maxResults:i=100}=e,r=[],l=new Set;return document.querySelectorAll("img[src]").forEach(s=>{try{let d=s.src;if(!d||l.has(d))return;let u=s.naturalWidth||s.width||0,p=s.naturalHeight||s.height||0;u>=t&&p>=o&&(l.add(d),r.push({src:d,alt:s.alt||"",title:s.title||"",width:u,height:p,selector:ue(s)}))}catch{}}),n&&document.querySelectorAll("*").forEach(s=>{try{let d=window.getComputedStyle(s).backgroundImage;if(!d||d==="none"||d.startsWith("gradient"))return;let u=d.match(/url\(['"]?([^'")]+)['"]?\)/);if(u&&u[1]){let p=u[1];l.has(p)||(l.add(p),r.push({src:p,alt:"",title:"",width:0,height:0,type:"background",selector:ue(s)}))}}catch{}}),a&&r.length>0&&r.slice(0,Math.min(i,10)).forEach((s,d)=>{setTimeout(()=>{let u=document.createElement("a");u.href=s.src,u.download=`image_${d+1}.png`,document.body.appendChild(u),u.click(),document.body.removeChild(u)},d*500)}),{success:!0,total:r.length,images:r.slice(0,i),message:a?c("pageExtract.startedDownloadingImages",{count:Math.min(r.length,10)}):""}}catch(t){return{success:!1,error:t.message}}}function oo(e="iframe",t=!1,o=1e4){try{let n=document.querySelectorAll(e),a=[],i=(r,l=1,s="")=>{try{let d=be(r),u=s?`${s} > iframe`:d,p=r.src||"about:blank",m=!1,g="",h="",b=0;try{let x=r.contentDocument||r.contentWindow?.document;x&&(m=!0,g=x.title||"",h=Ae(x).substring(0,o),b=Ee(x).length,t&&l<2&&x.querySelectorAll("iframe").forEach(T=>{i(T,l+1,u)}))}catch{m=!1}a.push({selector:u,url:p,accessible:m,title:g,textContent:h,htmlLength:b})}catch{}};return n.forEach(r=>i(r)),{success:!0,iframes:a,total:a.length,accessible:a.filter(r=>r.accessible).length}}catch(n){return{success:!1,error:n.message}}}function no(e={}){try{let{query:t,pattern:o,mode:n="plain",caseSensitive:a=!1,contextLength:i=50,maxResults:r=20,highlight:l=!1}=e,s=t||o;if(!s)return{success:!1,error:c("pageExtract.searchKeywordRequired")};if(n==="plain"){let h=window.find(s,a,!1,!0,!1,!0,!1),b=0,x=[];try{let T=window.getSelection(),S=T&&T.rangeCount>0?T.getRangeAt(0):null,I=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,!1),B=a?"g":"gi",ne=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),z=new RegExp(ne,B),C=document.body.innerText,W=0;for(;I.nextNode();){let se=I.currentNode.textContent.match(z);if(se)for(let ae of se){if(x.length>=r)break;let j=C.indexOf(ae,W),De=Math.max(0,j-i),qt=Math.min(C.length,j+ae.length+i);x.push({match:ae,position:j,context:C.substring(De,qt),lineNumber:C.substring(0,j).split(`
61
- `).length}),b++,W=j+ae.length}if(x.length>=r)break}S&&(T.removeAllRanges(),T.addRange(S))}catch{b=+!!h}if(l&&b>0){$e();let T=document.createElement("style");T.id="ai-helper-highlight-style",T.textContent=`
60
+ `))}catch{}return a}function ye(e){if(!e)return{x:window.innerWidth/2,y:window.innerHeight/2};let t;try{t=e.getBoundingClientRect()}catch{t={left:0,top:0,width:0,height:0}}if(!t||t.width===0&&t.height===0){let a=e.commonAncestorContainer;if(a){let i=a.nodeType===Node.TEXT_NODE?a.parentElement:a;i&&i.getBoundingClientRect&&(t=i.getBoundingClientRect())}}let o=t.left+t.width/2,n=t.top;if(window.top!==window){let a=e.startContainer.ownerDocument;for(;a&&a!==window.top.document;){let i=a.defaultView?.frameElement;if(!i)break;let r=i.getBoundingClientRect();o+=r.left,n+=r.top,a=i.ownerDocument}}return{x:o,y:n}}function Ge(e,t=document,o=5,n=0,a=new Set){if(n>o||a.has(t))return a;try{let i=()=>e();t.addEventListener?.("selectionchange",i),a.add({root:t,listener:i}),t.querySelectorAll&&t.querySelectorAll("*").forEach(r=>{r.shadowRoot&&Ge(e,r.shadowRoot,o,n+1,a)})}catch{}return a}function io(e){for(let{root:t,listener:o}of e)try{t.removeEventListener?.("selectionchange",o)}catch{}e.clear()}function we(e){if(e.id)return`#${e.id}`;let t=[],o=e;for(;o&&o!==document.body&&o!==document.documentElement;){let n=o.tagName.toLowerCase();if(o.id){n=`#${o.id}`,t.unshift(n);break}if(o.className&&typeof o.className=="string"){let i=o.className.trim().split(/\s+/).filter(r=>r);i.length>0&&(n+="."+i[0])}let a=o.parentElement;if(a){let i=Array.from(a.children).filter(r=>r.tagName===o.tagName);if(i.length>1){let r=i.indexOf(o)+1;n+=`:nth-child(${r})`}}t.unshift(n),o=a}return t.join(" > ")}function pe(e){if(e.id)return`#${e.id}`;let t=e.tagName.toLowerCase();if(e.className){let o=e.className.split(" ").filter(n=>n).slice(0,2);o.length&&(t+="."+o.join("."))}return t}function ht(e,t,o=20){if(!e||!t)return 0;let n=t.global?t:new RegExp(t.source,t.flags+"g"),a=[],i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=0,l;for(;(l=i.nextNode())&&r<o;){let c=l.parentNode;if(!c||c.nodeType!==1)continue;let u=c.tagName;if(u==="SCRIPT"||u==="STYLE"||u==="TITLE"||u==="TEXTAREA")continue;let p=l.nodeValue;if(!p)continue;let m=[],h;for(n.lastIndex=0;(h=n.exec(p))!==null&&r+m.length<o;){if(h[0].length===0){n.lastIndex++;continue}m.push({start:h.index,end:h.index+h[0].length}),h.index===n.lastIndex&&n.lastIndex++}m.length>0&&(a.push({node:l,spans:m}),r+=m.length)}let s=0;for(let{node:c,spans:u}of a)for(let p=u.length-1;p>=0;p--){let{start:m,end:h}=u[p];try{let g=document.createRange();g.setStart(c,m),g.setEnd(c,h);let b=document.createElement("span");b.className="ai-helper-search-highlight",g.surroundContents(b),s++}catch{}}return s}function We(){document.querySelectorAll(".ai-helper-highlight, .ai-helper-search-highlight").forEach(t=>{let o=t.parentNode;if(o&&o.insertBefore&&o.removeChild){for(;t.firstChild;)o.insertBefore(t.firstChild,t);o.removeChild(t),typeof o.normalize=="function"&&o.normalize()}});let e=document.getElementById("ai-helper-highlight-style");e&&e.remove()}function Y(){let e=document.body,t=document.querySelectorAll('button, input, a[href], dialog, [role="dialog"], [role="alert"]').length;return`${location.href}|${e?e.childElementCount:0}|${t}`}async function X(e,t=300,o=2e3){let n=Date.now();await new Promise(u=>setTimeout(u,Math.min(t,o)));let a=e.split("|")[0],i=location.href!==a,r=!1,l=e,s=0;for(;Date.now()-n<o;){let u=Y();if(u===l?s++:(r=!0,s=0,l=u),s>=2)break;await new Promise(p=>setTimeout(p,100))}i=location.href!==a;let c={changed:i||r,urlChanged:i,domChanged:r,waitedMs:Date.now()-n};return i&&(c.newUrl=location.href),c}function It(e){return e.isContentEditable||e.getAttribute("contenteditable")==="true"}function Pe(e,t){let o=e.tagName==="TEXTAREA"?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(o,"value");n&&n.set?n.set.call(e,t):e.value=t}function Re(e,t){try{return e.focus(),document.execCommand("insertText",!1,t)||(e.textContent=t),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})),!0}catch{try{return e.textContent=t,e.dispatchEvent(new Event("input",{bubbles:!0})),!0}catch{return!1}}}A("zh",{pageExtract:{startedDownloadingImages:"\u5DF2\u5F00\u59CB\u4E0B\u8F7D {count} \u5F20\u56FE\u7247",targetElementNotFound:"\u672A\u627E\u5230\u76EE\u6807\u5143\u7D20",elementNotFound:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u5143\u7D20: {selector}",searchKeywordRequired:"\u9700\u8981\u63D0\u4F9B\u641C\u7D22\u5173\u952E\u8BCD",contentTruncated:"\u5185\u5BB9\u5DF2\u622A\u65AD"}}),A("en",{pageExtract:{startedDownloadingImages:"Started downloading {count} images",targetElementNotFound:"Target element not found",elementNotFound:"No element found matching selector: {selector}",searchKeywordRequired:"Search keyword is required",contentTruncated:"Content truncated"}});function ro(){try{let e=a=>{let i=document.querySelector(`meta[name="${a}"]`)||document.querySelector(`meta[property="${a}"]`)||document.querySelector(`meta[property="og:${a}"]`);return i?i.content:null},t=a=>{let i=document.querySelectorAll(`meta[name="${a}"], meta[property="${a}"], meta[property="og:${a}"]`);return Array.from(i).map(r=>r.content).filter(Boolean)},o=[];document.querySelectorAll('script[type="application/ld+json"]').forEach(a=>{try{let i=JSON.parse(a.textContent);Array.isArray(i)?o.push(...i):i&&i["@graph"]&&Array.isArray(i["@graph"])?o.push(...i["@graph"]):i&&o.push(i)}catch{}});let n=[];return document.querySelectorAll("[itemscope]").forEach(a=>{let i=a.getAttribute("itemtype")||"";if(!i)return;let r={};a.querySelectorAll("[itemprop]").forEach(l=>{if(l.closest("[itemscope]")!==a)return;let s=l.getAttribute("itemprop")||"";if(!s)return;let c=l.getAttribute("content")||l.getAttribute("href")||l.getAttribute("src")||l.textContent?.trim();c&&(r[s]?r[s]=Array.isArray(r[s])?[...r[s],c]:[r[s],c]:r[s]=c)}),n.push({itemType:i,properties:r})}),{success:!0,data:{title:document.title,description:e("description"),keywords:e("keywords"),author:e("author"),ogTitle:e("og:title"),ogDescription:e("og:description"),ogImage:e("og:image"),ogUrl:e("og:url"),ogType:e("og:type"),ogSiteName:e("og:site_name"),ogLocale:e("og:locale"),articlePublishedTime:e("article:published_time"),articleModifiedTime:e("article:modified_time"),articleAuthor:e("article:author"),twitterCard:e("twitter:card"),twitterTitle:e("twitter:title"),twitterDescription:e("twitter:description"),twitterImage:e("twitter:image"),twitterSite:e("twitter:site"),twitterCreator:e("twitter:creator"),canonicalUrl:document.querySelector('link[rel="canonical"]')?.href,links:t("citation_author"),jsonLd:o.length>0?o:void 0,microdata:n.length>0?n:void 0}}}catch(e){return{success:!1,error:e.message}}}function lo(e="all",t=!1){try{let o=window.location.hostname,n=[];return document.querySelectorAll("a[href]").forEach(a=>{try{let i=a.href;if(!i||i.startsWith("javascript:")||i.startsWith("#"))return;let r=new URL(i),l=r.hostname!==o;if(e==="internal"&&l||e==="external"&&!l)return;n.push({href:i,text:a.textContent.trim(),title:a.title,domain:r.hostname,isExternal:l,target:a.target})}catch{}}),t&&document.querySelectorAll("img[src]").forEach(a=>{try{let i=a.src;if(!i)return;let r=new URL(i),l=r.hostname!==o;if(e==="internal"&&l||e==="external"&&!l)return;n.push({href:i,text:a.alt||"",title:a.title,domain:r.hostname,isExternal:l,type:"image"})}catch{}}),{success:!0,total:n.length,links:n}}catch(o){return{success:!1,error:o.message}}}function so(e=null){try{let t=(e?[document.querySelector(e)].filter(Boolean):Array.from(document.querySelectorAll("form"))).map((o,n)=>{let a=[],i=o.id||`form-${n}`;return o.querySelectorAll("input").forEach(r=>{a.push({tag:"input",name:r.name,id:r.id,type:r.type,placeholder:r.placeholder,required:r.required,selector:pe(r)})}),o.querySelectorAll("textarea").forEach(r=>{a.push({tag:"textarea",name:r.name,id:r.id,placeholder:r.placeholder,required:r.required,selector:pe(r)})}),o.querySelectorAll("select").forEach(r=>{let l=Array.from(r.options).map(s=>({value:s.value,text:s.textContent.trim()}));a.push({tag:"select",name:r.name,id:r.id,required:r.required,options:l,selector:pe(r)})}),{formId:i,action:o.action,method:o.method,fields:a}});return{success:!0,total:t.length,forms:t}}catch(t){return{success:!1,error:t.message}}}function co(e={}){try{let{minWidth:t=0,minHeight:o=0,includeBackgroundImages:n=!1,download:a=!1,maxResults:i=100}=e,r=[],l=new Set;return document.querySelectorAll("img[src]").forEach(s=>{try{let c=s.src;if(!c||l.has(c))return;let u=s.naturalWidth||s.width||0,p=s.naturalHeight||s.height||0;u>=t&&p>=o&&(l.add(c),r.push({src:c,alt:s.alt||"",title:s.title||"",width:u,height:p,selector:pe(s)}))}catch{}}),n&&document.querySelectorAll("*").forEach(s=>{try{let c=window.getComputedStyle(s).backgroundImage;if(!c||c==="none"||c.startsWith("gradient"))return;let u=c.match(/url\(['"]?([^'")]+)['"]?\)/);if(u&&u[1]){let p=u[1];l.has(p)||(l.add(p),r.push({src:p,alt:"",title:"",width:0,height:0,type:"background",selector:pe(s)}))}}catch{}}),a&&r.length>0&&r.slice(0,Math.min(i,10)).forEach((s,c)=>{setTimeout(()=>{let u=document.createElement("a");u.href=s.src,u.download=`image_${c+1}.png`,document.body.appendChild(u),u.click(),document.body.removeChild(u)},c*500)}),{success:!0,total:r.length,images:r.slice(0,i),message:a?d("pageExtract.startedDownloadingImages",{count:Math.min(r.length,10)}):""}}catch(t){return{success:!1,error:t.message}}}function uo(e="iframe",t=!1,o=1e4){try{let n=document.querySelectorAll(e),a=[],i=(r,l=1,s="")=>{try{let c=we(r),u=s?`${s} > iframe`:c,p=r.src||"about:blank",m=!1,h="",g="",b=0;try{let x=r.contentDocument||r.contentWindow?.document;x&&(m=!0,h=x.title||"",g=be(x).substring(0,o),b=Ie(x).length,t&&l<2&&x.querySelectorAll("iframe").forEach(v=>{i(v,l+1,u)}))}catch{m=!1}a.push({selector:u,url:p,accessible:m,title:h,textContent:g,htmlLength:b})}catch{}};return n.forEach(r=>i(r)),{success:!0,iframes:a,total:a.length,accessible:a.filter(r=>r.accessible).length}}catch(n){return{success:!1,error:n.message}}}function po(e={}){try{let{query:t,pattern:o,mode:n="plain",caseSensitive:a=!1,contextLength:i=50,maxResults:r=20,highlight:l=!1}=e,s=t||o;if(!s)return{success:!1,error:d("pageExtract.searchKeywordRequired")};if(n==="plain"){let g=window.find(s,a,!1,!0,!1,!0,!1),b=0,x=[];try{let v=window.getSelection(),S=v&&v.rangeCount>0?v.getRangeAt(0):null,I=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,!1),O=a?"g":"gi",ne=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),G=new RegExp(ne,O),C=document.body.innerText,W=0;for(;I.nextNode();){let ce=I.currentNode.textContent.match(G);if(ce)for(let ae of ce){if(x.length>=r)break;let j=C.indexOf(ae,W),He=Math.max(0,j-i),Vt=Math.min(C.length,j+ae.length+i);x.push({match:ae,position:j,context:C.substring(He,Vt),lineNumber:C.substring(0,j).split(`
61
+ `).length}),b++,W=j+ae.length}if(x.length>=r)break}S&&(v.removeAllRanges(),v.addRange(S))}catch{b=+!!g}if(l&&b>0){We();let v=document.createElement("style");v.id="ai-helper-highlight-style",v.textContent=`
62
62
  .ai-helper-search-highlight {
63
63
  background-color: #ffff00;
64
64
  color: #000;
65
65
  padding: 1px 2px;
66
66
  border-radius: 2px;
67
67
  }
68
- `,document.head.appendChild(T);let S=a?"g":"gi",I=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");document.body.innerHTML=document.body.innerHTML.replace(new RegExp(I,S),'<span class="ai-helper-search-highlight">$&</span>')}return{success:!0,query:s,mode:"plain",found:h,total:b,matches:x,highlighted:l}}let d=a?"g":"gi",u=new RegExp(s,d),p=document.body.innerText,m=[],g;for(;(g=u.exec(p))!==null&&m.length<r;){let h=Math.max(0,g.index-i),b=Math.min(p.length,g.index+g[0].length+i);m.push({match:g[0],position:g.index,context:p.substring(h,b),lineNumber:p.substring(0,g.index).split(`
69
- `).length}),g[0].length===0&&u.lastIndex++}if(l&&m.length>0){$e();let h=document.createElement("style");h.id="ai-helper-highlight-style",h.textContent=`
68
+ `,document.head.appendChild(v);let S=a?"g":"gi",I=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");ht(document.body,new RegExp(I,S),r)}return{success:!0,query:s,mode:"plain",found:g,total:b,matches:x,highlighted:l}}let c=a?"g":"gi",u=new RegExp(s,c),p=document.body.innerText,m=[],h;for(;(h=u.exec(p))!==null&&m.length<r;){let g=Math.max(0,h.index-i),b=Math.min(p.length,h.index+h[0].length+i);m.push({match:h[0],position:h.index,context:p.substring(g,b),lineNumber:p.substring(0,h.index).split(`
69
+ `).length}),h[0].length===0&&u.lastIndex++}if(l&&m.length>0){We();let g=document.createElement("style");g.id="ai-helper-highlight-style",g.textContent=`
70
70
  .ai-helper-search-highlight {
71
71
  background-color: #ffff00;
72
72
  color: #000;
73
73
  padding: 1px 2px;
74
74
  border-radius: 2px;
75
75
  }
76
- `,document.head.appendChild(h),document.body.innerHTML=document.body.innerHTML.replace(new RegExp(s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d),'<span class="ai-helper-search-highlight">$&</span>')}return{success:!0,pattern:s,mode:"regex",total:m.length,matches:m,highlighted:l}}catch(t){return{success:!1,error:t.message}}}A("zh",{pageInteraction:{invalidRefSuggest:"\u65E0\u6548\u6216\u5DF2\u8FC7\u671F\u7684\u5143\u7D20\u5F15\u7528 ref={ref}\u3002",invalidRefSuggestions:"\u6700\u8FD1\u5FEB\u7167\u4E2D\u7684\u6709\u6548\u5F15\u7528\uFF1A{list}\u3002",invalidRefTail:"\u5982\u9875\u9762\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u8C03\u7528 query_elements \u83B7\u53D6\u6700\u65B0\u5FEB\u7167",elementNotVisibleError:"\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09\u5F53\u524D\u4E0D\u53EF\u89C1\uFF0C\u53EF\u80FD\u88AB\u9690\u85CF\u6216\u6298\u53E0",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",hoveredByRef:"\u5DF2\u60AC\u505C\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09{hint}",clickedByRef:"\u5DF2\u70B9\u51FB\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09{hint}",typedByRef:"\u5DF2\u5411\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09\u8F93\u5165\u6587\u672C{hint}",typeNotSupported:"\u5143\u7D20 {tag} \u4E0D\u652F\u6301\u6587\u672C\u8F93\u5165\uFF08checkbox/radio \u8BF7\u7528 fill_form \u6216 click\uFF09",valueRequired:"action=type \u65F6 value \u4E0D\u80FD\u4E3A\u7A7A",typeFailed:"\u6587\u672C\u8F93\u5165\u5931\u8D25",textRequired:"text \u4E0D\u80FD\u4E3A\u7A7A",scrolledToText:'\u5DF2\u6EDA\u52A8\u5230\u5305\u542B"{text}"\u7684\u5143\u7D20',scrollTextNotFound:'\u6EDA\u52A8 {count} \u6B21\u672A\u627E\u5230\u5305\u542B"{text}"\u7684\u6587\u672C'}}),A("en",{pageInteraction:{invalidRefSuggest:"Invalid or stale element ref={ref}. ",invalidRefSuggestions:"Nearest valid refs from the latest snapshot: {list}. ",invalidRefTail:"If the page has changed, re-run query_elements",elementNotVisibleError:"Element ref={ref} ({tag}) is not visible; it may be hidden or collapsed",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",hoveredByRef:"Hovered element ref={ref} ({tag}){hint}",clickedByRef:"Clicked element ref={ref} ({tag}){hint}",typedByRef:"Typed text into element ref={ref} ({tag}){hint}",typeNotSupported:"Element {tag} does not support text input (use fill_form or click for checkbox/radio)",valueRequired:"value is required when action=type",typeFailed:"Text input failed",textRequired:"text cannot be empty",scrolledToText:'Scrolled to element containing "{text}"',scrollTextNotFound:'Scrolled {count} times but did not find text containing "{text}"'}});var ct=0,Ge=new WeakMap,ye=new Map;function kt(e,t,o){let n=Ge.get(e);return n??(ct+=1,n=ct,Ge.set(e,n)),ye.set(n,{element:e,selector:null,tag:e.tagName,role:t,name:o}),n}function dt(e){if(e.selector==null)try{e.selector=be(e.element)}catch{e.selector=""}return e.selector}function Ze(e){let t=parseInt(e,10);if(!t||!ye.has(t))return{error:ut(t),suggestions:ze(t)};let o=ye.get(t);if(o.element&&o.element.isConnected)return dt(o),{entry:o,element:o.element};let n=dt(o),a=n?P(n):null;return a?(o.element=a,{entry:o,element:a}):{error:ut(t),suggestions:ze(t)}}function ze(e){return[...ye.entries()].sort((t,o)=>Math.abs(t[0]-e)-Math.abs(o[0]-e)).slice(0,3).map(([t,o])=>({ref:t,role:o.role||o.tag&&o.tag.toLowerCase()||"?",name:o.name||""}))}function ut(e){let t=c("pageInteraction.invalidRefSuggest",{ref:e}),o=ze(e);if(o.length){let n=o.map(a=>`ref ${a.ref} (${a.role}${a.name?` "${a.name}"`:""})`).join(", ");t+=c("pageInteraction.invalidRefSuggestions",{list:n})}return t+=c("pageInteraction.invalidRefTail"),t}function ao(e){return Ze(e).element||null}var io=new Set(["button","link","checkbox","radio","switch","tab","menuitem","menuitemcheckbox","menuitemradio","option","combobox","listbox","searchbox","slider","spinbutton","textbox","treeitem"]),ro=new Set(["dialog","form","navigation","main","banner","contentinfo","table","row","heading"]);function vt(e){let t=e.getAttribute("role"),o=t?t.trim().split(/\s+/)[0]:"";if(o)return o;let n=e.tagName;if(n==="BUTTON")return"button";if(n==="A")return e.hasAttribute("href")?"link":"";if(n==="SELECT")return e.multiple||e.size>1?"listbox":"combobox";if(n==="TEXTAREA")return"textbox";if(n==="SUMMARY")return"button";if(/^H[1-6]$/.test(n))return"heading";if(n==="NAV")return"navigation";if(n==="MAIN")return"main";if(n==="DIALOG")return"dialog";if(n==="FORM")return"form";if(n==="TABLE")return"table";if(n==="TR")return"row";if(n==="INPUT"){let a=(e.type||"text").toLowerCase();return a==="hidden"?"":a==="checkbox"?"checkbox":a==="radio"?"radio":a==="submit"||a==="button"||a==="reset"?"button":a==="search"?"searchbox":a==="range"?"slider":a==="number"?"spinbutton":"textbox"}return""}function St(e){if(e.hasAttribute("hidden")||e.hasAttribute("inert")||e.getAttribute("aria-hidden")==="true"||e.style&&e.style.display==="none")return!0;let t=typeof getComputedStyle=="function"?getComputedStyle(e):null;return!!t&&t.display==="none"}function pt(e){if(typeof e.checkVisibility=="function")return!e.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0});let t=typeof getComputedStyle=="function"?getComputedStyle(e):null;return t?t.display==="none"||t.visibility==="hidden":!1}function lo(){let e=new Set;try{for(let t of document.querySelectorAll('[aria-expanded="true"][aria-controls]'))e.add(t.getAttribute("aria-controls"))}catch{}return e}function so(e,t,o){if(e.tagName==="DIALOG"&&e.hasAttribute("open"))return!0;if(e.hasAttribute("popover"))try{if(e.matches(":popover-open"))return!0}catch{}if(e.tagName==="SELECT"||e.tagName==="INPUT"||e.tagName==="TEXTAREA")return!1;let n=document.activeElement;return!!((t==="dialog"||t==="alertdialog")&&(e.getAttribute("aria-modal")==="true"||n&&e.contains(n))||(t==="menu"||t==="listbox")&&n&&e.contains(n)||e.id&&o.has(e.id))}function Ct(e,t){if(io.has(t)||e.tagName==="A"&&e.hasAttribute("href"))return!0;if(e.hasAttribute("contenteditable")){let n=e.getAttribute("contenteditable");if(n===""||n==="true"||n==="plaintext-only")return!0}let o=e.getAttribute("tabindex");return!!(o!==null&&parseInt(o,10)>=0||e.hasAttribute("onclick"))}function At(e){let t=[];return e.shadowRoot&&t.push(...e.shadowRoot.children),t.push(...e.children),t}function We(e,t){let o=(u,p=80)=>{if(!u)return"";let m=String(u).replace(/\s+/g," ").trim();return m.length>p?m.slice(0,p-1)+"\u2026":m},n=u=>o(u?u.textContent:"");if(e.tagName==="SELECT"){let u=e.options&&e.options[e.selectedIndex];if(u&&u.text)return o(u.text)}let a=e.getAttribute("aria-labelledby");if(a){let u=a.split(/\s+/).map(p=>document.getElementById(p)).filter(Boolean).map(p=>n(p)).filter(Boolean).join(" ");if(u)return u}let i=e.getAttribute("aria-label");if(i)return o(i);if(e.id)try{let u=document.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(u){let p=n(u);if(p)return p}}catch{}let r=e.closest&&e.closest("label");if(r){let u=n(r);if(u)return u}if(e.getAttribute("placeholder"))return o(e.getAttribute("placeholder"));if(e.getAttribute("title"))return o(e.getAttribute("title"));if(e.getAttribute("alt"))return o(e.getAttribute("alt"));if(e.tagName==="INPUT"){let u=(e.type||"").toLowerCase();if((u==="submit"||u==="button"||u==="reset")&&e.value)return o(e.value)}let l="";for(let u of e.childNodes)u.nodeType===3&&(l+=u.textContent);l.trim()||(l=e.textContent||"");let s=o(l);if(s)return s;let d=e.previousElementSibling;for(;d&&!(d.textContent||"").trim();)d=d.previousElementSibling;if(d&&!d.querySelector("button, a[href], input, select, textarea")){let u=n(d);if(u)return u}return""}function co(e,t){let o=[],n=(i,r)=>i&&i.length>r?i.slice(0,r-1)+"\u2026":i;if(t==="link"&&e.getAttribute("href")&&o.push(`href="${n(e.getAttribute("href"),150)}"`),e.tagName==="INPUT"){let i=(e.type||"text").toLowerCase();i!=="text"&&i!=="checkbox"&&i!=="radio"&&o.push(`type="${i}"`)}let a=e.getAttribute("placeholder");return a&&o.push(`placeholder="${n(a,60)}"`),(e.tagName==="INPUT"||e.tagName==="TEXTAREA")&&e.value&&o.push(`value="${n(e.value,60)}"`),e.tagName==="INPUT"&&(e.type==="checkbox"||e.type==="radio")&&e.checked&&o.push('checked="true"'),e.tagName==="OPTION"&&e.selected&&o.push('selected="true"'),o.join(" ")}var uo=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;function po(){return window.innerWidth>0&&window.innerHeight>0}function mo(e,t,o){if(!o||!o.length)return!0;let n=e.tagName.toLowerCase(),a=e.tagName==="INPUT"?(e.type||"").toLowerCase():"";return o.some(i=>i===n||i===a||i===t)}function go(e,t,o){return!o||`${t} ${e.textContent||""} ${e.value||""}`.toLowerCase().includes(String(o).toLowerCase())}function ho(e={}){let{filterByText:t="",elementTypes:o=null,page:n=1,maxResults:a=100,maxChars:i=6e3,countOnly:r=!1}=e;try{let l=Et({filterByText:t,elementTypes:o,frames:"none"});return l.success?st({frames:[{frameIndex:0,depth:0,isTop:!0,frameInfo:l.frameInfo,overlayTrees:l.overlayTrees,bodyTree:l.bodyTree}],page:n,maxResults:a,maxChars:i,countOnly:r}):l}catch(l){return console.error("[PageInteraction] queryInteractiveElements failed:",l),{success:!1,error:l.message}}}function fo(e,t,o){let n=e.getAttribute("title")||"",a="";try{a=e.src||""}catch{}a||=e.getAttribute("src")||"";let i=null;try{let l=e.contentWindow&&e.contentWindow.location.href;typeof l=="string"&&(i=l)}catch{}let r=o.iframeOrder.has(e)?o.iframeOrder.get(e):-1;return{t:"frame",title:n,srcUrl:a,sameOriginHref:i,orderInParent:r,depth:t}}function je(e,t,o,n){if(St(e)||n.skipRoots&&n.skipRoots.has(e))return!1;let a=vt(e),i=Ct(e,a),r=!i&&ro.has(a)?a:null,l=t+(i||r?1:0);if(n.frames==="auto"&&e.tagName==="IFRAME")return o.push(fo(e,t,n)),!0;let s=[],d=!1;for(let u of At(e))je(u,l,s,n)&&(d=!0);if(i&&n.matchedSet.has(e)){let u=a||e.tagName.toLowerCase(),p=We(e,u);return o.push({t:"el",localRef:Ge.get(e)??kt(e,u,p),role:u,name:p,attrs:co(e,u),depth:t,children:s}),!0}if(r&&d){let u=r==="dialog"||r==="heading"?We(e,a):"";return o.push({t:"container",role:r,name:u,depth:t,children:s}),!0}return d?(o.push(...s),!0):!1}function Et(e={}){let{filterByText:t="",elementTypes:o=null,frames:n="none"}=e;try{ye.clear();let a=lo(),i=[],r=[];It(document.body,{matched:r,filterByText:t,elementTypes:o,overlayRoots:i,expandedTargets:a});for(let p of r)kt(p.el,p.role,p.name);let l=new Map;try{document.querySelectorAll("iframe").forEach((p,m)=>l.set(p,m))}catch{}let s={matchedSet:new Set(r.map(p=>p.el)),frames:n,iframeOrder:l,skipRoots:null},d=[];for(let p of i){let m=[];je(p,0,m,s),d.push(...m)}s.skipRoots=new Set(i);let u=[];return je(document.body,0,u,s),{success:!0,frameInfo:{url:location.href,title:document.title||"",width:window.innerWidth,height:window.innerHeight,loadId:uo},overlayTrees:d,bodyTree:u}}catch(a){return console.error("[PageInteraction] collectSnapshotOps failed:",a),{success:!1,error:a.message}}}function It(e,{matched:t,filterByText:o,elementTypes:n,overlayRoots:a,expandedTargets:i,inOverlay:r=!1}){if(St(e))return;let l=vt(e),s=r;if(!s&&!pt(e)&&so(e,l,i)&&(a.push(e),s=!0),Ct(e,l)&&!pt(e)&&mo(e,l,n)){let d=l||e.tagName.toLowerCase(),u=We(e,d);go(e,u,o)&&t.push({el:e,role:d,name:u,inOverlay:s})}for(let d of At(e))It(d,{matched:t,filterByText:o,elementTypes:n,overlayRoots:a,expandedTargets:i,inOverlay:s})}function bo(e={}){let{scrollPixels:t=800,maxScrolls:o=20,pauseMs:n=500,selector:a}=e;return new Promise(async i=>{try{let r=a?document.querySelector(a):null,l=()=>{let h=r||document.body,b=document.createTreeWalker(h,NodeFilter.SHOW_TEXT),x="",T;for(;T=b.nextNode();){let S=T.parentElement;if(!S)continue;let I=S.getBoundingClientRect();if(I.bottom>-100&&I.top<window.innerHeight+100){let B=T.textContent.trim();B&&(x+=B+`
77
- `)}}return x},s=r||document.scrollingElement||document.documentElement,d="",u=window.scrollY,p=0;for(let h=0;h<o;h++){let b=l();d+=b+`
78
- `;let x=window.scrollY;if(s.scrollBy({top:t,behavior:"auto"}),p++,await new Promise(T=>setTimeout(T,n)),Math.abs(window.scrollY-x)<5&&(await new Promise(T=>setTimeout(T,n)),Math.abs(window.scrollY-x)<5))break}r&&s.scrollTo({top:u,behavior:"auto"});let m=d.split(`
79
- `),g=[];for(let h of m){let b=h.trim();b&&b!==g[g.length-1]&&g.push(b)}i({success:!0,content:g.join(`
80
- `),contentLength:g.join(`
81
- `).length,scrolls:p,startScrollY:u,endScrollY:window.scrollY})}catch(r){i({success:!1,error:r.message})}})}async function yo(e,t="click",o={}){let{waitTime:n=300,timeout:a=2e3}=o,i=parseInt(e,10),r=Ze(i);if(r.error)return{success:!1,error:r.error,...r.suggestions&&r.suggestions.length?{suggestions:r.suggestions}:{}};let{entry:l,element:s}=r,d=window.getComputedStyle(s);if(d.display==="none"||d.visibility==="hidden")return{success:!1,error:c("pageInteraction.elementNotVisibleError",{ref:e,tag:l.tag})};if(t==="type"){let g=X(),h=wo(s,o.value,o);if(!h.success)return{success:!1,error:h.error};let b=await Q(g,n,a),x=b.changed?c(b.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:b.waitedMs}):"";return{success:!0,message:c("pageInteraction.typedByRef",{ref:i,tag:l.tag,hint:x}),...b}}if(t==="hover"){let g=X();s.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),s.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let h=await Q(g,n,a),b=h.changed?c(h.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:h.waitedMs}):"";return{success:!0,message:c("pageInteraction.hoveredByRef",{ref:e,tag:l.tag,hint:b}),...h}}let u=X();s.click();let p=await Q(u,n,a),m=p.changed?c(p.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:p.waitedMs}):"";return{success:!0,message:c("pageInteraction.clickedByRef",{ref:e,tag:l.tag,hint:m}),...p}}function wo(e,t,{clear:o=!1,submit:n=!1}={}){if(t==null||t==="")return{success:!1,error:c("pageInteraction.valueRequired")};let a=e.tagName,i=Tt(e);if(a==="INPUT"){let r=(e.type||"text").toLowerCase();if(["checkbox","radio","file","submit","button","reset","image"].includes(r))return{success:!1,error:c("pageInteraction.typeNotSupported",{tag:`<input type="${r}">`})}}else if(a!=="TEXTAREA"&&!i)return{success:!1,error:c("pageInteraction.typeNotSupported",{tag:`<${a.toLowerCase()}>`})};try{e.focus()}catch{}if(i&&a!=="INPUT"&&a!=="TEXTAREA"){if(o&&Re(e,""),!Re(e,t))return{success:!1,error:c("pageInteraction.typeFailed")}}else o&&(Ie(e,""),e.dispatchEvent(new Event("input",{bubbles:!0}))),Ie(e,t),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}));if(n){let r={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0};e.dispatchEvent(new KeyboardEvent("keydown",r)),e.dispatchEvent(new KeyboardEvent("keypress",r)),e.dispatchEvent(new KeyboardEvent("keyup",r))}return{success:!0}}async function xo(e,t={}){let{maxScrolls:o=20,pauseMs:n=500}=t;if(!e)return{success:!1,error:c("pageInteraction.textRequired")};let a=e.toLowerCase(),i=()=>{let l=ee("h1, h2, h3, h4, h5, h6, p, span, a, button, li, td, th, label, div");for(let s of l){let d=Array.from(s.childNodes).filter(u=>u.nodeType===Node.TEXT_NODE).map(u=>u.textContent).join("").trim();if(d&&d.toLowerCase().includes(a))return s}return null},r=i();if(r)return r.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(l=>setTimeout(l,300)),{success:!0,message:c("pageInteraction.scrolledToText",{text:e}),selector:be(r),scrolls:0};for(let l=0;l<o;l++){let s=window.scrollY;if(window.scrollBy({top:Math.floor(window.innerHeight*.8),behavior:"auto"}),await new Promise(d=>setTimeout(d,n)),r=i(),r)return r.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(d=>setTimeout(d,300)),{success:!0,message:c("pageInteraction.scrolledToText",{text:e}),selector:be(r),scrolls:l+1};if(Math.abs(window.scrollY-s)<5&&(await new Promise(d=>setTimeout(d,n)),Math.abs(window.scrollY-s)<5))break}return{success:!1,error:c("pageInteraction.scrollTextNotFound",{count:o,text:e}),scrolls:o}}A("zh",{pageTools:{noSelection:"\u5F53\u524D\u6CA1\u6709\u9009\u4E2D\u7684\u5185\u5BB9",tableNotFound:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u8868\u683C: {selector}",emptyTable:"\u8868\u683C\u4E3A\u7A7A",copiedToClipboard:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copiedToClipboardFallback:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF08\u964D\u7EA7\u65B9\u6848\uFF09",elementNotFound:"\u672A\u627E\u5230\u5143\u7D20: {selector}",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",hoverTriggered:"\u5DF2\u5728\u5143\u7D20\u4E0A\u89E6\u53D1\u60AC\u505C\u6548\u679C: {selector}{hint}",noHighlightText:"\u672A\u63D0\u4F9B\u8981\u9AD8\u4EAE\u7684\u6587\u672C",highlightedCount:"\u5DF2\u9AD8\u4EAE {count} \u5904\u6587\u672C"}}),A("en",{pageTools:{noSelection:"No content selected",tableNotFound:"No table found matching selector: {selector}",emptyTable:"Table is empty",copiedToClipboard:"Copied to clipboard",copiedToClipboardFallback:"Copied to clipboard (fallback method)",elementNotFound:"Element not found: {selector}",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",hoverTriggered:"Hover triggered on element: {selector}{hint}",noHighlightText:"No text provided to highlight",highlightedCount:"Highlighted {count} occurrences"}});function To(e={}){let{maxLength:t=5e4,includeHeadings:o=!0,includeLinks:n=!0}=e,a=Ae(),i={title:document.title||"",url:window.location.href,content:a.substring(0,t),wordCount:a.split(/\s+/).length};return o&&(i.headings=Array.from(ee("h1, h2, h3, h4, h5, h6")).map(r=>({level:r.tagName,text:r.textContent.trim()})).filter(r=>r.text.length>0).slice(0,30)),n&&(i.links=Array.from(ee("a")).map(r=>({text:r.textContent.trim(),href:r.href})).filter(r=>r.text.length>0).slice(0,50)),{success:!0,data:i}}function ko(e={}){let{includeStyles:t=!1,maxLength:o=5e4}=e,n=Ee();return t||(n=n.replace(/\s*style="[^"]*"/gi,"")),{success:!0,content:JSON.stringify({title:document.title,url:window.location.href,html:n.substring(0,o),fullLength:n.length})}}function vo(e="text"){try{let t=window.getSelection();if(!t||t.isCollapsed||t.rangeCount===0)return{success:!1,error:c("pageTools.noSelection")};let o={success:!0,data:{selectedCount:t.rangeCount,text:""}};if(e==="html"){let n=[];for(let a=0;a<t.rangeCount;a++){let i=t.getRangeAt(a).cloneContents(),r=document.createElement("div");r.appendChild(i),n.push(r.innerHTML)}o.data.html=n.join(`
82
- `),o.data.text=t.toString()}else o.data.text=t.toString();return o}catch(t){return{success:!1,error:t.message}}}function So(e="table",t=!0,o="json"){try{let n=P(e);if(!n)return{success:!1,error:c("pageTools.tableNotFound",{selector:e})};let a=Array.from(n.querySelectorAll("tr")),i=[];return a.forEach((r,l)=>{let s=Array.from(r.querySelectorAll("td, th")).map(d=>d.textContent.trim());(t||l>0)&&i.push(s)}),o==="markdown"?i.length===0?{success:!0,content:c("pageTools.emptyTable")}:{success:!0,content:`${`| ${i[0].join(" | ")} |`}
76
+ `,document.head.appendChild(g),ht(document.body,new RegExp(s,c),r)}return{success:!0,pattern:s,mode:"regex",total:m.length,matches:m,highlighted:l}}catch(t){return{success:!1,error:t.message}}}A("zh",{pageInteraction:{invalidRefSuggest:"\u65E0\u6548\u6216\u5DF2\u8FC7\u671F\u7684\u5143\u7D20\u5F15\u7528 ref={ref}\u3002",invalidRefSuggestions:"\u6700\u8FD1\u5FEB\u7167\u4E2D\u7684\u6709\u6548\u5F15\u7528\uFF1A{list}\u3002",invalidRefTail:"\u5982\u9875\u9762\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u8C03\u7528 query_elements \u83B7\u53D6\u6700\u65B0\u5FEB\u7167",elementNotVisibleError:"\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09\u5F53\u524D\u4E0D\u53EF\u89C1\uFF0C\u53EF\u80FD\u88AB\u9690\u85CF\u6216\u6298\u53E0",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",hoveredByRef:"\u5DF2\u60AC\u505C\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09{hint}",clickedByRef:"\u5DF2\u70B9\u51FB\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09{hint}",typedByRef:"\u5DF2\u5411\u5143\u7D20 ref={ref}\uFF08{tag}\uFF09\u8F93\u5165\u6587\u672C{hint}",typeNotSupported:"\u5143\u7D20 {tag} \u4E0D\u652F\u6301\u6587\u672C\u8F93\u5165\uFF08checkbox/radio \u8BF7\u7528 fill_form \u6216 click\uFF09",valueRequired:"action=type \u65F6 value \u4E0D\u80FD\u4E3A\u7A7A",typeFailed:"\u6587\u672C\u8F93\u5165\u5931\u8D25",textRequired:"text \u4E0D\u80FD\u4E3A\u7A7A",scrolledToText:'\u5DF2\u6EDA\u52A8\u5230\u5305\u542B"{text}"\u7684\u5143\u7D20',scrollTextNotFound:'\u6EDA\u52A8 {count} \u6B21\u672A\u627E\u5230\u5305\u542B"{text}"\u7684\u6587\u672C'}}),A("en",{pageInteraction:{invalidRefSuggest:"Invalid or stale element ref={ref}. ",invalidRefSuggestions:"Nearest valid refs from the latest snapshot: {list}. ",invalidRefTail:"If the page has changed, re-run query_elements",elementNotVisibleError:"Element ref={ref} ({tag}) is not visible; it may be hidden or collapsed",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",hoveredByRef:"Hovered element ref={ref} ({tag}){hint}",clickedByRef:"Clicked element ref={ref} ({tag}){hint}",typedByRef:"Typed text into element ref={ref} ({tag}){hint}",typeNotSupported:"Element {tag} does not support text input (use fill_form or click for checkbox/radio)",valueRequired:"value is required when action=type",typeFailed:"Text input failed",textRequired:"text cannot be empty",scrolledToText:'Scrolled to element containing "{text}"',scrollTextNotFound:'Scrolled {count} times but did not find text containing "{text}"'}});var gt=0,je=new WeakMap,xe=new Map;function Pt(e,t,o){let n=je.get(e);return n??(gt+=1,n=gt,je.set(e,n)),xe.set(n,{element:e,selector:null,tag:e.tagName,role:t,name:o}),n}function ft(e){if(e.selector==null)try{e.selector=we(e.element)}catch{e.selector=""}return e.selector}function ot(e){let t=parseInt(e,10);if(!t||!xe.has(t))return{error:bt(t),suggestions:Ve(t)};let o=xe.get(t);if(o.element&&o.element.isConnected)return ft(o),{entry:o,element:o.element};let n=ft(o),a=n?P(n):null;return a?(o.element=a,{entry:o,element:a}):{error:bt(t),suggestions:Ve(t)}}function Ve(e){return[...xe.entries()].sort((t,o)=>Math.abs(t[0]-e)-Math.abs(o[0]-e)).slice(0,3).map(([t,o])=>({ref:t,role:o.role||o.tag&&o.tag.toLowerCase()||"?",name:o.name||""}))}function bt(e){let t=d("pageInteraction.invalidRefSuggest",{ref:e}),o=Ve(e);if(o.length){let n=o.map(a=>`ref ${a.ref} (${a.role}${a.name?` "${a.name}"`:""})`).join(", ");t+=d("pageInteraction.invalidRefSuggestions",{list:n})}return t+=d("pageInteraction.invalidRefTail"),t}function mo(e){return ot(e).element||null}var ho=new Set(["button","link","checkbox","radio","switch","tab","menuitem","menuitemcheckbox","menuitemradio","option","combobox","listbox","searchbox","slider","spinbutton","textbox","treeitem"]),go=new Set(["dialog","form","navigation","main","banner","contentinfo","table","row","heading"]);function Rt(e){let t=e.getAttribute("role"),o=t?t.trim().split(/\s+/)[0]:"";if(o)return o;let n=e.tagName;if(n==="BUTTON")return"button";if(n==="A")return e.hasAttribute("href")?"link":"";if(n==="SELECT")return e.multiple||e.size>1?"listbox":"combobox";if(n==="TEXTAREA")return"textbox";if(n==="SUMMARY")return"button";if(/^H[1-6]$/.test(n))return"heading";if(n==="NAV")return"navigation";if(n==="MAIN")return"main";if(n==="DIALOG")return"dialog";if(n==="FORM")return"form";if(n==="TABLE")return"table";if(n==="TR")return"row";if(n==="INPUT"){let a=(e.type||"text").toLowerCase();return a==="hidden"?"":a==="checkbox"?"checkbox":a==="radio"?"radio":a==="submit"||a==="button"||a==="reset"?"button":a==="search"?"searchbox":a==="range"?"slider":a==="number"?"spinbutton":"textbox"}return""}function Mt(e){if(e.hasAttribute("hidden")||e.hasAttribute("inert")||e.getAttribute("aria-hidden")==="true"||e.style&&e.style.display==="none")return!0;let t=typeof getComputedStyle=="function"?getComputedStyle(e):null;return!!t&&t.display==="none"}function yt(e){if(typeof e.checkVisibility=="function")return!e.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0});let t=typeof getComputedStyle=="function"?getComputedStyle(e):null;return t?t.display==="none"||t.visibility==="hidden":!1}function fo(){let e=new Set;try{for(let t of document.querySelectorAll('[aria-expanded="true"][aria-controls]'))e.add(t.getAttribute("aria-controls"))}catch{}return e}function bo(e,t,o){if(e.tagName==="DIALOG"&&e.hasAttribute("open"))return!0;if(e.hasAttribute("popover"))try{if(e.matches(":popover-open"))return!0}catch{}if(e.tagName==="SELECT"||e.tagName==="INPUT"||e.tagName==="TEXTAREA")return!1;let n=document.activeElement;return!!((t==="dialog"||t==="alertdialog")&&(e.getAttribute("aria-modal")==="true"||n&&e.contains(n))||(t==="menu"||t==="listbox")&&n&&e.contains(n)||e.id&&o.has(e.id))}function Lt(e,t){if(ho.has(t)||e.tagName==="A"&&e.hasAttribute("href"))return!0;if(e.hasAttribute("contenteditable")){let n=e.getAttribute("contenteditable");if(n===""||n==="true"||n==="plaintext-only")return!0}let o=e.getAttribute("tabindex");return!!(o!==null&&parseInt(o,10)>=0||e.hasAttribute("onclick"))}function Nt(e){let t=[];return e.shadowRoot&&t.push(...e.shadowRoot.children),t.push(...e.children),t}function Qe(e,t){let o=(u,p=80)=>{if(!u)return"";let m=String(u).replace(/\s+/g," ").trim();return m.length>p?m.slice(0,p-1)+"\u2026":m},n=u=>o(u?u.textContent:"");if(e.tagName==="SELECT"){let u=e.options&&e.options[e.selectedIndex];if(u&&u.text)return o(u.text)}let a=e.getAttribute("aria-labelledby");if(a){let u=a.split(/\s+/).map(p=>document.getElementById(p)).filter(Boolean).map(p=>n(p)).filter(Boolean).join(" ");if(u)return u}let i=e.getAttribute("aria-label");if(i)return o(i);if(e.id)try{let u=document.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(u){let p=n(u);if(p)return p}}catch{}let r=e.closest&&e.closest("label");if(r){let u=n(r);if(u)return u}if(e.getAttribute("placeholder"))return o(e.getAttribute("placeholder"));if(e.getAttribute("title"))return o(e.getAttribute("title"));if(e.getAttribute("alt"))return o(e.getAttribute("alt"));if(e.tagName==="INPUT"){let u=(e.type||"").toLowerCase();if((u==="submit"||u==="button"||u==="reset")&&e.value)return o(e.value)}let l="";for(let u of e.childNodes)u.nodeType===3&&(l+=u.textContent);l.trim()||(l=e.textContent||"");let s=o(l);if(s)return s;let c=e.previousElementSibling;for(;c&&!(c.textContent||"").trim();)c=c.previousElementSibling;if(c&&!c.querySelector("button, a[href], input, select, textarea")){let u=n(c);if(u)return u}return""}function yo(e,t){let o=[],n=(i,r)=>i&&i.length>r?i.slice(0,r-1)+"\u2026":i;if(t==="link"&&e.getAttribute("href")&&o.push(`href="${n(e.getAttribute("href"),150)}"`),e.tagName==="INPUT"){let i=(e.type||"text").toLowerCase();i!=="text"&&i!=="checkbox"&&i!=="radio"&&o.push(`type="${i}"`)}let a=e.getAttribute("placeholder");return a&&o.push(`placeholder="${n(a,60)}"`),(e.tagName==="INPUT"||e.tagName==="TEXTAREA")&&e.value&&o.push(`value="${n(e.value,60)}"`),e.tagName==="INPUT"&&(e.type==="checkbox"||e.type==="radio")&&e.checked&&o.push('checked="true"'),e.tagName==="OPTION"&&e.selected&&o.push('selected="true"'),o.join(" ")}var wo=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;function xo(){return window.innerWidth>0&&window.innerHeight>0}function vo(e,t,o){if(!o||!o.length)return!0;let n=e.tagName.toLowerCase(),a=e.tagName==="INPUT"?(e.type||"").toLowerCase():"";return o.some(i=>i===n||i===a||i===t)}function ko(e,t,o){return o?`${t} ${e.textContent||""} ${e.value||""}`.toLowerCase().includes(String(o).toLowerCase()):!0}function To(e={}){let{filterByText:t="",elementTypes:o=null,page:n=1,maxResults:a=100,maxChars:i=6e3,countOnly:r=!1}=e;try{let l=Dt({filterByText:t,elementTypes:o,frames:"none"});return l.success?mt({frames:[{frameIndex:0,depth:0,isTop:!0,frameInfo:l.frameInfo,overlayTrees:l.overlayTrees,bodyTree:l.bodyTree}],page:n,maxResults:a,maxChars:i,countOnly:r}):l}catch(l){return console.error("[PageInteraction] queryInteractiveElements failed:",l),{success:!1,error:l.message}}}function So(e,t,o){let n=e.getAttribute("title")||"",a="";try{a=e.src||""}catch{}a||=e.getAttribute("src")||"";let i=null;try{let l=e.contentWindow&&e.contentWindow.location.href;typeof l=="string"&&(i=l)}catch{}let r=o.iframeOrder.has(e)?o.iframeOrder.get(e):-1;return{t:"frame",title:n,srcUrl:a,sameOriginHref:i,orderInParent:r,depth:t}}function Ye(e,t,o,n){if(Mt(e)||n.skipRoots&&n.skipRoots.has(e))return!1;let a=Rt(e),i=Lt(e,a),r=!i&&go.has(a)?a:null,l=t+(i||r?1:0);if(n.frames==="auto"&&e.tagName==="IFRAME")return o.push(So(e,t,n)),!0;let s=[],c=!1;for(let u of Nt(e))Ye(u,l,s,n)&&(c=!0);if(i&&n.matchedSet.has(e)){let u=a||e.tagName.toLowerCase(),p=Qe(e,u);return o.push({t:"el",localRef:je.get(e)??Pt(e,u,p),role:u,name:p,attrs:yo(e,u),depth:t,children:s}),!0}if(r&&c){let u=r==="dialog"||r==="heading"?Qe(e,a):"";return o.push({t:"container",role:r,name:u,depth:t,children:s}),!0}return c?(o.push(...s),!0):!1}function Dt(e={}){let{filterByText:t="",elementTypes:o=null,frames:n="none"}=e;try{xe.clear();let a=fo(),i=[],r=[];Ft(document.body,{matched:r,filterByText:t,elementTypes:o,overlayRoots:i,expandedTargets:a});for(let p of r)Pt(p.el,p.role,p.name);let l=new Map;try{document.querySelectorAll("iframe").forEach((p,m)=>l.set(p,m))}catch{}let s={matchedSet:new Set(r.map(p=>p.el)),frames:n,iframeOrder:l,skipRoots:null},c=[];for(let p of i){let m=[];Ye(p,0,m,s),c.push(...m)}s.skipRoots=new Set(i);let u=[];return Ye(document.body,0,u,s),{success:!0,frameInfo:{url:location.href,title:document.title||"",width:window.innerWidth,height:window.innerHeight,loadId:wo},overlayTrees:c,bodyTree:u}}catch(a){return console.error("[PageInteraction] collectSnapshotOps failed:",a),{success:!1,error:a.message}}}function Ft(e,{matched:t,filterByText:o,elementTypes:n,overlayRoots:a,expandedTargets:i,inOverlay:r=!1}){if(Mt(e))return;let l=Rt(e),s=r;if(!s&&!yt(e)&&bo(e,l,i)&&(a.push(e),s=!0),Lt(e,l)&&!yt(e)&&vo(e,l,n)){let c=l||e.tagName.toLowerCase(),u=Qe(e,c);ko(e,u,o)&&t.push({el:e,role:c,name:u,inOverlay:s})}for(let c of Nt(e))Ft(c,{matched:t,filterByText:o,elementTypes:n,overlayRoots:a,expandedTargets:i,inOverlay:s})}function Co(e={}){let{scrollPixels:t=800,maxScrolls:o=20,pauseMs:n=500,selector:a}=e;return new Promise(async i=>{try{let r=a?document.querySelector(a):null,l=()=>{let g=r||document.body,b=document.createTreeWalker(g,NodeFilter.SHOW_TEXT),x="",v;for(;v=b.nextNode();){let S=v.parentElement;if(!S)continue;let I=S.getBoundingClientRect();if(I.bottom>-100&&I.top<window.innerHeight+100){let O=v.textContent.trim();O&&(x+=O+`
77
+ `)}}return x},s=r||document.scrollingElement||document.documentElement,c="",u=window.scrollY,p=0;for(let g=0;g<o;g++){let b=l();c+=b+`
78
+ `;let x=window.scrollY;if(s.scrollBy({top:t,behavior:"auto"}),p++,await new Promise(v=>setTimeout(v,n)),Math.abs(window.scrollY-x)<5&&(await new Promise(v=>setTimeout(v,n)),Math.abs(window.scrollY-x)<5))break}r&&s.scrollTo({top:u,behavior:"auto"});let m=c.split(`
79
+ `),h=[];for(let g of m){let b=g.trim();b&&b!==h[h.length-1]&&h.push(b)}i({success:!0,content:h.join(`
80
+ `),contentLength:h.join(`
81
+ `).length,scrolls:p,startScrollY:u,endScrollY:window.scrollY})}catch(r){i({success:!1,error:r.message})}})}async function Ao(e,t="click",o={}){let{waitTime:n=300,timeout:a=2e3}=o,i=parseInt(e,10),r=ot(i);if(r.error)return{success:!1,error:r.error,...r.suggestions&&r.suggestions.length?{suggestions:r.suggestions}:{}};let{entry:l,element:s}=r,c=window.getComputedStyle(s);if(c.display==="none"||c.visibility==="hidden")return{success:!1,error:d("pageInteraction.elementNotVisibleError",{ref:e,tag:l.tag})};if(t==="type"){let h=Y(),g=Eo(s,o.value,o);if(!g.success)return{success:!1,error:g.error};let b=await X(h,n,a),x=b.changed?d(b.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:b.waitedMs}):"";return{success:!0,message:d("pageInteraction.typedByRef",{ref:i,tag:l.tag,hint:x}),...b}}if(t==="hover"){let h=Y();s.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),s.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let g=await X(h,n,a),b=g.changed?d(g.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:g.waitedMs}):"";return{success:!0,message:d("pageInteraction.hoveredByRef",{ref:e,tag:l.tag,hint:b}),...g}}let u=Y();s.click();let p=await X(u,n,a),m=p.changed?d(p.urlChanged?"pageInteraction.navChangeHint":"pageInteraction.domChangeHint",{ms:p.waitedMs}):"";return{success:!0,message:d("pageInteraction.clickedByRef",{ref:e,tag:l.tag,hint:m}),...p}}function Eo(e,t,{clear:o=!1,submit:n=!1}={}){if(t==null||t==="")return{success:!1,error:d("pageInteraction.valueRequired")};let a=e.tagName,i=It(e);if(a==="INPUT"){let r=(e.type||"text").toLowerCase();if(["checkbox","radio","file","submit","button","reset","image"].includes(r))return{success:!1,error:d("pageInteraction.typeNotSupported",{tag:`<input type="${r}">`})}}else if(a!=="TEXTAREA"&&!i)return{success:!1,error:d("pageInteraction.typeNotSupported",{tag:`<${a.toLowerCase()}>`})};try{e.focus()}catch{}if(i&&a!=="INPUT"&&a!=="TEXTAREA"){if(o&&Re(e,""),!Re(e,t))return{success:!1,error:d("pageInteraction.typeFailed")}}else o&&(Pe(e,""),e.dispatchEvent(new Event("input",{bubbles:!0}))),Pe(e,t),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}));if(n){let r={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0};e.dispatchEvent(new KeyboardEvent("keydown",r)),e.dispatchEvent(new KeyboardEvent("keypress",r)),e.dispatchEvent(new KeyboardEvent("keyup",r))}return{success:!0}}async function Io(e,t={}){let{maxScrolls:o=20,pauseMs:n=500}=t;if(!e)return{success:!1,error:d("pageInteraction.textRequired")};let a=e.toLowerCase(),i=()=>{let l=ee("h1, h2, h3, h4, h5, h6, p, span, a, button, li, td, th, label, div");for(let s of l){let c=Array.from(s.childNodes).filter(u=>u.nodeType===Node.TEXT_NODE).map(u=>u.textContent).join("").trim();if(c&&c.toLowerCase().includes(a))return s}return null},r=i();if(r)return r.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(l=>setTimeout(l,300)),{success:!0,message:d("pageInteraction.scrolledToText",{text:e}),selector:we(r),scrolls:0};for(let l=0;l<o;l++){let s=window.scrollY;if(window.scrollBy({top:Math.floor(window.innerHeight*.8),behavior:"auto"}),await new Promise(c=>setTimeout(c,n)),r=i(),r)return r.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(c=>setTimeout(c,300)),{success:!0,message:d("pageInteraction.scrolledToText",{text:e}),selector:we(r),scrolls:l+1};if(Math.abs(window.scrollY-s)<5&&(await new Promise(c=>setTimeout(c,n)),Math.abs(window.scrollY-s)<5))break}return{success:!1,error:d("pageInteraction.scrollTextNotFound",{count:o,text:e}),scrolls:o}}A("zh",{pageTools:{noSelection:"\u5F53\u524D\u6CA1\u6709\u9009\u4E2D\u7684\u5185\u5BB9",tableNotFound:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u8868\u683C: {selector}",emptyTable:"\u8868\u683C\u4E3A\u7A7A",copiedToClipboard:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copiedToClipboardFallback:"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF08\u964D\u7EA7\u65B9\u6848\uFF09",elementNotFound:"\u672A\u627E\u5230\u5143\u7D20: {selector}",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",hoverTriggered:"\u5DF2\u5728\u5143\u7D20\u4E0A\u89E6\u53D1\u60AC\u505C\u6548\u679C: {selector}{hint}",noHighlightText:"\u672A\u63D0\u4F9B\u8981\u9AD8\u4EAE\u7684\u6587\u672C",highlightedCount:"\u5DF2\u9AD8\u4EAE {count} \u5904\u6587\u672C"}}),A("en",{pageTools:{noSelection:"No content selected",tableNotFound:"No table found matching selector: {selector}",emptyTable:"Table is empty",copiedToClipboard:"Copied to clipboard",copiedToClipboardFallback:"Copied to clipboard (fallback method)",elementNotFound:"Element not found: {selector}",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",hoverTriggered:"Hover triggered on element: {selector}{hint}",noHighlightText:"No text provided to highlight",highlightedCount:"Highlighted {count} occurrences"}});function Po(e={}){let{maxLength:t=5e4,includeHeadings:o=!0,includeLinks:n=!0}=e,a=be(),i={title:document.title||"",url:window.location.href,content:a.substring(0,t),wordCount:a.split(/\s+/).length};return o&&(i.headings=Array.from(ee("h1, h2, h3, h4, h5, h6")).map(r=>({level:r.tagName,text:r.textContent.trim()})).filter(r=>r.text.length>0).slice(0,30)),n&&(i.links=Array.from(ee("a")).map(r=>({text:r.textContent.trim(),href:r.href})).filter(r=>r.text.length>0).slice(0,50)),{success:!0,data:i}}function Ro(e={}){let{includeStyles:t=!1,maxLength:o=5e4}=e,n=Ie();return t||(n=n.replace(/\s*style="[^"]*"/gi,"")),{success:!0,content:JSON.stringify({title:document.title,url:window.location.href,html:n.substring(0,o),fullLength:n.length})}}function Mo(e="text"){try{let t=window.getSelection();if(!t||t.isCollapsed||t.rangeCount===0)return{success:!1,error:d("pageTools.noSelection")};let o={success:!0,data:{selectedCount:t.rangeCount,text:""}};if(e==="html"){let n=[];for(let a=0;a<t.rangeCount;a++){let i=t.getRangeAt(a).cloneContents(),r=document.createElement("div");r.appendChild(i),n.push(r.innerHTML)}o.data.html=n.join(`
82
+ `),o.data.text=t.toString()}else o.data.text=t.toString();return o}catch(t){return{success:!1,error:t.message}}}function Lo(e="table",t=!0,o="json"){try{let n=P(e);if(!n)return{success:!1,error:d("pageTools.tableNotFound",{selector:e})};let a=Array.from(n.querySelectorAll("tr")),i=[];return a.forEach((r,l)=>{let s=Array.from(r.querySelectorAll("td, th")).map(c=>c.textContent.trim());(t||l>0)&&i.push(s)}),o==="markdown"?i.length===0?{success:!0,content:d("pageTools.emptyTable")}:{success:!0,content:`${`| ${i[0].join(" | ")} |`}
83
83
  ${`| ${i[0].map(()=>"---").join(" | ")} |`}
84
84
  ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
85
- `)}`}:{success:!0,content:JSON.stringify({data:i,rowCount:i.length,columnCount:i[0]?.length||0}),data:i}}catch(n){return{success:!1,error:n.message}}}async function Co(e){try{return await navigator.clipboard.writeText(e),{success:!0,message:c("pageTools.copiedToClipboard")}}catch{try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.left="-9999px",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),{success:!0,message:c("pageTools.copiedToClipboardFallback")}}catch(t){return{success:!1,error:t.message}}}}async function Ao(){try{return{success:!0,content:await navigator.clipboard.readText()}}catch(e){return{success:!1,error:e.message}}}async function Eo(e){try{let t=P(e);if(!t)return{success:!1,error:c("pageTools.elementNotFound",{selector:e})};let o=X();t.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),t.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let n=await Q(o,300,2e3),a=n.changed?n.urlChanged?c("pageTools.navChangeHint",{ms:n.waitedMs}):c("pageTools.domChangeHint",{ms:n.waitedMs}):"";return{success:!0,message:c("pageTools.hoverTriggered",{selector:e,hint:a}),...n}}catch(t){return{success:!1,error:t.message}}}function Io(e,t="yellow"){try{if(!e)return{success:!1,error:c("pageTools.noHighlightText")};$e();let o=document.createElement("style");o.id="ai-helper-highlight-style",o.textContent=`
85
+ `)}`}:{success:!0,content:JSON.stringify({data:i,rowCount:i.length,columnCount:i[0]?.length||0}),data:i}}catch(n){return{success:!1,error:n.message}}}async function No(e){try{return await navigator.clipboard.writeText(e),{success:!0,message:d("pageTools.copiedToClipboard")}}catch{try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.left="-9999px",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),{success:!0,message:d("pageTools.copiedToClipboardFallback")}}catch(t){return{success:!1,error:t.message}}}}async function Do(){try{return{success:!0,content:await navigator.clipboard.readText()}}catch(e){return{success:!1,error:e.message}}}async function Fo(e){try{let t=P(e);if(!t)return{success:!1,error:d("pageTools.elementNotFound",{selector:e})};let o=Y();t.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),t.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let n=await X(o,300,2e3);return{success:!0,message:d("pageTools.hoverTriggered",{selector:e,hint:n.changed?n.urlChanged?d("pageTools.navChangeHint",{ms:n.waitedMs}):d("pageTools.domChangeHint",{ms:n.waitedMs}):""}),...n}}catch(t){return{success:!1,error:t.message}}}function Ho(e,t="yellow"){try{if(!e)return{success:!1,error:d("pageTools.noHighlightText")};We();let o=document.createElement("style");o.id="ai-helper-highlight-style",o.textContent=`
86
86
  .ai-helper-highlight {
87
87
  background-color: ${t} !important;
88
88
  padding: 2px 0;
89
89
  }
90
- `,document.head.appendChild(o);let n=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,!1),a=[],i;for(;i=n.nextNode();)i.nodeValue.toLowerCase().includes(e.toLowerCase())&&a.push(i);let r=[];return a.forEach(l=>{let s=l.parentNode;if(!s||!s.replaceChild||!s.insertBefore)return;let d=l.nodeValue,u=d.toLowerCase(),p=d.toLowerCase(),m=u.indexOf(p);if(m!==-1){let g=document.createElement("span");g.className="ai-helper-highlight",g.textContent=d.substring(m,m+d.length);let h=document.createTextNode(d.substring(0,m)),b=document.createTextNode(d.substring(m+d.length));s.replaceChild(b,l),s.insertBefore(g,b),s.insertBefore(h,g),r.push(g)}}),r.length>0&&r[0].scrollIntoView({behavior:"smooth",block:"center"}),{success:!0,message:c("pageTools.highlightedCount",{count:r.length}),count:r.length}}catch(o){return{success:!1,error:o.message}}}A("zh",{interactionTools:{selectorRequired:"\u9009\u62E9\u5668\u4E0D\u80FD\u4E3A\u7A7A",elementNotFoundBySelector:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u5143\u7D20: {selector}",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",clickedElement:"\u5DF2\u70B9\u51FB\u5143\u7D20: {selector}{hint}",elementNotFound:"\u672A\u627E\u5230\u5143\u7D20",optionNotFound:"\u672A\u627E\u5230\u5339\u914D\u7684\u9009\u9879",radioButtonNotFound:"\u672A\u627E\u5230\u5339\u914D\u7684\u5355\u9009\u6309\u94AE",formFillComplete:"\u8868\u5355\u586B\u5145\u5B8C\u6210\uFF0C\u6210\u529F {success}/{total} \u4E2A\u5B57\u6BB5",elementNotFoundShort:"\u672A\u627E\u5230\u5143\u7D20: {selector}",invalidScrollTarget:"\u65E0\u6548\u7684\u6EDA\u52A8\u76EE\u6807\u6216\u7F3A\u5C11\u9009\u62E9\u5668",scrollComplete:"\u6EDA\u52A8\u5B8C\u6210",elementAppeared:"\u5143\u7D20 {selector} \u5DF2\u51FA\u73B0",elementDisappeared:"\u5143\u7D20 {selector} \u5DF2\u6D88\u5931",elementVisible:"\u5143\u7D20 {selector} \u5DF2\u53EF\u89C1",elementHidden:"\u5143\u7D20 {selector} \u5DF2\u9690\u85CF",waitTimeout:"\u7B49\u5F85\u8D85\u65F6\uFF08{timeout}ms\uFF09\uFF0C\u5143\u7D20 {selector} \u672A\u8FBE\u5230 {state} \u72B6\u6001",noFocusedElement:"\u6CA1\u6709\u805A\u7126\u7684\u5143\u7D20",keyboardInputSuccess:"\u952E\u76D8\u8F93\u5165\u6210\u529F{hint}",sourceElementNotFound:"\u672A\u627E\u5230\u6E90\u5143\u7D20: {selector}",targetElementNotFound:"\u672A\u627E\u5230\u76EE\u6807\u5143\u7D20: {selector}",dragExperimental:"\u26A0\uFE0F\u62D6\u62FD\u4E3A\u5B9E\u9A8C\u6027\uFF0C\u53EF\u80FD\u672A\u751F\u6548\uFF08{source} \u2192 {target}\uFF09\u3002\u53D7\u6D4F\u89C8\u5668 dataTransfer \u9650\u5236\uFF0C\u4F9D\u8D56\u62D6\u62FD\u6570\u636E\u7684\u7F51\u9875\u591A\u6570\u65E0\u6CD5\u89E6\u53D1\uFF0C\u5EFA\u8BAE\u9A8C\u8BC1\u7ED3\u679C\u6216\u6539\u7528\u70B9\u51FB\u5750\u6807\u5B9E\u73B0",fileUploadNotFound:"\u672A\u627E\u5230\u6587\u4EF6\u4E0A\u4F20\u63A7\u4EF6: {selector}",notFileUploadControl:"\u9009\u62E9\u7684\u5143\u7D20\u4E0D\u662F\u6587\u4EF6\u4E0A\u4F20\u63A7\u4EF6",fileUploaded:"\u5DF2\u4E0A\u4F20\u6587\u4EF6: {fileName}",textRequired:"text \u4E0D\u80FD\u4E3A\u7A7A",hoveredByText:'\u5DF2\u60AC\u505C\u6587\u672C"{text}"\u5BF9\u5E94\u7684{tag}\u5143\u7D20{hint}',clickedByText:'\u5DF2\u70B9\u51FB\u6587\u672C"{text}"\u5BF9\u5E94\u7684{tag}\u5143\u7D20{hint}',textNotFound:'\u9875\u9762\u4E2D\u4E0D\u5B58\u5728\u6587\u672C"{text}"\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u64CD\u4F5C\uFF08\u5982\u6253\u5F00\u4E0B\u62C9\u9762\u677F\uFF09\u6216\u6587\u672C\u6709\u8BEF',textFoundButHidden:'\u627E\u5230\u6587\u672C"{text}"\u4F46\u5143\u7D20\u4E0D\u53EF\u89C1\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u6253\u5F00\u4E0B\u62C9\u9762\u677F/\u6EDA\u52A8\u5230\u53EF\u89C1\u533A\u57DF',textNotClickable:'\u627E\u5230\u6587\u672C"{text}"\u4F46\u4E0D\u5728\u53EF\u70B9\u51FB\u5143\u7D20\u4E2D\uFF0C\u8BF7\u7528 query_elements \u67E5\u770B\u5B9E\u9645\u7ED3\u6784\u6216\u7528 selector \u5B9A\u4F4D',textFoundButNotMatched:'\u627E\u5230\u6587\u672C"{text}"\u5728\u53EF\u70B9\u51FB\u5143\u7D20\u4E2D\u4F46\u672A\u5339\u914D\uFF0C\u53EF\u80FD\u6587\u672C\u88AB\u5206\u5272\u6216\u5927\u5C0F\u5199\u4E0D\u4E00\u81F4',tagConstraint:"\uFF08\u9650\u5B9A\u6807\u7B7E: {tag}\uFF09",triggerNotFound:"\u672A\u627E\u5230\u89E6\u53D1\u5668: {selector}",selectedOption:"\u5DF2\u9009\u62E9: {label}",selectOptionNotFound:'\u5728 <select> \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u9009\u9879: "{option}"',optionContainerNotFound:"\u672A\u627E\u5230\u9009\u9879\u5BB9\u5668: {selector}",optionMatchTimeout:'\u5728 {timeout}ms \u5185\u672A\u627E\u5230\u5339\u914D\u9009\u9879: "{option}"',setRequiresKeyValue:"set\u64CD\u4F5C\u9700\u8981\u63D0\u4F9Bkey\u548Cvalue",keySet:"\u5DF2\u8BBE\u7F6E {key}",removeRequiresKey:"remove\u64CD\u4F5C\u9700\u8981\u63D0\u4F9Bkey",keyRemoved:"\u5DF2\u5220\u9664 {key}",storageCleared:"\u5DF2\u6E05\u7A7A\u5B58\u50A8",unknownAction:"\u672A\u77E5\u64CD\u4F5C: {action}"}}),A("en",{interactionTools:{selectorRequired:"Selector cannot be empty",elementNotFoundBySelector:"No element found matching selector: {selector}",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",clickedElement:"Clicked element: {selector}{hint}",elementNotFound:"Element not found",optionNotFound:"No matching option found",radioButtonNotFound:"No matching radio button found",formFillComplete:"Form fill complete: {success}/{total} fields succeeded",elementNotFoundShort:"Element not found: {selector}",invalidScrollTarget:"Invalid scroll target or missing selector",scrollComplete:"Scroll complete",elementAppeared:"Element {selector} appeared",elementDisappeared:"Element {selector} disappeared",elementVisible:"Element {selector} is visible",elementHidden:"Element {selector} is hidden",waitTimeout:"Timed out ({timeout}ms); element {selector} did not reach {state} state",noFocusedElement:"No focused element",keyboardInputSuccess:"Keyboard input successful{hint}",sourceElementNotFound:"Source element not found: {selector}",targetElementNotFound:"Target element not found: {selector}",dragExperimental:"\u26A0\uFE0F Drag is experimental and may not have worked ({source} \u2192 {target}). Due to browser dataTransfer limitations, most pages relying on drag data cannot be triggered; please verify the result or use click coordinates instead",fileUploadNotFound:"File upload control not found: {selector}",notFileUploadControl:"The selected element is not a file upload control",fileUploaded:"File uploaded: {fileName}",textRequired:"text cannot be empty",hoveredByText:'Hovered over the {tag} element matching "{text}"{hint}',clickedByText:'Clicked the {tag} element matching "{text}"{hint}',textNotFound:'Text "{text}" does not exist on the page; you may need to perform an action first (e.g. open a dropdown) or the text may be incorrect',textFoundButHidden:'Found text "{text}" but the element is not visible; you may need to open a dropdown panel or scroll to make it visible',textNotClickable:'Found text "{text}" but it is not in a clickable element; use query_elements to inspect the structure or use a selector to locate it',textFoundButNotMatched:'Found text "{text}" in a clickable element but it did not match; the text may be split or have different casing',tagConstraint:" (tag constraint: {tag})",triggerNotFound:"Trigger not found: {selector}",selectedOption:"Selected: {label}",selectOptionNotFound:'No matching option found in <select>: "{option}"',optionContainerNotFound:"Option container not found: {selector}",optionMatchTimeout:'No matching option found within {timeout}ms: "{option}"',setRequiresKeyValue:"Set operation requires both key and value",keySet:"Set {key}",removeRequiresKey:"Remove operation requires a key",keyRemoved:"Removed {key}",storageCleared:"Storage cleared",unknownAction:"Unknown action: {action}"}});async function Ro(e,t=300,o=2e3){try{if(!e)return{success:!1,error:c("interactionTools.selectorRequired")};let n=e.trim();for(let[s,d]of[[/^"([\s\S]*)"$/,"$1"],[/^'([\s\S]*)'$/,"$1"],[/^`([\s\S]*)`$/,"$1"],[/^"([\s\S]*)"$/,"$1"],[/^'([\s\S]*)'$/,"$1"],[/^「([\s\S]*)」$/,"$1"]])n=n.replace(s,d);let a=P(n);if(!a)return{success:!1,error:c("interactionTools.elementNotFoundBySelector",{selector:e})};let i=X();a.click();let r=await Q(i,t,o),l=r.changed?c(r.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:r.waitedMs}):"";return{success:!0,message:c("interactionTools.clickedElement",{selector:e,hint:l}),...r}}catch(n){return{success:!1,error:n.message}}}function Po(e,t=500){try{let o=[];e.forEach(a=>{let{selector:i,ref:r,value:l,fieldType:s="text"}=a,d=i||`ref=${r}`,u=null;if(r==null?i&&(u=P(i)):u=ao(r),!u){o.push({selector:d,success:!1,error:c("interactionTools.elementNotFound")});return}try{if(s==="text"){if(Tt(u)){let p=Re(u,l);o.push({selector:d,success:p,value:l});return}Ie(u,l),u.dispatchEvent(new Event("input",{bubbles:!0})),u.dispatchEvent(new Event("change",{bubbles:!0}))}else if(s==="contenteditable"){let p=Re(u,l);o.push({selector:d,success:p,value:l});return}else if(s==="select"){let p=u.querySelector(`option[value="${l}"]`)||Array.from(u.options).find(m=>m.textContent===l);if(p)u.value=p.value,u.dispatchEvent(new Event("change",{bubbles:!0}));else{o.push({selector:d,success:!1,error:c("interactionTools.optionNotFound")});return}}else if(s==="checkbox")u.checked=l==="true"||l===!0,u.dispatchEvent(new Event("change",{bubbles:!0}));else if(s==="radio"){let p=i?P(`${i}[value="${l}"]`):null;if(!p&&!i&&u.tagName==="INPUT"&&u.type==="radio")if(u.value===String(l))p=u;else{let m=u.getAttribute("name");if(m){let g=u.getRootNode();p=Array.from(g.querySelectorAll('input[type="radio"]')).find(h=>h.name===m&&h.value===String(l))||null}}if(p)p.checked=!0,p.dispatchEvent(new Event("change",{bubbles:!0}));else{o.push({selector:d,success:!1,error:c("interactionTools.radioButtonNotFound")});return}}o.push({selector:d,success:!0,value:l})}catch(p){o.push({selector:d,success:!1,error:p.message})}});let n=o.filter(a=>a.success).length;return{success:!0,message:c("interactionTools.formFillComplete",{success:n,total:e.length}),details:o}}catch(o){return{success:!1,error:o.message}}}function Mo(e){try{let{target:t="selector",selector:o,x:n=0,y:a=0,behavior:i="smooth",align:r="center"}=e,l=!1;if(t==="top")l=(window.scrollY||0)<=0&&(document.documentElement.scrollTop||0)<=0,window.scrollTo({top:0,left:0,behavior:i});else if(t==="bottom"){let d=document.scrollingElement||document.documentElement;l=(window.scrollY||0)+(window.innerHeight||0)>=d.scrollHeight-1,window.scrollTo({top:document.body.scrollHeight,left:0,behavior:i})}else if(t==="coordinates")l=Math.abs((window.scrollY||0)-a)<1&&Math.abs((window.scrollX||0)-n)<1,window.scrollTo({top:a,left:n,behavior:i});else if(t==="selector"&&o){let d=P(o);if(!d)return{success:!1,error:c("interactionTools.elementNotFoundShort",{selector:o})};d.scrollIntoView({behavior:i,block:r})}else return{success:!1,error:c("interactionTools.invalidScrollTarget")};let s={success:!0,message:c("interactionTools.scrollComplete")};return l&&(s.moved=!1),s}catch(t){return{success:!1,error:t.message}}}function mt(e){if(!e)return!1;if(e.offsetParent===null&&e.tagName!=="BODY"){let i=window.getComputedStyle(e);if(i.display==="none"||i.visibility==="hidden"||i.position!=="fixed")return!1}let t=window.getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden"||parseFloat(t.opacity)<=0)return!1;let o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;let n=window.innerHeight||document.documentElement.clientHeight,a=window.innerWidth||document.documentElement.clientWidth;return o.top<n&&o.bottom>0&&o.left<a&&o.right>0}function Lo(e,t="appeared",o=1e4){return new Promise((n,a)=>{let i=Date.now(),r=()=>{let l=P(e);if(t==="appeared"&&l){n({success:!0,message:c("interactionTools.elementAppeared",{selector:e}),element:e});return}if(t==="disappeared"&&!l){n({success:!0,message:c("interactionTools.elementDisappeared",{selector:e})});return}if(t==="visible"&&l&&mt(l)){n({success:!0,message:c("interactionTools.elementVisible",{selector:e}),element:e});return}if(t==="hidden"&&(!l||!mt(l))){n({success:!0,message:c("interactionTools.elementHidden",{selector:e})});return}if(Date.now()-i>o){n({success:!1,error:c("interactionTools.waitTimeout",{timeout:o,selector:e,state:t})});return}setTimeout(r,100)};r()})}var gt={enter:{code:"Enter",keyCode:13},escape:{code:"Escape",keyCode:27},esc:{code:"Escape",keyCode:27},tab:{code:"Tab",keyCode:9},backspace:{code:"Backspace",keyCode:8},delete:{code:"Delete",keyCode:46},arrowup:{code:"ArrowUp",keyCode:38},arrowdown:{code:"ArrowDown",keyCode:40},arrowleft:{code:"ArrowLeft",keyCode:37},arrowright:{code:"ArrowRight",keyCode:39},home:{code:"Home",keyCode:36},end:{code:"End",keyCode:35},pageup:{code:"PageUp",keyCode:33},pagedown:{code:"PageDown",keyCode:34},space:{code:"Space",keyCode:32}};function No(e){let t=e.toLowerCase();if(gt[t])return gt[t];if(e.length===1&&/[a-zA-Z]/.test(e))return{code:`Key${e.toUpperCase()}`,keyCode:e.toUpperCase().charCodeAt(0)};if(e.length===1&&/[0-9]/.test(e))return{code:`Digit${e}`,keyCode:e.charCodeAt(0)};let o=e.match(/^F([1-9]|1[0-2])$/i);if(o){let n=parseInt(o[1],10);return{code:`F${n}`,keyCode:111+n}}return{code:e,keyCode:e.toUpperCase().charCodeAt(0)}}async function Do({key:e,text:t,ctrlKey:o=!1,shiftKey:n=!1,altKey:a=!1}){try{let i=document.activeElement;if(!i)return{success:!1,error:c("interactionTools.noFocusedElement")};let r=X();if(t){let d=i.tagName==="INPUT"||i.tagName==="TEXTAREA",u=i.isContentEditable;if(d||u){if(i.focus(),u)try{document.execCommand("selectAll",!1,null),document.execCommand("insertText",!1,t)}catch{i.textContent+=t}else Ie(i,i.value+t);try{i.dispatchEvent(new InputEvent("input",{bubbles:!0,cancelable:!0,inputType:"insertText",data:t}))}catch{i.dispatchEvent(new Event("input",{bubbles:!0}))}i.dispatchEvent(new Event("change",{bubbles:!0}))}}if(e){let d=No(e),u={key:e,code:d.code,keyCode:d.keyCode,which:d.keyCode,bubbles:!0,cancelable:!0,ctrlKey:o,shiftKey:n,altKey:a};document.activeElement.dispatchEvent(new KeyboardEvent("keydown",u)),document.activeElement.dispatchEvent(new KeyboardEvent("keypress",u)),document.activeElement.dispatchEvent(new KeyboardEvent("keyup",u))}let l=await Q(r,300,2e3),s=l.changed?c(l.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:l.waitedMs}):"";return{success:!0,message:c("interactionTools.keyboardInputSuccess",{hint:s}),...l}}catch(i){return{success:!1,error:i.message}}}function Fo(e,t){return new Promise((o,n)=>{try{let a=P(e),i=P(t);if(!a){o({success:!1,error:c("interactionTools.sourceElementNotFound",{selector:e})});return}if(!i){o({success:!1,error:c("interactionTools.targetElementNotFound",{selector:t})});return}let r=a.getBoundingClientRect(),l=i.getBoundingClientRect(),s=r.left+r.width/2,d=r.top+r.height/2,u=l.left+l.width/2,p=l.top+l.height/2,m=(g,h,b)=>{let x=new DragEvent(g,{bubbles:!0,cancelable:!0,clientX:h,clientY:b,screenX:h,screenY:b});Object.defineProperty(x,"dataTransfer",{value:{getData:()=>"",setData:()=>{},effectAllowed:"all",dropEffect:"none"}}),document.elementFromPoint(h,b)?.dispatchEvent(x)};m("dragstart",s,d),m("dragenter",u,p),m("dragover",u,p),m("drop",u,p),m("dragend",s,d),o({success:!0,experimental:!0,message:c("interactionTools.dragExperimental",{source:e,target:t})})}catch(a){o({success:!1,error:a.message})}})}function Ho(e,t,o,n="application/octet-stream"){try{let a=P(e);if(!a)return{success:!1,error:c("interactionTools.fileUploadNotFound",{selector:e})};if(a.type!=="file")return{success:!1,error:c("interactionTools.notFileUploadControl")};let i;try{let s=atob(o),d=new Uint8Array(s.length);for(let u=0;u<s.length;u++)d[u]=s.charCodeAt(u);i=new Blob([d],{type:n})}catch{i=new Blob([o],{type:n})}let r=new File([i],t,{type:n}),l=new DataTransfer;return l.items.add(r),a.files=l.files,a.dispatchEvent(new Event("change",{bubbles:!0})),{success:!0,message:c("interactionTools.fileUploaded",{fileName:t})}}catch(a){return{success:!1,error:a.message}}}async function Bo(e,t={}){let{tag:o,action:n="click",waitTime:a=300,timeout:i=2e3}=t;if(!e)return{success:!1,error:c("interactionTools.textRequired")};let r=o?[o]:["button",'[role="button"]','input[type="submit"]','input[type="button"]',"a[href]",'[role="menuitem"]','[role="menuitemradio"]','[role="menuitemcheckbox"]','[role="option"]','[role="tab"]',"[onclick]","summary","li"],l=e.toLowerCase();for(let m of r){let g=[];try{g=ee(m)}catch{continue}for(let h of g){let b=(h.textContent||h.value||"").trim();if(!b)continue;let x=b.toLowerCase();if(b===e||x===l||x.includes(l)){let T=window.getComputedStyle(h);if(T.display==="none"||T.visibility==="hidden"||parseFloat(T.opacity)<=0)continue;let S=be(h),I=X();if(n==="hover"){h.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),h.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let z=await Q(I,a,i),C=z.changed?c(z.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:z.waitedMs}):"";return{success:!0,message:c("interactionTools.hoveredByText",{text:e,tag:h.tagName.toLowerCase(),hint:C}),selector:S,matchedText:b.substring(0,100),...z}}h.click();let B=await Q(I,a,i),ne=B.changed?c(B.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:B.waitedMs}):"";return{success:!0,message:c("interactionTools.clickedByText",{text:e,tag:h.tagName.toLowerCase(),hint:ne}),selector:S,matchedText:b.substring(0,100),...B}}}}let s=!1,d=!1,u=!1;try{let m=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null);for(;m.nextNode();)if((m.currentNode.textContent||"").toLowerCase().includes(l)){s=!0;let g=m.currentNode.parentElement;if(g){let h=window.getComputedStyle(g);(h.display==="none"||h.visibility==="hidden"||parseFloat(h.opacity)<=0)&&(d=!0),g.closest('button, [role="button"], [role="option"], [role="tab"], li, a[href], [onclick], summary, [tabindex]')||(u=!0)}break}}catch{}let p;return p=c(s?d?"interactionTools.textFoundButHidden":u?"interactionTools.textNotClickable":"interactionTools.textFoundButNotMatched":"interactionTools.textNotFound",{text:e}),{success:!1,error:p+(o?c("interactionTools.tagConstraint",{tag:o}):"")}}function Oo(e,t,o=null,n=5e3){return new Promise(async a=>{try{let i=P(e);if(!i){a({success:!1,error:c("interactionTools.triggerNotFound",{selector:e})});return}if(i.tagName==="SELECT"){let d=i.options;for(let u=0;u<d.length;u++){let p=d[u],m=(p.textContent||p.label||"").trim();if(m===t||m.includes(t)){i.value=p.value,i.dispatchEvent(new Event("change",{bubbles:!0})),i.dispatchEvent(new Event("input",{bubbles:!0})),a({success:!0,message:c("interactionTools.selectedOption",{label:m}),triggerTag:"SELECT"});return}}a({success:!1,error:c("interactionTools.selectOptionNotFound",{option:t}),availableOptions:Array.from(d).map(u=>u.textContent?.trim()).filter(Boolean)});return}i.click(),await new Promise(d=>setTimeout(d,300));let r=Date.now(),l=o?P(o):document;if(!l){a({success:!1,error:c("interactionTools.optionContainerNotFound",{selector:o})});return}let s=null;for(;Date.now()-r<n;){let d=ee('li, [role="option"], [role="menuitem"], .option, .dropdown-item, .select-item, [data-value], div',l);for(let u of d){let p=(u.textContent||"").trim();if(!(p.length<2)&&(p===t||p.includes(t)||p.replace(/\s+/g,"")===t.replace(/\s+/g,""))){s=u;break}}if(s)break;await new Promise(u=>setTimeout(u,100))}if(!s){a({success:!1,error:c("interactionTools.optionMatchTimeout",{timeout:n,option:t})});return}s.click(),a({success:!0,message:c("interactionTools.selectedOption",{label:s.textContent?.trim()}),triggerTag:i.tagName})}catch(i){a({success:!1,error:i.message})}})}function _o({action:e,storage:t,key:o,value:n}){try{let a=t==="session"?sessionStorage:localStorage;switch(e){case"get":if(!o){let r={};for(let l=0;l<a.length;l++){let s=a.key(l);r[s]=a.getItem(s)}return{success:!0,content:JSON.stringify(r),data:r}}let i=a.getItem(o);return{success:!0,content:JSON.stringify({key:o,value:i}),value:i};case"set":return!o||n===void 0?{success:!1,error:c("interactionTools.setRequiresKeyValue")}:(a.setItem(o,n),{success:!0,message:c("interactionTools.keySet",{key:o})});case"remove":return o?(a.removeItem(o),{success:!0,message:c("interactionTools.keyRemoved",{key:o})}):{success:!1,error:c("interactionTools.removeRequiresKey")};case"clear":return a.clear(),{success:!0,message:c("interactionTools.storageCleared")};default:return{success:!1,error:c("interactionTools.unknownAction",{action:e})}}}catch(a){return{success:!1,error:a.message}}}A("zh",{advancedTools:{close:"\u5173\u95ED",qrcodeLibNotLoaded:"QRCode \u5E93\u672A\u52A0\u8F7D\uFF0C\u5DF2\u4F7F\u7528 SVG \u964D\u7EA7\u65B9\u6848\u751F\u6210",qrcodeLibAndFallbackUnavailable:"\u4E8C\u7EF4\u7801\u5E93\u672A\u52A0\u8F7D\u4E14\u964D\u7EA7\u65B9\u6848\u4E0D\u53EF\u7528",targetElementNotFound:"\u672A\u627E\u5230\u76EE\u6807\u5143\u7D20",screenshotFailed:"\u622A\u56FE\u5931\u8D25",cssParamRequired:"css \u53C2\u6570\u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32",unsupportedInjectMode:"\u4E0D\u652F\u6301\u7684 injectMode: {mode}\uFF0C\u652F\u6301 'style' \u6216 'inline'"}}),A("en",{advancedTools:{close:"Close",qrcodeLibNotLoaded:"QRCode library not loaded, used SVG fallback",qrcodeLibAndFallbackUnavailable:"QRCode library not loaded and fallback unavailable",targetElementNotFound:"Target element not found",screenshotFailed:"Screenshot failed",cssParamRequired:"css parameter must be a non-empty string",unsupportedInjectMode:"Unsupported injectMode: {mode}; supported: 'style' or 'inline'"}});function qo(e,t){try{let o=document.createElement("canvas");o.width=t,o.height=t;let n=o.getContext("2d");n.fillStyle="#FFFFFF",n.fillRect(0,0,t,t);let a=[];for(let p=0;p<e.length;p++)a.push(e.charCodeAt(p));let i=Math.max(2,Math.floor(t/41)),r=Math.floor(t/i),l=Math.floor((t-r*i)/2);n.fillStyle="#000000";let s=(p,m)=>{let g=7*i;n.fillRect(p,m,g,g),n.fillStyle="#FFFFFF",n.fillRect(p+i,m+i,g-2*i,g-2*i),n.fillStyle="#000000",n.fillRect(p+2*i,m+2*i,g-4*i,g-4*i),n.fillStyle="#000000"};s(l,l),s(l+(r-7)*i,l),s(l,l+(r-7)*i);let d=0;for(let p=0;p<e.length;p++)d=(d<<5)-d+e.charCodeAt(p),d|=0;let u=p=>{let m=p+1831565813;return m=Math.imul(m^m>>>15,m|1),m^=m+Math.imul(m^m>>>7,m|61),((m^m>>>14)>>>0)/4294967296};for(let p=0;p<r;p++)for(let m=0;m<r;m++){let g=p<8&&m<8,h=p<8&&m>=r-8,b=p>=r-8&&m<8;g||h||b||u(d+p*r+m)>.5&&n.fillRect(l+m*i,l+p*i,i,i)}return o.toDataURL("image/png")}catch{return null}}function Uo(e="",t=200,o="M",n=!0){return new Promise(a=>{try{let i=e||window.location.href,r=document.createElement("div");r.id="ai-helper-qrcode",r.style.cssText=`
90
+ `,document.head.appendChild(o);let n=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,!1),a=[],i;for(;i=n.nextNode();)i.nodeValue.toLowerCase().includes(e.toLowerCase())&&a.push(i);let r=[];return a.forEach(l=>{let s=l.parentNode;if(!s||!s.replaceChild||!s.insertBefore)return;let c=l.nodeValue,u=c.toLowerCase(),p=c.toLowerCase(),m=u.indexOf(p);if(m!==-1){let h=document.createElement("span");h.className="ai-helper-highlight",h.textContent=c.substring(m,m+c.length);let g=document.createTextNode(c.substring(0,m)),b=document.createTextNode(c.substring(m+c.length));s.replaceChild(b,l),s.insertBefore(h,b),s.insertBefore(g,h),r.push(h)}}),r.length>0&&r[0].scrollIntoView({behavior:"smooth",block:"center"}),{success:!0,message:d("pageTools.highlightedCount",{count:r.length}),count:r.length}}catch(o){return{success:!1,error:o.message}}}A("zh",{interactionTools:{selectorRequired:"\u9009\u62E9\u5668\u4E0D\u80FD\u4E3A\u7A7A",elementNotFoundBySelector:"\u672A\u627E\u5230\u5339\u914D\u9009\u62E9\u5668\u7684\u5143\u7D20: {selector}",navChangeHint:"\uFF08\u68C0\u6D4B\u5230\u5BFC\u822A\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",domChangeHint:"\uFF08\u68C0\u6D4B\u5230DOM\u53D8\u5316\uFF0C\u5DF2\u7B49\u5F85 {ms}ms\uFF09",clickedElement:"\u5DF2\u70B9\u51FB\u5143\u7D20: {selector}{hint}",elementNotFound:"\u672A\u627E\u5230\u5143\u7D20",optionNotFound:"\u672A\u627E\u5230\u5339\u914D\u7684\u9009\u9879",radioButtonNotFound:"\u672A\u627E\u5230\u5339\u914D\u7684\u5355\u9009\u6309\u94AE",formFillComplete:"\u8868\u5355\u586B\u5145\u5B8C\u6210\uFF0C\u6210\u529F {success}/{total} \u4E2A\u5B57\u6BB5",elementNotFoundShort:"\u672A\u627E\u5230\u5143\u7D20: {selector}",invalidScrollTarget:"\u65E0\u6548\u7684\u6EDA\u52A8\u76EE\u6807\u6216\u7F3A\u5C11\u9009\u62E9\u5668",scrollComplete:"\u6EDA\u52A8\u5B8C\u6210",elementAppeared:"\u5143\u7D20 {selector} \u5DF2\u51FA\u73B0",elementDisappeared:"\u5143\u7D20 {selector} \u5DF2\u6D88\u5931",elementVisible:"\u5143\u7D20 {selector} \u5DF2\u53EF\u89C1",elementHidden:"\u5143\u7D20 {selector} \u5DF2\u9690\u85CF",waitTimeout:"\u7B49\u5F85\u8D85\u65F6\uFF08{timeout}ms\uFF09\uFF0C\u5143\u7D20 {selector} \u672A\u8FBE\u5230 {state} \u72B6\u6001",noFocusedElement:"\u6CA1\u6709\u805A\u7126\u7684\u5143\u7D20",keyboardInputSuccess:"\u952E\u76D8\u8F93\u5165\u6210\u529F{hint}",fileUploadNotFound:"\u672A\u627E\u5230\u6587\u4EF6\u4E0A\u4F20\u63A7\u4EF6: {selector}",notFileUploadControl:"\u9009\u62E9\u7684\u5143\u7D20\u4E0D\u662F\u6587\u4EF6\u4E0A\u4F20\u63A7\u4EF6",fileUploaded:"\u5DF2\u4E0A\u4F20\u6587\u4EF6: {fileName}",textRequired:"text \u4E0D\u80FD\u4E3A\u7A7A",hoveredByText:'\u5DF2\u60AC\u505C\u6587\u672C"{text}"\u5BF9\u5E94\u7684{tag}\u5143\u7D20{hint}',clickedByText:'\u5DF2\u70B9\u51FB\u6587\u672C"{text}"\u5BF9\u5E94\u7684{tag}\u5143\u7D20{hint}',textNotFound:'\u9875\u9762\u4E2D\u4E0D\u5B58\u5728\u6587\u672C"{text}"\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u64CD\u4F5C\uFF08\u5982\u6253\u5F00\u4E0B\u62C9\u9762\u677F\uFF09\u6216\u6587\u672C\u6709\u8BEF',textFoundButHidden:'\u627E\u5230\u6587\u672C"{text}"\u4F46\u5143\u7D20\u4E0D\u53EF\u89C1\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u6253\u5F00\u4E0B\u62C9\u9762\u677F/\u6EDA\u52A8\u5230\u53EF\u89C1\u533A\u57DF',textNotClickable:'\u627E\u5230\u6587\u672C"{text}"\u4F46\u4E0D\u5728\u53EF\u70B9\u51FB\u5143\u7D20\u4E2D\uFF0C\u8BF7\u7528 query_elements \u67E5\u770B\u5B9E\u9645\u7ED3\u6784\u6216\u7528 selector \u5B9A\u4F4D',textFoundButNotMatched:'\u627E\u5230\u6587\u672C"{text}"\u5728\u53EF\u70B9\u51FB\u5143\u7D20\u4E2D\u4F46\u672A\u5339\u914D\uFF0C\u53EF\u80FD\u6587\u672C\u88AB\u5206\u5272\u6216\u5927\u5C0F\u5199\u4E0D\u4E00\u81F4',tagConstraint:"\uFF08\u9650\u5B9A\u6807\u7B7E: {tag}\uFF09",triggerNotFound:"\u672A\u627E\u5230\u89E6\u53D1\u5668: {selector}",selectedOption:"\u5DF2\u9009\u62E9: {label}",selectOptionNotFound:'\u5728 <select> \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u9009\u9879: "{option}"',optionContainerNotFound:"\u672A\u627E\u5230\u9009\u9879\u5BB9\u5668: {selector}",optionMatchTimeout:'\u5728 {timeout}ms \u5185\u672A\u627E\u5230\u5339\u914D\u9009\u9879: "{option}"',setRequiresKeyValue:"set\u64CD\u4F5C\u9700\u8981\u63D0\u4F9Bkey\u548Cvalue",keySet:"\u5DF2\u8BBE\u7F6E {key}",removeRequiresKey:"remove\u64CD\u4F5C\u9700\u8981\u63D0\u4F9Bkey",keyRemoved:"\u5DF2\u5220\u9664 {key}",storageCleared:"\u5DF2\u6E05\u7A7A\u5B58\u50A8",unknownAction:"\u672A\u77E5\u64CD\u4F5C: {action}"}}),A("en",{interactionTools:{selectorRequired:"Selector cannot be empty",elementNotFoundBySelector:"No element found matching selector: {selector}",navChangeHint:" (navigation change detected, waited {ms}ms)",domChangeHint:" (DOM change detected, waited {ms}ms)",clickedElement:"Clicked element: {selector}{hint}",elementNotFound:"Element not found",optionNotFound:"No matching option found",radioButtonNotFound:"No matching radio button found",formFillComplete:"Form fill complete: {success}/{total} fields succeeded",elementNotFoundShort:"Element not found: {selector}",invalidScrollTarget:"Invalid scroll target or missing selector",scrollComplete:"Scroll complete",elementAppeared:"Element {selector} appeared",elementDisappeared:"Element {selector} disappeared",elementVisible:"Element {selector} is visible",elementHidden:"Element {selector} is hidden",waitTimeout:"Timed out ({timeout}ms); element {selector} did not reach {state} state",noFocusedElement:"No focused element",keyboardInputSuccess:"Keyboard input successful{hint}",fileUploadNotFound:"File upload control not found: {selector}",notFileUploadControl:"The selected element is not a file upload control",fileUploaded:"File uploaded: {fileName}",textRequired:"text cannot be empty",hoveredByText:'Hovered over the {tag} element matching "{text}"{hint}',clickedByText:'Clicked the {tag} element matching "{text}"{hint}',textNotFound:'Text "{text}" does not exist on the page; you may need to perform an action first (e.g. open a dropdown) or the text may be incorrect',textFoundButHidden:'Found text "{text}" but the element is not visible; you may need to open a dropdown panel or scroll to make it visible',textNotClickable:'Found text "{text}" but it is not in a clickable element; use query_elements to inspect the structure or use a selector to locate it',textFoundButNotMatched:'Found text "{text}" in a clickable element but it did not match; the text may be split or have different casing',tagConstraint:" (tag constraint: {tag})",triggerNotFound:"Trigger not found: {selector}",selectedOption:"Selected: {label}",selectOptionNotFound:'No matching option found in <select>: "{option}"',optionContainerNotFound:"Option container not found: {selector}",optionMatchTimeout:'No matching option found within {timeout}ms: "{option}"',setRequiresKeyValue:"Set operation requires both key and value",keySet:"Set {key}",removeRequiresKey:"Remove operation requires a key",keyRemoved:"Removed {key}",storageCleared:"Storage cleared",unknownAction:"Unknown action: {action}"}});async function Oo(e,t=300,o=2e3){try{if(!e)return{success:!1,error:d("interactionTools.selectorRequired")};let n=e.trim();for(let[l,s]of[[/^"([\s\S]*)"$/,"$1"],[/^'([\s\S]*)'$/,"$1"],[/^`([\s\S]*)`$/,"$1"],[/^"([\s\S]*)"$/,"$1"],[/^'([\s\S]*)'$/,"$1"],[/^「([\s\S]*)」$/,"$1"]])n=n.replace(l,s);let a=P(n);if(!a)return{success:!1,error:d("interactionTools.elementNotFoundBySelector",{selector:e})};let i=Y();a.click();let r=await X(i,t,o);return{success:!0,message:d("interactionTools.clickedElement",{selector:e,hint:r.changed?d(r.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:r.waitedMs}):""}),...r}}catch(n){return{success:!1,error:n.message}}}function Bo(e,t=500){try{let o=[];e.forEach(a=>{let{selector:i,ref:r,value:l,fieldType:s="text"}=a,c=i||`ref=${r}`,u=null;if(r==null?i&&(u=P(i)):u=mo(r),!u){o.push({selector:c,success:!1,error:d("interactionTools.elementNotFound")});return}try{if(s==="text"){if(It(u)){let p=Re(u,l);o.push({selector:c,success:p,value:l});return}Pe(u,l),u.dispatchEvent(new Event("input",{bubbles:!0})),u.dispatchEvent(new Event("change",{bubbles:!0}))}else if(s==="contenteditable"){let p=Re(u,l);o.push({selector:c,success:p,value:l});return}else if(s==="select"){let p=u.querySelector(`option[value="${l}"]`)||Array.from(u.options).find(m=>m.textContent===l);if(p)u.value=p.value,u.dispatchEvent(new Event("change",{bubbles:!0}));else{o.push({selector:c,success:!1,error:d("interactionTools.optionNotFound")});return}}else if(s==="checkbox")u.checked=l==="true"||l===!0,u.dispatchEvent(new Event("change",{bubbles:!0}));else if(s==="radio"){let p=i?P(`${i}[value="${l}"]`):null;if(!p&&!i&&u.tagName==="INPUT"&&u.type==="radio")if(u.value===String(l))p=u;else{let m=u.getAttribute("name");if(m){let h=u.getRootNode();p=Array.from(h.querySelectorAll('input[type="radio"]')).find(g=>g.name===m&&g.value===String(l))||null}}if(p)p.checked=!0,p.dispatchEvent(new Event("change",{bubbles:!0}));else{o.push({selector:c,success:!1,error:d("interactionTools.radioButtonNotFound")});return}}o.push({selector:c,success:!0,value:l})}catch(p){o.push({selector:c,success:!1,error:p.message})}});let n=o.filter(a=>a.success).length;return{success:!0,message:d("interactionTools.formFillComplete",{success:n,total:e.length}),details:o}}catch(o){return{success:!1,error:o.message}}}function _o(e){try{let{target:t="selector",selector:o,x:n=0,y:a=0,behavior:i="smooth",align:r="center"}=e,l=!1;if(t==="top")l=(window.scrollY||0)<=0&&(document.documentElement.scrollTop||0)<=0,window.scrollTo({top:0,left:0,behavior:i});else if(t==="bottom"){let c=document.scrollingElement||document.documentElement;l=(window.scrollY||0)+(window.innerHeight||0)>=c.scrollHeight-1,window.scrollTo({top:document.body.scrollHeight,left:0,behavior:i})}else if(t==="coordinates")l=Math.abs((window.scrollY||0)-a)<1&&Math.abs((window.scrollX||0)-n)<1,window.scrollTo({top:a,left:n,behavior:i});else if(t==="selector"&&o){let c=P(o);if(!c)return{success:!1,error:d("interactionTools.elementNotFoundShort",{selector:o})};c.scrollIntoView({behavior:i,block:r})}else return{success:!1,error:d("interactionTools.invalidScrollTarget")};let s={success:!0,message:d("interactionTools.scrollComplete")};return l&&(s.moved=!1),s}catch(t){return{success:!1,error:t.message}}}function wt(e){if(!e)return!1;if(e.offsetParent===null&&e.tagName!=="BODY"){let i=window.getComputedStyle(e);if(i.display==="none"||i.visibility==="hidden"||i.position!=="fixed")return!1}let t=window.getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden"||parseFloat(t.opacity)<=0)return!1;let o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;let n=window.innerHeight||document.documentElement.clientHeight,a=window.innerWidth||document.documentElement.clientWidth;return o.top<n&&o.bottom>0&&o.left<a&&o.right>0}function qo(e,t="appeared",o=1e4){return new Promise((n,a)=>{let i=Date.now(),r=()=>{let l=P(e);if(t==="appeared"&&l){n({success:!0,message:d("interactionTools.elementAppeared",{selector:e}),element:e});return}if(t==="disappeared"&&!l){n({success:!0,message:d("interactionTools.elementDisappeared",{selector:e})});return}if(t==="visible"&&l&&wt(l)){n({success:!0,message:d("interactionTools.elementVisible",{selector:e}),element:e});return}if(t==="hidden"&&(!l||!wt(l))){n({success:!0,message:d("interactionTools.elementHidden",{selector:e})});return}if(Date.now()-i>o){n({success:!1,error:d("interactionTools.waitTimeout",{timeout:o,selector:e,state:t})});return}setTimeout(r,100)};r()})}var xt={enter:{code:"Enter",keyCode:13},escape:{code:"Escape",keyCode:27},esc:{code:"Escape",keyCode:27},tab:{code:"Tab",keyCode:9},backspace:{code:"Backspace",keyCode:8},delete:{code:"Delete",keyCode:46},arrowup:{code:"ArrowUp",keyCode:38},arrowdown:{code:"ArrowDown",keyCode:40},arrowleft:{code:"ArrowLeft",keyCode:37},arrowright:{code:"ArrowRight",keyCode:39},home:{code:"Home",keyCode:36},end:{code:"End",keyCode:35},pageup:{code:"PageUp",keyCode:33},pagedown:{code:"PageDown",keyCode:34},space:{code:"Space",keyCode:32}};function Uo(e){let t=e.toLowerCase();if(xt[t])return xt[t];if(e.length===1&&/[a-zA-Z]/.test(e))return{code:`Key${e.toUpperCase()}`,keyCode:e.toUpperCase().charCodeAt(0)};if(e.length===1&&/[0-9]/.test(e))return{code:`Digit${e}`,keyCode:e.charCodeAt(0)};let o=e.match(/^F([1-9]|1[0-2])$/i);if(o){let n=parseInt(o[1],10);return{code:`F${n}`,keyCode:111+n}}return{code:e,keyCode:e.toUpperCase().charCodeAt(0)}}async function Ko({key:e,text:t,ctrlKey:o=!1,shiftKey:n=!1,altKey:a=!1}){try{let i=document.activeElement;if(!i)return{success:!1,error:d("interactionTools.noFocusedElement")};let r=Y();if(t){let s=i.tagName==="INPUT"||i.tagName==="TEXTAREA",c=i.isContentEditable;if(s||c){if(i.focus(),c)try{document.execCommand("selectAll",!1,null),document.execCommand("insertText",!1,t)}catch{i.textContent+=t}else Pe(i,i.value+t);try{i.dispatchEvent(new InputEvent("input",{bubbles:!0,cancelable:!0,inputType:"insertText",data:t}))}catch{i.dispatchEvent(new Event("input",{bubbles:!0}))}i.dispatchEvent(new Event("change",{bubbles:!0}))}}if(e){let s=Uo(e),c={key:e,code:s.code,keyCode:s.keyCode,which:s.keyCode,bubbles:!0,cancelable:!0,ctrlKey:o,shiftKey:n,altKey:a};document.activeElement.dispatchEvent(new KeyboardEvent("keydown",c)),document.activeElement.dispatchEvent(new KeyboardEvent("keypress",c)),document.activeElement.dispatchEvent(new KeyboardEvent("keyup",c))}let l=await X(r,300,2e3);return{success:!0,message:d("interactionTools.keyboardInputSuccess",{hint:l.changed?d(l.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:l.waitedMs}):""}),...l}}catch(i){return{success:!1,error:i.message}}}function $o(e,t,o,n="application/octet-stream"){try{let a=P(e);if(!a)return{success:!1,error:d("interactionTools.fileUploadNotFound",{selector:e})};if(a.type!=="file")return{success:!1,error:d("interactionTools.notFileUploadControl")};let i;try{let s=atob(o),c=new Uint8Array(s.length);for(let u=0;u<s.length;u++)c[u]=s.charCodeAt(u);i=new Blob([c],{type:n})}catch{i=new Blob([o],{type:n})}let r=new File([i],t,{type:n}),l=new DataTransfer;return l.items.add(r),a.files=l.files,a.dispatchEvent(new Event("change",{bubbles:!0})),{success:!0,message:d("interactionTools.fileUploaded",{fileName:t})}}catch(a){return{success:!1,error:a.message}}}async function zo(e,t={}){let{tag:o,action:n="click",waitTime:a=300,timeout:i=2e3}=t;if(!e)return{success:!1,error:d("interactionTools.textRequired")};let r=o?[o]:["button",'[role="button"]','input[type="submit"]','input[type="button"]',"a[href]",'[role="menuitem"]','[role="menuitemradio"]','[role="menuitemcheckbox"]','[role="option"]','[role="tab"]',"[onclick]","summary","li"],l=e.toLowerCase();for(let m of r){let h=[];try{h=ee(m)}catch{continue}for(let g of h){let b=(g.textContent||g.value||"").trim();if(!b)continue;let x=b.toLowerCase();if(b===e||x===l||x.includes(l)){let v=window.getComputedStyle(g);if(v.display==="none"||v.visibility==="hidden"||parseFloat(v.opacity)<=0)continue;let S=we(g),I=Y();if(n==="hover"){g.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,cancelable:!0,view:window})),g.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}));let G=await X(I,a,i),C=G.changed?d(G.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:G.waitedMs}):"";return{success:!0,message:d("interactionTools.hoveredByText",{text:e,tag:g.tagName.toLowerCase(),hint:C}),selector:S,matchedText:b.substring(0,100),...G}}g.click();let O=await X(I,a,i),ne=O.changed?d(O.urlChanged?"interactionTools.navChangeHint":"interactionTools.domChangeHint",{ms:O.waitedMs}):"";return{success:!0,message:d("interactionTools.clickedByText",{text:e,tag:g.tagName.toLowerCase(),hint:ne}),selector:S,matchedText:b.substring(0,100),...O}}}}let s=!1,c=!1,u=!1;try{let m=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null);for(;m.nextNode();)if((m.currentNode.textContent||"").toLowerCase().includes(l)){s=!0;let h=m.currentNode.parentElement;if(h){let g=window.getComputedStyle(h);(g.display==="none"||g.visibility==="hidden"||parseFloat(g.opacity)<=0)&&(c=!0),h.closest('button, [role="button"], [role="option"], [role="tab"], li, a[href], [onclick], summary, [tabindex]')||(u=!0)}break}}catch{}let p;return p=d(s?c?"interactionTools.textFoundButHidden":u?"interactionTools.textNotClickable":"interactionTools.textFoundButNotMatched":"interactionTools.textNotFound",{text:e}),{success:!1,error:p+(o?d("interactionTools.tagConstraint",{tag:o}):"")}}function Go(e,t,o=null,n=5e3){return new Promise(async a=>{try{let i=P(e);if(!i){a({success:!1,error:d("interactionTools.triggerNotFound",{selector:e})});return}if(i.tagName==="SELECT"){let c=i.options;for(let u=0;u<c.length;u++){let p=c[u],m=(p.textContent||p.label||"").trim();if(m===t||m.includes(t)){i.value=p.value,i.dispatchEvent(new Event("change",{bubbles:!0})),i.dispatchEvent(new Event("input",{bubbles:!0})),a({success:!0,message:d("interactionTools.selectedOption",{label:m}),triggerTag:"SELECT"});return}}a({success:!1,error:d("interactionTools.selectOptionNotFound",{option:t}),availableOptions:Array.from(c).map(u=>u.textContent?.trim()).filter(Boolean)});return}i.click(),await new Promise(c=>setTimeout(c,300));let r=Date.now(),l=o?P(o):document;if(!l){a({success:!1,error:d("interactionTools.optionContainerNotFound",{selector:o})});return}let s=null;for(;Date.now()-r<n;){let c=ee('li, [role="option"], [role="menuitem"], .option, .dropdown-item, .select-item, [data-value], div',l);for(let u of c){let p=(u.textContent||"").trim();if(!(p.length<2)&&(p===t||p.includes(t)||p.replace(/\s+/g,"")===t.replace(/\s+/g,""))){s=u;break}}if(s)break;await new Promise(u=>setTimeout(u,100))}if(!s){a({success:!1,error:d("interactionTools.optionMatchTimeout",{timeout:n,option:t})});return}s.click(),a({success:!0,message:d("interactionTools.selectedOption",{label:s.textContent?.trim()}),triggerTag:i.tagName})}catch(i){a({success:!1,error:i.message})}})}function Wo({action:e,storage:t,key:o,value:n}){try{let a=t==="session"?sessionStorage:localStorage;switch(e){case"get":if(!o){let r={};for(let l=0;l<a.length;l++){let s=a.key(l);r[s]=a.getItem(s)}return{success:!0,content:JSON.stringify(r),data:r}}let i=a.getItem(o);return{success:!0,content:JSON.stringify({key:o,value:i}),value:i};case"set":return!o||n===void 0?{success:!1,error:d("interactionTools.setRequiresKeyValue")}:(a.setItem(o,n),{success:!0,message:d("interactionTools.keySet",{key:o})});case"remove":return o?(a.removeItem(o),{success:!0,message:d("interactionTools.keyRemoved",{key:o})}):{success:!1,error:d("interactionTools.removeRequiresKey")};case"clear":return a.clear(),{success:!0,message:d("interactionTools.storageCleared")};default:return{success:!1,error:d("interactionTools.unknownAction",{action:e})}}}catch(a){return{success:!1,error:a.message}}}A("zh",{advancedTools:{close:"\u5173\u95ED",qrcodeLibNotLoaded:"QRCode \u5E93\u672A\u52A0\u8F7D\uFF0C\u5DF2\u4F7F\u7528 SVG \u964D\u7EA7\u65B9\u6848\u751F\u6210",qrcodeLibAndFallbackUnavailable:"\u4E8C\u7EF4\u7801\u5E93\u672A\u52A0\u8F7D\u4E14\u964D\u7EA7\u65B9\u6848\u4E0D\u53EF\u7528",targetElementNotFound:"\u672A\u627E\u5230\u76EE\u6807\u5143\u7D20",screenshotFailed:"\u622A\u56FE\u5931\u8D25",cssParamRequired:"css \u53C2\u6570\u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32",unsupportedInjectMode:"\u4E0D\u652F\u6301\u7684 injectMode: {mode}\uFF0C\u652F\u6301 'style' \u6216 'inline'"}}),A("en",{advancedTools:{close:"Close",qrcodeLibNotLoaded:"QRCode library not loaded, used SVG fallback",qrcodeLibAndFallbackUnavailable:"QRCode library not loaded and fallback unavailable",targetElementNotFound:"Target element not found",screenshotFailed:"Screenshot failed",cssParamRequired:"css parameter must be a non-empty string",unsupportedInjectMode:"Unsupported injectMode: {mode}; supported: 'style' or 'inline'"}});function jo(e,t){try{let o=document.createElement("canvas");o.width=t,o.height=t;let n=o.getContext("2d");n.fillStyle="#FFFFFF",n.fillRect(0,0,t,t);let a=[];for(let p=0;p<e.length;p++)a.push(e.charCodeAt(p));let i=Math.max(2,Math.floor(t/41)),r=Math.floor(t/i),l=Math.floor((t-r*i)/2);n.fillStyle="#000000";let s=(p,m)=>{let h=7*i;n.fillRect(p,m,h,h),n.fillStyle="#FFFFFF",n.fillRect(p+i,m+i,h-2*i,h-2*i),n.fillStyle="#000000",n.fillRect(p+2*i,m+2*i,h-4*i,h-4*i),n.fillStyle="#000000"};s(l,l),s(l+(r-7)*i,l),s(l,l+(r-7)*i);let c=0;for(let p=0;p<e.length;p++)c=(c<<5)-c+e.charCodeAt(p),c|=0;let u=p=>{let m=p+1831565813;return m=Math.imul(m^m>>>15,m|1),m^=m+Math.imul(m^m>>>7,m|61),((m^m>>>14)>>>0)/4294967296};for(let p=0;p<r;p++)for(let m=0;m<r;m++){let h=p<8&&m<8,g=p<8&&m>=r-8,b=p>=r-8&&m<8;h||g||b||u(c+p*r+m)>.5&&n.fillRect(l+m*i,l+p*i,i,i)}return o.toDataURL("image/png")}catch{return null}}function Vo(e="",t=200,o="M",n=!0){return new Promise(a=>{try{let i=e||window.location.href,r=document.createElement("div");r.id="ai-helper-qrcode",r.style.cssText=`
91
91
  position: fixed;
92
92
  top: 50%;
93
93
  left: 50%;
@@ -98,7 +98,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
98
98
  border-radius: 12px;
99
99
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
100
100
  text-align: center;
101
- `;let l=document.createElement("canvas");l.width=t,l.height=t,r.appendChild(l);let s=document.createElement("p");s.textContent=i.length>50?i.substring(0,50)+"...":i,s.style.cssText="margin-top: 12px; font-size: 12px; color: #666; word-break: break-all; max-width: 200px;",r.appendChild(s);let d=document.createElement("button");if(d.textContent=c("advancedTools.close"),d.style.cssText=`
101
+ `;let l=document.createElement("canvas");l.width=t,l.height=t,r.appendChild(l);let s=document.createElement("p");s.textContent=i.length>50?i.substring(0,50)+"...":i,s.style.cssText="margin-top: 12px; font-size: 12px; color: #666; word-break: break-all; max-width: 200px;",r.appendChild(s);let c=document.createElement("button");if(c.textContent=d("advancedTools.close"),c.style.cssText=`
102
102
  margin-top: 12px;
103
103
  padding: 6px 20px;
104
104
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
@@ -106,7 +106,8 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
106
106
  border: none;
107
107
  border-radius: 20px;
108
108
  cursor: pointer;
109
- `,d.onclick=()=>{document.body.removeChild(r)},r.appendChild(d),typeof QRCode>"u"){let u=qo(i,t);if(u){let p=document.createElement("img");p.src=u,p.width=t,p.height=t,l.replaceWith(p),n&&document.body.appendChild(r),a({success:!0,content:i,size:t,dataUrl:u,shown:n,fallback:!0,warning:c("advancedTools.qrcodeLibNotLoaded")})}else a({success:!1,error:c("advancedTools.qrcodeLibAndFallbackUnavailable")});return}QRCode.toCanvas(l,i,{width:t,margin:2,color:{dark:"#000000",light:"#ffffff"},errorCorrectionLevel:o.toLowerCase()},u=>{if(u)a({success:!1,error:u.message});else{n&&document.body.appendChild(r);let p=l.toDataURL("image/png");a({success:!0,content:i,size:t,dataUrl:p,shown:n})}})}catch(i){a({success:!1,error:i.message})}})}function Ko(e,t=null,o="style"){try{if(!e||typeof e!="string")return{success:!1,error:c("advancedTools.cssParamRequired")};if(o!=="style"&&o!=="inline")return{success:!1,error:c("advancedTools.unsupportedInjectMode",{mode:o})};if(o==="style"){if(t){let n=document.querySelectorAll(t),a=`ai-helper-scoped-style-${Date.now()}`,i="",r=e.split("}");for(let s of r){let d=s.trim();if(!d)continue;let u=d.indexOf("{");if(u===-1)continue;let p=d.substring(0,u).trim(),m=d.substring(u+1).trim();i+=`#${a} ${p} { ${m} } `}n.forEach(s=>{s.setAttribute("id",a)});let l=document.createElement("style");return l.setAttribute("data-ai-helper","scoped"),l.textContent=i,document.head.appendChild(l),{success:!0,injectMode:"style",scoped:!0,selector:t,hitCount:n.length}}{let n=document.createElement("style");return n.setAttribute("data-ai-helper","global"),n.textContent=e,document.head.appendChild(n),{success:!0,injectMode:"style",scoped:!1,hitCount:0}}}if(o==="inline"){let n=t?document.querySelectorAll(t):document.querySelectorAll("*"),a=0,i={};return e.split(";").forEach(r=>{let l=r.indexOf(":");if(l===-1)return;let s=r.substring(0,l).trim(),d=r.substring(l+1).trim();s&&d&&(i[s]=d)}),n.forEach(r=>{if(r.nodeType===1){for(let[l,s]of Object.entries(i))try{r.style.setProperty(l,s)}catch{}a++}}),{success:!0,injectMode:"inline",selector:t||"*",hitCount:a}}}catch(n){return{success:!1,error:n.message}}}function $o(){if(document.getElementById("aih-selection-toolbar-styles"))return;let e=document.createElement("style");e.id="aih-selection-toolbar-styles",e.textContent=`
109
+ `,c.onclick=()=>{document.body.removeChild(r)},r.appendChild(c),typeof QRCode>"u"){let u=jo(i,t);if(u){let p=document.createElement("img");p.src=u,p.width=t,p.height=t,l.replaceWith(p),n&&document.body.appendChild(r),a({success:!0,content:i,size:t,dataUrl:u,shown:n,fallback:!0,warning:d("advancedTools.qrcodeLibNotLoaded")})}else a({success:!1,error:d("advancedTools.qrcodeLibAndFallbackUnavailable")});return}QRCode.toCanvas(l,i,{width:t,margin:2,color:{dark:"#000000",light:"#ffffff"},errorCorrectionLevel:o.toLowerCase()},u=>{u?a({success:!1,error:u.message}):(n&&document.body.appendChild(r),a({success:!0,content:i,size:t,dataUrl:l.toDataURL("image/png"),shown:n}))})}catch(i){a({success:!1,error:i.message})}})}function Qo(e){return typeof e=="string"?e.replace(/@import\b[^;{}]*;?/gi,"").replace(/url\s*\([^;{}]*\)/gi,"").replace(/expression\s*\([^;{}]*\)/gi,"").replace(/-moz-element\s*\([^;{}]*\)/gi,"").replace(/element\s*\([^;{}]*\)/gi,"").replace(/-moz-binding\b[^;}]*;?/gi,"").replace(/\bbehavior\b[^;}]*;?/gi,""):""}function Yo(e,t=null,o="style"){try{if(!e||typeof e!="string")return{success:!1,error:d("advancedTools.cssParamRequired")};if(e=Qo(e),o!=="style"&&o!=="inline")return{success:!1,error:d("advancedTools.unsupportedInjectMode",{mode:o})};if(o==="style")if(t){let n=document.querySelectorAll(t),a=`ai-helper-scoped-style-${Date.now()}`,i="",r=e.split("}");for(let s of r){let c=s.trim();if(!c)continue;let u=c.indexOf("{");if(u===-1)continue;let p=c.substring(0,u).trim(),m=c.substring(u+1).trim();i+=`#${a} ${p} { ${m} } `}n.forEach(s=>{s.setAttribute("id",a)});let l=document.createElement("style");return l.setAttribute("data-ai-helper","scoped"),l.textContent=i,document.head.appendChild(l),{success:!0,injectMode:"style",scoped:!0,selector:t,hitCount:n.length}}else{let n=document.createElement("style");return n.setAttribute("data-ai-helper","global"),n.textContent=e,document.head.appendChild(n),{success:!0,injectMode:"style",scoped:!1,hitCount:0}}if(o==="inline"){let n=t?document.querySelectorAll(t):document.querySelectorAll("*"),a=0,i={};return e.split(";").forEach(r=>{let l=r.indexOf(":");if(l===-1)return;let s=r.substring(0,l).trim(),c=r.substring(l+1).trim();s&&c&&(i[s]=c)}),n.forEach(r=>{if(r.nodeType===1){for(let[l,s]of Object.entries(i))try{r.style.setProperty(l,s)}catch{}a++}}),{success:!0,injectMode:"inline",selector:t||"*",hitCount:a}}}catch(n){return{success:!1,error:n.message}}}function qe(e,t){try{return e.querySelector(t),!0}catch{return!1}}function Xo(e,t,o){let n=e.target==null?"":String(e.target);switch(e.check){case"element_exists":return n?qe(t,n)?{available:!0,pass:!!P(n,t)}:{available:!1,reason:"invalid_selector"}:{available:!1,reason:"empty_target"};case"element_absent":return n?qe(t,n)?{available:!0,pass:!P(n,t)}:{available:!1,reason:"invalid_selector"}:{available:!1,reason:"empty_target"};case"text_contains":{let a=e.expected==null?e.target==null?"":String(e.target):String(e.expected);return a?{available:!0,pass:(be(t)||t.body&&t.body.textContent||"").includes(a)}:{available:!1,reason:"missing_expected"}}case"url_matches":{let a=n||(e.expected==null?"":String(e.expected)),i=o&&o.href?String(o.href):"";return a?i?{available:!0,pass:i.includes(a)}:{available:!1,reason:"no_href"}:{available:!1,reason:"empty_target"}}case"attribute_equals":{let a=e.expected==null?"":String(e.expected),i=a.indexOf("=");if(!n)return{available:!1,reason:"empty_target"};if(i<=0)return{available:!1,reason:"missing_expected"};if(!qe(t,n))return{available:!1,reason:"invalid_selector"};let r=P(n,t);return{available:!0,pass:!!r&&r.getAttribute(a.slice(0,i))===a.slice(i+1)}}default:return{available:!1,reason:"unknown_check"}}}function Zo(e,t,o){let n=Array.isArray(e)?e:[],a=t||(typeof document<"u"?document:null),i=o||(typeof window<"u"?window.location:null);return a?n.map(r=>{let l;try{l=Xo(r,a,i)}catch{l={available:!1,reason:"eval_error"}}return{id:r.id,check:r.check,pass:l.available?!!l.pass:!1,available:!!l.available,...l.available||!l.reason?{}:{reason:l.reason}}}):n.map(r=>({id:r.id,check:r.check,pass:!1,available:!1,reason:"no_dom"}))}var Jo="#aih-selection-toolbar, .aih-overflow-dropdown, #aih-selection-result, .aih-token-popup",en={light:{"bg-elevated":"#ffffff","tb-panel":"rgba(255,255,255,0.96)","tb-fill":"#f5f6f7","tb-hover":"#f0f0f0","tb-active":"#e4e4e4","tb-border":"#e8e8e8","tb-table-border":"#e0e0e0","tb-divider":"#f0f0f0","tb-text":"#2b3038","tb-text-2":"#5a6675","tb-text-3":"#98a1ad","tb-text-muted":"#bbbbbb","tb-accent":"#3b82f6","tb-accent-hover":"#2563eb","tb-accent-soft":"#eff6ff","tb-on-accent":"#ffffff","tb-brand":"#667eea","tb-warning":"#f59e0b","tb-warning-ink":"#b45309","tb-danger":"#e53e3e"},dark:{"bg-elevated":"#262a33","tb-panel":"rgba(28,31,38,0.94)","tb-fill":"#2a2f3a","tb-hover":"#343b48","tb-active":"#414a5a","tb-border":"#363d4a","tb-table-border":"#3f4756","tb-divider":"#2f3542","tb-text":"#e7eaf0","tb-text-2":"#b7becb","tb-text-3":"#79808e","tb-text-muted":"#565d6b","tb-accent":"#6aa1fb","tb-accent-hover":"#4a8bf0","tb-accent-soft":"#1f2c46","tb-on-accent":"#ffffff","tb-brand":"#8da2f2","tb-warning":"#fbbf24","tb-warning-ink":"#d9a441","tb-danger":"#fc8181"}};function tn(e){let t=en[e==="dark"?"dark":"light"];return`${Jo}{${Object.keys(t).map(o=>`--${o}:${t[o]};`).join("")}}`}var on=`
110
+
110
111
  #aih-selection-toolbar {
111
112
  position: fixed;
112
113
  z-index: 2147483647;
@@ -114,10 +115,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
114
115
  align-items: center;
115
116
  gap: 1px;
116
117
  padding: 4px 6px;
117
- background: rgba(255, 255, 255, 0.95);
118
+ background: var(--tb-panel);
118
119
  backdrop-filter: blur(12px);
119
120
  -webkit-backdrop-filter: blur(12px);
120
- border: 1px solid #e8e8e8;
121
+ border: 1px solid var(--tb-border);
121
122
  border-radius: 12px;
122
123
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10), 0 1px 3px rgba(0, 0, 0, 0.06);
123
124
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
@@ -145,7 +146,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
145
146
  border: none;
146
147
  border-radius: 8px;
147
148
  background: transparent;
148
- color: #333;
149
+ color: var(--tb-text);
149
150
  font-size: 13px;
150
151
  cursor: pointer;
151
152
  transition: background 0.15s ease, color 0.15s ease;
@@ -157,10 +158,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
157
158
  -webkit-user-select: none;
158
159
  }
159
160
  #aih-selection-toolbar .aih-tb-btn:hover {
160
- background: #f0f0f0;
161
+ background: var(--tb-hover);
161
162
  }
162
163
  #aih-selection-toolbar .aih-tb-btn:active {
163
- background: #e4e4e4;
164
+ background: var(--tb-active);
164
165
  }
165
166
  #aih-selection-toolbar .aih-tb-btn .aih-tb-icon {
166
167
  display: flex;
@@ -169,7 +170,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
169
170
  #aih-selection-toolbar .aih-tb-divider {
170
171
  width: 1px;
171
172
  height: 14px;
172
- background: #e0e0e0;
173
+ background: var(--tb-table-border);
173
174
  margin: 0 1px;
174
175
  flex-shrink: 0;
175
176
  }
@@ -178,38 +179,38 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
178
179
  align-items: center;
179
180
  justify-content: center;
180
181
  padding: 4px 2px;
181
- color: #bbb;
182
+ color: var(--tb-text-muted);
182
183
  cursor: grab;
183
184
  flex-shrink: 0;
184
185
  border-radius: 6px;
185
186
  transition: color 0.15s;
186
187
  }
187
188
  #aih-selection-toolbar .aih-tb-grip:hover {
188
- color: #666;
189
+ color: var(--tb-text-2);
189
190
  }
190
191
  #aih-selection-toolbar .aih-tb-grip:active {
191
192
  cursor: grabbing;
192
193
  }
193
194
  #aih-selection-toolbar .aih-tb-btn.primary {
194
- background: #3b82f6;
195
- color: #fff;
195
+ background: var(--tb-accent);
196
+ color: var(--tb-on-accent);
196
197
  font-weight: 500;
197
198
  }
198
199
  #aih-selection-toolbar .aih-tb-btn.primary:hover {
199
- background: #2563eb;
200
+ background: var(--tb-accent-hover);
200
201
  }
201
202
  #aih-selection-toolbar .aih-tb-btn.primary .aih-tb-icon {
202
- color: #fff;
203
+ color: var(--tb-on-accent);
203
204
  }
204
205
 
205
206
  /* \u6EA2\u51FA\u4E0B\u62C9\u83DC\u5355 */
206
207
  .aih-overflow-dropdown {
207
208
  position: fixed;
208
209
  z-index: 2147483646;
209
- background: rgba(255, 255, 255, 0.98);
210
+ background: var(--tb-panel);
210
211
  backdrop-filter: blur(16px);
211
212
  -webkit-backdrop-filter: blur(16px);
212
- border: 1px solid #e8e8e8;
213
+ border: 1px solid var(--tb-border);
213
214
  border-radius: 10px;
214
215
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
215
216
  padding: 4px;
@@ -226,7 +227,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
226
227
  border: none;
227
228
  border-radius: 6px;
228
229
  background: transparent;
229
- color: #333;
230
+ color: var(--tb-text);
230
231
  font-size: 13px;
231
232
  cursor: pointer;
232
233
  transition: background 0.15s;
@@ -239,7 +240,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
239
240
  -webkit-user-select: none;
240
241
  }
241
242
  .aih-overflow-dropdown .aih-dropdown-item:hover {
242
- background: #f0f0f0;
243
+ background: var(--tb-hover);
243
244
  }
244
245
  .aih-overflow-dropdown .aih-dropdown-item .aih-tb-icon {
245
246
  display: flex;
@@ -250,16 +251,16 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
250
251
  /* \u4E0B\u62C9\u83DC\u5355\u5206\u9694\u7EBF */
251
252
  .aih-overflow-dropdown .aih-dropdown-divider {
252
253
  height: 1px;
253
- background: #e8e8e8;
254
+ background: var(--tb-border);
254
255
  margin: 4px 8px;
255
256
  }
256
257
  /* \u4E0B\u62C9\u83DC\u5355\u8BBE\u7F6E\u6309\u94AE */
257
258
  .aih-overflow-dropdown .aih-dropdown-settings {
258
- color: #555;
259
+ color: var(--tb-text-2);
259
260
  }
260
261
  .aih-overflow-dropdown .aih-dropdown-settings:hover {
261
- background: #f0f0f0;
262
- color: #667eea;
262
+ background: var(--tb-hover);
263
+ color: var(--tb-brand);
263
264
  }
264
265
 
265
266
  /* \u95EE\u95EEAI \u5185\u8054\u8F93\u5165\u6846 */
@@ -272,10 +273,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
272
273
  display: flex;
273
274
  align-items: center;
274
275
  gap: 0;
275
- border: 1px solid #ddd;
276
+ border: 1px solid var(--tb-table-border);
276
277
  border-radius: 8px;
277
278
  overflow: hidden;
278
- background: #fff;
279
+ background: var(--bg-elevated);
279
280
  width: 75px;
280
281
  flex-shrink: 0;
281
282
  transition: width 0.2s ease;
@@ -287,7 +288,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
287
288
  margin: 0;
288
289
  border: none;
289
290
  background: transparent;
290
- color: #333;
291
+ color: var(--tb-text);
291
292
  font-size: 13px;
292
293
  font-family: inherit;
293
294
  outline: none;
@@ -296,7 +297,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
296
297
  box-sizing: border-box;
297
298
  }
298
299
  #aih-selection-toolbar .aih-tb-ask-input::placeholder {
299
- color: #bbb;
300
+ color: var(--tb-text-muted);
300
301
  }
301
302
  #aih-selection-toolbar .aih-tb-ask-send {
302
303
  flex-shrink: 0;
@@ -328,16 +329,16 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
328
329
  width: 420px;
329
330
  max-width: 92vw;
330
331
  max-height: 520px;
331
- background: rgba(255, 255, 255, 0.98);
332
+ background: var(--tb-panel);
332
333
  backdrop-filter: blur(16px);
333
334
  -webkit-backdrop-filter: blur(16px);
334
- border: 1px solid #e8e8e8;
335
+ border: 1px solid var(--tb-border);
335
336
  border-radius: 14px;
336
337
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
337
338
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
338
339
  font-size: 14px;
339
340
  line-height: 1.65;
340
- color: #333;
341
+ color: var(--tb-text);
341
342
  overflow: hidden;
342
343
  animation: aih-panel-in 0.2s ease-out;
343
344
  /* \u963B\u65AD\u5BBF\u4E3B\u9875\u9762\uFF08\u5982 body \u5C45\u4E2D\u5BF9\u9F50\uFF09\u7684 text-align \u7EE7\u627F */
@@ -353,10 +354,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
353
354
  justify-content: space-between;
354
355
  flex-shrink: 0;
355
356
  padding: 10px 14px;
356
- border-bottom: 1px solid #f0f0f0;
357
- background: #fafafa;
357
+ border-bottom: 1px solid var(--tb-divider);
358
+ background: var(--tb-fill);
358
359
  font-size: 15px;
359
- color: #555;
360
+ color: var(--tb-text-2);
360
361
  font-weight: 600;
361
362
  }
362
363
  #aih-selection-result .aih-result-header-actions {
@@ -374,7 +375,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
374
375
  border: none;
375
376
  border-radius: 6px;
376
377
  background: transparent;
377
- color: #999;
378
+ color: var(--tb-text-3);
378
379
  cursor: pointer;
379
380
  transition: background 0.15s, color 0.15s;
380
381
  padding: 0;
@@ -384,11 +385,11 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
384
385
  }
385
386
  #aih-selection-result .aih-result-lock:hover,
386
387
  #aih-selection-result .aih-result-close:hover {
387
- background: #e8e8e8;
388
- color: #555;
388
+ background: var(--tb-border);
389
+ color: var(--tb-text-2);
389
390
  }
390
391
  #aih-selection-result .aih-result-lock.locked {
391
- color: #3b82f6;
392
+ color: var(--tb-accent);
392
393
  }
393
394
  #aih-selection-result .aih-result-body {
394
395
  padding: 12px 14px;
@@ -410,7 +411,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
410
411
  margin-bottom: 0;
411
412
  }
412
413
  #aih-selection-result .aih-result-body pre {
413
- background: #f5f5f5;
414
+ background: var(--tb-fill);
414
415
  padding: 10px 12px;
415
416
  border-radius: 6px;
416
417
  overflow-x: auto;
@@ -421,7 +422,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
421
422
  #aih-selection-result .aih-result-body code {
422
423
  font-family: 'SF Mono', 'Menlo', 'Monaco', 'Courier New', monospace;
423
424
  font-size: 0.9em;
424
- background: #f0f0f0;
425
+ background: var(--tb-hover);
425
426
  padding: 1px 4px;
426
427
  border-radius: 3px;
427
428
  }
@@ -448,11 +449,11 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
448
449
  #aih-selection-result .aih-result-body h2 { font-size: 1.15em; }
449
450
  #aih-selection-result .aih-result-body h3 { font-size: 1.05em; }
450
451
  #aih-selection-result .aih-result-body blockquote {
451
- border-left: 3px solid #3b82f6;
452
+ border-left: 3px solid var(--tb-accent);
452
453
  margin: 8px 0;
453
454
  padding: 4px 12px;
454
- color: #666;
455
- background: #f8f9fa;
455
+ color: var(--tb-text-2);
456
+ background: var(--tb-fill);
456
457
  border-radius: 0 4px 4px 0;
457
458
  }
458
459
  #aih-selection-result .aih-result-body table {
@@ -463,17 +464,17 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
463
464
  }
464
465
  #aih-selection-result .aih-result-body th,
465
466
  #aih-selection-result .aih-result-body td {
466
- border: 1px solid #e0e0e0;
467
+ border: 1px solid var(--tb-table-border);
467
468
  padding: 6px 10px;
468
469
  /* \u4E0D\u5F3A\u5236\u5BF9\u9F50\u65B9\u5F0F\uFF1A\u8BA9 Markdown \u8868\u683C\u5217\u5BF9\u9F50\uFF08align \u5C5E\u6027\uFF09\u751F\u6548\uFF0C
469
470
  \u65E0 align \u7684\u5355\u5143\u683C\u5219\u7EE7\u627F\u6B63\u6587\u7684\u5C45\u5DE6 */
470
471
  }
471
472
  #aih-selection-result .aih-result-body th {
472
- background: #f5f5f5;
473
+ background: var(--tb-fill);
473
474
  font-weight: 600;
474
475
  }
475
476
  #aih-selection-result .aih-result-body a {
476
- color: #3b82f6;
477
+ color: var(--tb-accent);
477
478
  text-decoration: none;
478
479
  }
479
480
  #aih-selection-result .aih-result-body a:hover {
@@ -481,7 +482,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
481
482
  }
482
483
  #aih-selection-result .aih-result-body hr {
483
484
  border: none;
484
- border-top: 1px solid #e0e0e0;
485
+ border-top: 1px solid var(--tb-table-border);
485
486
  margin: 12px 0;
486
487
  }
487
488
  #aih-selection-result .aih-result-loading {
@@ -489,7 +490,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
489
490
  align-items: center;
490
491
  gap: 10px;
491
492
  padding: 20px 14px;
492
- color: #888;
493
+ color: var(--tb-text-3);
493
494
  font-size: 13px;
494
495
  }
495
496
  #aih-selection-result .aih-result-scroll {
@@ -500,8 +501,8 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
500
501
  #aih-selection-result .aih-spinner {
501
502
  width: 18px;
502
503
  height: 18px;
503
- border: 2px solid #e0e0e0;
504
- border-top-color: #3b82f6;
504
+ border: 2px solid var(--tb-table-border);
505
+ border-top-color: var(--tb-accent);
505
506
  border-radius: 50%;
506
507
  animation: aih-spin 0.8s linear infinite;
507
508
  }
@@ -510,14 +511,14 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
510
511
  }
511
512
  #aih-selection-result .aih-result-error {
512
513
  padding: 16px 14px;
513
- color: #e53e3e;
514
+ color: var(--tb-danger);
514
515
  font-size: 13px;
515
516
  }
516
517
  #aih-selection-result .aih-result-footer {
517
518
  display: flex;
518
519
  gap: 6px;
519
520
  padding: 8px 14px;
520
- background: #fafafa;
521
+ background: var(--tb-fill);
521
522
  }
522
523
  #aih-selection-result .aih-result-footer-btn {
523
524
  display: inline-flex;
@@ -527,7 +528,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
527
528
  border: none;
528
529
  border-radius: 6px;
529
530
  background: transparent;
530
- color: #666;
531
+ color: var(--tb-text-2);
531
532
  font-size: 12px;
532
533
  cursor: pointer;
533
534
  transition: background 0.15s, color 0.15s;
@@ -538,8 +539,8 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
538
539
  -webkit-user-select: none;
539
540
  }
540
541
  #aih-selection-result .aih-result-footer-btn:hover {
541
- background: #e8e8e8;
542
- color: #333;
542
+ background: var(--tb-border);
543
+ color: var(--tb-text);
543
544
  }
544
545
  #aih-selection-result .aih-result-footer-btn .aih-tb-icon {
545
546
  display: flex;
@@ -553,7 +554,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
553
554
  gap: 5px;
554
555
  padding: 5px 0;
555
556
  font-size: 11px;
556
- color: #999;
557
+ color: var(--tb-text-3);
557
558
  white-space: nowrap;
558
559
  cursor: pointer;
559
560
  user-select: none;
@@ -562,10 +563,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
562
563
  transition: color 0.15s;
563
564
  }
564
565
  #aih-selection-result .aih-result-token:hover {
565
- color: #666;
566
+ color: var(--tb-text-2);
566
567
  }
567
568
  #aih-selection-result .aih-result-token .aih-token-dot {
568
- color: #f59e0b;
569
+ color: var(--tb-warning);
569
570
  font-size: 8px;
570
571
  line-height: 1;
571
572
  }
@@ -573,7 +574,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
573
574
  .aih-token-popup {
574
575
  position: fixed;
575
576
  z-index: 2147483647;
576
- background: #fff;
577
+ background: var(--bg-elevated);
577
578
  border-radius: 12px;
578
579
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.08);
579
580
  min-width: 220px;
@@ -592,18 +593,18 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
592
593
  align-items: center;
593
594
  justify-content: space-between;
594
595
  padding: 10px 14px 8px;
595
- border-bottom: 1px solid #f0f0f0;
596
+ border-bottom: 1px solid var(--tb-divider);
596
597
  }
597
598
  .aih-token-popup-title {
598
599
  font-size: 13px;
599
600
  font-weight: 600;
600
- color: #1f2937;
601
+ color: var(--tb-text);
601
602
  }
602
603
  .aih-token-popup-close {
603
604
  background: none;
604
605
  border: none;
605
606
  font-size: 18px;
606
- color: #9ca3af;
607
+ color: var(--tb-text-3);
607
608
  cursor: pointer;
608
609
  padding: 0 4px;
609
610
  line-height: 1;
@@ -611,8 +612,8 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
611
612
  transition: all 0.15s;
612
613
  }
613
614
  .aih-token-popup-close:hover {
614
- background: #f3f4f6;
615
- color: #4b5563;
615
+ background: var(--tb-fill);
616
+ color: var(--tb-text-2);
616
617
  }
617
618
  .aih-token-popup-body {
618
619
  padding: 10px 14px 12px;
@@ -628,12 +629,12 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
628
629
  }
629
630
  .aih-token-popup-label {
630
631
  font-size: 12px;
631
- color: #6b7280;
632
+ color: var(--tb-text-2);
632
633
  }
633
634
  .aih-token-popup-total .aih-token-popup-label {
634
635
  font-size: 13px;
635
636
  font-weight: 600;
636
- color: #1f2937;
637
+ color: var(--tb-text);
637
638
  }
638
639
  .aih-token-popup-right {
639
640
  display: flex;
@@ -643,32 +644,32 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
643
644
  .aih-token-popup-value {
644
645
  font-size: 13px;
645
646
  font-weight: 600;
646
- color: #1f2937;
647
+ color: var(--tb-text);
647
648
  font-variant-numeric: tabular-nums;
648
649
  }
649
650
  .aih-token-popup-total .aih-token-popup-value {
650
651
  font-size: 15px;
651
- color: #b45309;
652
+ color: var(--tb-warning-ink);
652
653
  }
653
654
  .aih-token-popup-percent {
654
655
  font-size: 11px;
655
- color: #9ca3af;
656
+ color: var(--tb-text-3);
656
657
  min-width: 32px;
657
658
  text-align: right;
658
659
  }
659
660
  .aih-token-popup-divider {
660
661
  height: 1px;
661
- background: #f0f0f0;
662
+ background: var(--tb-hover);
662
663
  margin: 4px 0 6px;
663
664
  }
664
665
  /* \u63A8\u8350\u8FFD\u95EE */
665
666
  #aih-selection-result .aih-result-suggestions {
666
667
  padding: 10px 14px;
667
- border-top: 1px solid #f0f0f0;
668
+ border-top: 1px solid var(--tb-divider);
668
669
  }
669
670
  #aih-selection-result .aih-suggestions-label {
670
671
  font-size: 11px;
671
- color: #999;
672
+ color: var(--tb-text-3);
672
673
  margin-bottom: 8px;
673
674
  font-weight: 500;
674
675
  }
@@ -682,10 +683,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
682
683
  width: 100%;
683
684
  text-align: left;
684
685
  padding: 7px 10px;
685
- border: 1px solid #e8e8e8;
686
+ border: 1px solid var(--tb-border);
686
687
  border-radius: 8px;
687
- background: #fafafa;
688
- color: #333;
688
+ background: var(--tb-fill);
689
+ color: var(--tb-text);
689
690
  font-size: 13px;
690
691
  cursor: pointer;
691
692
  transition: background 0.15s, border-color 0.15s;
@@ -697,9 +698,9 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
697
698
  -webkit-user-select: none;
698
699
  }
699
700
  #aih-selection-result .aih-suggestion-chip:hover {
700
- background: #eff6ff;
701
- border-color: #3b82f6;
702
- color: #2563eb;
701
+ background: var(--tb-accent-soft);
702
+ border-color: var(--tb-accent);
703
+ color: var(--tb-accent-hover);
703
704
  }
704
705
  /* \u8FFD\u95EE\u8F93\u5165\u6846 */
705
706
  #aih-selection-result .aih-result-followup {
@@ -707,20 +708,20 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
707
708
  flex-shrink: 0;
708
709
  align-items: center;
709
710
  padding: 8px 14px;
710
- border-top: 1px solid #f0f0f0;
711
+ border-top: 1px solid var(--tb-divider);
711
712
  }
712
713
  #aih-selection-result .aih-followup-wrap {
713
714
  display: flex;
714
715
  align-items: center;
715
716
  flex: 1;
716
- border: 1px solid #e0e0e0;
717
+ border: 1px solid var(--tb-table-border);
717
718
  border-radius: 8px;
718
719
  overflow: hidden;
719
- background: #fff;
720
+ background: var(--bg-elevated);
720
721
  transition: border-color 0.15s;
721
722
  }
722
723
  #aih-selection-result .aih-followup-wrap:focus-within {
723
- border-color: #3b82f6;
724
+ border-color: var(--tb-accent);
724
725
  }
725
726
  #aih-selection-result .aih-followup-input {
726
727
  flex: 1;
@@ -730,10 +731,10 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
730
731
  font-size: 13px;
731
732
  font-family: inherit;
732
733
  outline: none;
733
- color: #333;
734
+ color: var(--tb-text);
734
735
  }
735
736
  #aih-selection-result .aih-followup-input::placeholder {
736
- color: #bbb;
737
+ color: var(--tb-text-muted);
737
738
  }
738
739
  #aih-selection-result .aih-followup-send {
739
740
  display: flex;
@@ -744,7 +745,7 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
744
745
  border: none;
745
746
  border-radius: 0;
746
747
  background: transparent;
747
- color: #3b82f6;
748
+ color: var(--tb-accent);
748
749
  cursor: pointer;
749
750
  transition: color 0.15s;
750
751
  box-sizing: border-box;
@@ -752,9 +753,11 @@ ${i.slice(1).map(r=>`| ${r.join(" | ")} |`).join(`
752
753
  -webkit-user-select: none;
753
754
  }
754
755
  #aih-selection-result .aih-followup-send:hover {
755
- color: #2563eb;
756
+ color: var(--tb-accent-hover);
756
757
  }
757
- `,document.head.appendChild(e)}A("zh",{optionsConst:{aiSearch:"AI\u641C\u7D22",explain:"\u89E3\u91CA",translate:"\u7FFB\u8BD1",summary:"\u603B\u7ED3",copy:"\u590D\u5236"}}),A("en",{optionsConst:{aiSearch:"AI Search",explain:"Explain",translate:"Translate",summary:"Summarize",copy:"Copy"}});var Go={"ai-search":"optionsConst.aiSearch",explain:"optionsConst.explain",translate:"optionsConst.translate",summary:"optionsConst.summary",copy:"optionsConst.copy"};function Te(e){let t=Go[e];return t?c(t):void 0}A("zh",{selToolbar:{settings:"\u8BBE\u7F6E",settingsTitle:"\u6253\u5F00\u914D\u7F6E\u9875\u9762",disableTemporarily:"\u672C\u6B21\u4E34\u65F6\u7981\u7528",disableTemporarilyTitle:"\u6682\u65F6\u9690\u85CF\u76F4\u5230\u9875\u9762\u5237\u65B0",disableOnSite:"\u5728\u6B64\u7F51\u7AD9\u7981\u7528",disableOnSiteTitle:"\u5728\u6B64\u7F51\u7AD9\u7981\u7528\u5DE5\u5177\u680F",dragToMove:"\u62D6\u62FD\u79FB\u52A8",moreTools:"\u66F4\u591A\u5DE5\u5177",copySelectedTitle:"\u590D\u5236\u9009\u4E2D\u5185\u5BB9",askPlaceholder:"\u95EE\u95EE...",sendTitle:"\u53D1\u9001",aiAnswer:"AI \u56DE\u7B54",lockWindow:"\u9501\u5B9A\u7A97\u53E3",unlockWindow:"\u89E3\u9664\u9501\u5B9A",close:"\u5173\u95ED",copyAll:"\u590D\u5236",copyRichTitle:"\u590D\u5236 Markdown \u6587\u672C\uFF08Ctrl/\u2318 + \u5355\u51FB\u590D\u5236\u5BCC\u6587\u672C\uFF09",regenerate:"\u91CD\u65B0\u751F\u6210",suggestedFollowups:"\u{1F4A1} \u63A8\u8350\u8FFD\u95EE",followupPlaceholder:"\u7EE7\u7EED\u63D0\u95EE...",sendToSidebar:"\u53D1\u9001\u5230\u4FA7\u8FB9\u680F",aiThinking:"AI \u6B63\u5728\u601D\u8003...",requestFailed:"\u8BF7\u6C42\u5931\u8D25: {msg}",copyFailed:"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u590D\u5236",copied:"\u5DF2\u590D\u5236",copiedMarkdown:"\u5DF2\u590D\u5236 Markdown",copiedRich:"\u5DF2\u590D\u5236\u5BCC\u6587\u672C",tokenUsageTitle:"Token \u6D88\u8017\uFF1A\u8F93\u5165 {input} / \u8F93\u51FA {output}\uFF0C\u70B9\u51FB\u67E5\u770B\u660E\u7EC6",tokenPopupTitle:"Token \u6D88\u8017\u660E\u7EC6",tokenPopupTotal:"\u603B\u8BA1",tokenPopupInput:"\u8F93\u5165",tokenPopupOutput:"\u8F93\u51FA",noResponse:"\u65E0\u54CD\u5E94",sysPromptAisearch:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u4F7F\u7528ReAct Agent\u6A21\u5F0F\uFF0C\u901A\u8FC7\u591A\u8F6E\u601D\u8003\u3001\u641C\u7D22\u548C\u63A8\u7406\u6765\u56DE\u7B54\u9009\u4E2D\u7684\u95EE\u9898\u3002",sysPromptExplain:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u75281-3\u53E5\u7B80\u6D01\u89E3\u91CA\u9009\u4E2D\u5185\u5BB9\uFF0C\u5FC5\u8981\u65F6\u8865\u5145\u4E00\u4E2A\u7B80\u77ED\u793A\u4F8B\u3002\u4E0D\u8981\u5C55\u5F00\u957F\u7BC7\u8BBA\u8FF0\u3002",sysPromptTranslate:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u81EA\u52A8\u68C0\u6D4B\u8BED\u8A00\uFF1A\u4E2D\u6587\u2192\u82F1\u6587\uFF0C\u82F1\u6587\u2192\u4E2D\u6587\uFF0C\u5176\u4ED6\u8BED\u8A00\u2192\u540C\u65F6\u7ED9\u51FA\u4E2D\u82F1\u6587\u3002\u53EA\u8F93\u51FA\u7FFB\u8BD1\u7ED3\u679C\uFF0C\u4E0D\u6DFB\u52A0\u989D\u5916\u8BF4\u660E\u3002",sysPromptSummary:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u75283-5\u4E2A\u8981\u70B9\u603B\u7ED3\u9009\u4E2D\u5185\u5BB9\uFF0C\u6BCF\u6761\u8981\u70B9\u4E00\u53E5\u8BDD\uFF0C\u63D0\u70BC\u6838\u5FC3\u4FE1\u606F\u5373\u53EF\u3002",sysPromptCopy:"\u5C06\u9009\u4E2D\u5185\u5BB9\u590D\u5236\u5230\u526A\u8D34\u677F\u3002",userMsgAisearch:`\u641C\u7D22\u5E76\u5206\u6790\u4EE5\u4E0B\u5185\u5BB9\uFF1A
758
+
759
+ `;function Xe(e){return tn(e)+`
760
+ `+on}function Ht(){if(document.getElementById("aih-selection-toolbar-styles"))return;let e=document.createElement("style");e.id="aih-selection-toolbar-styles",e.textContent=Xe("light"),document.head.appendChild(e)}function nn(e){let t=document.getElementById("aih-selection-toolbar-styles"),o=e==="dark"?"dark":"light";if(t){if(t.dataset.themeApplied===o)return;t.dataset.themeApplied=o,t.textContent=Xe(o);return}Ht();let n=document.getElementById("aih-selection-toolbar-styles");n&&(n.dataset.themeApplied=o,n.textContent=Xe(o))}A("zh",{optionsConst:{aiSearch:"AI\u641C\u7D22",explain:"\u89E3\u91CA",translate:"\u7FFB\u8BD1",summary:"\u603B\u7ED3",copy:"\u590D\u5236"}}),A("en",{optionsConst:{aiSearch:"AI Search",explain:"Explain",translate:"Translate",summary:"Summarize",copy:"Copy"}});var an={"ai-search":"optionsConst.aiSearch",explain:"optionsConst.explain",translate:"optionsConst.translate",summary:"optionsConst.summary",copy:"optionsConst.copy"};function Te(e){let t=an[e];return t?d(t):void 0}A("zh",{selToolbar:{settings:"\u8BBE\u7F6E",settingsTitle:"\u6253\u5F00\u914D\u7F6E\u9875\u9762",disableTemporarily:"\u672C\u6B21\u4E34\u65F6\u7981\u7528",disableTemporarilyTitle:"\u6682\u65F6\u9690\u85CF\u76F4\u5230\u9875\u9762\u5237\u65B0",disableOnSite:"\u5728\u6B64\u7F51\u7AD9\u7981\u7528",disableOnSiteTitle:"\u5728\u6B64\u7F51\u7AD9\u7981\u7528\u5DE5\u5177\u680F",dragToMove:"\u62D6\u62FD\u79FB\u52A8",moreTools:"\u66F4\u591A\u5DE5\u5177",copySelectedTitle:"\u590D\u5236\u9009\u4E2D\u5185\u5BB9",askPlaceholder:"\u95EE\u95EE...",sendTitle:"\u53D1\u9001",aiAnswer:"AI \u56DE\u7B54",lockWindow:"\u9501\u5B9A\u7A97\u53E3",unlockWindow:"\u89E3\u9664\u9501\u5B9A",close:"\u5173\u95ED",copyAll:"\u590D\u5236",copyRichTitle:"\u590D\u5236 Markdown \u6587\u672C\uFF08Ctrl/\u2318 + \u5355\u51FB\u590D\u5236\u5BCC\u6587\u672C\uFF09",regenerate:"\u91CD\u65B0\u751F\u6210",suggestedFollowups:"\u{1F4A1} \u63A8\u8350\u8FFD\u95EE",followupPlaceholder:"\u7EE7\u7EED\u63D0\u95EE...",sendToSidebar:"\u53D1\u9001\u5230\u4FA7\u8FB9\u680F",aiThinking:"AI \u6B63\u5728\u601D\u8003...",requestFailed:"\u8BF7\u6C42\u5931\u8D25: {msg}",copyFailed:"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u590D\u5236",copied:"\u5DF2\u590D\u5236",copiedMarkdown:"\u5DF2\u590D\u5236 Markdown",copiedRich:"\u5DF2\u590D\u5236\u5BCC\u6587\u672C",tokenUsageTitle:"Token \u6D88\u8017\uFF1A\u8F93\u5165 {input} / \u8F93\u51FA {output}\uFF0C\u70B9\u51FB\u67E5\u770B\u660E\u7EC6",tokenPopupTitle:"Token \u6D88\u8017\u660E\u7EC6",tokenPopupTotal:"\u603B\u8BA1",tokenPopupInput:"\u8F93\u5165",tokenPopupOutput:"\u8F93\u51FA",noResponse:"\u65E0\u54CD\u5E94",sysPromptAisearch:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u4F7F\u7528ReAct Agent\u6A21\u5F0F\uFF0C\u901A\u8FC7\u591A\u8F6E\u601D\u8003\u3001\u641C\u7D22\u548C\u63A8\u7406\u6765\u56DE\u7B54\u9009\u4E2D\u7684\u95EE\u9898\u3002",sysPromptExplain:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u75281-3\u53E5\u7B80\u6D01\u89E3\u91CA\u9009\u4E2D\u5185\u5BB9\uFF0C\u5FC5\u8981\u65F6\u8865\u5145\u4E00\u4E2A\u7B80\u77ED\u793A\u4F8B\u3002\u4E0D\u8981\u5C55\u5F00\u957F\u7BC7\u8BBA\u8FF0\u3002",sysPromptTranslate:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u81EA\u52A8\u68C0\u6D4B\u8BED\u8A00\uFF1A\u4E2D\u6587\u2192\u82F1\u6587\uFF0C\u82F1\u6587\u2192\u4E2D\u6587\uFF0C\u5176\u4ED6\u8BED\u8A00\u2192\u540C\u65F6\u7ED9\u51FA\u4E2D\u82F1\u6587\u3002\u53EA\u8F93\u51FA\u7FFB\u8BD1\u7ED3\u679C\uFF0C\u4E0D\u6DFB\u52A0\u989D\u5916\u8BF4\u660E\u3002",sysPromptSummary:"\u4F60\u6B63\u5728\u5904\u7406\u7528\u6237\u5728\u7F51\u9875\u4E0A\u9009\u4E2D\u7684\u5185\u5BB9\u3002\u75283-5\u4E2A\u8981\u70B9\u603B\u7ED3\u9009\u4E2D\u5185\u5BB9\uFF0C\u6BCF\u6761\u8981\u70B9\u4E00\u53E5\u8BDD\uFF0C\u63D0\u70BC\u6838\u5FC3\u4FE1\u606F\u5373\u53EF\u3002",sysPromptCopy:"\u5C06\u9009\u4E2D\u5185\u5BB9\u590D\u5236\u5230\u526A\u8D34\u677F\u3002",userMsgAisearch:`\u641C\u7D22\u5E76\u5206\u6790\u4EE5\u4E0B\u5185\u5BB9\uFF1A
758
761
 
759
762
  {text}`,userMsgExplain:`\u75281-3\u53E5\u8BDD\u7B80\u6D01\u89E3\u91CA\u4EE5\u4E0B\u5185\u5BB9\uFF0C\u4E0D\u9700\u8981\u5C55\u5F00\u8BF4\u660E\u3002
760
763
 
@@ -798,84 +801,84 @@ After answering, please provide 3 follow-up questions on a new line in the follo
798
801
  ---SUGGESTIONS---
799
802
  Question 1
800
803
  Question 2
801
- Question 3`}});var v={search:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>',explain:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6"/><path d="M10 22h4"/><path d="M12 2a7 7 0 0 0-7 7c0 2.4 1.2 4.5 3 5.7V17h8v-2.3c1.8-1.2 3-3.3 3-5.7a7 7 0 0 0-7-7Z"/></svg>',translate:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>',summary:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"/><path d="M14 2v6h6"/><path d="M8 13h2"/><path d="M8 17h2"/><path d="M14 13h2"/><path d="M14 17h2"/></svg>',copy:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>',close:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',sparkle:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"/></svg>',lock:'<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>',unlock:'<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></svg>',copyLarge:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>',grip:'<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="8" cy="6" r="1.5"/><circle cx="16" cy="6" r="1.5"/><circle cx="8" cy="12" r="1.5"/><circle cx="16" cy="12" r="1.5"/><circle cx="8" cy="18" r="1.5"/><circle cx="16" cy="18" r="1.5"/></svg>',send:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg>',more:'<svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="12" cy="5" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="12" cy="19" r="2"/></svg>',gear:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>',refresh:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg>',block:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/></svg>',eyeOff:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19M14.12 14.12a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>'},y=null,f=null,F=!1,R=!1,ve="",de=null,pe="",M=!1,$=!1,K="",Pe="",Ve="",Ye="",w="",we=!0,le=[],Rt=!1,me=!1,J={x:0,y:0},U=null,O=null,Je=!1,k=null,Y="",Se=!1,Me=0,Pt=null,Xe=!1,Oe=new Set,H=window.top===window;if(!H)try{window.parent===window.top&&window.top.document.querySelector("frameset")&&(H=!0)}catch{}E.debug("[SelectionToolbar] moduleload isTopFrame:",H,"top===window:",window.top===window,"hasBody:",!!document.body,"parent===top:",window.parent===window.top);var D=null;function _(e){(document.body||document.documentElement).appendChild(e)}var N=null;function Mt(e,t){let o=t?e.querySelector(t):e;o&&(o.style.cursor="grab",o.addEventListener("mousedown",n=>{if(n.target.closest('[role="button"]')||n.button!==0)return;n.preventDefault(),n.stopPropagation();let a=e.getBoundingClientRect();N={el:e,startX:n.clientX,startY:n.clientY,startLeft:a.left,startTop:a.top,pointerId:n.pointerId||0},o.style.cursor="grabbing",e.style.transition="none"}))}document.addEventListener("mousemove",e=>{if(!N)return;let t=e.clientX-N.startX,o=e.clientY-N.startY,n=N.startLeft+t,a=N.startTop+o,i=window.innerWidth,r=window.innerHeight,l=N.el.getBoundingClientRect();n=Math.max(0,Math.min(n,i-l.width)),a=Math.max(0,Math.min(a,r-l.height)),N.el.style.left=n+"px",N.el.style.top=a+"px"}),document.addEventListener("mouseup",()=>{if(!N)return;N.el.style.transition="";let e=N.el.querySelector(".aih-result-header")||N.el;e.style.cursor="grab",N=null});function q(){try{return typeof chrome!="object"||!chrome||typeof chrome.runtime!="object"||!chrome.runtime?!1:!!chrome.runtime.id}catch{return!1}}var ke=[{id:"ai-search",name:c("optionsConst.aiSearch"),systemPrompt:c("selToolbar.sysPromptAisearch"),builtin:!0,order:0},{id:"explain",name:c("optionsConst.explain"),systemPrompt:c("selToolbar.sysPromptExplain"),builtin:!0,order:1},{id:"translate",name:c("optionsConst.translate"),systemPrompt:c("selToolbar.sysPromptTranslate"),builtin:!0,order:2},{id:"summary",name:c("optionsConst.summary"),systemPrompt:c("selToolbar.sysPromptSummary"),builtin:!0,order:3},{id:"copy",name:c("optionsConst.copy"),systemPrompt:c("selToolbar.sysPromptCopy"),builtin:!0,order:99}];function ht(e){return e.map(t=>{let o=Te(t.id);return o?{...t,name:o}:t})}function Lt(){return new Promise(e=>{if(!q()){O=ht([...ke]),e(O);return}if(O){e(O);return}try{chrome.storage.local.get(["toolbarTools","toolbarIconOnly"],t=>{let o=t.toolbarTools&&t.toolbarTools.length>0?t.toolbarTools:ke,n=new Map(ke.map(a=>[a.id,a]));O=o.map(a=>{if(a.builtin&&n.has(a.id)){let i=Te(a.id);return{...a,systemPrompt:n.get(a.id).systemPrompt,name:i||a.name}}return a}),Je=t.toolbarIconOnly||!1,e(O)})}catch{O=ht([...ke]),e(O)}})}function ft(){O=null,Je=!1,Lt()}function Nt(e){return{"ai-search":v.search,explain:v.explain,translate:v.translate,summary:v.summary,copy:v.copy}[e]||v.sparkle}function zo(){k||(k=document.createElement("div"),k.id="aih-overflow-dropdown",k.className="aih-overflow-dropdown",k.style.display="none",_(k),document.addEventListener("click",e=>{k&&k.style.display==="block"&&!k.contains(e.target)&&!e.target.closest(".aih-tb-btn-overflow")&&(k.style.display="none")}))}function Wo(e){k||zo();let t=e.map(o=>{let n=Nt(o.id),a=o.builtin&&Te(o.id)||o.name;return`<div class="aih-dropdown-item" role="button" tabindex="0" data-action="${o.id}">
804
+ Question 3`}});var T={search:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>',explain:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6"/><path d="M10 22h4"/><path d="M12 2a7 7 0 0 0-7 7c0 2.4 1.2 4.5 3 5.7V17h8v-2.3c1.8-1.2 3-3.3 3-5.7a7 7 0 0 0-7-7Z"/></svg>',translate:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>',summary:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"/><path d="M14 2v6h6"/><path d="M8 13h2"/><path d="M8 17h2"/><path d="M14 13h2"/><path d="M14 17h2"/></svg>',copy:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>',close:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',sparkle:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"/></svg>',lock:'<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>',unlock:'<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></svg>',copyLarge:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>',grip:'<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="8" cy="6" r="1.5"/><circle cx="16" cy="6" r="1.5"/><circle cx="8" cy="12" r="1.5"/><circle cx="16" cy="12" r="1.5"/><circle cx="8" cy="18" r="1.5"/><circle cx="16" cy="18" r="1.5"/></svg>',send:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg>',more:'<svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="12" cy="5" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="12" cy="19" r="2"/></svg>',gear:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>',refresh:'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg>',block:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/></svg>',eyeOff:'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19M14.12 14.12a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>'},y=null,f=null,F=!1,R=!1,Ce="",ue=null,me="",M=!1,$=!1,K="",Me="",Ze="",Je="",w="",ve=!0,le=[],Ot=!1,he=!1,J={x:0,y:0},U=null,B=null,vt=5,nt=!1,k=null,Q="",Ae=!1,Le=0,Bt=null,et=!1,Ue=new Set,H=window.top===window;if(!H)try{window.parent===window.top&&window.top.document.querySelector("frameset")&&(H=!0)}catch{}E.debug("[SelectionToolbar] moduleload isTopFrame:",H,"top===window:",window.top===window,"hasBody:",!!document.body,"parent===top:",window.parent===window.top);var D=null;function _(e){(document.body||document.documentElement).appendChild(e)}var N=null;function _t(e,t){let o=t?e.querySelector(t):e;o&&(o.style.cursor="grab",o.addEventListener("mousedown",n=>{if(n.target.closest('[role="button"]')||n.button!==0)return;n.preventDefault(),n.stopPropagation();let a=e.getBoundingClientRect();N={el:e,startX:n.clientX,startY:n.clientY,startLeft:a.left,startTop:a.top,pointerId:n.pointerId||0},o.style.cursor="grabbing",e.style.transition="none"}))}document.addEventListener("mousemove",e=>{if(!N)return;let t=e.clientX-N.startX,o=e.clientY-N.startY,n=N.startLeft+t,a=N.startTop+o,i=window.innerWidth,r=window.innerHeight,l=N.el.getBoundingClientRect();n=Math.max(0,Math.min(n,i-l.width)),a=Math.max(0,Math.min(a,r-l.height)),N.el.style.left=n+"px",N.el.style.top=a+"px"}),document.addEventListener("mouseup",()=>{if(!N)return;N.el.style.transition="";let e=N.el.querySelector(".aih-result-header")||N.el;e.style.cursor="grab",N=null});function q(){try{return typeof chrome!="object"||!chrome||typeof chrome.runtime!="object"||!chrome.runtime?!1:!!chrome.runtime.id}catch{return!1}}var Se=[{id:"ai-search",name:d("optionsConst.aiSearch"),systemPrompt:d("selToolbar.sysPromptAisearch"),builtin:!0,order:0},{id:"explain",name:d("optionsConst.explain"),systemPrompt:d("selToolbar.sysPromptExplain"),builtin:!0,order:1},{id:"translate",name:d("optionsConst.translate"),systemPrompt:d("selToolbar.sysPromptTranslate"),builtin:!0,order:2},{id:"summary",name:d("optionsConst.summary"),systemPrompt:d("selToolbar.sysPromptSummary"),builtin:!0,order:3},{id:"copy",name:d("optionsConst.copy"),systemPrompt:d("selToolbar.sysPromptCopy"),builtin:!0,order:99}];function kt(e){return e.map(t=>{let o=Te(t.id);return o?{...t,name:o}:t})}function qt(){return new Promise(e=>{if(!q()){B=kt([...Se]),e(B);return}if(B){e(B);return}try{chrome.storage.local.get(["toolbarTools","toolbarIconOnly"],t=>{let o=t.toolbarTools&&t.toolbarTools.length>0?t.toolbarTools:Se,n=new Map(Se.map(a=>[a.id,a]));B=o.map(a=>{if(a.builtin&&n.has(a.id)){let i=Te(a.id);return{...a,systemPrompt:n.get(a.id).systemPrompt,name:i||a.name}}return a}),nt=t.toolbarIconOnly||!1,e(B)})}catch{B=kt([...Se]),e(B)}})}function Tt(){B=null,nt=!1,qt()}function Ut(e){return{"ai-search":T.search,explain:T.explain,translate:T.translate,summary:T.summary,copy:T.copy}[e]||T.sparkle}function rn(){k||(k=document.createElement("div"),k.id="aih-overflow-dropdown",k.className="aih-overflow-dropdown",k.style.display="none",_(k),document.addEventListener("click",e=>{k&&k.style.display==="block"&&!k.contains(e.target)&&!e.target.closest(".aih-tb-btn-overflow")&&(k.style.display="none")}))}function ln(e){k||rn();let t=e.map(o=>{let n=Ut(o.id),a=o.builtin&&Te(o.id)||o.name;return`<div class="aih-dropdown-item" role="button" tabindex="0" data-action="${o.id}">
802
805
  <span class="aih-tb-icon">${n}</span>${a}
803
- </div>`}).join("");t+='<div class="aih-dropdown-divider"></div>',t+=`<div class="aih-dropdown-item aih-dropdown-settings" role="button" tabindex="0" title="${c("selToolbar.settingsTitle")}">
804
- <span class="aih-tb-icon">${v.gear}</span>${c("selToolbar.settings")}
805
- </div>`,t+=`<div class="aih-dropdown-item aih-dropdown-hide" role="button" tabindex="0" title="${c("selToolbar.disableTemporarilyTitle")}">
806
- <span class="aih-tb-icon">${v.eyeOff}</span>${c("selToolbar.disableTemporarily")}
807
- </div>`,t+=`<div class="aih-dropdown-item aih-dropdown-block" role="button" tabindex="0" title="${c("selToolbar.disableOnSiteTitle")}">
808
- <span class="aih-tb-icon">${v.block}</span>${c("selToolbar.disableOnSite")}
809
- </div>`,k.innerHTML=t,k._clickHandler=o=>{if(o.target.closest(".aih-dropdown-settings")){o.stopPropagation(),k.style.display="none";try{chrome.runtime.sendMessage({type:"OPEN_OPTIONS_PAGE",hash:"toolbar"}).catch(()=>{})}catch{}return}if(o.target.closest(".aih-dropdown-block")){o.stopPropagation(),o.preventDefault(),k.style.display="none",un();return}if(o.target.closest(".aih-dropdown-hide")){o.stopPropagation(),o.preventDefault(),k.style.display="none",Rt=!0,L(),oe(),w="";return}let n=o.target.closest("[data-action]");n&&(o.stopPropagation(),k.style.display="none",Ot(n.dataset.action,w))},k.addEventListener("click",k._clickHandler),k.addEventListener("keydown",o=>{if(o.key==="Enter"||o.key===" "){let n=o.target.closest('[role="button"]');n&&(o.preventDefault(),n.click())}})}async function Dt(){if(y)return;await Lt();let e=[...O].sort((m,g)=>m.order-g.order),t=e.find(m=>m.id==="ai-search"),o=e.filter(m=>m.id!=="ai-search"&&m.id!=="copy"),n=o.slice(0,4),a=o.slice(4);y=document.createElement("div"),y.id="aih-selection-toolbar";let i='<span class="aih-tb-buttons">';i+=`<span class="aih-tb-grip" title="${c("selToolbar.dragToMove")}">${v.grip}</span>`;let r=Je;t&&(i+=`<div class="aih-tb-btn primary" role="button" tabindex="0" data-action="ai-search" title="${c("optionsConst.aiSearch")}">
810
- <span class="aih-tb-icon">${v.search}</span>${r?"":c("optionsConst.aiSearch")}
811
- </div>`),n.forEach(m=>{let g=Nt(m.id),h=m.builtin&&Te(m.id)||m.name;i+=`<div class="aih-tb-btn" role="button" tabindex="0" data-action="${m.id}" title="${h}">
812
- <span class="aih-tb-icon">${g}</span>${r?"":h}
813
- </div>`}),i+=`<div class="aih-tb-btn aih-tb-btn-overflow" role="button" tabindex="0" title="${c("selToolbar.moreTools")}">
814
- <span class="aih-tb-icon">${v.more}</span>
815
- </div>`,Wo(a),i+=`<div class="aih-tb-btn" role="button" tabindex="0" data-action="copy" title="${c("selToolbar.copySelectedTitle")}">
816
- <span class="aih-tb-icon">${v.copy}</span>${r?"":c("optionsConst.copy")}
806
+ </div>`}).join("");t+='<div class="aih-dropdown-divider"></div>',t+=`<div class="aih-dropdown-item aih-dropdown-settings" role="button" tabindex="0" title="${d("selToolbar.settingsTitle")}">
807
+ <span class="aih-tb-icon">${T.gear}</span>${d("selToolbar.settings")}
808
+ </div>`,t+=`<div class="aih-dropdown-item aih-dropdown-hide" role="button" tabindex="0" title="${d("selToolbar.disableTemporarilyTitle")}">
809
+ <span class="aih-tb-icon">${T.eyeOff}</span>${d("selToolbar.disableTemporarily")}
810
+ </div>`,t+=`<div class="aih-dropdown-item aih-dropdown-block" role="button" tabindex="0" title="${d("selToolbar.disableOnSiteTitle")}">
811
+ <span class="aih-tb-icon">${T.block}</span>${d("selToolbar.disableOnSite")}
812
+ </div>`,k.innerHTML=t,k._clickHandler=o=>{if(o.target.closest(".aih-dropdown-settings")){o.stopPropagation(),k.style.display="none";try{chrome.runtime.sendMessage({type:"OPEN_OPTIONS_PAGE",hash:"toolbar"}).catch(()=>{})}catch{}return}if(o.target.closest(".aih-dropdown-block")){o.stopPropagation(),o.preventDefault(),k.style.display="none",Cn();return}if(o.target.closest(".aih-dropdown-hide")){o.stopPropagation(),o.preventDefault(),k.style.display="none",Ot=!0,L(),oe(),w="";return}let n=o.target.closest("[data-action]");n&&(o.stopPropagation(),k.style.display="none",Wt(n.dataset.action,w))},k.addEventListener("click",k._clickHandler),k.addEventListener("keydown",o=>{if(o.key==="Enter"||o.key===" "){let n=o.target.closest('[role="button"]');n&&(o.preventDefault(),n.click())}})}async function Kt(){if(y)return;await qt();let e=[...B].sort((m,h)=>m.order-h.order),t=e.find(m=>m.id==="ai-search"),o=e.filter(m=>m.id!=="ai-search"&&m.id!=="copy"),n=o.slice(0,vt-1),a=o.slice(vt-1);y=document.createElement("div"),y.id="aih-selection-toolbar";let i='<span class="aih-tb-buttons">';i+=`<span class="aih-tb-grip" title="${d("selToolbar.dragToMove")}">${T.grip}</span>`;let r=nt;t&&(i+=`<div class="aih-tb-btn primary" role="button" tabindex="0" data-action="ai-search" title="${d("optionsConst.aiSearch")}">
813
+ <span class="aih-tb-icon">${T.search}</span>${r?"":d("optionsConst.aiSearch")}
814
+ </div>`),n.forEach(m=>{let h=Ut(m.id),g=m.builtin&&Te(m.id)||m.name;i+=`<div class="aih-tb-btn" role="button" tabindex="0" data-action="${m.id}" title="${g}">
815
+ <span class="aih-tb-icon">${h}</span>${r?"":g}
816
+ </div>`}),i+=`<div class="aih-tb-btn aih-tb-btn-overflow" role="button" tabindex="0" title="${d("selToolbar.moreTools")}">
817
+ <span class="aih-tb-icon">${T.more}</span>
818
+ </div>`,ln(a),i+=`<div class="aih-tb-btn" role="button" tabindex="0" data-action="copy" title="${d("selToolbar.copySelectedTitle")}">
819
+ <span class="aih-tb-icon">${T.copy}</span>${r?"":d("optionsConst.copy")}
817
820
  </div>`,i+="</span>",i+=`<span class="aih-tb-ask-wrap">
818
- <input type="text" class="aih-tb-ask-input" placeholder="${c("selToolbar.askPlaceholder")}" />
819
- <div class="aih-tb-btn aih-tb-ask-send" role="button" tabindex="0" title="${c("selToolbar.sendTitle")}">
820
- <span class="aih-tb-icon">${v.send}</span>
821
+ <input type="text" class="aih-tb-ask-input" placeholder="${d("selToolbar.askPlaceholder")}" />
822
+ <div class="aih-tb-btn aih-tb-ask-send" role="button" tabindex="0" title="${d("selToolbar.sendTitle")}">
823
+ <span class="aih-tb-icon">${T.send}</span>
821
824
  </div>
822
- </span>`,y.innerHTML=i,y.addEventListener("click",m=>{if(m.target.closest(".aih-tb-btn-overflow")){m.stopPropagation();let b=m.target.closest(".aih-tb-btn-overflow").getBoundingClientRect();k&&(k.style.display=k.style.display==="block"?"none":"block",k.style.top=b.bottom+4+"px",k.style.left=b.right-160+"px");return}let g=m.target.closest("[data-action]");if(!g)return;m.stopPropagation();let h=g.dataset.action;Ot(h,w)}),y.addEventListener("keydown",m=>{if(m.key==="Enter"||m.key===" "){let g=m.target.closest('[role="button"]');g&&!g.classList.contains("aih-tb-ask-send")&&(m.preventDefault(),g.click())}}),_(y);let l=y.querySelector(".aih-tb-ask-input"),s=y.querySelector(".aih-tb-ask-send");y.querySelector(".aih-tb-buttons");let d=()=>{let m=l.value.trim();if(m){let g=ve;p(),l.value="",Yo(m,g),L()}},u=()=>{if(R)return;R=!0,ve=w||"";let m=window.getSelection();m.rangeCount>0&&(de=m.getRangeAt(0).cloneRange());let g=y.getBoundingClientRect().right;pe=y.style.left,y.classList.add("aih-ask-mode"),y.style.width="360px";let h=Math.max(8,g-360);y.style.left=h+"px",requestAnimationFrame(()=>{if(de){let b=window.getSelection();b.removeAllRanges(),b.addRange(de)}requestAnimationFrame(()=>{l.focus()})})},p=()=>{R&&(R=!1,ve="",de=null,y.classList.remove("aih-ask-mode"),y.style.width="",pe&&=(y.style.left=pe,""))};l.addEventListener("focus",()=>{R||u()}),l.addEventListener("mousedown",m=>{R||(m.preventDefault(),u())}),l.addEventListener("blur",()=>{setTimeout(()=>{R&&!y.contains(document.activeElement)&&(p(),L())},150)}),l.addEventListener("keydown",m=>{m.key==="Escape"?(m.preventDefault(),m.stopPropagation(),p(),l.blur()):m.key==="Enter"&&(m.preventDefault(),m.stopPropagation(),d())}),s.addEventListener("mousedown",m=>{m.preventDefault(),m.stopPropagation(),d()}),Mt(y,".aih-tb-grip")}function Ft(){if(f)return;f=document.createElement("div"),f.id="aih-selection-result",f.innerHTML=`
825
+ </span>`,y.innerHTML=i,y.addEventListener("click",m=>{if(m.target.closest(".aih-tb-btn-overflow")){m.stopPropagation();let b=m.target.closest(".aih-tb-btn-overflow").getBoundingClientRect();k&&(k.style.display=k.style.display==="block"?"none":"block",k.style.top=b.bottom+4+"px",k.style.left=b.right-160+"px");return}let h=m.target.closest("[data-action]");if(!h)return;m.stopPropagation();let g=h.dataset.action;Wt(g,w)}),y.addEventListener("keydown",m=>{if(m.key==="Enter"||m.key===" "){let h=m.target.closest('[role="button"]');h&&!h.classList.contains("aih-tb-ask-send")&&(m.preventDefault(),h.click())}}),_(y);let l=y.querySelector(".aih-tb-ask-input"),s=y.querySelector(".aih-tb-ask-send");y.querySelector(".aih-tb-buttons");let c=()=>{let m=l.value.trim();if(m){let h=Ce;p(),l.value="",dn(m,h),L()}},u=()=>{if(R)return;R=!0,Ce=w||"";let m=window.getSelection();m.rangeCount>0&&(ue=m.getRangeAt(0).cloneRange());let h=y.getBoundingClientRect().right;me=y.style.left,y.classList.add("aih-ask-mode"),y.style.width="360px";let g=Math.max(8,h-360);y.style.left=g+"px",requestAnimationFrame(()=>{if(ue){let b=window.getSelection();b.removeAllRanges(),b.addRange(ue)}requestAnimationFrame(()=>{l.focus()})})},p=()=>{R&&(R=!1,Ce="",ue=null,y.classList.remove("aih-ask-mode"),y.style.width="",me&&=(y.style.left=me,""))};l.addEventListener("focus",()=>{R||u()}),l.addEventListener("mousedown",m=>{R||(m.preventDefault(),u())}),l.addEventListener("blur",()=>{setTimeout(()=>{R&&!y.contains(document.activeElement)&&(p(),L())},150)}),l.addEventListener("keydown",m=>{m.key==="Escape"?(m.preventDefault(),m.stopPropagation(),p(),l.blur()):m.key==="Enter"&&(m.preventDefault(),m.stopPropagation(),c())}),s.addEventListener("mousedown",m=>{m.preventDefault(),m.stopPropagation(),c()}),_t(y,".aih-tb-grip")}function $t(){if(f)return;f=document.createElement("div"),f.id="aih-selection-result",f.innerHTML=`
823
826
  <div class="aih-result-header">
824
- <span>${v.sparkle} ${c("selToolbar.aiAnswer")}</span>
827
+ <span>${T.sparkle} ${d("selToolbar.aiAnswer")}</span>
825
828
  <div class="aih-result-header-actions">
826
- <div class="aih-result-lock" role="button" tabindex="0" title="${c("selToolbar.lockWindow")}">${v.unlock}</div>
827
- <div class="aih-result-close" role="button" tabindex="0" title="${c("selToolbar.close")}">${v.close}</div>
829
+ <div class="aih-result-lock" role="button" tabindex="0" title="${d("selToolbar.lockWindow")}">${T.unlock}</div>
830
+ <div class="aih-result-close" role="button" tabindex="0" title="${d("selToolbar.close")}">${T.close}</div>
828
831
  </div>
829
832
  </div>
830
833
  <div class="aih-result-scroll">
831
834
  <div class="aih-result-body"></div>
832
835
  <div class="aih-result-footer">
833
- <div class="aih-result-footer-btn" role="button" tabindex="0" data-action="copy-result" title="${c("selToolbar.copyRichTitle")}">
834
- <span class="aih-tb-icon">${v.copyLarge}</span>${c("selToolbar.copyAll")}
836
+ <div class="aih-result-footer-btn" role="button" tabindex="0" data-action="copy-result" title="${d("selToolbar.copyRichTitle")}">
837
+ <span class="aih-tb-icon">${T.copyLarge}</span>${d("selToolbar.copyAll")}
835
838
  </div>
836
- <div class="aih-result-footer-btn" role="button" tabindex="0" data-action="regenerate-result" title="${c("selToolbar.regenerate")}">
837
- <span class="aih-tb-icon">${v.refresh}</span>${c("selToolbar.regenerate")}
839
+ <div class="aih-result-footer-btn" role="button" tabindex="0" data-action="regenerate-result" title="${d("selToolbar.regenerate")}">
840
+ <span class="aih-tb-icon">${T.refresh}</span>${d("selToolbar.regenerate")}
838
841
  </div>
839
842
  <div class="aih-result-token" style="display:none;"></div>
840
843
  </div>
841
844
  <div class="aih-result-suggestions" style="display:none;">
842
- <div class="aih-suggestions-label">${c("selToolbar.suggestedFollowups")}</div>
845
+ <div class="aih-suggestions-label">${d("selToolbar.suggestedFollowups")}</div>
843
846
  <div class="aih-suggestions-list"></div>
844
847
  </div>
845
848
  </div>
846
849
  <div class="aih-result-followup">
847
850
  <span class="aih-followup-wrap">
848
- <input type="text" class="aih-followup-input" placeholder="${c("selToolbar.followupPlaceholder")}" />
849
- <div class="aih-followup-send" role="button" tabindex="0" title="${c("selToolbar.sendToSidebar")}">${v.send}</div>
851
+ <input type="text" class="aih-followup-input" placeholder="${d("selToolbar.followupPlaceholder")}" />
852
+ <div class="aih-followup-send" role="button" tabindex="0" title="${d("selToolbar.sendToSidebar")}">${T.send}</div>
850
853
  </span>
851
854
  </div>
852
- `,f.querySelector(".aih-result-close").addEventListener("click",t=>{t.stopPropagation(),oe()}),f.querySelector(".aih-result-lock").addEventListener("click",t=>{t.stopPropagation(),Vo()}),f.querySelector(".aih-result-footer").addEventListener("click",t=>{t.stopPropagation();let o=t.target.closest(".aih-result-token");if(o){Jo(o);return}let n=t.target.closest("[data-action]")?.dataset?.action;if(n==="regenerate-result"){if(!Ve||!Pe)return;Qe(Ve,Pe,Ye)}else n==="copy-result"&&(t.ctrlKey||t.metaKey?cn():sn())});let e=f.querySelector(".aih-followup-input");f.querySelector(".aih-followup-send").addEventListener("click",t=>{t.stopPropagation();let o=e.value.trim();o&&(_e(o),e.value="")}),e.addEventListener("keydown",t=>{if(t.key==="Enter"){t.preventDefault();let o=e.value.trim();o&&(_e(o),e.value="")}}),f.querySelector(".aih-suggestions-list").addEventListener("click",t=>{let o=t.target.closest(".aih-suggestion-chip");if(!o)return;t.stopPropagation();let n=o.dataset.question;n&&_e(n)}),f.addEventListener("keydown",t=>{if(t.key==="Enter"||t.key===" "){let o=t.target.closest('[role="button"]');o&&(t.preventDefault(),o.click())}}),_(f),Mt(f,".aih-result-header")}function bt(e,t,o,n=[]){if(!f)return;let a=M&&f.style.display!=="none",i=f.querySelector(".aih-result-body"),r=f.querySelector(".aih-result-scroll"),l=!r||r.scrollTop+r.clientHeight>=r.scrollHeight-24;i.innerHTML=o,l&&r&&(r.scrollTop=r.scrollHeight);let s=f.querySelector(".aih-result-suggestions"),d=f.querySelector(".aih-suggestions-list");if(n.length>0&&s&&d?(d.innerHTML=n.map(m=>`<div class="aih-suggestion-chip" role="button" tabindex="0" data-question="${te(m)}">${te(m)}</div>`).join(""),s.style.display="block"):s&&(s.style.display="none"),a)return;_(f);let u=window.innerWidth,p=window.innerHeight;f.style.display="flex",f.style.left="-9999px",f.style.top="-9999px",requestAnimationFrame(()=>{let m=f.getBoundingClientRect(),g=m.width||420,h=Math.min(m.height||200,520),b=e-g/2;b<8&&(b=8),b+g>u-8&&(b=u-g-8);let x=t-h-8;x<8&&(x=t+8),f.style.left=b+"px",f.style.top=x+"px",f.style.maxHeight=Math.min(520,p-x-16)+"px",M=!0,_(f)})}function jo(e,t){if(!f)return;J={x:e,y:t},$=!1,Le();let o=f.querySelector(".aih-result-suggestions");o&&(o.style.display="none");let n=f.querySelector(".aih-followup-input");n&&(n.value=""),ge(null),re(),_(f),f.style.display="flex";let a=f.querySelector(".aih-result-body");a.innerHTML=`<div class="aih-result-loading"><div class="aih-spinner"></div>${c("selToolbar.aiThinking")}</div>`,Bt(f,e,t),M=!0,L()}function Ht(e,t,o){if(!f)return;$=!1,K="",ge(null),Le(),_(f),f.style.display="flex";let n=f.querySelector(".aih-result-body");n.innerHTML=`<div class="aih-result-error">${c("selToolbar.requestFailed",{msg:te(o)})}</div>`,Bt(f,e,t),M=!0}function Bt(e,t,o){let n=window.innerWidth,a=window.innerHeight;e.style.left="-9999px",e.style.top="-9999px",requestAnimationFrame(()=>{let i=e.getBoundingClientRect(),r=i.width||420,l=Math.min(i.height||200,520),s=t-r/2;s<8&&(s=8),s+r>n-8&&(s=n-r-8);let d=o-l-8;d<8&&(d=o+8),e.style.left=s+"px",e.style.top=d+"px",e.style.maxHeight=Math.min(520,a-d-16)+"px",_(e)})}function oe(){f&&(f.style.display="none",M=!1,$=!1,K="",re(),Le())}function Vo(){$=!$,Le()}function Le(){if(!f)return;let e=f.querySelector(".aih-result-lock");e&&($?(e.innerHTML=v.lock,e.classList.add("locked"),e.title=c("selToolbar.unlockWindow")):(e.innerHTML=v.unlock,e.classList.remove("locked"),e.title=c("selToolbar.lockWindow")))}function _e(e){if(!e||!q())return;let t=w||Pe||"";try{chrome.runtime.sendMessage({type:"DIRECT_SEND",text:e,selectedText:t}).catch(o=>{E.error("[SelectionToolbar] sendfollow-up tosidebar failed:",o)})}catch{}}function Yo(e,t){if(!(!e||!q()))try{chrome.runtime.sendMessage({type:"DIRECT_SEND",text:e,selectedText:t||""}).catch(o=>{E.error("[SelectionToolbar] send to sidesidebar failed:",o)})}catch{}}function te(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function Xo(){if(Se)return;Se=!0;let e=Me;requestAnimationFrame(()=>{Se=!1,e===Me&&Qo()})}function Qo(){if(!f||!M||!Y)return;let e=f.querySelector(".aih-result-body");if(!e)return;let t=Y,o=t.indexOf("---SUGGESTIONS---");o!==-1&&(t=t.substring(0,o));let n=f.querySelector(".aih-result-scroll"),a=!n||n.scrollTop+n.clientHeight>=n.scrollHeight-24;e.innerHTML='<div class="aih-result-content-stream">'+Zo(t)+"</div>",a&&n&&(n.scrollTop=n.scrollHeight)}function Zo(e){if(typeof marked>"u")return te(e).replace(/\n/g,"<br>");let t=(e.match(/```/g)||[]).length%2==1?e+"\n```":e;return marked.parse(t)}function qe(e){return!e||e<=0?"0":e<1e3?String(e):e<1e4?Math.round(e/100)/10+"K":e<1e6?Math.round(e/1e3)+"K":Math.round(e/1e5)/10+"M"}function ge(e){if(!f)return;Pt=e||null;let t=f.querySelector(".aih-result-token");if(!t)return;let o=e&&(e.total_tokens||(e.prompt_tokens||0)+(e.completion_tokens||0));if(!o){t.style.display="none",t.textContent="",t.removeAttribute("title");return}t.innerHTML=`<span class="aih-token-dot">\u2B24</span>${qe(o)} tokens`,t.title=c("selToolbar.tokenUsageTitle",{input:qe(e.prompt_tokens||0),output:qe(e.completion_tokens||0)}),t.style.display="inline-flex"}function Ue(e){return!e&&e!==0?"0":Number(e).toLocaleString("en-US")}function re(){let e=document.querySelector(".aih-token-popup");e&&e.remove(),Xe=!1}function Jo(e){let t=Pt;if(!t)return;let o=t.total_tokens||(t.prompt_tokens||0)+(t.completion_tokens||0);if(!o)return;if(Xe){re();return}re();let n=t.prompt_tokens||0,a=t.completion_tokens||0,i=Math.round(n/o*100),r=Math.round(a/o*100),l=document.createElement("div");l.className="aih-token-popup",l.innerHTML=`
855
+ `,f.querySelector(".aih-result-close").addEventListener("click",t=>{t.stopPropagation(),oe()}),f.querySelector(".aih-result-lock").addEventListener("click",t=>{t.stopPropagation(),cn()}),f.querySelector(".aih-result-footer").addEventListener("click",t=>{t.stopPropagation();let o=t.target.closest(".aih-result-token");if(o){hn(o);return}let n=t.target.closest("[data-action]")?.dataset?.action;if(n==="regenerate-result"){if(!Ze||!Me)return;tt(Ze,Me,Je)}else n==="copy-result"&&(t.ctrlKey||t.metaKey?Tn():kn())});let e=f.querySelector(".aih-followup-input");f.querySelector(".aih-followup-send").addEventListener("click",t=>{t.stopPropagation();let o=e.value.trim();o&&(Ke(o),e.value="")}),e.addEventListener("keydown",t=>{if(t.key==="Enter"){t.preventDefault();let o=e.value.trim();o&&(Ke(o),e.value="")}}),f.querySelector(".aih-suggestions-list").addEventListener("click",t=>{let o=t.target.closest(".aih-suggestion-chip");if(!o)return;t.stopPropagation();let n=o.dataset.question;n&&Ke(n)}),f.addEventListener("keydown",t=>{if(t.key==="Enter"||t.key===" "){let o=t.target.closest('[role="button"]');o&&(t.preventDefault(),o.click())}}),_(f),_t(f,".aih-result-header")}function St(e,t,o,n=[]){if(!f)return;let a=M&&f.style.display!=="none",i=f.querySelector(".aih-result-body"),r=f.querySelector(".aih-result-scroll"),l=!r||r.scrollTop+r.clientHeight>=r.scrollHeight-24;i.innerHTML=o,l&&r&&(r.scrollTop=r.scrollHeight);let s=f.querySelector(".aih-result-suggestions"),c=f.querySelector(".aih-suggestions-list");if(n.length>0&&s&&c?(c.innerHTML=n.map(m=>`<div class="aih-suggestion-chip" role="button" tabindex="0" data-question="${te(m)}">${te(m)}</div>`).join(""),s.style.display="block"):s&&(s.style.display="none"),a)return;_(f);let u=window.innerWidth,p=window.innerHeight;f.style.display="flex",f.style.left="-9999px",f.style.top="-9999px",requestAnimationFrame(()=>{let m=f.getBoundingClientRect(),h=m.width||420,g=Math.min(m.height||200,520),b=e-h/2;b<8&&(b=8),b+h>u-8&&(b=u-h-8);let x=t-g-8;x<8&&(x=t+8),f.style.left=b+"px",f.style.top=x+"px",f.style.maxHeight=Math.min(520,p-x-16)+"px",M=!0,_(f)})}function sn(e,t){if(!f)return;J={x:e,y:t},$=!1,Ne();let o=f.querySelector(".aih-result-suggestions");o&&(o.style.display="none");let n=f.querySelector(".aih-followup-input");n&&(n.value=""),ge(null),re(),_(f),f.style.display="flex";let a=f.querySelector(".aih-result-body");a.innerHTML=`<div class="aih-result-loading"><div class="aih-spinner"></div>${d("selToolbar.aiThinking")}</div>`,Gt(f,e,t),M=!0,L()}function zt(e,t,o){if(!f)return;$=!1,K="",ge(null),Ne(),_(f),f.style.display="flex";let n=f.querySelector(".aih-result-body");n.innerHTML=`<div class="aih-result-error">${d("selToolbar.requestFailed",{msg:te(o)})}</div>`,Gt(f,e,t),M=!0}function Gt(e,t,o){let n=window.innerWidth,a=window.innerHeight;e.style.left="-9999px",e.style.top="-9999px",requestAnimationFrame(()=>{let i=e.getBoundingClientRect(),r=i.width||420,l=Math.min(i.height||200,520),s=t-r/2;s<8&&(s=8),s+r>n-8&&(s=n-r-8);let c=o-l-8;c<8&&(c=o+8),e.style.left=s+"px",e.style.top=c+"px",e.style.maxHeight=Math.min(520,a-c-16)+"px",_(e)})}function oe(){f&&(f.style.display="none",M=!1,$=!1,K="",re(),Ne())}function cn(){$=!$,Ne()}function Ne(){if(!f)return;let e=f.querySelector(".aih-result-lock");e&&($?(e.innerHTML=T.lock,e.classList.add("locked"),e.title=d("selToolbar.unlockWindow")):(e.innerHTML=T.unlock,e.classList.remove("locked"),e.title=d("selToolbar.lockWindow")))}function Ke(e){if(!e||!q())return;let t=w||Me||"";try{chrome.runtime.sendMessage({type:"DIRECT_SEND",text:e,selectedText:t}).catch(o=>{E.error("[SelectionToolbar] sendfollow-up tosidebar failed:",o)})}catch{}}function dn(e,t){if(!(!e||!q()))try{chrome.runtime.sendMessage({type:"DIRECT_SEND",text:e,selectedText:t||""}).catch(o=>{E.error("[SelectionToolbar] send to sidesidebar failed:",o)})}catch{}}function te(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}function un(){if(Ae)return;Ae=!0;let e=Le;requestAnimationFrame(()=>{Ae=!1,e===Le&&pn()})}function pn(){if(!f||!M||!Q)return;let e=f.querySelector(".aih-result-body");if(!e)return;let t=Q,o=t.indexOf("---SUGGESTIONS---");o!==-1&&(t=t.substring(0,o));let n=f.querySelector(".aih-result-scroll"),a=!n||n.scrollTop+n.clientHeight>=n.scrollHeight-24;e.innerHTML='<div class="aih-result-content-stream">'+mn(t)+"</div>",a&&n&&(n.scrollTop=n.scrollHeight)}function mn(e){if(typeof marked>"u")return te(e).replace(/\n/g,"<br>");let t=(e.match(/```/g)||[]).length%2==1?e+"\n```":e;return marked.parse(t)}function $e(e){return!e||e<=0?"0":e<1e3?String(e):e<1e4?Math.round(e/100)/10+"K":e<1e6?Math.round(e/1e3)+"K":Math.round(e/1e5)/10+"M"}function ge(e){if(!f)return;Bt=e||null;let t=f.querySelector(".aih-result-token");if(!t)return;let o=e&&(e.total_tokens||(e.prompt_tokens||0)+(e.completion_tokens||0));if(!o){t.style.display="none",t.textContent="",t.removeAttribute("title");return}t.innerHTML=`<span class="aih-token-dot">\u2B24</span>${$e(o)} tokens`,t.title=d("selToolbar.tokenUsageTitle",{input:$e(e.prompt_tokens||0),output:$e(e.completion_tokens||0)}),t.style.display="inline-flex"}function ze(e){return!e&&e!==0?"0":Number(e).toLocaleString("en-US")}function re(){let e=document.querySelector(".aih-token-popup");e&&e.remove(),et=!1}function hn(e){let t=Bt;if(!t)return;let o=t.total_tokens||(t.prompt_tokens||0)+(t.completion_tokens||0);if(!o)return;if(et){re();return}re();let n=t.prompt_tokens||0,a=t.completion_tokens||0,i=Math.round(n/o*100),r=Math.round(a/o*100),l=document.createElement("div");l.className="aih-token-popup",l.innerHTML=`
853
856
  <div class="aih-token-popup-header">
854
- <span class="aih-token-popup-title">${c("selToolbar.tokenPopupTitle")}</span>
857
+ <span class="aih-token-popup-title">${d("selToolbar.tokenPopupTitle")}</span>
855
858
  <button class="aih-token-popup-close" type="button" aria-label="close">\xD7</button>
856
859
  </div>
857
860
  <div class="aih-token-popup-body">
858
861
  <div class="aih-token-popup-row aih-token-popup-total">
859
- <span class="aih-token-popup-label">${c("selToolbar.tokenPopupTotal")}</span>
860
- <span class="aih-token-popup-value">${Ue(o)}</span>
862
+ <span class="aih-token-popup-label">${d("selToolbar.tokenPopupTotal")}</span>
863
+ <span class="aih-token-popup-value">${ze(o)}</span>
861
864
  </div>
862
865
  <div class="aih-token-popup-divider"></div>
863
866
  <div class="aih-token-popup-row">
864
- <span class="aih-token-popup-label">${c("selToolbar.tokenPopupInput")}</span>
867
+ <span class="aih-token-popup-label">${d("selToolbar.tokenPopupInput")}</span>
865
868
  <div class="aih-token-popup-right">
866
- <span class="aih-token-popup-value">${Ue(n)}</span>
869
+ <span class="aih-token-popup-value">${ze(n)}</span>
867
870
  <span class="aih-token-popup-percent">${i}%</span>
868
871
  </div>
869
872
  </div>
870
873
  <div class="aih-token-popup-row">
871
- <span class="aih-token-popup-label">${c("selToolbar.tokenPopupOutput")}</span>
874
+ <span class="aih-token-popup-label">${d("selToolbar.tokenPopupOutput")}</span>
872
875
  <div class="aih-token-popup-right">
873
- <span class="aih-token-popup-value">${Ue(a)}</span>
876
+ <span class="aih-token-popup-value">${ze(a)}</span>
874
877
  <span class="aih-token-popup-percent">${r}%</span>
875
878
  </div>
876
879
  </div>
877
880
  </div>
878
- `,_(l),l.style.zIndex="2147483647",Xe=!0;let s=e.getBoundingClientRect(),d=l.getBoundingClientRect(),u=s.top-d.height-8>0?s.top-d.height-8:s.bottom+8,p=s.left+s.width/2-d.width/2;p=Math.max(8,Math.min(p,window.innerWidth-d.width-8)),u+d.height>window.innerHeight-8&&(u=window.innerHeight-d.height-8),l.style.top=u+"px",l.style.left=p+"px",l.querySelector(".aih-token-popup-close").addEventListener("click",g=>{g.stopPropagation(),re()});let m=g=>{!l.contains(g.target)&&!e.contains(g.target)&&(re(),document.removeEventListener("click",m,!0))};setTimeout(()=>{document.addEventListener("click",m,!0)},0)}function xe(e,t){if(!y||!w||M)return;_(y);let o=window.innerWidth,n=window.innerHeight;y.style.display="flex",lastToolbarShowTime=Date.now(),requestAnimationFrame(()=>{let a=y.getBoundingClientRect(),i=a.width||300,r=a.height||40,l=e-i/2;l<8&&(l=8),l+i>o-8&&(l=o-i-8);let s=t-r-10;s<8&&(s=t+10),s<8&&(s=8),s+r>n-8&&(s=n-r-8),y.style.left=l+"px",y.style.top=s+"px",F||=(y.classList.add("aih-show"),!0)})}function L(){!y||!F||(R&&(R=!1,ve="",de=null,y.classList.remove("aih-ask-mode"),y.style.width="",pe&&=(y.style.left=pe,"")),y.classList.remove("aih-show"),y.style.display="none",F=!1)}function en(){if(!y)return{x:0,y:0};let e=y.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}function tn(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top}}function Ce(){if(!q()||!we)return;if(!H){let i=Z();if(E.debug("[SelectionToolbar] iframe onSelectionChange text:",i.text?.substring(0,30),"currentSelectedText:",!!w,"pendingIframeSelection:",!!D),i.text&&i.text.length>=2){let r=fe(i.range);D={text:i.text,x:r.x,y:r.y},E.debug("[SelectionToolbar] iframe pendingIframeSelection set")}else if(w){w="",D=null;try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION_CLEAR"}).catch(()=>{})}catch{}}return}if(le.length>0&&le.includes(window.location.hostname)||Rt)return;let e=window.getSelection(),t=e?e.toString().trim():"",o=null;if(t&&t.length>=2&&e.rangeCount>0)o=e.getRangeAt(0);else{let i=Z();i.text&&i.text.length>=2&&(t=i.text,o=i.range)}if(!t||t.length<2){R||L(),w="",U=null;return}let n=5e3,a=t.length>n?t.substring(0,n)+"...":t;if(o){let i=o.commonAncestorContainer,r=i.nodeType===Node.TEXT_NODE?i.parentElement.closest("[contenteditable], input, textarea"):i.closest&&i.closest("[contenteditable], input, textarea");if(r instanceof HTMLElement&&(r.tagName==="INPUT"||r.tagName==="TEXTAREA")){L(),w="",U=null;return}}w=a,U=!0}function on(e){if(!(y&&y.contains(e.target))&&!(f&&f.contains(e.target))&&!(e.target.closest&&e.target.closest(".aih-token-popup"))){if(me){me=!1;return}M&&!$&&oe(),F&&!R&&L(),chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}}function nn(e){if(E.debug("[SelectionToolbar] onMouseUp isTopFrame:",H,"pendingSelection:",U,"pendingIframeSelection:",!!D,"currentSelectedText:",!!w,"isToolbarVisible:",F,"toolbarEl:",!!y),(e.detail||1)>=3&&(me=!0),!H){if(D){me=!0,D.text,w=D.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:D.text,x:D.x,y:D.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:D.text,x:D.x,y:D.y}).catch(()=>{})}catch{}D=null}else(e.detail||1)>=3&&setTimeout(()=>{let t=Z();if(!t.text||t.text.length<2)return;let o=fe(t.range);t.text,w=t.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y}).catch(()=>{})}catch{}},60);return}F||M||(U&&w?(me=!0,yt()):(e.detail||1)>=3&&setTimeout(()=>{R||(Ce(),U&&w&&yt())},60))}function yt(){if(!U||!w||F)return;let e=window.innerWidth/2,t=window.innerHeight/2,o=window.getSelection();if(o&&o.rangeCount>0){let n=o.getRangeAt(0).getBoundingClientRect();(n.width>0||n.height>0)&&(e=n.left+n.width/2,t=n.top)}if(e===window.innerWidth/2&&t===window.innerHeight/2){let n=Z();if(n.text&&n.text.length>=2){let a=fe(n.range);e=a.x,t=a.y}}try{chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}catch{}xe(e,t),U=null}function an(){if(R)return;if(!H&&w){let o=Z();if(o.text){let n=fe(o.range);try{window.parent.postMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y}).catch(()=>{})}catch{}}return}if(!F)return;let e=window.getSelection();if(e&&e.rangeCount>0&&w){let o=e.getRangeAt(0).getBoundingClientRect();if(o.width>0||o.height>0){xe(o.left+o.width/2,o.top);return}}let t=Z();if(t.text&&t.text.length>=2&&w){let o=fe(t.range);xe(o.x,o.y);return}L()}function rn(){R||F&&L()}function Ot(e,t){if(!t)return;if(Pe=t,e==="copy"){ln(t),L();return}if(Ve=e,Ye="",["ai-search","explain","translate","summary"].includes(e)){Qe(e,t);return}let o=O.find(n=>n.id===e);o&&(Ye=o.systemPrompt||"",Qe(e,t,o.systemPrompt))}function ln(e){_t(e).then(()=>{Ne()}).catch(t=>{E.error("[SelectionToolbar] copy failed:",t),he()})}function sn(){let e=K;e&&_t(e).then(()=>{Ne(c("selToolbar.copiedMarkdown"))}).catch(t=>{E.error("[SelectionToolbar] copyresult failed:",t),he()})}function cn(){let e=K;if(!e)return;let t=dn(typeof marked<"u"?marked.parse(e):te(e).replace(/\n/g,"<br>"));if(navigator.clipboard&&typeof ClipboardItem<"u")try{let o=new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})});navigator.clipboard.write([o]).then(()=>{Ne(c("selToolbar.copiedRich"))}).catch(n=>{E.error("[SelectionToolbar] richcopy failed:",n),wt()});return}catch(o){E.error("[SelectionToolbar] richcopy failed:",o)}wt()}function dn(e){return`<!DOCTYPE html><html><head>
881
+ `,_(l),l.style.zIndex="2147483647",et=!0;let s=e.getBoundingClientRect(),c=l.getBoundingClientRect(),u=s.top-c.height-8>0?s.top-c.height-8:s.bottom+8,p=s.left+s.width/2-c.width/2;p=Math.max(8,Math.min(p,window.innerWidth-c.width-8)),u+c.height>window.innerHeight-8&&(u=window.innerHeight-c.height-8),l.style.top=u+"px",l.style.left=p+"px",l.querySelector(".aih-token-popup-close").addEventListener("click",h=>{h.stopPropagation(),re()});let m=h=>{!l.contains(h.target)&&!e.contains(h.target)&&(re(),document.removeEventListener("click",m,!0))};setTimeout(()=>{document.addEventListener("click",m,!0)},0)}function ke(e,t){if(!y||!w||M)return;_(y);let o=window.innerWidth,n=window.innerHeight;y.style.display="flex",lastToolbarShowTime=Date.now(),requestAnimationFrame(()=>{let a=y.getBoundingClientRect(),i=a.width||300,r=a.height||40,l=e-i/2;l<8&&(l=8),l+i>o-8&&(l=o-i-8);let s=t-r-10;s<8&&(s=t+10),s<8&&(s=8),s+r>n-8&&(s=n-r-8),y.style.left=l+"px",y.style.top=s+"px",F||=(y.classList.add("aih-show"),!0)})}function L(){!y||!F||(R&&(R=!1,Ce="",ue=null,y.classList.remove("aih-ask-mode"),y.style.width="",me&&=(y.style.left=me,"")),y.classList.remove("aih-show"),y.style.display="none",F=!1)}function gn(){if(!y)return{x:0,y:0};let e=y.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}function fn(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top}}function Ee(){if(!q()||!ve)return;if(!H){let i=Z();if(E.debug("[SelectionToolbar] iframe onSelectionChange text:",i.text?.substring(0,30),"currentSelectedText:",!!w,"pendingIframeSelection:",!!D),i.text&&i.text.length>=2){let r=ye(i.range);D={text:i.text,x:r.x,y:r.y},E.debug("[SelectionToolbar] iframe pendingIframeSelection set")}else if(w){w="",D=null;try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION_CLEAR"}).catch(()=>{})}catch{}}return}if(le.length>0&&le.includes(window.location.hostname)||Ot)return;let e=window.getSelection(),t=e?e.toString().trim():"",o=null;if(t&&t.length>=2&&e.rangeCount>0)o=e.getRangeAt(0);else{let i=Z();i.text&&i.text.length>=2&&(t=i.text,o=i.range)}if(!t||t.length<2){R||L(),w="",U=null;return}let n=5e3,a=t.length>n?t.substring(0,n)+"...":t;if(o){let i=o.commonAncestorContainer,r=i.nodeType===Node.TEXT_NODE?i.parentElement.closest("[contenteditable], input, textarea"):i.closest&&i.closest("[contenteditable], input, textarea");if(r instanceof HTMLElement&&(r.tagName==="INPUT"||r.tagName==="TEXTAREA")){L(),w="",U=null;return}}w=a,U=!0}function bn(e){if(!(y&&y.contains(e.target))&&!(f&&f.contains(e.target))&&!(e.target.closest&&e.target.closest(".aih-token-popup"))){if(he){he=!1;return}M&&!$&&oe(),F&&!R&&L();try{chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}catch{}}}function yn(e){if(E.debug("[SelectionToolbar] onMouseUp isTopFrame:",H,"pendingSelection:",U,"pendingIframeSelection:",!!D,"currentSelectedText:",!!w,"isToolbarVisible:",F,"toolbarEl:",!!y),(e.detail||1)>=3&&(he=!0),!H){if(D){he=!0,D.text,w=D.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:D.text,x:D.x,y:D.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:D.text,x:D.x,y:D.y}).catch(()=>{})}catch{}D=null}else(e.detail||1)>=3&&setTimeout(()=>{let t=Z();if(!t.text||t.text.length<2)return;let o=ye(t.range);t.text,w=t.text;try{window.parent.postMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:t.text,x:o.x,y:o.y}).catch(()=>{})}catch{}},60);return}F||M||(U&&w?(he=!0,Ct()):(e.detail||1)>=3&&setTimeout(()=>{R||(Ee(),U&&w&&Ct())},60))}function Ct(){if(!U||!w||F)return;let e=window.innerWidth/2,t=window.innerHeight/2,o=window.getSelection();if(o&&o.rangeCount>0){let n=o.getRangeAt(0).getBoundingClientRect();(n.width>0||n.height>0)&&(e=n.left+n.width/2,t=n.top)}if(e===window.innerWidth/2&&t===window.innerHeight/2){let n=Z();if(n.text&&n.text.length>=2){let a=ye(n.range);e=a.x,t=a.y}}try{chrome.runtime.sendMessage({type:"IFRAME_CLICK_DISMISS"}).catch(()=>{})}catch{}ke(e,t),U=null}function wn(){if(R)return;if(!H&&w){let o=Z();if(o.text){let n=ye(o.range);try{window.parent.postMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y},"*")}catch{}try{chrome.runtime.sendMessage({type:"IFRAME_SELECTION",text:o.text,x:n.x,y:n.y}).catch(()=>{})}catch{}}return}if(!F)return;let e=window.getSelection();if(e&&e.rangeCount>0&&w){let o=e.getRangeAt(0).getBoundingClientRect();if(o.width>0||o.height>0){ke(o.left+o.width/2,o.top);return}}let t=Z();if(t.text&&t.text.length>=2&&w){let o=ye(t.range);ke(o.x,o.y);return}L()}function xn(){R||F&&L()}function Wt(e,t){if(!t)return;if(Me=t,e==="copy"){vn(t),L();return}if(Ze=e,Je="",["ai-search","explain","translate","summary"].includes(e)){tt(e,t);return}let o=B.find(n=>n.id===e);o&&(Je=o.systemPrompt||"",tt(e,t,o.systemPrompt))}function vn(e){jt(e).then(()=>{De()}).catch(t=>{E.error("[SelectionToolbar] copy failed:",t),fe()})}function kn(){let e=K;e&&jt(e).then(()=>{De(d("selToolbar.copiedMarkdown"))}).catch(t=>{E.error("[SelectionToolbar] copyresult failed:",t),fe()})}function Tn(){let e=K;if(!e)return;let t=Sn(typeof marked<"u"?marked.parse(e):te(e).replace(/\n/g,"<br>"));if(navigator.clipboard&&typeof ClipboardItem<"u")try{let o=new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})});navigator.clipboard.write([o]).then(()=>{De(d("selToolbar.copiedRich"))}).catch(n=>{E.error("[SelectionToolbar] richcopy failed:",n),At()});return}catch(o){E.error("[SelectionToolbar] richcopy failed:",o)}At()}function Sn(e){return`<!DOCTYPE html><html><head>
879
882
  <style>
880
883
  body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; line-height: 1.6; color: #24292f; }
881
884
  h1 { font-size: 24px; font-weight: bold; margin: 16px 0 8px; }
@@ -915,7 +918,7 @@ Question 3`}});var v={search:'<svg width="15" height="15" viewBox="0 0 24 24" fi
915
918
  a { color: #007bff; text-decoration: underline; }
916
919
  img { max-width: 100%; }
917
920
  </style>
918
- </head><body>${e}</body></html>`}function wt(){let e=f&&f.querySelector(".aih-result-body");if(!e){he();return}let t=window.getSelection(),o=[];for(let a=0;a<t.rangeCount;a++)o.push(t.getRangeAt(a).cloneRange());let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n);try{document.execCommand("copy")?Ne(c("selToolbar.copiedRich")):he()}catch(a){E.error("[SelectionToolbar] fallback richcopy failed:",a),he()}finally{t.removeAllRanges(),o.forEach(a=>t.addRange(a))}}async function _t(e){if(!navigator.clipboard)return xt(e);try{await navigator.clipboard.writeText(e)}catch(t){if(t.name==="NotAllowedError"||t.name==="SecurityError")return xt(e);throw t}}function xt(e){return new Promise((t,o)=>{let n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.left="-9999px",n.style.opacity="0",_(n);try{n.select(),n.setSelectionRange(0,e.length),document.execCommand("copy")?t():o(Error("execCommand copy failed"))}catch(a){o(a)}finally{n.remove()}})}function he(){let e=document.getElementById("aih-copy-toast");e&&e.remove();let t=document.createElement("div");t.id="aih-copy-toast",t.textContent=c("selToolbar.copyFailed"),t.style.cssText=`
921
+ </head><body>${e}</body></html>`}function At(){let e=f&&f.querySelector(".aih-result-body");if(!e){fe();return}let t=window.getSelection(),o=[];for(let a=0;a<t.rangeCount;a++)o.push(t.getRangeAt(a).cloneRange());let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n);try{document.execCommand("copy")?De(d("selToolbar.copiedRich")):fe()}catch(a){E.error("[SelectionToolbar] fallback richcopy failed:",a),fe()}finally{t.removeAllRanges(),o.forEach(a=>t.addRange(a))}}async function jt(e){if(!navigator.clipboard)return Et(e);try{await navigator.clipboard.writeText(e)}catch(t){if(t.name==="NotAllowedError"||t.name==="SecurityError")return Et(e);throw t}}function Et(e){return new Promise((t,o)=>{let n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.left="-9999px",n.style.opacity="0",_(n);try{n.select(),n.setSelectionRange(0,e.length),document.execCommand("copy")?t():o(Error("execCommand copy failed"))}catch(a){o(a)}finally{n.remove()}})}function fe(){let e=document.getElementById("aih-copy-toast");e&&e.remove();let t=document.createElement("div");t.id="aih-copy-toast",t.textContent=d("selToolbar.copyFailed"),t.style.cssText=`
919
922
  position: fixed;
920
923
  top: 50%;
921
924
  left: 50%;
@@ -929,7 +932,7 @@ Question 3`}});var v={search:'<svg width="15" height="15" viewBox="0 0 24 24" fi
929
932
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
930
933
  pointer-events: none;
931
934
  animation: aih-toast-in 0.2s ease-out, aih-toast-out 0.2s 1.5s ease-in forwards;
932
- `,_(t),t.style.zIndex="2147483647",setTimeout(()=>t.remove(),1800)}function Ne(e){let t=document.getElementById("aih-copy-toast");t&&t.remove();let o=document.createElement("div");if(o.id="aih-copy-toast",o.textContent=e||c("selToolbar.copied"),o.style.cssText=`
935
+ `,_(t),t.style.zIndex="2147483647",setTimeout(()=>t.remove(),1800)}function De(e){let t=document.getElementById("aih-copy-toast");t&&t.remove();let o=document.createElement("div");if(o.id="aih-copy-toast",o.textContent=e||d("selToolbar.copied"),o.style.cssText=`
933
936
  position: fixed;
934
937
  top: 50%;
935
938
  left: 50%;
@@ -946,11 +949,11 @@ Question 3`}});var v={search:'<svg width="15" height="15" viewBox="0 0 24 24" fi
946
949
  `,!document.getElementById("aih-toast-anim")){let n=document.createElement("style");n.id="aih-toast-anim",n.textContent=`
947
950
  @keyframes aih-toast-in { from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
948
951
  @keyframes aih-toast-out { from { opacity: 1; } to { opacity: 0; } }
949
- `,document.head.appendChild(n)}_(o),o.style.zIndex="2147483647",setTimeout(()=>o.remove(),1300)}function Qe(e,t,o){if(!q()){E.warn("[SelectionToolbar] extensiontextexpired,pleaserefreshpage");return}let n={"ai-search":c("selToolbar.userMsgAisearch",{text:t}),explain:c("selToolbar.userMsgExplain",{text:t}),translate:c("selToolbar.userMsgTranslate",{text:t}),summary:c("selToolbar.userMsgSummary",{text:t})},a=o?`\u8BF7\u5904\u7406\u4EE5\u4E0B\u5185\u5BB9\uFF1A
952
+ `,document.head.appendChild(n)}_(o),o.style.zIndex="2147483647",setTimeout(()=>o.remove(),1300)}function tt(e,t,o){if(!q()){E.warn("[SelectionToolbar] extensiontextexpired,pleaserefreshpage");return}let n={"ai-search":d("selToolbar.userMsgAisearch",{text:t}),explain:d("selToolbar.userMsgExplain",{text:t}),translate:d("selToolbar.userMsgTranslate",{text:t}),summary:d("selToolbar.userMsgSummary",{text:t})},a=o?`\u8BF7\u5904\u7406\u4EE5\u4E0B\u5185\u5BB9\uFF1A
950
953
 
951
- ${t}`:n[e]||t;if(e==="ai-search"){L(),window.getSelection().removeAllRanges();try{chrome.runtime.sendMessage({type:"SELECTION_TOOLBAR_ACTION",action:e,text:t,prompt:a}).catch(s=>{E.error("[SelectionToolbar] sendmessage failed:",s)})}catch{}return}Ft();let i={"ai-search":c("optionsConst.aiSearch"),explain:c("optionsConst.explain"),translate:c("optionsConst.translate"),summary:c("optionsConst.summary")}[e];if(!i&&O){let s=O.find(d=>d.id===e);i=s?s.builtin&&Te(s.id)||s.name:c("selToolbar.aiAnswer")}let r=f.querySelector(".aih-result-header span");r&&(r.innerHTML=`${v.sparkle} ${i||c("selToolbar.aiAnswer")}`);let l=M&&f?tn(f):en();jo(l.x,l.y);try{chrome.runtime.sendMessage({type:"SELECTION_TOOLBAR_ACTION",action:e,text:t,prompt:a,systemPrompt:o||""}).catch(s=>{E.error("[SelectionToolbar] sendmessage failed:",s),Ht(l.x,l.y,s.message)})}catch{}}q()&&chrome.runtime.onMessage.addListener((e,t,o)=>{if(q()){if(e.type==="IFRAME_SELECTION"){if(!H)return;E.debug("[SelectionToolbar] recei to IFRAME_SELECTION text:",e.text?.substring(0,30),"isToolbarVisible:",F,"isResultVisible:",M),w=e.text;let n=e.x,a=e.y;if(window.top!==window&&window.frameElement)try{let i=window.frameElement.getBoundingClientRect();n=e.x-i.left,a=e.y-i.top}catch{}if(F&&y&&w){requestAnimationFrame(()=>{let i=window.innerWidth,r=y.offsetWidth||300,l=y.offsetHeight||40,s=n-r/2;s<8&&(s=8),s+r>i-8&&(s=i-r-8);let d=a-l-8;d<8&&(d=a+8),y.style.left=s+"px",y.style.top=d+"px"});return}U={x:n,y:a},w&&w.length>=2&&xe(n,a);return}if(e.type==="IFRAME_SELECTION_CLEAR"){if(!H)return;F&&!R&&(L(),w="");return}if(e.type==="IFRAME_CLICK_DISMISS"){F&&y&&Date.now()-lastToolbarShowTime>300&&(L(),w=""),M&&!$&&oe();return}if(H){if(e.type==="SELECTION_TOOLBAR_STREAM_START"){Y="",Se=!1,Me++;return}if(e.type==="SELECTION_TOOLBAR_STREAM_CHUNK"){Y+=e.delta||"",Xo();return}if(e.type==="SELECTION_TOOLBAR_STREAM_DONE"){Me++,e.finalContent&&(Y=e.finalContent);let n=Y||c("selToolbar.noResponse");K=Y;let a=n,i=[],r=n.indexOf("---SUGGESTIONS---");r!==-1&&(a=n.substring(0,r).trim(),K=a,i=n.substring(r+17).split(`
952
- `).map(s=>s.replace(/^[\d]+[\.\、\s]+/,"").trim()).filter(s=>s.length>0).slice(0,3));let l=typeof marked<"u"?marked.parse(a):te(a).replace(/\n/g,"<br>");bt(J.x,J.y,l,i),ge(e.usage),Y="";return}if(e.type==="SELECTION_TOOLBAR_RESULT")if(e.error)K="",ge(null),Ht(J.x,J.y,e.error);else{let n=e.content||c("selToolbar.noResponse"),a=n;K=n;let i=[],r=n.indexOf("---SUGGESTIONS---");r!==-1&&(a=n.substring(0,r).trim(),K=a,i=n.substring(r+17).split(`
953
- `).map(s=>s.replace(/^[\d]+[\.\、\s]+/,"").trim()).filter(s=>s.length>0).slice(0,3));let l=typeof marked<"u"?marked.parse(a):te(a).replace(/\n/g,"<br>");bt(J.x,J.y,l,i),ge(e.usage)}}}});function un(){if(!q())return;let e=window.location.hostname;try{chrome.storage.local.get(["blockedDomains"],t=>{try{let o=t.blockedDomains||[];o.includes(e)||(o.push(e),chrome.storage.local.set({blockedDomains:o},()=>{le=o,L(),oe(),w=""}))}catch{}})}catch{}}function pn(){q()&&chrome.storage.local.get(["enableSelectionToolbar","blockedDomains"],e=>{we=e.enableSelectionToolbar===void 0||!!e.enableSelectionToolbar,le=e.blockedDomains||[],E.debug("[SelectionToolbar] toggle state:",we?"enabled":"disabled","blocked domains:",le.length)})}q()&&chrome.storage.onChanged.addListener((e,t)=>{q()&&(t==="local"&&e.enableSelectionToolbar&&(we=!!e.enableSelectionToolbar.newValue,we||(L(),oe(),w="")),t==="local"&&e.blockedDomains&&(le=e.blockedDomains.newValue||[]),t==="local"&&e.toolbarTools&&ft())}),at(()=>{ft(),y&&=(y.remove(),null),Dt(),f&&(f.remove(),f=null,M=!1,$=!1,K="")});function mn(){$o(),Dt(),Ft(),pn(),document.addEventListener("selectionchange",Ce),document.addEventListener("click",on,!0),document.addEventListener("mouseup",nn,!0),window.addEventListener("scroll",an,!0),window.addEventListener("resize",rn),window.addEventListener("message",e=>{if(e.data?.type==="IFRAME_SELECTION"&&H){if(M){w="",U=null;return}w=e.data.text;let t=e.data.x,o=e.data.y;if(window.top!==window&&window.frameElement)try{let n=window.frameElement.getBoundingClientRect();t=e.data.x-n.left,o=e.data.y-n.top}catch{}if(F&&y&&w){requestAnimationFrame(()=>{let n=window.innerWidth,a=y.offsetWidth||300,i=y.offsetHeight||40,r=t-a/2;r<8&&(r=8),r+a>n-8&&(r=n-a-8);let l=o-i-8;l<8&&(l=o+8),y.style.left=r+"px",y.style.top=l+"px"});return}U={x:t,y:o},w&&w.length>=2&&xe(t,o);return}e.data?.type==="IFRAME_CLICK_DISMISS"&&H&&M&&!$&&oe()}),H&&(Oe=Ke(Ce),new MutationObserver(()=>{Qt(Oe),Oe=Ke(Ce)}).observe(document.body,{childList:!0,subtree:!0})),E.debug("[SelectionToolbar] initialization complete",H?"(toplayerframe)":"(subframe)")}A("zh",{contentIndex:{invalidRef:"\u65E0\u6548\u7684\u5143\u7D20\u7F16\u53F7 ref={ref}\uFF0C\u8BF7\u5148\u8C03\u7528 query_elements",regionSelectHint:"\u62D6\u62FD\u9009\u62E9\u622A\u56FE\u533A\u57DF\uFF0C\u6309 Esc \u53D6\u6D88"}}),A("en",{contentIndex:{invalidRef:"Invalid element ref={ref}; please call query_elements first",regionSelectHint:"Drag to select the screenshot area; press Esc to cancel"}});var gn=rt();console.log("[ContentScript] content script loaded URL:",window.location.href,"isTopFrame:",window.top===window,"hasBody:",!!document.body),document.addEventListener("keydown",e=>{if((e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key==="A"){e.preventDefault();try{chrome.action.click()}catch{}}if(e.altKey&&!e.shiftKey&&e.code==="KeyS"&&!e.ctrlKey&&!e.metaKey){e.preventDefault();try{chrome.runtime.sendMessage({type:"CAPTURE_TAB_FROM_PAGE"})}catch{}}if(e.altKey&&e.shiftKey&&e.code==="KeyS"&&!e.ctrlKey&&!e.metaKey){e.preventDefault();try{chrome.runtime.sendMessage({type:"CAPTURE_REGION_FROM_PAGE"})}catch{}}});var hn={GET_PAGE_TEXT:e=>To(e),GET_FULL_HTML:e=>ko(e),QUERY_ELEMENTS:e=>ho(e),SNAPSHOT_COLLECT:e=>window.top!==window&&!po()?{success:!0,visible:!1}:Et({filterByText:e.filterByText,elementTypes:e.elementTypes,frames:e.frames==="none"?"none":"auto"}),GET_SELECTED_CONTENT:e=>vo(e.format),INTERACT_ELEMENT:e=>e.ref==null?e.text?Bo(e.text,{tag:e.tag,action:e.action,waitTime:e.waitTime,timeout:e.timeout}):e.action==="hover"?Eo(e.selector):Ro(e.selector,e.waitTime,e.timeout):yo(e.ref,e.action,{waitTime:e.waitTime,timeout:e.timeout,value:e.value,clear:e.clear,submit:e.submit}),FILL_FORM:e=>Po(e.fields,e.waitTime),SCROLL_TO:e=>e.target==="text"&&e.text?xo(e.text,{maxScrolls:e.maxScrolls,pauseMs:e.pauseMs}):Mo(e),KEYBOARD_INPUT:e=>Do(e),FILE_UPLOAD:e=>Ho(e.selector,e.fileName,e.fileContent,e.fileType),EXTRACT_TABLE:e=>So(e.selector,e.includeHeaders,e.format),EXTRACT_METADATA:()=>Zt(),EXTRACT_LINKS:e=>Jt(e.filterType,e.includeImages),EXTRACT_FORMS:e=>eo(e.formSelector),EXTRACT_IMAGES:e=>to(e),SEARCH_IN_PAGE:e=>no(e),IFRAME_CONTENT:e=>oo(e.selector,e.includeNested,e.maxLength),SCROLL_COLLECT:e=>bo(e),HIGHLIGHT_TEXT:e=>Io(e.text,e.color),MANAGE_STORAGE:e=>_o(e),INJECT_CSS:e=>Ko(e.css,e.targetSelector,e.injectMode),COPY_TO_CLIPBOARD:e=>Co(e.text),PASTE_FROM_CLIPBOARD:()=>Ao(),WAIT_ELEMENT:e=>Lo(e.selector,e.state,e.timeout),DRAG_DROP:e=>Fo(e.sourceSelector,e.targetSelector),SELECT_DROPDOWN:e=>{let t=e.triggerSelector;if(e.ref!=null&&!t){let o=Ze(e.ref);if(!o.element)return{success:!1,error:c("contentIndex.invalidRef",{ref:e.ref}),...o.suggestions&&o.suggestions.length?{suggestions:o.suggestions}:{}};t=o.entry.selector}return Oo(t,e.optionText,e.optionSelector,e.timeout)},QRCODE:e=>Uo(e.content,e.size,e.errorCorrection,e.showImage),CLEAR_DATA:e=>{try{let t=[];return e.site?window.location.href.includes(new URL(e.site).hostname)&&(localStorage.clear(),sessionStorage.clear(),t.push("localStorage","sessionStorage")):(localStorage.clear(),sessionStorage.clear(),t.push("localStorage","sessionStorage")),{success:!0,cleared:t}}catch(t){return{success:!1,error:t.message}}},START_REGION_SELECTION:()=>yn(),GET_PAGE_METRICS:()=>({width:Math.max(document.documentElement.scrollWidth,document.body.scrollWidth||0,window.innerWidth),height:Math.max(document.documentElement.scrollHeight,document.body.scrollHeight||0,window.innerHeight)})},fn=new Set(["COPY_TO_CLIPBOARD","PASTE_FROM_CLIPBOARD","WAIT_ELEMENT","DRAG_DROP","SELECT_DROPDOWN","QRCODE","START_REGION_SELECTION","INTERACT_ELEMENT","SCROLL_TO","KEYBOARD_INPUT"]),bn=new Set(["GET_PAGE_TEXT","GET_FULL_HTML","EXTRACT_METADATA","EXTRACT_TABLE","IFRAME_CONTENT","QUERY_ELEMENTS","INTERACT_ELEMENT","SCROLL_TO"]);q()&&chrome.runtime.onMessage.addListener((e,t,o)=>{if(bn.has(e.type)&&window.top!==window&&!e._frameRouted)return;if(e.action==="getSelectedText"){let i=window.getSelection()?.toString()?.trim()||"";if(i&&document.hasFocus())return o({text:i}),!0;let r=Z();return r.text&&r.text.trim()&&document.hasFocus()&&o({text:r.text.trim()}),!0}let n=hn[e.type];if(!n)return;let a=n(e);if(fn.has(e.type)||a instanceof Promise)return Promise.resolve(a).then(o),!0;o(a)}),window.addEventListener("error",e=>{e.message&&e.message.includes("Extension context invalidated")&&e.preventDefault()}),window.addEventListener("unhandledrejection",e=>{(e.reason?.message||String(e.reason)).includes("Extension context invalidated")&&e.preventDefault()}),gn.then(()=>{mn()});function yn(){return new Promise(e=>{let t=document.createElement("div");t.id="__region_select_overlay__",t.style.cssText=`
954
+ ${t}`:n[e]||t;if(e==="ai-search"){L(),window.getSelection().removeAllRanges();try{chrome.runtime.sendMessage({type:"SELECTION_TOOLBAR_ACTION",action:e,text:t,prompt:a}).catch(s=>{E.error("[SelectionToolbar] sendmessage failed:",s)})}catch{}return}$t();let i={"ai-search":d("optionsConst.aiSearch"),explain:d("optionsConst.explain"),translate:d("optionsConst.translate"),summary:d("optionsConst.summary")}[e];if(!i&&B){let s=B.find(c=>c.id===e);i=s?s.builtin&&Te(s.id)||s.name:d("selToolbar.aiAnswer")}let r=f.querySelector(".aih-result-header span");r&&(r.innerHTML=`${T.sparkle} ${i||d("selToolbar.aiAnswer")}`);let l=M&&f?fn(f):gn();sn(l.x,l.y);try{chrome.runtime.sendMessage({type:"SELECTION_TOOLBAR_ACTION",action:e,text:t,prompt:a,systemPrompt:o||""}).catch(s=>{E.error("[SelectionToolbar] sendmessage failed:",s),zt(l.x,l.y,s.message)})}catch{}}q()&&chrome.runtime.onMessage.addListener((e,t,o)=>{if(q()){if(e.type==="IFRAME_SELECTION"){if(!H)return;E.debug("[SelectionToolbar] recei to IFRAME_SELECTION text:",e.text?.substring(0,30),"isToolbarVisible:",F,"isResultVisible:",M),w=e.text;let n=e.x,a=e.y;if(window.top!==window&&window.frameElement)try{let i=window.frameElement.getBoundingClientRect();n=e.x-i.left,a=e.y-i.top}catch{}if(F&&y&&w){requestAnimationFrame(()=>{let i=window.innerWidth,r=y.offsetWidth||300,l=y.offsetHeight||40,s=n-r/2;s<8&&(s=8),s+r>i-8&&(s=i-r-8);let c=a-l-8;c<8&&(c=a+8),y.style.left=s+"px",y.style.top=c+"px"});return}U={x:n,y:a},w&&w.length>=2&&ke(n,a);return}if(e.type==="IFRAME_SELECTION_CLEAR"){if(!H)return;F&&!R&&(L(),w="");return}if(e.type==="IFRAME_CLICK_DISMISS"){F&&y&&Date.now()-lastToolbarShowTime>300&&(L(),w=""),M&&!$&&oe();return}if(H){if(e.type==="SELECTION_TOOLBAR_STREAM_START"){Q="",Ae=!1,Le++;return}if(e.type==="SELECTION_TOOLBAR_STREAM_CHUNK"){Q+=e.delta||"",un();return}if(e.type==="SELECTION_TOOLBAR_STREAM_DONE"){Le++,e.finalContent&&(Q=e.finalContent);let n=Q||d("selToolbar.noResponse");K=Q;let a=n,i=[],r=n.indexOf("---SUGGESTIONS---");r!==-1&&(a=n.substring(0,r).trim(),K=a,i=n.substring(r+17).split(`
955
+ `).map(s=>s.replace(/^[\d]+[\.\、\s]+/,"").trim()).filter(s=>s.length>0).slice(0,3));let l=typeof marked<"u"?marked.parse(a):te(a).replace(/\n/g,"<br>");St(J.x,J.y,l,i),ge(e.usage),Q="";return}if(e.type==="SELECTION_TOOLBAR_RESULT")if(e.error)K="",ge(null),zt(J.x,J.y,e.error);else{let n=e.content||d("selToolbar.noResponse"),a=n;K=n;let i=[],r=n.indexOf("---SUGGESTIONS---");r!==-1&&(a=n.substring(0,r).trim(),K=a,i=n.substring(r+17).split(`
956
+ `).map(s=>s.replace(/^[\d]+[\.\、\s]+/,"").trim()).filter(s=>s.length>0).slice(0,3));let l=typeof marked<"u"?marked.parse(a):te(a).replace(/\n/g,"<br>");St(J.x,J.y,l,i),ge(e.usage)}}}});function Cn(){if(!q())return;let e=window.location.hostname;try{chrome.storage.local.get(["blockedDomains"],t=>{try{let o=t.blockedDomains||[];o.includes(e)||(o.push(e),chrome.storage.local.set({blockedDomains:o},()=>{le=o,L(),oe(),w=""}))}catch{}})}catch{}}function An(){q()&&chrome.storage.local.get(["enableSelectionToolbar","blockedDomains"],e=>{ve=e.enableSelectionToolbar===void 0?!0:!!e.enableSelectionToolbar,le=e.blockedDomains||[],E.debug("[SelectionToolbar] toggle state:",ve?"enabled":"disabled","blocked domains:",le.length)})}var Fe=!0,se="light";function En(){return Fe?se==="system"?typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":se==="dark"?"dark":"light":"light"}function at(){nn(En())}function In(){q()&&chrome.storage.local.get(["appTheme","selectionToolbarFollowTheme"],e=>{se=["light","dark","system"].includes(e.appTheme)?e.appTheme:"light",Fe=e.selectionToolbarFollowTheme===void 0?!0:!!e.selectionToolbarFollowTheme,at()})}q()&&chrome.storage.onChanged.addListener((e,t)=>{q()&&(t==="local"&&e.enableSelectionToolbar&&(ve=!!e.enableSelectionToolbar.newValue,ve||(L(),oe(),w="")),t==="local"&&e.blockedDomains&&(le=e.blockedDomains.newValue||[]),t==="local"&&e.toolbarTools&&Tt(),t==="local"&&(e.appTheme||e.selectionToolbarFollowTheme)&&(e.appTheme&&(se=["light","dark","system"].includes(e.appTheme.newValue)?e.appTheme.newValue:se),e.selectionToolbarFollowTheme&&(Fe=!!e.selectionToolbarFollowTheme.newValue),at()))}),ct(()=>{Tt(),y&&=(y.remove(),null),Kt(),f&&(f.remove(),f=null,M=!1,$=!1,K="")});function Pn(){if(Ht(),Kt(),$t(),An(),In(),typeof matchMedia<"u"){let e=matchMedia("(prefers-color-scheme: dark)"),t=()=>{Fe&&se==="system"&&at()};e.addEventListener?e.addEventListener("change",t):e.addListener&&e.addListener(t)}document.addEventListener("selectionchange",Ee),document.addEventListener("click",bn,!0),document.addEventListener("mouseup",yn,!0),window.addEventListener("scroll",wn,!0),window.addEventListener("resize",xn),window.addEventListener("message",e=>{if(e.data?.type==="IFRAME_SELECTION"&&H){if(M){w="",U=null;return}w=e.data.text;let t=e.data.x,o=e.data.y;if(window.top!==window&&window.frameElement)try{let n=window.frameElement.getBoundingClientRect();t=e.data.x-n.left,o=e.data.y-n.top}catch{}if(F&&y&&w){requestAnimationFrame(()=>{let n=window.innerWidth,a=y.offsetWidth||300,i=y.offsetHeight||40,r=t-a/2;r<8&&(r=8),r+a>n-8&&(r=n-a-8);let l=o-i-8;l<8&&(l=o+8),y.style.left=r+"px",y.style.top=l+"px"});return}U={x:t,y:o},w&&w.length>=2&&ke(t,o);return}e.data?.type==="IFRAME_CLICK_DISMISS"&&H&&M&&!$&&oe()}),H&&(Ue=Ge(Ee),new MutationObserver(()=>{io(Ue),Ue=Ge(Ee)}).observe(document.body,{childList:!0,subtree:!0})),E.debug("[SelectionToolbar] initialization complete",H?"(toplayerframe)":"(subframe)")}A("zh",{contentIndex:{invalidRef:"\u65E0\u6548\u7684\u5143\u7D20\u7F16\u53F7 ref={ref}\uFF0C\u8BF7\u5148\u8C03\u7528 query_elements",regionSelectHint:"\u62D6\u62FD\u9009\u62E9\u622A\u56FE\u533A\u57DF\uFF0C\u6309 Esc \u53D6\u6D88"}}),A("en",{contentIndex:{invalidRef:"Invalid element ref={ref}; please call query_elements first",regionSelectHint:"Drag to select the screenshot area; press Esc to cancel"}});var Rn=ut();console.log("[ContentScript] content script loaded URL:",window.location.href,"isTopFrame:",window.top===window,"hasBody:",!!document.body),document.addEventListener("keydown",e=>{if((e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key==="A"){e.preventDefault();try{chrome.action.click()}catch{}}if(e.altKey&&!e.shiftKey&&e.code==="KeyS"&&!e.ctrlKey&&!e.metaKey){e.preventDefault();try{chrome.runtime.sendMessage({type:"CAPTURE_TAB_FROM_PAGE"})}catch{}}if(e.altKey&&e.shiftKey&&e.code==="KeyS"&&!e.ctrlKey&&!e.metaKey){e.preventDefault();try{chrome.runtime.sendMessage({type:"CAPTURE_REGION_FROM_PAGE"})}catch{}}});var Mn={GET_PAGE_TEXT:e=>Po(e),GET_FULL_HTML:e=>Ro(e),QUERY_ELEMENTS:e=>To(e),SNAPSHOT_COLLECT:e=>window.top!==window&&!xo()?{success:!0,visible:!1}:Dt({filterByText:e.filterByText,elementTypes:e.elementTypes,frames:e.frames==="none"?"none":"auto"}),GET_SELECTED_CONTENT:e=>Mo(e.format),INTERACT_ELEMENT:e=>e.ref==null?e.text?zo(e.text,{tag:e.tag,action:e.action,waitTime:e.waitTime,timeout:e.timeout}):e.action==="hover"?Fo(e.selector):Oo(e.selector,e.waitTime,e.timeout):Ao(e.ref,e.action,{waitTime:e.waitTime,timeout:e.timeout,value:e.value,clear:e.clear,submit:e.submit}),FILL_FORM:e=>Bo(e.fields,e.waitTime),SCROLL_TO:e=>e.target==="text"&&e.text?Io(e.text,{maxScrolls:e.maxScrolls,pauseMs:e.pauseMs}):_o(e),KEYBOARD_INPUT:e=>Ko(e),FILE_UPLOAD:e=>$o(e.selector,e.fileName,e.fileContent,e.fileType),EXTRACT_TABLE:e=>Lo(e.selector,e.includeHeaders,e.format),EXTRACT_METADATA:()=>ro(),EXTRACT_LINKS:e=>lo(e.filterType,e.includeImages),EXTRACT_FORMS:e=>so(e.formSelector),EXTRACT_IMAGES:e=>co(e),SEARCH_IN_PAGE:e=>po(e),IFRAME_CONTENT:e=>uo(e.selector,e.includeNested,e.maxLength),SCROLL_COLLECT:e=>Co(e),MANAGE_STORAGE:e=>Wo(e),INJECT_CSS:e=>e.injectMode==="highlight"?Ho(e.text,e.color):Yo(e.css,e.targetSelector,e.injectMode),EVALUATE_DONE_CRITERIA:e=>Zo(e.criteria),COPY_TO_CLIPBOARD:e=>No(e.text),PASTE_FROM_CLIPBOARD:()=>Do(),WAIT_ELEMENT:e=>qo(e.selector,e.state,e.timeout),SELECT_DROPDOWN:e=>{let t=e.triggerSelector;if(e.ref!=null&&!t){let o=ot(e.ref);if(!o.element)return{success:!1,error:d("contentIndex.invalidRef",{ref:e.ref}),...o.suggestions&&o.suggestions.length?{suggestions:o.suggestions}:{}};t=o.entry.selector}return Go(t,e.optionText,e.optionSelector,e.timeout)},QRCODE:e=>Vo(e.content,e.size,e.errorCorrection,e.showImage),START_REGION_SELECTION:()=>Dn(),GET_PAGE_METRICS:()=>({width:Math.max(document.documentElement.scrollWidth,document.body.scrollWidth||0,window.innerWidth),height:Math.max(document.documentElement.scrollHeight,document.body.scrollHeight||0,window.innerHeight)})},Ln=new Set(["COPY_TO_CLIPBOARD","PASTE_FROM_CLIPBOARD","WAIT_ELEMENT","SELECT_DROPDOWN","QRCODE","START_REGION_SELECTION","INTERACT_ELEMENT","SCROLL_TO","KEYBOARD_INPUT"]),Nn=new Set(["GET_PAGE_TEXT","GET_FULL_HTML","EXTRACT_METADATA","EXTRACT_TABLE","IFRAME_CONTENT","QUERY_ELEMENTS","EVALUATE_DONE_CRITERIA","INTERACT_ELEMENT","SCROLL_TO"]);q()&&chrome.runtime.onMessage.addListener((e,t,o)=>{if(Nn.has(e.type)&&window.top!==window&&!e._frameRouted)return;if(e.action==="getSelectedText"){let i=window.getSelection()?.toString()?.trim()||"";if(i&&document.hasFocus())return o({text:i}),!0;let r=Z();return r.text&&r.text.trim()&&document.hasFocus()&&o({text:r.text.trim()}),!0}let n=Mn[e.type];if(!n)return;let a=n(e);if(Ln.has(e.type)||a instanceof Promise)return Promise.resolve(a).then(o),!0;o(a)}),window.addEventListener("error",e=>{e.message&&e.message.includes("Extension context invalidated")&&e.preventDefault()}),window.addEventListener("unhandledrejection",e=>{(e.reason?.message||String(e.reason)).includes("Extension context invalidated")&&e.preventDefault()}),Rn.then(()=>{Pn()});function Dn(){return new Promise(e=>{let t=document.createElement("div");t.id="__region_select_overlay__",t.style.cssText=`
954
957
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
955
958
  z-index: 2147483647; cursor: crosshair;
956
959
  background: rgba(0, 0, 0, 0.15);
@@ -965,4 +968,4 @@ ${t}`:n[e]||t;if(e==="ai-search"){L(),window.getSelection().removeAllRanges();tr
965
968
  padding: 8px 20px; border-radius: 20px;
966
969
  background: rgba(0, 0, 0, 0.75); color: #fff;
967
970
  font-size: 14px; font-family: sans-serif;
968
- `,n.textContent=c("contentIndex.regionSelectHint");let a=0,i=0,r=!1;function l(p){return{x:p.clientX,y:p.clientY}}function s(p,m,g,h){let b=Math.min(p,g),x=Math.min(m,h),T=Math.abs(g-p),S=Math.abs(h-m);o.style.left=b+"px",o.style.top=x+"px",o.style.width=T+"px",o.style.height=S+"px",o.style.display="block"}function d(){t.remove(),o.remove(),n.remove(),document.removeEventListener("keydown",u,!0)}function u(p){p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),d(),e(null))}t.addEventListener("mousedown",p=>{if(p.button!==0)return;p.preventDefault(),p.stopPropagation();let{x:m,y:g}=l(p);a=m,i=g,r=!0,document.body.appendChild(o),document.body.appendChild(n)}),t.addEventListener("mousemove",p=>{if(!r)return;p.preventDefault();let{x:m,y:g}=l(p);s(a,i,m,g)}),t.addEventListener("mouseup",p=>{if(!r)return;p.preventDefault(),p.stopPropagation(),r=!1;let{x:m,y:g}=l(p),h={x:Math.min(a,m),y:Math.min(i,g),width:Math.abs(m-a),height:Math.abs(g-i)};if(d(),h.width<10||h.height<10){e(null);return}requestAnimationFrame(()=>e(h))}),document.addEventListener("keydown",u,!0),document.body.appendChild(t)})}})();
971
+ `,n.textContent=d("contentIndex.regionSelectHint");let a=0,i=0,r=!1;function l(p){return{x:p.clientX,y:p.clientY}}function s(p,m,h,g){let b=Math.min(p,h),x=Math.min(m,g),v=Math.abs(h-p),S=Math.abs(g-m);o.style.left=b+"px",o.style.top=x+"px",o.style.width=v+"px",o.style.height=S+"px",o.style.display="block"}function c(){t.remove(),o.remove(),n.remove(),document.removeEventListener("keydown",u,!0)}function u(p){p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),c(),e(null))}t.addEventListener("mousedown",p=>{if(p.button!==0)return;p.preventDefault(),p.stopPropagation();let{x:m,y:h}=l(p);a=m,i=h,r=!0,document.body.appendChild(o),document.body.appendChild(n)}),t.addEventListener("mousemove",p=>{if(!r)return;p.preventDefault();let{x:m,y:h}=l(p);s(a,i,m,h)}),t.addEventListener("mouseup",p=>{if(!r)return;p.preventDefault(),p.stopPropagation(),r=!1;let{x:m,y:h}=l(p),g={x:Math.min(a,m),y:Math.min(i,h),width:Math.abs(m-a),height:Math.abs(h-i)};if(c(),g.width<10||g.height<10){e(null);return}requestAnimationFrame(()=>e(g))}),document.addEventListener("keydown",u,!0),document.body.appendChild(t)})}})();