@luban-code/luban-code 1.66.0 → 1.66.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/README.zh.md +14 -1
- package/dist/cli.js +1 -1
- package/dist/extension.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -26,6 +26,19 @@
|
|
|
26
26
|
- **Optional desktop control (macOS and Windows)** — `computer` screenshots the real screen, reads on-screen text via OCR (macOS; on Windows it falls back to viewing the screenshot), lists windows, and can click / double-click / drag / scroll / type / send key combos. Off by default via `luban.computer.enabled`; the first action that touches mouse or keyboard asks for confirmation; unavailable in Plan mode; models without `vision` automatically fall back to OCR text.
|
|
27
27
|
- **Optional tab completion** — DeepSeek FIM completion, off by default.
|
|
28
28
|
|
|
29
|
+
## CLI
|
|
30
|
+
|
|
31
|
+
This package also ships the `luban` command — a headless entry point that reuses the extension's agent tool loop (same `~/.luban/providers.json` config).
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm i -g @luban-code/luban-code
|
|
35
|
+
luban --plan "调研 src/ 的目录结构并给出重构建议" # read-only plan (default)
|
|
36
|
+
luban --agent --apply "新建 utils.js 并写测试" # full agent with writes
|
|
37
|
+
luban # interactive multi-turn (TTY)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Run `luban --help` for all flags (`--model`, `--root`, `--json`, `--max-rounds`, …).
|
|
41
|
+
|
|
29
42
|
## Install
|
|
30
43
|
|
|
31
44
|
| Where | How |
|
package/README.zh.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
VSCodium / VS Code 里的**侧边栏 AI 编码助手**:说人话 → 它改文件、跑命令、自己验证,然后告诉你改了什么。
|
|
8
8
|
零源码补丁(不动编辑器源码):可以从 VS Code 市场 / Open VSX / VSIX 作为普通扩展安装,也可以用脚本装成 App 的内置扩展。
|
|
9
9
|
|
|
10
|
-
版本 **1.
|
|
10
|
+
版本 **1.66.0** · [English](README.md) · [全部文档](docs/README.md)
|
|
11
11
|
|
|
12
12
|
<!-- 截图占位:把图片放进 media/screenshots/ 后,取消下面两行的注释 -->
|
|
13
13
|
<!--  -->
|
|
@@ -51,6 +51,19 @@ VSCodium / VS Code 里的**侧边栏 AI 编码助手**:说人话 → 它改文
|
|
|
51
51
|
|
|
52
52
|
**和原生 chat 的关系**:没有关系。它不注册 chatAgent、不占用原生聊天窗口、不需要 `@luban`,VS Code 怎么改 chat 层都影响不到它。
|
|
53
53
|
|
|
54
|
+
## CLI
|
|
55
|
+
|
|
56
|
+
本包同时提供 `luban` 命令 —— 无头任务入口,复用扩展的 agent 工具循环(共用 `~/.luban/providers.json` 配置)。
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm i -g @luban-code/luban-code
|
|
60
|
+
luban --plan "调研 src/ 的目录结构并给出重构建议" # 只读计划(默认)
|
|
61
|
+
luban --agent --apply "新建 utils.js 并写测试" # 完整 agent,放开写
|
|
62
|
+
luban # 交互多轮(需要 TTY)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
全量参数见 `luban --help`(`--model` / `--root` / `--json` / `--max-rounds` 等)。
|
|
66
|
+
|
|
54
67
|
## 安装
|
|
55
68
|
|
|
56
69
|
| 途径 | 做法 |
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/*! Luban | Copyright 2026 eppen (liuhualiang) | SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
-
"use strict";var c0=Object.create;var yu=Object.defineProperty;var u0=Object.getOwnPropertyDescriptor;var d0=Object.getOwnPropertyNames;var f0=Object.getPrototypeOf,p0=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var h0=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of d0(e))!p0.call(t,s)&&s!==n&&yu(t,s,{get:()=>e[s],enumerable:!(o=u0(e,s))||o.enumerable});return t};var m0=(t,e,n)=>(n=t!=null?c0(f0(t)):{},h0(e||!t||!t.__esModule?yu(n,"default",{value:t,enumerable:!0}):n,t));var ba=Z((cT,vu)=>{"use strict";var fa="\u73ED\u73ED",pa="Banban",ha="\u5C0F\u6728\u5320",ma="\u5148\u91CF\u4E09\u904D\uFF0C\u518D\u4E0B\u4E00\u51FF",g0=[" _____"," / \\"," /_______\\"],y0=" \\_______/",b0=[" | |"," /| |\\"," \\|_____|/"," |_| |_|"],ga={idle:[" | o o |"," | . |"," | \\___/ |"],think:[" | o o |"," | . |"," | ___ |"],plan:[" | o o |"," | . |"," | --- |"],explore:[" | O o |"," | . |"," | \\_/ |"],work:[" | > < |"," | . |"," | ___ |"],done:[" | ^ ^ |"," | . |"," | \\___/ |"],tired:[" | - - |"," | . |"," | --- |"],error:[" | x x |"," | . |"," | ~~~ |"]},bu={idle:"(o o)",think:"(o.o)",plan:"[o o]",explore:"(o o)?",work:"(>_<)",done:"(^ ^)",tired:"(-_-)",error:"(x_x)"},da=[{mood:"idle",when:"\u7A7A\u95F2",say:"\u7B49\u4F60\u6D3E\u6D3B\uFF1B\u53EA\u8BFB\uFF0C\u5148\u91CF\u5C3A\u5BF8"},{mood:"plan",when:"plan",say:"\u53EA\u753B\u7EBF\u4E0D\u52A8\u624B\uFF1A\u5199\u5DE5\u5177\u4F1A\u88AB\u53EA\u8BFB\u95F8\u95E8\u62E6\u4E0B"},{mood:"explore",when:"explore",say:"\u53EA\u8BFB\u8C03\u7814\uFF0C\u770B\u89C1\u4EC0\u4E48\u5148\u8BB0\u4E0B\u6765"},{mood:"work",when:"agent",say:"--apply \u5F00\u4E86\u5199\u6743\u9650\uFF0C\u4E0A\u51FF\u5B50"},{mood:"think",when:"\u601D\u8003\u4E2D",say:"\u6A21\u578B\u81EA\u5DF1\u5728\u60F3\uFF08\u53EA\u663E\u793A\u7D2F\u8BA1\u5B57\u6570\uFF09"},{mood:"done",when:"final",say:"\u5E72\u5B8C\u4E86\uFF0C\u62A5\u4E00\u53E5\u8F6E\u6570 / \u5DE5\u5177\u6570 / \u8017\u65F6"},{mood:"tired",when:"maxRounds / timeout",say:"\u6536\u5DE5\uFF1A\u8F6E\u6570\u6216\u5899\u949F\u5230\u9876\uFF0C\u6216\u7528\u6237\u53D6\u6D88"},{mood:"error",when:"\u62A5\u9519",say:"\u5DE5\u5177\u8FDE\u7EED\u5931\u8D25\uFF0C\u6216\u8FD9\u4E00\u8F6E\u76F4\u63A5\u70B8\u4E86"}];function Nr(t,e){let n=String(t??"");return n.length>=e?n:n+" ".repeat(e-n.length)}function w0(t){return t<4352?1:t<=4447||t>=11904&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65072&&t<=65135||t>=65280&&t<=65376||t>=65504&&t<=65510?2:1}function wu(t){let e=String(t??""),n=0;for(let o=0;o<e.length;o++)n+=w0(e.charCodeAt(o));return n}function ku(t,e){let n=String(t??""),o=e-wu(n);return o>0?n+" ".repeat(o):n}function xu(t){return Object.prototype.hasOwnProperty.call(ga,t)?t:"idle"}function k0(t){let e=String(t||"");return e==="plan"?"plan":e==="explore"?"explore":"idle"}function x0(t){let e=String(t||"");return e==="final"?"done":"tired"}function ya(t){return g0.concat(ga[xu(t)],[y0])}function Su(t){return ya(t).concat(b0)}function _u(t){return bu[xu(t)]}function S0(t,e){let n=e||{},o=typeof t=="function"?t:function(a,l){return String(l)},s=ya(n.mood||"plan"),r={};r[2]=" "+o("bold",fa)+o("gray"," \xB7 "+ha+"\uFF08"+pa+"\uFF09"),r[3]=" "+o("gray",ma),r[5]=" "+o("dim",String(n.tip||""));let i=[];for(let a=0;a<s.length;a++){let l=r[a];if(!l){i.push(o("cyan",s[a]));continue}i.push(o("cyan",Nr(s[a],12))+l)}return i}function _0(t){let e=typeof t=="function"?t:function(i,a){return String(a)},n=Su("idle"),o=[e("bold",fa+"\uFF08"+pa+"\uFF09")+e("gray"," \xB7 "+ha),e("gray",ma),e("dim","Luban CLI \u7684\u642D\u6863\uFF1A\u53EA\u8BFB\u7684\u65F6\u5019\u753B\u7EBF\uFF0C--apply \u4E4B\u540E\u624D\u52A8\u51FF\u5B50\u3002")],s=[],r=Math.max(n.length,o.length);for(let i=0;i<r;i++){let a=n[i]||"",l=o[i]||"";if(!l){s.push(a?e("cyan",a):"");continue}s.push(e("cyan",Nr(a,14))+l)}s.push(""),s.push(e("bold"," \u8868\u60C5\uFF08\u6309 CLI \u72B6\u6001\u81EA\u52A8\u5207\u6362\uFF09"));for(let i=0;i<da.length;i++){let a=da[i];s.push(" "+e("cyan",Nr(_u(a.mood),9))+e("gray",ku(a.when,22))+a.say)}return s}vu.exports={NAME:fa,NAME_EN:pa,KIND:ha,TAGLINE:ma,MOODS:ga,FACES:bu,NOTES:da,padRight:Nr,padDisplay:ku,displayWidth:wu,moodForMode:k0,moodForStop:x0,portrait:ya,full:Su,face:_u,banner:S0,sheet:_0}});var Fr=Z((uT,v0)=>{v0.exports={name:"@luban-code/luban-code",displayName:"Luban",description:"%lubanDescription%",version:"1.66.0",license:"Apache-2.0",author:{name:"eppen (liuhualiang)",url:"https://github.com/eppen"},publisher:"liuhualiang",icon:"media/icon.png",homepage:"https://github.com/eppen/luban#readme",bugs:{url:"https://github.com/eppen/luban/issues"},keywords:["ai","agent","chat","coding-agent","qwen","deepseek","openai-compatible","mcp"],repository:{type:"git",url:"https://github.com/eppen/luban.git"},engines:{vscode:"^1.100.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView"],main:"./dist/extension.js",bin:{luban:"./dist/cli.js"},files:["dist/cli.js","dist/extension.js","package.json"],scripts:{build:"node scripts/build.js",watch:"node scripts/build.js --watch",package:"node scripts/build.js","vscode:prepublish":"node scripts/build.js",prepack:"node scripts/build.js",smoke:"node scripts/build.js && node scripts/smoke.js","test:skills":"node scripts/test-skills.js",cli:"node cli.js",vsix:"npx --yes @vscode/vsce@latest package --no-dependencies","test:general":"node scripts/test-general-settings.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:gamepad":"node scripts/test-gamepad.js"},capabilities:{untrustedWorkspaces:{supported:!0},virtualWorkspaces:!0},contributes:{commands:[{command:"luban.focusView",title:"%cmdFocusView%",category:"Luban"},{command:"luban.openPanel",title:"%cmdOpenPanel%",category:"Luban"},{command:"luban.reloadConfig",title:"%cmdReloadConfig%",category:"Luban"},{command:"luban.providerSettings",title:"%cmdProviderSettings%",category:"Luban"},{command:"luban.dashboard",title:"%cmdDashboard%",category:"Luban"},{command:"luban.agent",title:"%cmdAgent%",category:"Luban"},{command:"luban.openDiff",title:"%cmdOpenDiff%",category:"Luban"},{command:"luban.acceptHunk",title:"%cmdAcceptHunk%",category:"Luban"},{command:"luban.rejectHunk",title:"%cmdRejectHunk%",category:"Luban"},{command:"luban.acceptFile",title:"%cmdAcceptFile%",category:"Luban"},{command:"luban.rejectFile",title:"%cmdRejectFile%",category:"Luban"},{command:"luban.reviewAll",title:"%cmdReviewAll%",category:"Luban"},{command:"luban.revertAll",title:"%cmdRevertAll%",category:"Luban"},{command:"luban.newSession",title:"%cmdNewSession%",category:"Luban"},{command:"luban.sessionList",title:"%cmdSessionList%",category:"Luban"},{command:"luban.cursorPlan",title:"%cmdCursorPlan%",category:"Luban"},{command:"luban.mode.cycle",title:"%cmdModeCycle%",category:"Luban"},{command:"luban.addFileToChat",title:"%cmdAddFileToChat%",category:"Luban"},{command:"luban.addFolderToChat",title:"%cmdAddFolderToChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.inlineCompletion.toggle",title:"%cmdInlineToggle%",category:"Luban"},{command:"luban.diffAccept",title:"%cmdDiffAccept%",category:"Luban"},{command:"luban.diffReject",title:"%cmdDiffReject%",category:"Luban"},{command:"luban.openInBrowser",title:"%cmdOpenInBrowser%",category:"Luban"},{command:"luban.browserCheck",title:"%cmdBrowserCheck%",category:"Luban"}],menus:{"editor/title":[{command:"luban.diffAccept",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@1"},{command:"luban.diffReject",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@2"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"}],"webview/context":[{command:"luban.openInBrowser",when:"webviewSection == 'chat'"}],commandPalette:[{command:"luban.diffAccept",when:"luban.pendingReview > 0"},{command:"luban.diffReject",when:"luban.pendingReview > 0"},{command:"luban.addFileToChat",when:"false"},{command:"luban.addFolderToChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.openInBrowser",when:"false"}]},keybindings:[{command:"luban.focusView",key:"cmd+shift+l",mac:"cmd+shift+l",win:"ctrl+shift+l",linux:"ctrl+shift+l"},{command:"luban.newSession",key:"cmd+alt+n",mac:"cmd+alt+n",win:"ctrl+alt+n",linux:"ctrl+alt+n"},{command:"luban.sessionList",key:"cmd+alt+h",mac:"cmd+alt+h",win:"ctrl+alt+h",linux:"ctrl+alt+h"},{command:"luban.mode.cycle",key:"shift+tab",mac:"shift+tab",win:"shift+tab",linux:"shift+tab",when:"focusedView == 'luban.chatView'"},{command:"luban.addSelectionToChat",key:"cmd+alt+a",mac:"cmd+alt+a",win:"ctrl+alt+a",linux:"ctrl+alt+a",when:"editorHasSelection && editorTextFocus"}],viewsContainers:{activitybar:[{id:"luban",title:"Luban",icon:"media/icon.svg"}]},views:{luban:[{type:"webview",id:"luban.chatView",name:"Chat",contextualTitle:"Luban"}]},configuration:{title:"Luban",properties:{"luban.language":{type:"string",enum:["auto","en","zh-cn","ja"],enumDescriptions:["%cfgLanguageAuto%","%cfgLanguageEn%","%cfgLanguageZhCn%","%cfgLanguageJa%"],default:"auto",description:"%cfgLanguage%"},"luban.autoOpen":{type:"boolean",default:!0,description:"%cfgAutoOpen%"},"luban.context.autoFile":{type:"boolean",default:!0,description:"%cfgContextAutoFile%"},"luban.context.autoFileMaxChars":{type:"number",default:8e3,minimum:500,description:"%cfgContextAutoFileMaxChars%"},"luban.context.autoFileWindowLines":{type:"number",default:200,minimum:40,description:"%cfgContextAutoFileWindowLines%"},"luban.context.workset":{type:"boolean",default:!0,description:"%cfgContextWorkset%"},"luban.sessionHistory.max":{type:"number",default:50,minimum:1,description:"%cfgSessionHistoryMax%"},"luban.usage.record":{type:"boolean",default:!0,description:"%cfgUsageRecord%"},"luban.sessionMemory.enabled":{type:"boolean",default:!0,description:"%cfgSessionMemoryEnabled%"},"luban.sessionMemory.maxTurns":{type:"number",default:8,minimum:1,description:"%cfgSessionMemoryMaxTurns%"},"luban.sessionMemory.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgSessionMemoryMaxChars%"},"luban.agent.maxRounds":{type:"number",default:100,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:15,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.subagentRounds":{type:"number",default:24,minimum:0,description:"%cfgAgentSubagentRounds%"},"luban.agent.subagentMinutes":{type:"number",default:0,minimum:0,description:"%cfgAgentSubagentMinutes%"},"luban.agent.smallWindow":{type:"string",enum:["auto","on","off"],default:"auto",description:"%cfgAgentSmallWindow%"},"luban.agent.verbosity":{type:"string",enum:["concise","normal","detailed"],default:"normal",description:"%cfgAgentVerbosity%"},"luban.search.maxFiles":{type:"number",default:5e3,minimum:100,description:"%cfgSearchMaxFiles%"},"luban.browser.enabled":{type:"boolean",default:!1,description:"%cfgBrowserEnabled%"},"luban.browser.chromePath":{type:"string",default:"",description:"%cfgBrowserChromePath%"},"luban.browser.headless":{type:"boolean",default:!0,description:"%cfgBrowserHeadless%"},"luban.browser.viewportWidth":{type:"number",default:1280,minimum:320,maximum:4096,description:"%cfgBrowserViewportWidth%"},"luban.browser.viewportHeight":{type:"number",default:800,minimum:240,maximum:4096,description:"%cfgBrowserViewportHeight%"},"luban.browser.idleTimeoutMs":{type:"number",default:3e5,minimum:1e4,description:"%cfgBrowserIdleTimeout%"},"luban.computer.enabled":{type:"boolean",default:!1,description:"%cfgComputerEnabled%"},"luban.computer.confirm":{type:"boolean",default:!0,description:"%cfgComputerConfirm%"},"luban.computer.screenshotWidth":{type:"number",default:2048,minimum:320,maximum:4096,description:"%cfgComputerScreenshotWidth%"},"luban.plan.strictReadOnly":{type:"boolean",default:!0,description:"%cfgPlanStrictReadOnly%"},"luban.fs.allowOutsideWorkspace":{type:"boolean",default:!0,description:"%cfgFsAllowOutsideWorkspace%"},"luban.review.autoOpenDiff":{type:"boolean",default:!0,description:"%cfgReviewAutoOpenDiff%"},"luban.diagnostics.afterEdit":{type:"boolean",default:!0,description:"%cfgDiagAfterEdit%"},"luban.inlineCompletion.enabled":{type:"boolean",default:!1,description:"%cfgInlineEnabled%"},"luban.inlineCompletion.maxPerMinute":{type:"number",default:30,minimum:1,description:"%cfgInlineMaxPerMinute%"},"luban.inlineCompletion.debounceMs":{type:"number",default:250,minimum:0,description:"%cfgInlineDebounceMs%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var Sa=Z((dT,xa)=>{function ls(t,e){let n=String(t??"").replace(/\s+/g," ").trim();return n?n.length>e?n.slice(0,e):n:""}function T0(t,e){if(!t||typeof t!="object")return null;let n=ls(t.id,64),o=ls(t.label!=null?t.label:t.text,120);if(!o)return null;n||(n="o"+(e+1));let s={id:n,label:o};return(t.recommended===!0||t.recommended==="true")&&(s.recommended=!0),s}function C0(t,e){if(!t||typeof t!="object")return null;let n=ls(t.id,64),o=ls(t.prompt!=null?t.prompt:t.question,240);if(!o)return null;n||(n="q"+(e+1));let s=Array.isArray(t.options)?t.options:[],r=[],i=Object.create(null);for(let a=0;a<s.length&&r.length<6;a++){let l=T0(s[a],a);l&&(i[l.id]||(i[l.id]=1,r.push(l)))}return r.length<2?null:{id:n,prompt:o,allow_multiple:!!(t.allow_multiple||t.allowMultiple),options:r}}function In(t){let e=t&&typeof t=="object"?t:{},n=ls(e.title,80),o=Array.isArray(e.questions)?e.questions:[];if(!o.length)throw new Error("ask_question \u9700\u8981\u975E\u7A7A questions \u6570\u7EC4");let s=[],r=Object.create(null);for(let i=0;i<o.length&&s.length<4;i++){let a=C0(o[i],i);a&&(r[a.id]||(r[a.id]=1,s.push(a)))}if(!s.length)throw new Error("ask_question \u6CA1\u6709\u6709\u6548\u9898\u76EE\uFF08\u6BCF\u9898\u9700 prompt\uFF0C\u4E14 options 2~6 \u9879\uFF09");return{title:n,questions:s}}function wa(t,e){let n=t&&t.questions||[],o=e&&typeof e=="object"?e:{},s={};for(let r=0;r<n.length;r++){let i=n[r],a=Object.create(null);for(let c=0;c<i.options.length;c++)a[i.options[c].id]=i.options[c];let l=o[i.id];if(i.allow_multiple){let c=Array.isArray(l)?l:l==null||l===""?[]:[l],u=[],d=Object.create(null);for(let f=0;f<c.length;f++){let p=ls(c[f],64);!p||!a[p]||d[p]||(d[p]=1,u.push(p))}if(!u.length)throw new Error("\u9898\u76EE\u300C"+i.id+"\u300D\u9700\u8981\u81F3\u5C11\u9009\u4E00\u9879");s[i.id]=u}else{let c=ls(Array.isArray(l)?l[0]:l,64);if(!c||!a[c])throw new Error("\u9898\u76EE\u300C"+i.id+"\u300D\u9700\u8981\u9009\u62E9\u4E00\u4E2A\u6709\u6548\u9009\u9879");s[i.id]=c}}return s}function Tu(t,e){for(let n=0;n<t.options.length;n++)if(t.options[n].id===e)return t.options[n].label;return e}function Cu(t,e){let n=t&&t.questions||[],o=["\u7528\u6237\u56DE\u7B54\uFF1A"];t&&t.title&&o.unshift("\u63D0\u95EE\uFF1A"+t.title);for(let s=0;s<n.length;s++){let r=n[s],i=e[r.id],a;Array.isArray(i)?a=i.map(function(l){return l+"\uFF08"+Tu(r,l)+"\uFF09"}).join("\u3001"):a=i+"\uFF08"+Tu(r,i)+"\uFF09",o.push("- "+r.id+"\uFF08"+r.prompt+"\uFF09: "+a)}return o.join(`
|
|
3
|
+
"use strict";var c0=Object.create;var yu=Object.defineProperty;var u0=Object.getOwnPropertyDescriptor;var d0=Object.getOwnPropertyNames;var f0=Object.getPrototypeOf,p0=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var h0=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of d0(e))!p0.call(t,s)&&s!==n&&yu(t,s,{get:()=>e[s],enumerable:!(o=u0(e,s))||o.enumerable});return t};var m0=(t,e,n)=>(n=t!=null?c0(f0(t)):{},h0(e||!t||!t.__esModule?yu(n,"default",{value:t,enumerable:!0}):n,t));var ba=Z((cT,vu)=>{"use strict";var fa="\u73ED\u73ED",pa="Banban",ha="\u5C0F\u6728\u5320",ma="\u5148\u91CF\u4E09\u904D\uFF0C\u518D\u4E0B\u4E00\u51FF",g0=[" _____"," / \\"," /_______\\"],y0=" \\_______/",b0=[" | |"," /| |\\"," \\|_____|/"," |_| |_|"],ga={idle:[" | o o |"," | . |"," | \\___/ |"],think:[" | o o |"," | . |"," | ___ |"],plan:[" | o o |"," | . |"," | --- |"],explore:[" | O o |"," | . |"," | \\_/ |"],work:[" | > < |"," | . |"," | ___ |"],done:[" | ^ ^ |"," | . |"," | \\___/ |"],tired:[" | - - |"," | . |"," | --- |"],error:[" | x x |"," | . |"," | ~~~ |"]},bu={idle:"(o o)",think:"(o.o)",plan:"[o o]",explore:"(o o)?",work:"(>_<)",done:"(^ ^)",tired:"(-_-)",error:"(x_x)"},da=[{mood:"idle",when:"\u7A7A\u95F2",say:"\u7B49\u4F60\u6D3E\u6D3B\uFF1B\u53EA\u8BFB\uFF0C\u5148\u91CF\u5C3A\u5BF8"},{mood:"plan",when:"plan",say:"\u53EA\u753B\u7EBF\u4E0D\u52A8\u624B\uFF1A\u5199\u5DE5\u5177\u4F1A\u88AB\u53EA\u8BFB\u95F8\u95E8\u62E6\u4E0B"},{mood:"explore",when:"explore",say:"\u53EA\u8BFB\u8C03\u7814\uFF0C\u770B\u89C1\u4EC0\u4E48\u5148\u8BB0\u4E0B\u6765"},{mood:"work",when:"agent",say:"--apply \u5F00\u4E86\u5199\u6743\u9650\uFF0C\u4E0A\u51FF\u5B50"},{mood:"think",when:"\u601D\u8003\u4E2D",say:"\u6A21\u578B\u81EA\u5DF1\u5728\u60F3\uFF08\u53EA\u663E\u793A\u7D2F\u8BA1\u5B57\u6570\uFF09"},{mood:"done",when:"final",say:"\u5E72\u5B8C\u4E86\uFF0C\u62A5\u4E00\u53E5\u8F6E\u6570 / \u5DE5\u5177\u6570 / \u8017\u65F6"},{mood:"tired",when:"maxRounds / timeout",say:"\u6536\u5DE5\uFF1A\u8F6E\u6570\u6216\u5899\u949F\u5230\u9876\uFF0C\u6216\u7528\u6237\u53D6\u6D88"},{mood:"error",when:"\u62A5\u9519",say:"\u5DE5\u5177\u8FDE\u7EED\u5931\u8D25\uFF0C\u6216\u8FD9\u4E00\u8F6E\u76F4\u63A5\u70B8\u4E86"}];function Nr(t,e){let n=String(t??"");return n.length>=e?n:n+" ".repeat(e-n.length)}function w0(t){return t<4352?1:t<=4447||t>=11904&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65072&&t<=65135||t>=65280&&t<=65376||t>=65504&&t<=65510?2:1}function wu(t){let e=String(t??""),n=0;for(let o=0;o<e.length;o++)n+=w0(e.charCodeAt(o));return n}function ku(t,e){let n=String(t??""),o=e-wu(n);return o>0?n+" ".repeat(o):n}function xu(t){return Object.prototype.hasOwnProperty.call(ga,t)?t:"idle"}function k0(t){let e=String(t||"");return e==="plan"?"plan":e==="explore"?"explore":"idle"}function x0(t){let e=String(t||"");return e==="final"?"done":"tired"}function ya(t){return g0.concat(ga[xu(t)],[y0])}function Su(t){return ya(t).concat(b0)}function _u(t){return bu[xu(t)]}function S0(t,e){let n=e||{},o=typeof t=="function"?t:function(a,l){return String(l)},s=ya(n.mood||"plan"),r={};r[2]=" "+o("bold",fa)+o("gray"," \xB7 "+ha+"\uFF08"+pa+"\uFF09"),r[3]=" "+o("gray",ma),r[5]=" "+o("dim",String(n.tip||""));let i=[];for(let a=0;a<s.length;a++){let l=r[a];if(!l){i.push(o("cyan",s[a]));continue}i.push(o("cyan",Nr(s[a],12))+l)}return i}function _0(t){let e=typeof t=="function"?t:function(i,a){return String(a)},n=Su("idle"),o=[e("bold",fa+"\uFF08"+pa+"\uFF09")+e("gray"," \xB7 "+ha),e("gray",ma),e("dim","Luban CLI \u7684\u642D\u6863\uFF1A\u53EA\u8BFB\u7684\u65F6\u5019\u753B\u7EBF\uFF0C--apply \u4E4B\u540E\u624D\u52A8\u51FF\u5B50\u3002")],s=[],r=Math.max(n.length,o.length);for(let i=0;i<r;i++){let a=n[i]||"",l=o[i]||"";if(!l){s.push(a?e("cyan",a):"");continue}s.push(e("cyan",Nr(a,14))+l)}s.push(""),s.push(e("bold"," \u8868\u60C5\uFF08\u6309 CLI \u72B6\u6001\u81EA\u52A8\u5207\u6362\uFF09"));for(let i=0;i<da.length;i++){let a=da[i];s.push(" "+e("cyan",Nr(_u(a.mood),9))+e("gray",ku(a.when,22))+a.say)}return s}vu.exports={NAME:fa,NAME_EN:pa,KIND:ha,TAGLINE:ma,MOODS:ga,FACES:bu,NOTES:da,padRight:Nr,padDisplay:ku,displayWidth:wu,moodForMode:k0,moodForStop:x0,portrait:ya,full:Su,face:_u,banner:S0,sheet:_0}});var Fr=Z((uT,v0)=>{v0.exports={name:"@luban-code/luban-code",displayName:"Luban",description:"Luban \u2014 a standalone sidebar AI coding agent (multi-provider, OpenAI-compatible, zero source patches)",version:"1.66.1",license:"Apache-2.0",author:{name:"eppen (liuhualiang)",url:"https://github.com/eppen"},publisher:"liuhualiang",icon:"media/icon.png",homepage:"https://github.com/eppen/luban#readme",bugs:{url:"https://github.com/eppen/luban/issues"},keywords:["ai","agent","chat","coding-agent","qwen","deepseek","openai-compatible","mcp"],repository:{type:"git",url:"https://github.com/eppen/luban.git"},engines:{vscode:"^1.100.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView"],main:"./dist/extension.js",bin:{luban:"./dist/cli.js"},files:["dist/cli.js","dist/extension.js","package.json"],scripts:{build:"node scripts/build.js",watch:"node scripts/build.js --watch",package:"node scripts/build.js","vscode:prepublish":"node scripts/build.js",prepack:"node scripts/build.js",smoke:"node scripts/build.js && node scripts/smoke.js","test:skills":"node scripts/test-skills.js",cli:"node cli.js",vsix:"npx --yes @vscode/vsce@latest package --no-dependencies","test:general":"node scripts/test-general-settings.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:gamepad":"node scripts/test-gamepad.js"},capabilities:{untrustedWorkspaces:{supported:!0},virtualWorkspaces:!0},contributes:{commands:[{command:"luban.focusView",title:"%cmdFocusView%",category:"Luban"},{command:"luban.openPanel",title:"%cmdOpenPanel%",category:"Luban"},{command:"luban.reloadConfig",title:"%cmdReloadConfig%",category:"Luban"},{command:"luban.providerSettings",title:"%cmdProviderSettings%",category:"Luban"},{command:"luban.dashboard",title:"%cmdDashboard%",category:"Luban"},{command:"luban.agent",title:"%cmdAgent%",category:"Luban"},{command:"luban.openDiff",title:"%cmdOpenDiff%",category:"Luban"},{command:"luban.acceptHunk",title:"%cmdAcceptHunk%",category:"Luban"},{command:"luban.rejectHunk",title:"%cmdRejectHunk%",category:"Luban"},{command:"luban.acceptFile",title:"%cmdAcceptFile%",category:"Luban"},{command:"luban.rejectFile",title:"%cmdRejectFile%",category:"Luban"},{command:"luban.reviewAll",title:"%cmdReviewAll%",category:"Luban"},{command:"luban.revertAll",title:"%cmdRevertAll%",category:"Luban"},{command:"luban.newSession",title:"%cmdNewSession%",category:"Luban"},{command:"luban.sessionList",title:"%cmdSessionList%",category:"Luban"},{command:"luban.cursorPlan",title:"%cmdCursorPlan%",category:"Luban"},{command:"luban.mode.cycle",title:"%cmdModeCycle%",category:"Luban"},{command:"luban.addFileToChat",title:"%cmdAddFileToChat%",category:"Luban"},{command:"luban.addFolderToChat",title:"%cmdAddFolderToChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.inlineCompletion.toggle",title:"%cmdInlineToggle%",category:"Luban"},{command:"luban.diffAccept",title:"%cmdDiffAccept%",category:"Luban"},{command:"luban.diffReject",title:"%cmdDiffReject%",category:"Luban"},{command:"luban.openInBrowser",title:"%cmdOpenInBrowser%",category:"Luban"},{command:"luban.browserCheck",title:"%cmdBrowserCheck%",category:"Luban"}],menus:{"editor/title":[{command:"luban.diffAccept",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@1"},{command:"luban.diffReject",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@2"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"}],"webview/context":[{command:"luban.openInBrowser",when:"webviewSection == 'chat'"}],commandPalette:[{command:"luban.diffAccept",when:"luban.pendingReview > 0"},{command:"luban.diffReject",when:"luban.pendingReview > 0"},{command:"luban.addFileToChat",when:"false"},{command:"luban.addFolderToChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.openInBrowser",when:"false"}]},keybindings:[{command:"luban.focusView",key:"cmd+shift+l",mac:"cmd+shift+l",win:"ctrl+shift+l",linux:"ctrl+shift+l"},{command:"luban.newSession",key:"cmd+alt+n",mac:"cmd+alt+n",win:"ctrl+alt+n",linux:"ctrl+alt+n"},{command:"luban.sessionList",key:"cmd+alt+h",mac:"cmd+alt+h",win:"ctrl+alt+h",linux:"ctrl+alt+h"},{command:"luban.mode.cycle",key:"shift+tab",mac:"shift+tab",win:"shift+tab",linux:"shift+tab",when:"focusedView == 'luban.chatView'"},{command:"luban.addSelectionToChat",key:"cmd+alt+a",mac:"cmd+alt+a",win:"ctrl+alt+a",linux:"ctrl+alt+a",when:"editorHasSelection && editorTextFocus"}],viewsContainers:{activitybar:[{id:"luban",title:"Luban",icon:"media/icon.svg"}]},views:{luban:[{type:"webview",id:"luban.chatView",name:"Chat",contextualTitle:"Luban"}]},configuration:{title:"Luban",properties:{"luban.language":{type:"string",enum:["auto","en","zh-cn","ja"],enumDescriptions:["%cfgLanguageAuto%","%cfgLanguageEn%","%cfgLanguageZhCn%","%cfgLanguageJa%"],default:"auto",description:"%cfgLanguage%"},"luban.autoOpen":{type:"boolean",default:!0,description:"%cfgAutoOpen%"},"luban.context.autoFile":{type:"boolean",default:!0,description:"%cfgContextAutoFile%"},"luban.context.autoFileMaxChars":{type:"number",default:8e3,minimum:500,description:"%cfgContextAutoFileMaxChars%"},"luban.context.autoFileWindowLines":{type:"number",default:200,minimum:40,description:"%cfgContextAutoFileWindowLines%"},"luban.context.workset":{type:"boolean",default:!0,description:"%cfgContextWorkset%"},"luban.sessionHistory.max":{type:"number",default:50,minimum:1,description:"%cfgSessionHistoryMax%"},"luban.usage.record":{type:"boolean",default:!0,description:"%cfgUsageRecord%"},"luban.sessionMemory.enabled":{type:"boolean",default:!0,description:"%cfgSessionMemoryEnabled%"},"luban.sessionMemory.maxTurns":{type:"number",default:8,minimum:1,description:"%cfgSessionMemoryMaxTurns%"},"luban.sessionMemory.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgSessionMemoryMaxChars%"},"luban.agent.maxRounds":{type:"number",default:100,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:15,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.subagentRounds":{type:"number",default:24,minimum:0,description:"%cfgAgentSubagentRounds%"},"luban.agent.subagentMinutes":{type:"number",default:0,minimum:0,description:"%cfgAgentSubagentMinutes%"},"luban.agent.smallWindow":{type:"string",enum:["auto","on","off"],default:"auto",description:"%cfgAgentSmallWindow%"},"luban.agent.verbosity":{type:"string",enum:["concise","normal","detailed"],default:"normal",description:"%cfgAgentVerbosity%"},"luban.search.maxFiles":{type:"number",default:5e3,minimum:100,description:"%cfgSearchMaxFiles%"},"luban.browser.enabled":{type:"boolean",default:!1,description:"%cfgBrowserEnabled%"},"luban.browser.chromePath":{type:"string",default:"",description:"%cfgBrowserChromePath%"},"luban.browser.headless":{type:"boolean",default:!0,description:"%cfgBrowserHeadless%"},"luban.browser.viewportWidth":{type:"number",default:1280,minimum:320,maximum:4096,description:"%cfgBrowserViewportWidth%"},"luban.browser.viewportHeight":{type:"number",default:800,minimum:240,maximum:4096,description:"%cfgBrowserViewportHeight%"},"luban.browser.idleTimeoutMs":{type:"number",default:3e5,minimum:1e4,description:"%cfgBrowserIdleTimeout%"},"luban.computer.enabled":{type:"boolean",default:!1,description:"%cfgComputerEnabled%"},"luban.computer.confirm":{type:"boolean",default:!0,description:"%cfgComputerConfirm%"},"luban.computer.screenshotWidth":{type:"number",default:2048,minimum:320,maximum:4096,description:"%cfgComputerScreenshotWidth%"},"luban.plan.strictReadOnly":{type:"boolean",default:!0,description:"%cfgPlanStrictReadOnly%"},"luban.fs.allowOutsideWorkspace":{type:"boolean",default:!0,description:"%cfgFsAllowOutsideWorkspace%"},"luban.review.autoOpenDiff":{type:"boolean",default:!0,description:"%cfgReviewAutoOpenDiff%"},"luban.diagnostics.afterEdit":{type:"boolean",default:!0,description:"%cfgDiagAfterEdit%"},"luban.inlineCompletion.enabled":{type:"boolean",default:!1,description:"%cfgInlineEnabled%"},"luban.inlineCompletion.maxPerMinute":{type:"number",default:30,minimum:1,description:"%cfgInlineMaxPerMinute%"},"luban.inlineCompletion.debounceMs":{type:"number",default:250,minimum:0,description:"%cfgInlineDebounceMs%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var Sa=Z((dT,xa)=>{function ls(t,e){let n=String(t??"").replace(/\s+/g," ").trim();return n?n.length>e?n.slice(0,e):n:""}function T0(t,e){if(!t||typeof t!="object")return null;let n=ls(t.id,64),o=ls(t.label!=null?t.label:t.text,120);if(!o)return null;n||(n="o"+(e+1));let s={id:n,label:o};return(t.recommended===!0||t.recommended==="true")&&(s.recommended=!0),s}function C0(t,e){if(!t||typeof t!="object")return null;let n=ls(t.id,64),o=ls(t.prompt!=null?t.prompt:t.question,240);if(!o)return null;n||(n="q"+(e+1));let s=Array.isArray(t.options)?t.options:[],r=[],i=Object.create(null);for(let a=0;a<s.length&&r.length<6;a++){let l=T0(s[a],a);l&&(i[l.id]||(i[l.id]=1,r.push(l)))}return r.length<2?null:{id:n,prompt:o,allow_multiple:!!(t.allow_multiple||t.allowMultiple),options:r}}function In(t){let e=t&&typeof t=="object"?t:{},n=ls(e.title,80),o=Array.isArray(e.questions)?e.questions:[];if(!o.length)throw new Error("ask_question \u9700\u8981\u975E\u7A7A questions \u6570\u7EC4");let s=[],r=Object.create(null);for(let i=0;i<o.length&&s.length<4;i++){let a=C0(o[i],i);a&&(r[a.id]||(r[a.id]=1,s.push(a)))}if(!s.length)throw new Error("ask_question \u6CA1\u6709\u6709\u6548\u9898\u76EE\uFF08\u6BCF\u9898\u9700 prompt\uFF0C\u4E14 options 2~6 \u9879\uFF09");return{title:n,questions:s}}function wa(t,e){let n=t&&t.questions||[],o=e&&typeof e=="object"?e:{},s={};for(let r=0;r<n.length;r++){let i=n[r],a=Object.create(null);for(let c=0;c<i.options.length;c++)a[i.options[c].id]=i.options[c];let l=o[i.id];if(i.allow_multiple){let c=Array.isArray(l)?l:l==null||l===""?[]:[l],u=[],d=Object.create(null);for(let f=0;f<c.length;f++){let p=ls(c[f],64);!p||!a[p]||d[p]||(d[p]=1,u.push(p))}if(!u.length)throw new Error("\u9898\u76EE\u300C"+i.id+"\u300D\u9700\u8981\u81F3\u5C11\u9009\u4E00\u9879");s[i.id]=u}else{let c=ls(Array.isArray(l)?l[0]:l,64);if(!c||!a[c])throw new Error("\u9898\u76EE\u300C"+i.id+"\u300D\u9700\u8981\u9009\u62E9\u4E00\u4E2A\u6709\u6548\u9009\u9879");s[i.id]=c}}return s}function Tu(t,e){for(let n=0;n<t.options.length;n++)if(t.options[n].id===e)return t.options[n].label;return e}function Cu(t,e){let n=t&&t.questions||[],o=["\u7528\u6237\u56DE\u7B54\uFF1A"];t&&t.title&&o.unshift("\u63D0\u95EE\uFF1A"+t.title);for(let s=0;s<n.length;s++){let r=n[s],i=e[r.id],a;Array.isArray(i)?a=i.map(function(l){return l+"\uFF08"+Tu(r,l)+"\uFF09"}).join("\u3001"):a=i+"\uFF08"+Tu(r,i)+"\uFF09",o.push("- "+r.id+"\uFF08"+r.prompt+"\uFF09: "+a)}return o.join(`
|
|
4
4
|
`)}function ka(t){let e=t&&t.questions||[];return e.length!==1?!0:!!e[0].allow_multiple}xa.exports={MAX_QUESTIONS:4,MIN_OPTIONS:2,MAX_OPTIONS:6,normalize:In,normalizeAnswers:wa,formatAnswers:Cu,needsConfirm:ka};if(require.main===xa){let t=function(o,s){if(!o)throw new Error(s||"assert failed")},e=0,n=function(o,s){try{s(),e++,console.log("ok "+o)}catch(r){console.error("FAIL "+o+": "+r.message),process.exitCode=1}};n("normalize basic",function(){let o=In({title:"\u65B9\u5411",questions:[{id:"q1",prompt:"\u8981\u4E0D\u8981\u8D85\u51FA\u5C04\u7A0B\u53D8\u6A59\uFF1F",options:[{id:"yes",label:"\u8981\u505A"},{id:"no",label:"\u4E0D\u505A"}]}]});t(o.title==="\u65B9\u5411","title"),t(o.questions.length===1&&o.questions[0].options.length===2,"q"),t(!ka(o),"single select no confirm")}),n("normalize rejects empty / short options",function(){let o=!1;try{In({questions:[]})}catch{o=!0}t(o,"empty"),o=!1;try{In({questions:[{prompt:"x",options:[{id:"a",label:"A"}]}]})}catch{o=!0}t(o,"one option")}),n("normalize fills missing ids + caps",function(){let o=[];for(let r=0;r<8;r++)o.push({label:"L"+r});let s=In({questions:[{prompt:"P1",options:o},{prompt:"P2",options:[{label:"A"},{label:"B"}]},{prompt:"P3",options:[{label:"A"},{label:"B"}]},{prompt:"P4",options:[{label:"A"},{label:"B"}]},{prompt:"P5",options:[{label:"A"},{label:"B"}]}]});t(s.questions.length===4,"max q"),t(s.questions[0].options.length===6,"max opt"),t(s.questions[0].id==="q1","auto id")}),n("normalizeAnswers single + multi",function(){let o=In({questions:[{id:"a",prompt:"\u5355\u9009",options:[{id:"x",label:"X"},{id:"y",label:"Y"}]},{id:"b",prompt:"\u591A\u9009",allow_multiple:!0,options:[{id:"p",label:"P"},{id:"q",label:"Q"}]}]});t(ka(o),"confirm");let s=wa(o,{a:"x",b:["p","q"]});t(s.a==="x"&&s.b.length===2,JSON.stringify(s));let r=Cu(o,s);t(r.indexOf("\u7528\u6237\u56DE\u7B54")>=0&&r.indexOf("x\uFF08X\uFF09")>=0,r)}),n("normalizeAnswers rejects bad",function(){let o=In({questions:[{id:"a",prompt:"\u5355\u9009",options:[{id:"x",label:"X"},{id:"y",label:"Y"}]}]}),s=!1;try{wa(o,{a:"z"})}catch{s=!0}t(s,"bad id")}),n("normalize recommended flag",function(){let o=In({questions:[{id:"q1",prompt:"\u65B9\u5411",options:[{id:"yes",label:"\u8981\u505A",recommended:!0},{id:"no",label:"\u4E0D\u505A"}]}]});t(o.questions[0].options[0].recommended===!0,"rec"),t(!o.questions[0].options[1].recommended,"no rec")}),process.exitCode||console.log("ALL PASS pass="+e)}});var Ta=Z((fT,Ou)=>{"use strict";var Mu=Sa(),Rr=ba(),M0=["write_file","replace_in_file","apply_patch","delete_file","move_file"],va={pending:"\xB7",in_progress:"\u25B6",completed:"\u2713",cancelled:"\u2298"},A0={pending:"gray",in_progress:"cyan",completed:"green",cancelled:"gray"},us=null;try{let t=require("picocolors");t&&typeof t.createColors=="function"?us=t.createColors(!process.env.NO_COLOR&&!!process.stderr.isTTY):t&&(us=t)}catch{us=null}var cs=!!(us&&us.isColorSupported===!0);function Te(t,e){let n=String(e??""),o=us&&us[t];return typeof o=="function"?o(n):n}function E0(t,e){let n=String(t??"").replace(/\s+/g," ").trim();return n?n.length>e?n.slice(0,e-1)+"\u2026":n:""}function _a(t){let e=Math.max(0,Number(t)||0);return e<1e3?String(e):e<1e4?(e/1e3).toFixed(1)+"k":Math.round(e/1e3)+"k"}function Au(t){let e=Math.max(0,Number(t)||0)/1e3;return e<10?e.toFixed(2)+"s":e<60?e.toFixed(1)+"s":Math.floor(e/60)+"m"+Math.round(e%60)+"s"}function Eu(t){let e=String((t&&t.result)==null?"":t.result);if(!e)return"";if(t&&t.ok===!1){let s=e.split(`
|
|
5
5
|
`);for(let r=0;r<s.length;r++){let i=s[r].trim();if(i)return E0(i.replace(/^ERROR:\s*/i,""),60)}return""}let n=0,o=e.split(`
|
|
6
6
|
`);for(let s=0;s<o.length;s++)o[s].trim()&&n++;return n>=2?n+" \u884C":""}function O0(t,e,n){let o=t&&t.name||"?",s=t&&t.path?" "+String(t.path):"",r=!(t&&t.ok===!1),i=[];n&&n.detail&&i.push(n.detail),n&&n.sec&&i.push(n.sec);let a=i.length?" \xB7 "+i.join(" \xB7 "):"";return e?(r?Te("green","\u25C7"):Te("red","\u2717"))+" "+Te("bold",o)+Te("gray",s)+(a?Te("dim",a):""):"[tool] "+o+s+a+(r?"":" \u2717")}function P0(t,e){let n="\u8BF7\u6C42="+(t.requests||0)+" tokens="+(t.totalTokens||0)+" \u4E0A\u4E0B\u6587="+(t.contextTokens||0)+"/"+(t.window||0)+" ("+Math.round((t.percent||0)*100)+"%)"+(t.cachedTokens?" \u7F13\u5B58\u547D\u4E2D="+Math.round((t.hit||0)*100)+"%":"");return e?Te("gray","\xB7 \u7528\u91CF ")+Te("dim",n):"[usage] "+n}function I0(t,e){let n=t.map(function(o){return o&&o.path}).join(", ");return e?Te("gray","\xB7 \u5F15\u7528 ")+Te("dim",n):"[refs] "+n}function L0(t,e){let n=(t&&t.description||"")+(t&&t.line||"");return e?Te("gray","\xB7 \u5B50\u4EE3\u7406 ")+Te("dim",n):"[\u5B50\u4EE3\u7406] "+n}function j0(t,e){let n=t&&va[t.status]?t.status:"pending",o=va[n],s=String(t&&t.content||"");return e?Te(A0[n]||"gray",o)+" "+(n==="completed"||n==="cancelled"?Te("dim",s):s):"[todo] "+o+" "+s}function D0(t){let e=t||{},n=e.output||process.stderr,o=e.stdout||process.stdout,s=!!e.enabled,r=e.stream!==!1,i=!!e.showThinking,a=null,l=!1,c=["\u25D2","\u25D0","\u25D3","\u25D1"],u=null,d=0,f=!1,p="idle",h="idle",m="\u601D\u8003\u4E2D",w=m,y="",b=0,S=0,v=0,g="",_=!1,T=!1,A="",M=0,I=!1,N=!1,G=0,q="",V="",D=0;function B(P){if(!_){ee();try{n.write(String(P)+`
|
package/dist/extension.js
CHANGED
|
@@ -697,7 +697,7 @@ todos:
|
|
|
697
697
|
`)}function Xa(t){let e=t&&t.questions||[];return e.length!==1?!0:!!e[0].allow_multiple}Va.exports={MAX_QUESTIONS:4,MIN_OPTIONS:2,MAX_OPTIONS:6,normalize:vn,normalizeAnswers:$a,formatAnswers:Vf,needsConfirm:Xa};if(require.main===Va){let t=function(s,o){if(!s)throw new Error(o||"assert failed")},e=0,n=function(s,o){try{o(),e++,console.log("ok "+s)}catch(r){console.error("FAIL "+s+": "+r.message),process.exitCode=1}};n("normalize basic",function(){let s=vn({title:"\u65B9\u5411",questions:[{id:"q1",prompt:"\u8981\u4E0D\u8981\u8D85\u51FA\u5C04\u7A0B\u53D8\u6A59\uFF1F",options:[{id:"yes",label:"\u8981\u505A"},{id:"no",label:"\u4E0D\u505A"}]}]});t(s.title==="\u65B9\u5411","title"),t(s.questions.length===1&&s.questions[0].options.length===2,"q"),t(!Xa(s),"single select no confirm")}),n("normalize rejects empty / short options",function(){let s=!1;try{vn({questions:[]})}catch{s=!0}t(s,"empty"),s=!1;try{vn({questions:[{prompt:"x",options:[{id:"a",label:"A"}]}]})}catch{s=!0}t(s,"one option")}),n("normalize fills missing ids + caps",function(){let s=[];for(let r=0;r<8;r++)s.push({label:"L"+r});let o=vn({questions:[{prompt:"P1",options:s},{prompt:"P2",options:[{label:"A"},{label:"B"}]},{prompt:"P3",options:[{label:"A"},{label:"B"}]},{prompt:"P4",options:[{label:"A"},{label:"B"}]},{prompt:"P5",options:[{label:"A"},{label:"B"}]}]});t(o.questions.length===4,"max q"),t(o.questions[0].options.length===6,"max opt"),t(o.questions[0].id==="q1","auto id")}),n("normalizeAnswers single + multi",function(){let s=vn({questions:[{id:"a",prompt:"\u5355\u9009",options:[{id:"x",label:"X"},{id:"y",label:"Y"}]},{id:"b",prompt:"\u591A\u9009",allow_multiple:!0,options:[{id:"p",label:"P"},{id:"q",label:"Q"}]}]});t(Xa(s),"confirm");let o=$a(s,{a:"x",b:["p","q"]});t(o.a==="x"&&o.b.length===2,JSON.stringify(o));let r=Vf(s,o);t(r.indexOf("\u7528\u6237\u56DE\u7B54")>=0&&r.indexOf("x\uFF08X\uFF09")>=0,r)}),n("normalizeAnswers rejects bad",function(){let s=vn({questions:[{id:"a",prompt:"\u5355\u9009",options:[{id:"x",label:"X"},{id:"y",label:"Y"}]}]}),o=!1;try{$a(s,{a:"z"})}catch{o=!0}t(o,"bad id")}),n("normalize recommended flag",function(){let s=vn({questions:[{id:"q1",prompt:"\u65B9\u5411",options:[{id:"yes",label:"\u8981\u505A",recommended:!0},{id:"no",label:"\u4E0D\u505A"}]}]});t(s.questions[0].options[0].recommended===!0,"rec"),t(!s.questions[0].options[1].recommended,"no rec")}),process.exitCode||console.log("ALL PASS pass="+e)}});var Qf=Q((Zf,ho)=>{(function(t){"use strict";let e={"zh-cn":{"panel.statusReady":"\u5C31\u7EEA","panel.sessionsBtn":"\u4F1A\u8BDD","panel.sessionsTitle":"\u4F1A\u8BDD\u5386\u53F2\uFF08Cmd+Alt+H\uFF09","panel.newSessionBtn":"\u65B0\u4F1A\u8BDD","panel.newSessionTitle":"\u65B0\u4F1A\u8BDD\uFF08Cmd+Alt+N\uFF09","panel.hint":"\u8BF4\u300C\u65B0\u5EFA xxx.js\uFF0C\u5B9E\u73B0 \u2026\u300D\u6216\u300C\u628A xxx \u6539\u6210 \u2026\u300D\uFF0C\u6A21\u578B\u4F1A\u76F4\u63A5\u6539\u5DE5\u4F5C\u533A\u6587\u4EF6\u3002<br />\u8F93\u5165 <code>@</code> \u9009\u62E9\u8981\u5F15\u7528\u7684\u6587\u4EF6\u6216\u6587\u4EF6\u5939\uFF08<code>@src/</code> \u53EF\u6574\u76EE\u5F55\u5F15\u7528\uFF09\uFF0C<code>@web</code> \u8054\u7F51\u641C\u7D22\u540E\u4F5C\u7B54\uFF1B\u5F15\u7528\u4EE3\u7801\uFF1A\u5728\u7F16\u8F91\u5668\u91CC\u9009\u4E2D\u540E\u53F3\u952E\u300CAdd Selection to Luban Chat\u300D\u6216\u6309 <code>Cmd/Ctrl+Alt+A</code>\uFF08\u4E5F\u53EF\u7528\u300C# \u9009\u533A\u300D\u6309\u94AE / <code>#</code>\uFF09\uFF0Ctoken \u5E26\u6587\u4EF6\u4E0E\u884C\u53F7\uFF0C\u53EF\u591A\u6B21\u53E0\u52A0\u3002","panel.inputPlaceholder":"\u63CF\u8FF0\u4F60\u8981\u751F\u6210\u6216\u4FEE\u6539\u7684\u4EE3\u7801\u2026\uFF08Enter \u53D1\u9001\uFF0CShift+Enter \u6362\u884C\uFF1B\u8FD0\u884C\u4E2D\u6309 Enter \u4F1A\u628A\u6D88\u606F\u6392\u961F\uFF0C\u7B49\u8FD9\u4E00\u8F6E\u7ED3\u675F\u81EA\u52A8\u53D1\u9001\uFF1B@ \u5F15\u7528\u6587\u4EF6\u6216\u6587\u4EF6\u5939\uFF0C# \u5F15\u7528\u9009\u533A\uFF1B@web \u8054\u7F51\u641C\u7D22\uFF1B\u8F93\u5165\u6CD5\u9009\u8BCD\u4E0D\u4F1A\u8BEF\u53D1\uFF09","panel.selectModelTitle":"\u9009\u62E9 provider / \u6A21\u578B","panel.modeTitle":"\u6A21\u5F0F\uFF08Shift+Tab \u5FAA\u73AF\uFF09","panel.refSelectionBtn":"# \u9009\u533A","panel.refSelectionTitle":"\u5F15\u7528\u7F16\u8F91\u5668\u9009\u533A\uFF08\u5148\u9009\u4E2D\u4EE3\u7801\uFF1A\u53F3\u952E Add Selection to Luban Chat \u6216 Cmd/Ctrl+Alt+A\uFF09","panel.webChip":"\u{1F310} \u8054\u7F51","panel.webChipTitle":"\u672C\u6B21\u4F1A\u5148\u8054\u7F51\u641C\u7D22\u518D\u56DE\u7B54","panel.thinkChipDefault":"\u{1F9E0} \u9ED8\u8BA4","panel.thinkChipOn":"\u{1F9E0} \u5F00","panel.thinkChipOff":"\u{1F9E0} \u5173","panel.thinkChipTitle":"\u601D\u8003\u6A21\u5F0F\uFF1A{dflt}\u3002\u70B9\u4E00\u4E0B\u5207\u6362\uFF08\u9ED8\u8BA4 / \u5F00 / \u5173\uFF09\uFF1B\u6A21\u578B\u6CA1\u914D thinking \u65F6\u4E0D\u663E\u793A","panel.verbChipDefault":"\u270E \u9ED8\u8BA4","panel.verbChipConcise":"\u270E \u7B80\u6D01","panel.verbChipNormal":"\u270E \u6807\u51C6","panel.verbChipDetailed":"\u270E \u8BE6\u7EC6","panel.verbChipTitle":"Agent \u8BE6\u7EC6\u7A0B\u5EA6\uFF1A\u70B9\u4E00\u4E0B\u5207\u6362\uFF08\u9ED8\u8BA4 / \u7B80\u6D01 / \u6807\u51C6 / \u8BE6\u7EC6\uFF09\uFF0C\u53EA\u5BF9\u672C\u6761\u6D88\u606F\u751F\u6548\uFF1B\u300C\u9ED8\u8BA4\u300D\u8DDF\u968F\u8BBE\u7F6E\u91CC\u7684 luban.agent.verbosity","panel.settingsTitle":"Provider \u8BBE\u7F6E\uFF08\u6A21\u578B / baseUrl / API key\uFF09","panel.send":"\u53D1\u9001","panel.sendTitle":"\u53D1\u9001\uFF08Enter\uFF09","panel.stop":"\u23F9 \u505C\u6B62","panel.stopTitle":"\u505C\u6B62\u5F53\u524D\u4EFB\u52A1","panel.tabClose":"\u5173\u95ED\u6807\u7B7E\uFF08\u6B63\u5728\u751F\u6210\u4F1A\u53D6\u6D88\u8FD9\u4E00\u8F6E\uFF09","panel.tabTooltip":"\u53F3\u952E\uFF1A\u5173\u95ED / \u5173\u95ED\u5176\u4ED6 / \u5173\u95ED\u5DE6\u53F3\u4FA7","panel.tabOverflowTitle":"\u66F4\u591A\u6807\u7B7E","panel.menuClose":"\u5173\u95ED\u5F53\u524D","panel.menuCloseOthers":"\u5173\u95ED\u5176\u4ED6","panel.menuCloseRight":"\u5173\u95ED\u53F3\u4FA7\u5168\u90E8","panel.menuCloseLeft":"\u5173\u95ED\u5DE6\u4FA7\u5168\u90E8","panel.menuCloseAll":"\u5173\u95ED\u5168\u90E8","panel.menuCloseTitle":"\u6B63\u5728\u751F\u6210\u4F1A\u53D6\u6D88\u8FD9\u4E00\u8F6E","panel.jumpLatest":"\u2193 \u6700\u65B0","panel.jumpLatestTitle":"\u56DE\u5230\u6700\u65B0\u5185\u5BB9","panel.thinking":"\u601D\u8003\u4E2D\u2026","panel.thinkDone":"\u601D\u8003\u8FC7\u7A0B","panel.thinkLabel":"{label} \xB7 {n} \u5B57","panel.roleYou":"\u4F60","panel.roleAssistant":"\u52A9\u624B","panel.roleError":"\u9519\u8BEF","panel.toolLabel":"\u5DE5\u5177\u8C03\u7528","panel.toolUnit":"\u6761","panel.toolsBad":"\uFF08{n} \u5931\u8D25\uFF09","panel.toolsLast":"\xB7 \u6700\u8FD1 {name}","panel.refWholeDir":"\u{1F4C1} \u5F15\u7528\u6574\u4E2A {dir}\uFF08{n} \u4E2A\u6587\u4EF6\uFF09","panel.refWeb":"\u{1F310} \u8054\u7F51\u641C\u7D22\uFF08@web\uFF09","panel.imgBubble":"\u{1F4CE} \u56FE\u7247 \xD7{n}","panel.imgPreviewTitle":"\u70B9\u51FB\u67E5\u770B\u5927\u56FE\uFF08\u518D\u6B21\u70B9\u51FB\u5173\u95ED\uFF09","panel.imgLoadFail":"\u56FE\u7247\u52A0\u8F7D\u5931\u8D25\uFF08\u6587\u4EF6\u53EF\u80FD\u5DF2\u88AB\u6E05\u7406\uFF09","panel.imgRemoveTitle":"\u79FB\u9664\u8FD9\u5F20\u56FE\u7247","panel.imgNoVision":"\u5F53\u524D\u6A21\u578B\u4E0D\u652F\u6301\u56FE\u7247\u8F93\u5165\uFF0C\u56FE\u7247\u672A\u9644\u52A0\u3002\u53EF\u5728 Provider \u8BBE\u7F6E\u91CC\u4E3A\u6A21\u578B\u52FE\u9009 vision\u3002","panel.imgTooBig":"\u56FE\u7247\u8D85\u8FC7 5MB\uFF0C\u5DF2\u8DF3\u8FC7","panel.imgBadType":"\u4E0D\u652F\u6301\u7684\u56FE\u7247\u683C\u5F0F\uFF08\u4EC5 PNG / JPEG / WebP / GIF\uFF09\uFF0C\u5DF2\u8DF3\u8FC7","panel.imgLimit":"\u6700\u591A 4 \u5F20\u56FE\u7247\uFF0C\u591A\u4F59\u7684\u5DF2\u5FFD\u7565","panel.imgReadFail":"\u8BFB\u53D6\u56FE\u7247\u5931\u8D25\uFF0C\u5DF2\u8DF3\u8FC7","panel.copyMsg":"\u590D\u5236\u6D88\u606F","panel.copied":"\u5DF2\u590D\u5236","panel.copyFail":"\u590D\u5236\u5931\u8D25","panel.editMsg":"\u7F16\u8F91\u8FD9\u6761\u6D88\u606F","panel.editCancel":"\u53D6\u6D88","panel.editHint":"\u53D1\u9001\u540E\u4F1A\u5220\u9664\u8FD9\u6761\u4E4B\u540E\u7684\u5BF9\u8BDD\u8BB0\u5F55\uFF0C\u5E76\u7ACB\u5373\u7528\u4FEE\u6539\u540E\u7684\u5185\u5BB9\u91CD\u65B0\u53D1\u9001","panel.editSending":"\u6B63\u5728\u91CD\u65B0\u53D1\u9001\u2026","panel.editSaved":"\u5DF2\u4FDD\u5B58\uFF0C\u79FB\u9664\u540E\u7EED {n} \u6761\u8BB0\u5F55","panel.editSavedNone":"\u5DF2\u4FDD\u5B58","panel.editBusy":"\u6B63\u5728\u751F\u6210\u4E2D\uFF0C\u4E0D\u80FD\u7F16\u8F91\u5386\u53F2\uFF1B\u8BF7\u5148\u505C\u6B62\u8FD9\u4E00\u8F6E","panel.forkMsgTitle":"\u4ECE\u8FD9\u4E2A\u63D0\u95EE\u5904\u5206\u652F\uFF08\u4FDD\u7559\u5230\u8FD9\u91CC\uFF09","panel.forking":"\u6B63\u5728\u5206\u652F\u4F1A\u8BDD\u2026","panel.forkBusy":"\u6B63\u5728\u751F\u6210\u4E2D\uFF0C\u4E0D\u80FD\u5206\u652F\uFF1B\u8BF7\u5148\u505C\u6B62\u8FD9\u4E00\u8F6E","panel.refLoadingFiles":"\u52A0\u8F7D\u6587\u4EF6\u4E0E\u76EE\u5F55\u5217\u8868\u2026","panel.refLoadingSelection":"\u8BFB\u53D6\u5F53\u524D\u9009\u533A\u2026","panel.refNoMatchDir":"\u8FD9\u4E2A\u76EE\u5F55\u91CC\u6CA1\u6709\u5339\u914D\u9879","panel.refNoMatch":"\u6CA1\u6709\u5339\u914D\u7684\u6587\u4EF6\u6216\u6587\u4EF6\u5939","panel.refNoEditor":"\u5F53\u524D\u6CA1\u6709\u53EF\u5F15\u7528\u7684\u7F16\u8F91\u5668","panel.lines":"{n} \u884C","panel.files":"{n} \u4E2A\u6587\u4EF6","panel.injected":"\u5DF2\u6CE8\u5165 {n} \u4E2A\u5168\u6587","panel.truncated":"\u5DF2\u622A\u65AD","panel.omitted":"\u5DF2\u7701\u7565","panel.sources":"\u6765\u6E90 \xB7 {n}","panel.ctxTip":"\u4E0A\u4E0B\u6587 {used} / {win} token ({pct}{model})","panel.ctxEst":"\u2248 \u8868\u793A\u7AEF\u70B9\u6CA1\u56DE usage\uFF0C\u6309\u5B57\u7B26\u6570\u4F30\u7B97","panel.usageCache":"\u7F13\u5B58 {n} ({pct})","panel.usageContext":"\u4E0A\u4E0B\u6587 {used} / {win} ({pct})","panel.usageRequests":"{n} \u6B21\u8BF7\u6C42","panel.usageTipContext":"\u4E0A\u4E0B\u6587 {used} / {win} token","panel.usageTipRequests":"\u8BF7\u6C42 {n} \u6B21","panel.usageTipModel":"\u6A21\u578B {model}","panel.usageTipEst":"\u2248 \u4F30\u7B97\u503C\uFF08\u7AEF\u70B9\u672A\u56DE usage\uFF09","panel.reviewShowDiff":"\u67E5\u770B diff","panel.reviewKeepAll":"\u5168\u90E8\u4FDD\u7559","panel.reviewDropAll":"\u5168\u90E8\u64A4\u9500","panel.reviewBlocks":"\xB7 {n} \u5757","panel.reviewTitle":"\u5F85\u5BA1\u9605\u6539\u52A8 \xB7 {files} \u4E2A\u6587\u4EF6 / {hunks} \u5757\uFF08+{add} -{del}\uFF09","panel.reviewKeepAllFiles":"\u5168\u90E8\u4FDD\u7559\uFF08\u6240\u6709\u6587\u4EF6\uFF09","panel.reviewRejectAllFiles":"\u5168\u90E8\u64A4\u9500\uFF08\u6240\u6709\u6587\u4EF6\uFF09","panel.reviewRejectAllConfirm":"\u786E\u8BA4\u64A4\u9500\u5168\u90E8?","panel.reviewHint":"\u660E\u7EC6\u5728\u7F16\u8F91\u5668\u7684 diff \u91CC\uFF1A\u6807\u9898\u680F\u300C\u5168\u90E8\u4FDD\u7559 / \u5168\u90E8\u64A4\u9500\u300D\uFF0C\u884C\u5185\u9010\u5757\u300C\u4FDD\u7559\u8FD9\u5757 / \u64A4\u9500\u8FD9\u5757\u300D\uFF1B\u70B9\u300C\u67E5\u770B diff\u300D\u53EF\u91CD\u65B0\u6253\u5F00\u3002\u6807\u9898\u53F3\u4FA7\u7684\u4E24\u679A\u6309\u94AE\u4E00\u6B21\u5904\u7406\u6240\u6709\u6587\u4EF6\u3002","panel.relJustNow":"\u521A\u521A","panel.relMinutes":"{n} \u5206\u949F\u524D","panel.relHours":"{n} \u5C0F\u65F6\u524D","panel.relDays":"{n} \u5929\u524D","panel.sessionsHead":"\u4F1A\u8BDD\u5386\u53F2 \xB7 {n} \u4E2A","panel.sessionsSearchHead":"\u4F1A\u8BDD\u5386\u53F2 \xB7 \u5339\u914D {n}/{total} \u4E2A","panel.sessionSearchPlaceholder":"\u641C\u7D22\u4F1A\u8BDD\u6807\u9898\u4E0E\u6B63\u6587\u2026","panel.sessionSearchTitle":"\u641C\u7D22\u5386\u53F2\u4F1A\u8BDD\uFF1A\u6807\u9898\u5373\u65F6\u8FC7\u6EE4\uFF0C\u8F93\u5165 2 \u4E2A\u5B57\u4EE5\u4E0A\u540C\u65F6\u641C\u6B63\u6587","panel.sessionSearchClear":"\u6E05\u7A7A\u641C\u7D22\uFF08Esc\uFF09","panel.sessionSearchMinChars":"\u8F93\u5165 2 \u4E2A\u5B57\u4EE5\u4E0A\u540C\u65F6\u641C\u7D22\u6B63\u6587","panel.sessionSearching":"\u6B63\u5728\u641C\u7D22\u6B63\u6587\u2026","panel.sessionSearchHits":"\u6B63\u6587\u547D\u4E2D {n} \u4E2A\u4F1A\u8BDD","panel.sessionSearchTruncated":"\uFF08\u5DF2\u8FBE\u4E0A\u9650\uFF09","panel.sessionContentHits":"\u6B63\u6587 {n} \u5904","panel.sessionSearchNoMatch":"\u6CA1\u6709\u5339\u914D\u7684\u4F1A\u8BDD\uFF1A\u6807\u9898\u4E0E\u6B63\u6587\u90FD\u67E5\u8FC7\u4E86\uFF0C\u6362\u4E2A\u8BCD\u8BD5\u8BD5\u3002","panel.sessionNew":"\uFF0B \u65B0\u4F1A\u8BDD","panel.loading":"\u52A0\u8F7D\u4E2D\u2026","panel.sessionsEmptyAll":"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u4F1A\u8BDD\u8BB0\u5F55\u3002\u53D1\u7B2C\u4E00\u6761\u6D88\u606F\u5C31\u4F1A\u81EA\u52A8\u5EFA\u4E00\u4E2A\u3002","panel.sessionsEmptyWs":"\u8FD9\u4E2A\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u8BB0\u5F55\u3002\u70B9\u300C\u663E\u793A\u5176\u5B83\u5DE5\u4F5C\u533A\u300D\u770B\u770B\u522B\u5904\u7684\uFF0C\u6216\u76F4\u63A5\u53D1\u6D88\u606F\u5F00\u59CB\u65B0\u7684\u3002","panel.sessionItems":"{n} \u6761","panel.noWorkspace":"\u65E0\u5DE5\u4F5C\u533A","panel.deleteConfirm":"\u5220\u9664?","panel.deleteConfirmTitle":"\u518D\u70B9\u4E00\u6B21\u786E\u8BA4\u5220\u9664\uFF08\u4E0D\u53EF\u6062\u590D\uFF09","panel.deleteTitle":"\u5220\u9664\u8FD9\u4E2A\u4F1A\u8BDD","panel.forkBtn":"\u5206\u652F","panel.forkTitle":"\u5206\u652F\u8FD9\u4E2A\u4F1A\u8BDD\uFF08Fork\uFF09","panel.forkRound":"\u5206\u652F\u5230\u8FD9\u91CC","panel.forkRoundTitle":"\u628A\u8FD9\u4E2A\u4F1A\u8BDD\u4FDD\u7559\u5230\u8FD9\u4E00\u8F6E\u7ED3\u675F\uFF0C\u751F\u6210\u4E00\u4E2A\u65B0\u5206\u652F","panel.openingSession":"\u6B63\u5728\u6253\u5F00\u4F1A\u8BDD\u2026","panel.scopeToWorkspace":"\u53EA\u770B\u672C\u5DE5\u4F5C\u533A","panel.scopeToAll":"\u663E\u793A\u5176\u5B83\u5DE5\u4F5C\u533A","panel.scopeTipAll":"\u5F53\u524D\u663E\u793A\u5168\u90E8\u5DE5\u4F5C\u533A","panel.scopeTipWs":"\u5F53\u524D\u53EA\u663E\u793A\u672C\u5DE5\u4F5C\u533A","panel.openingNew":"\u6B63\u5728\u5F00\u65B0\u4F1A\u8BDD\u2026","panel.execPlanRunning":"\u6267\u884C\u8BA1\u5212\u4E2D\u2026","panel.openPlanFile":"\u{1F4C4} \u6253\u5F00\u8BA1\u5212\u6587\u4EF6","panel.runPlan":"\u25B6 \u6267\u884C\u8FD9\u4E2A\u8BA1\u5212","panel.runPlanAccept":"\u25B6 \u6267\u884C\u5E76\u63A5\u53D7\u53D8\u66F4","panel.runPlanAcceptTitle":"\u6267\u884C\u8BA1\u5212\uFF0C\u5199\u5165\u540E\u81EA\u52A8\u5168\u90E8\u4FDD\u7559\uFF0C\u4E0D\u8FDB\u5165\u5F85\u5BA1\u9605","panel.planSent":"\u5DF2\u4EA4\u7ED9 Agent \u6267\u884C\u2026","panel.planSaved":"\u5DF2\u4FDD\u5B58 \xB7 {file}","panel.planReadonly":"Plan \u6A21\u5F0F\u53EA\u8BFB\uFF0C\u672A\u6539\u52A8\u4EFB\u4F55\u6587\u4EF6","panel.todosTitle":"\u5F85\u529E {done}/{total}","panel.todoPending":"\u672A\u5F00\u59CB","panel.todoProgress":"\u8FDB\u884C\u4E2D","panel.todoDone":"\u5DF2\u5B8C\u6210","panel.todoCancelled":"\u5DF2\u53D6\u6D88","panel.askSubmit":"\u786E\u8BA4","panel.askMulti":"\uFF08\u53EF\u591A\u9009\uFF09","panel.askNeedAll":"\u8BF7\u5148\u4E3A\u6BCF\u9053\u9898\u9009\u597D\u9009\u9879","panel.askAnswered":"\u5DF2\u56DE\u7B54","panel.askError":"\u63D0\u4EA4\u9009\u9879\u5931\u8D25","panel.askCancelled":"\u5DF2\u53D6\u6D88\uFF08\u672C\u8F6E\u7ED3\u675F\uFF09","panel.askRecommended":"\u63A8\u8350","panel.queueTitle":"\u6392\u961F {n} \u6761","panel.queuePausedTip":"\u5DF2\u6682\u505C \xB7 \u70B9\u300C\u7EE7\u7EED\u300D\u624D\u4F1A\u53D1\u9001","panel.queueAutoTip":"\u5F53\u524D\u4EFB\u52A1\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u9001","panel.resume":"\u7EE7\u7EED","panel.resumeTitle":"\u6062\u590D\u81EA\u52A8\u53D1\u9001\uFF1A\u5F53\u524D\u7A7A\u95F2\u5C31\u7ACB\u523B\u53D1\u4E0B\u4E00\u6761","panel.clear":"\u6E05\u7A7A","panel.clearQueueTitle":"\u6E05\u7A7A\u961F\u5217\uFF08\u4E0D\u5F71\u54CD\u6B63\u5728\u8DD1\u7684\u8FD9\u4E00\u8F6E\uFF09","panel.runNow":"\u7ACB\u5373","panel.runNowTitle":"\u6253\u65AD\u5F53\u524D\u4EFB\u52A1\uFF0C\u7ACB\u523B\u6267\u884C\u8FD9\u6761\uFF08\u5176\u4F59\u6392\u961F\u4FDD\u7559\uFF09","panel.runNowStatus":"\u5DF2\u8BF7\u6C42\u7ACB\u5373\u6267\u884C\u2026","panel.edit":"\u7F16\u8F91","panel.editTitle":"\u4ECE\u961F\u5217\u53D6\u56DE\u8F93\u5165\u6846\u4FEE\u6539","panel.removeTitle":"\u4ECE\u961F\u5217\u5220\u9664\u8FD9\u6761","panel.retrieved":"\u5DF2\u53D6\u56DE\u6392\u961F\u4E2D\u7684\u6D88\u606F","panel.resuming":"\u7EE7\u7EED\u6392\u961F\u4E2D\u7684\u6D88\u606F\u2026","panel.queued":"\u5DF2\u6392\u961F \xB7 \u5F53\u524D\u4EFB\u52A1\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u9001","panel.searching":"\u8054\u7F51\u641C\u7D22\u4E2D\u2026","panel.running":"\u8FD0\u884C\u4E2D\u2026","panel.stopRequested":"\u5DF2\u8BF7\u6C42\u505C\u6B62","panel.noEditorSelection":"\u5F53\u524D\u6CA1\u6709\u6253\u5F00\u7684\u7F16\u8F91\u5668\uFF0C\u65E0\u6CD5\u5F15\u7528\u9009\u533A","panel.noSelection":"\u5148\u5728\u7F16\u8F91\u5668\u91CC\u9009\u4E2D\u4E00\u6BB5\u4EE3\u7801\uFF0C\u518D\u70B9\u8FD9\u91CC\u5F15\u7528","panel.selectionRef":"# \u5F15\u7528\uFF1A{path}:{start}-{end}","panel.fileRef":"\u5DF2\u5F15\u7528 {n} \u9879","panel.selectionToken":"#selection {path}:{start}-{end}\uFF08{kind} {n} \u884C\uFF09","panel.kindSelection":"\u9009\u533A","panel.kindFull":"\u5168\u6587","panel.done":"\u5B8C\u6210","panel.unknownError":"\u672A\u77E5\u9519\u8BEF","panel.error":"\u51FA\u9519","panel.queueFailed":"\u5165\u961F\u5931\u8D25","store.untitled":"\u65B0\u4F1A\u8BDD","cross.execPlan":"\u25B6 \u6267\u884C\u8BA1\u5212","cross.execPlanAccept":"\u25B6 \u6267\u884C\u8BA1\u5212\u5E76\u63A5\u53D7\u53D8\u66F4","ext.keepHunk":"$(check) \u4FDD\u7559\u8FD9\u5757 (+{add} -{del})","ext.revertHunk":"$(discard) \u64A4\u9500\u8FD9\u5757","ext.viewDiff":"$(diff) \u67E5\u770B\u6574\u4F53 diff","ext.keepFile":"$(check-all) \u5168\u90E8\u4FDD\u7559 (+{add} -{del})","ext.revertFile":"$(discard) \u5168\u90E8\u64A4\u9500","ext.diffTitle":"Luban \u53D8\u66F4: {file} (+{add} -{del})","ext.noPending":"\u6CA1\u6709\u5F85\u5BA1\u9605\u6539\u52A8: {path}","ext.hunkGone":"\u627E\u4E0D\u5230 {hunk}\uFF08\u6539\u52A8\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u8BD5\uFF09","ext.unknownAction":"\u672A\u77E5\u64CD\u4F5C: {action}","ext.noReviewFile":"\u6CA1\u6709\u53EF\u5BA1\u9605\u7684\u6587\u4EF6","ext.removedGhost":" <- \u5220\u9664 {n} \u884C: {text}","ext.actionFailed":"\u64CD\u4F5C\u5931\u8D25","ext.reviewWarn":"Luban \u5BA1\u9605: {msg}","ext.queueFull":"\u961F\u5217\u5DF2\u6EE1\uFF08\u6700\u591A {n} \u6761\uFF09\uFF0C\u5148\u53D1\u5B8C\u6216\u6E05\u7A7A\u518D\u6392","ext.queueEmpty":"\u8FD9\u6761\u6D88\u606F\u662F\u7A7A\u7684\uFF0C\u6CA1\u6709\u5165\u961F","ext.addSelectionNone":"\u5F53\u524D\u7F16\u8F91\u5668\u91CC\u6CA1\u6709\u9009\u4E2D\u5185\u5BB9\uFF0C\u672A\u63D2\u5165\u5F15\u7528\uFF08\u5148\u5728\u7F16\u8F91\u5668\u91CC\u9009\u4E2D\u4E00\u6BB5\u4EE3\u7801\uFF09","ext.queueMissing":"\u961F\u5217\u91CC\u6CA1\u6709\u8FD9\u6761\u6D88\u606F","ext.imgNoVision":"\u5F53\u524D\u6A21\u578B\u4E0D\u652F\u6301\u56FE\u7247\u8F93\u5165\uFF0C\u56FE\u7247\u5DF2\u5FFD\u7565","ext.noSuchSession":"\u6CA1\u6709\u8FD9\u4E2A\u4F1A\u8BDD: {id}","ext.sessionBusy":"\u5F53\u524D\u4F1A\u8BDD\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u7A0D\u540E\u518D\u6267\u884C\u8BA1\u5212","ext.editBusy":"\u5F53\u524D\u4F1A\u8BDD\u6B63\u5728\u8FD0\u884C\uFF0C\u4E0D\u80FD\u7F16\u8F91\u5DF2\u53D1\u51FA\u7684\u6D88\u606F","ext.editMissing":"\u6CA1\u6709\u627E\u5230\u8981\u7F16\u8F91\u7684\u90A3\u6761\u6D88\u606F\uFF08\u53EF\u80FD\u5DF2\u88AB\u6E05\u7406\uFF09","ext.editEmpty":"\u7F16\u8F91\u540E\u7684\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A","ext.forkPickTitle":"\u5206\u652F\u4F1A\u8BDD","ext.forkPickPlaceholder":"\u6574\u6BB5\u590D\u5236\uFF0C\u6216\u9009\u4E00\u6761\u63D0\u95EE\u4ECE\u90A3\u91CC\u5206\u652F","ext.forkWhole":"\u6574\u6BB5\u590D\u5236\u8FD9\u4E2A\u4F1A\u8BDD","ext.forkWholeDesc":"\u4FDD\u7559\u5168\u90E8 {n} \u6761\u8BB0\u5F55","ext.forkFromDesc":"\u4ECE\u8FD9\u6761\u63D0\u95EE\u5904\u5206\u652F \xB7 \u4E4B\u540E {n} \u6761\u8BB0\u5F55\u4E0D\u5E26\u8D70","ext.forkBusy":"\u5F53\u524D\u4F1A\u8BDD\u6B63\u5728\u8FD0\u884C\uFF0C\u7B49\u8FD9\u4E00\u8F6E\u7ED3\u675F\u518D\u5206\u652F","ext.forkEmpty":"\u8FD9\u4E2A\u4F1A\u8BDD\u8FD8\u6CA1\u6709\u8BB0\u5F55\uFF0C\u6CA1\u6709\u53EF\u5206\u652F\u7684\u5185\u5BB9","ext.forkSuffix":" \xB7 \u5206\u652F","ext.forkMissing":"\u6CA1\u6709\u627E\u5230\u8981\u5206\u652F\u7684\u90A3\u6761\u63D0\u95EE\uFF08\u53EF\u80FD\u5DF2\u88AB\u6E05\u7406\uFF09","ext.cancelled":"\u5DF2\u53D6\u6D88\uFF1A\u4F1A\u8BDD\u5DF2\u5173\u95ED\u6216\u5220\u9664","ext.noPlan":"\u6CA1\u6709\u53EF\u6267\u884C\u7684\u8BA1\u5212\uFF1A\u8BA1\u5212\u6587\u4EF6\u5DF2\u88AB\u5220\u9664\u6216\u4E3A\u7A7A","ext.notPlanFile":"\u4E0D\u662F\u53EF\u8BFB\u53D6\u7684\u8BA1\u5212\u6587\u4EF6\uFF08Luban / Cursor\uFF09\uFF1A{path}","ext.browserNotFound":`\u6CA1\u627E\u5230 Chrome / Edge\uFF0C\u5185\u5EFA\u6D4F\u89C8\u5668\u4E0D\u53EF\u7528\u3002\u88C5\u4E0A Chrome\uFF0C\u6216\u5728\u8BBE\u7F6E luban.browser.chromePath \u91CC\u6307\u5B9A\u8DEF\u5F84\u3002\u5DF2\u5C1D\u8BD5\uFF1A
|
|
698
698
|
{paths}`,"ext.browserCheckRunning":"\u6B63\u5728\u68C0\u67E5\u5185\u5EFA\u6D4F\u89C8\u5668\u2026","ext.browserCheckOk":"\u5185\u5EFA\u6D4F\u89C8\u5668\u53EF\u7528\uFF1A{exe}\uFF08\u6D4B\u8BD5\u622A\u56FE\u7EA6 {chars} KB\uFF09","ext.browserCheckFailed":"\u5185\u5EFA\u6D4F\u89C8\u5668\u68C0\u67E5\u5931\u8D25\uFF1A{message}","ext.cursorPlanPick":"\u9009\u62E9\u8981\u6267\u884C\u7684 Cursor \u8BA1\u5212\uFF08~/.cursor/plans\uFF09","ext.cursorPlanNone":"\u6CA1\u6709\u627E\u5230 Cursor \u8BA1\u5212\uFF1A{dir} \u4E3A\u7A7A","ext.cursorPlanReadFail":"\u8BFB\u53D6 Cursor \u8BA1\u5212\u5931\u8D25\uFF1A{msg}","ext.cursorPlanBig":"Cursor \u8BA1\u5212\u6587\u4EF6\u8D85\u8FC7 {n}KB\uFF0C\u65E0\u6CD5\u6267\u884C","ext.cursorPlanNoPanel":"Luban \u9762\u677F\u6CA1\u6709\u5C31\u7EEA\uFF0C\u8BF7\u6253\u5F00\u9762\u677F\u540E\u91CD\u8BD5","ext.stop.final":"\u5B8C\u6210","ext.stop.maxRounds":"\u8FBE\u5230\u8F6E\u6570\u4E0A\u9650","ext.stop.timeout":"\u8D85\u51FA\u65F6\u95F4\u9884\u7B97","ext.stop.context":"\u4E0A\u4E0B\u6587\u9884\u7B97\u8017\u5C3D","ext.stop.loop":"\u68C0\u6D4B\u5230\u91CD\u590D\u8C03\u7528","ext.stop.errors":"\u8FDE\u7EED\u5DE5\u5177\u62A5\u9519","ext.stop.stopped":"\u5DF2\u505C\u6B62","ext.stop.noWrites":"\u672C\u8F6E\u672A\u4FEE\u6539\u6587\u4EF6","ext.summary.exec":"\u8BA1\u5212\u5DF2\u6267\u884C \xB7 {n} \u6B21\u5DE5\u5177\u8C03\u7528 \xB7 {s}s","ext.summary.chat":"\u5B8C\u6210 \xB7 {model}","ext.summary.plan":"\u8BA1\u5212\u5C31\u7EEA \xB7 \u53EA\u8BFB {n} \u6B21\u5DE5\u5177\u8C03\u7528 \xB7 {s}s","ext.summary.done":"\u5B8C\u6210 \xB7 {n} \u6B21\u5DE5\u5177\u8C03\u7528 \xB7 {s}s","ext.summary.fallback":"\uFF08\u672C\u8F6E\u56E0{reason}\u7ED3\u675F\uFF0C\u5171 {n} \u6B21\u5DE5\u5177\u8C03\u7528\uFF0C\u672A\u751F\u6210\u6536\u5C3E\u603B\u7ED3\uFF09","ext.summary.fallbackShort":"\uFF08\u672C\u8F6E\u56E0{reason}\u7ED3\u675F\uFF0C\u5171 {n} \u6B21\u5DE5\u5177\u8C03\u7528\uFF09","ext.summary.noWrites":"\u672C\u8F6E\u8C03\u7528\u4E86\u5DE5\u5177\u4F46\u672A\u4FEE\u6539\u4EFB\u4F55\u6587\u4EF6\uFF08\u65E0\u6210\u529F\u7684 write_file / replace_in_file\uFF09\u3002\u82E5\u4ECD\u9700\u6539\u4EE3\u7801\uFF0C\u8BF7\u660E\u786E\u8BF4\u300C\u7EE7\u7EED\u6539\u6587\u4EF6\u300D\uFF1B\u82E5\u53EA\u9700\u7ED3\u8BBA\uFF0C\u53EF\u5FFD\u7565\u672C\u63D0\u793A\u3002","ext.prefixHint":"\u524D\u7F00\u7F13\u5B58 0 \u547D\u4E2D \xB7 \u5EFA\u8BAE\u5F00\u542F\u7AEF\u70B9 KV \u7F13\u5B58","ext.prefixHintTip":"{n} \u6B21\u8BF7\u6C42\u5168\u90E8\u91CD\u7B97\uFF0C\u524D\u7F00\u7F13\u5B58\u4E00\u6B21\u90FD\u6CA1\u547D\u4E2D\u3002\u672C\u5730 vLLM \u8BF7\u52A0 --enable-prefix-caching\uFF08Docker \u73AF\u5883\u53D8\u91CF VLLM_ENABLE_PREFIX_CACHING=1\uFF0C\u5177\u4F53\u4EE5 vllm serve --help \u4E3A\u51C6\uFF09\uFF1BSGLang \u9ED8\u8BA4\u5F00\u542F\uFF1BOllama \u4E0D\u652F\u6301\u3002\u5F00\u542F\u540E\u672C\u884C\u4F1A\u51FA\u73B0\u300C\u7F13\u5B58 N%\u300D\u3002","ext.inlineOn":"Luban Tab \u8865\u5168\u5DF2\u5F00\u542F","ext.inlineOff":"Luban Tab \u8865\u5168\u5DF2\u5173\u95ED","ext.agentDone":"agent \u5B8C\u6210\uFF0C\u5DE5\u5177\u8C03\u7528 {n} \u6B21","ext.askNeeded":"Luban \u9700\u8981\u4F60\u9009\u62E9\uFF1A{detail}","ext.askGoChoose":"\u53BB\u9009\u62E9","ext.configReloaded":"provider \u914D\u7F6E\u5DF2\u91CD\u8F7D\uFF1A{models} \u4E2A\u6A21\u578B \xB7 {skills} \u4E2A\u6280\u80FD","ext.mcpNote":" \xB7 MCP {servers} \u4E2A server / {tools} \u4E2A\u5DE5\u5177","ext.mcpFail":" \xB7 MCP \u91CD\u8F7D\u5931\u8D25\uFF1A{msg}","ext.newSessionNotice":"Luban\uFF1A\u5DF2\u5F00\u59CB\u65B0\u4F1A\u8BDD","ext.addFileNoView":"\u65E0\u6CD5\u6253\u5F00 Luban \u804A\u5929\u9762\u677F\uFF1A\u8BF7\u5148\u6253\u5F00 Luban \u4FA7\u8FB9\u680F\u518D\u8BD5","ext.agentPrompt":"agent \u8981\u505A\u4EC0\u4E48\uFF1F\uFF08\u6539\u4EE3\u7801/\u751F\u6210\u4EE3\u7801\uFF09","ext.hubPanelTitle":"\u8BBE\u7F6E\u4E0E\u7528\u91CF","ext.providerTimeout":"\u8D85\u65F6\uFF0815s\uFF09","ext.providerBadJson":"\u8FD4\u56DE\u4E0D\u662F JSON\uFF1A{head}","ext.providerBaseUrl":"baseUrl \u4E3A\u7A7A","ext.providerNeedModel":"\u5148\u586B\u4E00\u4E2A\u6A21\u578B id \u518D\u6D4B\u8BD5","ext.providerNeedKey":"\u7F3A\u5C11 API key\uFF08\u5148\u5728\u9762\u677F\u91CC\u586B\uFF0C\u6216\u914D apiKeyEnv\uFF09","ext.configMissing":"\u914D\u7F6E\u6587\u4EF6\u8FD8\u4E0D\u5B58\u5728\uFF0C\u5148\u70B9\u4FDD\u5B58","ext.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{msg}","ext.generalMissing":"\u7F3A\u5C11\u8BBE\u7F6E\u9879\uFF1A{key}","ext.generalBadBool":"\u300C{key}\u300D\u5FC5\u987B\u662F\u5E03\u5C14\u503C","ext.generalBadLanguage":"\u754C\u9762\u8BED\u8A00\u53EA\u80FD\u662F auto / en / zh-cn / ja","ext.generalBadEnum":"\u300C{key}\u300D\u53EA\u80FD\u662F {values}","ext.generalBadNumber":"\u300C{key}\u300D\u5FC5\u987B\u662F\u6574\u6570","ext.generalBadMin":"\u300C{key}\u300D\u4E0D\u80FD\u5C0F\u4E8E {min}","ext.generalBadMax":"\u300C{key}\u300D\u4E0D\u80FD\u5927\u4E8E {max}","ext.generalSaveFailed":"\u4FDD\u5B58\u5E38\u89C4\u8BBE\u7F6E\u5931\u8D25\uFF1A{msg}","ext.openDirFailed":"\u6253\u4E0D\u5F00\u6570\u636E\u76EE\u5F55\uFF1A{msg}","validate.providerEmpty":"provider id \u4E0D\u80FD\u4E3A\u7A7A","validate.pos":"provider\u300C{id}\u300D","validate.untitled":"\uFF08\u672A\u547D\u540D\uFF09","validate.idChars":"{pos}\uFF1Aid \u53EA\u80FD\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u77ED\u6A2A\u7EBF","validate.idDup":"{pos}\uFF1Aid \u91CD\u590D","validate.baseUrl":"{pos}\uFF1AbaseUrl \u5FC5\u987B\u4EE5 http:// \u6216 https:// \u5F00\u5934","validate.modelIdEmpty":"{pos}\uFF1A\u6A21\u578B id \u4E0D\u80FD\u4E3A\u7A7A","validate.modelIdDup":"{pos}\uFF1A\u6A21\u578B id\u300C{id}\u300D\u91CD\u590D","validate.maxIn":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300DmaxInputTokens \u5FC5\u987B\u662F\u6B63\u6574\u6570","validate.maxOut":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300DmaxOutputTokens \u5FC5\u987B\u662F\u6B63\u6574\u6570","validate.noModels":"{pos}\uFF1A\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u6A21\u578B","validate.webUrl":"{pos}\uFF1AwebSearch.baseUrl \u5FC5\u987B\u4EE5 http:// \u6216 https:// \u5F00\u5934","validate.webCount":"{pos}\uFF1AwebSearch.count \u5FC5\u987B\u662F 1~50 \u7684\u6574\u6570","validate.webEngine":"{pos}\uFF1AwebSearch.engine \u53EA\u80FD\u662F deepseek \u6216 bing","validate.webDisabled":"{pos}\uFF1AwebSearch.disabled \u5FC5\u987B\u662F\u5E03\u5C14\u503C","validate.thinkShape":'{pos}\uFF1A\u6A21\u578B\u300C{id}\u300Dthinking \u5FC5\u987B\u662F\u5BF9\u8C61\uFF08\u5F62\u5982 { "default": "off", "on": {...}, "off": {...} }\uFF09',"validate.thinkTier":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300Dthinking.{tier} \u5FC5\u987B\u662F JSON \u5BF9\u8C61","validate.thinkReserved":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300Dthinking.{tier} \u4E0D\u80FD\u7528\u534F\u8BAE\u5B57\u6BB5\uFF1A{keys}","validate.thinkTooLong":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300Dthinking.{tier} \u8D85\u8FC7 {n} \u5B57\u7B26","validate.thinkEmpty":"{pos}\uFF1A\u6A21\u578B\u300C{id}\u300Dthinking \u81F3\u5C11\u8981\u6709 on \u6216 off \u5176\u4E2D\u4E00\u6863","validate.needProvider":"\u81F3\u5C11\u9700\u8981\u4E00\u4E2A provider","usage.today":"\u4ECA\u5929","usage.7d":"\u8FD1 7 \u5929","usage.30d":"\u8FD1 30 \u5929","usage.all":"\u5168\u90E8","dash.title":"Token \u7528\u91CF","dash.statusReady":"\u5C31\u7EEA","dash.refresh":"\u5237\u65B0","dash.refreshTitle":"\u91CD\u65B0\u8BFB\u4E00\u904D\u8D26\u672C","dash.emptyA":"\u8FD8\u6CA1\u6709\u8BB0\u5F55\u3002","dash.emptyB":"\u8DD1\u4E00\u8F6E\u5BF9\u8BDD\u540E\u4F1A\u81EA\u52A8\u51FA\u73B0 \u2014\u2014 \u6BCF\u8F6E\u7ED3\u675F\u628A\u6574\u8F6E token \u6C47\u603B\u8FFD\u52A0\u5230\u672C\u5730\u8D26\u672C\u3002","dash.byModel":"\u6309\u6A21\u578B","dash.byDay":"\u6309\u5929","dash.byMode":"\u6309\u6A21\u5F0F","dash.recent":"\u6700\u8FD1\u8BB0\u5F55","dash.thModel":"\u6A21\u578B","dash.thRequests":"\u8BF7\u6C42","dash.thInput":"\u8F93\u5165","dash.thOutput":"\u8F93\u51FA","dash.thTotal":"\u5408\u8BA1","dash.thCache":"\u7F13\u5B58\u547D\u4E2D","dash.thShare":"\u5360\u6BD4","dash.thMode":"\u6A21\u5F0F","dash.thTurns":"\u8F6E\u6570","dash.thTime":"\u65F6\u95F4","dash.openDir":"\u6253\u5F00\u6570\u636E\u76EE\u5F55","dash.dirTitle":"\u8D26\u672C\u76EE\u5F55","dash.foot":"\u53EA\u7EDF\u8BA1 token\uFF0C\u4E0D\u4F30\u7B97\u8D39\u7528","dash.modeExecute":"\u6267\u884C\u8BA1\u5212","dash.modeUnknown":"\u672A\u77E5","dash.loading":"\u52A0\u8F7D\u4E2D\u2026","dash.turns":"\u8F6E\u6570","dash.requests":"\u8BF7\u6C42\u6B21\u6570","dash.input":"\u8F93\u5165","dash.output":"\u8F93\u51FA","dash.total":"\u5408\u8BA1","dash.cache":"\u7F13\u5B58\u547D\u4E2D","dash.partial":"{n} \u8F6E\u4E2D\u65AD\u8865\u8BB0","dash.perTurn":"\u6BCF\u8F6E {n} \u6B21","dash.estTurns":"\u542B {n} \u8F6E\u4F30\u7B97","dash.cached":"{n} \u8D70\u7F13\u5B58","dash.models":"{n} \u4E2A\u6A21\u578B","dash.unknownModel":"\u672A\u77E5\u6A21\u578B","dash.days":"{n} \u5929 \xB7 \u84DD=\u8F93\u5165 \u7EFF=\u8F93\u51FA","dash.dayTip":"{day} \xB7 \u2191{input} \u2193{output} \xB7 {n} \u6B21\u8BF7\u6C42","dash.recentCount":"{n} \u6761\uFF08\u6700\u591A 50\uFF09","dash.interrupted":" \xB7 \u4E2D\u65AD","dash.recordOff":"\u7528\u91CF\u8BB0\u8D26\u5DF2\u5173\u95ED\uFF08luban.usage.record=false\uFF09\uFF0C\u8FD9\u4E00\u8F6E\u8D77\u4E0D\u518D\u5199\u65B0\u8BB0\u5F55\u3002","dash.badLines":"\u8D26\u672C\u91CC\u6709 {n} \u884C\u89E3\u6790\u5931\u8D25\uFF0C\u5DF2\u8DF3\u8FC7\u3002","dash.noRecords":"\u65E0\u8BB0\u5F55","dash.statusTurns":"{n} \u8F6E","hub.title":"\u8BBE\u7F6E\u4E0E\u7528\u91CF","hub.navGeneral":"\u5E38\u89C4","hub.navSettings":"\u8BBE\u7F6E","hub.navUsage":"\u7528\u91CF","hub.navGeneralTitle":"Luban \u81EA\u8EAB\u8BBE\u7F6E\uFF08\u8BED\u8A00 / \u4E0A\u4E0B\u6587 / Agent \u7B49\uFF09","hub.navSettingsTitle":"Provider \u8BBE\u7F6E\uFF08\u6A21\u578B / baseUrl / API key\uFF09","hub.navUsageTitle":"Token \u7528\u91CF\u770B\u677F\uFF08\u5404\u6A21\u578B / \u6309\u5929 / \u6309\u6A21\u5F0F\uFF09","general.title":"\u5E38\u89C4","general.statusReady":"\u5C31\u7EEA","general.save":"\u4FDD\u5B58","general.unsaved":"\u672A\u4FDD\u5B58","general.saving":"\u4FDD\u5B58\u4E2D\u2026","general.loaded":"\u5DF2\u52A0\u8F7D","general.saved":"\u5DF2\u4FDD\u5B58","general.invalid":"{n} \u9879\u6821\u9A8C\u5931\u8D25","general.groupUi":"\u754C\u9762","general.groupContext":"\u81EA\u52A8\u4E0A\u4E0B\u6587","general.groupSession":"\u4F1A\u8BDD","general.groupAgent":"Agent","general.groupTools":"\u5DE5\u5177\u4E0E\u5B89\u5168","general.groupBrowser":"\u6D4F\u89C8\u5668\uFF08\u6269\u5C55\u8BBE\u7F6E\uFF09","general.groupReview":"\u5BA1\u9605","general.groupInline":"Tab \u8865\u5168","general.groupUsage":"\u7528\u91CF","general.language":"\u754C\u9762\u8BED\u8A00","general.languageTitle":"\u53EA\u5F71\u54CD Luban \u754C\u9762\uFF0C\u4E0D\u6539\u7F16\u8F91\u5668\u663E\u793A\u8BED\u8A00","general.languageNote":"\u53EA\u5F71\u54CD Luban \u81EA\u5DF1\u7684\u754C\u9762\uFF0C\u4E0D\u6539 VS Code / VSCodium \u663E\u793A\u8BED\u8A00\uFF1B\u547D\u4EE4\u9762\u677F\u6807\u9898\u4ECD\u8DDF\u968F\u7F16\u8F91\u5668\u8BED\u8A00\u3002","general.langAuto":"\u8DDF\u968F VS Code \u663E\u793A\u8BED\u8A00","general.langZhCn":"\u7B80\u4F53\u4E2D\u6587","general.langEn":"English","general.langJa":"\u65E5\u672C\u8A9E","general.autoOpen":"\u542F\u52A8\u65F6\u81EA\u52A8\u6253\u5F00\u4FA7\u8FB9\u680F","general.contextAutoFile":"\u9644\u4E0A\u5F53\u524D\u7F16\u8F91\u5668\u4EE3\u7801","general.contextMaxChars":"\u5B57\u7B26\u4E0A\u9650","general.contextWindowLines":"\u65E0\u9009\u533A\u65F6\u7A97\u53E3\u884C\u6570","general.sessionHistoryMax":"\u5386\u53F2\u4F1A\u8BDD\u4E0A\u9650","general.sessionMemoryEnabled":"\u591A\u8F6E\u8BB0\u5FC6","general.sessionMemoryMaxTurns":"\u8BB0\u5FC6\u8F6E\u6570","general.sessionMemoryMaxChars":"\u8BB0\u5FC6\u5B57\u7B26\u9884\u7B97","general.agentMaxRounds":"\u8BF7\u6C42\u8F6E\u6570\u4E0A\u9650\uFF080=\u4E0D\u9650\uFF09","general.agentMaxMinutes":"\u5899\u949F\u4E0A\u9650\uFF08\u5206\u949F\uFF09","general.agentSubagentRounds":"\u5B50\u4EE3\u7406\u8F6E\u6570\uFF080=\u5173\u95ED\uFF09","general.agentSubagentMinutes":"\u5B50\u4EE3\u7406\u5899\u949F\uFF08\u5206\u949F\uFF0C0=\u968F\u7236\u8F6E\uFF09","general.agentSmallWindow":"\u5C0F\u7A97\u53E3\u6863","general.smallWindowAuto":"\u81EA\u52A8\uFF08\u6309\u6A21\u578B\u7A97\u53E3\uFF09","general.smallWindowOn":"\u5F3A\u5236\u5F00\u542F","general.smallWindowOff":"\u5173\u95ED","general.agentVerbosity":"\u8BE6\u7EC6\u7A0B\u5EA6","general.verbosityConcise":"\u7B80\u6D01\uFF08\u4E00\u53E5\u8BDD\uFF09","general.verbosityNormal":"\u6807\u51C6\uFF08\u7B80\u77ED\u6C47\u62A5\uFF09","general.verbosityDetailed":"\u8BE6\u7EC6\uFF08\u7ED3\u6784\u5316\uFF09","general.contextWorkset":"\u6539\u52A8\u6587\u4EF6\u81EA\u52A8\u8FDB\u4E0A\u4E0B\u6587","general.searchMaxFiles":"search_code \u7D22\u5F15\u6587\u4EF6\u4E0A\u9650","general.planStrictReadOnly":"Plan \u6A21\u5F0F\u4E25\u683C\u53EA\u8BFB","general.fsAllowOutside":"\u5141\u8BB8\u5DE5\u4F5C\u533A\u5916\u8DEF\u5F84","general.diagAfterEdit":"\u5199\u5165\u540E\u81EA\u52A8\u8BFB\u8BCA\u65AD","general.browserEnabled":"\u542F\u7528\u5185\u5EFA\u6D4F\u89C8\u5668\u5DE5\u5177","general.browserHeadless":"\u65E0\u5934\u8FD0\u884C\uFF08\u4E0D\u5F39\u7A97\u53E3\uFF09","general.browserViewportWidth":"\u89C6\u53E3\u5BBD\u5EA6\uFF08320~4096\uFF09","general.browserViewportHeight":"\u89C6\u53E3\u9AD8\u5EA6\uFF08240~4096\uFF09","general.browserIdleTimeoutMs":"\u7A7A\u95F2\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF09","general.browserChromePath":"Chrome / Edge \u8DEF\u5F84","general.browserChromePathPh":"\u7559\u7A7A\u81EA\u52A8\u63A2\u6D4B\uFF08\u4E5F\u8BA4 LUBAN_CHROME_PATH\uFF09","general.browserNote":"\u53EA\u8BFB\u5DE5\u5177\uFF1A\u6253\u5F00\u9875\u9762 / \u53EF\u8BBF\u95EE\u6027\u5927\u7EB2 / \u622A\u56FE / console / \u5931\u8D25\u8BF7\u6C42\uFF0C\u4E0D\u80FD\u70B9\u51FB\u6216\u8F93\u5165\u3002\u9700\u8981\u672C\u673A\u5DF2\u88C5 Chrome \u6216 Edge\uFF1B\u5173\u6389\u65F6\u5DE5\u5177\u4E0D\u4F1A\u51FA\u73B0\u5728\u6A21\u578B\u6E05\u5355\u91CC\u3002","general.groupComputer":"\u684C\u9762\u64CD\u4F5C\uFF08macOS / Windows\uFF09","general.computerEnabled":"\u542F\u7528\u684C\u9762\u64CD\u4F5C\u5DE5\u5177","general.computerConfirm":"\u52A8\u9F20\u6807\u952E\u76D8\u524D\u786E\u8BA4\u4E00\u6B21","general.computerScreenshotWidth":"\u622A\u56FE\u6700\u5927\u5BBD\u5EA6\uFF08320~4096\uFF09","general.computerNote":"\u622A\u5C4F / \u8BC6\u522B\u6587\u5B57\uFF08Windows \u6682\u4E0D\u652F\u6301\uFF0C\u4F1A\u9000\u56DE\u8BA9\u4F60\u770B\u56FE\uFF09/ \u5217\u7A97\u53E3 / \u70B9\u51FB / \u8F93\u5165 / \u6309\u952E / \u6EDA\u52A8 / \u62D6\u52A8\u3002macOS \u4E0E Windows \u53EF\u7528\uFF1BPlan \u6A21\u5F0F\u4E0D\u53EF\u7528\u3002macOS \u9700\u8981\u7ED9\u5BBF\u4E3B App\u300C\u5C4F\u5E55\u5F55\u5236\u300D\u4E0E\u300C\u8F85\u52A9\u529F\u80FD\u300D\u6743\u9650\uFF0C\u5426\u5219\u622A\u56FE\u4F1A\u5931\u8D25\u3001\u70B9\u51FB\u4F1A\u88AB\u7CFB\u7EDF\u4E22\u5F03\uFF1BWindows \u65E0\u9700\u6388\u6743\uFF0C\u4F46\u7BA1\u7406\u5458\u6743\u9650\u8FD0\u884C\u7684\u7A97\u53E3\u6536\u4E0D\u5230\u666E\u901A\u8FDB\u7A0B\u7684\u70B9\u51FB\u3002","general.reviewAutoOpenDiff":"\u5199\u5165\u540E\u81EA\u52A8\u6253\u5F00 diff","general.inlineEnabled":"\u542F\u7528 Tab \u8865\u5168","general.inlineMaxPerMinute":"\u6BCF\u5206\u949F\u8BF7\u6C42\u4E0A\u9650","general.inlineDebounceMs":"\u9632\u6296\u5EF6\u8FDF\uFF08\u6BEB\u79D2\uFF09","general.usageRecord":"\u8BB0\u5F55 token \u7528\u91CF","general.errLanguage":"\u754C\u9762\u8BED\u8A00\u53EA\u80FD\u662F auto / en / zh-cn / ja","general.errEnum":"\u300C{key}\u300D\u53D6\u503C\u4E0D\u5408\u6CD5","general.errNumber":"\u300C{key}\u300D\u5FC5\u987B\u662F\u6574\u6570","general.errMin":"\u300C{key}\u300D\u4E0D\u80FD\u5C0F\u4E8E {min}","general.errMax":"\u300C{key}\u300D\u4E0D\u80FD\u5927\u4E8E {max}","settings.title":"Provider \u8BBE\u7F6E","settings.statusReady":"\u5C31\u7EEA","settings.save":"\u4FDD\u5B58","settings.defaultModel":"\u9ED8\u8BA4\u6A21\u578B","settings.defaultModelTitle":"\u9762\u677F\u5E95\u90E8\u4E0B\u62C9\u7684\u521D\u59CB\u9009\u4E2D\u9879","settings.defaultModelNote":"\u6A21\u578B id \u8DE8 provider \u91CD\u540D\u65F6\u4F1A\u81EA\u52A8\u52A0 <code>providerId::modelId</code> \u524D\u7F00\u3002API key \u5B58\u8FDB VS Code SecretStorage\uFF0C\u4E0D\u5199\u8FDB\u914D\u7F6E\u6587\u4EF6\u3002","settings.addProvider":"+ \u6DFB\u52A0 provider","settings.openConfig":"\u6253\u5F00 providers.json","settings.unsaved":"\u672A\u4FDD\u5B58","settings.firstModel":"\uFF08\u7528\u7B2C\u4E00\u4E2A\u6A21\u578B\uFF09","settings.noModel":"\uFF08\u8FD8\u6CA1\u6709\u6A21\u578B\uFF09","settings.modelIdPh":"model id\uFF08\u5FC5\u586B\uFF09","settings.modelNamePh":"\u663E\u793A\u540D\uFF08\u53EF\u9009\uFF09","settings.toolCallingTitle":"toolCalling\uFF1A\u53C2\u4E0E Agent \u6A21\u5F0F\u5FC5\u987B\u52FE\u4E0A","settings.visionTitle":"vision\uFF1A\u6A21\u578B\u652F\u6301\u56FE\u7247\u8F93\u5165\uFF08\u8D34\u56FE\u8FDB\u804A\u5929\u6846\uFF09","settings.thinkTitle":"thinking\uFF1A\u601D\u8003\u6863\u4F4D\u3002on / off \u91CC\u7684 JSON \u4F1A\u539F\u6837\u5408\u5E76\u8FDB\u8BF7\u6C42\u4F53\uFF08\u5982 chat_template_kwargs.enable_thinking\u3001reasoning\u3001think\uFF09\uFF1B\u7A7A\u7740\u8868\u793A\u8FD9\u4E00\u6863\u4E0D\u53D1\u53C2\u6570\u3002\u53EF\u7528\u300C\u586B\u5165\u6A21\u677F\u300D\u751F\u6210\u5E38\u89C1\u65B9\u8A00","settings.thinkDefault":"\u9ED8\u8BA4\u6863","settings.thinkDefaultOff":"\u9ED8\u8BA4\uFF1A\u5173","settings.thinkDefaultOn":"\u9ED8\u8BA4\uFF1A\u5F00","settings.thinkPreset":"\u586B\u5165\u6A21\u677F\u2026","settings.thinkPresetQwen":"Qwen / vLLM","settings.thinkPresetDeepseek":"DeepSeek","settings.thinkPresetOpenrouter":"OpenRouter","settings.thinkPresetAnthropic":"Anthropic \u517C\u5BB9","settings.thinkPresetOllama":"Ollama","settings.thinkPresetOverwrite":"\u5F53\u524D on / off \u5DF2\u6709\u5185\u5BB9\uFF0C\u8981\u7528\u6A21\u677F\u8986\u76D6\u5417\uFF1F","settings.thinkOn":"\u5F00\uFF08on\uFF09","settings.thinkOff":"\u5173\uFF08off\uFF09","settings.thinkOnPh":'\u7559\u7A7A = \u4E0D\u53D1\u9001\u3002\u4F8B\uFF1A{ "chat_template_kwargs": { "enable_thinking": true } }',"settings.thinkOffPh":'\u7559\u7A7A = \u4E0D\u53D1\u9001\u3002\u4F8B\uFF1A{ "thinking": { "type": "disabled" } }',"settings.thinkBadJson":"{pos} \u6A21\u578B\u300C{id}\u300Dthinking.{tier} \u4E0D\u662F\u5408\u6CD5 JSON","settings.thinkBadShape":"{pos} \u6A21\u578B\u300C{id}\u300Dthinking.{tier} \u5FC5\u987B\u662F JSON \u5BF9\u8C61\uFF08\u4E0D\u80FD\u662F\u6570\u7EC4\u6216\u6807\u91CF\uFF09","settings.deleteModel":"\u5220\u9664\u8FD9\u4E2A\u6A21\u578B","settings.providerNamePh":"provider \u540D\u79F0\uFF08\u5982 DeepSeek\uFF09","settings.deleteProvider":"\u5220\u9664 provider","settings.idLabel":"id\uFF08\u552F\u4E00\uFF0C\u5B57\u6BCD/\u6570\u5B57/_/-\uFF09","settings.apiKeyEnvLabel":"apiKeyEnv\uFF08\u53EF\u9009\uFF09","settings.keyLabel":"API key\uFF08\u5B58 VS Code SecretStorage\uFF09","settings.keyPhSaved":"\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u8868\u793A\u4E0D\u6539","settings.keyPh":"sk-\u2026\uFF08\u53EA\u5199\u8FDB SecretStorage\uFF09","settings.clearKey":"\u6E05\u9664 key","settings.test":"\u6D4B\u8BD5\u8FDE\u63A5","settings.testing":"\u6D4B\u8BD5\u4E2D\u2026\uFF08\u7528\u7B2C\u4E00\u4E2A\u6A21\u578B\uFF0Cmax_tokens=1\uFF09","settings.fetchModels":"\u62C9\u53D6\u6A21\u578B","settings.fetching":"\u8BF7\u6C42 /models\u2026","settings.modelsHead":"\u6A21\u578B\uFF08{n}\uFF09\xB7 id / \u663E\u793A\u540D / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.addModel":"+ \u6DFB\u52A0\u6A21\u578B","settings.errors":"\u6709 {n} \u5904\u9700\u8981\u4FEE\u6B63\uFF1A","settings.noProviders":"\u8FD8\u6CA1\u6709 provider\uFF0C\u70B9\u4E0B\u9762\u300C+ \u6DFB\u52A0 provider\u300D\u5F00\u59CB\u3002","settings.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.builtin":"\u5F53\u524D\u662F\u5185\u7F6E\u9ED8\u8BA4\u914D\u7F6E\uFF0C\u4FDD\u5B58\u540E\u5199\u5230 {path}","settings.loaded":"\u5DF2\u52A0\u8F7D","settings.saved":"\u5DF2\u4FDD\u5B58 \xB7 {n} \u4E2A\u6A21\u578B","settings.invalid":"\u6709 {n} \u5904\u95EE\u9898\uFF0C\u672A\u4FDD\u5B58","settings.testOk":"\u4E0A\u6B21\u6D4B\u8BD5 OK \xB7 {ms}ms","settings.testFailed":"\u4E0A\u6B21\u6D4B\u8BD5\u5931\u8D25","settings.testOkResult":"\u2705 HTTP {status} \xB7 {ms}ms{reply}","settings.testFailResult":"\u274C {msg}","settings.fail":"\u5931\u8D25","settings.fetchFail":"\u62C9\u53D6\u5931\u8D25","settings.fetched":"\u2705 \u62C9\u5230 {n} \u4E2A\u6A21\u578B","settings.fetchedAdded":"\uFF0C\u65B0\u589E {n} \u4E2A\uFF08\u8BB0\u5F97\u4FDD\u5B58\uFF09","settings.fetchedNone":"\uFF0C\u6CA1\u6709\u65B0\u6A21\u578B","settings.keySet":"\u4FDD\u5B58\u540E\u5199\u5165 SecretStorage\uFF08\u4E0D\u843D\u76D8\uFF09","settings.keyClear":"\u4FDD\u5B58\u540E\u5220\u9664\u5DF2\u5B58\u7684 key","settings.keySecret":"\u5DF2\u5B58\u5728 SecretStorage","settings.keyInline":"\u914D\u7F6E\u91CC\u6709\u660E\u6587 apiKey\uFF08\u4FDD\u5B58\u65F6\u4FDD\u7559\uFF09","settings.keyEnv":"\u4F7F\u7528\u73AF\u5883\u53D8\u91CF {env}\uFF08key \u4E0D\u5728\u9762\u677F\u91CC\uFF09","settings.keyNone":"\u672A\u8BBE\u7F6E key","settings.unnamedModel":"\u672A\u547D\u540D"},en:{"panel.statusReady":"Ready","panel.sessionsBtn":"Sessions","panel.sessionsTitle":"Session history (Cmd+Alt+H)","panel.newSessionBtn":"New session","panel.newSessionTitle":"New session (Cmd+Alt+N)","panel.hint":'Say "create xxx.js that \u2026" or "change xxx to \u2026" \u2014 the model edits workspace files directly.<br />Type <code>@</code> to reference a file or folder (<code>@src/</code> references a whole folder), <code>@web</code> to search the web first; to reference code, select it in the editor and right-click "Add Selection to Luban Chat" or press <code>Cmd/Ctrl+Alt+A</code> (the "# Selection" button / <code>#</code> works too) \u2014 the token carries file and line range, and you can stack several.',"panel.inputPlaceholder":"Describe the code to generate or change\u2026 (Enter to send, Shift+Enter for a newline; while running, Enter queues the message until this turn ends; @ references a file or folder, # references the selection; @web searches the web; IME candidate selection won't send)","panel.selectModelTitle":"Select provider / model","panel.modeTitle":"Mode (Shift+Tab to cycle)","panel.refSelectionBtn":"# Selection","panel.refSelectionTitle":"Reference an editor selection (select code, then right-click Add Selection to Luban Chat or press Cmd/Ctrl+Alt+A)","panel.webChip":"\u{1F310} Web","panel.webChipTitle":"This message searches the web first","panel.thinkChipDefault":"\u{1F9E0} Default","panel.thinkChipOn":"\u{1F9E0} On","panel.thinkChipOff":"\u{1F9E0} Off","panel.thinkChipTitle":"Thinking: {dflt}. Click to cycle (default / on / off); hidden when the model has no thinking config","panel.verbChipDefault":"\u270E Default","panel.verbChipConcise":"\u270E Concise","panel.verbChipNormal":"\u270E Normal","panel.verbChipDetailed":"\u270E Detailed","panel.verbChipTitle":'Agent verbosity: click to cycle (default / concise / normal / detailed), applies to this message only; "default" follows the luban.agent.verbosity setting',"panel.settingsTitle":"Provider settings (model / baseUrl / API key)","panel.send":"Send","panel.sendTitle":"Send (Enter)","panel.stop":"\u23F9 Stop","panel.stopTitle":"Stop the current task","panel.tabClose":"Close tab (cancels the running turn)","panel.tabTooltip":"Right-click: close / close others / close sides","panel.tabOverflowTitle":"More tabs","panel.menuClose":"Close","panel.menuCloseOthers":"Close others","panel.menuCloseRight":"Close to the right","panel.menuCloseLeft":"Close to the left","panel.menuCloseAll":"Close all","panel.menuCloseTitle":"A running turn will be cancelled","panel.jumpLatest":"\u2193 Latest","panel.jumpLatestTitle":"Back to the latest","panel.thinking":"Thinking\u2026","panel.thinkDone":"Thought process","panel.thinkLabel":"{label} \xB7 {n} chars","panel.roleYou":"You","panel.roleAssistant":"Assistant","panel.roleError":"Error","panel.toolLabel":"","panel.toolUnit":"tool calls","panel.toolsBad":"({n} failed)","panel.toolsLast":"\xB7 latest {name}","panel.refWholeDir":"\u{1F4C1} Reference entire {dir} ({n} files)","panel.refWeb":"\u{1F310} Web search (@web)","panel.imgBubble":"\u{1F4CE} Images \xD7{n}","panel.imgPreviewTitle":"Click to view full size (click again to close)","panel.imgLoadFail":"Image failed to load (file may have been cleaned up)","panel.imgRemoveTitle":"Remove this image","panel.imgNoVision":"Current model does not support image input; images were not attached. Enable vision for this model in Provider settings.","panel.imgTooBig":"Image over 5MB, skipped","panel.imgBadType":"Unsupported image format (PNG / JPEG / WebP / GIF only), skipped","panel.imgLimit":"At most 4 images; extras ignored","panel.imgReadFail":"Failed to read image, skipped","panel.copyMsg":"Copy message","panel.copied":"Copied","panel.copyFail":"Copy failed","panel.editMsg":"Edit this message","panel.editCancel":"Cancel","panel.editHint":"Sending deletes everything after this message and immediately resends the edited text","panel.editSending":"Resending\u2026","panel.editSaved":"Saved; removed {n} later items","panel.editSavedNone":"Saved","panel.editBusy":"Cannot edit history while a turn is running; stop it first","panel.forkMsgTitle":"Fork from this prompt (keep up to here)","panel.forking":"Forking session\u2026","panel.forkBusy":"Cannot fork while a turn is running; stop it first","panel.refLoadingFiles":"Loading files and folders\u2026","panel.refLoadingSelection":"Reading the current selection\u2026","panel.refNoMatchDir":"No matches in this folder","panel.refNoMatch":"No matching file or folder","panel.refNoEditor":"No editor to reference","panel.lines":"{n} lines","panel.files":"{n} files","panel.injected":"injected {n} full files","panel.truncated":"truncated","panel.omitted":"omitted","panel.sources":"Sources \xB7 {n}","panel.ctxTip":"Context {used} / {win} tokens ({pct}{model})","panel.ctxEst":"\u2248 means the endpoint returned no usage; estimated from character count","panel.usageCache":"Cache {n} ({pct})","panel.usageContext":"Context {used} / {win} ({pct})","panel.usageRequests":"{n} requests","panel.usageTipContext":"Context {used} / {win} tokens","panel.usageTipRequests":"{n} requests this turn","panel.usageTipModel":"Model: {model}","panel.usageTipEst":"\u2248 estimated (the endpoint returned no usage)","panel.reviewShowDiff":"View diff","panel.reviewKeepAll":"Keep all","panel.reviewDropAll":"Revert all","panel.reviewBlocks":"\xB7 {n} hunks","panel.reviewTitle":"Pending changes \xB7 {files} files / {hunks} hunks (+{add} -{del})","panel.reviewKeepAllFiles":"Keep all files","panel.reviewRejectAllFiles":"Revert all files","panel.reviewRejectAllConfirm":"Confirm revert all?","panel.reviewHint":'Details are in the editor diff: "Keep all / Revert all" in the title bar, "Keep this / Revert this" per hunk; click "View diff" to reopen. The two buttons on the right of the title apply to every file at once.',"panel.relJustNow":"just now","panel.relMinutes":"{n}m ago","panel.relHours":"{n}h ago","panel.relDays":"{n}d ago","panel.sessionsHead":"Session history \xB7 {n}","panel.sessionsSearchHead":"Session history \xB7 {n}/{total} matched","panel.sessionSearchPlaceholder":"Search session titles and message text\u2026","panel.sessionSearchTitle":"Search session history: titles filter as you type, 2+ characters also search message text","panel.sessionSearchClear":"Clear search (Esc)","panel.sessionSearchMinChars":"Type 2+ characters to also search message text","panel.sessionSearching":"Searching message text\u2026","panel.sessionSearchHits":"{n} sessions matched in text","panel.sessionSearchTruncated":" (limit reached)","panel.sessionContentHits":"{n} text matches","panel.sessionSearchNoMatch":"No matching sessions \u2014 both titles and message text were searched.","panel.sessionNew":"\uFF0B New session","panel.loading":"Loading\u2026","panel.sessionsEmptyAll":"No sessions yet \u2014 send your first message to create one.","panel.sessionsEmptyWs":'No sessions in this workspace yet. Click "Show other workspaces", or just send a message.',"panel.sessionItems":"{n} items","panel.noWorkspace":"No workspace","panel.deleteConfirm":"Delete?","panel.deleteConfirmTitle":"Click again to confirm (cannot be undone)","panel.deleteTitle":"Delete this session","panel.forkBtn":"Fork","panel.forkTitle":"Fork this session","panel.forkRound":"Fork up to here","panel.forkRoundTitle":"Keep this conversation up to this turn and start a new branch","panel.openingSession":"Opening the session\u2026","panel.scopeToWorkspace":"This workspace only","panel.scopeToAll":"Show other workspaces","panel.scopeTipAll":"Showing all workspaces","panel.scopeTipWs":"Showing this workspace only","panel.openingNew":"Starting a new session\u2026","panel.execPlanRunning":"Executing plan\u2026","panel.openPlanFile":"\u{1F4C4} Open plan file","panel.runPlan":"\u25B6 Execute this plan","panel.runPlanAccept":"\u25B6 Execute & keep changes","panel.runPlanAcceptTitle":"Run the plan and auto-keep all writes \u2014 skip pending review","panel.planSent":"Handed to the Agent\u2026","panel.planSaved":"Saved \xB7 {file}","panel.planReadonly":"Plan mode is read-only \u2014 no files were changed","panel.todosTitle":"Todos {done}/{total}","panel.todoPending":"Pending","panel.todoProgress":"In progress","panel.todoDone":"Done","panel.todoCancelled":"Cancelled","panel.askSubmit":"Confirm","panel.askMulti":"(multi-select)","panel.askNeedAll":"Please answer every question first","panel.askAnswered":"Answered","panel.askError":"Failed to submit choices","panel.askCancelled":"Cancelled (turn ended)","panel.askRecommended":"Recommended","panel.queueTitle":"{n} queued","panel.queuePausedTip":'Paused \xB7 click "Resume" to send',"panel.queueAutoTip":"Sends automatically when the current turn ends","panel.resume":"Resume","panel.resumeTitle":"Resume auto-sending: sends the next item immediately when idle","panel.clear":"Clear","panel.clearQueueTitle":"Clear the queue (does not affect the running turn)","panel.runNow":"Now","panel.runNowTitle":"Cancel the current turn and run this item now (keeps the rest of the queue)","panel.runNowStatus":"Requested run now\u2026","panel.edit":"Edit","panel.editTitle":"Take it back into the input box","panel.removeTitle":"Remove this item from the queue","panel.retrieved":"Took back the queued message","panel.resuming":"Resuming queued messages\u2026","panel.queued":"Queued \xB7 sends when the current turn ends","panel.searching":"Searching the web\u2026","panel.running":"Running\u2026","panel.stopRequested":"Stop requested","panel.noEditorSelection":"No open editor \u2014 cannot reference the selection","panel.noSelection":"Select some code in the editor first","panel.selectionRef":"# Reference: {path}:{start}-{end}","panel.fileRef":"Referenced {n} items","panel.selectionToken":"#selection {path}:{start}-{end} ({kind}, {n} lines)","panel.kindSelection":"selection","panel.kindFull":"full file","panel.done":"Done","panel.unknownError":"Unknown error","panel.error":"Error","panel.queueFailed":"Failed to queue","store.untitled":"New session","cross.execPlan":"\u25B6 Execute plan","cross.execPlanAccept":"\u25B6 Execute plan & keep changes","ext.keepHunk":"$(check) Keep this (+{add} -{del})","ext.revertHunk":"$(discard) Revert this","ext.viewDiff":"$(diff) View full diff","ext.keepFile":"$(check-all) Keep all (+{add} -{del})","ext.revertFile":"$(discard) Revert all","ext.diffTitle":"Luban changes: {file} (+{add} -{del})","ext.noPending":"No pending changes: {path}","ext.hunkGone":"Cannot find {hunk} (the change moved; try again)","ext.unknownAction":"Unknown action: {action}","ext.noReviewFile":"No file to review","ext.removedGhost":" <- deleted {n} line(s): {text}","ext.actionFailed":"the action failed","ext.reviewWarn":"Luban review: {msg}","ext.queueFull":"The queue is full (max {n}); finish or clear it first","ext.queueEmpty":"Empty message; nothing was queued","ext.addSelectionNone":"Nothing is selected in the editor; reference not inserted","ext.queueMissing":"That item is not in the queue","ext.imgNoVision":"Current model does not support images; attachments ignored","ext.noSuchSession":"No such session: {id}","ext.sessionBusy":"This session is already running; try executing the plan later","ext.editBusy":"This session is running; sent messages cannot be edited right now","ext.editMissing":"The message to edit was not found (it may have been trimmed)","ext.editEmpty":"Edited content cannot be empty","ext.forkPickTitle":"Fork session","ext.forkPickPlaceholder":"Copy everything, or pick a prompt to branch from","ext.forkWhole":"Copy the whole session","ext.forkWholeDesc":"Keep all {n} records","ext.forkFromDesc":"Branch from this prompt \xB7 the {n} records after it are left out","ext.forkBusy":"This session is running; fork it after the current turn ends","ext.forkEmpty":"This session has nothing to fork yet","ext.forkSuffix":" \xB7 fork","ext.forkMissing":"The prompt to fork from was not found (it may have been trimmed)","ext.cancelled":"Cancelled: the session was closed or deleted","ext.noPlan":"Nothing to execute: the plan file was deleted or is empty","ext.notPlanFile":"Not a readable plan file (Luban / Cursor): {path}","ext.browserNotFound":`Chrome / Edge not found, the built-in browser is unavailable. Install Chrome or set luban.browser.chromePath. Tried:
|
|
699
699
|
{paths}`,"ext.browserCheckRunning":"Checking the built-in browser\u2026","ext.browserCheckOk":"Built-in browser works: {exe} (test screenshot ~{chars} KB)","ext.browserCheckFailed":"Built-in browser check failed: {message}","ext.cursorPlanPick":"Pick a Cursor plan to execute (~/.cursor/plans)","ext.cursorPlanNone":"No Cursor plans found: {dir} is empty","ext.cursorPlanReadFail":"Failed to read the Cursor plan: {msg}","ext.cursorPlanBig":"Cursor plan is larger than {n}KB and cannot be executed","ext.cursorPlanNoPanel":"Luban panel is not ready; open it and try again","ext.stop.final":"Done","ext.stop.maxRounds":"round limit reached","ext.stop.timeout":"time budget exceeded","ext.stop.context":"context budget exhausted","ext.stop.loop":"repeated calls detected","ext.stop.errors":"consecutive tool errors","ext.stop.stopped":"stopped","ext.stop.noWrites":"no files modified this turn","ext.summary.exec":"Plan executed \xB7 {n} tool calls \xB7 {s}s","ext.summary.chat":"Done \xB7 {model}","ext.summary.plan":"Plan ready \xB7 {n} read-only tool calls \xB7 {s}s","ext.summary.done":"Done \xB7 {n} tool calls \xB7 {s}s","ext.summary.fallback":'(The turn ended due to "{reason}" after {n} tool calls; no closing summary was generated)',"ext.summary.fallbackShort":'(The turn ended due to "{reason}" after {n} tool calls)',"ext.summary.noWrites":"Tools ran this turn but no files were modified (no successful write_file / replace_in_file). Say \u201Ccontinue editing files\u201D if you still need changes; otherwise you can ignore this note.","ext.prefixHint":"prefix cache 0% hit \xB7 enable KV cache on the endpoint","ext.prefixHintTip":'All {n} requests were recomputed; the prefix cache never hit. For a local vLLM add --enable-prefix-caching (Docker env VLLM_ENABLE_PREFIX_CACHING=1; check vllm serve --help); SGLang enables it by default; Ollama does not support it. Once enabled this line shows "cache N%".',"ext.inlineOn":"Luban Tab completion enabled","ext.inlineOff":"Luban Tab completion disabled","ext.agentDone":"Agent finished \xB7 {n} tool calls","ext.askNeeded":"Luban needs your choice: {detail}","ext.askGoChoose":"Choose","ext.configReloaded":"Provider config reloaded: {models} models \xB7 {skills} skills","ext.mcpNote":" \xB7 MCP: {servers} servers / {tools} tools","ext.mcpFail":" \xB7 MCP reload failed: {msg}","ext.newSessionNotice":"Luban: new session started","ext.addFileNoView":"Cannot open the Luban chat panel: open the Luban sidebar first.","ext.agentPrompt":"What should the agent do? (edit/generate code)","ext.hubPanelTitle":"Settings & usage","ext.providerTimeout":"Timeout (15s)","ext.providerBadJson":"Response is not JSON: {head}","ext.providerBaseUrl":"baseUrl is empty","ext.providerNeedModel":"Enter a model id before testing","ext.providerNeedKey":"Missing API key (enter it in the panel or set apiKeyEnv)","ext.configMissing":"The config file does not exist yet \u2014 click Save first","ext.saveFailed":"Save failed: {msg}","ext.generalMissing":"Missing setting: {key}","ext.generalBadBool":'"{key}" must be a boolean',"ext.generalBadLanguage":"Language must be auto / en / zh-cn / ja","ext.generalBadEnum":'"{key}" must be one of {values}',"ext.generalBadNumber":'"{key}" must be an integer',"ext.generalBadMin":'"{key}" must be \u2265 {min}',"ext.generalBadMax":'"{key}" must be \u2264 {max}',"ext.generalSaveFailed":"Failed to save general settings: {msg}","ext.openDirFailed":"Cannot open the data directory: {msg}","validate.providerEmpty":"Provider id cannot be empty","validate.pos":'provider "{id}"',"validate.untitled":"(unnamed)","validate.idChars":"{pos}: id may only contain letters, digits, underscores and dashes","validate.idDup":"{pos}: duplicate id","validate.baseUrl":"{pos}: baseUrl must start with http:// or https://","validate.modelIdEmpty":"{pos}: model id cannot be empty","validate.modelIdDup":'{pos}: duplicate model id "{id}"',"validate.maxIn":'{pos}: model "{id}" maxInputTokens must be a positive integer',"validate.maxOut":'{pos}: model "{id}" maxOutputTokens must be a positive integer',"validate.noModels":"{pos}: at least one model is required","validate.webUrl":"{pos}: webSearch.baseUrl must start with http:// or https://","validate.webCount":"{pos}: webSearch.count must be an integer from 1 to 50","validate.webEngine":"{pos}: webSearch.engine must be deepseek or bing","validate.webDisabled":"{pos}: webSearch.disabled must be a boolean","validate.thinkShape":'{pos}: model "{id}" thinking must be an object (e.g. { "default": "off", "on": {...}, "off": {...} })',"validate.thinkTier":'{pos}: model "{id}" thinking.{tier} must be a JSON object',"validate.thinkReserved":'{pos}: model "{id}" thinking.{tier} cannot override protocol fields: {keys}',"validate.thinkTooLong":'{pos}: model "{id}" thinking.{tier} exceeds {n} characters',"validate.thinkEmpty":'{pos}: model "{id}" thinking needs at least one of on / off',"validate.needProvider":"At least one provider is required","usage.today":"Today","usage.7d":"Last 7 days","usage.30d":"Last 30 days","usage.all":"All time","dash.title":"Token usage","dash.statusReady":"Ready","dash.refresh":"Refresh","dash.refreshTitle":"Re-read the ledger","dash.emptyA":"No records yet.","dash.emptyB":"They appear after your first turn \u2014 each turn's token totals are appended to the local ledger.","dash.byModel":"By model","dash.byDay":"By day","dash.byMode":"By mode","dash.recent":"Recent records","dash.thModel":"Model","dash.thRequests":"Requests","dash.thInput":"Input","dash.thOutput":"Output","dash.thTotal":"Total","dash.thCache":"Cache hits","dash.thShare":"Share","dash.thMode":"Mode","dash.thTurns":"Turns","dash.thTime":"Time","dash.openDir":"Open data directory","dash.dirTitle":"Ledger directory","dash.foot":"Token counts only; no cost estimates","dash.modeExecute":"Execute plan","dash.modeUnknown":"unknown","dash.loading":"Loading\u2026","dash.turns":"Turns","dash.requests":"Requests","dash.input":"Input","dash.output":"Output","dash.total":"Total","dash.cache":"Cache hits","dash.partial":"{n} interrupted turn(s) backfilled","dash.perTurn":"{n} per turn","dash.estTurns":"includes {n} estimated turn(s)","dash.cached":"{n} from cache","dash.models":"{n} models","dash.unknownModel":"Unknown model","dash.days":"{n} days \xB7 blue=input green=output","dash.dayTip":"{day} \xB7 \u2191{input} \u2193{output} \xB7 {n} requests","dash.recentCount":"{n} records (max 50)","dash.interrupted":" \xB7 interrupted","dash.recordOff":"Usage recording is off (luban.usage.record=false) \u2014 no new records are written from this turn on.","dash.badLines":"{n} unreadable line(s) in the ledger were skipped.","dash.noRecords":"no records","dash.statusTurns":"{n} turns","hub.title":"Settings & usage","hub.navGeneral":"General","hub.navSettings":"Settings","hub.navUsage":"Usage","hub.navGeneralTitle":"Luban settings (language / context / Agent, \u2026)","hub.navSettingsTitle":"Provider settings (models / base URL / API keys)","hub.navUsageTitle":"Token usage dashboard (by model / day / mode)","general.title":"General","general.statusReady":"Ready","general.save":"Save","general.unsaved":"Unsaved","general.saving":"Saving\u2026","general.loaded":"Loaded","general.saved":"Saved","general.invalid":"{n} validation error(s)","general.groupUi":"Interface","general.groupContext":"Auto context","general.groupSession":"Session","general.groupAgent":"Agent","general.groupTools":"Tools & safety","general.groupBrowser":"Browser (extension setting)","general.groupReview":"Review","general.groupInline":"Tab completion","general.groupUsage":"Usage","general.language":"Interface language","general.languageTitle":"Affects Luban UI only, not the editor display language","general.languageNote":"Affects Luban\u2019s own UI only \u2014 not the VS Code / VSCodium display language. Command palette titles still follow the editor language.","general.langAuto":"Follow VS Code display language","general.langZhCn":"\u7B80\u4F53\u4E2D\u6587","general.langEn":"English","general.langJa":"\u65E5\u672C\u8A9E","general.autoOpen":"Open sidebar on startup","general.contextAutoFile":"Attach current editor code","general.contextMaxChars":"Character limit","general.contextWindowLines":"Window lines (no selection)","general.sessionHistoryMax":"Session history limit","general.sessionMemoryEnabled":"Multi-turn memory","general.sessionMemoryMaxTurns":"Memory turns","general.sessionMemoryMaxChars":"Memory character budget","general.agentMaxRounds":"Request round cap (0 = unlimited)","general.agentMaxMinutes":"Wall-clock limit (minutes)","general.agentSubagentRounds":"Sub-agent rounds (0 = off)","general.agentSubagentMinutes":"Sub-agent wall clock (min, 0 = follow turn)","general.agentSmallWindow":"Small-window mode","general.smallWindowAuto":"Auto (from model window)","general.smallWindowOn":"Force on","general.smallWindowOff":"Off","general.agentVerbosity":"Verbosity","general.verbosityConcise":"Concise (one line)","general.verbosityNormal":"Normal (short report)","general.verbosityDetailed":"Detailed (structured)","general.contextWorkset":"Working set in context","general.searchMaxFiles":"search_code index file cap","general.planStrictReadOnly":"Strict read-only in Plan mode","general.fsAllowOutside":"Allow paths outside workspace","general.diagAfterEdit":"Read diagnostics after writes","general.browserEnabled":"Enable the built-in browser tool","general.browserHeadless":"Run headless (no visible window)","general.browserViewportWidth":"Viewport width (320~4096)","general.browserViewportHeight":"Viewport height (240~4096)","general.browserIdleTimeoutMs":"Idle timeout (ms)","general.browserChromePath":"Chrome / Edge path","general.browserChromePathPh":"Empty = auto-detect (LUBAN_CHROME_PATH also honoured)","general.browserNote":"Read-only tool: open a page, accessibility outline, screenshot, console output and failed requests \u2014 no clicking or typing. Requires a local Chrome or Edge; while off the tool is not offered to the model at all.","general.groupComputer":"Desktop control (macOS / Windows)","general.computerEnabled":"Enable the desktop control tool","general.computerConfirm":"Confirm once before moving mouse / keyboard","general.computerScreenshotWidth":"Max screenshot width (320~4096)","general.computerNote":"Screenshot, read on-screen text (not available on Windows \u2014 it falls back to viewing the screenshot), list windows, click, type, press keys, scroll, drag. macOS and Windows; unavailable in Plan mode. On macOS the host app needs Screen Recording and Accessibility permissions, otherwise screenshots fail and clicks are silently dropped; on Windows no permission is needed, but windows running as administrator ignore input from a normal process.","general.reviewAutoOpenDiff":"Auto-open diff after writes","general.inlineEnabled":"Enable Tab completion","general.inlineMaxPerMinute":"Requests per minute","general.inlineDebounceMs":"Debounce delay (ms)","general.usageRecord":"Record token usage","general.errLanguage":"Language must be auto / en / zh-cn / ja","general.errEnum":'Invalid value for "{key}"',"general.errNumber":'"{key}" must be an integer',"general.errMin":'"{key}" must be \u2265 {min}',"general.errMax":'"{key}" must be \u2264 {max}',"settings.title":"Provider settings","settings.statusReady":"Ready","settings.save":"Save","settings.defaultModel":"Default model","settings.defaultModelTitle":"Initial selection of the panel's model dropdown","settings.defaultModelNote":"When model ids collide across providers a <code>providerId::modelId</code> prefix is added automatically. API keys go to VS Code SecretStorage, never the config file.","settings.addProvider":"+ Add provider","settings.openConfig":"Open providers.json","settings.unsaved":"Unsaved","settings.firstModel":"(first model)","settings.noModel":"(no models yet)","settings.modelIdPh":"model id (required)","settings.modelNamePh":"display name (optional)","settings.toolCallingTitle":"toolCalling: required to be used in Agent mode","settings.visionTitle":"vision: model supports image input (paste images into chat)","settings.thinkTitle":"thinking: thinking tiers. The JSON in on / off is merged into the request body as-is (e.g. chat_template_kwargs.enable_thinking, reasoning, think); empty means that tier sends nothing. Use Fill template to generate common dialects","settings.thinkDefault":"Default tier","settings.thinkDefaultOff":"Default: off","settings.thinkDefaultOn":"Default: on","settings.thinkPreset":"Fill template\u2026","settings.thinkPresetQwen":"Qwen / vLLM","settings.thinkPresetDeepseek":"DeepSeek","settings.thinkPresetOpenrouter":"OpenRouter","settings.thinkPresetAnthropic":"Anthropic-compatible","settings.thinkPresetOllama":"Ollama","settings.thinkPresetOverwrite":"on / off already have content. Overwrite with the template?","settings.thinkOn":"On (on)","settings.thinkOff":"Off (off)","settings.thinkOnPh":'Empty = not sent. e.g. { "chat_template_kwargs": { "enable_thinking": true } }',"settings.thinkOffPh":'Empty = not sent. e.g. { "thinking": { "type": "disabled" } }',"settings.thinkBadJson":'{pos} model "{id}" thinking.{tier} is not valid JSON',"settings.thinkBadShape":'{pos} model "{id}" thinking.{tier} must be a JSON object (not an array or scalar)',"settings.deleteModel":"Delete this model","settings.providerNamePh":"provider name (e.g. DeepSeek)","settings.deleteProvider":"Delete provider","settings.idLabel":"id (unique; letters/digits/_/-)","settings.apiKeyEnvLabel":"apiKeyEnv (optional)","settings.keyLabel":"API key (stored in VS Code SecretStorage)","settings.keyPhSaved":"Saved \u2014 leave empty to keep it","settings.keyPh":"sk-\u2026 (written to SecretStorage only)","settings.clearKey":"Clear key","settings.test":"Test connection","settings.testing":"Testing\u2026 (first model, max_tokens=1)","settings.fetchModels":"Fetch models","settings.fetching":"Requesting /models\u2026","settings.modelsHead":"Models ({n}) \xB7 id / display name / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.addModel":"+ Add model","settings.errors":"{n} issue(s) to fix:","settings.noProviders":'No providers yet \u2014 click "+ Add provider" below to start.',"settings.saving":"Saving\u2026","settings.builtin":"Using the built-in default config; saving writes to {path}","settings.loaded":"Loaded","settings.saved":"Saved \xB7 {n} models","settings.invalid":"{n} problem(s); not saved","settings.testOk":"Last test OK \xB7 {ms}ms","settings.testFailed":"Last test failed","settings.testOkResult":"\u2705 HTTP {status} \xB7 {ms}ms{reply}","settings.testFailResult":"\u274C {msg}","settings.fail":"failed","settings.fetchFail":"Fetch failed","settings.fetched":"\u2705 Fetched {n} models","settings.fetchedAdded":"; {n} new (remember to save)","settings.fetchedNone":"; no new models","settings.keySet":"Will be written to SecretStorage on save (not to disk)","settings.keyClear":"The stored key will be deleted on save","settings.keySecret":"Already in SecretStorage","settings.keyInline":"Plaintext apiKey in the config (kept on save)","settings.keyEnv":"Using env var {env} (the key is not shown here)","settings.keyNone":"No key set","settings.unnamedModel":"unnamed"},ja:{"panel.statusReady":"\u6E96\u5099\u5B8C\u4E86","panel.sessionsBtn":"\u30BB\u30C3\u30B7\u30E7\u30F3","panel.sessionsTitle":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74\uFF08Cmd+Alt+H\uFF09","panel.newSessionBtn":"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3","panel.newSessionTitle":"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\uFF08Cmd+Alt+N\uFF09","panel.hint":"\u300Cxxx.js \u3092\u65B0\u898F\u4F5C\u6210\u3057\u3066 \u2026\u300D\u3084\u300Cxxx \u3092 \u2026 \u306B\u5909\u66F4\u300D\u3068\u8A00\u3046\u3068\u3001\u30E2\u30C7\u30EB\u304C\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u76F4\u63A5\u7DE8\u96C6\u3057\u307E\u3059\u3002<br /><code>@</code> \u3067\u30D5\u30A1\u30A4\u30EB\u3084\u30D5\u30A9\u30EB\u30C0\u3092\u53C2\u7167\uFF08<code>@src/</code> \u3067\u30D5\u30A9\u30EB\u30C0\u5168\u4F53\uFF09\u3001<code>@web</code> \u3067\u30A6\u30A7\u30D6\u691C\u7D22\u3057\u3066\u304B\u3089\u56DE\u7B54\uFF1B\u30B3\u30FC\u30C9\u306E\u53C2\u7167\u306F\u30A8\u30C7\u30A3\u30BF\u3067\u9078\u629E\u3057\u3066\u53F3\u30AF\u30EA\u30C3\u30AF\u300C\u30C1\u30E3\u30C3\u30C8\u306B\u9078\u629E\u7BC4\u56F2\u3092\u8FFD\u52A0\u300D\u307E\u305F\u306F <code>Cmd/Ctrl+Alt+A</code>\uFF08\u300C# \u9078\u629E\u7BC4\u56F2\u300D\u30DC\u30BF\u30F3 / <code>#</code> \u3082\u53EF\uFF09\u3002\u30C8\u30FC\u30AF\u30F3\u306B\u306F\u30D5\u30A1\u30A4\u30EB\u3068\u884C\u7BC4\u56F2\u304C\u5165\u308A\u3001\u8907\u6570\u56DE\u91CD\u306D\u3089\u308C\u307E\u3059\u3002","panel.inputPlaceholder":"\u751F\u6210\u30FB\u5909\u66F4\u3057\u305F\u3044\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u2026\uFF08Enter \u3067\u9001\u4FE1\u3001Shift+Enter \u3067\u6539\u884C\uFF1B\u5B9F\u884C\u4E2D\u306B Enter \u3059\u308B\u3068\u30AD\u30E5\u30FC\u306B\u5165\u308A\u3001\u3053\u306E\u30BF\u30FC\u30F3\u7D42\u4E86\u5F8C\u306B\u81EA\u52D5\u9001\u4FE1\uFF1B@ \u3067\u30D5\u30A1\u30A4\u30EB\uFF0F\u30D5\u30A9\u30EB\u30C0\u3001# \u3067\u9078\u629E\u7BC4\u56F2\uFF1B@web \u3067\u30A6\u30A7\u30D6\u691C\u7D22\uFF1BIME \u5909\u63DB\u78BA\u5B9A\u3067\u306F\u8AA4\u9001\u4FE1\u3057\u307E\u305B\u3093\uFF09","panel.selectModelTitle":"provider / \u30E2\u30C7\u30EB\u3092\u9078\u629E","panel.modeTitle":"\u30E2\u30FC\u30C9\uFF08Shift+Tab \u3067\u5207\u66FF\uFF09","panel.refSelectionBtn":"# \u9078\u629E\u7BC4\u56F2","panel.refSelectionTitle":"\u30A8\u30C7\u30A3\u30BF\u306E\u9078\u629E\u7BC4\u56F2\u3092\u53C2\u7167\uFF08\u9078\u629E\u3057\u3066\u53F3\u30AF\u30EA\u30C3\u30AF \u2192\u300C\u30C1\u30E3\u30C3\u30C8\u306B\u9078\u629E\u7BC4\u56F2\u3092\u8FFD\u52A0\u300D\u307E\u305F\u306F Cmd/Ctrl+Alt+A\uFF09","panel.webChip":"\u{1F310} \u30A6\u30A7\u30D6","panel.webChipTitle":"\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306F\u5148\u306B\u30A6\u30A7\u30D6\u691C\u7D22\u3057\u3066\u304B\u3089\u56DE\u7B54\u3057\u307E\u3059","panel.thinkChipDefault":"\u{1F9E0} \u30C7\u30D5\u30A9\u30EB\u30C8","panel.thinkChipOn":"\u{1F9E0} \u30AA\u30F3","panel.thinkChipOff":"\u{1F9E0} \u30AA\u30D5","panel.thinkChipTitle":"\u601D\u8003\u30E2\u30FC\u30C9\uFF1A{dflt}\u3002\u30AF\u30EA\u30C3\u30AF\u3067\u5207\u66FF\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8 / \u30AA\u30F3 / \u30AA\u30D5\uFF09\uFF1B\u30E2\u30C7\u30EB\u306B thinking \u8A2D\u5B9A\u304C\u306A\u3044\u5834\u5408\u306F\u975E\u8868\u793A","panel.verbChipDefault":"\u270E \u65E2\u5B9A","panel.verbChipConcise":"\u270E \u7C21\u6F54","panel.verbChipNormal":"\u270E \u6A19\u6E96","panel.verbChipDetailed":"\u270E \u8A73\u7D30","panel.verbChipTitle":"\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u8A73\u7D30\u5EA6\uFF1A\u30AF\u30EA\u30C3\u30AF\u3067\u5207\u66FF\uFF08\u65E2\u5B9A / \u7C21\u6F54 / \u6A19\u6E96 / \u8A73\u7D30\uFF09\u3001\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306E\u307F\u9069\u7528\uFF1B\u300C\u65E2\u5B9A\u300D\u306F\u8A2D\u5B9A luban.agent.verbosity \u306B\u5F93\u3046","panel.settingsTitle":"Provider \u8A2D\u5B9A\uFF08\u30E2\u30C7\u30EB / baseUrl / API key\uFF09","panel.send":"\u9001\u4FE1","panel.sendTitle":"\u9001\u4FE1\uFF08Enter\uFF09","panel.stop":"\u23F9 \u505C\u6B62","panel.stopTitle":"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u3092\u505C\u6B62","panel.tabClose":"\u30BF\u30D6\u3092\u9589\u3058\u308B\uFF08\u751F\u6210\u4E2D\u306A\u3089\u3053\u306E\u30BF\u30FC\u30F3\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\uFF09","panel.tabTooltip":"\u53F3\u30AF\u30EA\u30C3\u30AF\uFF1A\u9589\u3058\u308B / \u4ED6\u3092\u9589\u3058\u308B / \u5DE6\u53F3\u3092\u9589\u3058\u308B","panel.tabOverflowTitle":"\u305D\u306E\u4ED6\u306E\u30BF\u30D6","panel.menuClose":"\u9589\u3058\u308B","panel.menuCloseOthers":"\u4ED6\u3092\u9589\u3058\u308B","panel.menuCloseRight":"\u53F3\u5074\u3092\u3059\u3079\u3066\u9589\u3058\u308B","panel.menuCloseLeft":"\u5DE6\u5074\u3092\u3059\u3079\u3066\u9589\u3058\u308B","panel.menuCloseAll":"\u3059\u3079\u3066\u9589\u3058\u308B","panel.menuCloseTitle":"\u751F\u6210\u4E2D\u306A\u3089\u3053\u306E\u30BF\u30FC\u30F3\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059","panel.jumpLatest":"\u2193 \u6700\u65B0","panel.jumpLatestTitle":"\u6700\u65B0\u306E\u5185\u5BB9\u3078\u623B\u308B","panel.thinking":"\u601D\u8003\u4E2D\u2026","panel.thinkDone":"\u601D\u8003\u904E\u7A0B","panel.thinkLabel":"{label} \xB7 {n} \u6587\u5B57","panel.roleYou":"\u3042\u306A\u305F","panel.roleAssistant":"\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8","panel.roleError":"\u30A8\u30E9\u30FC","panel.toolLabel":"\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057","panel.toolUnit":"\u4EF6","panel.toolsBad":"\uFF08{n} \u4EF6\u5931\u6557\uFF09","panel.toolsLast":"\xB7 \u6700\u8FD1 {name}","panel.refWholeDir":"\u{1F4C1} {dir} \u5168\u4F53\u3092\u53C2\u7167\uFF08{n} \u30D5\u30A1\u30A4\u30EB\uFF09","panel.refWeb":"\u{1F310} \u30A6\u30A7\u30D6\u691C\u7D22\uFF08@web\uFF09","panel.imgBubble":"\u{1F4CE} \u753B\u50CF \xD7{n}","panel.imgPreviewTitle":"\u30AF\u30EA\u30C3\u30AF\u3067\u62E1\u5927\uFF08\u3082\u3046\u4E00\u5EA6\u30AF\u30EA\u30C3\u30AF\u3067\u9589\u3058\u308B\uFF09","panel.imgLoadFail":"\u753B\u50CF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A1\u30A4\u30EB\u304C\u524A\u9664\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09","panel.imgRemoveTitle":"\u3053\u306E\u753B\u50CF\u3092\u524A\u9664","panel.imgNoVision":"\u73FE\u5728\u306E\u30E2\u30C7\u30EB\u306F\u753B\u50CF\u5165\u529B\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u753B\u50CF\u306F\u6DFB\u4ED8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002Provider \u8A2D\u5B9A\u3067 vision \u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","panel.imgTooBig":"\u753B\u50CF\u304C 5MB \u3092\u8D85\u3048\u3066\u3044\u308B\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F","panel.imgBadType":"\u672A\u5BFE\u5FDC\u306E\u753B\u50CF\u5F62\u5F0F\u3067\u3059\uFF08PNG / JPEG / WebP / GIF \u306E\u307F\uFF09\u3001\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F","panel.imgLimit":"\u753B\u50CF\u306F\u6700\u5927 4 \u679A\u307E\u3067\u3001\u4F59\u5206\u306F\u7121\u8996\u3055\u308C\u307E\u3057\u305F","panel.imgReadFail":"\u753B\u50CF\u306E\u8AAD\u307F\u53D6\u308A\u306B\u5931\u6557\u3057\u305F\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F","panel.copyMsg":"\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30B3\u30D4\u30FC","panel.copied":"\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F","panel.copyFail":"\u30B3\u30D4\u30FC\u306B\u5931\u6557\u3057\u307E\u3057\u305F","panel.editMsg":"\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u7DE8\u96C6","panel.editCancel":"\u30AD\u30E3\u30F3\u30BB\u30EB","panel.editHint":"\u9001\u4FE1\u3059\u308B\u3068\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3088\u308A\u5F8C\u306E\u4F1A\u8A71\u304C\u524A\u9664\u3055\u308C\u3001\u7DE8\u96C6\u5F8C\u306E\u5185\u5BB9\u3067\u3059\u3050\u306B\u518D\u9001\u4FE1\u3055\u308C\u307E\u3059","panel.editSending":"\u518D\u9001\u4FE1\u4E2D\u2026","panel.editSaved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F\u3002\u4EE5\u964D\u306E {n} \u4EF6\u3092\u524A\u9664\u3057\u307E\u3057\u305F","panel.editSavedNone":"\u4FDD\u5B58\u3057\u307E\u3057\u305F","panel.editBusy":"\u751F\u6210\u4E2D\u306F\u5C65\u6B74\u3092\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093\u3002\u5148\u306B\u3053\u306E\u30BF\u30FC\u30F3\u3092\u505C\u6B62\u3057\u3066\u304F\u3060\u3055\u3044","panel.forkMsgTitle":"\u3053\u306E\u8CEA\u554F\u304B\u3089\u30D5\u30A9\u30FC\u30AF\uFF08\u3053\u3053\u307E\u3067\u3092\u4FDD\u6301\uFF09","panel.forking":"\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u30D5\u30A9\u30FC\u30AF\u3057\u3066\u3044\u307E\u3059\u2026","panel.forkBusy":"\u751F\u6210\u4E2D\u306F\u30D5\u30A9\u30FC\u30AF\u3067\u304D\u307E\u305B\u3093\u3002\u5148\u306B\u3053\u306E\u30BF\u30FC\u30F3\u3092\u505C\u6B62\u3057\u3066\u304F\u3060\u3055\u3044","panel.refLoadingFiles":"\u30D5\u30A1\u30A4\u30EB\u3068\u30D5\u30A9\u30EB\u30C0\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","panel.refLoadingSelection":"\u73FE\u5728\u306E\u9078\u629E\u7BC4\u56F2\u3092\u8AAD\u307F\u53D6\u308A\u4E2D\u2026","panel.refNoMatchDir":"\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u306B\u4E00\u81F4\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093","panel.refNoMatch":"\u4E00\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u304C\u3042\u308A\u307E\u305B\u3093","panel.refNoEditor":"\u53C2\u7167\u3067\u304D\u308B\u30A8\u30C7\u30A3\u30BF\u304C\u3042\u308A\u307E\u305B\u3093","panel.lines":"{n} \u884C","panel.files":"{n} \u30D5\u30A1\u30A4\u30EB","panel.injected":"{n} \u4EF6\u306E\u5168\u6587\u3092\u6CE8\u5165\u6E08\u307F","panel.truncated":"\u5207\u308A\u8A70\u3081\u6E08\u307F","panel.omitted":"\u7701\u7565\u6E08\u307F","panel.sources":"\u51FA\u5178 \xB7 {n}","panel.ctxTip":"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 {used} / {win} token\uFF08{pct}{model}\uFF09","panel.ctxEst":"\u2248 \u306F\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u304C usage \u3092\u8FD4\u3055\u305A\u3001\u6587\u5B57\u6570\u304B\u3089\u63A8\u5B9A\u3057\u305F\u3053\u3068\u3092\u793A\u3057\u307E\u3059","panel.usageCache":"\u30AD\u30E3\u30C3\u30B7\u30E5 {n}\uFF08{pct}\uFF09","panel.usageContext":"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 {used} / {win}\uFF08{pct}\uFF09","panel.usageRequests":"{n} \u56DE\u306E\u30EA\u30AF\u30A8\u30B9\u30C8","panel.usageTipContext":"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 {used} / {win} token","panel.usageTipRequests":"\u30EA\u30AF\u30A8\u30B9\u30C8 {n} \u56DE","panel.usageTipModel":"\u30E2\u30C7\u30EB {model}","panel.usageTipEst":"\u2248 \u63A8\u5B9A\u5024\uFF08\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u304C usage \u3092\u8FD4\u3057\u3066\u3044\u307E\u305B\u3093\uFF09","panel.reviewShowDiff":"diff \u3092\u8868\u793A","panel.reviewKeepAll":"\u3059\u3079\u3066\u4FDD\u6301","panel.reviewDropAll":"\u3059\u3079\u3066\u53D6\u308A\u6D88\u3057","panel.reviewBlocks":"\xB7 {n} \u30D6\u30ED\u30C3\u30AF","panel.reviewTitle":"\u30EC\u30D3\u30E5\u30FC\u5F85\u3061\u306E\u5909\u66F4 \xB7 {files} \u30D5\u30A1\u30A4\u30EB / {hunks} \u30D6\u30ED\u30C3\u30AF\uFF08+{add} -{del}\uFF09","panel.reviewKeepAllFiles":"\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u6301","panel.reviewRejectAllFiles":"\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u6D88\u3057","panel.reviewRejectAllConfirm":"\u3059\u3079\u3066\u53D6\u308A\u6D88\u3057\u307E\u3059\u304B\uFF1F","panel.reviewHint":"\u8A73\u7D30\u306F\u30A8\u30C7\u30A3\u30BF\u306E diff \u306B\u3042\u308A\u307E\u3059\uFF1A\u30BF\u30A4\u30C8\u30EB\u30D0\u30FC\u306E\u300C\u3059\u3079\u3066\u4FDD\u6301 / \u3059\u3079\u3066\u53D6\u308A\u6D88\u3057\u300D\u3001\u5404\u30D6\u30ED\u30C3\u30AF\u306E\u300C\u3053\u308C\u3092\u4FDD\u6301 / \u3053\u308C\u3092\u53D6\u308A\u6D88\u3057\u300D\uFF1B\u300Cdiff \u3092\u8868\u793A\u300D\u3067\u518D\u5EA6\u958B\u3051\u307E\u3059\u3002\u30BF\u30A4\u30C8\u30EB\u53F3\u5074\u306E 2 \u30DC\u30BF\u30F3\u306F\u5168\u30D5\u30A1\u30A4\u30EB\u306B\u4E00\u62EC\u9069\u7528\u3055\u308C\u307E\u3059\u3002","panel.relJustNow":"\u305F\u3063\u305F\u4ECA","panel.relMinutes":"{n} \u5206\u524D","panel.relHours":"{n} \u6642\u9593\u524D","panel.relDays":"{n} \u65E5\u524D","panel.sessionsHead":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74 \xB7 {n}","panel.sessionsSearchHead":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74 \xB7 \u4E00\u81F4 {n}/{total}","panel.sessionSearchPlaceholder":"\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u30BF\u30A4\u30C8\u30EB\u3068\u672C\u6587\u3092\u691C\u7D22\u2026","panel.sessionSearchTitle":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74\u3092\u691C\u7D22\uFF1A\u30BF\u30A4\u30C8\u30EB\u306F\u5165\u529B\u3068\u540C\u6642\u306B\u7D5E\u308A\u8FBC\u307F\u30012 \u6587\u5B57\u4EE5\u4E0A\u3067\u672C\u6587\u3082\u691C\u7D22","panel.sessionSearchClear":"\u691C\u7D22\u3092\u30AF\u30EA\u30A2\uFF08Esc\uFF09","panel.sessionSearchMinChars":"2 \u6587\u5B57\u4EE5\u4E0A\u3067\u672C\u6587\u3082\u691C\u7D22\u3057\u307E\u3059","panel.sessionSearching":"\u672C\u6587\u3092\u691C\u7D22\u4E2D\u2026","panel.sessionSearchHits":"\u672C\u6587\u4E00\u81F4 {n} \u30BB\u30C3\u30B7\u30E7\u30F3","panel.sessionSearchTruncated":"\uFF08\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F\uFF09","panel.sessionContentHits":"\u672C\u6587 {n} \u7B87\u6240","panel.sessionSearchNoMatch":"\u4E00\u81F4\u3059\u308B\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u30BF\u30A4\u30C8\u30EB\u3068\u672C\u6587\u3092\u691C\u7D22\u3057\u307E\u3057\u305F\uFF09\u3002","panel.sessionNew":"\uFF0B \u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3","panel.loading":"\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","panel.sessionsEmptyAll":"\u307E\u3060\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093 \u2014 \u6700\u521D\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u308B\u3068\u4F5C\u6210\u3055\u308C\u307E\u3059\u3002","panel.sessionsEmptyWs":"\u3053\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u307E\u3060\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u300C\u4ED6\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u8868\u793A\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u304B\u3001\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u3063\u3066\u304F\u3060\u3055\u3044\u3002","panel.sessionItems":"{n} \u4EF6","panel.noWorkspace":"\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306A\u3057","panel.deleteConfirm":"\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F","panel.deleteConfirmTitle":"\u3082\u3046\u4E00\u5EA6\u30AF\u30EA\u30C3\u30AF\u3067\u78BA\u8A8D\uFF08\u5143\u306B\u623B\u305B\u307E\u305B\u3093\uFF09","panel.deleteTitle":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664","panel.forkBtn":"\u30D5\u30A9\u30FC\u30AF","panel.forkTitle":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u30D5\u30A9\u30FC\u30AF","panel.forkRound":"\u3053\u3053\u307E\u3067\u3092\u30D5\u30A9\u30FC\u30AF","panel.forkRoundTitle":"\u3053\u306E\u4F1A\u8A71\u3092\u3053\u306E\u30BF\u30FC\u30F3\u307E\u3067\u4FDD\u6301\u3057\u3066\u65B0\u3057\u3044\u5206\u5C90\u3092\u4F5C\u6210","panel.openingSession":"\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u3044\u3066\u3044\u307E\u3059\u2026","panel.scopeToWorkspace":"\u3053\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u307F","panel.scopeToAll":"\u4ED6\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u8868\u793A","panel.scopeTipAll":"\u3059\u3079\u3066\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u8868\u793A\u4E2D","panel.scopeTipWs":"\u3053\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u307F\u8868\u793A\u4E2D","panel.openingNew":"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u2026","panel.execPlanRunning":"\u30D7\u30E9\u30F3\u3092\u5B9F\u884C\u4E2D\u2026","panel.openPlanFile":"\u{1F4C4} \u30D7\u30E9\u30F3\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F","panel.runPlan":"\u25B6 \u3053\u306E\u30D7\u30E9\u30F3\u3092\u5B9F\u884C","panel.runPlanAccept":"\u25B6 \u5B9F\u884C\u3057\u3066\u5909\u66F4\u3092\u4FDD\u6301","panel.runPlanAcceptTitle":"\u30D7\u30E9\u30F3\u3092\u5B9F\u884C\u3057\u3001\u66F8\u304D\u8FBC\u307F\u3092\u81EA\u52D5\u3067\u4FDD\u6301\uFF08\u30EC\u30D3\u30E5\u30FC\u5F85\u3061\u306B\u3057\u306A\u3044\uFF09","panel.planSent":"Agent \u306B\u6E21\u3057\u307E\u3057\u305F\u2026","panel.planSaved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F \xB7 {file}","panel.planReadonly":"Plan \u30E2\u30FC\u30C9\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528 \u2014 \u30D5\u30A1\u30A4\u30EB\u306F\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u305B\u3093","panel.todosTitle":"ToDo {done}/{total}","panel.todoPending":"\u672A\u7740\u624B","panel.todoProgress":"\u9032\u884C\u4E2D","panel.todoDone":"\u5B8C\u4E86","panel.todoCancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB","panel.askSubmit":"\u78BA\u8A8D","panel.askMulti":"\uFF08\u8907\u6570\u9078\u629E\u53EF\uFF09","panel.askNeedAll":"\u3059\u3079\u3066\u306E\u8CEA\u554F\u306B\u56DE\u7B54\u3057\u3066\u304F\u3060\u3055\u3044","panel.askAnswered":"\u56DE\u7B54\u6E08\u307F","panel.askError":"\u9078\u629E\u80A2\u306E\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F","panel.askCancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\uFF08\u30BF\u30FC\u30F3\u7D42\u4E86\uFF09","panel.askRecommended":"\u63A8\u5968","panel.queueTitle":"\u30AD\u30E5\u30FC {n} \u4EF6","panel.queuePausedTip":"\u4E00\u6642\u505C\u6B62\u4E2D \xB7 \u300C\u518D\u958B\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9001\u4FE1","panel.queueAutoTip":"\u73FE\u5728\u306E\u30BF\u30FC\u30F3\u7D42\u4E86\u5F8C\u306B\u81EA\u52D5\u9001\u4FE1","panel.resume":"\u518D\u958B","panel.resumeTitle":"\u81EA\u52D5\u9001\u4FE1\u3092\u518D\u958B\uFF1A\u30A2\u30A4\u30C9\u30EB\u6642\u306B\u6B21\u306E\u9805\u76EE\u3092\u3059\u3050\u9001\u4FE1","panel.clear":"\u30AF\u30EA\u30A2","panel.clearQueueTitle":"\u30AD\u30E5\u30FC\u3092\u30AF\u30EA\u30A2\uFF08\u5B9F\u884C\u4E2D\u306E\u30BF\u30FC\u30F3\u306B\u306F\u5F71\u97FF\u3057\u307E\u305B\u3093\uFF09","panel.runNow":"\u3059\u3050\u5B9F\u884C","panel.runNowTitle":"\u73FE\u5728\u306E\u30BF\u30FC\u30F3\u3092\u4E2D\u65AD\u3057\u3001\u3053\u306E\u9805\u76EE\u3092\u3059\u3050\u5B9F\u884C\uFF08\u4ED6\u306E\u30AD\u30E5\u30FC\u306F\u6B8B\u3059\uFF09","panel.runNowStatus":"\u3059\u3050\u5B9F\u884C\u3092\u8981\u6C42\u3057\u307E\u3057\u305F\u2026","panel.edit":"\u7DE8\u96C6","panel.editTitle":"\u5165\u529B\u6B04\u306B\u623B\u3057\u3066\u7DE8\u96C6","panel.removeTitle":"\u30AD\u30E5\u30FC\u304B\u3089\u3053\u306E\u9805\u76EE\u3092\u524A\u9664","panel.retrieved":"\u30AD\u30E5\u30FC\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53D6\u308A\u623B\u3057\u307E\u3057\u305F","panel.resuming":"\u30AD\u30E5\u30FC\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u518D\u958B\u3057\u3066\u3044\u307E\u3059\u2026","panel.queued":"\u30AD\u30E5\u30FC\u306B\u8FFD\u52A0 \xB7 \u73FE\u5728\u306E\u30BF\u30FC\u30F3\u7D42\u4E86\u5F8C\u306B\u9001\u4FE1","panel.searching":"\u30A6\u30A7\u30D6\u691C\u7D22\u4E2D\u2026","panel.running":"\u5B9F\u884C\u4E2D\u2026","panel.stopRequested":"\u505C\u6B62\u3092\u8981\u6C42\u3057\u307E\u3057\u305F","panel.noEditorSelection":"\u958B\u3044\u3066\u3044\u308B\u30A8\u30C7\u30A3\u30BF\u304C\u306A\u3044\u305F\u3081\u3001\u9078\u629E\u7BC4\u56F2\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093","panel.noSelection":"\u5148\u306B\u30A8\u30C7\u30A3\u30BF\u3067\u30B3\u30FC\u30C9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044","panel.selectionRef":"# \u53C2\u7167\uFF1A{path}:{start}-{end}","panel.fileRef":"{n} \u4EF6\u3092\u53C2\u7167\u3057\u307E\u3057\u305F","panel.selectionToken":"#selection {path}:{start}-{end}\uFF08{kind}\u3001{n} \u884C\uFF09","panel.kindSelection":"\u9078\u629E\u7BC4\u56F2","panel.kindFull":"\u5168\u6587","panel.done":"\u5B8C\u4E86","panel.unknownError":"\u4E0D\u660E\u306A\u30A8\u30E9\u30FC","panel.error":"\u30A8\u30E9\u30FC","panel.queueFailed":"\u30AD\u30E5\u30FC\u3078\u306E\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F","store.untitled":"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3","cross.execPlan":"\u25B6 \u30D7\u30E9\u30F3\u3092\u5B9F\u884C","cross.execPlanAccept":"\u25B6 \u30D7\u30E9\u30F3\u3092\u5B9F\u884C\u3057\u3066\u5909\u66F4\u3092\u4FDD\u6301","ext.keepHunk":"$(check) \u3053\u308C\u3092\u4FDD\u6301\uFF08+{add} -{del}\uFF09","ext.revertHunk":"$(discard) \u3053\u308C\u3092\u53D6\u308A\u6D88\u3057","ext.viewDiff":"$(diff) \u5168\u4F53\u306E diff \u3092\u8868\u793A","ext.keepFile":"$(check-all) \u3059\u3079\u3066\u4FDD\u6301\uFF08+{add} -{del}\uFF09","ext.revertFile":"$(discard) \u3059\u3079\u3066\u53D6\u308A\u6D88\u3057","ext.diffTitle":"Luban \u306E\u5909\u66F4: {file}\uFF08+{add} -{del}\uFF09","ext.noPending":"\u30EC\u30D3\u30E5\u30FC\u5F85\u3061\u306E\u5909\u66F4\u306F\u3042\u308A\u307E\u305B\u3093: {path}","ext.hunkGone":"{hunk} \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u5909\u66F4\u304C\u79FB\u52D5\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF09","ext.unknownAction":"\u4E0D\u660E\u306A\u64CD\u4F5C: {action}","ext.noReviewFile":"\u30EC\u30D3\u30E5\u30FC\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093","ext.removedGhost":" <- {n} \u884C\u3092\u524A\u9664: {text}","ext.actionFailed":"\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F","ext.reviewWarn":"Luban \u30EC\u30D3\u30E5\u30FC: {msg}","ext.queueFull":"\u30AD\u30E5\u30FC\u304C\u3044\u3063\u3071\u3044\u3067\u3059\uFF08\u6700\u5927 {n} \u4EF6\uFF09\u3002\u7D42\u4E86\u3059\u308B\u304B\u30AF\u30EA\u30A2\u3057\u3066\u304B\u3089\u306B\u3057\u3066\u304F\u3060\u3055\u3044","ext.queueEmpty":"\u7A7A\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u305F\u3081\u30AD\u30E5\u30FC\u306B\u8FFD\u52A0\u3057\u307E\u305B\u3093\u3067\u3057\u305F","ext.addSelectionNone":"\u30A8\u30C7\u30A3\u30BF\u3067\u9078\u629E\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u53C2\u7167\u3092\u633F\u5165\u3057\u307E\u305B\u3093\u3067\u3057\u305F","ext.queueMissing":"\u30AD\u30E5\u30FC\u306B\u305D\u306E\u9805\u76EE\u306F\u3042\u308A\u307E\u305B\u3093","ext.imgNoVision":"\u73FE\u5728\u306E\u30E2\u30C7\u30EB\u306F\u753B\u50CF\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u6DFB\u4ED8\u3092\u7121\u8996\u3057\u307E\u3057\u305F","ext.noSuchSession":"\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093: {id}","ext.sessionBusy":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u30D7\u30E9\u30F3\u306E\u5B9F\u884C\u306F\u5F8C\u3067\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044","ext.editBusy":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u9001\u4FE1\u6E08\u307F\u30E1\u30C3\u30BB\u30FC\u30B8\u306F\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093","ext.editMissing":"\u7DE8\u96C6\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u6574\u7406\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09","ext.editEmpty":"\u7DE8\u96C6\u5F8C\u306E\u5185\u5BB9\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093","ext.forkPickTitle":"\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u30D5\u30A9\u30FC\u30AF","ext.forkPickPlaceholder":"\u5168\u4F53\u3092\u30B3\u30D4\u30FC\u3001\u307E\u305F\u306F\u5206\u5C90\u5143\u306E\u8CEA\u554F\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044","ext.forkWhole":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5168\u4F53\u3092\u30B3\u30D4\u30FC","ext.forkWholeDesc":"\u5168 {n} \u4EF6\u306E\u30EC\u30B3\u30FC\u30C9\u3092\u4FDD\u6301","ext.forkFromDesc":"\u3053\u306E\u8CEA\u554F\u304B\u3089\u5206\u5C90 \xB7 \u4EE5\u964D\u306E {n} \u4EF6\u306F\u5F15\u304D\u7D99\u304E\u307E\u305B\u3093","ext.forkBusy":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u73FE\u5728\u306E\u30BF\u30FC\u30F3\u304C\u7D42\u308F\u3063\u3066\u304B\u3089\u30D5\u30A9\u30FC\u30AF\u3057\u3066\u304F\u3060\u3055\u3044","ext.forkEmpty":"\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306B\u306F\u307E\u3060\u5206\u5C90\u3067\u304D\u308B\u5185\u5BB9\u304C\u3042\u308A\u307E\u305B\u3093","ext.forkSuffix":" \xB7 \u30D5\u30A9\u30FC\u30AF","ext.forkMissing":"\u30D5\u30A9\u30FC\u30AF\u5143\u306E\u8CEA\u554F\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u6574\u7406\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09","ext.cancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF1A\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u9589\u3058\u3089\u308C\u305F\u304B\u524A\u9664\u3055\u308C\u307E\u3057\u305F","ext.noPlan":"\u5B9F\u884C\u3059\u308B\u30D7\u30E9\u30F3\u304C\u3042\u308A\u307E\u305B\u3093\uFF1A\u30D7\u30E9\u30F3\u30D5\u30A1\u30A4\u30EB\u304C\u524A\u9664\u3055\u308C\u305F\u304B\u7A7A\u3067\u3059","ext.notPlanFile":"\u8AAD\u307F\u53D6\u308A\u53EF\u80FD\u306A\u30D7\u30E9\u30F3\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08Luban / Cursor\uFF09: {path}","ext.browserNotFound":`Chrome / Edge \u304C\u898B\u3064\u304B\u3089\u306A\u3044\u305F\u3081\u3001\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u3092\u4F7F\u3048\u307E\u305B\u3093\u3002Chrome \u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B\u304B\u3001\u8A2D\u5B9A luban.browser.chromePath \u3067\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u8A66\u3057\u305F\u5019\u88DC:
|
|
700
|
-
{paths}`,"ext.browserCheckRunning":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059\u2026","ext.browserCheckOk":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF1A{exe}\uFF08\u30C6\u30B9\u30C8\u64AE\u5F71 \u7D04 {chars} KB\uFF09","ext.browserCheckFailed":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u306E\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}","ext.cursorPlanPick":"\u5B9F\u884C\u3059\u308B Cursor \u30D7\u30E9\u30F3\u3092\u9078\u629E\uFF08~/.cursor/plans\uFF09","ext.cursorPlanNone":"Cursor \u30D7\u30E9\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF1A{dir} \u306F\u7A7A\u3067\u3059","ext.cursorPlanReadFail":"Cursor \u30D7\u30E9\u30F3\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","ext.cursorPlanBig":"Cursor \u30D7\u30E9\u30F3\u304C {n}KB \u3092\u8D85\u3048\u3066\u3044\u308B\u305F\u3081\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093","ext.cursorPlanNoPanel":"Luban \u30D1\u30CD\u30EB\u306E\u6E96\u5099\u304C\u3067\u304D\u3066\u3044\u307E\u305B\u3093\u3002\u30D1\u30CD\u30EB\u3092\u958B\u3044\u3066\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044","ext.stop.final":"\u5B8C\u4E86","ext.stop.maxRounds":"\u30E9\u30A6\u30F3\u30C9\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F","ext.stop.timeout":"\u6642\u9593\u4E88\u7B97\u3092\u8D85\u904E\u3057\u307E\u3057\u305F","ext.stop.context":"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u4E88\u7B97\u3092\u4F7F\u3044\u5207\u308A\u307E\u3057\u305F","ext.stop.loop":"\u7E70\u308A\u8FD4\u3057\u547C\u3073\u51FA\u3057\u3092\u691C\u51FA","ext.stop.errors":"\u30C4\u30FC\u30EB\u306E\u9023\u7D9A\u30A8\u30E9\u30FC","ext.stop.stopped":"\u505C\u6B62\u3057\u307E\u3057\u305F","ext.stop.noWrites":"\u3053\u306E\u30BF\u30FC\u30F3\u3067\u306F\u30D5\u30A1\u30A4\u30EB\u672A\u5909\u66F4","ext.summary.exec":"\u30D7\u30E9\u30F3\u5B9F\u884C\u6E08\u307F \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE \xB7 {s}s","ext.summary.chat":"\u5B8C\u4E86 \xB7 {model}","ext.summary.plan":"\u30D7\u30E9\u30F3\u6E96\u5099\u5B8C\u4E86 \xB7 \u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30C4\u30FC\u30EB {n} \u56DE \xB7 {s}s","ext.summary.done":"\u5B8C\u4E86 \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE \xB7 {s}s","ext.summary.fallback":"\uFF08\u300C{reason}\u300D\u306B\u3088\u308A\u30BF\u30FC\u30F3\u7D42\u4E86\u3001\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE\u3001\u7DE0\u3081\u306E\u8981\u7D04\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09","ext.summary.fallbackShort":"\uFF08\u300C{reason}\u300D\u306B\u3088\u308A\u30BF\u30FC\u30F3\u7D42\u4E86\u3001\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE\uFF09","ext.summary.noWrites":"\u3053\u306E\u30BF\u30FC\u30F3\u3067\u30C4\u30FC\u30EB\u306F\u5B9F\u884C\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u30D5\u30A1\u30A4\u30EB\u306F\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u6210\u529F\u3057\u305F write_file / replace_in_file \u306A\u3057\uFF09\u3002\u5F15\u304D\u7D9A\u304D\u7DE8\u96C6\u304C\u5FC5\u8981\u306A\u3089\u300C\u30D5\u30A1\u30A4\u30EB\u3092\u7D9A\u3051\u3066\u7DE8\u96C6\u300D\u3068\u6307\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7D50\u8AD6\u3060\u3051\u3067\u3088\u3051\u308C\u3070\u3053\u306E\u6CE8\u8A18\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\u307E\u305B\u3093\u3002","ext.prefixHint":"\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5 0% \xB7 \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067 KV \u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044","ext.prefixHintTip":"{n} \u56DE\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u3059\u3079\u3066\u518D\u8A08\u7B97\u3055\u308C\u3001\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5\u306B\u4E00\u5EA6\u3082\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30ED\u30FC\u30AB\u30EB vLLM \u3067\u306F --enable-prefix-caching \u3092\u8FFD\u52A0\uFF08Docker \u74B0\u5883\u5909\u6570 VLLM_ENABLE_PREFIX_CACHING=1\uFF1Bvllm serve --help \u3092\u78BA\u8A8D\uFF09\uFF1BSGLang \u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u6709\u52B9\uFF1BOllama \u306F\u975E\u5BFE\u5FDC\u3002\u6709\u52B9\u5316\u5F8C\u306F\u3053\u306E\u884C\u306B\u300C\u30AD\u30E3\u30C3\u30B7\u30E5 N%\u300D\u3068\u8868\u793A\u3055\u308C\u307E\u3059\u3002","ext.inlineOn":"Luban Tab \u88DC\u5B8C\u3092\u6709\u52B9\u306B\u3057\u307E\u3057\u305F","ext.inlineOff":"Luban Tab \u88DC\u5B8C\u3092\u7121\u52B9\u306B\u3057\u307E\u3057\u305F","ext.agentDone":"Agent \u5B8C\u4E86 \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE","ext.askNeeded":"Luban \u306E\u9078\u629E\u304C\u5FC5\u8981\u3067\u3059\uFF1A{detail}","ext.askGoChoose":"\u9078\u629E\u3059\u308B","ext.configReloaded":"Provider \u8A2D\u5B9A\u3092\u518D\u8AAD\u307F\u8FBC\u307F: \u30E2\u30C7\u30EB {models} \xB7 \u30B9\u30AD\u30EB {skills}","ext.mcpNote":" \xB7 MCP: \u30B5\u30FC\u30D0\u30FC {servers} / \u30C4\u30FC\u30EB {tools}","ext.mcpFail":" \xB7 MCP \u306E\u518D\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557: {msg}","ext.newSessionNotice":"Luban: \u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3057\u307E\u3057\u305F","ext.addFileNoView":"Luban \u30C1\u30E3\u30C3\u30C8\u30D1\u30CD\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3002\u5148\u306B Luban \u30B5\u30A4\u30C9\u30D0\u30FC\u3092\u958B\u3044\u3066\u304F\u3060\u3055\u3044\u3002","ext.agentPrompt":"\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306B\u4F55\u3092\u3055\u305B\u307E\u3059\u304B\uFF1F\uFF08\u30B3\u30FC\u30C9\u306E\u7DE8\u96C6\uFF0F\u751F\u6210\uFF09","ext.hubPanelTitle":"\u8A2D\u5B9A\u3068\u4F7F\u7528\u91CF","ext.providerTimeout":"\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF0815s\uFF09","ext.providerBadJson":"\u5FDC\u7B54\u304C JSON \u3067\u306F\u3042\u308A\u307E\u305B\u3093: {head}","ext.providerBaseUrl":"baseUrl \u304C\u7A7A\u3067\u3059","ext.providerNeedModel":"\u30C6\u30B9\u30C8\u524D\u306B\u30E2\u30C7\u30EB id \u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044","ext.providerNeedKey":"API key \u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30D1\u30CD\u30EB\u3067\u5165\u529B\u3059\u308B\u304B apiKeyEnv \u3092\u8A2D\u5B9A\uFF09","ext.configMissing":"\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093 \u2014 \u5148\u306B\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","ext.saveFailed":"\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {msg}","ext.generalMissing":"\u8A2D\u5B9A\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093: {key}","ext.generalBadBool":"\u300C{key}\u300D\u306F\u30D6\u30FC\u30EB\u5024\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadLanguage":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E\u306F auto / en / zh-cn / ja \u306E\u307F\u3067\u3059","ext.generalBadEnum":"\u300C{key}\u300D\u306F {values} \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadNumber":"\u300C{key}\u300D\u306F\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadMin":"\u300C{key}\u300D\u306F {min} \u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadMax":"\u300C{key}\u300D\u306F {max} \u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalSaveFailed":"\u4E00\u822C\u8A2D\u5B9A\u306E\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {msg}","ext.openDirFailed":"\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u3051\u307E\u305B\u3093: {msg}","validate.providerEmpty":"Provider id \u3092\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093","validate.pos":"provider\u300C{id}\u300D","validate.untitled":"\uFF08\u540D\u79F0\u672A\u8A2D\u5B9A\uFF09","validate.idChars":"{pos}: id \u306B\u4F7F\u3048\u308B\u306E\u306F\u82F1\u6570\u5B57\u30FB\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u30FB\u30CF\u30A4\u30D5\u30F3\u306E\u307F\u3067\u3059","validate.idDup":"{pos}: id \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059","validate.baseUrl":"{pos}: baseUrl \u306F http:// \u307E\u305F\u306F https:// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.modelIdEmpty":"{pos}: \u30E2\u30C7\u30EB id \u3092\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093","validate.modelIdDup":"{pos}: \u30E2\u30C7\u30EB id\u300C{id}\u300D\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059","validate.maxIn":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E maxInputTokens \u306F\u6B63\u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.maxOut":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E maxOutputTokens \u306F\u6B63\u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.noModels":"{pos}: \u5C11\u306A\u304F\u3068\u3082 1 \u3064\u306E\u30E2\u30C7\u30EB\u304C\u5FC5\u8981\u3067\u3059","validate.webUrl":"{pos}: webSearch.baseUrl \u306F http:// \u307E\u305F\u306F https:// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webCount":"{pos}: webSearch.count \u306F 1\u301C50 \u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webEngine":"{pos}: webSearch.engine \u306F deepseek \u307E\u305F\u306F bing \u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webDisabled":"{pos}: webSearch.disabled \u306F\u30D6\u30FC\u30EB\u5024\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.thinkShape":'{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: { "default": "off", "on": {...}, "off": {...} }\uFF09',"validate.thinkTier":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.thinkReserved":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u3067\u30D7\u30ED\u30C8\u30B3\u30EB\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093: {keys}","validate.thinkTooLong":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u304C {n} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059","validate.thinkEmpty":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking \u306B\u306F on / off \u306E\u5C11\u306A\u304F\u3068\u3082\u4E00\u65B9\u304C\u5FC5\u8981\u3067\u3059","validate.needProvider":"\u5C11\u306A\u304F\u3068\u3082 1 \u3064\u306E provider \u304C\u5FC5\u8981\u3067\u3059","usage.today":"\u4ECA\u65E5","usage.7d":"\u76F4\u8FD1 7 \u65E5","usage.30d":"\u76F4\u8FD1 30 \u65E5","usage.all":"\u3059\u3079\u3066","dash.title":"Token \u4F7F\u7528\u91CF","dash.statusReady":"\u6E96\u5099\u5B8C\u4E86","dash.refresh":"\u66F4\u65B0","dash.refreshTitle":"\u53F0\u5E33\u3092\u518D\u8AAD\u307F\u8FBC\u307F","dash.emptyA":"\u307E\u3060\u8A18\u9332\u304C\u3042\u308A\u307E\u305B\u3093\u3002","dash.emptyB":"\u6700\u521D\u306E\u30BF\u30FC\u30F3\u5F8C\u306B\u8868\u793A\u3055\u308C\u307E\u3059 \u2014 \u5404\u30BF\u30FC\u30F3\u306E token \u5408\u8A08\u304C\u30ED\u30FC\u30AB\u30EB\u53F0\u5E33\u306B\u8FFD\u8A18\u3055\u308C\u307E\u3059\u3002","dash.byModel":"\u30E2\u30C7\u30EB\u5225","dash.byDay":"\u65E5\u5225","dash.byMode":"\u30E2\u30FC\u30C9\u5225","dash.recent":"\u6700\u8FD1\u306E\u8A18\u9332","dash.thModel":"\u30E2\u30C7\u30EB","dash.thRequests":"\u30EA\u30AF\u30A8\u30B9\u30C8","dash.thInput":"\u5165\u529B","dash.thOutput":"\u51FA\u529B","dash.thTotal":"\u5408\u8A08","dash.thCache":"\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8","dash.thShare":"\u5272\u5408","dash.thMode":"\u30E2\u30FC\u30C9","dash.thTurns":"\u30BF\u30FC\u30F3","dash.thTime":"\u6642\u523B","dash.openDir":"\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304F","dash.dirTitle":"\u53F0\u5E33\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA","dash.foot":"Token \u6570\u306E\u307F\u96C6\u8A08\uFF1B\u8CBB\u7528\u306F\u63A8\u5B9A\u3057\u307E\u305B\u3093","dash.modeExecute":"\u30D7\u30E9\u30F3\u5B9F\u884C","dash.modeUnknown":"\u4E0D\u660E","dash.loading":"\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","dash.turns":"\u30BF\u30FC\u30F3","dash.requests":"\u30EA\u30AF\u30A8\u30B9\u30C8","dash.input":"\u5165\u529B","dash.output":"\u51FA\u529B","dash.total":"\u5408\u8A08","dash.cache":"\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8","dash.partial":"\u4E2D\u65AD\u30BF\u30FC\u30F3 {n} \u4EF6\u3092\u88DC\u8A18","dash.perTurn":"1 \u30BF\u30FC\u30F3\u3042\u305F\u308A {n}","dash.estTurns":"\u63A8\u5B9A\u30BF\u30FC\u30F3 {n} \u4EF6\u3092\u542B\u3080","dash.cached":"\u30AD\u30E3\u30C3\u30B7\u30E5\u7531\u6765 {n}","dash.models":"\u30E2\u30C7\u30EB {n}","dash.unknownModel":"\u4E0D\u660E\u306A\u30E2\u30C7\u30EB","dash.days":"{n} \u65E5 \xB7 \u9752=\u5165\u529B \u7DD1=\u51FA\u529B","dash.dayTip":"{day} \xB7 \u2191{input} \u2193{output} \xB7 \u30EA\u30AF\u30A8\u30B9\u30C8 {n} \u56DE","dash.recentCount":"{n} \u4EF6\uFF08\u6700\u5927 50\uFF09","dash.interrupted":" \xB7 \u4E2D\u65AD","dash.recordOff":"\u4F7F\u7528\u91CF\u306E\u8A18\u9332\u306F\u30AA\u30D5\u3067\u3059\uFF08luban.usage.record=false\uFF09\u2014 \u3053\u306E\u30BF\u30FC\u30F3\u4EE5\u964D\u306F\u65B0\u3057\u3044\u8A18\u9332\u3092\u66F8\u304D\u307E\u305B\u3093\u3002","dash.badLines":"\u53F0\u5E33\u306E\u8AAD\u3081\u306A\u3044\u884C {n} \u4EF6\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002","dash.noRecords":"\u8A18\u9332\u306A\u3057","dash.statusTurns":"{n} \u30BF\u30FC\u30F3","hub.title":"\u8A2D\u5B9A\u3068\u4F7F\u7528\u91CF","hub.navGeneral":"\u4E00\u822C","hub.navSettings":"\u8A2D\u5B9A","hub.navUsage":"\u4F7F\u7528\u91CF","hub.navGeneralTitle":"Luban \u8A2D\u5B9A\uFF08\u8A00\u8A9E / \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 / Agent \u306A\u3069\uFF09","hub.navSettingsTitle":"Provider \u8A2D\u5B9A\uFF08\u30E2\u30C7\u30EB / base URL / API \u30AD\u30FC\uFF09","hub.navUsageTitle":"Token \u4F7F\u7528\u91CF\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\uFF08\u30E2\u30C7\u30EB / \u65E5 / \u30E2\u30FC\u30C9\u5225\uFF09","general.title":"\u4E00\u822C","general.statusReady":"\u6E96\u5099\u5B8C\u4E86","general.save":"\u4FDD\u5B58","general.unsaved":"\u672A\u4FDD\u5B58","general.saving":"\u4FDD\u5B58\u4E2D\u2026","general.loaded":"\u8AAD\u307F\u8FBC\u307F\u6E08\u307F","general.saved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F","general.invalid":"\u691C\u8A3C\u30A8\u30E9\u30FC {n} \u4EF6","general.groupUi":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9","general.groupContext":"\u81EA\u52D5\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8","general.groupSession":"\u30BB\u30C3\u30B7\u30E7\u30F3","general.groupAgent":"Agent","general.groupTools":"\u30C4\u30FC\u30EB\u3068\u5B89\u5168","general.groupBrowser":"\u30D6\u30E9\u30A6\u30B6\u30FC\uFF08\u62E1\u5F35\u8A2D\u5B9A\uFF09","general.groupReview":"\u30EC\u30D3\u30E5\u30FC","general.groupInline":"Tab \u88DC\u5B8C","general.groupUsage":"\u4F7F\u7528\u91CF","general.language":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E","general.languageTitle":"Luban \u306E UI \u306E\u307F\u306B\u5F71\u97FF\u3057\u3001\u30A8\u30C7\u30A3\u30BF\u306E\u8868\u793A\u8A00\u8A9E\u306F\u5909\u308F\u308A\u307E\u305B\u3093","general.languageNote":"Luban \u81EA\u8EAB\u306E UI \u306E\u307F\u306B\u5F71\u97FF\u3057\u307E\u3059 \u2014 VS Code / VSCodium \u306E\u8868\u793A\u8A00\u8A9E\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002\u30B3\u30DE\u30F3\u30C9\u30D1\u30EC\u30C3\u30C8\u306E\u30BF\u30A4\u30C8\u30EB\u306F\u30A8\u30C7\u30A3\u30BF\u8A00\u8A9E\u306B\u5F93\u3044\u307E\u3059\u3002","general.langAuto":"VS Code \u306E\u8868\u793A\u8A00\u8A9E\u306B\u5408\u308F\u305B\u308B","general.langZhCn":"\u7B80\u4F53\u4E2D\u6587","general.langEn":"English","general.langJa":"\u65E5\u672C\u8A9E","general.autoOpen":"\u8D77\u52D5\u6642\u306B\u30B5\u30A4\u30C9\u30D0\u30FC\u3092\u958B\u304F","general.contextAutoFile":"\u73FE\u5728\u306E\u30A8\u30C7\u30A3\u30BF\u30B3\u30FC\u30C9\u3092\u6DFB\u4ED8","general.contextMaxChars":"\u6587\u5B57\u6570\u4E0A\u9650","general.contextWindowLines":"\u30A6\u30A3\u30F3\u30C9\u30A6\u884C\u6570\uFF08\u9078\u629E\u306A\u3057\uFF09","general.sessionHistoryMax":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74\u306E\u4E0A\u9650","general.sessionMemoryEnabled":"\u30DE\u30EB\u30C1\u30BF\u30FC\u30F3\u8A18\u61B6","general.sessionMemoryMaxTurns":"\u8A18\u61B6\u30BF\u30FC\u30F3\u6570","general.sessionMemoryMaxChars":"\u8A18\u61B6\u306E\u6587\u5B57\u4E88\u7B97","general.agentMaxRounds":"\u30EA\u30AF\u30A8\u30B9\u30C8\u30E9\u30A6\u30F3\u30C9\u4E0A\u9650\uFF080 = \u7121\u5236\u9650\uFF09","general.agentMaxMinutes":"\u30A6\u30A9\u30FC\u30EB\u30AF\u30ED\u30C3\u30AF\u4E0A\u9650\uFF08\u5206\uFF09","general.agentSubagentRounds":"\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30E9\u30A6\u30F3\u30C9\u6570\uFF080 = \u30AA\u30D5\uFF09","general.agentSubagentMinutes":"\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u5236\u9650\u6642\u9593\uFF08\u5206\u30010 = \u30BF\u30FC\u30F3\u306B\u8FFD\u5F93\uFF09","general.agentSmallWindow":"\u5C0F\u30A6\u30A3\u30F3\u30C9\u30A6\u30E2\u30FC\u30C9","general.smallWindowAuto":"\u81EA\u52D5\uFF08\u30E2\u30C7\u30EB\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u3088\u308B\uFF09","general.smallWindowOn":"\u5F37\u5236\u30AA\u30F3","general.smallWindowOff":"\u30AA\u30D5","general.agentVerbosity":"\u8A73\u7D30\u5EA6","general.verbosityConcise":"\u7C21\u6F54\uFF08\u4E00\u884C\uFF09","general.verbosityNormal":"\u6A19\u6E96\uFF08\u7C21\u6F54\u30EC\u30DD\u30FC\u30C8\uFF09","general.verbosityDetailed":"\u8A73\u7D30\uFF08\u69CB\u9020\u5316\uFF09","general.contextWorkset":"\u5909\u66F4\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u3067\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B","general.searchMaxFiles":"search_code \u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u4E0A\u9650","general.planStrictReadOnly":"Plan \u30E2\u30FC\u30C9\u3067\u53B3\u683C\u306A\u8AAD\u307F\u53D6\u308A\u5C02\u7528","general.fsAllowOutside":"\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5916\u306E\u30D1\u30B9\u3092\u8A31\u53EF","general.diagAfterEdit":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B\u8A3A\u65AD\u3092\u81EA\u52D5\u8AAD\u307F\u8FBC\u307F","general.browserEnabled":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u30C4\u30FC\u30EB\u3092\u6709\u52B9\u5316","general.browserHeadless":"\u30D8\u30C3\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\uFF08\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u51FA\u3055\u306A\u3044\uFF09","general.browserViewportWidth":"\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u5E45\uFF08320\u301C4096\uFF09","general.browserViewportHeight":"\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u9AD8\u3055\uFF08240\u301C4096\uFF09","general.browserIdleTimeoutMs":"\u30A2\u30A4\u30C9\u30EB\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08ms\uFF09","general.browserChromePath":"Chrome / Edge \u306E\u30D1\u30B9","general.browserChromePathPh":"\u7A7A\u6B04\u3067\u81EA\u52D5\u691C\u51FA\uFF08LUBAN_CHROME_PATH \u3082\u53C2\u7167\uFF09","general.browserNote":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30C4\u30FC\u30EB\uFF1A\u30DA\u30FC\u30B8\u3092\u958B\u304F / \u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u30C4\u30EA\u30FC / \u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8 / console / \u5931\u6557\u30EA\u30AF\u30A8\u30B9\u30C8\u3002\u30AF\u30EA\u30C3\u30AF\u3084\u5165\u529B\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u30ED\u30FC\u30AB\u30EB\u306E Chrome \u307E\u305F\u306F Edge \u304C\u5FC5\u8981\u3067\u3059\u3002\u30AA\u30D5\u306E\u3068\u304D\u306F\u30C4\u30FC\u30EB\u304C\u30E2\u30C7\u30EB\u306E\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\u3002","general.groupComputer":"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u64CD\u4F5C\uFF08macOS / Windows\uFF09","general.computerEnabled":"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u64CD\u4F5C\u30C4\u30FC\u30EB\u3092\u6709\u52B9\u5316","general.computerConfirm":"\u30DE\u30A6\u30B9 / \u30AD\u30FC\u30DC\u30FC\u30C9\u64CD\u4F5C\u306E\u524D\u306B 1 \u56DE\u78BA\u8A8D","general.computerScreenshotWidth":"\u64AE\u5F71\u306E\u6700\u5927\u5E45\uFF08320\u301C4096\uFF09","general.computerNote":"\u64AE\u5F71 / \u753B\u9762\u5185\u30C6\u30AD\u30B9\u30C8\u306E\u8A8D\u8B58\uFF08Windows \u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3001\u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8\u3092\u898B\u308B\u7D4C\u8DEF\u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\uFF09/ \u30A6\u30A3\u30F3\u30C9\u30A6\u4E00\u89A7 / \u30AF\u30EA\u30C3\u30AF / \u5165\u529B / \u30AD\u30FC / \u30B9\u30AF\u30ED\u30FC\u30EB / \u30C9\u30E9\u30C3\u30B0\u3002macOS \u3068 Windows \u3067\u4F7F\u7528\u53EF\u3001Plan \u30E2\u30FC\u30C9\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002macOS \u3067\u306F\u30DB\u30B9\u30C8 App \u306B\u300C\u753B\u9762\u53CE\u9332\u300D\u3068\u300C\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u300D\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3001\u7121\u3044\u3068\u64AE\u5F71\u306F\u5931\u6557\u3057\u30AF\u30EA\u30C3\u30AF\u306F\u30B7\u30B9\u30C6\u30E0\u306B\u7834\u68C4\u3055\u308C\u307E\u3059\u3002Windows \u306F\u6A29\u9650\u4E0D\u8981\u3067\u3059\u304C\u3001\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u4E2D\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u306F\u901A\u5E38\u30D7\u30ED\u30BB\u30B9\u306E\u5165\u529B\u3092\u7121\u8996\u3057\u307E\u3059\u3002","general.reviewAutoOpenDiff":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B diff \u3092\u81EA\u52D5\u8868\u793A","general.inlineEnabled":"Tab \u88DC\u5B8C\u3092\u6709\u52B9\u5316","general.inlineMaxPerMinute":"1 \u5206\u3042\u305F\u308A\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u4E0A\u9650","general.inlineDebounceMs":"\u30C7\u30D0\u30A6\u30F3\u30B9\u9045\u5EF6\uFF08ms\uFF09","general.usageRecord":"Token \u4F7F\u7528\u91CF\u3092\u8A18\u9332","general.errLanguage":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E\u306F auto / en / zh-cn / ja \u306E\u307F\u3067\u3059","general.errEnum":"\u300C{key}\u300D\u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059","general.errNumber":"\u300C{key}\u300D\u306F\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","general.errMin":"\u300C{key}\u300D\u306F {min} \u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","general.errMax":"\u300C{key}\u300D\u306F {max} \u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","settings.title":"Provider \u8A2D\u5B9A","settings.statusReady":"\u6E96\u5099\u5B8C\u4E86","settings.save":"\u4FDD\u5B58","settings.defaultModel":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30E2\u30C7\u30EB","settings.defaultModelTitle":"\u30D1\u30CD\u30EB\u306E\u30E2\u30C7\u30EB\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3\u306E\u521D\u671F\u9078\u629E","settings.defaultModelNote":"\u30E2\u30C7\u30EB id \u304C provider \u9593\u3067\u91CD\u8907\u3059\u308B\u5834\u5408\u306F\u81EA\u52D5\u3067 <code>providerId::modelId</code> \u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u4ED8\u304D\u307E\u3059\u3002API \u30AD\u30FC\u306F VS Code SecretStorage \u306B\u4FDD\u5B58\u3055\u308C\u3001\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u306F\u66F8\u304D\u307E\u305B\u3093\u3002","settings.addProvider":"+ provider \u3092\u8FFD\u52A0","settings.openConfig":"providers.json \u3092\u958B\u304F","settings.unsaved":"\u672A\u4FDD\u5B58","settings.firstModel":"\uFF08\u6700\u521D\u306E\u30E2\u30C7\u30EB\uFF09","settings.noModel":"\uFF08\u30E2\u30C7\u30EB\u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\uFF09","settings.modelIdPh":"model id\uFF08\u5FC5\u9808\uFF09","settings.modelNamePh":"\u8868\u793A\u540D\uFF08\u4EFB\u610F\uFF09","settings.toolCallingTitle":"toolCalling\uFF1AAgent \u30E2\u30FC\u30C9\u3067\u4F7F\u3046\u306B\u306F\u30C1\u30A7\u30C3\u30AF\u5FC5\u9808","settings.visionTitle":"vision\uFF1A\u30E2\u30C7\u30EB\u304C\u753B\u50CF\u5165\u529B\u306B\u5BFE\u5FDC\uFF08\u30C1\u30E3\u30C3\u30C8\u306B\u753B\u50CF\u3092\u8CBC\u308A\u4ED8\u3051\uFF09","settings.thinkTitle":"thinking\uFF1A\u601D\u8003\u30C6\u30A3\u30A2\u3002on / off \u306E JSON \u306F\u305D\u306E\u307E\u307E\u30EA\u30AF\u30A8\u30B9\u30C8\u672C\u6587\u306B\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3059\uFF08\u4F8B: chat_template_kwargs.enable_thinking\u3001reasoning\u3001think\uFF09\uFF1B\u7A7A\u306A\u3089\u305D\u306E\u30C6\u30A3\u30A2\u306F\u4F55\u3082\u9001\u308A\u307E\u305B\u3093\u3002\u300C\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5165\u529B\u300D\u3067\u4E00\u822C\u7684\u306A\u65B9\u8A00\u3092\u751F\u6210\u3067\u304D\u307E\u3059","settings.thinkDefault":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30C6\u30A3\u30A2","settings.thinkDefaultOff":"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF1A\u30AA\u30D5","settings.thinkDefaultOn":"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF1A\u30AA\u30F3","settings.thinkPreset":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5165\u529B\u2026","settings.thinkPresetQwen":"Qwen / vLLM","settings.thinkPresetDeepseek":"DeepSeek","settings.thinkPresetOpenrouter":"OpenRouter","settings.thinkPresetAnthropic":"Anthropic \u4E92\u63DB","settings.thinkPresetOllama":"Ollama","settings.thinkPresetOverwrite":"on / off \u306B\u65E2\u306B\u5185\u5BB9\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F","settings.thinkOn":"\u30AA\u30F3\uFF08on\uFF09","settings.thinkOff":"\u30AA\u30D5\uFF08off\uFF09","settings.thinkOnPh":'\u7A7A = \u9001\u4FE1\u3057\u306A\u3044\u3002\u4F8B: { "chat_template_kwargs": { "enable_thinking": true } }',"settings.thinkOffPh":'\u7A7A = \u9001\u4FE1\u3057\u306A\u3044\u3002\u4F8B: { "thinking": { "type": "disabled" } }',"settings.thinkBadJson":"{pos} \u30E2\u30C7\u30EB\u300C{id}\u300Dthinking.{tier} \u306F\u6B63\u3057\u3044 JSON \u3067\u306F\u3042\u308A\u307E\u305B\u3093","settings.thinkBadShape":"{pos} \u30E2\u30C7\u30EB\u300C{id}\u300Dthinking.{tier} \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u914D\u5217\u3084\u30B9\u30AB\u30E9\u30FC\u4E0D\u53EF\uFF09","settings.deleteModel":"\u3053\u306E\u30E2\u30C7\u30EB\u3092\u524A\u9664","settings.providerNamePh":"provider \u540D\uFF08\u4F8B: DeepSeek\uFF09","settings.deleteProvider":"provider \u3092\u524A\u9664","settings.idLabel":"id\uFF08\u4E00\u610F\uFF1B\u82F1\u6570\u5B57/_/-\uFF09","settings.apiKeyEnvLabel":"apiKeyEnv\uFF08\u4EFB\u610F\uFF09","settings.keyLabel":"API key\uFF08VS Code SecretStorage \u306B\u4FDD\u5B58\uFF09","settings.keyPhSaved":"\u4FDD\u5B58\u6E08\u307F \u2014 \u7A7A\u6B04\u306E\u307E\u307E\u306A\u3089\u5909\u66F4\u3057\u307E\u305B\u3093","settings.keyPh":"sk-\u2026\uFF08SecretStorage \u306E\u307F\u306B\u66F8\u304D\u8FBC\u307F\uFF09","settings.clearKey":"\u30AD\u30FC\u3092\u30AF\u30EA\u30A2","settings.test":"\u63A5\u7D9A\u30C6\u30B9\u30C8","settings.testing":"\u30C6\u30B9\u30C8\u4E2D\u2026\uFF08\u6700\u521D\u306E\u30E2\u30C7\u30EB\u3001max_tokens=1\uFF09","settings.fetchModels":"\u30E2\u30C7\u30EB\u3092\u53D6\u5F97","settings.fetching":"/models \u3092\u30EA\u30AF\u30A8\u30B9\u30C8\u4E2D\u2026","settings.modelsHead":"\u30E2\u30C7\u30EB\uFF08{n}\uFF09\xB7 id / \u8868\u793A\u540D / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.addModel":"+ \u30E2\u30C7\u30EB\u3092\u8FFD\u52A0","settings.errors":"\u4FEE\u6B63\u304C\u5FC5\u8981\u306A\u7B87\u6240\u304C {n} \u4EF6\u3042\u308A\u307E\u3059\uFF1A","settings.noProviders":"\u307E\u3060 provider \u304C\u3042\u308A\u307E\u305B\u3093 \u2014 \u4E0B\u306E\u300C+ provider \u3092\u8FFD\u52A0\u300D\u304B\u3089\u59CB\u3081\u3066\u304F\u3060\u3055\u3044\u3002","settings.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.builtin":"\u5185\u8535\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u8A2D\u5B9A\u3092\u4F7F\u7528\u4E2D\uFF1B\u4FDD\u5B58\u3059\u308B\u3068 {path} \u306B\u66F8\u304D\u8FBC\u307F\u307E\u3059","settings.loaded":"\u8AAD\u307F\u8FBC\u307F\u6E08\u307F","settings.saved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F \xB7 \u30E2\u30C7\u30EB {n}","settings.invalid":"\u554F\u984C\u304C {n} \u4EF6\u3042\u308A\u3001\u4FDD\u5B58\u3057\u3066\u3044\u307E\u305B\u3093","settings.testOk":"\u524D\u56DE\u306E\u30C6\u30B9\u30C8 OK \xB7 {ms}ms","settings.testFailed":"\u524D\u56DE\u306E\u30C6\u30B9\u30C8\u5931\u6557","settings.testOkResult":"\u2705 HTTP {status} \xB7 {ms}ms{reply}","settings.testFailResult":"\u274C {msg}","settings.fail":"\u5931\u6557","settings.fetchFail":"\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F","settings.fetched":"\u2705 \u30E2\u30C7\u30EB\u3092 {n} \u4EF6\u53D6\u5F97","settings.fetchedAdded":"\uFF1B\u65B0\u898F {n} \u4EF6\uFF08\u4FDD\u5B58\u3092\u5FD8\u308C\u305A\u306B\uFF09","settings.fetchedNone":"\uFF1B\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u306F\u3042\u308A\u307E\u305B\u3093","settings.keySet":"\u4FDD\u5B58\u6642\u306B SecretStorage \u3078\u66F8\u304D\u8FBC\u307F\u307E\u3059\uFF08\u30C7\u30A3\u30B9\u30AF\u306B\u306F\u66F8\u304D\u307E\u305B\u3093\uFF09","settings.keyClear":"\u4FDD\u5B58\u6642\u306B\u4FDD\u5B58\u6E08\u307F\u30AD\u30FC\u3092\u524A\u9664\u3057\u307E\u3059","settings.keySecret":"\u3059\u3067\u306B SecretStorage \u306B\u3042\u308A\u307E\u3059","settings.keyInline":"\u8A2D\u5B9A\u306B\u5E73\u6587 apiKey \u304C\u3042\u308A\u307E\u3059\uFF08\u4FDD\u5B58\u6642\u3082\u4FDD\u6301\uFF09","settings.keyEnv":"\u74B0\u5883\u5909\u6570 {env} \u3092\u4F7F\u7528\uFF08\u30AD\u30FC\u306F\u3053\u3053\u306B\u8868\u793A\u3055\u308C\u307E\u305B\u3093\uFF09","settings.keyNone":"\u30AD\u30FC\u672A\u8A2D\u5B9A","settings.unnamedModel":"\u540D\u79F0\u672A\u8A2D\u5B9A"}},n="zh-cn";function s(d){let f=String(d??"").toLowerCase();if(!f||f==="auto")return null;let p=f.slice(0,2);return p==="zh"?"zh-cn":p==="ja"?"ja":"en"}function o(){let d=typeof navigator<"u"&&navigator&&navigator.language||"";return/^zh/i.test(d)?"zh-cn":/^ja/i.test(d)?"ja":"en"}function r(d){return n=s(d)||o(),n}function i(){return n}function a(d,f,p){let h=s(d)||n,x=(e[h]||e["zh-cn"])[f];return x==null&&(x=e["zh-cn"][f]),x==null?f:(p&&(x=String(x).replace(/\{(\w+)\}/g,function(b,k){return p[k]==null?b:String(p[k])})),x)}function l(d,f){return a(n,d,f)}function c(d){return e["zh-cn"][d]!=null}let u={t:l,tIn:a,setLang:r,getLang:i,has:c,normalize:s,langs:["zh-cn","en","ja"]};typeof ho<"u"&&ho&&ho.exports&&(ho.exports=u),t&&(t.LubanI18n=u)})(typeof globalThis<"u"?globalThis:Zf)});var ep=Q((BS,hw)=>{hw.exports={name:"@luban-code/luban-code",displayName:"Luban",description:"%lubanDescription%",version:"1.66.0",license:"Apache-2.0",author:{name:"eppen (liuhualiang)",url:"https://github.com/eppen"},publisher:"liuhualiang",icon:"media/icon.png",homepage:"https://github.com/eppen/luban#readme",bugs:{url:"https://github.com/eppen/luban/issues"},keywords:["ai","agent","chat","coding-agent","qwen","deepseek","openai-compatible","mcp"],repository:{type:"git",url:"https://github.com/eppen/luban.git"},engines:{vscode:"^1.100.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView"],main:"./dist/extension.js",bin:{luban:"./dist/cli.js"},files:["dist/cli.js","dist/extension.js","package.json"],scripts:{build:"node scripts/build.js",watch:"node scripts/build.js --watch",package:"node scripts/build.js","vscode:prepublish":"node scripts/build.js",prepack:"node scripts/build.js",smoke:"node scripts/build.js && node scripts/smoke.js","test:skills":"node scripts/test-skills.js",cli:"node cli.js",vsix:"npx --yes @vscode/vsce@latest package --no-dependencies","test:general":"node scripts/test-general-settings.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:gamepad":"node scripts/test-gamepad.js"},capabilities:{untrustedWorkspaces:{supported:!0},virtualWorkspaces:!0},contributes:{commands:[{command:"luban.focusView",title:"%cmdFocusView%",category:"Luban"},{command:"luban.openPanel",title:"%cmdOpenPanel%",category:"Luban"},{command:"luban.reloadConfig",title:"%cmdReloadConfig%",category:"Luban"},{command:"luban.providerSettings",title:"%cmdProviderSettings%",category:"Luban"},{command:"luban.dashboard",title:"%cmdDashboard%",category:"Luban"},{command:"luban.agent",title:"%cmdAgent%",category:"Luban"},{command:"luban.openDiff",title:"%cmdOpenDiff%",category:"Luban"},{command:"luban.acceptHunk",title:"%cmdAcceptHunk%",category:"Luban"},{command:"luban.rejectHunk",title:"%cmdRejectHunk%",category:"Luban"},{command:"luban.acceptFile",title:"%cmdAcceptFile%",category:"Luban"},{command:"luban.rejectFile",title:"%cmdRejectFile%",category:"Luban"},{command:"luban.reviewAll",title:"%cmdReviewAll%",category:"Luban"},{command:"luban.revertAll",title:"%cmdRevertAll%",category:"Luban"},{command:"luban.newSession",title:"%cmdNewSession%",category:"Luban"},{command:"luban.sessionList",title:"%cmdSessionList%",category:"Luban"},{command:"luban.cursorPlan",title:"%cmdCursorPlan%",category:"Luban"},{command:"luban.mode.cycle",title:"%cmdModeCycle%",category:"Luban"},{command:"luban.addFileToChat",title:"%cmdAddFileToChat%",category:"Luban"},{command:"luban.addFolderToChat",title:"%cmdAddFolderToChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.inlineCompletion.toggle",title:"%cmdInlineToggle%",category:"Luban"},{command:"luban.diffAccept",title:"%cmdDiffAccept%",category:"Luban"},{command:"luban.diffReject",title:"%cmdDiffReject%",category:"Luban"},{command:"luban.openInBrowser",title:"%cmdOpenInBrowser%",category:"Luban"},{command:"luban.browserCheck",title:"%cmdBrowserCheck%",category:"Luban"}],menus:{"editor/title":[{command:"luban.diffAccept",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@1"},{command:"luban.diffReject",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@2"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"}],"webview/context":[{command:"luban.openInBrowser",when:"webviewSection == 'chat'"}],commandPalette:[{command:"luban.diffAccept",when:"luban.pendingReview > 0"},{command:"luban.diffReject",when:"luban.pendingReview > 0"},{command:"luban.addFileToChat",when:"false"},{command:"luban.addFolderToChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.openInBrowser",when:"false"}]},keybindings:[{command:"luban.focusView",key:"cmd+shift+l",mac:"cmd+shift+l",win:"ctrl+shift+l",linux:"ctrl+shift+l"},{command:"luban.newSession",key:"cmd+alt+n",mac:"cmd+alt+n",win:"ctrl+alt+n",linux:"ctrl+alt+n"},{command:"luban.sessionList",key:"cmd+alt+h",mac:"cmd+alt+h",win:"ctrl+alt+h",linux:"ctrl+alt+h"},{command:"luban.mode.cycle",key:"shift+tab",mac:"shift+tab",win:"shift+tab",linux:"shift+tab",when:"focusedView == 'luban.chatView'"},{command:"luban.addSelectionToChat",key:"cmd+alt+a",mac:"cmd+alt+a",win:"ctrl+alt+a",linux:"ctrl+alt+a",when:"editorHasSelection && editorTextFocus"}],viewsContainers:{activitybar:[{id:"luban",title:"Luban",icon:"media/icon.svg"}]},views:{luban:[{type:"webview",id:"luban.chatView",name:"Chat",contextualTitle:"Luban"}]},configuration:{title:"Luban",properties:{"luban.language":{type:"string",enum:["auto","en","zh-cn","ja"],enumDescriptions:["%cfgLanguageAuto%","%cfgLanguageEn%","%cfgLanguageZhCn%","%cfgLanguageJa%"],default:"auto",description:"%cfgLanguage%"},"luban.autoOpen":{type:"boolean",default:!0,description:"%cfgAutoOpen%"},"luban.context.autoFile":{type:"boolean",default:!0,description:"%cfgContextAutoFile%"},"luban.context.autoFileMaxChars":{type:"number",default:8e3,minimum:500,description:"%cfgContextAutoFileMaxChars%"},"luban.context.autoFileWindowLines":{type:"number",default:200,minimum:40,description:"%cfgContextAutoFileWindowLines%"},"luban.context.workset":{type:"boolean",default:!0,description:"%cfgContextWorkset%"},"luban.sessionHistory.max":{type:"number",default:50,minimum:1,description:"%cfgSessionHistoryMax%"},"luban.usage.record":{type:"boolean",default:!0,description:"%cfgUsageRecord%"},"luban.sessionMemory.enabled":{type:"boolean",default:!0,description:"%cfgSessionMemoryEnabled%"},"luban.sessionMemory.maxTurns":{type:"number",default:8,minimum:1,description:"%cfgSessionMemoryMaxTurns%"},"luban.sessionMemory.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgSessionMemoryMaxChars%"},"luban.agent.maxRounds":{type:"number",default:100,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:15,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.subagentRounds":{type:"number",default:24,minimum:0,description:"%cfgAgentSubagentRounds%"},"luban.agent.subagentMinutes":{type:"number",default:0,minimum:0,description:"%cfgAgentSubagentMinutes%"},"luban.agent.smallWindow":{type:"string",enum:["auto","on","off"],default:"auto",description:"%cfgAgentSmallWindow%"},"luban.agent.verbosity":{type:"string",enum:["concise","normal","detailed"],default:"normal",description:"%cfgAgentVerbosity%"},"luban.search.maxFiles":{type:"number",default:5e3,minimum:100,description:"%cfgSearchMaxFiles%"},"luban.browser.enabled":{type:"boolean",default:!1,description:"%cfgBrowserEnabled%"},"luban.browser.chromePath":{type:"string",default:"",description:"%cfgBrowserChromePath%"},"luban.browser.headless":{type:"boolean",default:!0,description:"%cfgBrowserHeadless%"},"luban.browser.viewportWidth":{type:"number",default:1280,minimum:320,maximum:4096,description:"%cfgBrowserViewportWidth%"},"luban.browser.viewportHeight":{type:"number",default:800,minimum:240,maximum:4096,description:"%cfgBrowserViewportHeight%"},"luban.browser.idleTimeoutMs":{type:"number",default:3e5,minimum:1e4,description:"%cfgBrowserIdleTimeout%"},"luban.computer.enabled":{type:"boolean",default:!1,description:"%cfgComputerEnabled%"},"luban.computer.confirm":{type:"boolean",default:!0,description:"%cfgComputerConfirm%"},"luban.computer.screenshotWidth":{type:"number",default:2048,minimum:320,maximum:4096,description:"%cfgComputerScreenshotWidth%"},"luban.plan.strictReadOnly":{type:"boolean",default:!0,description:"%cfgPlanStrictReadOnly%"},"luban.fs.allowOutsideWorkspace":{type:"boolean",default:!0,description:"%cfgFsAllowOutsideWorkspace%"},"luban.review.autoOpenDiff":{type:"boolean",default:!0,description:"%cfgReviewAutoOpenDiff%"},"luban.diagnostics.afterEdit":{type:"boolean",default:!0,description:"%cfgDiagAfterEdit%"},"luban.inlineCompletion.enabled":{type:"boolean",default:!1,description:"%cfgInlineEnabled%"},"luban.inlineCompletion.maxPerMinute":{type:"number",default:30,minimum:1,description:"%cfgInlineMaxPerMinute%"},"luban.inlineCompletion.debounceMs":{type:"number",default:250,minimum:0,description:"%cfgInlineDebounceMs%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var y=require("vscode"),O=require("fs"),P=require("path"),dt=require("os"),{exec:mw,execSync:gw}=require("child_process"),ct=tc(),Lt=uc(),yw=fc(),Xn=kc(),bw=_c(),ne=Li(),lt=Rc(),ut=Wc(),tp=Gc(),xe=ou(),Je=Su(),on=Mu(),Te=Lu(),Dp=Nu(),En=Ju(),Ir=Zu(),On=dd(),ze=kd(),xt=Cd(),an=Od(),he=Dd(),Z=Bd(),Pe=Qd(),K=process.platform==="win32"?vf():Nf(),Rt=process.platform==="win32",Np=Rt?"Windows":process.platform==="darwin"?"macOS":"\u4EC5\u652F\u6301 macOS / Windows",ww=Rt?" \u4EE5\u7BA1\u7406\u5458\u6743\u9650\u8FD0\u884C\u7684\u7A97\u53E3\u6536\u4E0D\u5230\u666E\u901A\u8FDB\u7A0B\u7684\u70B9\u51FB / \u6309\u952E\uFF08UIPI \u89C4\u5219\uFF09\uFF0C\u9700\u8981\u65F6\u8BA9\u5BBF\u4E3B App \u4E5F\u4EE5\u7BA1\u7406\u5458\u8FD0\u884C\u3002":" \u6CA1\u6709\u300C\u8F85\u52A9\u529F\u80FD\u300D\u6743\u9650\u65F6\u70B9\u51FB\u4F1A\u88AB\u7CFB\u7EDF\u9759\u9ED8\u4E22\u5F03\uFF0C\u6CA1\u6709\u300C\u5C4F\u5E55\u5F55\u5236\u300D\u6743\u9650\u65F6\u622A\u56FE\u4F1A\u5931\u8D25 \u2014\u2014 \u5206\u522B\u53BB\u7CFB\u7EDF\u8BBE\u7F6E\u7684\u9690\u79C1\u4E0E\u5B89\u5168\u6027\u91CC\u52FE\u9009\u5BBF\u4E3B App\u3002",To=Rt?"\u5C4F\u5E55\u7269\u7406\u50CF\u7D20":"\u5C4F\u5E55\u903B\u8F91\u70B9";function kw(){return Rt?{a:65,p:80,bang:49}:{a:0,p:35,bang:18}}var Qe=qf(),Ln=$f(),Qt=Yf(),Fp=Qf(),np=ep(),xw=os().SKIP_DIRS,Mo=np&&np.version||"0.0.0",Dr="/tmp/luban-ide",Sw=Dr+"/result.json",Le=P.join(dt.homedir(),".luban","providers.json"),wo={startedAt:new Date().toISOString(),steps:[],acks:[]},_w=400,sp=2e3,vs=null;function Rp(){try{O.mkdirSync(Dr,{recursive:!0}),O.writeFileSync(Sw,JSON.stringify(wo,null,2))}catch{}}function yl(){vs&&(clearTimeout(vs),vs=null),Rp()}function w(t,e){wo.steps.push({step:t,at:new Date().toISOString(),...e}),wo.steps.length>sp&&wo.steps.splice(0,wo.steps.length-sp),vs||(vs=setTimeout(function(){vs=null,Rp()},_w))}var vt="",qp=[];function Bp(t,e){let n=String(t??"auto").toLowerCase();if(n==="en")return"en";if(n==="ja"||n.slice(0,2)==="ja")return"ja";if(n.slice(0,2)==="zh")return"zh-cn";let s=String(e||"").toLowerCase();return s.slice(0,2)==="zh"?"zh-cn":s.slice(0,2)==="ja"?"ja":"en"}function bl(){let t="auto";try{t=y.workspace.getConfiguration("luban").get("language")}catch{}return Bp(t,y.env&&y.env.language)}function M(t,e){return Fp.t(t,e)}function Nr(t){vt=Fp.setLang(bl()),Lt.setUntitled(M("store.untitled")),Mw();try{qt&&qt.fire()}catch{}try{Ll()}catch{}return w("language_applied",{lang:vt,reason:t||""}),vt}function vw(t){for(let e of qp.splice(0))try{e(t)}catch{}}function Tw(t){return new Promise(function(e){let n=!1,s=setTimeout(function(){n||(n=!0,e(null))},t||8e3);qp.push(function(o){n||(n=!0,clearTimeout(s),e(o))})})}function Mw(){let t=[se&&se.webview,ce&&ce.webview,$e&&$e.webview];for(let e of t)if(e)try{e.postMessage({type:"lang",lang:vt})}catch(n){w("broadcast_lang_failed",{message:n.message})}}var Up={defaultModel:"deepseek::deepseek-flash",providers:[{id:"deepseek",name:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",webSearch:{baseUrl:"https://api.deepseek.com/v1/tools",count:8},models:[{id:"deepseek-flash",name:"DeepSeek Flash",maxInputTokens:65536,maxOutputTokens:8192,toolCalling:!0}]}]},et=Up,As="builtin",Wt=Object.create(null),Re=null,Ts=[],Wp=40,el=Object.create(null),op=new Map;function Fr(){try{let t=JSON.parse(O.readFileSync(Le,"utf8"));if(t&&Array.isArray(t.providers)&&t.providers.length){et=t,As=Le,w("config_loaded",{source:Le,providers:t.providers.map(e=>e.id),models:cn().length});return}}catch(t){w("config_load_failed",{message:t.message,path:Le})}et=Up,As="builtin"}function Cw(){let t=[];for(let e of et.providers||[])for(let n of e.models||[])t.push({provider:e,model:n});return t}function cn(){let t=Cw(),e={};for(let n of t)e[n.model.id]=(e[n.model.id]||0)+1;return t.map(n=>({key:e[n.model.id]>1?n.provider.id+"::"+n.model.id:n.model.id,provider:n.provider,model:n.model}))}function Ae(t){let e=cn(),n=String(t||"");return e.find(s=>s.key===n)||e.find(s=>s.provider.id+"::"+s.model.id===n)||e.find(s=>s.model.id===n)||e.find(s=>s.key===et.defaultModel)||e.find(s=>s.provider.id+"::"+s.model.id===et.defaultModel)||e[0]}function js(){let t=Ae(et.defaultModel);return t?t.key:""}function Aw(t){try{let e=O.readFileSync(P.join(dt.homedir(),".hermes",".env"),"utf8");for(let n of e.split(`
|
|
700
|
+
{paths}`,"ext.browserCheckRunning":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059\u2026","ext.browserCheckOk":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF1A{exe}\uFF08\u30C6\u30B9\u30C8\u64AE\u5F71 \u7D04 {chars} KB\uFF09","ext.browserCheckFailed":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u306E\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}","ext.cursorPlanPick":"\u5B9F\u884C\u3059\u308B Cursor \u30D7\u30E9\u30F3\u3092\u9078\u629E\uFF08~/.cursor/plans\uFF09","ext.cursorPlanNone":"Cursor \u30D7\u30E9\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF1A{dir} \u306F\u7A7A\u3067\u3059","ext.cursorPlanReadFail":"Cursor \u30D7\u30E9\u30F3\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","ext.cursorPlanBig":"Cursor \u30D7\u30E9\u30F3\u304C {n}KB \u3092\u8D85\u3048\u3066\u3044\u308B\u305F\u3081\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093","ext.cursorPlanNoPanel":"Luban \u30D1\u30CD\u30EB\u306E\u6E96\u5099\u304C\u3067\u304D\u3066\u3044\u307E\u305B\u3093\u3002\u30D1\u30CD\u30EB\u3092\u958B\u3044\u3066\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044","ext.stop.final":"\u5B8C\u4E86","ext.stop.maxRounds":"\u30E9\u30A6\u30F3\u30C9\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F","ext.stop.timeout":"\u6642\u9593\u4E88\u7B97\u3092\u8D85\u904E\u3057\u307E\u3057\u305F","ext.stop.context":"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u4E88\u7B97\u3092\u4F7F\u3044\u5207\u308A\u307E\u3057\u305F","ext.stop.loop":"\u7E70\u308A\u8FD4\u3057\u547C\u3073\u51FA\u3057\u3092\u691C\u51FA","ext.stop.errors":"\u30C4\u30FC\u30EB\u306E\u9023\u7D9A\u30A8\u30E9\u30FC","ext.stop.stopped":"\u505C\u6B62\u3057\u307E\u3057\u305F","ext.stop.noWrites":"\u3053\u306E\u30BF\u30FC\u30F3\u3067\u306F\u30D5\u30A1\u30A4\u30EB\u672A\u5909\u66F4","ext.summary.exec":"\u30D7\u30E9\u30F3\u5B9F\u884C\u6E08\u307F \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE \xB7 {s}s","ext.summary.chat":"\u5B8C\u4E86 \xB7 {model}","ext.summary.plan":"\u30D7\u30E9\u30F3\u6E96\u5099\u5B8C\u4E86 \xB7 \u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30C4\u30FC\u30EB {n} \u56DE \xB7 {s}s","ext.summary.done":"\u5B8C\u4E86 \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE \xB7 {s}s","ext.summary.fallback":"\uFF08\u300C{reason}\u300D\u306B\u3088\u308A\u30BF\u30FC\u30F3\u7D42\u4E86\u3001\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE\u3001\u7DE0\u3081\u306E\u8981\u7D04\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09","ext.summary.fallbackShort":"\uFF08\u300C{reason}\u300D\u306B\u3088\u308A\u30BF\u30FC\u30F3\u7D42\u4E86\u3001\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE\uFF09","ext.summary.noWrites":"\u3053\u306E\u30BF\u30FC\u30F3\u3067\u30C4\u30FC\u30EB\u306F\u5B9F\u884C\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u30D5\u30A1\u30A4\u30EB\u306F\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u6210\u529F\u3057\u305F write_file / replace_in_file \u306A\u3057\uFF09\u3002\u5F15\u304D\u7D9A\u304D\u7DE8\u96C6\u304C\u5FC5\u8981\u306A\u3089\u300C\u30D5\u30A1\u30A4\u30EB\u3092\u7D9A\u3051\u3066\u7DE8\u96C6\u300D\u3068\u6307\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7D50\u8AD6\u3060\u3051\u3067\u3088\u3051\u308C\u3070\u3053\u306E\u6CE8\u8A18\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\u307E\u305B\u3093\u3002","ext.prefixHint":"\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5 0% \xB7 \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067 KV \u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044","ext.prefixHintTip":"{n} \u56DE\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u3059\u3079\u3066\u518D\u8A08\u7B97\u3055\u308C\u3001\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5\u306B\u4E00\u5EA6\u3082\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30ED\u30FC\u30AB\u30EB vLLM \u3067\u306F --enable-prefix-caching \u3092\u8FFD\u52A0\uFF08Docker \u74B0\u5883\u5909\u6570 VLLM_ENABLE_PREFIX_CACHING=1\uFF1Bvllm serve --help \u3092\u78BA\u8A8D\uFF09\uFF1BSGLang \u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u6709\u52B9\uFF1BOllama \u306F\u975E\u5BFE\u5FDC\u3002\u6709\u52B9\u5316\u5F8C\u306F\u3053\u306E\u884C\u306B\u300C\u30AD\u30E3\u30C3\u30B7\u30E5 N%\u300D\u3068\u8868\u793A\u3055\u308C\u307E\u3059\u3002","ext.inlineOn":"Luban Tab \u88DC\u5B8C\u3092\u6709\u52B9\u306B\u3057\u307E\u3057\u305F","ext.inlineOff":"Luban Tab \u88DC\u5B8C\u3092\u7121\u52B9\u306B\u3057\u307E\u3057\u305F","ext.agentDone":"Agent \u5B8C\u4E86 \xB7 \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057 {n} \u56DE","ext.askNeeded":"Luban \u306E\u9078\u629E\u304C\u5FC5\u8981\u3067\u3059\uFF1A{detail}","ext.askGoChoose":"\u9078\u629E\u3059\u308B","ext.configReloaded":"Provider \u8A2D\u5B9A\u3092\u518D\u8AAD\u307F\u8FBC\u307F: \u30E2\u30C7\u30EB {models} \xB7 \u30B9\u30AD\u30EB {skills}","ext.mcpNote":" \xB7 MCP: \u30B5\u30FC\u30D0\u30FC {servers} / \u30C4\u30FC\u30EB {tools}","ext.mcpFail":" \xB7 MCP \u306E\u518D\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557: {msg}","ext.newSessionNotice":"Luban: \u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3057\u307E\u3057\u305F","ext.addFileNoView":"Luban \u30C1\u30E3\u30C3\u30C8\u30D1\u30CD\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3002\u5148\u306B Luban \u30B5\u30A4\u30C9\u30D0\u30FC\u3092\u958B\u3044\u3066\u304F\u3060\u3055\u3044\u3002","ext.agentPrompt":"\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306B\u4F55\u3092\u3055\u305B\u307E\u3059\u304B\uFF1F\uFF08\u30B3\u30FC\u30C9\u306E\u7DE8\u96C6\uFF0F\u751F\u6210\uFF09","ext.hubPanelTitle":"\u8A2D\u5B9A\u3068\u4F7F\u7528\u91CF","ext.providerTimeout":"\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF0815s\uFF09","ext.providerBadJson":"\u5FDC\u7B54\u304C JSON \u3067\u306F\u3042\u308A\u307E\u305B\u3093: {head}","ext.providerBaseUrl":"baseUrl \u304C\u7A7A\u3067\u3059","ext.providerNeedModel":"\u30C6\u30B9\u30C8\u524D\u306B\u30E2\u30C7\u30EB id \u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044","ext.providerNeedKey":"API key \u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30D1\u30CD\u30EB\u3067\u5165\u529B\u3059\u308B\u304B apiKeyEnv \u3092\u8A2D\u5B9A\uFF09","ext.configMissing":"\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093 \u2014 \u5148\u306B\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","ext.saveFailed":"\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {msg}","ext.generalMissing":"\u8A2D\u5B9A\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093: {key}","ext.generalBadBool":"\u300C{key}\u300D\u306F\u30D6\u30FC\u30EB\u5024\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadLanguage":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E\u306F auto / en / zh-cn / ja \u306E\u307F\u3067\u3059","ext.generalBadEnum":"\u300C{key}\u300D\u306F {values} \u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadNumber":"\u300C{key}\u300D\u306F\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadMin":"\u300C{key}\u300D\u306F {min} \u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalBadMax":"\u300C{key}\u300D\u306F {max} \u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","ext.generalSaveFailed":"\u4E00\u822C\u8A2D\u5B9A\u306E\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {msg}","ext.openDirFailed":"\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u3051\u307E\u305B\u3093: {msg}","validate.providerEmpty":"Provider id \u3092\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093","validate.pos":"provider\u300C{id}\u300D","validate.untitled":"\uFF08\u540D\u79F0\u672A\u8A2D\u5B9A\uFF09","validate.idChars":"{pos}: id \u306B\u4F7F\u3048\u308B\u306E\u306F\u82F1\u6570\u5B57\u30FB\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u30FB\u30CF\u30A4\u30D5\u30F3\u306E\u307F\u3067\u3059","validate.idDup":"{pos}: id \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059","validate.baseUrl":"{pos}: baseUrl \u306F http:// \u307E\u305F\u306F https:// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.modelIdEmpty":"{pos}: \u30E2\u30C7\u30EB id \u3092\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093","validate.modelIdDup":"{pos}: \u30E2\u30C7\u30EB id\u300C{id}\u300D\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059","validate.maxIn":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E maxInputTokens \u306F\u6B63\u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.maxOut":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E maxOutputTokens \u306F\u6B63\u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.noModels":"{pos}: \u5C11\u306A\u304F\u3068\u3082 1 \u3064\u306E\u30E2\u30C7\u30EB\u304C\u5FC5\u8981\u3067\u3059","validate.webUrl":"{pos}: webSearch.baseUrl \u306F http:// \u307E\u305F\u306F https:// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webCount":"{pos}: webSearch.count \u306F 1\u301C50 \u306E\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webEngine":"{pos}: webSearch.engine \u306F deepseek \u307E\u305F\u306F bing \u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.webDisabled":"{pos}: webSearch.disabled \u306F\u30D6\u30FC\u30EB\u5024\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.thinkShape":'{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: { "default": "off", "on": {...}, "off": {...} }\uFF09',"validate.thinkTier":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","validate.thinkReserved":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u3067\u30D7\u30ED\u30C8\u30B3\u30EB\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093: {keys}","validate.thinkTooLong":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.{tier} \u304C {n} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059","validate.thinkEmpty":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking \u306B\u306F on / off \u306E\u5C11\u306A\u304F\u3068\u3082\u4E00\u65B9\u304C\u5FC5\u8981\u3067\u3059","validate.needProvider":"\u5C11\u306A\u304F\u3068\u3082 1 \u3064\u306E provider \u304C\u5FC5\u8981\u3067\u3059","usage.today":"\u4ECA\u65E5","usage.7d":"\u76F4\u8FD1 7 \u65E5","usage.30d":"\u76F4\u8FD1 30 \u65E5","usage.all":"\u3059\u3079\u3066","dash.title":"Token \u4F7F\u7528\u91CF","dash.statusReady":"\u6E96\u5099\u5B8C\u4E86","dash.refresh":"\u66F4\u65B0","dash.refreshTitle":"\u53F0\u5E33\u3092\u518D\u8AAD\u307F\u8FBC\u307F","dash.emptyA":"\u307E\u3060\u8A18\u9332\u304C\u3042\u308A\u307E\u305B\u3093\u3002","dash.emptyB":"\u6700\u521D\u306E\u30BF\u30FC\u30F3\u5F8C\u306B\u8868\u793A\u3055\u308C\u307E\u3059 \u2014 \u5404\u30BF\u30FC\u30F3\u306E token \u5408\u8A08\u304C\u30ED\u30FC\u30AB\u30EB\u53F0\u5E33\u306B\u8FFD\u8A18\u3055\u308C\u307E\u3059\u3002","dash.byModel":"\u30E2\u30C7\u30EB\u5225","dash.byDay":"\u65E5\u5225","dash.byMode":"\u30E2\u30FC\u30C9\u5225","dash.recent":"\u6700\u8FD1\u306E\u8A18\u9332","dash.thModel":"\u30E2\u30C7\u30EB","dash.thRequests":"\u30EA\u30AF\u30A8\u30B9\u30C8","dash.thInput":"\u5165\u529B","dash.thOutput":"\u51FA\u529B","dash.thTotal":"\u5408\u8A08","dash.thCache":"\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8","dash.thShare":"\u5272\u5408","dash.thMode":"\u30E2\u30FC\u30C9","dash.thTurns":"\u30BF\u30FC\u30F3","dash.thTime":"\u6642\u523B","dash.openDir":"\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304F","dash.dirTitle":"\u53F0\u5E33\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA","dash.foot":"Token \u6570\u306E\u307F\u96C6\u8A08\uFF1B\u8CBB\u7528\u306F\u63A8\u5B9A\u3057\u307E\u305B\u3093","dash.modeExecute":"\u30D7\u30E9\u30F3\u5B9F\u884C","dash.modeUnknown":"\u4E0D\u660E","dash.loading":"\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","dash.turns":"\u30BF\u30FC\u30F3","dash.requests":"\u30EA\u30AF\u30A8\u30B9\u30C8","dash.input":"\u5165\u529B","dash.output":"\u51FA\u529B","dash.total":"\u5408\u8A08","dash.cache":"\u30AD\u30E3\u30C3\u30B7\u30E5\u30D2\u30C3\u30C8","dash.partial":"\u4E2D\u65AD\u30BF\u30FC\u30F3 {n} \u4EF6\u3092\u88DC\u8A18","dash.perTurn":"1 \u30BF\u30FC\u30F3\u3042\u305F\u308A {n}","dash.estTurns":"\u63A8\u5B9A\u30BF\u30FC\u30F3 {n} \u4EF6\u3092\u542B\u3080","dash.cached":"\u30AD\u30E3\u30C3\u30B7\u30E5\u7531\u6765 {n}","dash.models":"\u30E2\u30C7\u30EB {n}","dash.unknownModel":"\u4E0D\u660E\u306A\u30E2\u30C7\u30EB","dash.days":"{n} \u65E5 \xB7 \u9752=\u5165\u529B \u7DD1=\u51FA\u529B","dash.dayTip":"{day} \xB7 \u2191{input} \u2193{output} \xB7 \u30EA\u30AF\u30A8\u30B9\u30C8 {n} \u56DE","dash.recentCount":"{n} \u4EF6\uFF08\u6700\u5927 50\uFF09","dash.interrupted":" \xB7 \u4E2D\u65AD","dash.recordOff":"\u4F7F\u7528\u91CF\u306E\u8A18\u9332\u306F\u30AA\u30D5\u3067\u3059\uFF08luban.usage.record=false\uFF09\u2014 \u3053\u306E\u30BF\u30FC\u30F3\u4EE5\u964D\u306F\u65B0\u3057\u3044\u8A18\u9332\u3092\u66F8\u304D\u307E\u305B\u3093\u3002","dash.badLines":"\u53F0\u5E33\u306E\u8AAD\u3081\u306A\u3044\u884C {n} \u4EF6\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002","dash.noRecords":"\u8A18\u9332\u306A\u3057","dash.statusTurns":"{n} \u30BF\u30FC\u30F3","hub.title":"\u8A2D\u5B9A\u3068\u4F7F\u7528\u91CF","hub.navGeneral":"\u4E00\u822C","hub.navSettings":"\u8A2D\u5B9A","hub.navUsage":"\u4F7F\u7528\u91CF","hub.navGeneralTitle":"Luban \u8A2D\u5B9A\uFF08\u8A00\u8A9E / \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 / Agent \u306A\u3069\uFF09","hub.navSettingsTitle":"Provider \u8A2D\u5B9A\uFF08\u30E2\u30C7\u30EB / base URL / API \u30AD\u30FC\uFF09","hub.navUsageTitle":"Token \u4F7F\u7528\u91CF\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\uFF08\u30E2\u30C7\u30EB / \u65E5 / \u30E2\u30FC\u30C9\u5225\uFF09","general.title":"\u4E00\u822C","general.statusReady":"\u6E96\u5099\u5B8C\u4E86","general.save":"\u4FDD\u5B58","general.unsaved":"\u672A\u4FDD\u5B58","general.saving":"\u4FDD\u5B58\u4E2D\u2026","general.loaded":"\u8AAD\u307F\u8FBC\u307F\u6E08\u307F","general.saved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F","general.invalid":"\u691C\u8A3C\u30A8\u30E9\u30FC {n} \u4EF6","general.groupUi":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9","general.groupContext":"\u81EA\u52D5\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8","general.groupSession":"\u30BB\u30C3\u30B7\u30E7\u30F3","general.groupAgent":"Agent","general.groupTools":"\u30C4\u30FC\u30EB\u3068\u5B89\u5168","general.groupBrowser":"\u30D6\u30E9\u30A6\u30B6\u30FC\uFF08\u62E1\u5F35\u8A2D\u5B9A\uFF09","general.groupReview":"\u30EC\u30D3\u30E5\u30FC","general.groupInline":"Tab \u88DC\u5B8C","general.groupUsage":"\u4F7F\u7528\u91CF","general.language":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E","general.languageTitle":"Luban \u306E UI \u306E\u307F\u306B\u5F71\u97FF\u3057\u3001\u30A8\u30C7\u30A3\u30BF\u306E\u8868\u793A\u8A00\u8A9E\u306F\u5909\u308F\u308A\u307E\u305B\u3093","general.languageNote":"Luban \u81EA\u8EAB\u306E UI \u306E\u307F\u306B\u5F71\u97FF\u3057\u307E\u3059 \u2014 VS Code / VSCodium \u306E\u8868\u793A\u8A00\u8A9E\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002\u30B3\u30DE\u30F3\u30C9\u30D1\u30EC\u30C3\u30C8\u306E\u30BF\u30A4\u30C8\u30EB\u306F\u30A8\u30C7\u30A3\u30BF\u8A00\u8A9E\u306B\u5F93\u3044\u307E\u3059\u3002","general.langAuto":"VS Code \u306E\u8868\u793A\u8A00\u8A9E\u306B\u5408\u308F\u305B\u308B","general.langZhCn":"\u7B80\u4F53\u4E2D\u6587","general.langEn":"English","general.langJa":"\u65E5\u672C\u8A9E","general.autoOpen":"\u8D77\u52D5\u6642\u306B\u30B5\u30A4\u30C9\u30D0\u30FC\u3092\u958B\u304F","general.contextAutoFile":"\u73FE\u5728\u306E\u30A8\u30C7\u30A3\u30BF\u30B3\u30FC\u30C9\u3092\u6DFB\u4ED8","general.contextMaxChars":"\u6587\u5B57\u6570\u4E0A\u9650","general.contextWindowLines":"\u30A6\u30A3\u30F3\u30C9\u30A6\u884C\u6570\uFF08\u9078\u629E\u306A\u3057\uFF09","general.sessionHistoryMax":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74\u306E\u4E0A\u9650","general.sessionMemoryEnabled":"\u30DE\u30EB\u30C1\u30BF\u30FC\u30F3\u8A18\u61B6","general.sessionMemoryMaxTurns":"\u8A18\u61B6\u30BF\u30FC\u30F3\u6570","general.sessionMemoryMaxChars":"\u8A18\u61B6\u306E\u6587\u5B57\u4E88\u7B97","general.agentMaxRounds":"\u30EA\u30AF\u30A8\u30B9\u30C8\u30E9\u30A6\u30F3\u30C9\u4E0A\u9650\uFF080 = \u7121\u5236\u9650\uFF09","general.agentMaxMinutes":"\u30A6\u30A9\u30FC\u30EB\u30AF\u30ED\u30C3\u30AF\u4E0A\u9650\uFF08\u5206\uFF09","general.agentSubagentRounds":"\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30E9\u30A6\u30F3\u30C9\u6570\uFF080 = \u30AA\u30D5\uFF09","general.agentSubagentMinutes":"\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u5236\u9650\u6642\u9593\uFF08\u5206\u30010 = \u30BF\u30FC\u30F3\u306B\u8FFD\u5F93\uFF09","general.agentSmallWindow":"\u5C0F\u30A6\u30A3\u30F3\u30C9\u30A6\u30E2\u30FC\u30C9","general.smallWindowAuto":"\u81EA\u52D5\uFF08\u30E2\u30C7\u30EB\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u3088\u308B\uFF09","general.smallWindowOn":"\u5F37\u5236\u30AA\u30F3","general.smallWindowOff":"\u30AA\u30D5","general.agentVerbosity":"\u8A73\u7D30\u5EA6","general.verbosityConcise":"\u7C21\u6F54\uFF08\u4E00\u884C\uFF09","general.verbosityNormal":"\u6A19\u6E96\uFF08\u7C21\u6F54\u30EC\u30DD\u30FC\u30C8\uFF09","general.verbosityDetailed":"\u8A73\u7D30\uFF08\u69CB\u9020\u5316\uFF09","general.contextWorkset":"\u5909\u66F4\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u3067\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B","general.searchMaxFiles":"search_code \u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u4E0A\u9650","general.planStrictReadOnly":"Plan \u30E2\u30FC\u30C9\u3067\u53B3\u683C\u306A\u8AAD\u307F\u53D6\u308A\u5C02\u7528","general.fsAllowOutside":"\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5916\u306E\u30D1\u30B9\u3092\u8A31\u53EF","general.diagAfterEdit":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B\u8A3A\u65AD\u3092\u81EA\u52D5\u8AAD\u307F\u8FBC\u307F","general.browserEnabled":"\u5185\u8535\u30D6\u30E9\u30A6\u30B6\u30FC\u30C4\u30FC\u30EB\u3092\u6709\u52B9\u5316","general.browserHeadless":"\u30D8\u30C3\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\uFF08\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u51FA\u3055\u306A\u3044\uFF09","general.browserViewportWidth":"\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u5E45\uFF08320\u301C4096\uFF09","general.browserViewportHeight":"\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u9AD8\u3055\uFF08240\u301C4096\uFF09","general.browserIdleTimeoutMs":"\u30A2\u30A4\u30C9\u30EB\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08ms\uFF09","general.browserChromePath":"Chrome / Edge \u306E\u30D1\u30B9","general.browserChromePathPh":"\u7A7A\u6B04\u3067\u81EA\u52D5\u691C\u51FA\uFF08LUBAN_CHROME_PATH \u3082\u53C2\u7167\uFF09","general.browserNote":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30C4\u30FC\u30EB\uFF1A\u30DA\u30FC\u30B8\u3092\u958B\u304F / \u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u30C4\u30EA\u30FC / \u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8 / console / \u5931\u6557\u30EA\u30AF\u30A8\u30B9\u30C8\u3002\u30AF\u30EA\u30C3\u30AF\u3084\u5165\u529B\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u30ED\u30FC\u30AB\u30EB\u306E Chrome \u307E\u305F\u306F Edge \u304C\u5FC5\u8981\u3067\u3059\u3002\u30AA\u30D5\u306E\u3068\u304D\u306F\u30C4\u30FC\u30EB\u304C\u30E2\u30C7\u30EB\u306E\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\u3002","general.groupComputer":"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u64CD\u4F5C\uFF08macOS / Windows\uFF09","general.computerEnabled":"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u64CD\u4F5C\u30C4\u30FC\u30EB\u3092\u6709\u52B9\u5316","general.computerConfirm":"\u30DE\u30A6\u30B9 / \u30AD\u30FC\u30DC\u30FC\u30C9\u64CD\u4F5C\u306E\u524D\u306B 1 \u56DE\u78BA\u8A8D","general.computerScreenshotWidth":"\u64AE\u5F71\u306E\u6700\u5927\u5E45\uFF08320\u301C4096\uFF09","general.computerNote":"\u64AE\u5F71 / \u753B\u9762\u5185\u30C6\u30AD\u30B9\u30C8\u306E\u8A8D\u8B58\uFF08Windows \u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3001\u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8\u3092\u898B\u308B\u7D4C\u8DEF\u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\uFF09/ \u30A6\u30A3\u30F3\u30C9\u30A6\u4E00\u89A7 / \u30AF\u30EA\u30C3\u30AF / \u5165\u529B / \u30AD\u30FC / \u30B9\u30AF\u30ED\u30FC\u30EB / \u30C9\u30E9\u30C3\u30B0\u3002macOS \u3068 Windows \u3067\u4F7F\u7528\u53EF\u3001Plan \u30E2\u30FC\u30C9\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002macOS \u3067\u306F\u30DB\u30B9\u30C8 App \u306B\u300C\u753B\u9762\u53CE\u9332\u300D\u3068\u300C\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u300D\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3001\u7121\u3044\u3068\u64AE\u5F71\u306F\u5931\u6557\u3057\u30AF\u30EA\u30C3\u30AF\u306F\u30B7\u30B9\u30C6\u30E0\u306B\u7834\u68C4\u3055\u308C\u307E\u3059\u3002Windows \u306F\u6A29\u9650\u4E0D\u8981\u3067\u3059\u304C\u3001\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u4E2D\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u306F\u901A\u5E38\u30D7\u30ED\u30BB\u30B9\u306E\u5165\u529B\u3092\u7121\u8996\u3057\u307E\u3059\u3002","general.reviewAutoOpenDiff":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B diff \u3092\u81EA\u52D5\u8868\u793A","general.inlineEnabled":"Tab \u88DC\u5B8C\u3092\u6709\u52B9\u5316","general.inlineMaxPerMinute":"1 \u5206\u3042\u305F\u308A\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u4E0A\u9650","general.inlineDebounceMs":"\u30C7\u30D0\u30A6\u30F3\u30B9\u9045\u5EF6\uFF08ms\uFF09","general.usageRecord":"Token \u4F7F\u7528\u91CF\u3092\u8A18\u9332","general.errLanguage":"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E\u306F auto / en / zh-cn / ja \u306E\u307F\u3067\u3059","general.errEnum":"\u300C{key}\u300D\u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059","general.errNumber":"\u300C{key}\u300D\u306F\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","general.errMin":"\u300C{key}\u300D\u306F {min} \u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","general.errMax":"\u300C{key}\u300D\u306F {max} \u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","settings.title":"Provider \u8A2D\u5B9A","settings.statusReady":"\u6E96\u5099\u5B8C\u4E86","settings.save":"\u4FDD\u5B58","settings.defaultModel":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30E2\u30C7\u30EB","settings.defaultModelTitle":"\u30D1\u30CD\u30EB\u306E\u30E2\u30C7\u30EB\u30C9\u30ED\u30C3\u30D7\u30C0\u30A6\u30F3\u306E\u521D\u671F\u9078\u629E","settings.defaultModelNote":"\u30E2\u30C7\u30EB id \u304C provider \u9593\u3067\u91CD\u8907\u3059\u308B\u5834\u5408\u306F\u81EA\u52D5\u3067 <code>providerId::modelId</code> \u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u4ED8\u304D\u307E\u3059\u3002API \u30AD\u30FC\u306F VS Code SecretStorage \u306B\u4FDD\u5B58\u3055\u308C\u3001\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u306F\u66F8\u304D\u307E\u305B\u3093\u3002","settings.addProvider":"+ provider \u3092\u8FFD\u52A0","settings.openConfig":"providers.json \u3092\u958B\u304F","settings.unsaved":"\u672A\u4FDD\u5B58","settings.firstModel":"\uFF08\u6700\u521D\u306E\u30E2\u30C7\u30EB\uFF09","settings.noModel":"\uFF08\u30E2\u30C7\u30EB\u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\uFF09","settings.modelIdPh":"model id\uFF08\u5FC5\u9808\uFF09","settings.modelNamePh":"\u8868\u793A\u540D\uFF08\u4EFB\u610F\uFF09","settings.toolCallingTitle":"toolCalling\uFF1AAgent \u30E2\u30FC\u30C9\u3067\u4F7F\u3046\u306B\u306F\u30C1\u30A7\u30C3\u30AF\u5FC5\u9808","settings.visionTitle":"vision\uFF1A\u30E2\u30C7\u30EB\u304C\u753B\u50CF\u5165\u529B\u306B\u5BFE\u5FDC\uFF08\u30C1\u30E3\u30C3\u30C8\u306B\u753B\u50CF\u3092\u8CBC\u308A\u4ED8\u3051\uFF09","settings.thinkTitle":"thinking\uFF1A\u601D\u8003\u30C6\u30A3\u30A2\u3002on / off \u306E JSON \u306F\u305D\u306E\u307E\u307E\u30EA\u30AF\u30A8\u30B9\u30C8\u672C\u6587\u306B\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3059\uFF08\u4F8B: chat_template_kwargs.enable_thinking\u3001reasoning\u3001think\uFF09\uFF1B\u7A7A\u306A\u3089\u305D\u306E\u30C6\u30A3\u30A2\u306F\u4F55\u3082\u9001\u308A\u307E\u305B\u3093\u3002\u300C\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5165\u529B\u300D\u3067\u4E00\u822C\u7684\u306A\u65B9\u8A00\u3092\u751F\u6210\u3067\u304D\u307E\u3059","settings.thinkDefault":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30C6\u30A3\u30A2","settings.thinkDefaultOff":"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF1A\u30AA\u30D5","settings.thinkDefaultOn":"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF1A\u30AA\u30F3","settings.thinkPreset":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5165\u529B\u2026","settings.thinkPresetQwen":"Qwen / vLLM","settings.thinkPresetDeepseek":"DeepSeek","settings.thinkPresetOpenrouter":"OpenRouter","settings.thinkPresetAnthropic":"Anthropic \u4E92\u63DB","settings.thinkPresetOllama":"Ollama","settings.thinkPresetOverwrite":"on / off \u306B\u65E2\u306B\u5185\u5BB9\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F","settings.thinkOn":"\u30AA\u30F3\uFF08on\uFF09","settings.thinkOff":"\u30AA\u30D5\uFF08off\uFF09","settings.thinkOnPh":'\u7A7A = \u9001\u4FE1\u3057\u306A\u3044\u3002\u4F8B: { "chat_template_kwargs": { "enable_thinking": true } }',"settings.thinkOffPh":'\u7A7A = \u9001\u4FE1\u3057\u306A\u3044\u3002\u4F8B: { "thinking": { "type": "disabled" } }',"settings.thinkBadJson":"{pos} \u30E2\u30C7\u30EB\u300C{id}\u300Dthinking.{tier} \u306F\u6B63\u3057\u3044 JSON \u3067\u306F\u3042\u308A\u307E\u305B\u3093","settings.thinkBadShape":"{pos} \u30E2\u30C7\u30EB\u300C{id}\u300Dthinking.{tier} \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u914D\u5217\u3084\u30B9\u30AB\u30E9\u30FC\u4E0D\u53EF\uFF09","settings.deleteModel":"\u3053\u306E\u30E2\u30C7\u30EB\u3092\u524A\u9664","settings.providerNamePh":"provider \u540D\uFF08\u4F8B: DeepSeek\uFF09","settings.deleteProvider":"provider \u3092\u524A\u9664","settings.idLabel":"id\uFF08\u4E00\u610F\uFF1B\u82F1\u6570\u5B57/_/-\uFF09","settings.apiKeyEnvLabel":"apiKeyEnv\uFF08\u4EFB\u610F\uFF09","settings.keyLabel":"API key\uFF08VS Code SecretStorage \u306B\u4FDD\u5B58\uFF09","settings.keyPhSaved":"\u4FDD\u5B58\u6E08\u307F \u2014 \u7A7A\u6B04\u306E\u307E\u307E\u306A\u3089\u5909\u66F4\u3057\u307E\u305B\u3093","settings.keyPh":"sk-\u2026\uFF08SecretStorage \u306E\u307F\u306B\u66F8\u304D\u8FBC\u307F\uFF09","settings.clearKey":"\u30AD\u30FC\u3092\u30AF\u30EA\u30A2","settings.test":"\u63A5\u7D9A\u30C6\u30B9\u30C8","settings.testing":"\u30C6\u30B9\u30C8\u4E2D\u2026\uFF08\u6700\u521D\u306E\u30E2\u30C7\u30EB\u3001max_tokens=1\uFF09","settings.fetchModels":"\u30E2\u30C7\u30EB\u3092\u53D6\u5F97","settings.fetching":"/models \u3092\u30EA\u30AF\u30A8\u30B9\u30C8\u4E2D\u2026","settings.modelsHead":"\u30E2\u30C7\u30EB\uFF08{n}\uFF09\xB7 id / \u8868\u793A\u540D / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.addModel":"+ \u30E2\u30C7\u30EB\u3092\u8FFD\u52A0","settings.errors":"\u4FEE\u6B63\u304C\u5FC5\u8981\u306A\u7B87\u6240\u304C {n} \u4EF6\u3042\u308A\u307E\u3059\uFF1A","settings.noProviders":"\u307E\u3060 provider \u304C\u3042\u308A\u307E\u305B\u3093 \u2014 \u4E0B\u306E\u300C+ provider \u3092\u8FFD\u52A0\u300D\u304B\u3089\u59CB\u3081\u3066\u304F\u3060\u3055\u3044\u3002","settings.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.builtin":"\u5185\u8535\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u8A2D\u5B9A\u3092\u4F7F\u7528\u4E2D\uFF1B\u4FDD\u5B58\u3059\u308B\u3068 {path} \u306B\u66F8\u304D\u8FBC\u307F\u307E\u3059","settings.loaded":"\u8AAD\u307F\u8FBC\u307F\u6E08\u307F","settings.saved":"\u4FDD\u5B58\u3057\u307E\u3057\u305F \xB7 \u30E2\u30C7\u30EB {n}","settings.invalid":"\u554F\u984C\u304C {n} \u4EF6\u3042\u308A\u3001\u4FDD\u5B58\u3057\u3066\u3044\u307E\u305B\u3093","settings.testOk":"\u524D\u56DE\u306E\u30C6\u30B9\u30C8 OK \xB7 {ms}ms","settings.testFailed":"\u524D\u56DE\u306E\u30C6\u30B9\u30C8\u5931\u6557","settings.testOkResult":"\u2705 HTTP {status} \xB7 {ms}ms{reply}","settings.testFailResult":"\u274C {msg}","settings.fail":"\u5931\u6557","settings.fetchFail":"\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F","settings.fetched":"\u2705 \u30E2\u30C7\u30EB\u3092 {n} \u4EF6\u53D6\u5F97","settings.fetchedAdded":"\uFF1B\u65B0\u898F {n} \u4EF6\uFF08\u4FDD\u5B58\u3092\u5FD8\u308C\u305A\u306B\uFF09","settings.fetchedNone":"\uFF1B\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u306F\u3042\u308A\u307E\u305B\u3093","settings.keySet":"\u4FDD\u5B58\u6642\u306B SecretStorage \u3078\u66F8\u304D\u8FBC\u307F\u307E\u3059\uFF08\u30C7\u30A3\u30B9\u30AF\u306B\u306F\u66F8\u304D\u307E\u305B\u3093\uFF09","settings.keyClear":"\u4FDD\u5B58\u6642\u306B\u4FDD\u5B58\u6E08\u307F\u30AD\u30FC\u3092\u524A\u9664\u3057\u307E\u3059","settings.keySecret":"\u3059\u3067\u306B SecretStorage \u306B\u3042\u308A\u307E\u3059","settings.keyInline":"\u8A2D\u5B9A\u306B\u5E73\u6587 apiKey \u304C\u3042\u308A\u307E\u3059\uFF08\u4FDD\u5B58\u6642\u3082\u4FDD\u6301\uFF09","settings.keyEnv":"\u74B0\u5883\u5909\u6570 {env} \u3092\u4F7F\u7528\uFF08\u30AD\u30FC\u306F\u3053\u3053\u306B\u8868\u793A\u3055\u308C\u307E\u305B\u3093\uFF09","settings.keyNone":"\u30AD\u30FC\u672A\u8A2D\u5B9A","settings.unnamedModel":"\u540D\u79F0\u672A\u8A2D\u5B9A"}},n="zh-cn";function s(d){let f=String(d??"").toLowerCase();if(!f||f==="auto")return null;let p=f.slice(0,2);return p==="zh"?"zh-cn":p==="ja"?"ja":"en"}function o(){let d=typeof navigator<"u"&&navigator&&navigator.language||"";return/^zh/i.test(d)?"zh-cn":/^ja/i.test(d)?"ja":"en"}function r(d){return n=s(d)||o(),n}function i(){return n}function a(d,f,p){let h=s(d)||n,x=(e[h]||e["zh-cn"])[f];return x==null&&(x=e["zh-cn"][f]),x==null?f:(p&&(x=String(x).replace(/\{(\w+)\}/g,function(b,k){return p[k]==null?b:String(p[k])})),x)}function l(d,f){return a(n,d,f)}function c(d){return e["zh-cn"][d]!=null}let u={t:l,tIn:a,setLang:r,getLang:i,has:c,normalize:s,langs:["zh-cn","en","ja"]};typeof ho<"u"&&ho&&ho.exports&&(ho.exports=u),t&&(t.LubanI18n=u)})(typeof globalThis<"u"?globalThis:Zf)});var ep=Q((BS,hw)=>{hw.exports={name:"@luban-code/luban-code",displayName:"Luban",description:"Luban \u2014 a standalone sidebar AI coding agent (multi-provider, OpenAI-compatible, zero source patches)",version:"1.66.1",license:"Apache-2.0",author:{name:"eppen (liuhualiang)",url:"https://github.com/eppen"},publisher:"liuhualiang",icon:"media/icon.png",homepage:"https://github.com/eppen/luban#readme",bugs:{url:"https://github.com/eppen/luban/issues"},keywords:["ai","agent","chat","coding-agent","qwen","deepseek","openai-compatible","mcp"],repository:{type:"git",url:"https://github.com/eppen/luban.git"},engines:{vscode:"^1.100.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView"],main:"./dist/extension.js",bin:{luban:"./dist/cli.js"},files:["dist/cli.js","dist/extension.js","package.json"],scripts:{build:"node scripts/build.js",watch:"node scripts/build.js --watch",package:"node scripts/build.js","vscode:prepublish":"node scripts/build.js",prepack:"node scripts/build.js",smoke:"node scripts/build.js && node scripts/smoke.js","test:skills":"node scripts/test-skills.js",cli:"node cli.js",vsix:"npx --yes @vscode/vsce@latest package --no-dependencies","test:general":"node scripts/test-general-settings.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:gamepad":"node scripts/test-gamepad.js"},capabilities:{untrustedWorkspaces:{supported:!0},virtualWorkspaces:!0},contributes:{commands:[{command:"luban.focusView",title:"%cmdFocusView%",category:"Luban"},{command:"luban.openPanel",title:"%cmdOpenPanel%",category:"Luban"},{command:"luban.reloadConfig",title:"%cmdReloadConfig%",category:"Luban"},{command:"luban.providerSettings",title:"%cmdProviderSettings%",category:"Luban"},{command:"luban.dashboard",title:"%cmdDashboard%",category:"Luban"},{command:"luban.agent",title:"%cmdAgent%",category:"Luban"},{command:"luban.openDiff",title:"%cmdOpenDiff%",category:"Luban"},{command:"luban.acceptHunk",title:"%cmdAcceptHunk%",category:"Luban"},{command:"luban.rejectHunk",title:"%cmdRejectHunk%",category:"Luban"},{command:"luban.acceptFile",title:"%cmdAcceptFile%",category:"Luban"},{command:"luban.rejectFile",title:"%cmdRejectFile%",category:"Luban"},{command:"luban.reviewAll",title:"%cmdReviewAll%",category:"Luban"},{command:"luban.revertAll",title:"%cmdRevertAll%",category:"Luban"},{command:"luban.newSession",title:"%cmdNewSession%",category:"Luban"},{command:"luban.sessionList",title:"%cmdSessionList%",category:"Luban"},{command:"luban.cursorPlan",title:"%cmdCursorPlan%",category:"Luban"},{command:"luban.mode.cycle",title:"%cmdModeCycle%",category:"Luban"},{command:"luban.addFileToChat",title:"%cmdAddFileToChat%",category:"Luban"},{command:"luban.addFolderToChat",title:"%cmdAddFolderToChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.inlineCompletion.toggle",title:"%cmdInlineToggle%",category:"Luban"},{command:"luban.diffAccept",title:"%cmdDiffAccept%",category:"Luban"},{command:"luban.diffReject",title:"%cmdDiffReject%",category:"Luban"},{command:"luban.openInBrowser",title:"%cmdOpenInBrowser%",category:"Luban"},{command:"luban.browserCheck",title:"%cmdBrowserCheck%",category:"Luban"}],menus:{"editor/title":[{command:"luban.diffAccept",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@1"},{command:"luban.diffReject",when:"isInDiffEditor && luban.reviewDiffActive && luban.pendingReview > 0",group:"navigation@2"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"}],"webview/context":[{command:"luban.openInBrowser",when:"webviewSection == 'chat'"}],commandPalette:[{command:"luban.diffAccept",when:"luban.pendingReview > 0"},{command:"luban.diffReject",when:"luban.pendingReview > 0"},{command:"luban.addFileToChat",when:"false"},{command:"luban.addFolderToChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.openInBrowser",when:"false"}]},keybindings:[{command:"luban.focusView",key:"cmd+shift+l",mac:"cmd+shift+l",win:"ctrl+shift+l",linux:"ctrl+shift+l"},{command:"luban.newSession",key:"cmd+alt+n",mac:"cmd+alt+n",win:"ctrl+alt+n",linux:"ctrl+alt+n"},{command:"luban.sessionList",key:"cmd+alt+h",mac:"cmd+alt+h",win:"ctrl+alt+h",linux:"ctrl+alt+h"},{command:"luban.mode.cycle",key:"shift+tab",mac:"shift+tab",win:"shift+tab",linux:"shift+tab",when:"focusedView == 'luban.chatView'"},{command:"luban.addSelectionToChat",key:"cmd+alt+a",mac:"cmd+alt+a",win:"ctrl+alt+a",linux:"ctrl+alt+a",when:"editorHasSelection && editorTextFocus"}],viewsContainers:{activitybar:[{id:"luban",title:"Luban",icon:"media/icon.svg"}]},views:{luban:[{type:"webview",id:"luban.chatView",name:"Chat",contextualTitle:"Luban"}]},configuration:{title:"Luban",properties:{"luban.language":{type:"string",enum:["auto","en","zh-cn","ja"],enumDescriptions:["%cfgLanguageAuto%","%cfgLanguageEn%","%cfgLanguageZhCn%","%cfgLanguageJa%"],default:"auto",description:"%cfgLanguage%"},"luban.autoOpen":{type:"boolean",default:!0,description:"%cfgAutoOpen%"},"luban.context.autoFile":{type:"boolean",default:!0,description:"%cfgContextAutoFile%"},"luban.context.autoFileMaxChars":{type:"number",default:8e3,minimum:500,description:"%cfgContextAutoFileMaxChars%"},"luban.context.autoFileWindowLines":{type:"number",default:200,minimum:40,description:"%cfgContextAutoFileWindowLines%"},"luban.context.workset":{type:"boolean",default:!0,description:"%cfgContextWorkset%"},"luban.sessionHistory.max":{type:"number",default:50,minimum:1,description:"%cfgSessionHistoryMax%"},"luban.usage.record":{type:"boolean",default:!0,description:"%cfgUsageRecord%"},"luban.sessionMemory.enabled":{type:"boolean",default:!0,description:"%cfgSessionMemoryEnabled%"},"luban.sessionMemory.maxTurns":{type:"number",default:8,minimum:1,description:"%cfgSessionMemoryMaxTurns%"},"luban.sessionMemory.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgSessionMemoryMaxChars%"},"luban.agent.maxRounds":{type:"number",default:100,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:15,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.subagentRounds":{type:"number",default:24,minimum:0,description:"%cfgAgentSubagentRounds%"},"luban.agent.subagentMinutes":{type:"number",default:0,minimum:0,description:"%cfgAgentSubagentMinutes%"},"luban.agent.smallWindow":{type:"string",enum:["auto","on","off"],default:"auto",description:"%cfgAgentSmallWindow%"},"luban.agent.verbosity":{type:"string",enum:["concise","normal","detailed"],default:"normal",description:"%cfgAgentVerbosity%"},"luban.search.maxFiles":{type:"number",default:5e3,minimum:100,description:"%cfgSearchMaxFiles%"},"luban.browser.enabled":{type:"boolean",default:!1,description:"%cfgBrowserEnabled%"},"luban.browser.chromePath":{type:"string",default:"",description:"%cfgBrowserChromePath%"},"luban.browser.headless":{type:"boolean",default:!0,description:"%cfgBrowserHeadless%"},"luban.browser.viewportWidth":{type:"number",default:1280,minimum:320,maximum:4096,description:"%cfgBrowserViewportWidth%"},"luban.browser.viewportHeight":{type:"number",default:800,minimum:240,maximum:4096,description:"%cfgBrowserViewportHeight%"},"luban.browser.idleTimeoutMs":{type:"number",default:3e5,minimum:1e4,description:"%cfgBrowserIdleTimeout%"},"luban.computer.enabled":{type:"boolean",default:!1,description:"%cfgComputerEnabled%"},"luban.computer.confirm":{type:"boolean",default:!0,description:"%cfgComputerConfirm%"},"luban.computer.screenshotWidth":{type:"number",default:2048,minimum:320,maximum:4096,description:"%cfgComputerScreenshotWidth%"},"luban.plan.strictReadOnly":{type:"boolean",default:!0,description:"%cfgPlanStrictReadOnly%"},"luban.fs.allowOutsideWorkspace":{type:"boolean",default:!0,description:"%cfgFsAllowOutsideWorkspace%"},"luban.review.autoOpenDiff":{type:"boolean",default:!0,description:"%cfgReviewAutoOpenDiff%"},"luban.diagnostics.afterEdit":{type:"boolean",default:!0,description:"%cfgDiagAfterEdit%"},"luban.inlineCompletion.enabled":{type:"boolean",default:!1,description:"%cfgInlineEnabled%"},"luban.inlineCompletion.maxPerMinute":{type:"number",default:30,minimum:1,description:"%cfgInlineMaxPerMinute%"},"luban.inlineCompletion.debounceMs":{type:"number",default:250,minimum:0,description:"%cfgInlineDebounceMs%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var y=require("vscode"),O=require("fs"),P=require("path"),dt=require("os"),{exec:mw,execSync:gw}=require("child_process"),ct=tc(),Lt=uc(),yw=fc(),Xn=kc(),bw=_c(),ne=Li(),lt=Rc(),ut=Wc(),tp=Gc(),xe=ou(),Je=Su(),on=Mu(),Te=Lu(),Dp=Nu(),En=Ju(),Ir=Zu(),On=dd(),ze=kd(),xt=Cd(),an=Od(),he=Dd(),Z=Bd(),Pe=Qd(),K=process.platform==="win32"?vf():Nf(),Rt=process.platform==="win32",Np=Rt?"Windows":process.platform==="darwin"?"macOS":"\u4EC5\u652F\u6301 macOS / Windows",ww=Rt?" \u4EE5\u7BA1\u7406\u5458\u6743\u9650\u8FD0\u884C\u7684\u7A97\u53E3\u6536\u4E0D\u5230\u666E\u901A\u8FDB\u7A0B\u7684\u70B9\u51FB / \u6309\u952E\uFF08UIPI \u89C4\u5219\uFF09\uFF0C\u9700\u8981\u65F6\u8BA9\u5BBF\u4E3B App \u4E5F\u4EE5\u7BA1\u7406\u5458\u8FD0\u884C\u3002":" \u6CA1\u6709\u300C\u8F85\u52A9\u529F\u80FD\u300D\u6743\u9650\u65F6\u70B9\u51FB\u4F1A\u88AB\u7CFB\u7EDF\u9759\u9ED8\u4E22\u5F03\uFF0C\u6CA1\u6709\u300C\u5C4F\u5E55\u5F55\u5236\u300D\u6743\u9650\u65F6\u622A\u56FE\u4F1A\u5931\u8D25 \u2014\u2014 \u5206\u522B\u53BB\u7CFB\u7EDF\u8BBE\u7F6E\u7684\u9690\u79C1\u4E0E\u5B89\u5168\u6027\u91CC\u52FE\u9009\u5BBF\u4E3B App\u3002",To=Rt?"\u5C4F\u5E55\u7269\u7406\u50CF\u7D20":"\u5C4F\u5E55\u903B\u8F91\u70B9";function kw(){return Rt?{a:65,p:80,bang:49}:{a:0,p:35,bang:18}}var Qe=qf(),Ln=$f(),Qt=Yf(),Fp=Qf(),np=ep(),xw=os().SKIP_DIRS,Mo=np&&np.version||"0.0.0",Dr="/tmp/luban-ide",Sw=Dr+"/result.json",Le=P.join(dt.homedir(),".luban","providers.json"),wo={startedAt:new Date().toISOString(),steps:[],acks:[]},_w=400,sp=2e3,vs=null;function Rp(){try{O.mkdirSync(Dr,{recursive:!0}),O.writeFileSync(Sw,JSON.stringify(wo,null,2))}catch{}}function yl(){vs&&(clearTimeout(vs),vs=null),Rp()}function w(t,e){wo.steps.push({step:t,at:new Date().toISOString(),...e}),wo.steps.length>sp&&wo.steps.splice(0,wo.steps.length-sp),vs||(vs=setTimeout(function(){vs=null,Rp()},_w))}var vt="",qp=[];function Bp(t,e){let n=String(t??"auto").toLowerCase();if(n==="en")return"en";if(n==="ja"||n.slice(0,2)==="ja")return"ja";if(n.slice(0,2)==="zh")return"zh-cn";let s=String(e||"").toLowerCase();return s.slice(0,2)==="zh"?"zh-cn":s.slice(0,2)==="ja"?"ja":"en"}function bl(){let t="auto";try{t=y.workspace.getConfiguration("luban").get("language")}catch{}return Bp(t,y.env&&y.env.language)}function M(t,e){return Fp.t(t,e)}function Nr(t){vt=Fp.setLang(bl()),Lt.setUntitled(M("store.untitled")),Mw();try{qt&&qt.fire()}catch{}try{Ll()}catch{}return w("language_applied",{lang:vt,reason:t||""}),vt}function vw(t){for(let e of qp.splice(0))try{e(t)}catch{}}function Tw(t){return new Promise(function(e){let n=!1,s=setTimeout(function(){n||(n=!0,e(null))},t||8e3);qp.push(function(o){n||(n=!0,clearTimeout(s),e(o))})})}function Mw(){let t=[se&&se.webview,ce&&ce.webview,$e&&$e.webview];for(let e of t)if(e)try{e.postMessage({type:"lang",lang:vt})}catch(n){w("broadcast_lang_failed",{message:n.message})}}var Up={defaultModel:"deepseek::deepseek-flash",providers:[{id:"deepseek",name:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",webSearch:{baseUrl:"https://api.deepseek.com/v1/tools",count:8},models:[{id:"deepseek-flash",name:"DeepSeek Flash",maxInputTokens:65536,maxOutputTokens:8192,toolCalling:!0}]}]},et=Up,As="builtin",Wt=Object.create(null),Re=null,Ts=[],Wp=40,el=Object.create(null),op=new Map;function Fr(){try{let t=JSON.parse(O.readFileSync(Le,"utf8"));if(t&&Array.isArray(t.providers)&&t.providers.length){et=t,As=Le,w("config_loaded",{source:Le,providers:t.providers.map(e=>e.id),models:cn().length});return}}catch(t){w("config_load_failed",{message:t.message,path:Le})}et=Up,As="builtin"}function Cw(){let t=[];for(let e of et.providers||[])for(let n of e.models||[])t.push({provider:e,model:n});return t}function cn(){let t=Cw(),e={};for(let n of t)e[n.model.id]=(e[n.model.id]||0)+1;return t.map(n=>({key:e[n.model.id]>1?n.provider.id+"::"+n.model.id:n.model.id,provider:n.provider,model:n.model}))}function Ae(t){let e=cn(),n=String(t||"");return e.find(s=>s.key===n)||e.find(s=>s.provider.id+"::"+s.model.id===n)||e.find(s=>s.model.id===n)||e.find(s=>s.key===et.defaultModel)||e.find(s=>s.provider.id+"::"+s.model.id===et.defaultModel)||e[0]}function js(){let t=Ae(et.defaultModel);return t?t.key:""}function Aw(t){try{let e=O.readFileSync(P.join(dt.homedir(),".hermes",".env"),"utf8");for(let n of e.split(`
|
|
701
701
|
`)){let s=n.match(new RegExp("^\\s*"+t+"\\s*=\\s*(.+)\\s*$"));if(s)return s[1].trim().replace(/^["']|["']$/g,"")}}catch{}return""}function Uo(t){let e=t&&t.apiKeyEnv;return e?process.env[e]?String(process.env[e]).trim():Aw(e):""}function Rr(t){if(!t)return"";if(t.apiKey)return String(t.apiKey);let e=Wt[t.id];return e?String(e):Uo(t)}var wl="luban-local";function Ew(t){let e="";try{e=new URL(String(t||"")).hostname.toLowerCase()}catch{return!1}return e?e==="localhost"||e==="::1"||e==="[::1]"||e==="0.0.0.0"?!0:/^127\./.test(e):!1}function Es(t){return t?t.keyless===!0?!0:Ew(t.baseUrl):!1}function Os(t){let e=Rr(t);return e||(Es(t)?wl:"")}function Kp(t){return String(t.baseUrl||"").replace(/\/+$/,"")+"/chat/completions"}var tl=2e4,kl=3e3,rp=8e3,Ow="https://cn.bing.com/search",Hp="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",Ya=2*1024*1024;function zp(t){if(!t)return"";let e=t.webSearch;if(e&&e.baseUrl)return String(e.baseUrl).replace(/\/+$/,"");let n=String(t.baseUrl||"").replace(/\/+$/,"");return/api\.deepseek\.com/i.test(n)?n+"/tools":""}function Ct(t){if(!t)return"none";let e=t.webSearch;return e&&e.disabled===!0?"none":e&&(e.engine==="bing"||e.engine==="deepseek")?e.engine:e&&e.baseUrl||/api\.deepseek\.com/i.test(String(t.baseUrl||""))?"deepseek":"bing"}function qr(t){if(!t)return"";let e=t.inlineCompletion;if(e&&e.baseUrl)return String(e.baseUrl).replace(/\/+$/,"");let n=String(t.baseUrl||"").replace(/\/+$/,"");return/api\.deepseek\.com/i.test(n)?n.replace(/\/v1$/,"")+"/beta":""}async function Gp(t){let e=t||{},n=Ae(e.modelKey);if(!n)throw new Error("\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u914D\u7F6E");let s=qr(n.provider);if(!s)throw new Error("\u5F53\u524D provider \u672A\u914D\u7F6E FIM \u8865\u5168\uFF08providers.json \u91CC\u52A0 inlineCompletion.baseUrl\uFF09");let o=Os(n.provider);if(!o)throw new Error("provider "+n.provider.id+" \u7F3A\u5C11 API key");let r=n.provider.inlineCompletion||{},i=Ir.buildPrompt({path:e.path,text:e.text,offset:e.offset,prefixLines:r.prefixLines,suffixLines:r.suffixLines,maxChars:r.maxPromptChars}),a={model:String(r.model||"deepseek-chat"),prompt:i.prompt,suffix:i.suffix,max_tokens:Math.min(Math.max(Math.floor(Number(r.maxTokens))||256,16),2048),stream:!1},l=Math.max(500,Number(r.timeoutMs)||3e3),c=new AbortController,u=ri(e.signal);u.signal&&(u.isCancelled()?c.abort():u.signal.addEventListener("abort",function(){c.abort()}));let d=setTimeout(function(){try{c.abort()}catch{}},l);try{let f=await fetch(s+"/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+o},body:JSON.stringify(a),signal:c.signal});if(!f.ok){let x=await f.text();throw new Error("FIM HTTP "+f.status+": "+String(x).slice(0,160))}let p=await f.json(),h=p&&p.choices&&p.choices[0],m=String(h&&(h.text||h.message&&h.message.content)||"");return{text:Ir.trimCompletion(m,i.suffix),rawChars:m.length,model:a.model,promptChars:i.prompt.length,suffixChars:i.suffix.length,usage:p&&p.usage||null}}finally{clearTimeout(d)}}function Pw(t,e){let n="";try{let r=JSON.parse(e);r&&r.error&&r.error.message&&(n=String(r.error.message))}catch{}let s={400:"\u8BF7\u6C42\u6216\u53C2\u6570\u4E0D\u5408\u6CD5",401:"API key \u7F3A\u5931\u6216\u65E0\u6548",402:"\u8D26\u53F7\u4F59\u989D\u4E0D\u8DB3",403:"\u8BF7\u6C42\u88AB\u5B89\u5168\u7B56\u7565\u62D2\u7EDD",404:"\u672A\u80FD\u83B7\u53D6\u53EF\u7528\u7684\u7F51\u9875\u5185\u5BB9",408:"\u8BFB\u53D6\u8BF7\u6C42\u4F53\u8D85\u65F6",413:"\u8BF7\u6C42\u4F53\u8D85\u8FC7\u5927\u5C0F\u9650\u5236",429:"\u8D85\u8FC7\u8054\u7F51\u63A5\u53E3 QPS \u9650\u901F",500:"\u670D\u52A1\u7AEF\u5185\u90E8\u9519\u8BEF",504:"\u4E0B\u6E38\u8BF7\u6C42\u8D85\u65F6"};return"\u8054\u7F51\u63A5\u53E3 HTTP "+t+(s[t]?"\uFF08"+s[t]+"\uFF09":"")+(n?"\uFF1A"+n.slice(0,200):"")}function ri(t){if(!t)return{signal:null,isCancelled:function(){return!1}};if(typeof t.aborted=="boolean"&&typeof t.addEventListener=="function")return{signal:t,isCancelled:function(){return t.aborted}};if(typeof t.onCancellationRequested=="function"){let e=new AbortController,n=!!t.isCancellationRequested;if(n)e.abort();else try{t.onCancellationRequested(function(){n=!0,e.abort()})}catch{}return{signal:e.signal,isCancelled:function(){return n}}}return{signal:null,isCancelled:function(){return!1}}}function Jp(t){let e=new AbortController,n=ri(t&&t.signal),s=t&&t.timeoutMs||tl,o=setTimeout(function(){e.abort()},s);return n.signal&&(n.isCancelled()?e.abort():n.signal.addEventListener("abort",function(){e.abort()})),{ctrl:e,outer:n,timer:o,ms:s}}async function $p(t,e,n,s){let o=s||{},r=zp(n&&n.provider);if(!r)throw new Error("\u5F53\u524D provider \u672A\u914D\u7F6E\u8054\u7F51\u641C\u7D22\uFF08providers.json \u91CC\u52A0 webSearch.baseUrl\uFF09");let i=Os(n.provider);if(!i)throw new Error("provider "+n.provider.id+" \u7F3A\u5C11 API key\uFF08apiKey \u6216 apiKeyEnv="+n.provider.apiKeyEnv+"\uFF09");let a=new AbortController,l=ri(o.signal),c=setTimeout(function(){a.abort()},o.timeoutMs||tl);l.signal&&(l.isCancelled()?a.abort():l.signal.addEventListener("abort",function(){a.abort()}));let u,d;try{u=await fetch(r+t,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+i},body:JSON.stringify(e),signal:a.signal}),d=await u.text()}catch(f){throw f&&f.name==="AbortError"?new Error(l.isCancelled()?"\u8054\u7F51\u8BF7\u6C42\u5DF2\u53D6\u6D88":"\u8054\u7F51\u8BF7\u6C42\u8D85\u65F6\uFF08"+Math.round((o.timeoutMs||tl)/1e3)+"s\uFF09"):new Error("\u8054\u7F51\u8BF7\u6C42\u5931\u8D25\uFF1A"+(f&&f.message?f.message:String(f)))}finally{clearTimeout(c)}if(!u.ok)throw w("web_http_error",{endpoint:t,status:u.status,body:String(d).slice(0,300)}),new Error(Pw(u.status,d));try{return JSON.parse(d)}catch{throw new Error("\u8054\u7F51\u63A5\u53E3\u8FD4\u56DE\u4E86\u975E JSON \u5185\u5BB9\uFF1A"+String(d).slice(0,120))}}async function jw(t,e,n){let s=n||{};if(!e)throw new Error("\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u914D\u7F6E");let o=String(t??"").replace(/\s+/g," ").trim().slice(0,128);if(!o)throw new Error("\u641C\u7D22\u8BCD\u4E3A\u7A7A");let r=e.provider.webSearch&&e.provider.webSearch.count||8,i=typeof s.count=="number"&&isFinite(s.count)?s.count:r;i=Math.min(Math.max(Math.round(i)||8,1),50);let a={query:o,count:i,need_content:!!s.needContent},l=String(s.oriQuestion==null?"":s.oriQuestion).replace(/\s+/g," ").trim().slice(0,128);l&&(a.ori_question=l);let c=await $p("/search",a,e,s),u=Array.isArray(c&&c.results)?c.results:[];return w("web_search",{provider:e.provider.id,query:o,count:i,needContent:!!s.needContent,results:u.length}),{query:o,results:u}}async function Lw(t,e,n){if(!e)throw new Error("\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u914D\u7F6E");let s=String(t??"").trim();if(!/^https?:\/\/\S+$/i.test(s))throw new Error("url \u5FC5\u987B\u662F http/https \u5730\u5740\uFF1A"+s.slice(0,120));if(s.length>8192)throw new Error("url \u8FC7\u957F\uFF08\u4E0A\u9650 8192 \u5B57\u7B26\uFF09");let o=await $p("/fetch",{url:s},e,n||{}),r=String(o&&o.title||""),i=String(o&&o.content||""),a=n&&n.maxChars||12e3,l=i.length>a?i.slice(0,a)+`
|
|
702
702
|
\u2026[\u6B63\u6587\u5DF2\u622A\u65AD]`:i;return w("web_fetch",{provider:e.provider.id,url:s.slice(0,200),title:r,chars:i.length}),{url:s,title:r,content:l,fullChars:i.length}}var Iw={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function Cr(t){return String(t??"").replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g,function(e,n){if(n.charAt(0)==="#"){let s=n.charAt(1)==="x"||n.charAt(1)==="X",o=parseInt(n.slice(s?2:1),s?16:10);return isFinite(o)&&o>0&&o<65536?String.fromCharCode(o):e}return Iw[n]||e})}function jo(t){let e=String(t??"");return e=e.replace(/<!--[\s\S]*?-->/g," "),e=e.replace(/<(script|style|noscript|head|template)[^>]*>[\s\S]*?<\/\1>/gi," "),e=e.replace(/<\/(p|div|li|tr|h[1-6]|blockquote|section|article|table|pre|ul|ol)[^>]*>/gi,`
|
|
703
703
|
`),e=e.replace(/<br\s*\/?>/gi,`
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luban-code/luban-code",
|
|
3
3
|
"displayName": "Luban",
|
|
4
|
-
"description": "
|
|
5
|
-
"version": "1.66.
|
|
4
|
+
"description": "Luban — a standalone sidebar AI coding agent (multi-provider, OpenAI-compatible, zero source patches)",
|
|
5
|
+
"version": "1.66.1",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "eppen (liuhualiang)",
|